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