CrowdStrike:SANDWORM_MODE——针对 AI 开发工具链的 npm 蠕虫与「寄生 AI 工具链」攻击

SANDWORM_MODE 是多阶段 npm 供应链蠕虫(共 19 个恶意包),滥用 CI runner、AI 编码助手与 LLM 工具链:窃 npm/GitHub token、部署恶意 MCP server、注入 git hooks,CI 环境即时触发、开发机延迟 48–96 小时。

📖 原文翻译与解读。原文:Denying the Worm: Detecting SANDWORM_MODE and the Emerging Class of AI Toolchain Supply Chain Attacks(CrowdStrike,2026-07-21)

一、一种新攻击类

2026 年 2 月 Socket.dev 披露了在内部标志 SANDWORM_MODE 下运作的多阶段 npm 供应链蠕虫,横跨 19 个恶意包、两个发布者别名,展示了针对 AI 增强开发工作流的新攻击类。与以往针对构建产物、注入静态后门或批量窃凭据的供应链攻击不同,SANDWORM_MODE 独特地滥用了 AI 编码助手、CI 自动化与 LLM 工具链的运行时行为——恶意动作发生的环境与合法操作在功能上无法区分,这是检测工程面临的核心挑战。

二、感染链三阶段

Stage 0(混淆加载器):Base64 解码+zlib inflate+XOR 解密+间接 eval/Module._compile,在包导入时触发,无明确恶意逻辑,绕过依赖发布时扫描的静态分析。Stage 1(侦察与快采):指纹运行时(开发机 vs CI runner,CI 环境跳过延时门)、提取 .npmrc token 与匹配 KEY/SECRET/TOKEN/PASSWORD 的环境变量及加密钱包密钥,立即 POST 至攻击者 Cloudflare Worker;开发机设 48–96 小时延时炸弹,CI 环境即时触发。Stage 2(全能力套件):AES-256-GCM 解密至 /dev/shm 经 require() 执行后立即 unlink,无磁盘取证痕迹。

三、针对 AI 管道六组件的破坏

传播:窃 npm token 后向名下所有包注入 Stage 0 shim 并 npm publish;经 GitHub API token 注入 carrier 依赖并开 pull_request_target 工作流绕过 fork 隔离;SSH 回退直接克隆注入。持久化:写恶意 pre-commit/pre-push hooks 到 ~/.git-templates/hooks/ 并设 init.templateDir,使未来每次 git init/clone 自动继承。AI 工具链破坏:部署恶意 MCP server 到隐藏目录(如 ~/.dev-utils/server.js)并注入 Claude Desktop/Cursor/VSCode/Windsurf 配置注册为可信工具,借 system prompt 静默窃取 SSH 密钥、AWS 凭据、npm token 与 9 家 LLM provider API key;另有破坏回退(shred 全部可写用户文件)。

四、检测困境与防护

CrowdStrike 在 14 个被研究行为中仅 9 个能产生信号、仅 2 个达客户可见告警保真度——因为蠕虫的传播例程与正常 git/registry 操作、安全删除、AI 基础设施健康检查的遥测完全同质,这是结构性问题而非签名可解。防护要点:为 MCP server 部署、AI 助手配置写入与 LLM API key 使用建立专属基线;对 npm publish/commit/PR 等高危动作做进程树祖先+目标专一性关联检测;将包安装事件与可疑行为的相关窗口(应对 48–96 小时延时)纳入更长遥测保留;零信任密钥管理并定期轮换。

了解更多行业资讯,请访问 行业资讯首页 或致电 021-69753778 获取安全咨询服务。

相关文章


—— ztpop.net 编辑团队 译