小心!你下載的機器學習工具包可能是病毒:CuPy被掉包,官方一天後才發現

語言: CN / TW / HK

點選上方視學演算法”,選擇加"星標"或“置頂

重磅乾貨,第一時間送達

曉查 發自 凹非寺 
量子位 報道 | 公眾號 QbitAI

小心!你通過pip安裝的機器學習工具包,有可能是惡意軟體。

如果你最近下載了NumPy的CUDA加速包CuPy,那麼你要注意了:

cupy-cuda112這款軟體包,前幾天被黑客悄悄換成了一個“惡意軟體”。

不過還個好訊息,冒牌的軟體包已經被刪除了。除此之外,PyPI最近還刪除了3653個惡意軟體包。

整個事件的過程是這樣的:

官方名稱被搶注

2月26日凌晨5點,Cupy官方團隊計劃在這一天釋出用於CUDA 11.2的CuPy工具包,因此準備在PyPI中註冊cupy-cuda112這個名稱。

然而,他們發現,有人居然在前一天晚上把這個軟體包搶注了,而且搶注的黑客還上傳了一個無效的版本v2.2.2。

此時,CuPy已經是v8.4.0了,而官方計劃釋出的是v8.5.0和v9.0.0b3兩個版本。

CuPy團隊迅速向PyPI團隊提交移除cupy-cuda112的請求,然後在Twitter和GitHub的issue頁向所有程式設計師釋出公告:我們的軟體被掉包了。

PyPI的處理也算迅速,到了中午11點, 假冒的cupy-cuda112軟體包終於被下架。

直到3月2日,CuPy團隊才釋出了正版cupy-cuda112軟體包,攻擊事件總算告一段落。

善意的提醒

黑客為何要上傳v2.2.2版,令人匪夷所思。

因為這一版本號和當前CuPy版本差距也太大了。編譯程式碼進行版本查詢,很容易就發現貓膩。黑客顯然並不想瞞天過海。

這位黑客極有可能正在進行一項安全測試。

黑客名叫“RemindSupplyChainRisks”,很明顯他是為了引起大家對惡意軟體風險的重視。

在這個軟體包註釋中,他甚至直接寫道:“我這樣做的目的是使所有人都關注軟體供應鏈攻擊,因為風險太大了。”

所以說,這根本就是一個帶著善意提醒的“惡意軟體”。但是,如果真的有人利用這個漏洞來攻擊別人呢,真是讓人細思極恐。

假冒軟體包還會向一個IP地址傳送GET請求,告訴黑客有哪些人被攻擊了。

這不禁讓人想起,一個月前類似的事件。

當時安全研究員Alex Birsan發現,採用掉包同名軟體的手法,可以攻破蘋果、微軟、特斯拉等公司的內部網路。

因為這些科技都有自己的私有PyPI或Node.js軟體包,只要上傳與之同名的惡意軟體,那麼程式設計師們使用pip、npm安裝命令就可能中毒。

Brisan說,這種攻擊方式的成功率簡直讓人吃驚,他也因此獲得了多家公司的漏洞賞金。

根據PEP 841規範,專案維護者有保留軟體包索引的權利,惡意軟體搶註名稱將被視為無效而被刪除。

但是規範終究只是規範,缺乏安全審查的包管理工具風險依然存在。

參考連結:
[1] 
https://www.theregister.com/2021/03/02/python_pypi_purges/
[2] https://github.com/cupy/cupy/issues/4787

—  —

本文系網易新聞•網易號特色內容激勵計劃簽約賬號【量子位】原創內容,未經賬號授權,禁止隨意轉載。


點個在看 paper不斷!

本文分享自微信公眾號 - 視學演算法(visualAlgorithm)。
如有侵權,請聯絡 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

分享到: