文章总结: ShaiHulud2.0是一种通过npm软件包传播的两阶段蠕虫式恶意软件,已感染800多个npm软件包。它通过入侵npm令牌植入恶意负载,窃取GitHub机密信息、云凭证和本地文件中的敏感数据,并通过GitHub仓库外传。该恶意软件还能跨软件包传播,在无法获取令牌时会触发破坏性负载删除用户文件。卡巴斯基已拦截超过1700次攻击,并通过开源软件威胁数据源向客户提供防护信息。 综合评分: 89 文章分类: 恶意软件,漏洞分析,威胁情报,供应链安全,漏洞预警
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,现在带有雨刷味》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论