PyPI量子计算库mrmustard遭供应链投毒:0.7.4版本内置凭证窃取木马

事件概述

2026年7月23日至24日,Python包索引(PyPI)上的量子计算库mrmustard遭遇严重的供应链攻击。攻击者通过入侵项目维护者的GitHub账户,在PyPI上发布了被植入木马的0.7.4版本。该恶意版本在导入时会窃取开发者的SSH密钥、AWS凭证、Kubernetes配置等敏感信息,并通过cron任务、shell启动项和Python .pth文件建立多路径持久化机制。

该事件由GitHub用户Ilyas Makari率先在XanaduAI/MrMustard issue #656中报告,随后被SafeDep、OSV(Open Source Vulnerabilities)和Gridinsoft等安全机构确认并追踪为MAL-2026-11049

技术细节

攻击路径

  1. 账户入侵:攻击者获取了mrmustard项目维护者的GitHub账户控制权
  2. 恶意发布:通过被入侵的账户直接发布0.7.4版本到PyPI,该版本在GitHub仓库中无对应标签、无发布记录、无匹配提交
  3. Import-time执行:恶意代码在import mrmustard时即被触发,无需任何额外函数调用
  4. 凭证窃取:窃取SSH密钥、AWS访问密钥、Kubernetes配置文件、SLURM作业数据和GPU清单
  5. 持久化:建立cron任务、shell rc文件钩子和.pth文件确保长期驻留
  6. 数据外泄:将所有收集的数据回传至攻击者控制的服务器

持久化机制分析

根据SafeDep的详细分析,恶意载荷建立了以下持久化路径:

路径/文件 作用
~/.cache/.tf_cache/hw_probe.pyc 编译后的持久化窃取器主程序
~/.cache/.tf_cache/ 工作目录,存放.lock_*和.ts_*状态文件
mmcompat.pth 位于site-packages目录,Python启动时自动加载
cron任务(每15分钟) */15 * * * * /usr/bin/env python3 .../hw_probe.pyc
shell rc钩子 .bashrc/.zshrc中插入”tensorflow hardware compatibility check”标记代码块

目标环境

恶意代码特别针对研究和高性能计算(HPC)环境进行优化:

  • 收集SLURM作业调度数据
  • 枚举GPU清单和CUDA版本
  • 窃取云计算凭据(AWS、Azure、GCP)
  • 窃取SSH密钥用于横向移动

在共享HPC登录节点上,由于mmcompat.pth被放置在共享的site-packages目录中,任何启动Python的用户都会触发恶意代码,爆炸半径远超单一用户。

影响评估

mrmustard是Xanadu公司开发的可微分量子光学模拟器,广泛应用于量子计算研究和光子电路仿真领域。此次供应链攻击的影响包括:

  • 云基础设施接管:窃取的AWS/Azure访问密钥可直接读写云端存储、修改云服务配置
  • 横向渗透:SSH密钥泄露使攻击者可无密码登录开发者和研究人员的其他服务器
  • Kubernetes集群入侵:K8s配置泄露可致整个容器集群被控制
  • HPC资源滥用:攻击者可能利用窃取的凭证盗用高性能计算资源进行加密货币挖矿
  • 学术研究数据泄露:量子计算研究中的敏感数据和知识产权面临泄露风险

修复建议

紧急处置(如曾安装0.7.4)

SafeDep明确指出:仅卸载mrmustard不足以清除威胁。如任何机器导入了mrmustard@0.7.4,或存在上述持久化文件,应按以下步骤清理:

  1. 立即轮换凭证:在干净主机上优先吊销或更换所有暴露的SSH密钥、AWS访问密钥、Azure PAT和Kubernetes凭据
  2. 删除目录:rm -rf ~/.cache/.tf_cache/
  3. 删除所有site-packages目录中的mmcompat.pth文件
  4. 检查并清理cron任务:crontab -l,删除指向hw_probe.pyc的条目
  5. 检查shell配置文件(~/.bashrc~/.zshrc),删除”# tensorflow hardware compatibility check”标记的代码块
  6. 审查CloudTrail和Kubernetes审计日志,查找2026年7月23日后的异常凭证使用

预防性措施

  • 将PyPI包版本与GitHub仓库的发布标签和提交记录进行交叉验证
  • 使用SafeDep Package Manager Guard(pmg)等工具在安装前扫描恶意包
  • 在CI/CD管道中启用软件成分分析(SCA)和依赖包签名校验
  • 对PyPI_TOKEN和CODECOV_TOKEN等发布凭证实施定期轮换
  • 为GitHub Actions自托管运行器实施网络隔离和最小权限

参考来源