3

PyTorch安装包出问题,官方警告:这些Linux用户请立即卸载,否则会遭数据泄漏

 1 year ago
source link: https://www.qbitai.com/2023/01/40963.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

PyTorch安装包出问题,官方警告:这些Linux用户请立即卸载,否则会遭数据泄漏

head.jpgalex 2023-01-03 12:35:33 来源:量子位

攻击者坚称并无恶意

Alex 羿阁 发自 凹非寺

量子位 | 公众号 QbitAI

“所有在2022年12月25日至12月30日期间,在Linux系统安装了PyTorch-nightly(每日更新版)的用户,请立即卸载!”

上述消息来自PyTorch官方的一则最新声明。

19f978f223664c2c89904d0c02958095~tplv-tt-shrink:640:0.image

据官方透露,他们刚刚识别出一个与框架的“torchtriton”库同名的恶意依赖项,该依赖项在PyPI代码库上被破坏,并运行恶意二进制文件。

攻击者试图窃取用户IP地址、当前工作目录等敏感数据上传到指定地址,相关恶意代码在从PyPI删除之前已被下载2300+次

不过就在事情一面倒时,攻击者却自己发表了声明,坚称并无恶意,一切只是为了道德研究。

到底发生了什么?

具体事情是这样的:

攻击者在Python的官方索引库:PyPI (Python Package Index),创建了一个叫“torchtriton”的Python软件包。

74786af287ed45e69b4c8f33c1c540de~tplv-tt-shrink:640:0.image

为何取这个名字?

当然是故意的。

这样就能和PyTorch本身有的一个包名字相匹配,好比玩起了Cosplay。

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

又因为PyPI索引具有优先权,所以假torchtriton就被默认安装到用户的设备上了,而真正的官方版本却被搁置到一旁。

这就是所谓的供应链攻击,在公共软件包索引上,被托管的软件包之间的的依赖关系都受到了直接影响。

不出所料,这个假torchtriton自带一肚子坏水:

它比官方版多了上传敏感数据的代码,还包含一个恶意的triton二进制文件。

一旦被安装在用户设备上,它就可以入侵系统,窃取用户的重要数据,比如:主机名、用户名、系统中的已知用户,以及SSH密钥等。

据悉用户的列表是从/etc/passwd中提取的,幸运的是,它实际上并不包含任何密码或密码哈希值。

至于SSH密钥,这是安全外壳 (SSH)协议中使用的安全访问凭证,也是Linux服务器运维的关键。

有网友指出:

关于SSH密钥,Linux存在一些漏洞,而iOS和Android的安全模型就不会允许Python软件包窃取SSH密钥。

不过,最好的解决方案是实施最小权限原则,不要给程序授予任何不必要的权限。

另外,或许也可以考虑请雇人检查软件包。

6017f930c9cf4e6fa80fc25a0cc64476~tplv-tt-shrink:640:0.image

用户这边,如果你记不清自己下载的是哪个版本,官方给出了一个检查的办法:

输入以下命令,在torchtriton包(PYTHON_SITE_PACKAGES/triton/runtime/triton)中搜索恶意二进制文件,然后就能看到在当前的Python环境是否受到影响。

598075a98c614c52b38bb0dfeac5d19c~tplv-tt-shrink:640:0.image

在官方声明中,PyTorch也提出了他们的解决策略。

PyTorch将“ torchtriton”依赖项重命名为“ PyTorch- triton”,并在PyPI上保留了一个虚拟包,以防止类似的攻击。

6d40de45cb8f4ef59d5127037d04b2b1~tplv-tt-shrink:640:0.image

同时,官方也发推呼吁在2022年12月25日至12月30日期间下载了恶意版本的用户立即卸载,并使用最新版本。

事情进一步发酵后,有媒体顺藤摸瓜,根据被盗数据传输到的域名,找到了该域名背后的所有者。

公共记录显示,该域名于12月21日刚刚注册,就在Pytorch事件发生的几天前。

据Bleeping Computer消息,这位所有者坚称自己的做法“不是恶意的”,只是为了道德研究,而且所有数据都已删除。

d1b0b15d7c844961addf1c93dbc93581~tplv-tt-shrink:640:0.image

我为此承担责任并道歉。与此同时,我想向你们保证,我无意窃取别人的秘密。

我已经在12月29日(几乎是官方宣布的三天前)在确认漏洞存在后向Facebook报告了这个问题。

我还通过HackerOne向其他可能受到影响的公司提交了报告。

如果我是恶意的,我将永远不会填写任何漏洞赏金报告,而是只把数据出售给出价最高的人。

对于发送许多用户敏感数据的原因,他进一步解释:

在过去调查依赖混淆攻击时,大多数情况下不可能根据受害者的主机名、用户名和CWD来识别他们。

这就是我这次决定发送更多数据的原因,但是回顾过去,这是一个错误的决定,我应该更加谨慎。

对于攻击者的这一说法,目前PyTorch官方还未做出回应。

对这次PyTorch事件,你怎么看?

参考链接:
[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

版权所有,未经授权不得以任何形式转载及使用,违者必究。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK