近日,知名人工智能机器学习框架 PyTorch 项目发出安全警告,在2022年12月25日至2022年12月30日期间安装了PyTorch库的用户,立即卸载并下载最新的版本。
根据中国网络安全行业门户极牛网(GeekNB.com)的梳理,在此期间通过 pip 安装的 PyTorch-nightly Linux 包安装了一个依赖项 torchtriton,它在 Python 包索引 PyPI 代码存储库中遭到破坏并运行了一个恶意的二进制文件。
PyTorch是一个基于Python的开源机器学习库,类似 Keras 和 TensorFlow 等人工智能框架,最早由Facebook基于Torch开发,目前以归入Linux基金会旗下管理。
该软件供应链攻击需要将名为 torchtriton 的合法依赖项的恶意软件副本上传到 Python 包索引 (PyPI) 代码存储库。由于像 pip 这样的软件包管理器会先检查 PyPI 等公共代码注册表,然后再检查私有注册表,因此它允许将欺诈模块安装在用户系统上,而不是从第三方索引中提取的实际版本。
安全研究人员表示,攻击者利用了 PyTorch 从专用包索引中使用多个依赖包这一事实,以及包管理器 pip 将 PyPI 包索引优先于其他索引这一事实。
该带有恶意程序的版本,会访问以下文件,以及其他系统信息、环境变量等:
/etc/hosts
/etc/passwd
$HOME/* 目录中的前100个文件
$HOME/.gitconfig
$HOME/.ssh/*
网络安全研究人员在对假冒 torchtriton 模块的分析中发现,该软件包与其合法对应模块几乎 100% 相同,除了一个关键变化使其能够运行名为 triton 的恶意二进制文件来收集敏感数据。
作为缓解措施,torchtriton 已作为依赖项被删除并替换为 pytorch-triton。虚拟包也已在 PyPI 上注册为占位符,以防止被进一步滥用。