PyTorch安装包有问题。官方警告:这些Linux用户请立即卸载,否则将遭受数据泄露。“所有在2022年12月25日至12月30日期间在Linux系统上安装过PyTorch-nightly(每日更新版)的用户,请立即卸载!”以上消息来自PyTorch官方最新声明。据官方称,他们刚刚发现了一个与框架的“torchtriton”库同名的恶意依赖项,它在PyPI代码库上被破坏并运行恶意二进制文件。攻击者试图窃取用户IP地址、当前工作目录等敏感数据并上传到指定地址。在从PyPI中删除之前,相关恶意代码已被下载2300多次。然而,事已至此,袭击者本人发表声明,坚称没有恶意,一切只是为了道德研究。所以发生了什么事?具体是这样的:攻击者在Python的官方索引库:PyPI(PythonPackageIndex)中创建了一个名为“torchtriton”的Python包。为什么取这个名字?当然是故意的。这将匹配PyTorch本身具有的包名称,就像玩Cosplay一样。然后,由于同名,“faketorchtriton”被上传到PyPI。并且由于PyPI索引优先,假冒的torchtriton被默认安装在用户的设备上,而真正的官方版本被搁置一旁。这被称为供应链攻击,其中托管在公共包索引上的包之间的依赖关系会直接受到影响。不出所料,这个假的torchtriton带有很多坏东西:它比官方版本有更多的代码来上传敏感数据,而且它还包含一个恶意的triton二进制文件。一旦安装在用户的设备上,它就可以入侵系统并窃取用户的重要数据,例如:主机名、用户名、系统上的已知用户和SSH密钥。据说用户列表是从/etc/passwd中提取的,幸运的是,它实际上并不包含任何密码或密码哈希值。至于SSH密钥,这是安全外壳(SSH)协议中使用的安全访问凭证,是Linux服务器运行和维护的关键。有网友指出:关于SSH密钥,Linux存在一些漏洞,iOS和Android的安全模型不会让Python软件包窃取SSH密钥。但是,最好的解决方案是执行最小权限原则,不授予程序任何不必要的权限。或者,您可以考虑雇人检查包裹。在用户端,如果你不记得自己下载的是哪个版本,官方提供了一种检查方式:输入以下命令在torchtriton包(PYTHON_SITE_PACKAGES/triton/runtime/triton)中搜索恶意二进制文件,然后你可以查看当前的Python环境是否受到影响。在事件发生后的官方声明中,PyTorch也提出了他们的解决策略。PyTorch将“torchtriton”依赖项重命名为“PyTorch-triton”,并在PyPI上保留了一个虚拟包以防止类似的攻击。同时,官方还发推呼吁在2022年12月25日至12月30日期间下载恶意版本的用户立即卸载并使用最新版本。事情进一步发酵后,有媒体跟风效仿,根据被盗数据转入的域名,找到了域名背后的主人。公开记录显示,该域名是在12月21日刚刚注册的,也就是Pytorch事件的前几天。根据BleepingComputer的说法,所有者坚称他所做的“不是恶意的”,并且是为了道德研究而进行的,并且所有数据都已被删除。我为此承担责任并道歉。同时,我想向您保证,我无意窃取他人的秘密。在确认该漏洞存在后,我已于12月29日(正式公告前近三天)向Facebook报告了此问题。我还通过HackerOne向其他可能受影响的公司提交了报告。如果我是恶意的,我将永远不会填写任何漏洞赏金报告,而只会将数据卖给出价最高的人。至于发送大量用户敏感数据的原因,他进一步解释说:过去依靠混淆攻击进行调查时,大多数情况下无法根据主机名、用户名和CWD来识别受害者。这就是为什么我这次决定发送更多数据,但回过头来看,这是一个错误的决定,我应该更加谨慎。PyTorch官方暂未对攻击者的说法做出回应。你如何看待这次PyTorch事件?
