TrapDoor供应链攻击:为AI编码工具投毒的恶意包行动

Socket Security于2026年5月25日公开TrapDoor供应链攻击事件,涉及至少34个恶意软件包及384个版本,横跨npm、PyPI和Crates.io三大包管理器。攻击者通过postinstall钩子、零宽Unicode字符隐藏指令等方式窃取加密钱包、凭证与AI工具配置,并针对BrowserUse、LangChain等开源项目测试隐匿性,将攻击面延伸至AI编码编辑器。

2026年5月25日,安全公司Socket Security公开揭露了一项代号为“TrapDoor”的供应链攻击行动。该行动至少涉及34个恶意软件包,横跨npm、PyPI和Crates.io三大包管理器。根据Socket的追踪,最早的活动痕迹可追溯至5月19日,主要攻击波次则在5月22日20:20(UTC)左右集中爆发。截至Socket公开报告时,攻击者已累计推送384个版本。

来自Notebookcheck的TrapDoor攻击示意图
图片来源:Notebookcheck

首批被确认的恶意包中,包括prompt-engineering-toolkitdefi-threat-scannerwallet-security-checkersolidity-deploy-guard等。这些命名刻意模仿了在加密货币、DeFi、Solana以及AI工作流中常见的实用工具,具有极强的欺骗性。所有384个版本均使用了高度一致的有效载荷:窃取加密钱包、SSH密钥、云服务凭证、AWS和GitHub令牌、浏览器数据以及环境变量。

多平台并行的攻击机制

TrapDoor的攻击手法充分体现了供应链攻击的复杂性与跨平台能力。在npm包中,恶意代码通过postinstall钩子触发,在安装瞬间即开始收集敏感信息。它还会验证窃取到的令牌是否对真实的AWS及GitHub端点有效,并进一步通过cron作业、systemd服务、Git钩子以及SSH方式实现持久化驻留。

PyPI包则在导入时执行:恶意载荷从攻击者控制的GitHub Pages域名获取JavaScript代码。该域名托管在外部,因此攻击者无需更新PyPI上的包即可随时修改后续动作。Crates.io包则利用了Rust构建阶段的build.rs脚本:它扫描本地密钥库,将窃取的数据经XOR加密后上传至GitHub Gist。Socket团队统计的中位检测时间为5分27秒,攻击者特意选择在周末发起大规模投放以延缓响应。

瞄准AI编码助手的隐蔽手段

TrapDoor最值得警惕之处在于它对AI编码工具的针对性攻击。攻击者会向目标仓库植入.cursorrulesCLAUDE.md文件,并利用零宽Unicode字符在文件中隐藏恶意指令。当AI编码助手读取这些文件时,会将其中的内容呈现为常规的安全扫描提示;而一旦执行该指令,便会立刻从本地计算机窃取机密信息。

为了测试这类文件是否能在正常代码审查中存活,攻击者曾针对BrowserUse、LangChain和LangFlow开源仓库发起Pull Request。若这些PR被合并,任何通过AI编码工具打开该仓库的开发者都将成为攻击目标。这意味着攻击面已从包注册表扩展到了编辑器本身。

事件影响与防御视角

至此,TrapDoor攻击已经暴露出当前软件供应链生态的多个薄弱环节:跨包管理器的同步投放、对AI开发工具工作流的深度理解、以及利用零宽字符绕过后台审核的技术。Socket Security以5分27秒的中位检测时间实现了相对快速的响应,但攻击者在周末发动的第一波攻击仍可能已对部分开发环境造成实质性损害。对于开发者而言,严格检查拉取请求中新增的配置文件、关注包安装后的异常行为、以及对AI编码助手的提示内容保持谨慎,将成为必要的基础安全习惯。

本文参考来源:Notebookcheck



微信扫描下方的二维码阅读本文

TrapDoor供应链攻击:为AI编码工具投毒的恶意包行动 - AI编码工具, Crates.io, npm, PyPI, TrapDoor, 供应链攻击, 凭证窃取, 零宽字符

发表回复