在新一轮 Shai-Hulud 供应链攻击中,攻击者在 npm 仓库(Node Package Manager)植入了数百款经过恶意篡改的知名软件包,涉及 Zapier、ENS Domains、PostHog、Postman 等热门项目。
这些恶意软件包被上传至 npm 平台,核心目的是窃取开发者凭证及持续集成 / 持续部署(CI/CD)密钥,窃取到的数据会以编码形式自动上传至 GitHub。截至本文发布时,GitHub 上已检索到 27600 条与此次攻击相关的记录条目。

在新 Shai-Hulud 行动中被窃取秘密的 GitHub 仓库
Shai-Hulud 恶意软件最早于 9 月中旬现身 npm 生态,当时它通过自我传播型载荷感染了 187 个软件包,并利用 TruffleHog 工具窃取开发者密钥。其攻击手法为:自动下载合法软件包,修改 package.json 文件以注入恶意脚本,再通过被盗的维护者账号将篡改后的包重新发布到 npm。
专注于开发者安全的平台 Aikido Security 的恶意软件研究员 Charlie Eriksen 较早发现了这轮新攻击——起初检测到 105 个带有 Shai-Hulud 特征的恶意篡改包,此后仅按包名统计,数量已增至 492 个。随后该研究员发出预警,指出此次供应链攻击窃取的密钥已泄露至 GitHub。
然而攻击规模仍在呈指数级扩张,目前恶意包数量已突破 2.7 万个。云安全平台 Wiz 的研究人员发现,攻击者共使用了约 350 个独立的维护者账号,并透露 " 过去几小时内,每 30 分钟就有 1000 个新仓库被创建 "。
GitHub 上出现的这些仓库,实则表明使用了恶意 npm 包且环境中存储有 GitHub 凭证的开发者设备已遭入侵。
CI/CD 安全公司 Step Security 对新版 Shai-Hulud 恶意软件的技术分析显示,其恶意载荷主要存在于两个文件中:一个是 setup_bun.js,这是一个伪装成 Bun 安装程序的恶意投放器;另一个是 bun_environment.js,文件大小达 10MB。
Step Security 指出,该文件采用 " 极致的代码混淆技术 ",例如包含数千条记录的大型十六进制编码字符串、反分析循环,以及用于提取代码中所有字符串的混淆函数。
该恶意软件的攻击流程分为五个阶段,包括窃取密钥(GitHub 与 npm 令牌、AWS、GCP、Azure 等云平台的凭证),以及一个破坏性步骤——覆盖受害者的整个主目录。
为自部署软件提供防护解决方案的公司 Koi Security 统计显示,若计入同一软件包的所有受感染版本,Shai-Hulud 已影响超 800 个 npm 包。
研究人员确认,新版 Shai-Hulud 变体的破坏性步骤仅在满足四个特定条件时才会触发:当恶意软件无法通过 GitHub 认证、无法在 GitHub 创建仓库、无法获取 GitHub 令牌,或无法找到 npm 令牌时,便会删除用户的主目录。
据 Wiz 透露,恶意代码会收集开发者及 CI/CD 密钥,并将其上传至 " 名称包含 Shai-Hulud 标识 " 的 GitHub 仓库。该恶意代码仅在软件包预安装阶段执行,并会创建以下四个文件:cloud.json、contents.json、environment.json、truffleSecrets.json。窃取的密钥会被上传至自动生成的 GitHub 仓库,这些仓库的描述统一为 "Shai-Hulud: The Second Coming"。

GitHub 账户托管来自沙丘行动的仓库
此外,攻击者似乎还获取了部分 GitHub 账号的控制权,目前正利用这些账号创建包含上述四个文件的仓库。
尽管 GitHub 会在攻击者创建仓库后立即进行删除,但攻击者创建新仓库的速度极快,难以彻底拦截。
在 Aikido Security 发现的 186 个感染新版 Shai-Hulud 恶意软件的包中,包含多个来自 Zapier、ENS Domains、PostHog 和 AsyncAPI 的软件包。其中,遭篡改的 Zapier 包是构建 Zapier 集成功能的官方工具包,对 Zapier 开发者至关重要;而 ENS Domains 相关包则是钱包、去中心化应用(DApps)、交易所及 ENS Manager 应用广泛使用的工具库,主要用于处理 .eth 域名(如将域名解析为以太坊地址、关联 IPFS 内容、验证域名有效性,以及与官方 ENS 智能合约交互)。
目前所有遭篡改的包仍可在 npm 上下载,但在部分情况下,npm 平台会弹出 " 最新版本未经授权发布 " 的警告信息,这表明平台的自动审查机制已检测到异常。

npm 上的警告信息
研究人员建议开发者:获取完整的受感染包列表,将所用包降级至安全版本,并立即更换密钥及 CI/CD 令牌。
Wiz 的研究人员则建议安全团队:首先识别出受感染的包并替换为合法版本,同时督促企业更换所有与 npm、GitHub 及云服务商相关的凭证。
Aikido Security 还建议开发者,若条件允许,在持续集成过程中禁用 npm 的 postinstall(安装后)脚本。
值得注意的是,Shai-Hulud 此次卷土重来的背景是在 npm 平台遭遇多起高影响供应链攻击后。GitHub 已推出额外的安全措施以防范此类攻击,但这些措施目前仍在逐步落地中。


登录后才可以发布评论哦
打开小程序可以发布评论哦