压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

Python曝出15年“老洞”,數十萬開源項目受影響

近日,Trellix高級研究中心在Python的tarfile模塊中發現一個存在長達15年之久的漏洞(CVE-2007-4559),全球數十萬個開源和閉源項目受漏洞影響。研究人員警告說,這無意中產生了一個規模超大的軟件供應鏈攻擊面,大多數受影響的組織甚至都不知道。

據Trellix分析師透露,該漏洞是Python tarfile模塊中的一個與路徑遍歷相關的漏洞,被跟蹤為CVE-2007-4559,目前有超過35萬個開源存儲庫存在該尚未修補的漏洞,使得軟件應用程序非常容易被利用。

在9月21日發布的博客文章中,Trellix首席工程師兼漏洞研究主管Douglas McKee表示,有問題的代碼庫存在于多個行業的軟件中——主要是軟件開發、人工智能/機器學習和代碼開發,也包括網絡安全、IT管理和媒體等不同領域。

研究人員指出,Python tarfile模塊是任何使用Python的開發項目的默認模塊,目前廣泛存在于AWS、Facebook、Google、Intel和Netflix創建的框架中,以及用于機器學習、自動化和Docker容器化的應用程序中。

該漏洞允許攻擊者將文件提取到指定目錄之外,同時攻擊者也可以利用該漏洞執行惡意代碼。

“今天,這個漏洞已被無意中添加到全球數十萬個開源和閉源項目中,造成了巨大的軟件供應鏈攻擊面。”McKee說道。

舊漏洞,新問題

McKee在帖子中寫道,最近一次企業設備的路徑遍歷漏洞檢查中發現Python tarfile模塊表現異常,Trellix研究人員認為他們偶然發現了一個新的零日Python漏洞。然而,隨著調查的深入他們很快意識到這個漏洞“年份久遠”。

通過對GitHub的進一步挖掘,研究者發現在大約58.8萬個存儲庫中,大約有287萬個包含Python tarfile模塊的開源文件。Trellix的分析結果發現,這些實例中約有61%易受攻擊,研究人員據此估算有35萬個易受攻擊的Python存儲庫。

開源安全無人擔責

該漏洞能夠逃避檢查,在整個軟件供應鏈中傳播這么長時間的原因有很多。但McKee認為,將具體責任歸咎于Python項目的維護者或任何使用該平臺的開發人員是不公平的。

“盡管問題已經暴露,但我們首先要明確一點,漏洞CVE-2007-4559的問題不應該歸咎于任何一方、組織或個人。”McKee寫道。

由于像Python這樣的開源項目是由一群志愿者而不是一個組織運行和維護的,因此更難及時跟蹤和修復已知問題。

此外,“很多時候,安全使用庫或軟件開發工具包的API被看作是開發人員的責任。”McKee指出。

事實上,Python在Tarfile函數文檔中明確警告開發人員注意目錄遍歷風險,不要“在沒有事先檢查的情況下從不受信任的源中提取檔案”。但是,顯然該警告并未阻止漏洞的持續存在和蔓延。

McKee補充說,加劇這個問題的原因是,大多數為開發人員提供的關于如何使用平臺模塊的Python教程——包括Python自己的文檔和流行的網站,如tutorialspoint、geeksforgeeks和askpython.com——并未清楚指出如何避免不安全地使用tarfile模塊。

McKee指出,這種差異使得漏洞被寫入整個供應鏈中,這種趨勢可能會持續數年,除非對該問題有更廣泛的認識。

漏洞利用“非常容易”

從技術層面分析,CVE-2007-4559是Python tarfile模塊中的路徑遍歷攻擊,它允許攻擊者通過在TAR存檔中的文件名中添加“..”序列來覆蓋任意文件。

Trellix漏洞研究人員Charles McFarland在周三發表的一篇博文中指出,實際的漏洞來自使用未經處理的tarfile.extract()或tarfile.extractall()的內置默認值的兩三行代碼。

“未能在調用tarfile.extract()或tarfile.extractall()之前編寫任何安全代碼來清理成員的文件會導致目錄遍歷漏洞,從而使不良行為者能夠訪問文件系統。”他寫道。

攻擊者要利用此漏洞,需要在文件名中添加操作系統分隔符(“/”或“\\”)和“..”,將文件提取到預定目錄以外,而Python的tarfile模塊讓開發人員能夠做到這一點。

Trellix漏洞研究實習生Kasimir Schulz在周三發表的博客文章中詳細描述了利用該漏洞是多么“難以置信的容易”。(https://www.trellix.com/en-us/about/newsroom/stories/threat-labs/tarfile-exploiting-the-world.html

Schulz在他的文章中解釋說,Python中的Tarfile包含多個不同文件和元數據的集合,這些文件和元數據后來用于解壓縮Tarfile本身。TAR存檔中包含的元數據包括但不限于文件名、文件大小和校驗和等信息,以及文件存檔時文件所有者的信息。

“tarfile模塊允許用戶在文件添加到TAR存檔之前添加一個過濾器,該過濾器可用于解析和修改文件的元數據,”Schulz寫道:這使攻擊者能夠用短短六行代碼創建他們的漏洞利用。

Schulz在他的帖子中詳細解釋了他如何使用該漏洞和一個名為Creosote的定制腳本(該腳本在目錄中搜索并分析Python文件)在Spyder IDE中執行惡意代碼,后者一個免費和開源的為Python編寫的科學開發環境,可以在Windows和macOS上運行。

下一個目標:軟件供應鏈

Tarfile的漏洞再次凸顯了軟件供應鏈作為一個攻擊面存在的嚴重問題,因為攻擊者可以通過攻擊廣泛存在于多個平臺和企業環境中的有缺陷代碼來實施大規模惡意攻擊活動。

類似的軟件供應鏈攻擊已經有很多案例,例如震驚全球的SolarWinds和Log4j漏洞攻擊。后者是2021年12月上旬披露的在廣泛使用的Java日志工具中的一個名為Log4Shell的漏洞,該漏洞引發了多次利用,并使數百萬應用程序容易受到攻擊,其中許多應用程序至今仍未修補。

最近,攻擊者已經開始直接在開源代碼存儲庫注入惡意代碼并嘗到甜頭。這些“毒化”代碼可被利用來進行供應鏈攻擊。事實上,Python項目此前已經遭受過類似攻擊。

今年8月下旬,攻擊者針對Python包索引(PyPI)的用戶進行了首次網絡釣魚攻擊,試圖竊取用戶的憑據,以便將惡意包加載到存儲庫中。當月早些時候,在一家安全供應商警告攻擊者將惡意代碼嵌入包安裝腳本后,PyPI從項目庫中刪除了10個惡意代碼包。

聲明:本文來自GoUpSec

上一篇:Microsoft MECM信息泄露漏洞 (CVE-2022-37972) 漏洞通告

下一篇:客戶身份與訪問管理(CIAM)常見威脅分析與應對