PyPI包lightning被植入恶意代码,影响2.6.2和2.6.3两个版本。这是2026年最严重的一次AI开发工具供应链攻击。
攻击方式很隐蔽:恶意版本包含一个隐藏的_runtime目录,里面有混淆过的JavaScript代码,在模块导入时自动执行。窃取的是开发者最不想丢的东西——凭证、认证令牌、环境变量、云服务密钥。
攻击手法拆解
这个恶意包的传播方式有两个值得注意的点。
第一,入口是PyPI,但传播通过npm。一旦恶意代码在开发者机器上运行,如果发现了npm发布凭证,它会往开发者名下的每个npm包里注入恶意代码,自动升版本号然后重新发布。下游开发者安装这些被污染的包,又会继续传播。
这是一种跨生态的蠕虫式传播,从Python生态蔓延到JavaScript生态。
第二,数据外泄有四条并行通道:HTTPS直传C2服务器、GitHub commit搜索API的dead-drop、攻击者控制的公开GitHub仓库、以及通过npm包传播。四条通道并行,堵住一条还有三条。
对独立开发者的影响
如果你在用PyTorch Lightning做AI模型训练、图像分类、LLM微调、扩散模型开发——立刻检查你的依赖版本。2.6.2和2.6.3都是恶意版本。
更深层的问题是:大多数开发者的依赖安全意识严重不足。
pip install一个包,很少有人会检查包的版本历史、代码变更、维护者信息。我们信任PyPI、npm这些包管理器,但它们的安全机制远不够完善。
独立开发者怎么自保
第一,锁定依赖版本。不要用latest,不要用^2.6,用精确版本号2.6.1。每次升级前检查changelog和diff。
第二,使用依赖审计工具。Semgrep、Socket.dev、Snyk——这些工具能在你安装恶意包之前发出警告。免费版就够个人开发者用。
第三,隔离开发环境。不同的项目用不同的虚拟环境或容器,避免一个包被污染后影响所有项目。云凭证和API密钥不要放在环境变量里,用专门的密钥管理工具。
第四,关注安全公告。HN、Reddit、Twitter上的安全研究者通常比官方公告更快发现异常。养成每天扫一眼安全新闻的习惯。
一个更大的趋势
供应链攻击正在成为AI时代的主流攻击方式。攻击者不再直接攻击你的应用,而是攻击你依赖的工具链。
对于独立开发者来说,这意味着安全不再是"等产品做大了再考虑"的事情。从第一个commit开始,依赖安全就应该是开发流程的一部分。
来源:HackerNews