臥槽!只是pip安裝輸錯(cuò)字母,就中了挖礦病毒

用PyPI包管理工具安裝python軟件很方便,但你今后要三思而后行了。
當(dāng)輸入這樣一句命令后:
pip install openvc你也許并未發(fā)現(xiàn)異常,仔細(xì)一看可能才會(huì)察覺自己剛剛手抖,把opencv輸錯(cuò)了。
但此時(shí)安裝命令已經(jīng)開始運(yùn)行了,因?yàn)閛penvc其實(shí)也是一個(gè)真實(shí)存在的軟件包,不過卻是個(gè)惡意軟件包。
最近,安全公司Sonatype發(fā)現(xiàn),很多惡意軟件都偽裝成常見的PyPI包,往往只差幾個(gè)字母。
隨著加密貨幣的火爆,黑客們開始把挖礦軟件植入其中。如果用戶手打pip安裝命令手滑一下,自己的電腦就可能變成“礦機(jī)”。
PyPI里的挖礦軟件
常用的繪圖工具包matplotlib首當(dāng)其沖。PyPI今年有多個(gè)與之類似的惡意軟件包,如mplatlib、maratlib(記住這個(gè)軟件包名稱)等等。
這類“李鬼”共有7種之多,都是一個(gè)叫做nedog123的用戶上傳到PyPI。其中像maratlib還是今年4月份發(fā)布的。
這一組惡意軟件以“maratlib”為核心,其他軟件都是把它作為依賴項(xiàng),比如“l(fā)earninglib”就是這種情況:
這代碼還算是比較“直白”的,有些惡意軟件將依賴項(xiàng)稍微隱藏了一下,比如“mplatlib”:

它把依賴項(xiàng)偽裝成“LKEK”,從第47行代碼可以看出LKEK就是maratlib。
接著Sonatype的安全工程師又對maratlib 1.0安裝包進(jìn)行了分析,發(fā)現(xiàn)它已經(jīng)偽裝得很深了,使用一般工具已經(jīng)很難分析這些代碼里到底藏了什么。
他只好把版本倒回0.6,這個(gè)版本的maratlib沒有對代碼做偽裝,它會(huì)從GitHub下載和運(yùn)行Bash腳本代碼:
但服務(wù)bash腳本的網(wǎng)址拋出404錯(cuò)誤,說明這個(gè)地址已經(jīng)被GitHub刪除,或者被黑客nedog123廢棄不用。
經(jīng)過更深的挖掘,這名安全工程師發(fā)現(xiàn),黑客將代碼遷移到了“Marat Nedogimov”和“maratoff”用戶名下。
這個(gè)aza2.sh腳本會(huì)下載一個(gè)名為“Ubqminer”的挖礦軟件,而上圖中那一長串字符就是黑客的數(shù)字錢包地址。
至此,案件已經(jīng)告破。好消息是,PyPI已經(jīng)刪除了這些惡意軟件包。
但是,據(jù)Sonatype公司統(tǒng)計(jì),這7個(gè)李鬼軟件已經(jīng)總共被下載超過5000次。
惡意PyPI包防不勝防
這次發(fā)現(xiàn)的maratlib,可能只是PyPI惡意軟件包的冰山一角。PyPI包管理工具的問題一直為用戶所詬病。
今年2月,有人將CUDA加速包CuPy換成了惡意軟件。還有一位白帽黑客發(fā)現(xiàn),只要向公共庫上傳PyPI軟件包,就能輕易替換掉私有化的同名軟件包,大大增加了科技公司中毒風(fēng)險(xiǎn)。

△ 每月PyPI惡意軟件包數(shù)量
早在2016年,就有人用相似名稱的方法發(fā)布PyPI惡意軟件包,騙過了1.7萬名程序員,導(dǎo)致這個(gè)惡意程序被運(yùn)行了4.5萬次,甚至連美國軍方都中招了。
使用pip請謹(jǐn)慎
那么,我們?nèi)绾晤A(yù)防被安裝惡意的PyPI軟件包?
你以為只要認(rèn)真檢查安裝命令就行了?No!
由于PyPI絕大部分軟件包都是第三方編寫和維護(hù)的,這體現(xiàn)了開源的優(yōu)勢,但也埋下了審核不嚴(yán)的危險(xiǎn)種子。
如今,很多軟件都需要安裝依賴項(xiàng),個(gè)人不可能一一檢查,甚至大公司也做不到。有時(shí)候一個(gè)軟件里寫了上百個(gè)依賴項(xiàng),根本沒法審查代碼。
最好的辦法就是監(jiān)控setup.py的行為,在安裝不太放心的軟件包時(shí),可以在容器中通過pip安裝包,同時(shí)收集系統(tǒng)調(diào)用和網(wǎng)絡(luò)流量,來分析其是否有惡意行為。
最后再提醒一下大家,不僅pip命令有風(fēng)險(xiǎn),使用npm、gem等軟件包安裝命令也可能中毒,一定要對來源不明的軟件包仔細(xì)核查。
參考鏈接:
[1]https://blog.sonatype.com/sonatype-catches-new-pypi-cryptomining-malware-via-automated-detection
[2]https://arstechnica.com/gadgets/2021/06/counterfeit-pypi-packages-with-5000-downloads-installed-cryptominers/
[3]https://www.freebuf.com/articles/web/254820.html
[4]https://github.com/rsc-dev/pypi_malware
文章轉(zhuǎn)載:量子位
(版權(quán)歸原作者所有,侵刪)
![]()

點(diǎn)擊下方“閱讀原文”查看更多
