npm史上最大供应链攻击:每周下载量超20亿的软件包遭大规模攻击劫持
字数 1270 2025-09-23 19:27:46
npm供应链攻击事件深度分析与防御指南
事件概述
2025年9月8日,网络安全公司Aikido Security披露了npm生态有史以来最大规模的供应链攻击事件。攻击者通过钓鱼手段入侵了长期受信任的维护者"qix"的账户,篡改了18个流行软件包,这些软件包每周总下载量超过20亿次。
受影响的关键软件包
被植入恶意代码的核心软件包包括:
chalk:每周3亿次下载debug:每周3.58亿次下载ansi-styles:每周3.71亿次下载is-arrayish:底层工具库strip-ansi:格式化库
这些组件作为JavaScript应用的基石,恶意版本可能已渗透至全球生产环境。
攻击手法分析
初始入侵途径
- 攻击者伪造了
support@npmjs.help发送的钓鱼邮件 - 通过钓鱼手段获取了维护者账户权限
恶意代码运作机制
此次攻击与传统针对开发环境的攻击不同,专门针对浏览器端的加密货币交易:
-
钱包API劫持
- 劫持MetaMask、Phantom等主流钱包的API接口
- 在用户签署交易前篡改交易数据
-
交易欺诈技术
- 界面显示正确收款方,实际资金转入攻击者地址
- 支持以太坊、比特币、Solana等主流区块链的地址伪造
-
网络流量劫持
- 通过修改
fetch、XMLHttpRequest等核心函数实现流量劫持
- 通过修改
应急响应措施
Aikido恶意软件研究主管Charlie Eriksen表示:
- 攻击在5分钟内被识别
- 1小时内完成披露
当前缓解建议
-
立即行动项
- 回滚至已知安全版本
- 审计近期更新的所有依赖项
-
长期防护措施
- 对涉及加密货币交易的应用实施严密监控
- 启用依赖项变更警报系统
-
特别注意事项
- 部分软件包(如
simple-swizzle)截至最新更新仍处于被控状态 - 建议关注Aikido官方博客的实时更新通道
- 部分软件包(如
防御策略与最佳实践
1. 供应链安全防护
- 实施依赖项锁定(package-lock.json/yarn.lock)
- 启用npm的2FA认证
- 定期审计依赖项更新
2. 钓鱼攻击防范
- 警惕所有声称来自npm官方的邮件
- 验证发件人地址真实性
- 不点击邮件中的直接登录链接
3. 加密货币应用专项防护
- 实施交易前二次确认机制
- 对比交易哈希与显示内容
- 使用硬件钱包进行关键交易
4. 开发环境安全
- 使用CI/CD流水线进行依赖项验证
- 实施自动安全扫描
- 建立软件物料清单(SBOM)
事件影响评估
此次攻击的特殊性在于:
- 针对基础组件的广泛影响
- 精准的加密货币交易劫持
- 高度隐蔽的恶意行为
- 快速的攻击传播速度
后续行动建议
-
个人开发者
- 立即检查项目中的受影响依赖项
- 更新安全策略和工具链
-
企业组织
- 启动供应链安全审计
- 加强开发人员安全意识培训
- 考虑实施零信任架构
-
开源维护者
- 加强账户安全措施
- 建立发布流程的多重验证
- 考虑使用发布签名机制
参考资源
- Aikido Security官方博客(实时更新)
- npm安全公告
- 相关CVE报告(待发布)
注:由于部分软件包仍处于被控状态,建议持续关注官方渠道获取最新信息。