攻击描述
2025年9月8日,攻击者通过钓鱼手段获取了npm维护者“qix”的双因素认证(2FA)凭证,并利用该权限发布了一些流行npm包(包括debug、chalk和ansi-styles)的恶意版本。
该攻击对处理前端JavaScript的应用程序构成高风险,特别是涉及支付、加密货币或钱包流程的应用。据报告,这些受感染的版本在撤下前已活跃约两小时。根据CISA关于此事件的警报,该活动还涉及公开已知的自我复制蠕虫“Shai-Hulud”,该蠕虫已感染超过500个软件包。
攻击者在获得初始访问权限后,部署了扫描环境以获取敏感凭证的恶意软件。攻击者专门针对GitHub个人访问令牌(PAT)和主要云平台(包括Amazon Web Services(AWS)、Google Cloud Platform(GCP)和Microsoft Azure)的API密钥。
建议缓解措施
依赖项控制
- 将依赖项固定到已知安全的版本
- 在私有注册表/代理中将恶意版本加入阻止列表
- 从干净状态重建并清除CDN缓存
凭证管理
- 轮换npm、GitHub和云令牌
- 强制执行防钓鱼的多因素认证(例如硬件密钥)
CI/CD强化
- 审计密钥、webhook和GitHub Actions
- 启用密钥扫描和分支保护
- 添加防护措施以在生产构建前检测被篡改的依赖项
网络和运行时防御
- 阻止到已知外泄域名的出站流量
- 持续监控与npm泄露相关的新威胁指标
FortiGuard防护覆盖
FortiCNAPP云原生应用保护平台可通过以下服务和功能帮助防护和检测相关威胁:
- 漏洞管理和软件组成分析:检测是否存在受感染的NPM包
- 静态应用安全测试:检测下载的受感染NPM包中的恶意脚本
- 运行时威胁检测:如果发生泄露,运行时威胁检测将通过复合警报检测与此攻击相关的操作
- 网页过滤:阻止访问攻击者控制的域名
- 威胁指标服务:FortiGuard实验室已阻止所有已知关联的威胁指标,团队持续监控新出现的威胁和新威胁指标
- 防病毒和行为检测:检测来自受污染npm包的恶意JS/HTML有效负载,并通过高级行为分析检测和阻止未知威胁
- 终端检测与响应:检测终端上的可疑脚本执行和未经授权的Git/令牌收集
怀疑遭受攻击的组织可以联系FortiGuard事件响应团队,以获得快速调查和修复支持。
附加资源
- 影响npm生态系统的广泛供应链泄露 | CISA
- 我们为更安全的npm供应链制定的计划 | GitHub
- Lacework FortiCNAPP如何防护… - Fortinet社区