ShaiHulud2.0,现在带有雨刷味

admin 2025-12-22 04:05:52 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: ShaiHulud2.0是一种通过npm软件包传播的两阶段蠕虫式恶意软件,已感染800多个npm软件包。它通过入侵npm令牌植入恶意负载,窃取GitHub机密信息、云凭证和本地文件中的敏感数据,并通过GitHub仓库外传。该恶意软件还能跨软件包传播,在无法获取令牌时会触发破坏性负载删除用户文件。卡巴斯基已拦截超过1700次攻击,并通过开源软件威胁数据源向客户提供防护信息。 综合评分: 89 文章分类: 恶意软件,漏洞分析,威胁情报,供应链安全,漏洞预警


cover_image

Shai Hulud 2.0,现在带有雨刷味

原创

卡巴斯基

卡巴斯基威胁情报

2025年12月17日 10:00 北京

9月,一种通过遭入侵的Node软件包管理器(Node Package Manager,简称npm)软件包传播的新型恶意软件登上了新闻头条。该恶意软件被命名为“Shai-Hulud”(Shai-Hulud),我们已在另一篇文章中对其进行了深入分析。最近,又发现了它的新版本。      Shai-Hulud 2.0版是一种两阶段蠕虫式恶意软件,它通过入侵npm令牌,在受信任的软件包中植入恶意负载并重新发布,以此进行传播。已有800多个npm软件包被该版本的蠕虫感染。     根据我们的远程信息处理数据,此次攻击活动的受害者包括世界各地的个人和组织,其中大多数感染案例发生在俄罗斯、印度、越南、巴西、土耳其和法国。

技术分析

Technical analysis

当开发人员安装受感染的npm软件包时,根据修改后的package.json文件中的设定,setup_bun.js脚本会在预安装阶段运行。

引导脚本

Bootstrap script

初始阶段的脚本setup_bun.js故意不做混淆处理,且附有详尽的文档说明,伪装成一个用于安装合法Bun JavaScript运行时环境的无害工具。它会检查Bun的常见安装路径,如果该运行时环境缺失,则会以特定于平台的方式从官方来源进行安装。这种看似常规的操作,实则隐藏了它的真正目的:为恶意软件后续阶段的执行准备环境。

已安装的Bun运行时环境随后会执行第二阶段的恶意负载——bun_environment.js,这是一个使用类似obfuscate.io工具进行混淆处理的10MB恶意脚本。该脚本负责实施主要的恶意活动。

窃取凭证

Stealing credentials

Shai Hulud 2.0旨在从各种环境中窃取机密信息。一旦执行,它会立即从多个来源搜索敏感数据,例如:

• GitHub机密信息:该恶意软件会在环境变量和GitHub命令行界面(CLI)配置中搜索以“ghp_”或“gho_”开头的值。它还会在受害者的代码仓库中创建一个恶意的工作流程yml文件,进而利用该文件获取GitHub Actions的机密信息。  • 云凭证:该恶意软件通过查询云实例元数据服务,并使用官方软件开发工具包(SDK)从环境变量和本地配置文件中枚举凭证,从而在亚马逊网络服务(AWS)、微软Azure和谷歌云等云环境中搜索云凭证。  • 本地文件:它会下载并运行TruffleHog工具,对整个文件系统进行全面扫描,以查找凭证。

然后,所有窃取到的数据都会通过已建立的通信渠道发送出去,我们将在下一节中详细介绍该通信渠道。

通过GitHub窃取数据外传

Data exfiltration through GitHub

为将窃取的数据外传,该恶意软件会通过一个公开的GitHub代码仓库建立通信渠道。为此,如果能在环境变量和GitHub命令行界面(CLI)配置中找到受害者的GitHub访问令牌,它便会加以利用。

之后,该恶意软件会创建一个存储库,其名称由随机生成的18个字符组成,并在其描述中添加一个标记。这个存储库随后会作为数据存储库,所有窃取到的凭证和系统信息都会上传至此。      如果未找到令牌,该脚本会通过在GitHub代码仓库中搜索描述中包含“Sha1-Hulud:二次降临(Sha1-Hulud: The Second Coming)”文本的仓库,尝试从其他受害者那里获取之前窃取到的令牌。

跨软件包传播的蠕虫

Worm spreading across packages

为了通过嵌入到npm软件包实现后续的自我复制,该脚本会扫描主目录和当前目录中的.npmrc配置文件,试图查找npm注册表的授权令牌。        如果查找成功,它会通过向npm的/-/whoami应用程序编程接口(API)端点发送探测请求来验证该令牌,之后,脚本会检索受害者维护的多达100个软件包的列表。       对于每个软件包,它会通过bundleAssets注入恶意文件setup_bun.js和bun_environment.js,并通过将setup_bun.js设置为预安装脚本并递增软件包版本号来更新软件包配置。然后,修改后的软件包会被发布到npm注册表中。

失败时的破坏性响应

Destructive responses to failure

如果该恶意软件未能获取有效的npm令牌,同时也无法获取有效的GitHub令牌,导致无法窃取数据,那么它会触发一个破坏性负载,该负载会删除用户文件,主要是主目录中的文件。

我们的解决方案可检测出此处所述的、被归类为 HEUR:Worm.Script.Shulud.gen 的该类(病毒)家族。

自今年9月以来,卡巴斯基已拦截了针对用户设备的超过1700次Shai Hulud 2.0攻击。其中,18.5%的攻击影响了俄罗斯用户,10.7%发生在印度,9.7%发生在巴西。

我们持续追踪此类恶意活动,并通过卡巴斯基开源软件威胁数据源(Kaspersky Open Source Software Threats Data Feed)向客户提供最新信息。该数据源涵盖了所有受Shai-Hulud影响的软件包,以及表现出恶意行为、包含后门或具备未公开功能的其他开源组件的相关信息。


查看原文:《Shai Hulud 2.0,现在带有雨刷味》

评论:0   参与:  3