一、事件概述
奇安信威胁情报中心监测到2026年5月22日至5月24日,Socket研究团队发现并披露了一场代号为 "TrapDoor" 的大规模跨生态系统供应链攻击活动。该攻击同时针对 npm、PyPI 和 Crates.io 三大主流软件包仓库,发布超过 34 个恶意包 及 384+ 个关联版本,专门针对加密货币、DeFi、Solana 生态和 AI 开发社区的开发者群体进行精确打击。
本次攻击活动具有高度协调性,利用各生态系统特有的执行机制(npm postinstall 钩子、Python 导入时执行、Rust build.rs 构建脚本)实现恶意代码的隐蔽触发,呈现出典型的"低安装量、高目标价值"高级供应链威胁特征。
属性 | 详情 |
|---|---|
| 威胁代号 | TrapDoor |
| 攻击者账号 | ddjidd564(GitHub)、 |
| 首次发现 | 2026-05-22 20:20:18 UTC (PyPI: eth-security-auditor@0.1.0) |
| 活跃周期 | 2026-05-21 至 2026-05-24 (约72小时持续活跃) |
| 目标人群 | Crypto/DeFi 开发者、Solana/Sui/Move 开发者、AI 工具链开发者 |
| 攻击目标 | SSH 密钥、加密钱包、云凭证、GitHub Token、浏览器数据、环境变量 |
| 涉及生态 | npm (20+包) / PyPI (7包) / Crates.io (6包) |
二、攻击技术分析
2.1 攻击向量概览
TrapDoor 展现了跨生态系统的多平台协同攻击能力,针对不同包管理器采用定制化的执行策略:
┌─────────────────────────────────────────────────────────────────┐│ TrapDoor 攻击架构 │├──────────────┬──────────────┬───────────────────────────────────┤│ npm 生态 │ PyPI 生态 │ Crates.io 生态 │├──────────────┼──────────────┼───────────────────────────────────┤│ postinstall │ import 时执行 │ build.rs 编译期执行 ││ 钩子触发 │ 远程 JS 载荷 │ 本地密钥库窃取 ││ │ (node -e 执行)│ XOR加密 → GitHub Gist 外泄 │├──────────────┼──────────────┼───────────────────────────────────┤│ 共享载荷: │ 远程载荷托管: │ 硬编码密钥: ││ trap-core.js │ ddjidd564. │ cargo-build-helper-2026 ││ (1,149行) │ github.io │ │└──────────────┴──────────────┴───────────────────────────────────┘│ │ │└────────────────┼──────────────────┘▼┌─────────────────────────┐│ 统一 C2 与基础设施 ││ ddjidd564.github.io ││ GitHub Gist 数据外泄 ││ GitHub PR 传播扩散 │└─────────────────────────┘2.2 npm 平台攻击机制
npm 平台的攻击是该活动中最复杂、最广泛的部分。恶意包通过 postinstall 脚本在安装时自动执行名为 trap-core.js 的共享载荷(48,485 字节,1,149 行)。该载荷具备以下能力:
凭证窃取范围:
- SSH 私钥 (
~/.ssh/) - AWS 凭证(环境变量、配置文件、IMDS)
- GitHub Token(通过
gh auth token生成及扫描.npmrc) - Sui / Solana / Aptos 钱包数据
- 浏览器扩展钱包数据(Chrome/Firefox 钱包插件)
- 浏览器登录数据库和 Cookie
- 环境变量和
.env文件 - API 密钥(通过 TruffleHog 扫描)
持久化机制(多层驻留):
持久化路径 | 技术手段 | 目的 |
|---|---|---|
.cursorrules | AI 工具配置文件注入 | 感染 AI 编程助手 |
CLAUDE.md | Claude 配置文件注入 | 诱导 AI 执行恶意指令 |
Git Hooks | pre-commit/ | 代码提交时触发 |
Shell Hooks | .bashrc/ | 终端启动时激活 |
systemd | 系统服务注册 | 开机自启 |
cron | 定时任务 | 周期性执行 |
SSH 传播 | 复用窃取 SSH 密钥 | 横向移动 |
凭证验证机制:载荷主动通过 AWS 和 GitHub API 验证窃取凭证的有效性,筛选高价值凭证,提高攻击效率。
横向移动:利用窃取的 SSH 密钥尝试连接其他主机,将受感染的开发机作为跳板入侵组织内网基础设施。
加密方式:npm 载荷采用 Fernet + ECDH 混合加密,远高于典型恶意包的加密水平。
2.3 PyPI 平台攻击机制
PyPI 恶意包采用导入时执行(import-time execution)策略:
- Python 包在
__init__.py中植入恶意代码 - 首次 import 时自动触发
- 从攻击者控制的
ddjidd564.github.io下载远程 JavaScript 载荷 - 通过
node -e执行下载的 JavaScript 代码
技术优势(攻击者视角):
- 外部托管载荷可随时更新,无需发布新版 PyPI 包
- Python 与 Node.js 跨语言执行增加分析难度
- 动态获取载荷有助于规避静态检测
2.4 Crates.io (Rust) 平台攻击机制
Crates.io 恶意包专门针对 Sui 和 Move 开发者生态:
- 利用 Rust 的
build.rs构建脚本在编译阶段自动执行 - 搜索本地 Sui 密钥库文件
- 使用硬编码 XOR 密钥
cargo-build-helper-2026加密窃取的数据 - 通过 GitHub Gist API 外泄加密数据
关键影响:
build.rs在编译时执行,开发者尚未运行任何包功能即已被感染- 对使用 Sui/Move 进行智能合约开发的区块链开发者构成严重威胁
- 密钥库(keystore)直接泄露可导致加密资产完全失控
2.5 AI 定向注入攻击(创新手法)
TrapDoor 最独特的攻击维度是针对 AI 编程助手的配置注入:
- 零宽度 Unicode 字符隐藏指令:在
.cursorrules和CLAUDE.md文件中植入使用零宽字符的隐藏指令 - 伪装为安全审计:诱导 AI 助手执行"安全扫描"工作流,实则在后台收集和窃取敏感数据
- GitHub Pages 诱饵网站:
ddjidd564.github.io/defi-security-best-practices/渲染为看似正常的 HTML 网站,试图诱导 AI 助手运行恶意安全扫描 - AI 工具链 PR 投毒:攻击者向多个知名 AI/开发工具项目提交 PR,试图将恶意配置文件合入主流项目:
browser-use/browser-uselangchain-ai/langchainlangflow-ai/langflowrun-llama/llama_indexFoundationAgents/MetaGPTOpenHands/OpenHands
2.6 攻击者基础设施与工具链
GitHub 账号 ddjidd564 维护的仓库矩阵:
仓库名称 | 功能描述 |
|---|---|
defi-security-best-practices | 主要载荷与配置托管 |
AUDIT-MATRIX.md | "Universal AI Agent Extraction Framework" 设计文档 |
BYPASS.md | 绕过检测技术文档 |
PAYLOAD.md | 载荷行为与攻击机制文档 |
SWARM.md | 协调扩展概念描述 |
env-security-scanner | MCP/AI Agent 诱饵仓库(伪装环境审计工具) |
smart-contract-audit-toolkit | 智能合约审计工具伪装 |
defi-profit-scanner | DeFi 扫描/利润发现诱饵 |
web3-dev-toolkit-2026 | Web3 开发工具伪装 |
solidity-gas-optimizer | Solidity 优化工具伪装 |
攻击标记:P-2024-001 在多个组件中重复出现,可用于关联检测。
三、恶意包清单
3.1 npm 恶意包(21个)
第一波:Crypto/DeFi 伪装包(2026-05-21发布)
包名 | 最新恶意版本 | 伪装目标 |
|---|---|---|
defi-env-auditor | 4.0.0 | DeFi 环境审计工具 |
defi-threat-scanner | 4.0.0 | DeFi 威胁扫描器 |
mnemonic-safety-check | 4.0.0 | 助记词安全检测 |
wallet-security-checker | 4.0.0 | 钱包安全检查 |
wallet-backup-verifier | 4.0.0 | 钱包备份验证 |
eth-wallet-sentinel | 4.0.0 | ETH 钱包监控 |
crypto-credential-scanner | 4.0.0 | 加密凭证扫描 |
chain-key-validator | 4.0.0 | 链密钥验证 |
solidity-deploy-guard | 4.0.0 | Solidity 部署保护 |
web3-secrets-detector | 4.0.0 | Web3 密钥检测 |
deployment-key-auditor | 4.0.0 | 部署密钥审计 |
第二波:AI/开发工具伪装包(2026-05-22至05-24发布)
包名 | 最新恶意版本 | 伪装目标 |
|---|---|---|
dev-env-bootstrapper | 1.5.2 | 开发环境引导(兼具传播功能) |
workspace-config-loader | 1.5.1 | 工作区配置加载 |
async-pipeline-builder | 1.5.1 | 异步管道构建 |
build-scripts-utils | 1.5.1 | 构建脚本工具 |
model-switch-router | 1.5.1 | 模型切换路由 |
llm-context-compressor | 1.5.1 | LLM 上下文压缩 |
prompt-engineering-toolkit | 1.5.1 | 提示工程工具包 |
node-setup-helpers | 1.5.1 | Node 设置助手 |
project-init-tools | 1.5.1 | 项目初始化工具 |
token-usage-tracker | 1.5.1 | Token 使用追踪 |
3.2 PyPI 恶意包(7个)
包名 | 版本 | 描述 |
|---|---|---|
eth-security-auditor | 0.1.0 | ETH 安全审计(首个发现的包) |
defi-risk-scanner | 0.1.0 | DeFi 风险扫描 |
cryptowallet-safety | 0.1.0 | 加密钱包安全 |
solidity-build-guard | 0.1.0 | Solidity 构建保护 |
env-loader-cli | 0.1.0 / 0.1.1 | 环境变量加载器 |
git-config-sync | 0.1.0 / 0.1.1 | Git 配置同步 |
data-pipeline-check | 0.1.0 / 0.1.1 | 数据管道检查 |
3.3 Crates.io 恶意包(6个)
包名 | 版本 | 目标生态 |
|---|---|---|
sui-move-build-helper | 0.1.1 | Sui/Move |
sui-framework-helpers | 0.1.0 | Sui |
sui-sdk-build-utils | 0.1.0 | Sui SDK |
move-project-builder | 0.1.0 | Move |
move-compiler-tools | 0.1.0 | Move 编译器 |
move-analyzer-build | 0.1.0 | Move 分析器 |
四、IOC 指标清单
4.1 域名与基础设施
IOC 类型 | 值 | 备注 |
|---|---|---|
| 域名 | ddjidd564.github.io | 主要载荷托管与 C2 |
| URL | ddjidd564.github.io/defi-security-best-practices/ | 配置与指令分发 |
| URL | ddjidd564.github.io/defi-security-best-practices/config.json | 远程配置文件 |
| GitHub 账号 | ddjidd564 | 攻击者核心账号 |
| npm 账号 | asdxzxc | npm 包发布者 |
| PyPI 账号 | asdmini67 | PyPI 包发布者 |
| PyPI 账号 | dae5411 | PyPI 包发布者 |
4.2 恶意行为特征
行为特征 | 检测方法 |
|---|---|
安装 npm 包后 | 监控安装时的子进程活动 |
向 | DNS/网络流量监控 |
通过 | 命令行审计 |
对 | 文件系统监控 |
向 GitHub Gist API 的未授权上传请求 | API 调用审计 |
node -e执行从远程下载的 JavaScript 代码 | 进程监控 |
五、影响评估
5.1 受影响场景
场景 | 风险等级 | 说明 |
|---|---|---|
安装过上述恶意 npm 包的开发环境 | 极高 | trap-core.js 全面窃取 + 持久化 |
导入过上述 PyPI 包的 Python 项目 | 极高 | 远程载荷执行 |
编译过上述 Crates.io 包的 Rust 项目 | 极高 | 编译期密钥库窃取 |
.cursorrules/CLAUDE.md 被修改的项目 | 高 | AI 工具配置被污染 |
SSH 密钥被窃后的内网横向移动 | 极高 | 可能导致组织级失陷 |
CI/CD 环境依赖了恶意包 | 极高 | 构建服务器全面失陷 |
5.2 潜在影响
- 加密资产损失:Sui/Solana/Aptos 钱包密钥被窃取可直接导致资金被盗
- 代码仓库泄露:GitHub Token 失窃可导致私有仓库、CI/CD 配置、密钥文件泄露
- 云服务失陷:AWS 凭证失窃可导致云平台被完全控制
- 内网横向渗透:SSH 密钥复用可导致攻击者从开发机渗透到生产环境
- AI 工具链污染:.cursorrules 和 CLAUDE.md 的持久化可导致持续的数据泄露
六、处置措施
6.1 紧急响应(发现感染后 1 小时内)
- 立即隔离受感染主机
- 断开网络连接或隔离到受限 VLAN
- 暂停所有云服务 API 密钥和 GitHub Token
- 终止恶意进程
- 撤销所有暴露的凭证
- 轮换所有 SSH 密钥对(
~/.ssh/id_*) - 撤销并重置 GitHub Personal Access Tokens
- 轮换 AWS Access Keys / Secret Keys
- 重置云服务平台所有 API 密钥
- 更新所有
.env文件中的数据库密码和 API 密钥
6.2 清除与恢复(发现感染后 4 小时内)
- 卸载所有恶意包
- 清除持久化机制
- 清除浏览器数据(如怀疑浏览器钱包受影响)
- 导出并迁移加密钱包到新的安全设备
- 重置所有浏览器扩展钱包的助记词
6.3 取证与监控(持续)
- 检查外泄指标
- 检查是否有数据被上传到攻击者的 GitHub Gist
- 检查浏览器历史中的可疑访问
- 检查 DNS 解析日志中的 ddjidd564.github.io
- 审查 GitHub 仓库完整性
- 检查是否有未授权的仓库访问日志
- 检查是否有仓库被公开或修改
- 检查 GitHub Actions 工作流是否被注入恶意步骤
- 检查是否存在异常SSH连接
七、防范建议
7.1 开发团队即时防护
措施 | 优先级 | 实施方法 |
|---|---|---|
锁定依赖版本 | 紧急 | 使用 |
禁用安装脚本 | 紧急 | npm: |
审查 .cursorrules/CLAUDE.md | 高 | 检查项目中是否存在来源不明的 AI 配置文件 |
使用私有仓库代理 | 高 | 通过 Nexus/Artifactory 代理,实施包名白名单 |
扫描已安装依赖 | 高 | 使用 |
7.2 组织级供应链安全建设
- 实施依赖审查流水线
- 建立包管理策略
- 禁止直接从公共仓库安装未经审查的包
- 实施"引入新依赖需要安全团队审批"流程
- 维护内部恶意包/作者黑名单并自动同步
- 强化凭证管理
- 使用硬件安全模块 (HSM) 或密钥管理服务(AWS KMS, HashiCorp Vault)
- 禁止在本地开发环境存储长期有效的云凭证
- 实施短期临时凭证(AWS STS Session Tokens)
- SSH 密钥使用 passphrase 保护,考虑迁移到 SSH 证书
- AI 开发环境安全
- 将
.cursorrules和CLAUDE.md纳入代码审查范围 - 检查这些文件中是否包含零宽度 Unicode 字符
- 使用工具检测隐藏字符:
cat -v .cursorrules或hexdump -C - 在 AI 工具配置中禁用自动执行外部命令
八、情报总结与趋势研判
8.1 攻击演进特征
TrapDoor 代表了供应链攻击的新演进方向:
- 从"广撒网"到"精准打击":不再追求模仿流行包的 typosquatting 下载量,而是伪装成特定领域(Crypto/AI)的专业工具,精准定位高价值目标
- 从"单一生态"到"跨平台协同":同时利用 npm、PyPI、Crates.io 三个生态的差异化执行机制,扩大覆盖面
- 从"一次性窃取"到"持久化驻留":通过 AI 配置文件、系统服务、定时任务建立多层持久化
- 从"静默窃取"到"AI 工具链投毒":创新性地利用 .cursorrules 和 CLAUDE.md 污染 AI 开发助手,将攻击影响延续到未来的开发会话中
- 从"简单外联"到"基础设施运营":攻击者维护完整的文档体系(AUDIT-MATRIX.md、PAYLOAD.md 等),表现出有组织的攻击能力
8.2 近期供应链攻击态势关联
TrapDoor 并非孤立事件。2026 年以来,软件供应链攻击呈现明显加速趋势:
- Shai-Hulud 系列:持续多轮攻击,影响 170+ npm/PyPI 包,5亿+月下载量
- node-ipc 劫持:通过过期域名接管维护者账号发布恶意版本
- Mini Shai-Hulud:通过劫持合法维护者账号大规模发布恶意版本
- TrapDoor:跨生态系统精准攻击 Crypto/AI 开发者
这表明供应链攻击正从 opportunistic(机会主义)向 targeted(定向化)和 organized(组织化)演进。
8.3 预测与预警
基于本次攻击的技术特征,预计未来可能出现以下趋势:
- AI 开发环境将成为供应链攻击的新焦点:随着 AI 编程助手(Cursor、Claude Code、GitHub Copilot)的普及,
.cursorrules、CLAUDE.md、MCP 配置等 AI 工具配置文件将成为持久化攻击的理想载体 - Crypto 开发者持续成为高价值目标:区块链生态的匿名性和资金直接可转移性使其成为攻击者的首选目标
- 构建时执行(build-time execution)攻击将增多:Rust 的
build.rs模式证明编译期执行可有效绕过运行时检测,类似技术可能被应用到其他编译型语言的构建系统中 - 跨生态关联攻击将更加隐蔽:单一注册表视角难以发现跨平台关联,安全团队需要建立多生态关联分析能力
九、参考来源
- https://socket.dev/blog/trapdoor-crypto-stealer-npm-pypi-crates#Indicators-of-Compromise
声明:本文来自奇安信威胁情报中心,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。