總下載量超4萬次!PyPI發現11個惡意Python包竊取敏感資訊

zktq2021發表於2021-11-25

在如今的敏捷開發過程中,第三方程式碼庫已經成為每個企業及開發人員不可或缺的一部分。但這也意味著,在引入第三方程式碼的過程中,很可能無意間將存在安全漏洞的程式碼直接置入開發產品當中,增加軟體供應鏈風險。

網路安全研究人員已經發現了多達11個惡意Python包,它們從Python包索引(PyPI)儲存庫中累計下載次數超過41,000次,可以被利用來竊取Discord訪問令牌、密碼,甚至階段依賴混淆攻擊。

在DevOps公司JFrog披露之後,Python包已從儲存庫中刪除:

importantpackage / important-package

pptest

ipboards

owlmoon

DiscordSafety

trrfab

10Cent10 / 10Cent11

yandex-yt

Yiffparty

檢測規避技術

其中兩個包(“importantpackage”、“10Cent10”和它們的變體)在被攻破的機器上獲得了一個反向shell,使攻擊者能夠完全控制系統。另外兩個包“ipboard”和“trrfab”偽裝成合法的依賴項,旨在利用一種稱為依賴項混淆或名稱空間混淆的技術自動匯入。

與域名搶注攻擊不同,惡意行為者故意釋出帶有拼寫錯誤的流行變體名稱的包,依賴混淆通過向公共儲存庫上傳大量有毒元件,這些元件的名稱與合法的內部私有包相同,但具有更高的版本,有效地迫使目標的包管理器下載並安裝惡意模組。

依賴“importantpackage”也因其新穎的過濾機制而脫穎而出,以逃避基於網路的檢測,其中涉及使用快速的內容分發網路(CDN)掩蓋其與攻擊者控制的伺服器的通訊作為與pypi[.]org的通訊。

惡意程式碼“導致一個HTTPS請求被髮送到pypi.python[.org(這與對PyPI的合法請求難以區分),隨後CDN將其作為一個HTTP請求重新路由到[命令和控制]伺服器,”JFrog的研究人員Andrey Polkovnychenko和shacharmenashe在週四發表的一份報告中解釋道。

最後,“ipboards”和第五個名為“pptest”的包都被發現使用DNS隧道作為資料抽取方法,依靠DNS請求作為受害者機器和遠端伺服器之間的通訊通道。JFrog表示,這是首次在上傳至PyPI的惡意軟體中發現這種技術。

針對流行的程式碼登錄檔(如NPM)、JavaScript登錄檔、PyPI和RubyGems)的努力已經變得司空見慣,成為一系列攻擊的新前沿。

JFrog的高階研究主管Menashe說:“包管理器是無意安裝惡意程式碼的一個日益增長和強大的載體,而且[……]攻擊者的方法越來越複雜。”“這些惡意軟體包中使用的先進逃避技術,如新穎的外滲或DNS隧道,表明了一個令人不安的趨勢,即攻擊者對開源軟體的攻擊正變得越來越隱祕。”

事實上,在至少三個NPM開發人員賬戶被惡意分子入侵,將惡意程式碼插入流行包“ua-parser-js”、“coa”和“rc”之後,本週早些時候,GitHub概述了加強NPM登錄檔安全性的計劃,要求從2022年第一季度開始對維護人員和管理員進行雙因素認證(2FA)。

軟體開發和版本控制平臺還透露,它解決了NPM登錄檔中的多個缺陷,這些缺陷可能會洩露私有包的名稱,並允許攻擊者繞過身份驗證,在不需要任何授權的情況下發布任何包的版本。

在像PyPI這樣的流行軟體庫中不斷發現惡意軟體包,這是一個令人擔憂的趨勢,可能導致廣泛的供應鏈攻擊。建議開發人員在從公共儲存庫下載軟體包時要格外小心。

攻擊者能夠利用簡單的混淆技術來引入惡意軟體,這意味著開發人員必須時刻關注程式碼安全並保持警惕。這是一個系統性的威脅,需要引起軟體儲存庫的維護人員和開發人員等多個方面的積極解決及重視。

對於開發人員來說,諸如驗證庫簽名和使用自動應用程式安全檢測工具如 靜態程式碼安全檢測工具、SCA等掃描專案中可疑程式碼,及時檢測並修復程式碼缺陷及安全漏洞,應該是任何CI/CD管道的重要組成部分。當發現惡意程式碼時,諸如此類的自動化工具可以發出警報,以快速定位及修正缺陷。


參讀連結:

https://www.helpnetsecurity.com/2021/11/22/malicious-python-packages-detection/


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2844069/,如需轉載,請註明出處,否則將追究法律責任。

相關文章