ChainDrop供应链攻击:自传播蠕虫剖析
微软威胁情报部门识别出一场大规模 npm 供应链攻击,影响了 400 多个软件包,涉及多个互不相关的发布者,其中包括与 keyv、flat-cache、cache-manager 等主要企业软件生态系统相关的软件包。恶意版本包含 Mini Shai-Hulud 变体,这是一种通过大型、高度混淆的基于 Bun 的 JavaScript 载荷传播的自传播凭据窃取蠕虫。该恶意软件通常通过 npm 的 preinstall 生命周期钩子在软件包安装完成前自动执行。
一旦执行,恶意软件会搜索开发者工作站以及持续集成和持续交付(CI/CD)环境中的 npm、GitHub、云和基础设施凭据。它利用恢复的身份向 npm、GitHub、亚马逊网络服务(AWS)、Kubernetes 和 HashiCorp Vault 进行身份验证,从而能够枚举软件包、代码仓库、工作流机密、云参数和机密存储值。收集到的数据经过加密后,通过攻击者控制的 HTTPS 端点传输,并以 GitHub 代码仓库作为备用外泄渠道。
该载荷最显著的能力是自动传播。在获取 npm 发布令牌后,它会枚举受损身份可用的软件包,下载其最新压缩包,插入恶意软件和安装加载器,添加 preinstall 钩子,递增补丁版本号,并重新发布修改后的软件包。该恶意软件还可以利用窃取的 GitHub 凭据,将 Claude 和 Visual Studio Code 配置文件注入代码仓库,从而建立持久性并创建额外的开发者间感染路径。
在本文中,我们将分享对此供应链攻击的分析,以及防护、检测和搜寻指南。安装了受影响软件包且启用了生命周期脚本的组织,应将相关开发者工作站或构建运行器视为可能已受损。调查应优先关注受影响身份可访问的凭据、未经授权的 npm 发布、意外的代码仓库或工作流修改、可疑的云和机密存储访问,以及受影响构建系统产生的产物。组织应从已知干净的环境中撤销并轮换暴露的凭据,并从可信来源重建受影响的系统和下游产物。
攻击链概述
该活动表现为一系列快速的未经授权补丁版本发布,涉及 400 多个 npm 软件包,这些软件包由原本互不相关的发布者维护。许多恶意版本没有对应的源代码提交、拉取请求、标签或合法发布记录,这表明攻击者直接修改并发布了软件包压缩包,而非入侵每个公共源代码仓库。
受影响的版本通常添加了一个 preinstall 生命周期脚本,该脚本启动软件包中包含的恶意文件 setup.mjs,进而启动软件包中附带的大型混淆 Bun JavaScript 捆绑包。由于 npm 在安装完成前运行 preinstall 脚本,载荷可以在应用程序测试或常规安全检查开始之前,在开发者工作站和构建运行器上执行。
执行后,恶意软件会执行以下操作:
原文内容较长,本文保留主要内容节选;完整信息请参考下方来源链接。
来源:Microsoft Security Blog;内容经中文翻译改写,采集时间:2026-08-26 00:10:15。
(责任编辑:数字安全观察)
- ·网络小白必看!从零学网络知识,这篇新手教程太接地气了
- ·测量总不准别慌!科学风险防范5招教你避开坑
- ·网络小白必看!从零学网络知识,这篇新手教程太接地气了
- ·微软获评KuppingerCole云原生应用保护平台领导力指南领导者
- ·微软Defender于QNET事件中128秒拦截勒索软件
- ·微软入选2026年Frost Radar™云工作负载保护平台领导者榜单
- ·ChainDrop供应链攻击中的自传播蠕虫分析
- ·DeadLock勒索软件:解析基于Rust的加密器及其去中心化恢复基础设施
- ·午夜暴雪向全球旅客投放恶意软件窃取凭据
- ·微软入选2026年Frost Radar™云工作负载保护平台领导者榜单








