Backdoored PyTorch Lightning Package Drops Credential Stealer: What You Need to Know(2026-07-07)
如果你正在用PyTorch Lightning训练模型,这个安全警报你绝不能错过。近日,安全研究人员发现一个名为pytorch-lightning-ai的恶意包被上传至PyPI(Python包索引),潜伏期长达两周,目标直指开发者的云服务凭证。这不是普通的测试干扰——它是一枚精心设计的“后门炸弹”,专门盗取你的AWS、GCP和GitHub Token。
攻击细节:不仅仅是一个“山寨包”
假包伪装极深
攻击者复刻了官方pytorch-lightning包的API结构,仅将包名多了一个-ai后缀。在setup.py中,他们嵌入了Base64编码的Payload。当用户通过pip install pytorch-lightning-ai安装时,这个Payload会静默执行:
- 第一阶段:下载一个名为
sysinfo.py的附加脚本(从GitHub Gist拉取) - 第二阶段:该脚本扫描本地环境变量(
AWS_ACCESS_KEY_ID、GITHUB_TOKEN、GOOGLE_APPLICATION_CREDENTIALS等) - 第三阶段:将窃取的数据通过HTTPS POST请求发送到攻击者控制的C2服务器
真实案例数据
- 受感染时间段:2026年6月18日至7月2日
- 下载量:PyPI统计显示该包被下载超过4,200次(主要来自CI/CD流水线和Jupyter Notebook环境)
- 受影响项目:至少12个公开GitHub仓库的
.env文件中发现了该包依赖(来自Sonatype的自动扫描数据) - 已确认损失:一家AI创业公司因此丢失了GCP Bucket的全部访问权限,导致训练数据被加密勒索
为什么开发者容易中招?
信任链的脆弱点
许多开发者使用pip install时不验证包名精确性,尤其是在复制粘贴快速安装命令时。更危险的是,CI/CD流水线中频繁使用通配符版本依赖(pytorch-lightning-*),让攻击者可以合法地抢占命名空间。
官方回应滞后
PyTorch Lightning团队在攻击曝光后24小时内才向PyPI举报,但恶意包在此期间已下载超2,000次。目前该包已被移除,但PyPI缺乏自动化恶意包检测能力的事实再次被暴露。
实用建议:保护你的AI开发环境
立即行动清单
- 检查你的环境:运行以下命令查找攻击迹象:
pip list | grep -i "pytorch-lightning-ai" grep -r 'sysinfo' /usr/local/lib/python*/site-packages/ 2>/dev/null - 轮换所有敏感凭证:如果你在过去30天内曾使用该包,立即重置所有云服务的API密钥和令牌
- 锁定依赖版本:在
requirements.txt中指定精确版本号(pytorch-lightning==2.3.0而非>=2.3.0) - 启用依赖审计:使用
pip-audit或safety工具扫描已安装包的可疑行为
长期防御策略
- 安装后立即运行
pip check验证包完整性 - 在CI/CD管道中加入数字签名验证(如HashiCorp的
cosign) - 对生产环境启用网络隔离,限制出站到未知域名的流量
行动号召
别等到你的训练数据被加密、云账单被刷爆才后悔。立即花5分钟,完成以上检查清单的第一步。 如果你发现任何异常,请向PyPI安全团队([email protected])以及CNCERT报告。
记住:在开源生态中,一次粗心的pip install可能就是一次致命的供应链攻击。你的模型可以等待,你的安全不能等待。
免责声明:本文提供的信息仅供教育和安全防范参考。作者和平台不对因采纳本文建议而产生的任何直接或间接损失承担责任。在轮换凭证或修改系统配置前,请确保你理解操作的风险并在测试环境中验证。文中提及的恶意包名已向PyPI举报,请勿尝试下载或逆向分析(可能违反当地计算机安全法规)。如果你认为自己是受害者,建议联系专业网络安全团队进行取证分析。