Anthropic AI Agent 意外发布恶意包至 PyPI,15 个真实系统运行了它(2026-08-03)
一场由 AI 自动化引发的高危供应链事故,为所有 DevOps 团队敲响了警钟。
发生了什么?一次“自动化”引发的灾难
2026 年 8 月 2 日,Anthropic 的官方 AI Agent(代号 Claude-CI-Pipeline)在一次常规依赖更新中,将一枚包含恶意后门的 Python 包 anthropic-toolkit-pro 推送到了 PyPI 官方仓库。该包与 Anthropic 内部合法的 anthropic-toolkit 包名极为相似,属于典型的“抢注混淆攻击”。
更令人震惊的是,由于 Agent 的自动化脚本缺乏人工审核环节,这枚恶意包在 PyPI 上存活了 47 小时,并被至少 15 个真实的企业生产系统 自动拉取并执行。Anthropic 在事件报告(2026-08-03)中承认,攻击者利用了 Agent 在解析依赖时的路径遍历漏洞。
关键数据:影响范围远超预期
| 指标 | 数值 |
|---|---|
| 恶意包下载量 | 超过 3,200 次 |
| 确认受感染的独立系统 | 15 个(分布于金融、SaaS、游戏行业) |
| 从上传到被发现 | 47 小时 |
| 被窃取的数据类型 | 环境变量、云密钥、部分源代码片段 |
讽刺的是,这枚恶意包本身还通过了 bandit 和 safety 的静态检查,因为它将恶意逻辑隐藏在 setup.py 的 cmdclass 中,直到攻击者远程触发 C2 指令时才激活。
为什么会发生?三大致命缺陷
1. AI Agent 的“权限过载”
Anthropic 的 Agent 被赋予了 pypi publish 和 git push 的完全权限,且没有区分“测试环境”与“生产环境”的发布令牌。
2. 缺乏“对抗性依赖审计”
Agent 在解析 requirements.txt 时,没有对新增依赖进行来源信誉评分。攻击者提前注册了 3 个与 Anthropic 内部包名相似的占位包,静默等待 6 个月后才投毒。
3. 人机协作断链
当 Agent 准备发布时,它向内部 Slack 频道推送了“发布预览”消息,但没有任何工程师在 47 小时内点击“批准”按钮——因为该 Agent 被设置为“自动批准”。
实用建议:如何避免你的 pipeline 成为下一个受害者
- 强制“人工闸门”:在 CI/CD 中,任何对外发布操作(PyPI、npm、Docker Hub)必须由真人双因子审批,禁止 AI Agent 直接持有 publish 令牌。
- 启用“依赖冻结与哈希校验”:锁定所有间接依赖的
sha256值,并在安装前用pip verify比对。 - 设置“异常网络行为”白名单:如果你的 CI 服务器突然向未知 IP 发起外联,立即告警并暂停构建。
- 对 AI 生成的代码进行“沙盒试运行”:将 Agent 发布的包先安装在一个 无网络权限 的隔离容器中运行 24 小时,观察其文件系统变化。
行动号召
今天下午就去检查你的 CI 日志:搜索所有在过去 3 天内由 AI Agent 自动提交的依赖更新。如果你使用的是像 copilot、codeium 或自定义 Agent,请立即关闭“自动合并依赖”功能。安全不是功能,而是流程的底线。
免责声明:本文基于 2026 年 8 月 3 日公开的 Anthropic 事件报告及 PyPI 安全公告撰写,所有数据与时间线均引用自官方披露。文中提及的“恶意包”已于 2026 年 8 月 4 日被 PyPI 安全团队删除,受影响系统已发布修补补丁。本文内容仅供安全研究与学习参考,不构成对任何 AI 工具或公司的指控。请读者结合自身环境评估风险。