NPM供应链攻击深度剖析:恶意软件Shai-hulud的技术分析与防护策略

本文详细分析了2025年9月发生的NPM供应链攻击事件,攻击者通过钓鱼攻击入侵维护者账户,在热门JavaScript包中注入恶意代码。重点剖析了具有自我复制能力的Shai-hulud蠕虫的技术实现,包括其攻击链、GitHub工作流注入、凭证窃取等关键技术细节,并提供了具体的安全防护建议。

NPM供应链攻击技术分析

关键要点

攻击者通过针对性钓鱼攻击入侵Node Package Manager(NPM)维护者账户,向广泛使用的JavaScript包中注入恶意代码。某些恶意包通过劫持Web API和操纵网络流量,秘密转移加密货币资产。

攻击的一个有效载荷是Shai-hulud蠕虫,通过受感染的包传播,窃取云服务令牌,部署秘密扫描工具,并传播到其他账户。根据Trend Micro的遥测数据,北美和欧洲的组织受到Cryptohijacker有效载荷的影响最为严重,目前尚未检测到Shai-Hulud蠕虫。

攻击背景

9月15日,NPM仓库遭受持续供应链攻击,攻击者执行高度针对性的钓鱼攻击入侵NPM包维护者账户。获得特权访问后,攻击者向广泛使用的JavaScript包中注入恶意代码,威胁整个软件生态系统。该攻击破坏了多个关键NPM包,包括应用程序开发和加密功能相关的包。

受影响的包类型

恶意修改针对关键的JavaScript库,包括支持开发框架和加密功能的库。受影响的包具有极高的全球下载量——每周超过26亿次,影响了庞大的Web应用程序和依赖项目生态系统。

Shai-hulud攻击链分析

攻击链流程

Shai-Hulud攻击链始于伪装成NPM安全警报的钓鱼邮件,诱骗开发者泄露凭证。攻击者入侵开发者的NPM账户并上传恶意包。安装时,该包执行JavaScript和嵌入的Unix shell脚本以建立持久性并开始窃取信息。

使用被盗的GitHub访问令牌,恶意软件通过GitHub API进行身份验证,检查用户权限,并列出受害者可访问的所有仓库(包括私有仓库)。它将私有仓库克隆到攻击者账户,在每个仓库中创建新分支,并部署恶意工作流以自动化数据窃取。

技术特点

  • 自我传播:通过恶意安装后脚本进行核心传播
  • 网络活动:与远程服务器通信进行数据外泄
  • 递归威胁向量:设计具有持久性,不仅一次性入侵项目

技术方法论

恶意工作流注入分析

Shai-Hulud蠕虫通过向目标仓库注入恶意的GitHub Actions工作流,实现自动化传播和秘密外泄。工作流系统收集CI/CD运行时环境暴露的所有秘密,将其打包并通过HTTPS请求发送到攻击者控制的端点。

GitHub仓库克隆分析

蠕虫自动化克隆、迁移和暴露组织中的私有GitHub仓库到攻击者基础设施的过程。包括仓库发现、目标仓库创建、完整镜像克隆等步骤。

通过TruffleHog进行凭证收集

Shai-Hulud利用TruffleHog自动化在受感染环境中发现凭证和秘密。工作流包括获取最新版本的TruffleHog二进制文件、下载和提取、安装和环境准备、秘密扫描和清理。

安全建议

  1. 审计依赖项:重点关注最近更新的包
  2. 撤销和轮换凭证:特别是NPM账户相关凭证
  3. 监控扫描工具使用:检查异常仓库扫描活动
  4. 保持安全通告更新:关注官方NPM仓库和可信来源
  5. 加强访问安全策略:应用最小权限原则,强制执行多因素认证

威胁检测

Trend Vision One™可检测和阻止本文所述的威胁指标,为客户提供定制的威胁狩猎查询、威胁洞察和情报报告。检测查询示例:

1
malName: (*CRYPTOHIJACK* OR *SHULUD*) AND eventName: MALWARE_DETECTION
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计