作者 | 云昭
8月14日,Checkmarx(一家以色列高科技軟件公司,世界上知名的代碼安全掃描軟件 Checkmarx CxSAST 的生產(chǎn)商)的研究人員發(fā)現(xiàn),一位名為“devfather777”的網(wǎng)友發(fā)布了 12 個軟件包,這些軟件包被上傳到 PyPi 存儲庫,并使用與其他流行軟件包相似的名稱來誘騙軟件開發(fā)人員使用惡意版本,進而對俄羅斯反恐精英(Counter-Strike)1.6 服務器執(zhí)行 DDoS 的仿冒攻擊。
惡意仿冒活動
此次排版攻擊依賴于開發(fā)人員使用錯誤的名稱,導致使用了與合法軟件包相似的惡意軟件包。例如,此活動中的一些包及其合法對應包(括號中)是 Gesnim (Gensim)、TensorFolw (TensorFlow) 和 ipaddres (ipaddress)。
惡意軟件包仍在 PyPi 上
上傳的惡意 PyPi 包的完整列表是:
- Gesnim
- Kears
- TensorFolw
- Seabron
- tqmd
- lxlm
- mokc
- ipaddres
- ipadress
- falsk
- douctils
- inda
由于軟件開發(fā)人員通常通過終端獲取這些包,因此很容易以錯誤的順序輸入其名稱和字母。由于下載和構建按預期繼續(xù),受害者沒有意識到錯誤并感染了他們的設備。雖然 CheckMarx 向 PyPi 存儲庫報告了這些包,但在撰寫本文時它們仍然在線。
定位 CounterSrike 服務器
在他們的應用程序中下載并使用這些惡意 Python 包之一后,setup.py 中的嵌入代碼會運行以確認主機是 Windows 系統(tǒng),如果是,它會從 GitHub 下載有效負載 (test.exe)。
隱藏在設置腳本中的代碼 (Checkmarx)
在 VirusTotal(免費的可疑文件分析服務的網(wǎng)站)上掃描時,69 個防病毒引擎中只有 11 個將文件標記為惡意文件,因此它是一種用 C++ 編寫的相對較新/隱蔽的惡意軟件。
該惡意軟件會自行安裝并創(chuàng)建一個啟動條目以在系統(tǒng)重新啟動之間保持持久性,同時它還注入一個過期的系統(tǒng)范圍的根證書。接下來,它連接到硬編碼的 URL 以接收其配置。如果第三次嘗試失敗,它會尋找對發(fā)送到 DGA(域生成算法)地址的 HTTP 請求的響應?!斑@是我們第一次在軟件供應鏈生態(tài)系統(tǒng)中看到惡意軟件(菌株)使用 DGA,或者在這種情況下,使用 UGA 為惡意活動的新指令分配生成的名稱,”Checkmarx 在報告中評論道。
攻擊流程圖 (Checkmarx)
在分析師觀察到的案例中,配置命令惡意軟件將主機招募到 DDoS 機器人中,該機器人開始向反恐精英(CounterStrike)1.6 服務器發(fā)送流量。目標似乎是通過感染足夠多的設備來關閉 Counter-Strike 服務器,以使發(fā)送的流量使服務器不堪重負。用于托管惡意軟件的 GitHub 存儲庫已被刪除,但攻擊者可以通過濫用不同的文件托管服務來恢復惡意操作。
如果你使用了上面提到的 12 個軟件包,并且可能出現(xiàn)了打字錯誤,一定要仔細檢查你的項目,確認是否使用了合法的軟件包。
影響
PyPi 被惡意攻擊已非個例。早在今年 6 月,PyPi python 包就被曝發(fā)現(xiàn)將被盜的 AWS 密鑰發(fā)送到不安全的站點。8 月 9 日,又有威脅分析人員在 PyPI 存儲庫中發(fā)現(xiàn)了 10 個惡意 Python 包,它們被用于竊取密碼的惡意軟件進而感染正在開發(fā)的系統(tǒng)。
Python Package Index (PyPi) 是一個包含超過 350000 個開源軟件包的存儲庫,數(shù)百萬開發(fā)人員可以輕松地將其整合到他們的 Python 項目中,以最小的努力構建復雜的應用程序。由于開源,軟件開發(fā)人員經(jīng)常使用它來挑選基于 Python 的項目的構建塊,或者與社區(qū)分享他們的工作。但是,由于任何人都可以將包上傳到存儲庫,并且包不會被刪除,除非它們被報告為惡意,因此存儲庫更常被威脅者濫用,他們使用它來竊取開發(fā)人員憑據(jù)或部署惡意軟件。雖然 PyPi 可以快速響應平臺上的惡意包報告,但在提交之前由于缺少強有力的審查,因此危險包可能會潛伏一段時間。
參考鏈接:
https://medium.com/checkmarx-security/typosquatting-campaign-targeting-12-of-pythons-top-packages-downloading-malware-hosted-on-github-9501f35b8efb