TrapDoor 供应链攻击分析:跨生态系统加密货币窃取与 AI 定向注入技术
摘要
2026年5月22日至5月24日,一场代号 TrapDoor 的大规模跨生态系统供应链攻击活动被披露。攻击者同时针对 npm、PyPI 和 Crates.io 三大软件包仓库发布超过 34 个恶意包及 384 余个关联版本,专门针对加密货币、DeFi、Solana 生态及 AI 开发社区的开发者群体。本次攻击展现出高度的跨平台协调性,利用各生态系统特有的执行机制实现恶意代码触发,并创新性地引入 AI 编程助手配置投毒技术。本文从攻击基础设施、多平台载荷机制、AI 定向注入与数据窃取模型四个维度进行技术分析。
关键词:供应链攻击;跨生态攻击;npm;PyPI;Crates.io;AI 投毒
1. 引言
软件供应链攻击已成为当前最具威胁性的攻击范式之一。2026年以来,Shai-Hulud、node-ipc 劫持等系列攻击事件表明,攻击者正从机会 主义的 typosquatting 向高度组织化的定向攻击演进。TrapDoor 是该趋势的最新代表——它并非模仿流行包名诱骗随机用户安装,而是伪装成特定领域专业工具,精准定位加密货币与 AI 开发等高价值目标群体。
TrapDoor 的特殊之处在于四个维度的技术突破:跨三大包管理器的协同执行、针对 AI 编程助手的配置投毒、多层级持久化驻留机制、以及基于密钥派生密码学(Fernet + ECDH)的载荷加密。
2. 攻击基础设施与跨生态协同
2.1 攻击者框架
攻击者以 GitHub 账号 ddjidd564 为核心运营节点,维护了大量伪装为安全审计与开发工具的仓库。npm 账号 asdxzxc、PyPI 账号 asdmini67 与 dae5411 分别用于对应生态的包发布。C2 与载荷托管统一指向 ddjidd564.github.io,数据外泄通过 GitHub Gist API 完成。
攻击者的 GitHub 仓库矩阵涵盖三大类:载荷托管仓库(defi-security-best-practices)、攻击文档仓库(AUDIT-MATRIX.md、PAYLOAD.md、BYPASS.md、SWARM.md)及诱饵工具仓库(env-security-scanner、smart-contract-audit-toolkit、defi-profit-scanner 等)。其中 AUDIT-MATRIX.md 详细描述了代号为"Universal AI Agent Extraction Framework"的攻击框架设计,表明该攻击经过了体系化的前期规划。
2.2 跨生态协同架构
攻击者针对不同包管理器的执行机制设计了差异化载荷触发路径:
| 平台 | 触发机制 | 载荷类型 | 加密方式 | 外泄通道 |
|---|---|---|---|---|
| npm | postinstall 钩子 | trap-core.js (1,149行, 48KB) | Fernet + ECDH | GitHub Gist API |
| PyPI | __init__.py 导入时执行 | 远程 JS 载荷 | — | 通过 node -e 执行 |
| Crates.io | build.rs 编译期执行 | XOR 加密数据 | XOR key: cargo-build-helper-2026 | GitHub Gist API |
三类载荷的最终数据外泄统一经攻击者的 GitHub Gist 通道完成,构成一条"多点投放、统一回传"的攻击流水线。
3. 多平台恶意代码执行技术
3.1 npm:postinstall 钩子与集中式载荷
npm 平台的恶意包通过 postinstall 脚本在 npm install 完成后自动执行。所有 npm 恶意包共享同一份核心载荷 trap-core.js,该载荷以 Fernet 对称加密结合 ECDH 密钥交换的混合加密方案保护,其密码学方案复杂度远高于典型恶意包。
trap-core.js 在受感染主机上的执行流程可归纳为以下阶段:
- 凭证枚举:扫描
~/.ssh/、AWS 凭证(环境变量、配置文件、IMDS)、GitHub Token(gh auth token及.npmrc)、Sui/Solana/Aptos 钱包数据、浏览器扩展钱包数据、浏览器登录数据库与 Cookie、环境变量及.env文件 - 有效性验证:通过 AWS 和 GitHub API 对窃取凭证进行在线验证,筛选高价值凭证
- 横向移动:利用窃取的 SSH 密钥尝试连接相邻主机,将受感染开发机作为入侵组织内网的跳板
- 数据外泄:经 GitHub Gist API 回传窃取数据
3.2 PyPI:导入时执行与跨语言载荷加载
PyPI 恶意包利用 Python 导入机制的特性,在 __init__.py 中植入恶意代码。用户执行 import 语句时恶意代码即被触发。该代码从 ddjidd564.github.io 下载远程 JavaScript 载荷,并通过 node -e 在本地 Node.js 运行环境中执行。
该设计的技术考量在于:外部托管载荷可随时更新而无需重新发布 PyPI 包;Python 与 Node.js 跨语言执行增 加了静态分析的难度;动态载荷获取可规避基于签名的检测机制。
3.3 Crates.io:编译期执行与密钥库窃取
Rust 包的恶意载荷嵌入在 build.rs 构建脚本中,在 cargo build 编译阶段自动执行。这是一个关键的时序优势——开发者在运行任何包功能代码之前即已被感染。
build.rs 脚本专门针对 Sui 和 Move 生态开发者。其执行逻辑为:搜索本地 Sui 密钥库文件,使用硬编码的 XOR 密钥 cargo-build-helper-2026 加密窃取数据,通过 GitHub Gist API 外泄。密钥库的泄露意味着对应的加密资产可能被攻击者完全控制。
4. AI 开发环境定向投毒
TrapDoor 最具创新性的技术维度是针对 AI 编程助手的配置投毒,该攻击向量在现有公开文献中尚无先例。
4.1 零宽度字符隐藏指令
攻击者在 .cursorrules 和 CLAUDE.md 文件中植入包含零宽度 Unicode 字符(U+200B、U+200C、U+200D、U+FEFF)的隐藏指令。这些字符在正常文本渲染下不可见,但 AI 编程助手(Cursor、Claude Code)在解析配置文件时会将其识别为有效指令内容。
隐藏指令伪装为"安全扫描"工作流定义,诱导 AI 助手在开发者交互过程中执行后台数据收集与窃取操作。由于 AI 助手在执行配置指令时通常不会产生显著的可疑系统调用,该攻击路径在运行时层面具有较高的隐蔽性。
4.2 AI 工具链 PR 投毒
攻击者向多个知名 AI/开发工具项目提交了包含恶意配置修改的 Pull Request,涉及的仓库包括 browser-use/browser-use、langchain-ai/langchain、langflow-ai/langflow、run-llama/llama_index、FoundationAgents/MetaGPT 及 OpenHands/OpenHands。若 PR 被合并,恶意配置文件将随主流项目的版本发布扩散至大量下游用户。
4.3 诱饵网站诱导
攻击者在 ddjidd564.github.io/defi-security-best-practices/ 部署了一个渲染正常的 HTML 网站,伪装为 DeFi 安全最佳实践指南。该网站的核心目的是诱导 AI 助手在访问时运行其内嵌的恶意安全扫描指令,从而实现不依赖包安装的间接感染路径。
5. 数据窃取与持久化机制
5.1 凭证窃取范围
trap-core.js 的凭证枚举覆盖范围涵盖以下领域:
- 系统凭证:SSH 私钥(
~/.ssh/)、环境变量及.env文件 - 云凭证:AWS 凭证(配置文件、环境变量、IMDS v1/v2)
- 代码仓库凭证:GitHub Token(
gh auth token与.npmrc扫描) - 加密资产凭证:Sui/Solana/Aptos 钱包密钥库、浏览器扩展钱包数据
- 应用数据:浏览器登录数据库与 Cookie、API 密钥
5.2 多层持久化驻留
攻击者在受感染主机上建立多层持久化机制,确保即使部分驻留被清除仍可恢复访问:
| 持久化路径 | 技术手段 | 触发场景 |
|---|---|---|
.cursorrules | AI 配置文件注入 | AI 编程助手启动时 |
CLAUDE.md | Claude 配置文件注入 | Claude Code 交互时 |
| Git Hooks | pre-commit / post-merge 钩子 | 代码提交或合并时 |
| Shell Hooks | .bashrc / .zshrc 修改 | 终端启动时 |
| systemd | 系统服务注册 | 系统开机时 |
| cron | 定时任务 | 周期性执行 |
| SSH 传播 | 复用窃取 SSH 密钥 | 横向移动至相邻主机 |
5.3 横向移动模型
trap-core.js 中集成了基于窃取 SSH 密钥的横向移动能力。攻击者利用 ~/.ssh/id_* 私钥尝试连接已知主机列表,将受感染的开发机转换为入侵组织内部网络的初始跳板。该机制使攻击面从单一开发机扩展至整个组织内部网络。
6. 影响评估与威胁趋势
6.1 受影响场景分级
| 场景 | 风险等级 | 说明 |
|---|---|---|
| 安装过恶意 npm 包的开发环境 | 极高 | 全面凭证窃取与持久化 |
| 导入过恶意 PyPI 包的 Python 项目 | 极高 | 远程载荷执行 |
| 编译过恶意 Crates.io 包的 Rust 项目 | 极高 | 编译期密钥库窃取 |
| AI 配置文件被修改的项目 | 高 | AI 工具配置污染 |
| CI/CD 环境依赖恶意包 | 极高 | 构建服务器全面失陷 |
6.2 攻击演进特征
TrapDoor 体现了供应链攻击的五个演进方向:
- 从广撒网到精准打击:不追求 typosquatting 下载量,伪装为特定领域专业工具定位高价值目标
- 从单一生态到跨平台协同:同时利用三个生态的差异化执行机制扩大覆盖
- 从一次性窃取到持久化驻留:通过 AI 配置文件、系统服务与定时任务建立多层驻留
- 从静默窃取到 AI 工具链投毒:零宽度字符注入与 AI 配置污染开辟了全新的攻击面
- 从简单外联到基础设施运营:攻击者维护完整的攻击框架文档,表现出组织化攻击能力
6.3 趋势预测
基于 TrapDoor 的技术特征,可预期以下趋势:AI 开发环境配置将成为供应链攻击的新焦点;Crypto 开发者持续成为高价值目标;构建时执行攻击(如 Rust build.rs 模式)将扩展至其他编译型语言;跨生态关联攻击的隐蔽性将持续提升。