在软件供应链安全领域,信任是一切的基础。然而,最近一起针对npm生态的蠕虫攻击,却让这个基础出现了裂痕。攻击者通过劫持一个小型键值存储库`keyv`维护者的GitHub账号,在短短几小时内向npm推送了携带凭证窃取功能的恶意版本。更令人震惊的是,这些恶意包居然拥有合法的provenance签名——业界用来验证软件包来源的加密证明。这不是伪造,而是通过正常发布流程“合法”获得的。这一事件将当前科技趋势下的供应链安全危机推到了聚光灯下,也引发了关于AI投资和AI独角兽如何加强自身防护的广泛讨论。
一场精心策划的“合法”入侵
事件始于一个看似普通的账号劫持。攻击者控制了`keyv`库维护者的GitHub账号,然后直接将恶意代码推送至仓库主分支,随即触发新版本发布。因为整个发布流程运行在维护者自己的GitHub Actions工作流中,npm自动生成了合法的provenance认证。对于任何审计供应链完整性的人来说,被污染的版本看起来完全正常。
安全公司Aikido在攻击发生后数小时内就统计到至少868个被攻陷的包,涉及1381个版本,这些包每月合计安装量超过20亿次,且数字仍在攀升。JFrog独立追踪到了超过400个包和1700个被污染的版本。攻击者的恶意载荷不仅窃取凭证,还会利用受害者的npm发布令牌继续感染其他包,每个被攻陷的维护者都变成了无意识的传播节点。Aikido观察到每几分钟就有数十个新感染的包出现。
这个蠕虫之所以能造成如此大范围的破坏,关键在于`keyv`本身是一个被广泛使用的传递依赖项。许多流行工具间接依赖它,攻击者借助这些依赖链深入到了企业级npm作用域下的包,包括Deliveroo、Qlik和Picsart等公司。开发人员从未主动安装`keyv`,但他们依赖的某个工具依赖了它,而依赖树深到没有人会手动审查。
信任机制的崩塌:provenance签名为何失效?
本次事件最令人担忧的部分不是下载量,而是“文书工作”。最初的恶意版本都带有有效的provenance签名,这是行业为证明软件包来源而建立的加密凭证。但蠕虫并没有伪造签名,而是像合法发布一样“挣得”了它。
安全团队普遍认为,只要包带有provenance签名,就可以信任。但攻击者通过控制维护者账号,在维护者自己的GitHub Actions工作流中运行发布流程,从而让npm生成合法的provenance认证。Wiz独立确认了发布路径,JFrog更进一步发现,在`opensearch-js`相关的GitHub Actions运行中,蠕虫请求OIDC令牌,将其交换为发布令牌,然后通过Fulcio和Rekor铸造了Sigstore包,使得恶意压缩包携带了来自可信工作流上下文的provenance。
这意味着,provenance签名验证的是“谁发布了这个包”,而不是“这个包是否安全”。当攻击者控制了合法发布者,信任信号就变成了攻击者的帮凶。这一发现对当前科技趋势下的软件供应链安全提出了根本性挑战——我们依赖的信任机制,如果被攻击者合法利用,反而会成为掩护。
许多AI独角兽在快速迭代中大量依赖开源组件,它们通常将安全信任寄托于此类签名。但这次事件表明,仅仅依赖签名远远不够。AI工具导航中收录的许多安全工具也开始反思这一漏洞。
供应链攻击的新范式:开发者生态成为靶心
实际上,CrowdStrike在攻击发生前一天刚刚发布了2026年威胁狩猎报告,其中明确预测了这种攻击形态。报告中的“软件供应链攻击演变”章节指出,开发者生态本身——包括包注册表、CI/CD流水线、容器注册表以及代码编辑器扩展——已成为攻击者直接瞄准的攻击面。npm包被置于这一转变的中心,与CrowdStrike上半年追踪的87%的恶意软件注册表威胁相关联。`keyv`蠕虫在24小时内将这一发现变成了现实案例。
对于CISO和安全架构师来说,这两个事件传达了一个信息:软件供应链中内置的信任信号可以被拥有合法账号的攻击者满足,而漏洞披露到利用之间的窗口已经缩短到低于月度补丁能够吸收的程度。
攻击者不仅窃取凭证,还直接将恶意代码植入开发者的工作环境。Wiz发现,恶意软件在受感染机器上向两个目录放置持久化载荷:一个是Visual Studio Code目录,另一个是名为`.claude`的目录——这是Anthropic的Claude Code智能编码代理的工作目录。这意味着,当开发者在编辑器中打开被感染项目或启动AI编程会话时,载荷就会执行,而不仅仅是在安装时。这正是CrowdStrike所指的开发者生态——开发者最信任、最不常检查的编辑器和AI助手被精准命中。
随着AI Agent技术的普及,这类攻击面会进一步扩大。开发者使用AI画图、文生图等工具时,往往只关注输出,而忽略了底层依赖链的安全。
攻击者的真实目标:云基础设施与AI辅助工具
恶意载荷中的凭证提取器揭示了攻击者的真正目标——从来不是缓存库本身。JFrog和Wiz都发现,恶意软件在收集云访问密钥、CI密钥以及用于认证生产基础设施的令牌。包被攻陷只是手段,云基础设施才是最终目的地。CrowdStrike发现,2026年上半年面向云环境的犯罪活动增长了171%,而供应链攻击正是其中的路径之一。
更值得警惕的是,攻击者将持久化载荷植入AI辅助工具的工作目录,例如Claude Code。这意味着,当开发者使用AI编程助手时,恶意代码可能被自动执行,从而窃取更多敏感信息或横向移动。这种将AI工具作为跳板的攻击方式,是当前科技趋势下的新隐患。
对于AI投资领域来说,这无疑敲响了警钟。许多AI独角兽在开发中重度依赖开源组件和AI辅助编程,但安全投入往往滞后于产品迭代。AI投资风向标显示,投资者越来越关注初创公司的安全合规能力,而供应链安全是其中的关键指标。
防御之道:零成本的时间差策略
面对如此狡猾的攻击,是否有简单有效的防御措施?CrowdStrike反对抗行动负责人Adam Meyers给出了一个零成本的方案:“保护软件供应链,比如不允许工具拉取最新的依赖,而是拉取上周的依赖。”这个时间差是关键。
“你仍然可以获得非常新的代码,但不会承担拉取几分钟前刚更新的包的风险,因为那可能包含了恶意工具。”延迟一周发布,给安全社区留出时间捕捉那些本会在几分钟内影响所有下游构建的污染。
这个建议并非空想。npm在2026年2月发布的CLI 11.10.0版本中,已经包含了名为`min-release-age`的设置。pnpm更早,在五个月前就推出了`minimumReleaseAge`。团队只需启用这些设置,就可以拒绝任何低于指定年龄的包版本。
此外,企业还可以考虑使用抠图、背景去除等工具来优化开发环境的同时,建立更严格的依赖锁定策略。企业数字化转型过程中,安全不能成为速度的牺牲品。
科技趋势下的安全反思:AI独角兽与AI投资的启示
这次事件不仅是技术问题,更是对行业生态的拷问。在科技趋势快速演进的今天,AI独角兽们往往追求快速迭代和市场份额,而将安全视为事后补丁。但正如本次攻击所展示的,一个看似无害的缓存库被攻陷,就能引发连锁反应,波及众多知名企业。
AI投资领域也在重新评估风险。投资者开始关注目标公司的软件供应链安全实践,包括是否使用了依赖锁定、是否有版本延时策略、是否对AI辅助工具进行安全审查等。AI独角兽在融资时,安全审计报告的分量越来越重。
同时,AI图片生成、藏头诗等创意工具虽然看似远离基础设施,但它们的底层依赖同样可能成为攻击入口。一个完整的AI工具箱应该包含安全评估模块。
业界普遍认为,这次事件标志着软件供应链攻击进入新阶段——攻击者不再需要伪造签名,而是通过合法途径获得信任。这意味着,我们必须重新思考信任模型:从“信任但验证”转向“不信任,始终验证”,并引入时间维度的约束。
未来,随着AI Agent和自动化工具的普及,开发者生态的攻击面只会越来越大。安全团队需要将防御前置到开发流程的每一个环节,包括CI/CD流水线、包注册表、编辑器扩展和AI助手。大模型训练过程中使用的数据集和依赖库,也可能成为新的攻击目标。
总之,科技趋势下的安全挑战没有银弹,但通过简单的策略调整和工具改进,我们可以大幅降低风险。这次`keyv`蠕虫事件,既是警钟,也是教材。