Google代碼搜索 窺探程序漏洞
想知道哪些程序具有需要修復的安全問題?使用Google代碼搜索,尋找這樣的程序易如反掌。
安全專家周四警告開發(fā)者,他們需要了解他們的開源程序庫現(xiàn)在已經(jīng)可以很容易被挖掘以使得攻擊者可以尋找可能存在漏洞的程序。在過去,Google可以被用于尋找特定字符串;而現(xiàn)在搜索引擎已經(jīng)可以更有效地搜尋代碼。
Veracode安全部門首席技術官Chris Wysopal說:"它探尋可公開獲得代碼的位置的足跡已經(jīng)越來越深,并且顯然它正在搞到有價值的材料。這使得攻擊者可以更快、更容易地發(fā)現(xiàn)弱點——這些攻擊者們希望攻擊的不是某個特定的Web站點,而是任何Web站點。"
Google周四宣布這一工具已經(jīng)可被公眾使用。Google代碼搜索發(fā)掘互聯(lián)網(wǎng)上的開源代碼庫,將網(wǎng)上大量可獲得的源代碼編譯成易被搜索的數(shù)據(jù)庫。這一工具使得上網(wǎng)者可以搜索符合特定正則表達式的代碼,而這些搜索可以限制于特定的文件類型與許可。
Google的代碼搜索所暗含的安全問題與其網(wǎng)站搜索引擎帶來的問題類似。Google黑客——這一名詞指使用Google查詢來尋找網(wǎng)站中的弱點——是一種尋找具有特定漏洞的服務器的流行方式。蠕蟲與病毒已經(jīng)試圖利用搜索引擎建立準備攻擊的潛在犧牲者的列表。7月,研究者警告使用搜索引擎可以很容易地發(fā)現(xiàn)惡意代碼。
Google在周四重申,該工具目的是幫助程序員尋找示例代碼和模糊的函數(shù)定義,而非為搜尋漏洞。
該公司在以電子郵件形式發(fā)往SecurityFocus的一份陳述中說:"Google建議開發(fā)者們使用通常被接受的良好的代碼習慣,這包括理解他們正在應用的代碼的含義以及適當?shù)臏y試。"
然而,程序員們看上去并不能走在正迅速膨脹的可以發(fā)現(xiàn)有趣代碼特性的搜索列表前面。一個簡單的"todo+security"查詢就可以找到很多具有未執(zhí)行的安全特性的程序。使用"confidential+proprietary"查找文件可以查到被不適當?shù)匕l(fā)布的代碼。而根據(jù)Veracode的Wysopal所說,搜索"gets"函數(shù)——一個臭名昭著的不安全字符串操作——可以揭示很可能易受內(nèi)存溢出攻擊的程序。
本文采訪的安全專家表示,對于大多數(shù)應用而言,Google代碼搜索的功能可以使用正常的Google搜索引擎模仿,但該工具使得這樣的搜索效率更高。
代碼搜索還可以使代碼審查者更快捷地警告人們程序中存在的漏洞。開源軟件的一個中心議題是更多人檢查可獲得的代碼可以增強安全性。Wysopal說,一段時間后Google代碼搜索可以使得更多的人尋找漏洞。
Wysopal說:"這就像給每個人一架望遠鏡。這正使得他們效率更高。就讓我們期望他們正將此應用于好的方面。"
Johnny Long是一位著名的安全研究者,他深入研究過Google黑客。他說,防備可能利用代碼搜索進行的尋找開發(fā)者程序中的漏洞并不容易。程序員們需要被灌輸安全編程技術以了解什么是危險的而什么不是。頻繁的代碼檢查也是必須進行的,而最后,編程方針需要進一步被強化。
Long說:"如果程序員們不被激勵以使用安全的庫并避免不好的函數(shù)或技術,如何使他們走向更艱難的編寫安全代碼之路呢?"
這位安全研究者還強調(diào),處理易被搜索的代碼庫需要時間,而惡意研究者可能暫時走在開發(fā)者前列。他還說,程序員們需要抗拒試圖將他們的代碼庫隱藏于Google之外的誘惑。
Long說:"任何新的技術都使得新的攻擊出現(xiàn)。關鍵的問題是好人們是否會最先發(fā)現(xiàn)這一新的技術。"