小心!你下載的機器學習工具包可能是病毒:CuPy被掉包,官方一天后才發(fā)現(xiàn)
真是有驚無險
曉查 發(fā)自 凹非寺?量子位 報道 | 公眾號 QbitAI
小心!你通過pip安裝的機器學習工具包,有可能是惡意軟件。
如果你最近下載了NumPy的CUDA加速包CuPy,那么你要注意了:
cupy-cuda112這款軟件包,前幾天被黑客悄悄換成了一個“惡意軟件”。

不過還個好消息,冒牌的軟件包已經(jīng)被刪除了。除此之外,PyPI最近還刪除了3653個惡意軟件包。
整個事件的過程是這樣的:
官方名稱被搶注
2月26日凌晨5點,Cupy官方團隊計劃在這一天發(fā)布用于CUDA 11.2的CuPy工具包,因此準備在PyPI中注冊cupy-cuda112這個名稱。
然而,他們發(fā)現(xiàn),有人居然在前一天晚上把這個軟件包搶注了,而且搶注的黑客還上傳了一個無效的版本v2.2.2。
此時,CuPy已經(jīng)是v8.4.0了,而官方計劃發(fā)布的是v8.5.0和v9.0.0b3兩個版本。

CuPy團隊迅速向PyPI團隊提交移除cupy-cuda112的請求,然后在Twitter和GitHub的issue頁向所有程序員發(fā)布公告:我們的軟件被掉包了。
PyPI的處理也算迅速,到了中午11點, 假冒的cupy-cuda112軟件包終于被下架。
直到3月2日,CuPy團隊才發(fā)布了正版cupy-cuda112軟件包,攻擊事件總算告一段落。
善意的提醒
黑客為何要上傳v2.2.2版,令人匪夷所思。
因為這一版本號和當前CuPy版本差距也太大了。編譯代碼進行版本查詢,很容易就發(fā)現(xiàn)貓膩。黑客顯然并不想瞞天過海。
這位黑客極有可能正在進行一項安全測試。
黑客名叫“RemindSupplyChainRisks”,很明顯他是為了引起大家對惡意軟件風險的重視。

在這個軟件包注釋中,他甚至直接寫道:“我這樣做的目的是使所有人都關(guān)注軟件供應鏈攻擊,因為風險太大了。”
所以說,這根本就是一個帶著善意提醒的“惡意軟件”。但是,如果真的有人利用這個漏洞來攻擊別人呢,真是讓人細思極恐。
假冒軟件包還會向一個IP地址發(fā)送GET請求,告訴黑客有哪些人被攻擊了。
這不禁讓人想起,一個月前類似的事件。
當時安全研究員Alex Birsan發(fā)現(xiàn),采用掉包同名軟件的手法,可以攻破蘋果、微軟、特斯拉等公司的內(nèi)部網(wǎng)絡(luò)。
因為這些科技都有自己的私有PyPI或Node.js軟件包,只要上傳與之同名的惡意軟件,那么程序員們使用pip、npm安裝命令就可能中毒。

Brisan說,這種攻擊方式的成功率簡直讓人吃驚,他也因此獲得了多家公司的漏洞賞金。
根據(jù)PEP 841規(guī)范,項目維護者有保留軟件包索引的權(quán)利,惡意軟件搶注名稱將被視為無效而被刪除。
但是規(guī)范終究只是規(guī)范,缺乏安全審查的包管理工具風險依然存在。
參考鏈接: [1]?https://www.theregister.com/2021/03/02/python_pypi_purges/ [2]?https://github.com/cupy/cupy/issues/4787
版權(quán)所有,未經(jīng)授權(quán)不得以任何形式轉(zhuǎn)載及使用,違者必究。
- 腦機接口走向現(xiàn)實,11張PPT看懂中國腦機接口產(chǎn)業(yè)現(xiàn)狀|量子位智庫2021-08-10
- 張朝陽開課手推E=mc2,李永樂現(xiàn)場狂做筆記2022-03-11
- 阿里數(shù)學競賽可以報名了!獎金增加到400萬元,題目面向大眾公開征集2022-03-14
- 英偉達遭黑客最后通牒:今天必須開源GPU驅(qū)動,否則公布1TB機密數(shù)據(jù)2022-03-05