npm蠕虫获真实认证:安全机制被滥用

供应链安全面临新威胁
周二,一名攻击者成功接管了维护keyv库的开发者GitHub账户。keyv是一个小型的键值存储库,每周通过npm服务约1.27亿次。几小时内,keyv及其相关缓存软件包的恶意版本已发布到npm,携带了窃取凭证的蠕虫。到中午时分,安全公司Aikido统计发现至少有868个被入侵的软件包,涉及1,381个版本,总计超过20亿次月度安装,这一数字仍在持续增长。JFrog独立追踪到该活动涉及400多个软件包和1,700多个恶意版本。
每个安全团队最应担心的不是下载量,而是认证文件。最初的恶意版本附带有效的来源证明签名,这是行业建立的加密认证机制,用于证明软件包确实来自其声称的来源。这种蠕虫并未伪造该签名,而是像合法发布一样获得了它。
一天前,CrowdStrike发布了其2026年威胁追踪报告,并预测了这种确切形式的攻击。报告中题为”软件供应链攻击演变”的部分指出,开发者生态系统本身、软件包注册表、持续集成流水线、容器注册表以及开发者在代码编辑器中加载的扩展,都已成为攻击者直接针对的目标。该报告将npm软件包置于这一转变的中心,指出其与CrowdStrike上半年追踪的87%恶意软件注册表威胁相关。keyv蠕虫在24小时内将这一发现转变为现实事件。
蠕虫如何获得来源证明
了解其工作机制后,就能清楚为什么来源证明没有发挥作用。根据Aikido的分析,攻击者将恶意文件直接推送到维护者控制的每个仓库的主分支,然后立即发布新版本。由于该版本通过维护者自己的GitHub Actions工作流运行,npm为其生成了合法的来源证明。对于任何审核供应链完整性的人员来说,这个被污染的构建看起来是真实的。Wiz独立确认了发布路径,而在JFrog记录的一个目标路径中,蠕虫更进一步。在与opensearch-js关联的GitHub Actions运行中,它请求OIDC令牌,将其交换为发布令牌,并通过Fulcio和Rekor创建了Sigstore捆绑包,使恶意tarball携带从受信任工作流上下文生成的来源证明。
是什么让单个账户接管演变为整个注册表事件?答案是传播速度。一旦被污染的软件包进入开发者的环境或构建运行器,其有效载荷就会收集它能找到的所有凭证,然后使用发现的任何npm发布令牌来入侵受害者控制的其他软件包。每个被入侵的维护者都成了不知情的分发节点,Aikido观察到每几分钟就有数十个新感染软件包出现。恶意软件将窃取的秘密传输到标记为”Shai-Hulud: Here We Go Again”的公共GitHub仓库,这是命名该活动的签名。
这种影响范围远不止于小众工具。由于keyv作为许多流行工具的传递性依赖项,该蠕虫通过这些链条进入了企业npm作用域下的软件包,确认的受害者包括Deliveroo、Qlik和Picsart等公司。这些公司的开发者从未有意安装keyv,他们只依赖于依赖于它的某些东西,而这些依赖关系位于没有人会人工审查的依赖树深层。
真正的目标是云基础设施
有效载荷中的凭证提取器揭示了攻击者的真实目标,他们从来不是为了缓存库。JFrog(追踪了keyv和cacheable的入侵)和Wiz都发现恶意软件在收集云访问密钥、CI密钥和用于认证生产基础设施的令牌。软件包入侵只是手段,其背后的云基础设施才是最终目的地。CrowdStrike发现2026年上半年与云相关的犯罪活动增长了171%,而供应链入侵是助长这一趋势的途径之一。
开发者工具成为攻击目标
窃取并不是终点,因为蠕虫还潜伏在开发者工作的地方。Wiz发现恶意软件将其持久化有效载荷放置在它能够到达的机器上的两个目录中,一个是Visual Studio Code目录,另一个名为.claude,这是Anthropic的Claude Code智能体的工作目录。放置在那里的设置文件意味着有效载荷不仅可以在安装时运行,还可以在开发者在编辑器中打开受感染项目或启动AI编码会话时执行。这正是CrowdStrike命名的开发者生态系统,被精准打击——开发者最信任但最不审查的编辑器和AI助手。
零成本的解决方案
有一种控制措施本可以削弱蠕虫的影响,而且它不需要任何成本。CrowdStrike反敌对行动负责人Adam Meyers在 embargo 下的发布前采访中阐述了这一点。”保护软件供应链,”他说,”简单的事情如不允许你的工具获取最新的依赖项,而是使用上周的依赖项。”延迟正是关键。”你仍然可以使用相当最新的内容,但不会在几分钟前更新了某物后就引入某种恶意工具的风险。”推迟一周的发布可以为安全社区提供时间来捕获否则会在几分钟内影响到所有下游构建的污染。
这一建议并非假设。npm在2026年2月通过CLI版本11.10.0提供了此功能,作为一个名为min-release-age的设置。pnpm在五个月前通过minimumReleaseAge实现了这一功能。两者都允许团队拒绝发布超过其设定阈值的软件包版本。keyv蠕虫是启用此功能的理由。
Meyers将这种冷却期与第二个纪律结合:优先修补攻击者正在利用的漏洞。”你需要将你的漏洞缓解和修补工作集中在已被攻击者所知的漏洞上,”他对VentureBeat表示。他指出了一个大多数团队都未充分利用的资源:”美国这里的CISA发布了一个名为已知被利用漏洞目录的内容,每周更新一次,包含确认处于活跃攻击中的缺陷,由政府维护且免费。如果你首先修补这些漏洞,你可能更安全。”
Meyers为速度问题提供了具体数字,这些数字未出现在已发布的报告中。整个2025年约有48,200个漏洞被注册为CVE。他在简报会前一周检查时,2026年已达到43,000个。
这种数量级打破了月度修补周期。当漏洞数量每月增长数千个时,依赖月度安全更新已经不足以应对威胁。
关注微信号:智享开源 ,及时了解更新信息。


公众号:智享开源
还没有任何评论,你来说两句吧!