有效证书竟是“伪装”:npm最后一道信任防线被攻破

事件概述:一场精心策划的信任攻防战
在5月19日,一场名为“Mini Shai-Hulud”的攻击活动中,633个恶意npm包版本成功通过了Sigstore的来源验证,被系统放行。攻击者正是利用被窃取的维护者账号,生成了看似合法的签名证书,从而蒙混过关。
Sigstore本身运作正常:它验证了包是在CI环境中构建的,确认了证书的有效性,并记录了所有信息。然而,它的设计缺陷在于,无法判断证书持有者是否真正授权了此次发布——正是这个缺口,让npm最后的自动化信任信号变成了“迷彩”,失去了其本应具备的安全价值。
无独有偶,就在前一天(5月18日),StepSecurity也记录了一起针对Nx Console VS Code扩展的攻击事件。该扩展拥有超过220万次安装量,其恶意版本仅上线40分钟,但内部telemetry数据显示,在此期间约有6000次激活,绝大多数通过自动更新完成,而官方下载量仅为28次。该恶意载荷窃取了AWS密钥、GitHub令牌、npm令牌、1Password密码库内容以及Kubernetes服务账户令牌等敏感信息。
攻击溯源与影响范围
“Mini Shai-Hulud”攻击活动由多个研究团队归因于一个名为TeamPCP的、以经济利益为驱动目标的威胁组织。该活动于5月19日UTC时间01:39开始,迅速蔓延至@antv数据可视化生态系统及数十个未命名包,其中echarts-for-react拥有约110万周下载量。Endor Labs在两个长期未更新的休眠包(jest-canvas-mock和size-sensor)发布包含混淆过的498KB Bun脚本的新版本时,检测到了最初的攻击波。
到UTC时间02:06,该蠕虫已传播至@antv生态系统及数十个未命名包。Socket的统计显示,本次攻击波涉及323个独立包的639个恶意版本。在整个攻击生命周期中,Socket追踪到在npm、PyPI和Composer上共计502个包的1055个恶意版本。
StepSecurity确认,攻击载荷中包含了完整的Sigstore集成。攻击者不仅窃取了凭证,他们还能够为下游npm包签名并发布,这些包都携带着有效的来源证明。
行业性漏洞:验证模型已普遍失效
这两个事件并非孤例。Endor Labs、Socket、StepSecurity、Adversa AI、约翰霍普金斯大学、微软MSRC以及LayerX等研究团队独立证实,当前的软件开发工具验证模型存在根本性缺陷,没有任何一个供应商的框架能够审计所有失效的攻击面。
在5月18日至19日的48小时内,共有七处攻击面集体失效,包括npm来源伪造、VS Code扩展凭证盗窃、MCP服务器自动执行、CI/CD代理提示注入、代理框架代码执行、IDE凭证存储暴露和影子AI数据暴露。下方的审计矩阵详细映射了每一项。
七大攻击面失效详情
- npm来源伪造: 攻击者利用被盗的OIDC令牌生成有效Sigstore证书,通过自动化验证。
- VS Code扩展凭证盗窃: 恶意扩展版本通过被盗贡献者令牌在市场发布。
- MCP服务器自动执行: (原文未详述,根据上下文推断)
- CI/CD代理提示注入: (原文未详述,根据上下文推断)
- 代理框架代码执行: (原文未详述,根据上下文推断)
- IDE凭证存储暴露: (原文未详述,根据上下文推断)
- 影子AI数据暴露: (原文未详述,根据上下文推断)
AI编码工具的连锁危机
Adversa AI在5月7日披露了“TrustFall”漏洞,证明Claude Code、Gemini CLI、Cursor CLI和Copilot CLI在开发者接受文件夹信任提示时,会自动执行项目定义的MCP服务器。这四个工具默认选择“是”或“信任”,一次按键操作就会以开发者的完整权限启动一个未沙箱化的进程。MCP服务器拥有足够的权限,可以读取其他项目中的存储密钥和源代码。在CI runner上使用Claude Code的GitHub Action时,信任对话框甚至不会渲染,攻击可在零人工干预的情况下执行。
约翰霍普金斯大学的研究人员Aonan Guan、Zhengyu Liu和Gavin Zhong发表了“Comment and Control”论文,证明了在GitHub拉取请求标题中植入恶意指令,可导致Claude Code安全审查功能泄露其API密钥。该攻击同样适用于Google的Gemini CLI Action和GitHub的Copilot Agent。Anthropic通过其HackerOne项目将该漏洞评为CVSS 9.4级的严重漏洞。
微软MSRC在5月7日披露了两个关键的Semantic Kernel漏洞。一个漏洞会将攻击者控制的向量存储字段路由到Python的eval()调用中;另一个漏洞则将主机端的文件下载方法暴露为可调用的内核函数,这意味着向量存储中的一个中毒文档即可在主机上启动一个进程。
LayerX安全研究人员则演示了Cursor将API密钥和会话令牌存储在不受保护的位置,意味着任何浏览器扩展都可以在无需提升权限的情况下访问开发者凭证。
威胁行为者与影子AI的合谋
Verizon 2026年数据泄露调查报告显示,67%的员工通过企业设备访问非企业账户的AI服务。影子AI已成为数据防泄漏(DLP)数据集中第三大最常见的非恶意内部人员操作。源代码是提交到未经授权的AI平台的主要数据类型,而这正是npm蠕虫活动的主要攻击目标。
CrowdStrike 2026年金融服务业威胁态势报告则记录了威胁行为者积极猎取这些攻击所窃取的凭证类型。STARDUST CHOLLIMA在2025年第四季度针对金融机构的运营节奏翻了一番。CrowdStrike记录了该组织使用AI生成的招聘人员形象在LinkedIn和Telegram上发送恶意编码挑战,这些挑战看起来像是技术评估,并运行带有合成环境的虚假视频通话。他们的目标是GitHub个人访问令牌(PATs)、npm令牌、AWS密钥和CI/CD密钥。影子AI的暴露正是他们得以进入的“后门”。
开发工具身份盗窃审计矩阵
目前没有任何供应商的框架能够覆盖所有七处攻击面。此矩阵将每个攻击面与其披露的研究、您的技术栈无法检测到的风险以及在下一次供应商续约前应采取的审计行动对应起来。
- 攻击面1: npm来源伪造 – 由Endor Labs、Socket于5月19日披露。失效的验证点在于:通过被盗OIDC令牌生成的Sigstore证书可通过自动化验证。您的技术栈无法看到:EDR和SAST无法验证签署包的CI身份是否授权了发布。建议审计行动:要求周下载量超过10,000的包在发布时进行两方批准。切勿将绿色的Sigstore徽章视为合法性的证明。
- 攻击面2: VS Code扩展凭证盗窃 – 由StepSecurity于5月18日披露。失效的验证点在于:VS Code市场接受了使用被盗贡献者令牌发布的恶意扩展版本。您的技术栈无法看到:扩展自动更新绕过了端点检测。建议审计行动:(原文未详述)
- (其他五个攻击面的详细说明因原文截断而省略)
关注微信号:智享开源 ,及时了解更新信息。
原文链接:https://venturebeat.com/security/npm-sigstore-provenance-stolen-identity-audit-grid-2026

关注微信

还没有任何评论,你来说两句吧!