GitLab 漏洞研究团队发现了一起大规模供应链攻击,通过 npm 生态系统传播一种 破坏性恶意软件变体。
该恶意软件是“沙虫蠕虫(Shai-Hulud)”的进化版本,包含一个危险功能:若攻击者失去基础设施控制权,将 销毁用户数据。恶意软件通过多阶段流程在受感染的 npm 包中传播。
当开发者安装受感染的包时,脚本会自动下载看似合法的 Bun JavaScript 运行时——但这只是恶意软件实际 payload 的伪装。这个经过高度混淆的 10MB 文件 会在受害者系统上执行。
受影响的 npm 包
一旦运行,恶意软件会从多个来源 主动窃取凭据,包括 GitHub 令牌、npm 身份验证密钥以及 AWS、Google Cloud 和 Microsoft Azure 的账户信息。它甚至会下载合法安全工具 TruffleHog,扫描整个主目录以寻找配置文件中隐藏的 API 密钥和密码。
利用窃取的 npm 令牌,恶意软件会 自动感染受害者维护的所有其他包:修改 package.json 文件以植入恶意脚本、递增版本号,并将所有内容重新发布到 npm。这种蠕虫式行为使攻击在生态系统中呈指数级传播。
被盗凭据会被泄露至攻击者控制的 GitHub 仓库,仓库标记为“Sha1-Hulud: The Second Coming”。这些仓库形成类似僵尸网络的弹性网络,受感染系统在其中共享访问令牌。
最关键的是,恶意软件包含一个旨在保护攻击基础设施的 破坏性 payload:若受感染系统同时失去对 GitHub 和 npm 的访问权限,将立即触发数据销毁。在 Windows 系统上,恶意软件会尝试删除所有用户文件并覆盖磁盘扇区;在 Linux 和 Mac 系统上,则使用高级擦除技术使文件恢复变得不可能。
这造成了一个危险场景:如果 GitHub 删除恶意仓库或 npm 吊销受损令牌,互联网上成千上万的受感染系统可能会同时销毁用户数据。
GitLab 建议在项目中启用 依赖项扫描,以便在受感染包进入生产环境前自动检测。安全团队还应监控可疑的 npm 预安装脚本和依赖项中异常的版本递增。









发表评论
您还未登录,请先登录。
登录