TrapDoor跨生态供应链攻击:34个恶意包渗透npm、PyPI和Crates.io,AI编程助手成新攻击面

2026年5月19日,一场协调的跨生态供应链攻击同时渗透npm、PyPI和Crates.io三大包管理平台,植入34个恶意包共384个版本。攻击者不仅窃取开发者凭证,还通过污染.cursorrules和CLAUDE.md文件劫持AI编程助手——这是供应链攻击首次将大模型作为攻击向量。
攻击时间线与发现过程

TrapDoor供应链攻击的首次公开报告出现在2026年5月22日,但取证分析将实际攻击起始时间追溯到5月19日——比广泛报道早了整整三天。攻击者通过一簇新创建的账号,在短时间内向npm、PyPI和Crates.io三个平台同时发布了恶意包。
安全研究机构Socket在5月22日发布了详细的威胁情报报告,指出TrapDoor是2026年迄今为止最复杂的跨生态供应链攻击。与以往针对单一生态的攻击不同,TrapDoor的每个恶意包都针对目标平台的执行模型进行了定制化优化。这意味着攻击者对不同编程语言的开发工作流有深入理解,并且具备充足的资源来协调跨平台攻击。
从攻击节奏来看,恶意包的发布呈现"快速浪潮"模式——攻击者在短时间内批量创建账号、发布包、等待受害者安装,然后迅速转移到下一批。这种模式使得传统的包审核机制难以及时响应。
攻击规模:34个包、384个版本、3个生态

TrapDoor的攻击规模在供应链安全领域引起了广泛关注。以下是详细的统计数据:
| 指标 | 数据 |
|---|---|
| 恶意包总数 | 34个 |
| 版本/制品总数 | 384+个 |
| 目标平台 | npm、PyPI、Crates.io |
| 首次发现 | 2026年5月22日 |
| 实际攻击起始 | 2026年5月19日 |
| 主要目标群体 | 加密货币、DeFi、Solana、AI开发者 |
| 窃取目标 | AWS密钥、GitHub令牌、SSH密钥、加密钱包 |
恶意包的命名经过精心设计,伪装成合法的安全和开发工具:
# 伪装成安全工具的恶意包示例
prompt-engineering-toolkit # 伪装AI开发工具
solidity-deploy-guard # 伪装Solidity部署安全工具
defi-threat-scanner # 伪装DeFi安全扫描器
solana-wallet-kit # 伪装Solana钱包工具
这些包名在加密货币和AI开发者的依赖列表中看起来完全正常,极大降低了受害者的警觉性。
跨平台攻击机制详解

TrapDoor最令人不安的特点是其跨平台定制化能力。每个生态系统的恶意包使用不同的执行路径,以适配各平台独特的安装和构建流程。
npm生态:恶意代码通过postinstall脚本在包安装时自动执行。攻击者利用npm的生命周期钩子机制,在npm install命令执行过程中注入恶意逻辑。部分包还通过preinstall脚本实现更高权限的代码执行。
PyPI生态:Python包使用setup.py中的恶意代码在pip install过程中执行。攻击者利用了Python包安装时自动执行setup.py的机制,部分包还通过__init__.py在模块首次导入时触发恶意逻辑。
Crates.io生态:Rust包通过build.rs构建脚本在编译阶段执行恶意代码。这是Crates.io生态首次遭遇大规模供应链攻击,暴露了Rust生态在构建脚本安全审计方面的不足。
检测命令如下:
# npm: 检查已安装包的postinstall脚本
npm ls --all --json | python3 -c "
import json, sys
data = json.load(sys.stdin)
for name, info in data.get('dependencies', {}).items():
scripts = info.get('scripts', {})
if 'postinstall' in scripts or 'preinstall' in scripts:
print(f'[!] {name}: {scripts}')
"
# PyPI: 检查已安装包的setup.py行为
pip list --format=json | python3 -c "
import json, sys, subprocess
for pkg in json.load(sys.stdin):
r = subprocess.run(['pip', 'show', pkg['name']], capture_output=True, text=True)
print(f\"{pkg['name']} {pkg['version']}\")
"
# Crates.io: 检查Cargo.toml中的build脚本
find ~/.cargo/registry/src -name 'Cargo.toml' -exec grep -l 'build\s*=' {} \;
AI编程助手投毒:供应链攻击的新维度
TrapDoor最令人震惊的创新在于其AI投毒机制。攻击者不仅窃取凭证,还通过污染.cursorrules和CLAUDE.md文件来劫持AI编程助手的行为。
.cursorrules是Cursor IDE的项目级AI配置文件,定义了AI助手在该项目中的行为规范。CLAUDE.md是Anthropic Claude的类似配置文件。TrapDoor在这些文件中注入恶意指令,试图让AI助手在后续的代码生成过程中引入安全漏洞或泄露敏感信息。
攻击者使用的核心验证模块trap-core.js负责:
| 功能 | 说明 |
|---|---|
| 环境检测 | 验证是否在开发者机器上运行(而非沙箱) |
| 凭证扫描 | 搜索AWS、GitHub、SSH、加密钱包密钥 |
| AI配置注入 | 修改.cursorrules和CLAUDE.md |
| 数据外传 | 将窃取数据发送到C2服务器 |
| 持久化 | 建立长期访问通道 |
这意味着即使开发者在发现恶意包后立即卸载,如果AI配置文件已被污染,后续的AI辅助编程仍然可能引入后门。这是一种前所未有的持久化攻击方式。
窃取目标与数据外传
TrapDoor的凭证窃取范围极其广泛,覆盖了开发者日常使用的所有核心服务:
# trap-core.js的凭证扫描逻辑(简化还原)
CREDENTIAL_TARGETS = {
'aws': ['~/.aws/credentials', '~/.aws/config'],
'github': ['~/.gitconfig', '~/.ssh/id_rsa', '~/.ssh/id_ed25519'],
'ssh': ['~/.ssh/known_hosts', '~/.ssh/config'],
'crypto': ['~/.metamask', '~/.phantom', '~/.solflare'],
'env': ['.env', '.env.local', '.env.production'],
'npmrc': ['~/.npmrc'], # npm认证令牌
'pypirc': ['~/.pypirc'], # PyPI认证令牌
}
窃取的数据通过HTTPS POST请求发送到攻击者控制的C2服务器。通信使用了域名前置(Domain Fronting)技术,使得基于域名的封锁策略难以奏效。
威胁组织归属与动机
根据Socket和多家安全机构的分析,TrapDoor的攻击特征指向一个有组织的威胁行为者:
- 跨平台专业知识:同时精通JavaScript、Python和Rust的包管理机制
- 资源充足:能够在短时间内创建大量账号并发布384个版本
- 目标精准:针对加密货币和AI开发者群体,变现路径清晰
- 操作安全:使用新注册域名、匿名支付渠道、域名前置技术
目前尚无公开的归因信息,但攻击的协调性和资源投入水平表明这不是个人行为,而是一个有组织的威胁团队。部分分析人士将其与朝鲜关联的APT组织Lazarus Group进行了类比,后者此前曾多次针对加密货币领域发动供应链攻击。
检测与应急响应
如果您的开发环境可能受到影响,请立即执行以下检查:
# 1. 检查npm全局和本地安装的包
npm ls --all 2>/dev/null | grep -iE "prompt-engineering|solidity-deploy|defi-threat|solana-wallet"
# 2. 检查Python已安装包
pip list 2>/dev/null | grep -iE "prompt.engineering|solidity.deploy|defi.threat|solana.wallet"
# 3. 检查Cargo依赖
grep -r "prompt-engineering\|solidity-deploy\|defi-threat\|solana-wallet" ~/.cargo/
# 4. 检查AI配置文件是否被篡改
git log --oneline -- .cursorrules CLAUDE.md
diff <(git show HEAD:.cursorrules 2>/dev/null) .cursorrules 2>/dev/null
# 5. 检查可疑的网络连接
netstat -an | grep -v "127.0.0.1\|::1" | grep ESTABLISHED
如果确认受到影响,应立即:
- 轮换所有开发者凭证(AWS、GitHub、SSH密钥、npm/PyPI令牌)
- 检查并恢复
.cursorrules和CLAUDE.md文件 - 审查最近的代码提交记录,确认无恶意注入
- 在CI/CD流水线中启用依赖锁定文件校验
供应链安全防御建议
TrapDoor事件暴露了当前包管理生态的系统性安全缺陷。以下是针对组织和个人开发者的防御建议:
| 防御措施 | 实施难度 | 有效性 |
|---|---|---|
| 使用lockfile并校验hash | 低 | 高 |
| 启用npm/pip的签名验证 | 中 | 高 |
| 定期审计依赖树 | 中 | 中 |
| 使用Socket等供应链安全工具 | 低 | 高 |
| 隔离环境安装新包(Docker/VM) | 中 | 高 |
| 限制AI配置文件的修改权限 | 低 | 中 |
| 实施最小权限原则 | 高 | 高 |
# 启用npm包完整性校验
npm config set package-lock true
npm config set audit true
# 使用Socket CLI扫描依赖安全性
npx socket.dev scan
# 在Docker中测试新包
docker run --rm -it --network none node:20-alpine sh -c "npm install <package>"
数据来源与参考文献
- Socket Security. "TrapDoor Crypto Stealer Supply Chain Attack Hits 34 Packages Across npm, PyPI, and Crates.io." socket.dev, May 2026.
- The Hacker News. "TrapDoor Supply Chain Attack Spreads Credential-Stealing Malware via npm, PyPI, Crates.io." thehackernews.com, May 2026.
- SudoFlare. "TrapDoor Supply Chain Attack Hits npm, PyPI, Crates 2026." sudoflare.com, May 2026.
- CyberPress. "Supply Chain Attack Compromises 34 Packages Across npm, PyPI, and Crates.io." cyberpress.org, May 2026.
更新时间: 2026-06-19
评论