沙虫蠕虫(Shai-Huluda)——一种以《沙丘》中的沙虫命名的自复制 npm 蠕虫——再度爆发。
此次攻击规模和复杂度极具破坏性,已入侵 800 余个 npm 包,生态系统内月下载量合计达 1.32 亿次。
攻击时机颇具策略性:正值 npm 12 月 9 日吊销传统令牌(classic tokens)的截止日前几周——该举措本旨在打击供应链攻击。许多开发者尚未准备好可信发布替代方案,这一窗口期成为攻击者扩大影响的理想机会。
蠕虫传播机制
据 Aikido Security 分析,沙虫蠕虫的传播效率极高。一旦感染开发者系统,恶意软件会在 包安装过程中自动执行(甚至在安装完成前),并同时部署多种攻击技术:
- 机密窃取:使用 TruffleHog 扫描暴露的密钥,包括 API 密钥、身份验证令牌、GitHub 凭据和云访问令牌。所有发现的敏感信息均被泄露至名为“Sha1-Hulud: The Second Coming”的公开 GitHub 仓库,研究人员已识别出 26,300 个攻击者创建的受损仓库。
- 自我传播:尝试将恶意副本发布至 npm,实现链式感染更多包和开发者。若身份验证失败,恶意软件会 删除用户主目录文件,以“焦土战术”造成最大破坏。
攻击技术升级与影响范围
此次变体比前几波更复杂:
- 通过
setup_bun.js安装 bun(JavaScript 运行时),再通过bun_environment.js执行实际有效载荷。 - 不再使用硬编码仓库名,而是生成 随机仓库标识符,增加溯源和检测难度。
- 攻击范围大幅扩大:每次感染目标从之前的 20 个 npm 包增至 100 个。
防御者还发现,部分受损包仅包含暂存代码而无完整蠕虫载荷,显示攻击者可能存在操作失误,在某些情况下限制了影响范围。
受影响的包来自多家大型科技组织,包括 AsyncAPI(36 个包)、PostHog(多个分析包)、Zapier(多个 SDK 和插件组件)、Postman(集合和工具包)、ENS(以太坊域名服务包)以及无数小型组织。AsyncAPI 团队证实,攻击者甚至在其 CLI 仓库中创建了恶意分支,表明 GitHub 凭据可能已被直接攻陷。
生态系统脆弱性与启示
1.32 亿次受影响下载意味着潜在影响波及数千家组织,其中许多尚未意识到系统可能已感染蠕虫。npm 社区的脆弱性部分源于 依赖链过深——开发者很少审计所有间接依赖包;加之 密钥管理 practices 不足,供应链攻击依然极具破坏性。
组织必须认识到:包安装不再仅是管理操作,而是 关键安全事件,需要主动威胁监控和凭据保护。










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