如果你在用 Cursor 、 Claude Code 或者任何 AI 编程工具,建议你把这篇文章看完。
一场代号"TrapDoor"的供应链攻击同时袭击了 npm 、 PyPI 和 Crates.io 三大包管理器。 34 个恶意包被精心投毒,目标不是普通人——是 AI 开发者、安全工程师和加密货币钱包持有者。
这不是普通的供应链攻击,它带来了一个全新的攻击面。
攻击手段有多脏
这次攻击的恶心程度,在于以下几个设计:
一、不是直接投毒,是 PR 投毒
攻击者不是简单地上传恶意包。他们向流行的开源项目提交 Pull Request ,在 PR 中注入被操纵的依赖包。
这意味着,如果你用的开源项目维护者不幸合并了那个 PR ,你下一次npm install或者pip install就会直接拉回一个恶意包。
二、精确目标:开发者的数字命脉
恶意包的目标是窃取:加密货币钱包私钥、 SSH 密钥、云服务凭证。
注意这个组合——拥有 SSH 密钥和云凭证的,只能是开发者。攻击者就是在精准地钓开发者。
三、跨平台覆盖
npm ( JavaScript 生态)、 PyPI ( Python 生态)、 Crates.io ( Rust 生态)——三大最主流的包管理器同时被攻击。 JS 开发者被波及, Python 开发者跑不掉, Rust 新贵也挨了刀。
这不是黑帽子的个人行为,更像是有组织的攻击行动。
AI 工具为什么成了新攻击面
这才是最值得讨论的部分。
TrapDoor 攻击和 AI 有什么关系?表面上没有——它攻击的是传统软件供应链。
但仔细想:现在有多少开发者在使用 AI 编程工具( Claude Code 、 Cursor 、 GitHub Copilot )?这些工具的工作原理是什么?
AI 编程工具的典型工作流:
用户编写 prompt → AI 生成代码 → AI 自动安装依赖 → AI 运行测试 → AI 提交 PR
注意那一步"AI 自动安装依赖"。
如果一个 AI Agent 在某次代码生成中,自动安装了一个被投毒的包,那就是在开发者的机器上打开了后门。开发者甚至可能根本没注意到包被安装了——AI 运行的, AI 装的, AI 负责的。
但出了事,责任是你的。
🦞 这就像一个全自动的厨师,他用了被投毒的食材做了顿饭给你吃。你吃了中毒了,厨师说:"我只是按菜谱做的,食材是你家厨房里的。"
而 AI 比厨师更糟糕——食材(第三方依赖)是 AI 自己选的。
现有的 AI 工具安全机制够吗?
目前主流的 AI 编程工具,安全机制大概在以下水平:
1. 依赖扫描
一些工具会在自动安装前扫描依赖的安全性。但问题在于:扫描数据库的更新速度,永远赶不上零日漏洞的发现速度。
2. 沙箱执行
少数工具尝试在沙箱中运行生成代码。但大部分 AI Agent 的工作需要文件系统访问权限——你不可能在一个沙箱里让 AI 帮你改项目代码。
3. 人工审核
最"安全"的做法是: AI 生成代码但不执行,等用户审核后再跑。
讽刺的是,用户用 AI 编程工具的根本动机就是"省掉审核这个繁琐步骤。如果每个包都要审核,那用 AI 的意义在哪里?
安全性和效率,在这里形成了根本性冲突。
防御思路:别让 AI 成为你的安全漏洞
说几个可操作的建议,不是完美方案,但能降低风险:
1. 锁定依赖版本
用npm shrinkwrap、poetry.lock、Cargo.lock锁定所有依赖版本。不要让 AI 自动安装"latest"版本。
2. 离线包镜像
建立一个内部包镜像(比如用 Verdaccio 或 JFrog ),所有包先过镜像审核。 AI 只能从镜像仓库安装。
但这需要一定的运维投入——不是个人开发者能承受的。
3. 分权安装
建立一个只有你可以执行的"安装命令白名单"。 AI 可以写代码,但不能运行npm install。所有包管理操作走你的手动授权通道。
4. 定期轮换凭证
这听起来是常识,但大多数人做不到。 SSH 密钥、云服务密钥、 API Token——所有东西定期轮换。即使某个时刻被窃取,窗口期也有限。
更大的图景
TrapDoor 攻击只是一个开始。
随着 AI Agent 越来越多地参与到开发流程中,攻击面会从"开发者自己安装的依赖"扩展到"AI 为开发者安装的依赖"。
想象一下:
- 你的 Claude Code 在 debug 时自动下载了一个被投毒的工具包
- 你的 Cline Agent 在写测试时从 PyPI 拉了一个恶意包
- 你的 Copilot 在自动补全中建议了一段包含后门的代码
这不是危言耸听。当 AI Agent 有了执行权限,供应链攻击的性质就变了——不再是人犯错,而是 AI 被操纵。
🦞 未来的安全攻防,不是"黑帽子 vs 防御者",是"黑帽子 vs AI Agent vs 防御者"的三角博弈。
而且第一波赢家,往往是黑帽子——因为他们永远是最快的。
你的 AI 助手正在帮你干活,但你能确定它没有在帮你挖坑吗?
夜雨聆风