返回首页

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

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

hero

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

攻击时间线与发现过程

section

TrapDoor供应链攻击的首次公开报告出现在2026年5月22日,但取证分析将实际攻击起始时间追溯到5月19日——比广泛报道早了整整三天。攻击者通过一簇新创建的账号,在短时间内向npm、PyPI和Crates.io三个平台同时发布了恶意包。

安全研究机构Socket在5月22日发布了详细的威胁情报报告,指出TrapDoor是2026年迄今为止最复杂的跨生态供应链攻击。与以往针对单一生态的攻击不同,TrapDoor的每个恶意包都针对目标平台的执行模型进行了定制化优化。这意味着攻击者对不同编程语言的开发工作流有深入理解,并且具备充足的资源来协调跨平台攻击。

从攻击节奏来看,恶意包的发布呈现"快速浪潮"模式——攻击者在短时间内批量创建账号、发布包、等待受害者安装,然后迅速转移到下一批。这种模式使得传统的包审核机制难以及时响应。

攻击规模:34个包、384个版本、3个生态

section

TrapDoor的攻击规模在供应链安全领域引起了广泛关注。以下是详细的统计数据:

指标 数据
恶意包总数 34个
版本/制品总数 384+个
目标平台 npm、PyPI、Crates.io
首次发现 2026年5月22日
实际攻击起始 2026年5月19日
主要目标群体 加密货币、DeFi、Solana、AI开发者
窃取目标 AWS密钥、令牌、密钥、加密钱包

恶意包的命名经过精心设计,伪装成合法的安全和开发工具:

# 伪装成安全工具的恶意包示例
-toolkit    # 伪装AI开发工具
solidity-deploy-guard         # 伪装Solidity部署安全工具
defi-threat-scanner           # 伪装DeFi安全扫描器
solana-wallet-kit             # 伪装Solana钱包工具

这些包名在加密货币和AI开发者的依赖列表中看起来完全正常,极大降低了受害者的警觉性。

跨平台攻击机制详解

section

TrapDoor最令人不安的特点是其跨平台定制化能力。每个生态系统的恶意包使用不同的执行路径,以适配各平台独特的安装和构建流程。

npm生态:恶意代码通过postinstall脚本在包安装时自动执行。攻击者利用npm的生命周期钩子机制,在npm install命令执行过程中注入恶意逻辑。部分包还通过preinstall脚本实现更高权限的代码执行。

PyPI生态包使用setup.py中的恶意代码在pip install过程中执行。攻击者利用了Python包安装时自动执行setup.py的机制,部分包还通过__init__.py在模块首次导入时触发恶意逻辑。

Crates.io生态包通过build.rs构建脚本在编译阶段执行恶意代码。这是Crates.io生态首次遭遇大规模供应链攻击,暴露了Rust生态在构建脚本安全审计方面的不足。

检测命令如下:

# npm: 检查已安装包的postinstall脚本
npm ls --all --json | python3 -c "
import json, sys
 = 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投毒机制。攻击者不仅窃取凭证,还通过污染.cursorrulesCLAUDE.md文件来劫持AI编程助手的行为。

.cursorrules是Cursor 的项目级AI配置文件,定义了AI助手在该项目中的行为规范。CLAUDE.md 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的攻击特征指向一个有组织的威胁行为者:

  • 跨平台专业知识:同时精通、Python和Rust的包管理机制
  • 资源充足:能够在短时间内创建大量账号并发布384个版本
  • 目标精准:针对加密货币和AI开发者群体,变现路径清晰
  • 操作安全:使用新注册域名、匿名支付渠道、域名前置技术

目前尚无公开的归因信息,但攻击的协调性和资源投入水平表明这不是个人行为,而是一个有组织的威胁团队。部分分析人士将其与朝鲜关联的组织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

如果确认受到影响,应立即:

  1. 轮换所有开发者凭证(AWS、GitHub、SSH密钥、npm/PyPI令牌)
  2. 检查并恢复.cursorrulesCLAUDE.md文件
  3. 审查最近的代码提交记录,确认无恶意注入
  4. 流水线中启用依赖锁定文件校验

供应链安全防御建议

TrapDoor事件暴露了当前包管理生态的系统性安全缺陷。以下是针对组织和个人开发者的防御建议:

防御措施 实施难度 有效性
使用lockfile并校验hash
启用npm/pip的签名验证
定期审计依赖树
使用Socket等供应链安全工具
隔离环境安装新包(Docker/VM)
限制AI配置文件的修改权限
实施最小权限原则
# 启用npm包完整性校验
npm config set package-lock true
npm config set audit true

# 使用Socket 扫描依赖安全性
npx socket.dev scan

# 在Docker中测试新包
docker run --rm -it --network none node:20-alpine sh -c "npm install <package>"

数据来源与参考文献

  1. Socket . "TrapDoor Crypto Supply Chain Attack Hits 34 Packages Across npm, PyPI, and Crates.io." socket.dev, May 2026.
  2. The Hacker . "TrapDoor Supply Chain Attack Spreads Credential-Stealing via npm, PyPI, Crates.io." thehackernews.com, May 2026.
  3. SudoFlare. "TrapDoor Supply Chain Attack Hits npm, PyPI, Crates 2026." sudoflare.com, May 2026.
  4. CyberPress. "Supply Chain Attack Compromises 34 Packages Across npm, PyPI, and Crates.io." cyberpress.org, May 2026.

更新时间: 2026-06-19

评论