15年前的Python漏洞構成供應鏈威脅
根據Trellix的最新研究,一個存在15年之久的Python漏洞仍未在數十萬個開源存儲庫中修復,這引起人們了對供應鏈風險的擔憂。
Trellix高級研究中心的漏洞研究員Kasimir Shulz在研究另一個不相關的漏洞時,重新發現了影響Python的tarfile模塊的目錄遍歷漏洞。他在周三的一篇博客文章中詳細介紹了從未正確修補過的CVE-2007-4559,強調攻擊者非常容易利用該漏洞。
對已知漏洞或“N-day”的進一步分析帶來更緊迫的潛在供應鏈問題。Python是一種廣泛使用的開源編程語言,之前曾在供應鏈攻擊中成為威脅參與者的目標,其中包括5月份在 “ctx Python”庫中發現惡意代碼的事件。
如果該漏洞被利用,Python漏洞將使攻擊者能夠覆蓋文件,這可能導致對Windows、Linux和Docker的系統訪問。Netflix、AWS和Facebook等大公司也在從使用易受攻擊的tarfile模塊的庫中提取數據。Shulz在他的研究中指出,最初的CVE得分為6.8。然而,Trellix研究證實,在大多數情況下,攻擊者可以獲得代碼執行,從而使這個Python漏洞更加嚴重。
此外,Trellix的首席工程師兼漏洞研究主管Doug McKee告訴TechTarget,遠程訪問攻擊的可能性取決于每個單獨的應用程序。Trellix從其研究中發現12%的tarfile漏洞存在于Web 空間中,因此對于這個百分比,遠程訪問的可能性很大。然而,17%的漏洞是在人工智能和機器學習領域發現的,這需要社會工程技術。
在視頻演示中,Trellix 展示了攻擊者如何利用Python漏洞在Spyder IDE(一個用于Python編程的開源開發環境)上遠程執行代碼。通過使用Universal Radio Hacker(一種用于無線協議分析的開源工具),Trellix研究人員能夠利用Spyder中易受攻擊的tarfile模塊并實施多項惡意操作以完全破壞測試環境。
Shulz在他的報告中寫道:“正如我們在上面所展示的,這個漏洞非常容易被利用,幾乎不需要了解復雜的安全主題。由于這一事實以及該漏洞的普遍存在,Python的tarfile模塊已成為巨大供應鏈問題,威脅著全球基礎設施。”
CVE-2007-4559的歷史
15年前,當它被分配CVE時,Python軟件基金會 (PSF) 在官方文檔中包含了安全警告,但最終決定不修補該漏洞,因為“沒有已知或可能的實際利用”。McKee告訴TechTarget,在Shulz報告他的發現后,他立即聯系了PSF。根據McKee的說法,PSF保持其最初的立場,沒有計劃修復該問題,并將責任推給開發人員。
TechTarget聯系了PSF的一名成員,但該組織在本文發表時沒有發表任何評論。
雖然針對漏洞發出警告是正確的步驟,但McKee表示這不是完整的解決方案。他指出,Python的問題在過去15年中呈指數級惡化。當Trellix谷歌搜索“如何在Python中提取tarfile”時,研究人員發現所有教程都是錯誤的。
McKee稱:“他們在編程時可能沒有考慮目錄遍歷攻擊。如果你是一名中級開發人員并且不知道如何去做,那么你會去谷歌搜索并得到錯誤的答案。”
在周三的另一篇博客文章中,Trellix漏洞研究員Charles McFarland擴展了該Python漏洞的潛在攻擊范圍。由于易受攻擊的存儲庫的數據量異常龐大,Trellix聯系了GitHub以獲得額外的訪問權限,結果發現包含超過500,000個使用tarfile包的GitHub存儲庫。研究人員發現,超過300,000個存儲庫(即61%)容易受到攻擊。
McFarland指出,部分問題在于,雖然已經引入了新的機器學習工具來識別易受攻擊的軟件代碼,例如GitHub Copilot,但這些工具只能到此為止。
McFarland在博客中寫道:“在數據科學界也流行一句俗語,‘垃圾輸入垃圾輸出’。使用tarfile.extract()或tarfile.extractall()的300,000個錯誤實例,這些機器學習工具正在學習不安全地做事。這不是因為該工具的任何錯誤,而是從它從其他人那里學到的事實。”
TechTarget聯系微軟征求意見,但截至發稿時,這家軟件巨頭并未發表任何聲明。
Trellix為供應商發布了檢測工具,目前為11,000個存儲庫提供了補丁。
McFarland稱:“雖然我們將修復盡可能多的存儲庫,但我們無法解決整體問題。我們發現的易受攻擊的存儲庫的數量引出一個問題,還有哪些其他N天漏洞潛伏在OSS [開源軟件] 中多年未被發現或被忽略。”