2025年9月15日,一名工程师在NPM仓库中发现了一场前所未有的供应链攻击,引发了整个社区对软件包安全的极大关注。这场攻击使用了一种名为Shai-Hulud的自我复制蠕虫,首次在开源生态系统中大规模展现出自主传播和窃取敏感信息的高级恶意行为。由于其新颖的传播机制和复杂的攻击链,Shai-Hulud迅速感染了约200个NPM包,包括知名的@ctrl/tinycolor及多款由CrowdStrike维护的项目,成为当年度开源安全领域的热门话题。本篇深入剖析Shai-Hulud蠕虫的工作原理、检测方法及应对策略,致力于帮助开发者和企业提高风险识别与防护能力。Shai-Hulud蠕虫的传播始于被感染NPM包的安装后阶段。恶意代码以极其隐蔽的方式植入postinstall脚本,具体表现为执行一个名为bundle.js的大型脚本文件。
该执行过程针对Linux和macOS平台设计,旨在启动多线程操作以执行本地环境侦察、凭证窃取和自我复制。感染包安装完成后,Shai-Hulud先是进行系统敏感信息探测,定位GitHub、NPM、AWS和GCP等平台的认证凭证。这些凭证是蠕虫持续扩散的核心资源。一旦成功获取GitHub访问令牌(常见格式为ghp_*和gho_*),它便通过用户的权限对所属仓库进行遍历,插入恶意GitHub Actions以实现持久化和秘密窃取。值得注意的是,Shai-Hulud不仅定位公开仓库,也会将用户拥有权限的私人仓库复制成公开状态,创造同名但后缀为"-migration"的新公开仓库,进一步扩大数据泄露风险。针对NPM平台,蠕虫会调用getPackagesByMaintainer函数,获取特定维护者负责的所有包列表,并依据月下载量高低排序,优先选择高流量包进行感染。
随后利用updatePackage函数,将含有bundle.js的恶意代码注入这些包的postinstall脚本中,实现自我复制与快速传播。该感染链的自动化特性导致首日内传播迅猛,累计感染包数量达到约200个。为了验证发现的敏感信息的真实性,Shai-Hulud还下载并运行了开源安全工具trufflehog。Trufflehog以其著名的秘密探测功能被黑客非法利用,帮助蠕虫在本地文件系统及云服务实例元数据服务(IMDS)中搜索合法且高价值的认证信息。所有数据收集完成后,蠕虫会再次确认GitHub认证状态,如果有效,会创建名为"Shai-Hulud"的新仓库,并将收集到的凭证以base64编码的JSON格式上传,令攻击者能远程访问并利用这些信息。与先前被报道的Nx攻击类型相比,Shai-Hulud虽存一定技术相似性,但其自我复制感染能力显著进阶,标志着自传播恶意软件在开源生态中的一个新里程碑。
针对如此隐蔽而复杂的恶意行为,使用传统的静态代码扫描并不能有效应对。实时运行时威胁检测成为防御的关键。Sysdig Secure作为领先的安全平台之一,推出了多项基于行为分析的规则,能够捕捉并警示诸如通过JavaScript程序下载和执行trufflehog工具、访问可疑域名webhook[.]site的异常行为。此外,针对GitHub行为监控,Sysdig Secure具备识别名为Shai-Hulud或含"-migration"后缀公开仓库创建事件的能力,为安全团队发现潜伏风险提供有效线索。开源威胁检测工具Falco同样在实时监控中发挥积极作用。借助GitHub插件,Falco能识别不寻常的仓库创建动态及恶意活动相关的行为指标,帮助用户快速响应和遏制攻击蔓延。
为了帮助用户从资产管理层面掌控威胁,Sysdig威胁研究团队还提供了一套SysQL查询脚本,用户可快速扫描环境内是否存在受感染的软件包版本,进而决定是否需要采取回滚或其他应急处置。面对Shai-Hulud的威胁,主动防御策略不可或缺。用户需在环境内全面排查被感染包的使用情况,第一时间恢复至已知安全版本,并强制执行依赖版本锁定策略,降低未来感染风险。同时,生产环境及CI/CD流水线中涉及第三方软件包的所有环节必须全程监控,并辅以运行时安全措施确保感染早期能获得有效遏制。若发现潜在攻击迹象,应迅速更换所有可疑泄露的认证信息,涵盖GitHub、NPM、云平台等重要账户。此外,加强工程师个人计算机安全防护,关注异常的trufflehog执行痕迹及频繁访问webhook[.]site等网络行为,也能显著降低攻击面。
总结来看,Shai-Hulud蠕虫事件再次证明了供应链攻击的日益复杂与危险。随着恶意代码隐蔽性和自我传播能力的提升,单一防护手段已难以奏效。全方位、动态的安全态势感知,依托实时威胁检测工具和综合的资产管理,大幅提高了发现和响应效率。对于开源生态及企业用户而言,构建完善的安全体系,尤其关注运行时监控并结合行为分析,将成为对抗自我复制恶意软件的核心法宝。未来,随着供应链攻击演化加速,持续强化安全意识提升及技术赋能,将是保障数字资产和开发环境安全的关键所在。 。