突发!npm 遭区块链蠕虫攻击!140+ 毒包肆虐!
摘要
事件起因 此次大规模供应链攻击的源头,是去年针对漏洞扫描工具Trivy的一次成功入侵。黑
事件起因
此次大规模供应链攻击的源头,是去年针对漏洞扫描工具Trivy的一次成功入侵。黑客组织TeamPCP在攻陷其GitHub仓库后,于v0.69.4版本中植入了恶意后门,并通过强制推送发布了75个带毒标签。此次初始攻击窃取了海量npm账户凭证,为后续自动化蠕虫的诞生提供了燃料。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

攻击者利用窃取的凭证,开发出名为CanisterWorm的自动化蠕虫。其核心威胁在于能够利用被盗身份自动发布新的恶意包,形成无需人工干预的自我复制与传播链条。
感染机制解析:三步自动化攻击链
第一步:依赖安装触发后门
开发者执行常规安装命令时,即触发恶意代码。隐藏在合法包中的postinstall脚本在安装后静默执行。
npm install @emilgroup/xxx ← 看似正常的包,postinstall 脚本偷偷运行
第二步:凭证窃取与持久化
恶意脚本启动后,会系统性地扫描项目.npmrc配置文件及系统环境变量,目标直指有效的NPM_TOKEN。一旦发现,立即窃取并存储以供后续滥用。
第三步:身份劫持与恶意包发布
蠕虫利用盗取的令牌,以受害者身份向npm仓库发布新的恶意包版本。整个过程常被伪装成自动化版本更新,极具迷惑性。
“检测到你有 5 个 npm 包,正在帮你发布 v1.2.3...”
新的受害者安装这些被“更新”的包后,感染循环自动重启,攻击范围呈指数级扩散。
影响范围与基础设施
截至目前,攻击已发布超过140个恶意版本,污染了至少66个独立的npm包。其中,@emilgroup/*(28个包)与@opengov/*(16个包)两个命名空间受影响最为严重。若近期安装过来自这些源的包,需立即进行安全审查。

此次攻击最棘手之处在于其命令与控制(C2)架构。蠕虫并未使用传统中心化服务器,而是连接至Internet Computer(ICP)区块链上的智能合约(容器)。这种去中心化基础设施无固定IP,难以查封,抗打击能力极强。蠕虫每50分钟向区块链查询一次指令。当前指令仅指向一个“戏弄性”YouTube视频(Rick Roll),使其处于休眠状态。但攻击者可随时更新指令,一旦部署真实恶意载荷,全球受感染主机将瞬间被激活。
高级威胁:具备地理定位的破坏能力
蠕虫的最新变种引入了地理定位功能,实现了攻击的精准化与差异化:
- 若检测到主机位于伊朗,则执行硬盘格式化并强制重启的破坏性操作。
- 对于其他地区的机器,则选择隐蔽安装后门,进行长期潜伏。
这种行为模式表明,攻击者的动机已超越单纯的经济窃取,可能涉及更复杂的攻击意图。
应急响应与缓解措施(按优先级排序)
立即行动(5分钟内完成):
- 立即访问 https://www.npmjs.com/settings/tokens,撤销所有现有npm访问令牌,并仅按需创建新的最小权限令牌。
- 在系统上检查是否存在异常的“pgmon”服务进程。
- 如果你是npm包维护者,立即审计你名下所有包近期是否有未经授权的版本发布。
- 彻底删除项目中的node_modules目录及package-lock.json文件,从干净源重新安装依赖。
- 配置npm以禁止安装时自动执行脚本,从根本上阻断此类攻击:
注意:此举可能导致依赖安装后脚本的正规包功能异常,但在当前威胁下是必要的安全权衡。npm config set ignore-scripts true
长期安全加固策略
- 为npm账户强制启用双因素认证(2FA),这是防御凭证窃取的核心措施。
- 全面采用短期、自动过期的访问令牌,彻底弃用永久令牌。
- 建立依赖安装前审查习惯:验证包来源的官方性,警惕版本号的异常突增。
总结:供应链安全的新常态
与此前需要手动投毒的供应链攻击不同,此次蠕虫实现了全自动化传播,其感染效率与隐蔽性均是指数级提升,遏制难度极大。
这是继2025年Shai-Hulud蠕虫之后,第二起被公开确认具备自我复制能力的npm供应链攻击。这标志着一个明确的趋势:攻击方已完全掌握自动化供应链攻击的方法论,此类高持续性威胁将成为未来常态。软件供应链的安全范式已被永久改变。
行动建议非常直接:立即执行上述令牌审查与系统检查。拖延意味着风险,你可能在不知不觉中成为攻击链的下一个传播节点。
(本文信息综合整理自GBHackers、Socket、Aqua Security等安全团队的研究报告。相关深度分析可参考:https://gbhackers.com/canisterworm-hijacks-npm/)
来源:互联网
本文内容整理自公开资料与网络信息,仅供学习和参考使用。正式发布或转载前,请结合原始来源、发布时间和实际场景进一步核验。