警惕開源代碼庫中的安全隱患
最近的一項研究發(fā)現(xiàn),在調查的31個流行庫(框架)的1261個版本中,超過三分之一存在已知的安全漏洞,大約四分之一的下載文件已經被污染。
該項研究由Aspect Security和Sonatype發(fā)起。Aspect Security是一家評估軟件安全漏洞的公司,Sonatype主要提供中央資源庫(Central Repository),托管了超過30萬個庫和開源組件,每年有超過40億次請求。
Aspect公司的研究人員分析了在過去12個月內,從Central Repository中下載的31個流行的Java框架和安全庫,并發(fā)現(xiàn):
所有的下載中,有1980萬次下載的版本存在已知漏洞,占26%。
下載次數最多的、存在已知漏洞的庫是Google Web Toolkit(GWT)、Apache Xerces、Spring MVC和Struts 1.x。
研究發(fā)現(xiàn),在開源代碼庫中發(fā)現(xiàn)的漏洞類型非常廣泛,一些漏洞允許攻擊者完全接管主機,一些可能會導致數據丟失或損壞,還有一些可能會向攻擊者提供有用的信息。
研究人員稱,安全性庫比框架更有可能存在已知漏洞,現(xiàn)在的應用程序通常使用30個或更多的庫,這可能危及到應用程序中80%的代碼。在大多數情況下,漏洞的影響在很大程度上取決于應用程序如何使用這些庫。
研究人員列出了一些廣為流傳的已知漏洞:
在過去一年中,Spring被超過4.3萬個組織下載了1800萬次,但是去年的一個發(fā)現(xiàn)顯示,Spring表達式語言中有一個新型的漏洞,攻擊者可以通過HTTP參數提交來利用該漏洞,并獲得敏感的系統(tǒng)數據、應用程序和用戶cookies。
2010年,谷歌的研究團隊發(fā)現(xiàn)了Struts2中一個漏洞,該漏洞允許攻擊者在所有基于Struts2的應用程序中執(zhí)行任意代碼。
Apache CXF(Web服務框架)在過去一年內被超過1.6萬個組織下載了420萬次,從2010年該框架中就存在兩個大的漏洞(CVE-2010-2076和CVE 2012-0803),允許攻擊者欺騙任何使用CXF的服務,下載任意的系統(tǒng)文件,并繞過驗證。
研究人員稱,目前開發(fā)者還沒有好的方法來得知他們正使用的庫中存在的已知漏洞,他們必須隨時檢查幾十個郵件列表、博客、論壇,此外,開發(fā)團隊也不太可能去尋找這些開源庫中的漏洞,因為這需要大量的安全方面的經驗,在分析這些庫時自動化工具基本上用處不大。
Aspect公司CEO稱,使用開源庫也存在“依賴管理”的問題,開發(fā)者需要確定他們的項目中真正直接依賴的庫。通常情況下,開發(fā)者會在一些非必需的功能中使用庫,而這些庫還可能依賴于其他庫,顯然這帶來了大量過時的代碼,增加了安全風險,同時增大了應用程序的規(guī)模。
要想避免或降低這些風險,就需要找出在項目中使用的庫,確定哪些已經過時。Aspect公司建議盡量少使用庫。
【編輯推薦】