0
如何成為一名白帽子?知乎上有千奇百怪的回答,點贊數最高的是昵稱長短短的用戶回答:
對「語言」、「程序」、「業務」保持本質的好奇。
意識到是「漏洞」選擇了你,當你歸功于自己的時候,你的創造力會被剝奪。
分享,是一種生命力表達的方式,而不是為了獲得他人的認同,不要對分享抱有索取回報的心。
你對你做的事情無比狂熱,但毫不在意結果與回報,依賴于結果,一定會被吞噬。
In the moment,你沒有任何目的。
你有計劃地探索,而不是毫無意義的「越多越好」。
只有目標明確,你才能過濾外界干擾。
你的量和方向必須一致,效率才能最大化,而為了牛逼而牛逼,方向已經錯了。
量變到質變是永恒不變的真理。
不要覺得自己在等待什么。
堅定,執拗,在這群人身上似乎看不見放棄,不過最近,雷鋒網宅客頻道(微信公眾號:letshome)就在 FIT2018 互聯網安全創新大會上聽到了一個“反其道而行”的演講——《Web安全從入門到放棄》。演講人為青藤云安全分析師宮華(CplusHua),在他身上有著螞蟻金服安全應急響應中心(AFSRC)36W 單個漏洞現金獎勵最高得主、90后的標簽,所以何謂放棄呢?
提到 Web 安全,國內外都會關注的一個話題就是 OWASP Top 10(十大應用軟件安全風險)。早在今年 4 月份,OWASP(開放式 Web 應用程序安全項目)就發布了十大候選漏洞,11月底,在更新了兩個漏洞類別之后,最終版 OWASP 終于發布。

盡管與 2013 OWASP Top 10 相比,企業安全面臨的威脅在不斷變化。但在此次更新中,注入類漏洞仍以“王炸”姿態穩居 Top 10 威脅之首,另外也有些“新面孔”開始被越來越多人重視,比如失效的身份認證、安全配置錯誤、失效的訪問控制以及不安全的反序列化問題等。
雖是“萌新”,但這幾個問題卻不可小覷。
雷鋒網了解到,反序列化問題之所以近年被普遍重視,主要是因為每次產生漏洞較為嚴重。比如針對庫的中間件進行反序列化,再利用其獲取更高權限。大部分攻擊者在運行這些中間件(如 weblogic )時候,可以通過構造惡意輸入讓反序列化產生非預期的對象,而非預期的對象在產生過程中就有可能帶來任意代碼執行。
另外身份認證問題也被提升至較高地位,舉例說幾乎每個網站都有重置密碼功能,而在這其中發生過密碼任意重置的網站占據 50%。這就意味攻擊者可以毫不費力地重置用戶密碼并進入用戶賬戶,但這一威脅卻在今年才被提升至此高度。
一口氣是吃不成胖子的,還會噎死,作為一個攻擊者或者白帽來說,想要找出網站或者企業漏洞也并非速成,而是小口吃飯。
第一步也是最常規的操作,即信息收集。攻擊者需要對企業進行系統的信息整理,包括企業資產,業務系統以及企業使用的服務器類型、版本、中間件等。梳理這些信息有助于白帽通過版本對比或是漏洞探測,觀察是否存在常規意義上的漏洞。
第二,發掘漏洞的過程,不僅要分析業務場景,更要分析程序員的代碼思維。
納尼?竟然變成了心理戰?

為什么要分析程序員?每一個程序員在進行編程工作時,實際上會有固定思維方式。也就是說可以從某一業務交互過程中展示出來的內容進而分析其開發思維,在知道程序員思維方式后就可以找到其在思維上存在的一些漏洞。
宮華表示,在黑盒漏洞挖掘中,通過這種方式可以模擬程序員思維,再結合對業務輸入和輸出的模糊探測,從而推測出程序員的代碼邏輯,進而分析是否存在漏洞。
讓人意想不到的一點是這些業務系統接口上有時候存在一些看起來無關緊要的漏洞,似乎不修復也沒有問題。但是實際并非如此,一個成功的漏洞攻擊可以使用多個低危漏洞或者中危漏洞將其變成高危漏洞。
舉個栗子,比如黑客入侵商城系統,篡改商品訂單數據,一分錢買 N 元物品的案例在某些網站早期常常發生,隨后眾多廠商也發現了這一問題,并開始采取種種校驗手段。
但道高一尺魔高一丈,攻擊者可以通過控制一個沒有做好輸入參數控制的簽名接口產生其想要的輸出。也就是說即使在提交訂單的位置無法篡改訂單金額,但是可以通過一個其它接口來輸入想要簽名的數據,得到簽名輸出結果。在得到這一結果后,就可以偽造一個合法的訂單或訂單支付成功的回調。
這就相當于一個“黑盒加密機”,利用這個盒子可以進行加密或者簽名。但其輸入端是攻擊者可控的,如果攻擊者有這樣的簽名機器,其可進行多種簽名操作,且不需用戶的密鑰信息。
雷鋒網了解到,同樣的問題也會出現在密碼重置場景,一般來說重置密碼時網站會給用戶郵箱發送鏈接,鏈接即 token(此處可以理解為經過“黑盒加密機”加密或簽名的數據或摘要),正常邏輯下 token 由密碼重置接口控制生成。
“但是如果你能夠在目標發現另一個接口,也能夠產生類似的 token,我們可以考慮是否能夠利用發現的另一個接口(加密機接口),來產生一個token去重置目標的密碼。”
另外,在用戶注冊過程中,也可以利用服務器返回 cookie 的特點獲取用戶名密碼。
有一些網站在用戶注冊過程中,會在注冊成功后或用戶注冊成功登錄后,將加密的用戶名、用戶 uid 存放到 cookie 中,然后根據 cookie 中存放的用戶 uid 來識別用戶。
“但是該網站的注冊用戶名卻允許全數字,因此我們可以通過注冊一個全數字的用戶名,并在登錄后得到一個加密數據,然后將該加密數據填充到 cookie 中 uid 對應的位置。cookie 發送到服務器后,就會使用相同的加解密接口來獲取用戶的 uid。這樣我們就可以登錄使用數字用戶名注冊的用戶的 uid 所對應的其他用戶的賬戶了。”宮華說道。
還有一些威脅來自企業使用的云上環境,盡管這可以降低企業基礎建設的成本,但這一環境也存在安全問題。宮華提到在他們最近的測試中發現有些企業采取了一些防護措施禁止云上主機被其他網絡或用戶任意訪問,比如增加了 IP 白名單,只允許企業自己的主機 IP 地址段范圍進行訪問。但由于云上特殊性,同一個 IP 地址段還可能存在其他租戶,所以這些基于 IP 地址段的訪問策略就極有可能被繞過,從而導致企業內網對外暴露。
實際上很多廠家都可能存在類似問題,企業上云所帶來的漏洞以及風險似乎加倍提升,特別是當攻擊者能夠進入企業內網環境就可以發現更多的內網漏洞,危害極大。
“找洞”只是過程,最終目的還是為了“補洞”,白帽在找出企業漏洞之后是如何幫助企業修復漏洞呢?
一般優先通過企業 SRC 或可信合理的第三方向企業報告該漏洞,在報告該漏洞時會附帶對于該漏洞的修復建議,同時企業也會內部對該漏洞進行評估并選擇適合自己的修復方案進行修復。
既然廢了這么多力氣挖洞為什么要講究放棄?
在宮華看來,挖洞這件事因人而異,一種人即文章最開始所形容的,熱愛 Web 安全,希望為了企業安全發現更多漏洞,并且有自己的思考和研究,這些白帽子則應該堅持下去。
而另一種人,消耗著自己的時間,刷一些意義不大的洞,甚至做一些破壞目標業務系統的事情,通過這種方式賺錢,才應該是放棄的。
這里可以算筆賬,一個白帽子挖洞最高獎勵大概是三十五萬美元,但多數挖洞獎金都是幾百到兩萬美金之間。觀察比特幣漲勢圖可以知道,通過刷洞來獲得的收益并不高,BTC“看起來”更輕松而更有利潤空間,既然是為了賺錢,為什么不放棄 Web 安全,而去利潤空間更大的其他平臺賺錢呢?
雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。