PyPI惡意代碼包被下載上萬次
近日,托管在Python Package Index(PyPI)代碼存儲庫中的三個惡意程序包,被下載總計超過12000次,這些惡意包最終很可能會潛入各種應用程序的安裝包中。
PyPI是用Python編程語言創建的軟件代碼存儲庫。與GitHub、npm和RubyGems一樣,PyPI允許編碼人員上傳軟件包,供開發人員在構建各種應用程序、服務和其他項目時使用。
獨立研究員Andrew Scott在對PyPI中包含的代碼進行近乎全面分析時發現了這些惡意包:一個包含已知木馬惡意軟件,兩個包含信息竊取程序的惡意軟件包。
被木馬化的包被稱為“aws-login0tool”,一旦安裝,它就會獲取一個有效負載可執行文件,結果證明它是一個已知的特洛伊木馬。
“我發現這個包是因為它在我查看setup.py的多個文本搜索中被標記,因為這是Python包中惡意代碼最常見的位置之一,因為在安裝時可以在那里執行任意代碼,”Scott解釋說:“具體來說,我是通過查找import urllib.request發現的,因為它通常用于竊取數據或下載惡意文件,它也是由from subprocess import Popen它觸發的,這有點可疑,因為大多數包不需要執行任意命令行代碼。”
Scott還通過查看import urllib.request字符串發現了另外兩個惡意包,這兩個包都是為數據泄露而開發的。
這兩個名為“dpp-client”和“dpp-client1234I”的惡意包是同一個用戶在二月份上傳的。在安裝過程中,他們收集有關環境和文件列表的詳細信息,并且似乎“專門尋找與Apache Mesos相關的文件”,Scott說,這是一個管理計算機集群的開源項目。據研究人員稱,一旦收集到信息,就會將其發送到一個未知的網絡服務。
Python安全團隊在12月10日收到通知后刪除了已識別的包,但在刪除之前導入惡意包的項目中,所有三個包都繼續存在。
Scott表示,該木馬程序包于12月1日首次被添加到PyPI中,隨后被下載了近600次。至于數據竊取包,其中一個dpp-client下載量超過10000次,11月下載量600+;dpp-client1234已被下載約1500次。并且這兩個包都用它們的源代碼URL模仿了一個現有的流行庫,“所以任何人在PyPI中查看這些包或分析庫的流行程度都會看到大量的GitHub好評和分支——看上去擁有良好的聲譽。”
軟件供應鏈攻擊已經成為越來越流行的惡意軟件分發方法。例如,上周在Node.js包管理器(npm)代碼庫中發現了一系列旨在收集Discord令牌的惡意包。這些軟件包可用于接管用戶的帳戶和服務器。
(來源:@GoUpSec)