从使用“Shai-Hulud”自复制恶意软件的大规模npm供应链攻击中吸取的教训

从使用“Shai-Hulud”自复制恶意软件的大规模npm供应链攻击中吸取的教训

2025年9月,JavaScript生态系统遭遇了其史上最为复杂且破坏性极强的供应链攻击之一。当时,一种名为“沙虫(Shai-Hulud)”的新型自我复制蠕虫感染了超过477个npm包,成为npm注册表历史上首次成功的自动化传播攻击事件。

这种攻击代表了供应链威胁的重大演变,它同时利用社会工程学和技术自动化,在开源软件生态系统中实现了前所未有的规模和持久性。

“沙伊-胡鲁德”行动始于一场复杂的钓鱼攻击,攻击者通过伪造npm官方 registry的虚假域名,将目标锁定为npm包维护者。

攻击者从伪造的域名npmjs[.]help发送了极具迷惑性的邮件,该域名与合法的npmjs[.]com极为相似,并以账户锁定相威胁,催促维护人员“更新”其多因素认证凭证。
从使用“Shai-Hulud”自复制恶意软件的大规模npm供应链攻击中吸取的教训

这种社会工程学方法被证明极具破坏性且效果显著,因为它利用了开发者与npm平台之间的信任关系,同时制造了一种紧迫感,从而绕过了常规的安全警惕。

42号部门的评估进一步证明了此次攻击的复杂性,该评估指出,鉴于代码中包含注释和表情符号,威胁行为者可能利用了大型语言模型(LLMs)来协助编写恶意的bash脚本。

这代表了网络犯罪活动中一个令人担忧的趋势,即人工智能工具正越来越多地被武器化,以提高恶意代码开发的质量和有效性。

使用“沙伊-胡鲁德”自复制恶意软件的供应链攻击

这种恶意软件的核心创新在于其自我复制机制,该机制通过NpmModule.updatePackage函数实现。与传统的供应链攻击需要对每个受感染的软件包进行手动干预不同,Shai-Hulud是一种真正的蠕虫病毒,能够自动识别并感染由受攻击开发者维护的其他软件包。

传播过程遵循一种系统化的方法:下载现有的包压缩文件,修改package.json文件以植入恶意的postinstall脚本,嵌入约3.6MB的压缩bundle.js有效载荷,重新打包归档文件,并将其重新发布到npm注册表。

这种自动化方法导致受影响的软件包数量呈指数级增长,恶意软件在大约72小时内就从最初少数几个被感染的软件包扩散到了477多个受感染的软件包。

从使用“Shai-Hulud”自复制恶意软件的大规模npm供应链攻击中吸取的教训

这种蠕虫的设计通过利用合法的维护者凭证和发布权限,确保在整个生态系统中持续存在,实际上将受信任的开发者变成了不知情的恶意软件传播载体。

当用户通过npm install安装受感染的包时,恶意软件便开始执行,这会触发postinstall脚本,进而启动bundle.js有效负载。

这个由Webpack打包的脚本会执行全面的系统侦察,首先从提取环境变量(process.env)开始,以捕获执行上下文中立即可用的敏感凭据。

然后,有效载荷会部署TruffleHog(一款合法的开源秘密扫描工具),并使用命令trufflehog filesystem . --json --results=verified来系统地扫描本地文件系统,以查找800多种不同类型的凭据。

这种恶意软件展现出复杂的凭证验证能力,它使用npm whoami命令来验证发现的npm令牌的真实性,并通过访问云服务API来确认亚马逊云服务(AWS)、谷歌云平台(Google Cloud Platform)和微软Azure凭证的有效性。

这一验证步骤确保只有可用的凭证会被窃取,从而最大限度地提高被盗数据在后续恶意活动中的价值。

综合包分析

攻击时间线显示,这次快速升级的攻击让安全界措手不及。最早确认的恶意包airpilot@0.8.8于2025年9月14日世界标准时间18:35:07.600发布。

随着每周下载量超过220万次的@ctrl/tinycolor@4.1.1软件包被攻陷,该活动获得了显著的势头,这一情况最初由安全研究员丹尼尔·佩雷拉于2025年9月15日报告。

9月16日,此次攻击的范围急剧扩大,当时安全研究人员发现企业供应商的软件包遭到了入侵,其中包括多个CrowdStrike的npm软件包。

此次扩张表明,该蠕虫有能力突破高价值目标,并可能入侵企业开发环境,这显著增加了受影响组织的风险。

受影响的软件包清单

包名称 被篡改的版本 状态
ctrl/tinycolor 已移除
rxnt认证 已移除
飞行员 0.8.8(最早发现) 已移除
angulartics2 已移除
ctrl/洪流 已移除
ctrl/ golang模板 已移除
ctrl/磁力链接 已移除
ctrl/ngx-codemirror 已移除
ctrl/ngx-csv 已移除
ctrl/ngx-emoji-mart 已移除
ctrl/ngx-右键点击 已移除
ctrl/比特彗星 已移除
ctrl/react-adsense 已移除
ctrl/共享种子 已移除
ctrl/种子文件 已移除
ctrl/传输 已移除
ctrl/ts-base32 已移除
encounter-playground 已移除
json-rules-engine-简化版 0.2.40.2.1 已移除
KOA 2-swagger-用户界面 5.11.25.11.1 已移除
nativescript-community/gesturehandler 已移除
nativescript-community/sentry 已移除
nativescript-community/text 已移除
nativescript-community/ui-collectionview 已移除
nativescript-community/ui-drawer 已移除
nativescript-community/ui-image 已移除
nativescript-community/ui-material-bottomsheet 已移除
nativescript-community/ui-material-core 已移除
nativescript-community/ui-material-core-tabs 已移除
ngx-color 已移除
ngx-吐司 已移除
ngx-trend 已移除
react-complaint-image 已移除
react-jsonschema-form-条件语句 已移除
react-jsonschema-form-附加组件 已移除
rxnt-healthchecks-nestjs 已移除
rxnt蛋糕 已移除
swc-plugin-component-annotate 已移除
ts-高斯 已移除

受影响软件包的完整清单涉及多个维护者命名空间,既包括热门库,也包括专业工具。主要受影响的软件包包括:

高影响包:

  • @ctrl/tinycolor@4.1.1, 4.1.2——每周下载量220万次
  • angulartics2@14.1.2——热门的Angular分析库
  • ngx-toastr@19.0.2——广泛使用的通知组件
  • 多个@nativescript-community包影响移动开发工作流

企业及安全相关包:

  • 多个CrowdStrike的npm包(具体包名已被npm管理员迅速移除)
  • rxnt-authentication@0.0.6——与身份验证相关的功能
  • 各种@ctrl命名空间包,涵盖文件管理、网络和媒体处理

这种恶意软件对目标的选择似乎具有策略性,它专注于下载量高且依赖关系图广泛的软件包,以最大限度地提高感染潜力。

企业供应商软件包的纳入表明,要么是针对性较强的攻击,要么是利用已被入侵且有权访问商业软件包仓库的维护者账户进行的 opportunistic 利用。

入侵指标(IOCs)和检测方法

类别 指标 类型
文件哈希 bundle.js 46faab8ab153fae6e80e7cca38eab363075bb524edd79e42269217a083628f09 文件哈希
网络指标 webhook地址 https://webhook.site/bb8ca5f6-4175-45d2-b042-fc9ebb8170b7 网络
网络指标 trufflehog_download 从文件系统下载并执行 网络
文件系统指示器 恶意工作流 .github/workflows/shai-hulud-workflow.yml 文件系统
文件系统指示器 github分支 茶壳的 文件系统
文件系统指示器 捆绑文件 bundle.js(大小不定,约3.6MB,已压缩) 文件系统
文件系统指示器 公共仓库 在受害者账户中创建的Shai-Hulud代码仓库 文件系统
进程指标 npm命令 npm whoami、npm publish 命令 进程
进程指标 trufflehog命令 trufflehog 文件系统 . –json –results=已验证 进程
进程指标 安装后脚本 node bundle.js 流程

安全团队可以通过多种文件系统痕迹识别潜在的入侵。主要指标是存在带有SHA-256哈希值46faab8ab153fae6e80e7cca38eab363075bb524edd79e42269217a083628f09的恶意bundle.js文件。

然而,研究人员指出,这种哈希值在不同的活动迭代中可能会有所不同,因此需要进行行为检测,而不能仅仅依赖静态签名。

关键文件系统指标包括:

  • .github/workflows/shai-hulud-workflow.yml——恶意的GitHub Actions工作流
  • Git仓库中shai-hulud分支的创建
  • 名为“Shai-Hulud”的公共代码库中包含凭证信息泄露
  • package.json文件意外添加的postinstall脚本

恶意软件会与特定的命令和控制基础设施通信以进行数据窃取。主要的窃取端点是https://webhook.site/bb8ca5f6-4175-45d2-b042-fc9ebb8170b7,该端点接收以JSON格式传输的被盗凭证和系统信息。网络监控团队应留意:

  • 指向webhook.site域的出站连接
  • 包含凭证数据的Base64编码HTTP POST请求
  • 滥用GitHub API创建仓库和注入工作流
  • TruffleHog二进制文件下载和文件系统扫描活动

这种恶意软件表现出独特的行为模式,有助于检测和事件响应。主要的进程指标包括:

  • 执行npm whoami命令以进行凭证验证
  • 来自已泄露账户的自动npm publish操作
  • 使用文件系统扫描参数执行TruffleHog进程
  • 用于仓库枚举和修改的GitHub API调用

凭证窃取与数据泄露

Shai-Hulud实施了一项全面的凭证收集策略,针对多种凭证类型和存储位置。

这种恶意软件会优先获取高价值凭证,包括npm发布令牌、GitHub个人访问令牌(PATs)以及亚马逊云服务(AWS)、谷歌云平台和微软Azure的云服务凭证。

这种系统方法包括扫描.npmrc文件以查找npm注册表令牌,从默认位置提取SSH私钥(id_rsa),以及解析Git配置文件(.git/config)以获取嵌入的凭据。

这种恶意软件还会针对特定环境的凭证存储,包括开发环境和CI/CD管道配置中常用的.env文件。这种全面的方法确保了在不同的开发工作流和部署场景中,凭证的暴露程度达到最大。

针对npm包@ctrl/tinycolor的严重供应链攻击,已使40多个包感染具有自我传播能力的恶意软件,且攻击等级为严重

此次攻击采用双通道数据泄露策略,以确保数据的持久性和可访问性。主要的数据泄露通过webhook.site的webhook端点进行,通过包含JSON编码凭证数据的HTTP POST请求,可立即获取被盗凭证。

第二种数据窃取方法包括在被入侵的账户中创建名为“沙伊-胡鲁德”的公共GitHub仓库,完整的凭证信息会以base64编码文件的形式存储在这些仓库中。

该恶意软件还通过GitHub Actions工作流建立持久化机制,注入.github/workflows/shai-hulud-workflow.yml文件,这些文件会在代码推送时执行,并使用toJSON(secrets)函数自动窃取仓库密钥。

这种持久化机制确保即使在开发机器上的初始感染被清除后,数据收集仍能继续进行。

CrowdStrike的npm包遭到破坏,这意味着此次攻击对企业环境的潜在影响显著升级。

虽然npm管理员和CrowdStrike的事件响应团队迅速移除了特定的包名,但这次入侵表明,恶意软件有能力渗透到主要网络安全供应商的包中。

这一发展引发了人们对企业软件开发中供应链安全的担忧,以及由受感染的供应商软件包可能导致的内部威胁场景的担忧。

CrowdStrike证实,他们在发现问题后迅速采取行动移除了受感染的软件包,但这一事件凸显了企业软件供应商在维护供应链完整性方面面临的挑战。

这一折中方案还凸显了在企业开发工作流中进行全面依赖项扫描和包完整性验证的重要性。

安全研究人员发现,Shai-Hulud与之前的npm供应链攻击存在显著的操作和技术重叠,特别是2025年8月下旬发生的S1ngularity/Nx入侵事件。

这两个活动都采用了相似的凭证窃取技术、GitHub仓库操纵方法,并且都倾向于创建公共仓库来存储窃取的数据。这些技术上的相似性表明,要么是同一个威胁行为者群体,要么是相关群体之间共享了工具和方法。

从S1ngularity攻击到Shai-Hulud的演进,展示了攻击者能力的明显提升,其中自我传播的蠕虫功能的加入,标志着自动化供应链攻击取得了重大进展。

这种演变表明,威胁行为者正在不断改进其技术,并投资于更复杂的攻击基础设施。

经验教训与未来影响

沙伊-胡鲁德攻击是供应链安全的一个分水岭时刻,它表明传统安全措施无法抵御以持续集成/持续部署速度传播的自蔓延威胁。

此次攻击的成功凸显了组织在依赖管理和软件包验证方式上进行根本性变革的必要性。

传统方法侧重于静态漏洞扫描和已知恶意包识别,不足以应对利用合法凭证和发布基础设施的动态、自修改威胁。

此次攻击还凸显了维护者账户安全的至关重要性,因为单个高权限账户的泄露可能会在整个软件包生态系统中引发连锁反应。

Shai-Hulud npm供应链攻击代表了供应链威胁的范式转变,它将复杂的社会工程与自动化传播机制相结合,以实现前所未有的规模和影响。

此次攻击在三天内成功入侵了超过477个软件包,这表明基于信任的生态系统在精心策划的对抗性操作面前存在脆弱性。

这一事件的教训不仅限于即时的技术修复,还涉及生态系统安全架构的基本问题,以及开源软件分发中可访问性与安全性之间的平衡。

随着JavaScript生态系统的持续发展以及企业对npm包的依赖不断增加,沙伊-胡鲁德(Shai-Hulud)的安全影响将在未来数年影响供应链安全实践。

事实证明,这种攻击表明传统安全方法无法抵御具有适应性和自我传播能力的威胁,因此需要新的方法,将自动化检测、社区协作和增强的维护者安全实践相结合。

未来的供应链安全必须不断发展,以应对的不仅是已知威胁,还有复杂的对手持续开发的创新攻击方法。

npm生态系统从“沙伊-胡鲁德”事件中的恢复,既展现了其韧性,也暴露了其脆弱性,为改善所有软件分发平台的供应链安全提供了关键的学习机会。

从这一事件中吸取的教训不仅必须为技术安全改进提供参考,还应指导政策变革、社区实践以及组织安全策略,以更好地抵御下一代供应链攻击。

版权声明·<<<---红客联盟--->>>·免责声明
1. 本版块文章内容及资料部分来源于网络,不代表本站观点,不对其真实性负责,也不构成任何建议。
2. 部分内容由网友自主投稿、编辑整理上传,本站仅提供交流平台,不为该类内容的版权负责。
3. 本版块提供的信息仅作参考,不保证信息的准确性、有效性、及时性和完整性。
4. 若您发现本版块有侵犯您知识产权的内容,请及时与我们联系,我们会尽快修改或删除。
5. 使用者违规、不可抗力(如黑客攻击)或第三方擅自转载引发的争议,联盟不承担责任。
6. 联盟可修订本声明,官网发布即生效,继续使用视为接受新条款。
联系我们:admin@chnhonker.com
行业动态

微软拆除300多个用于分发RaccoonO365钓鱼服务的网站

2025-9-20 21:30:51

行业动态

Windows 11记事本将免费获得AI支持,可生成和总结文本

2025-9-21 2:48:38

搜索