2025年11月24日,随着Shai-Hulud 2.0的卷土重来,JavaScript/npm生态系统正面临供应链威胁的新基准。这种自传播蠕虫专门针对开源维护者及其发布的软件包。该新变种标志着威胁形态从孤立的恶意软件包转向了协同化的自动化感染机制。
影响已相当严重。数百个npm包和数万个GitHub仓库受到波及,形成了JavaScript供应链攻击中前所未有的"爆炸范围"。 对于熟悉OPSWATShai-Hulud 1.0分析的读者而言,2.0版本大幅扩展了蠕虫的能力与运作规模:更早的执行时机、更广的传播范围、更强的抗常规修复能力,使其从令人担忧的威胁升级为影响整个生态系统的重大事件。
沙伊-胡鲁德2.0 速览
- 自传播蠕虫:Shai-Hulud 2.0窃取GitHub凭证,重新打包自身,并重新发布至维护者整个npm项目库。
- 大规模扩散:700多个受感染的npm包,25,000多个GitHub仓库,500名维护者受影响;每30分钟新增1,000多个仓库(Wiz)。
- 跨生态系统影响:通过自动化的npm到Maven镜像功能,在Maven/Java中同样可见。
- 关键风险:持续集成/持续交付暴露、机密泄露、安装时执行以及注册表中毒。
- 防御措施:软件物料清单(SBOM)准确性、来源验证、运行时监控以及严格的令牌/密钥管理规范。
范围与升级:损害范围有多广?
Shai-Hulud 2.0 的传播规模与速度已超越近期所有供应链事件。这场始于针对性npm漏洞的攻击,迅速升级为系统性跨平台感染,影响数千个项目及数百名维护者。
与通常仅涉及单个木马化包的典型npm恶意软件不同,Shai-Hulud 2.0表现得像蠕虫病毒。在入侵开发者后,它会窃取GitHub凭证,重新打包自身,并通过维护者整个包集重新发布,将每个受害者转化为新的传播节点。最终导致恶意软件在生态系统中呈指数级快速扩散。
受损软件包
数百个npm包遭到入侵。其中包括由知名机构维护的高知名度项目,这加剧了下游风险暴露。
快速、指数级传播
该蠕虫病毒每30分钟便会生成1000+S个新的恶意GitHub仓库(Wiz),其运作依赖于被盗凭证驱动的自动化发布机制。每个新受害者都将成为传播节点,使整体影响在每个传播周期中呈几何级增长。
秘密揭露
Shai-Hulud 2.0的凭证窃取组件正造成尤为严重的破坏。经核实泄露的机密信息包含逾1500组凭证及令牌,覆盖GitHub、AWS、GoogleCloud 和Azure等主要平台。
这批敏感凭证的泄露事件涉及广泛的多云环境,可能引发长期持续的恶意利用。
修复工作
值得庆幸的是,Zapier、PostHog和Postman等几家知名维护者已重新夺回了对各自包的控制权。恶意版本已被移除出npm,许多受影响的仓库正在被收回或清理。
然而,该事件仍在持续发展。即便采取了快速修复措施,组织仍需持续监控依赖项健康状况、持续集成管道以及GitHub账户,以防范凭证进一步泄露或自动重新发布的情况。
跨生态系统影响:npm → Maven/Java
值得注意的是,这股浪潮也通过自动化npm到Maven工件转换(JFrog)影响了其他生态系统,例如Maven/Java。
-
尽管npm仍是Shai-Hulud 2.0的主要攻击目标,但此轮攻击浪潮已显露出跨生态系统传播的风险,尤其针对Java/Maven项目。安全研究人员已识别出恶意Maven工件:
org.mvnpm:posthog-node:4.18.1其中包含相同的有效载荷 (setup_bun.js和bun_环境.js在受损的npm包中发现的(黑客新闻) .
- 机制:自动化桥接工具将npm包重建为Java项目的Maven工件。若团队项目依赖这些镜像工件,即使未直接使用Node.js,其项目也可能暴露风险。
这表明了供应链攻击具有生态系统无关的风险。即使不直接使用npm的项目,也可能通过自动化工具继承风险。
沙伊-胡鲁德2.0证明了现代供应链蠕虫是具备环境感知能力的多阶段威胁:它们能适应开发者机器和CI/CD管道,将凭证作为有效载荷和传播机制双重利用,并包含后备行为机制以确保传播或破坏性影响。检测需要监控所有阶段的运行时行为,而不仅限于静态代码分析。
技术力学:蠕虫的工作原理
| 舞台 | 发生了什么 |
|---|---|
| 1. 初始访问与部署 | 攻击者利用被入侵的npm维护者账户分发包含恶意代码的软件包。 setup_bun.js 和 bun_环境.js通过一个自动执行 预安装 横跨开发者机器和CI/CD管道。 |
| 2. 隐蔽的运行时初始化 | 加载器检测主机环境,初始化Bun运行时,并在后台静默运行有效载荷,使安装过程看似正常。 |
| 3. 环境指纹识别与权限提升 | 该有效载荷可识别CI平台,尝试通过Linux运行器上的Docker实现无密码root权限,并能修改DNS或iptables规则以控制网络流量。 |
| 4. 凭证与密钥收集 | 有效负载收集环境变量和云密钥,运行TruffleHog进行本地密钥发现,提取AWS/Azure/GCP凭证,并注入临时工作流以抓取GitHub密钥。 |
| 5. 数据外泄与持久化 | 被窃取的数据经过三重Base64编码后,上传至受害者账户中的新仓库;同时通过恶意自托管运行器和工作流实现持久化。 |
| 6. 蠕虫传播(复制) | 该蠕虫利用窃取的npm令牌克隆受害者的软件包,注入恶意文件和钩子,提升版本号,并重新发布以实现自主传播。 |
| 7. 破坏性回退 | 若无法获取任何凭证,蠕虫将触发破坏性程序,彻底清除用户的主目录。 |
PostHog事件凸显的CI/CD风险
PostHog的漏洞事件揭示了CI/CD暴露风险的微妙性:
- 恶意拉取请求利用了GitHub Actions中的pull_request_target功能。
- 一个机器人PAT遭窃取,随后导致植入木马的npm SDK得以发布。
持续集成/持续交付(CI/CD)工作流,即使是自动化的,也属于高风险攻击面。需限制脚本执行范围、最小化令牌暴露风险,并强制使用短效凭证。
传统防御的局限性
- 依赖项固定可能因传递性依赖而失败。
- 静态SCA扫描器无法检测到以合法软件包名称发布的、被植入木马的新代码。
- 通过CI/CD管道滥用令牌意味着连内部代码库都面临风险。
如何利用SBOM和Supply Chain 构建防御体系
软件材料清单(SBOM)和供应链工具可提供:
- 依赖透明度:追踪直接和传递依赖关系,并包含版本及维护者元数据。
- 来源验证:识别意外的包变更或未知维护者。
- 凭证和密钥监控:检测数据外泄企图或令牌滥用行为。
- 行为洞察:监控安装过程中的资源访问或异常执行模式。
虽然并非万能解药,但将SBOM与持续监控相结合,能增强抵御蠕虫式攻击的防御能力。
OPSWAT ) 与MetaDefender Supply Chain供应链™
OPSWAT 技术扫描源代码仓库,并检测到恶意npm包sha1-hulud。

MetaDefender Software Supply Chain 提供更全面的视图,并检测到已遭破坏的sha1-hulud软件包。


MetascanMultiscanning通过多层防御机制检测恶意软件:

建议立即采取的行动
- 轮换凭证:GitHub 用户密钥、npm 令牌、SSH 密钥、云凭证;启用多因素认证。
- 移除受损包:清除 npm 缓存、node_modules 目录,并固定为已知干净版本。
- 审核 GitHub 和 CI/CD:查找新仓库、工作流和可疑提交。
- 强化管道安全:限制生命周期脚本,限制外网访问,并最小化令牌作用域。
- 持续监控:将依赖项和构建管道视为关键攻击面的一部分。
主要收获
供应链威胁与生态系统无关
Shai-Hulud 2.0通过npm-to-Maven桥接工具渗透至Maven/Java生态,表明供应链攻击可跨越语言与生态系统的边界。即使未直接使用npm的项目,若采用自动化桥接工具,同样可能暴露于风险之中。
凭证卫生是基础
被盗令牌(GitHub、npm、云服务)会导致敏感环境的传播与访问风险。请使用短效范围令牌,强制实施多因素认证,并在发现任何安全漏洞嫌疑后立即轮换凭证。借助自动化密钥扫描工具可加速该流程。
整体Supply Chain 是强制性的
仅依赖静态SCA扫描或版本固定措施远远不够。需结合软件物料清单(SBOM)可视化、恶意软件多层扫描以及令牌/密钥保护,全面降低所有生态系统的风险暴露。探索MetaDefender Software Supply Chain。
准备好通过定制化、无缝集成的解决方案来保障您的软件供应链安全,防范网络攻击了吗?
- SBOM ,
- MetaDefender 软件 Supply Chain
