防御软件供应链攻击:Chalk/Debug与Shai-Hulud蠕虫的应对策略

本文深入分析近期爆发的npm供应链攻击事件,包括Chalk/Debug凭证泄露与Shai-Hulud蠕虫传播机制,详细介绍AWS Amazon Inspector的多层检测技术和OpenSSF协作防御方案,提供具体应对措施和最佳实践建议。

应对Chalk/Debug和Shai-Hulud蠕虫等供应链攻击 | AWS安全博客

作者:Chi Tran、Charlie Bacon和Nirali Desai
发布于:2025年10月2日
分类:Amazon Inspector、基础(100)、安全、身份与合规

开源包的安全风险

基于开源包构建能够帮助加速开发。通过使用来自npm、PyPI、Maven Central、NuGet等的常见库和模块,团队可以专注于编写特定于其情况的代码。这些开源包注册表托管着数百万个软件包,每天被集成到数千个程序中。

不幸的是,这些关键服务是威胁行为者寻求大规模分发其代码的主要目标。如果他们能够危害这些服务中的某个软件包,这一行动就可能自动影响数千个其他系统。

9月8日:Chalk和Debug泄露事件

事件始于npm可信维护者的凭证被盗。通过社会工程学获取凭证后,18个流行软件包(包括Chalk、Debug、ansi-styles、supports-color等)被更新并注入了恶意负载。

该负载旨在静默拦截加密货币活动,并操纵交易以利于恶意行为者。

这些软件包每周合计下载量估计达20亿次。这意味着即使维护者和npm迅速响应,受感染版本可用的几个小时仍可能导致严重暴露。在此期间下载软件包的构建系统或远程加载它们的站点都可能受到威胁。

这种复杂恶意软件使用智能侦察技术,并根据当前环境调整其行为以找到最有效的攻击向量。

9月15日:Shai-Hulud蠕虫事件

就在下一周,Shai-Hulud蠕虫开始通过npm信任链自主传播。这种恶意软件利用其在开发人员环境中的初始立足点来收集各种凭证,例如npm令牌、GitHub个人访问令牌和云凭证。

在可能的情况下,恶意软件会公开暴露收集到的凭证。当npm令牌可用时,它会发布现在包含蠕虫作为附加负载的更新软件包。被感染的软件包将作为后安装脚本执行蠕虫,以继续传播感染。

除了这种自我传播方法外,蠕虫还试图操纵其获得访问权限的GitHub存储库。Shai-Hulud设置在每个存储库活动上运行的恶意工作流,创建弹性且持续的代码泄露。

此漏洞利用展示了技术复杂性以及对开发人员工作流程和支撑社区信任关系的深入理解。通过使用标准的npm安装过程,蠕虫使检测更具挑战性,因为它在开发人员预期的行为模式内运行。

在此漏洞利用的头24小时内,超过180个npm软件包受到感染,再次可能影响数百万个系统。这两起事件都显示了供应链泄露的潜在规模。

如何应对此类事件

如果受感染的软件包已进入生产环境,您应遵循标准事件响应流程来处理活动事件以解决问题。为了清理开发环境,我们建议采取以下步骤:

  • 审计依赖项:删除或升级到Chalk和Debug软件包的干净版本,并检查是否感染了Shai-Hulud。
  • 轮换密钥:假设npm令牌、GitHub PAT和API密钥可能已泄露。立即轮换和重新颁发凭证。
  • 审计构建管道:检查未经授权的GitHub Actions工作流或意外的脚本插入。
  • 使用Amazon Inspector:查看Amazon Inspector关于Chalk/Debug漏洞利用或Shai-Hulud蠕虫暴露的发现,并遵循推荐的修复措施。
  • 强化供应链:强制执行SBOM、固定软件包版本、采用范围令牌,并隔离持续集成和交付(CI/CD)环境。

Amazon Inspector如何通过OpenSSF加强开源安全性

我们通过与开源安全基金会(OpenSSF)的合作,定期通过Amazon Inspector中的恶意软件包检测系统与社区分享发现。Amazon Inspector使用自动化过程,通过开源漏洞(OSV)格式共享此类威胁情报。

Amazon Inspector采用多层检测方法,结合互补的分析技术来识别恶意软件包。这种方法为已知攻击模式和新型威胁提供了强大的保护。

从使用广泛的YARA规则库进行静态分析开始,Amazon Inspector可以识别软件包内容中的可疑代码模式、混淆技术和已知恶意签名。在此基础上,系统使用动态分析和行为监控来识别威胁,尽管它们使用了规避技术。最后一组分析是使用AI和机器学习模型来分析代码语义,并确定软件包中的预期目的与可疑功能。

这种多阶段方法使Amazon Inspector能够保持高检测精度,同时最大限度地减少误报,有助于确保合法软件包不会被错误标记,而复杂威胁被可靠地识别和缓解。

当在开源软件包中检测到这些威胁时,系统会启动自动化工作流,与OpenSSF共享此威胁情报。该工作流将经过验证的威胁情报发送到OpenSSF,在合并到社区数据库之前,OpenSSF维护者会严格审查这些贡献。在那里,它们会收到官方的MAL-ID或恶意软件包标识符。

此过程有助于尽快验证并与社区共享此类发现,以便其他安全工具和研究人员受益于Amazon Inspector的检测能力。

下一步是什么?

Chalk/Debug和Shai-Hulud蠕虫并不是新颖的漏洞利用。不幸的是,这些是使用此向量的最新事件。开源存储库是开发人员的绝佳资源,帮助许多团队更快地创新。开源社区正在努力减少此类事件的影响。

这就是我们与OpenSSF合作并贡献了突出显示超过40,000个被泄露或恶意创建的npm软件包的报告的原因。我们相信Amazon Inspector是帮助您安全构建的优秀工具,虽然我们希望每个人都使用它,但我们为我们在OpenSSF等工作中所做的努力和贡献感到自豪,这些工作正在帮助提高社区中每个人的安全性。

如果您对此帖子有反馈,请在下面的评论部分提交评论。如果您对此帖子有疑问,请在标记有Amazon Inspector的AWS re:Post中添加注释,或联系AWS支持。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计