設(shè)置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

PyTorch 安裝包出問(wèn)題,官方警告:部分用戶有數(shù)據(jù)泄漏的風(fēng)險(xiǎn)

量子位 2023/1/3 13:30:09 責(zé)編:夢(mèng)澤

原文標(biāo)題:《PyTorch 安裝包出問(wèn)題,官方警告:這些 Linux 用戶請(qǐng)立即卸載,否則會(huì)遭數(shù)據(jù)泄漏》

“所有在 2022 年 12 月 25 日至 12 月 30 日期間,在 Linux 系統(tǒng)安裝了 PyTorch-nightly(每日更新版)的用戶,請(qǐng)立即卸載!”

上述消息來(lái)自 PyTorch 官方的一則最新聲明。

據(jù)官方透露,他們剛剛識(shí)別出一個(gè)與框架的“torchtriton”庫(kù)同名的惡意依賴項(xiàng),該依賴項(xiàng)在 PyPI 代碼庫(kù)上被破壞,并運(yùn)行惡意二進(jìn)制文件。

攻擊者試圖竊取用戶 IP 地址、當(dāng)前工作目錄等敏感數(shù)據(jù)上傳到指定地址,相關(guān)惡意代碼在從 PyPI 刪除之前已被下載 2300 + 次。

不過(guò)就在事情一面倒時(shí),攻擊者卻自己發(fā)表了聲明,堅(jiān)稱并無(wú)惡意,一切只是為了道德研究。

那么 ——

到底發(fā)生了什么?

具體事情是這樣的:

攻擊者在 Python 的官方索引庫(kù):PyPI (Python Package Index),創(chuàng)建了一個(gè)叫“torchtriton”的 Python 軟件包。

為何取這個(gè)名字?

當(dāng)然是故意的。

這樣就能和 PyTorch 本身有的一個(gè)包名字相匹配,好比玩起了 Cosplay。

然后,由于名字相同,“假 torchtriton”就被跟著上傳到了 PyPI 中。

又因?yàn)?PyPI 索引具有優(yōu)先權(quán),所以假 torchtriton 就被默認(rèn)安裝到用戶的設(shè)備上了,而真正的官方版本卻被擱置到一旁。

這就是所謂的供應(yīng)鏈攻擊,在公共軟件包索引上,被托管的軟件包之間的的依賴關(guān)系都受到了直接影響。

不出所料,這個(gè)假 torchtriton 自帶一肚子壞水:

它比官方版多了上傳敏感數(shù)據(jù)的代碼,還包含一個(gè)惡意的 triton 二進(jìn)制文件。

一旦被安裝在用戶設(shè)備上,它就可以入侵系統(tǒng),竊取用戶的重要數(shù)據(jù),比如:主機(jī)名、用戶名、系統(tǒng)中的已知用戶,以及 SSH 密鑰等。

據(jù)悉用戶的列表是從 / etc / passwd 中提取的,幸運(yùn)的是,它實(shí)際上并不包含任何密碼或密碼哈希值。

至于 SSH 密鑰,這是安全外殼 (SSH)協(xié)議中使用的安全訪問(wèn)憑證,也是 Linux 服務(wù)器運(yùn)維的關(guān)鍵。

有網(wǎng)友指出:

關(guān)于 SSH 密鑰,Linux 存在一些漏洞,而 iOS 和 Android 的安全模型就不會(huì)允許 Python 軟件包竊取 SSH 密鑰。

不過(guò),最好的解決方案是實(shí)施最小權(quán)限原則,不要給程序授予任何不必要的權(quán)限。

另外,或許也可以考慮請(qǐng)雇人檢查軟件包。

用戶這邊,如果你記不清自己下載的是哪個(gè)版本,官方給出了一個(gè)檢查的辦法:

輸入以下命令,在 torchtriton 包(PYTHON_SITE_PACKAGES / triton / runtime / triton)中搜索惡意二進(jìn)制文件,然后就能看到在當(dāng)前的 Python 環(huán)境是否受到影響。

事件后續(xù)

在官方聲明中,PyTorch 也提出了他們的解決策略。

PyTorch 將“ torchtriton”依賴項(xiàng)重命名為“ PyTorch- triton”,并在 PyPI 上保留了一個(gè)虛擬包,以防止類似的攻擊。

同時(shí),官方也發(fā)推呼吁在 2022 年 12 月 25 日至 12 月 30 日期間下載了惡意版本的用戶立即卸載,并使用最新版本。

事情進(jìn)一步發(fā)酵后,有媒體順藤摸瓜,根據(jù)被盜數(shù)據(jù)傳輸?shù)降挠蛎?,找到了該域名背后的所有者?/p>

公共記錄顯示,該域名于 12 月 21 日剛剛注冊(cè),就在 Pytorch 事件發(fā)生的幾天前。

據(jù) Bleeping Computer 消息,這位所有者堅(jiān)稱自己的做法“不是惡意的”,只是為了道德研究,而且所有數(shù)據(jù)都已刪除。

我為此承擔(dān)責(zé)任并道歉。與此同時(shí),我想向你們保證,我無(wú)意竊取別人的秘密。

我已經(jīng)在 12 月 29 日 (幾乎是官方宣布的三天前) 在確認(rèn)漏洞存在后向 Facebook 報(bào)告了這個(gè)問(wèn)題。

我還通過(guò) HackerOne 向其他可能受到影響的公司提交了報(bào)告。

如果我是惡意的,我將永遠(yuǎn)不會(huì)填寫(xiě)任何漏洞賞金報(bào)告,而是只把數(shù)據(jù)出售給出價(jià)最高的人。

對(duì)于發(fā)送許多用戶敏感數(shù)據(jù)的原因,他進(jìn)一步解釋:

在過(guò)去調(diào)查依賴混淆攻擊時(shí),大多數(shù)情況下不可能根據(jù)受害者的主機(jī)名、用戶名和 CWD 來(lái)識(shí)別他們。

這就是我這次決定發(fā)送更多數(shù)據(jù)的原因,但是回顧過(guò)去,這是一個(gè)錯(cuò)誤的決定,我應(yīng)該更加謹(jǐn)慎。

對(duì)于攻擊者的這一說(shuō)法,目前 PyTorch 官方還未做出回應(yīng)。

參考鏈接:

  • [1] https://twitter.com/pytorch/status/1609334425384517633

  • [2] https://www.bleepingcomputer.com/news/security/pytorch-discloses-malicious-dependency-chain-compromise-over-holidays/

  • [3] https://thehackernews.com/2023/01/pytorch-machine-learning-framework.html

  • [4]https://news.ycombinator.com/item?id=34202662

本文來(lái)自微信公眾號(hào):量子位 (ID:QbitAI),作者:Alex 羿閣

廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:PyTorch

軟媒旗下網(wǎng)站: IT之家 最會(huì)買(mǎi) - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會(huì)買(mǎi) 要知