PyTorch安装包出问题,官方警告:这些用户请立即卸载!

Alex羿阁发自凹非寺
量子位|公众号QbitAI
“所有在2022年12月25日至12月30日期间 , 在Linux系统安装了PyTorch-nightly(每日更新版)的用户 , 请立即卸载!”
上述消息来自PyTorch官方的一则最新声明 。
PyTorch安装包出问题,官方警告:这些用户请立即卸载!
文章图片
据官方透露 , 他们刚刚识别出一个与框架的“torchtriton”库同名的恶意依赖项 , 该依赖项在PyPI代码库上被破坏 , 并运行恶意二进制文件 。
攻击者试图窃取用户IP地址、当前工作目录等敏感数据并上传到指定地址 , 相关恶意代码在从PyPI删除之前已被下载2300+次 。
不过就在事情一面倒时 , 攻击者却自己发表了声明 , 坚称并无恶意 , 一切只是为了道德研究 。
那么——
到底发生了什么?具体事情是这样的:
攻击者在Python的官方索引库:PyPI(PythonPackageIndex) , 创建了一个叫“torchtriton”的Python软件包 。
PyTorch安装包出问题,官方警告:这些用户请立即卸载!
文章图片
为何取这个名字?
当然是故意的 。
这样就能和PyTorch本身有的一个包名字相匹配 , 好比玩起了Cosplay 。
然后 , 由于名字相同 , “假torchtriton”就被跟着上传到了PyPI中 。
又因为PyPI索引具有优先权 , 所以假torchtriton就被默认安装到用户的设备上了 , 而真正的官方版本却被搁置到一旁 。
这就是所谓的供应链攻击 , 在公共软件包索引上 , 被托管的软件包之间的的依赖关系都受到了直接影响 。
不出所料 , 这个假torchtriton自带一肚子坏水:
它比官方版多了上传敏感数据的代码 , 还包含一个恶意的triton二进制文件 。
一旦被安装在用户设备上 , 它就可以入侵系统 , 窃取用户的重要数据 , 比如:主机名、用户名、系统中的已知用户 , 以及SSH密钥等 。
据悉用户的列表是从/etc/passwd中提取的 , 幸运的是 , 它实际上并不包含任何密码或密码哈希值 。
至于SSH密钥 , 这是安全外壳(SSH)协议中使用的安全访问凭证 , 也是Linux服务器运维的关键 。
有网友指出:
关于SSH密钥 , Linux存在一些漏洞 , 而iOS和Android的安全模型就不会允许Python软件包窃取SSH密钥 。
不过 , 最好的解决方案是实施最小权限原则 , 不要给程序授予任何不必要的权限 。
另外 , 或许也可以考虑请雇人检查软件包 。
PyTorch安装包出问题,官方警告:这些用户请立即卸载!
文章图片
用户这边 , 如果你记不清自己下载的是哪个版本 , 官方给出了一个检查的办法:
输入以下命令 , 在torchtriton包(PYTHON_SITE_PACKAGES/triton/runtime/triton)中搜索恶意二进制文件 , 然后就能看到在当前的Python环境是否受到影响 。
PyTorch安装包出问题,官方警告:这些用户请立即卸载!
文章图片
事件后续在官方声明中 , PyTorch也提出了他们的解决策略 。
PyTorch将“torchtriton”依赖项重命名为“PyTorch-triton” , 并在PyPI上保留了一个虚拟包 , 以防止类似的攻击 。
PyTorch安装包出问题,官方警告:这些用户请立即卸载!
文章图片
同时 , 官方也发推呼吁在2022年12月25日至12月30日期间下载了恶意版本的用户立即卸载 , 并使用最新版本 。
事情进一步发酵后 , 有媒体顺藤摸瓜 , 根据被盗数据传输到的域名 , 找到了该域名背后的所有者 。
公共记录显示 , 该域名于12月21日刚刚注册 , 就在Pytorch事件发生的几天前 。
据BleepingComputer消息 , 这位所有者坚称自己的做法“不是恶意的” , 只是为了道德研究 , 而且所有数据都已删除 。