作者 | Sergio De Simone
译者 | 平川
策划 | 丁晓昀
PyTorch 维护者表示,建议在 2022 年 12 月 25 日至 12 月 30 日期间安装了 PyTorch 夜间构建的开发人员卸载它并清除 pip 缓存,以摆脱恶意包。新的攻击凸显了最近的一个趋势。
供应链攻击源自一个恶意依赖项。该依赖项被推送到了 PyPi,它与 PyTorch 夜间构建附带的依赖项同名。
由于 PyPI 是索引优先的,所以安装的是这个恶意包,而不是官方存储库中的版本。这种设计允许用户注册与第三方索引中存在重名的包,pip 将默认安装他们的版本。
该恶意包名为 torchtriton,包含一个二进制文件,除了窃取主机名、DNS 配置、用户名、shell 环境等系统信息外,还会将/etc/hosts
、/etc/passwords
、~/.gitconfig
、~ /.ssh /*
的内容,以及在用户主目录中找到的前 1000 个文件上传到外部服务器。不过,只有当用户显式地将triton
包导入到他们的程序中时,信息才会被泄露,这降低了此次攻击的影响。
这种被称为依赖混淆的供应链攻击方案并不新颖。在接受 InfoQ 采访时,Endor Labs 安全研究员 Henrik Plate 解释说,这种攻击“与我们在过去两年中看到的次世代攻击类型一致”,攻击者的重点是操纵维护者和用户,而不是设法利用漏洞。
在官方披露后,torchtriton 的所谓维护者在他们的网站上宣称,这个包不是恶意的。对此,Ax Sharma 首先在 Twitter 上做了 报道。不过,在 分析Bleeping Computer 的攻击时,Sharma 还透露,torchtriton 使用了反虚拟机技术以及混淆来逃避检测。
这也不是第一次有黑客声称他们的行为应算是伦理研究,就像他们被抓到窃取机密一样。
根据 Plate 的说法,依赖项混淆攻击可以使用私有存储库来托管内部包和镜像外部包来解决。Python 生态系统有一个这样的解决方案是 devpi,但它并不简单。
通常,这样的解决方案允许对依赖项解析和包下载过程进行更多的控制。但是,它们的设置和操作需要付出不小的努力,并且只有在开发人员本地客户端配置正确时,它们才有效。
PyTorch 维护者立即采取行动,删除作为依赖项的 torchtriton,替换为 pytorch-triton,并在 PyPi 上注册了一个假包,以确保这种情况不会再发生。
原文链接:
https://www.infoq.com/news/2023/01/pytorch-supply-chain-attack/
相关阅读:
里程碑!PyTorch 正式加入 Linux 基金会,社区治理这一核心将不会改变 (https://www.infoq.cn/article/OYS7T01SgBBZvCqNT04E)
深度学习为什么要选择 PyTorch(https://www.infoq.cn/article/7Azz9NMpjuI4zmV4S4oC )
进击的 PyTorch,和它背后的开源领袖 (https://xie.infoq.cn/article/579fa337d715f17aef15e4c6e )
声明:本文为 InfoQ 翻译,未经许可禁止转载。
点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!
今日好文推荐
GitHub裁员10%,办公室全关,全体远程办公;微软必应集成ChatGPT下载量猛增10倍;谷歌出师不利市值蒸发超万亿|Q资讯
马斯克开会当场解雇Twitter首席工程师:我有1亿多粉丝,他却说公众对我失去兴趣
15年做不好的代码搜索,用Rust重写搞定:GitHub声称能从此“改变游戏规则”