當前位置:
首頁 > 新聞 > Black Hat Europe 2017:安全專家發現5款最流行編程語言中的漏洞

Black Hat Europe 2017:安全專家發現5款最流行編程語言中的漏洞


沒有不漏的鍋,如果底層的編程語言如果出現問題,頂層的應用程序還能幸免於難嗎?


這周在 Black Hat Europe 2017 安全會議上,一名安全研究員公開了幾款目前非常流行的解釋型編程語言中出現的漏洞。這些編程語言上存在的問題,可能讓運用這些語言開發的應用程序因此也很容易遭受攻擊。


這項研究的作者是 IOActive 的高級安全顧問 Fernando Arnaboldi。這位專家表示他使用了自動化的模糊測試工具在解釋器中對五種編程語言進行了測試:JavaScript,Perl,PHP,Python和Ruby。在對默認庫和內置函數進行模糊測試之後,他在研究中公布了每種語言存在的一些問題。


使用 XDiFF 對 5 款語言進行模糊測試


使用模糊測試工具,對軟體進行測試通常需要檢測到不尋常的行為,以及對內存崩潰以及溢出進行檢測。目前比較流行的測試工具(如AFL和Peach)通常需要在尋找漏洞的時候的時候採用相同的邏輯,而這些工具無法存儲執行過的測試用例的信息。


在這位研究員的研究過程中,他自定義了自己的模糊測試工具 XDiFF(擴展差分模糊測試框架),以此適應這幾款不同的編程語言。在測試過程中,他將每種編程語言都分解成了最基本的功能,然後使用XDiFF來提供各種payload輸入來進行測試。




在這次測試中,我們的的輸入中主要使用了不到 30 種的原始數據類型,但也有一些特別的payload。這些特別的payload 是用於測試程序獲取外部數據資源時是否會出現問題。

以上這些測試都是用於分析測試目標——是否會出現「暴露本地文件、未授權的代碼注入、未授權的系統代碼執行操作」等安全問題。


測試結果:均暴露出問題


而從他的測試結果來看,我們確實可以看到JavaScript、PHP、Ruby、Perl、Python分別在經歷了多項測試之後,暴露出來了哪些問題。



Python中存在可用於OS命令執行的未記錄方法和本地環境變數。

Perl 中有一種可執行如 eval() 的 typemap 函數。


NodeJS 中輸出的錯誤信息會泄露部分文件內容。


JRuby 可以載入和執行並非設計為遠程代碼執行的代碼


PHP中常量的名字可以用來執行遠程命令。


最安全的應用層序也會因此「倒下」


Arnaboldi 表示攻擊者可以利用這些編程語言上的漏洞來「放倒」最安全的應用程序。



一些軟體開發者可能會在沒有意識到的情況下將代碼包含在應用程序中,而這些代碼可能導致的後果卻是開發者沒有考慮到的。


即便是按照安全指南來進行開發的最安全的應用程序也可能會因此出現「安全隱患」。


即便開發者沒有惡意企圖,但這些漏洞也可能因為開發者無意識或試圖簡化開發而引入進來。



目前XDiFF已經作為開源項目公布在GitHub上。


更具體的演講和演示內容也可以在Arnaboldi的論文中了解。


參考資料:


http://securityaffairs.co/


https://www.bleepingcomputer.com/


*本文作者Elaine,轉載請註明FreeBuf.COM


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

TAG:FreeBuf |