关键词
恶意软件

GitLab 漏洞研究团队近日披露,一场针对 npm 生态的大规模供应链攻击正在迅速扩散。攻击者投放的是进化版本的 “Shai Hulud” 恶意程序,而这次出现的变种更加危险,因为它被植入了“死者开关”机制——一旦攻击者失去对自身基础设施的控制,受感染系统就会被强制触发数据销毁。
整个攻击链通过被污染的 npm 软件包展开。当开发者安装受感染的包时,会自动执行一个脚本,该脚本伪装成下载合法的 Bun JavaScript 运行时,但实际获取的是一个高度混淆、接近 10MB 的恶意可执行文件。该程序一旦启动,立即开始大规模窃取凭证,覆盖范围包括 GitHub 令牌、npm 授权密钥,以及 AWS、Google Cloud、Microsoft Azure 等云服务账户。
为了进一步扩大窃取范围,恶意程序还会下载并调用 Trufflehog 这类合法工具,扫描受害者整个用户目录中可能暴露 API Key 或密码的配置文件。

随着感染深入,恶意程序会利用被盗 npm 凭证自动污染受害者名下所有软件包。它会修改 package.json 文件加入恶意脚本、提升版本号,并将篡改后的内容重新发布回 npm,使感染呈指数级扩散。被窃取的令牌会传回攻击者控制的 GitHub 仓库,这些仓库被统一标记为 “Sha1 Hulud The Second Coming”,形成一个去中心化的凭证共享网络,让被攻陷的设备共同维持攻击链条。
最具破坏性的部分在于其“终结机制”。一旦感染系统同时失去 GitHub 和 npm 的访问能力,恶意程序会立即执行数据摧毁操作。Windows 设备会遭到用户文件删除及磁盘扇区覆盖;Linux 和 macOS 系统则会被采用更高级的数据擦除方式,使恢复几乎不可能。
这意味着如果 GitHub 清理恶意仓库、或 npm 撤销被盗令牌,可能会在全球范围触发成千上万设备的同步数据毁灭,造成深远破坏。
GitLab 建议开发团队尽快启用项目内的依赖扫描,以便在恶意包进入生产环境前自动检测并阻断。同时,安全团队需密切关注异常的 npm preinstall 脚本以及依赖项中不寻常的版本号变动,以提前发现异常迹象。







