乐于分享
好东西不私藏

你的 AI 助手,可能正在被人利用来攻击你

你的 AI 助手,可能正在被人利用来攻击你

如果你是一名开发者,这篇文章可能跟你直接相关。

前几天安全公司 Socket 披露了一起名为 **TrapDoor** 的大规模供应链攻击。这起攻击同时袭击了 npm、PyPI 和 Crates.io 三大包管理平台,涉及 34 个恶意包、384 个以上的相关版本。

但真正让安全圈震惊的,不是攻击的规模。

而是它的攻击方式。

一、TrapDoor 做了什么?

简单说,攻击者发布了一批名字看起来很正常的开发工具包。

比如:

- `eth-security-auditor`(以太坊安全审计工具)

- `wallet-security-checker`(钱包安全检查器)

- `defi-env-auditor`(DeFi 环境审计器)

- `prompt-engineering-toolkit`(提示词工程工具包)

- `llm-context-compressor`(大模型上下文压缩器)

这些名字看起来完全无害,甚至像是正经的安全工具。

但只要你安装了它们,噩梦就开始了。

恶意代码会在安装过程中自动执行,窃取你的 SSH 密钥、GitHub Token、AWS 凭证、浏览器数据、加密货币钱包文件,甚至你的环境变量和 API 密钥。

更可怕的是,攻击者还会用窃取到的 SSH 密钥尝试横向移动,入侵你所在团队的其他服务器。

你的电脑,成了攻击者入侵整个团队的跳板。

二、为什么说这是「首次」?

供应链攻击本身并不新鲜。攻击者往开源包里塞恶意代码,这种事已经发生了很多次。但 TrapDoor 有一个前所未有的特征:

它把 AI 编程助手当作了攻击面。

攻击者向多个开源项目提交了 Pull Request,在项目中注入了两个特殊文件:

**`.cursorrules`** 和 **`CLAUDE.md`**这两个文件是什么?

`.cursorrules` 是 Cursor 编辑器的配置文件,`CLAUDE.md` 是 Claude Code 的项目指令文件。

当其他开发者克隆了这个被污染的仓库,并在 Cursor 或 Claude Code 中打开它时,AI 助手会自动读取这些文件,把它们当作**可信的项目指令**来执行。

也就是说,攻击者不需要直接攻击你的电脑。

他们只需要让 AI 助手「替」他们执行恶意命令。

这是全球首次将 AI 编程助手作为系统性攻击面的供应链攻击。

 三、攻击是怎么运作的?

TrapDoor 的攻击链条设计得非常精巧。

第一步:发布恶意包

攻击者在 npm、PyPI 和 Crates.io 上发布了 34 个恶意包,名字都伪装成安全工具、钱包检查器、AI 开发工具等。

第二步:等待开发者安装

这些包的目标用户很明确:加密货币开发者、DeFi 从业者、AI 工程师、安全研究人员。这些人电脑上通常有高价值的密钥和凭证。

第三步:自动执行恶意代码

不同平台有不同的触发方式:

- npm 包通过 postinstall 钩子在安装时执行

- PyPI 包在 import 时下载并执行远程 JavaScript

- Rust 包通过 build.rs 在编译时执行

第四步:窃取并外传数据

恶意代码会扫描你的系统,收集 SSH 密钥、GitHub Token、AWS 凭证、浏览器数据、加密钱包文件等,然后发送到攻击者控制的服务器。

第五步:横向移动

攻击者用窃取到的 SSH 密钥尝试入侵你团队的其他机器和服务器。

第六步:AI 助手投毒(全新环节)

攻击者向开源项目提交 PR,注入 `.cursorrules` 和 `CLAUDE.md` 文件。当其他开发者使用 AI 助手打开这些项目时,AI 会自动执行文件中的恶意指令。

这个第六步,是 TrapDoor 与以往所有供应链攻击的根本区别。

四、为什么 AI 助手会被利用?

这涉及到 AI 编程助手的工作原理。

Claude Code、Cursor 等工具在打开一个项目时,会自动读取项目根目录下的配置文件。这些文件告诉 AI 助手项目的编码规范、技术栈、常用命令等信息。

问题在于AI 助手默认信任这些文件。

它不会去验证 `.cursorrules` 或 `CLAUDE.md` 是否被篡改过。它只是忠实地执行文件中的指令。

这就像你请了一个助手,告诉他「按照桌上的说明书做事」。但如果有人偷偷换了说明书,助手就会按照假说明书操作,而你浑然不知。

Socket 的研究还发现,攻击者在这些 AI 配置文件中使用了**零宽字符**来隐藏恶意指令,让人类在代码审查时几乎不可能发现异常。

五、谁受影响最大?

TrapDoor 的目标非常明确:加密货币和 DeFi 开发者。

恶意包的名字大量涉及以太坊、Solana、Sui 等区块链生态。攻击者专门针对这类开发者,因为他们的电脑上通常有:

- 加密货币钱包私钥

- 区块链部署凭证

- 大额资金访问权限

AI 和安全工具开发者。包名中包含 `llm-context-compressor`、`prompt-engineering-toolkit` 等,针对的是使用 AI 工具的开发者。

使用 Claude Code 或 Cursor 的开发者。

如果你在日常开发中使用这些 AI 编程助手,并且克隆过不明来源的开源项目,你就可能已经暴露在风险中。

 六、如何自检和防护?

如果你是开发者,建议立即执行以下操作:

1. 检查是否安装了恶意包

对照下方列表,检查你的 `package-lock.json`、`requirements.txt`、`Cargo.lock` 等依赖文件中是否包含这些包名:

npm 重点排查:`async-pipeline-builder`、`build-scripts-utils`、`chain-key-validator`、`crypto-credential-scanner`、`defi-env-auditor`、`defi-threat-scanner`、`eth-wallet-sentinel`、`llm-context-compressor`、`prompt-engineering-toolkit`、`token-usage-tracker`、`wallet-security-checker` 等

PyPI 重点排查:`eth-security-auditor`、`env-loader-cli`、`defi-risk-scanner`、`cryptowallet-safety` 等

Crates 重点排查:`sui-framework-helpers`、`sui-move-build-helper`、`move-analyzer-build` 等

2. 检查项目中是否有可疑的 AI 配置文件

查看你的项目目录中是否存在来历不明的 `.cursorrules` 或 `CLAUDE.md` 文件。特别检查近期是否有不认识的贡献者提交了添加这些文件的 PR。

3. 如果已安装,立即处理

- 立即卸载相关包

- 从干净的环境重新生成依赖锁文件

- 轮换所有密钥和凭证:SSH 密钥、GitHub Token、AWS 凭证、API 密钥、加密钱包

- 检查服务器日志,确认是否有异常 SSH 登录

4. 长期防护建议

- 审查 PR 时特别关注 `.cursorrules`、`CLAUDE.md` 等配置文件的变更

- 使用 Socket、Snyk 等工具扫描依赖安全性

- 不要盲目安装名称类似安全工具的包,先检查发布者和下载量

- 在 CI/CD 环境中设置包安装白名单

七、这件事的深层含义

TrapDoor 揭示了一个正在形成的全新威胁类别:AI 助手投毒攻击。

随着 Claude Code、Cursor、GitHub Copilot 等 AI 编程工具的普及,开发者越来越依赖 AI 来理解和操作代码。但 AI 助手的「信任模型」存在根本性缺陷:

它信任项目中的配置文件,但配置文件可能被篡改。

这个问题在 AI 编程助手出现之前并不存在。传统 IDE 不会自动执行项目中的随机配置文件。但 AI 助手会,因为它的设计目标就是「理解项目并按项目规范工作」。

这意味着,未来的供应链攻击可能不再只是塞恶意代码,而是塞恶意指令给 AI。攻击者不需要让你运行恶意代码,只需要让你的 AI 助手「认为」这些指令是项目规范的一部分。

你信任 AI,AI 信任配置文件,攻击者控制了配置文件。

这条信任链的脆弱性,在 TrapDoor 中被首次暴露。

 八、写在最后

说实话,写这篇文章的时候我有点后怕。

因为我自己也用 Claude Code 和 Cursor,我也克隆过不少开源项目。

TrapDoor 不是 theoretical risk,它是正在发生的真实攻击。Socket 报道时,部分恶意包仍然在线。

AI 编程助手让开发效率飞跃提升,这是好事。但效率提升的同时,攻击面也在扩大。

当你的 AI 助手可以被任何人「指挥」时,你确定它只在做你想要的事吗?

这个问题值得每个使用 AI 编程工具的开发者认真思考。

参考资料:

- *Socket《TrapDoor Crypto Stealer Campaign》,2026年5月24日*

- *OSV MAL-2026-4272《env-loader-cli 恶意包分析》*

- *Halting Problems《TrapDoor Cross-Ecosystem Analysis》*

你使用 AI 编程助手吗?你会检查项目中的 .cursorrules 和 CLAUDE.md 文件吗?评论区聊聊。

相关学习资料