文章总结: 2026年3月30日至31日,流行的JavaScript库Axios遭遇供应链投毒攻击。攻击者入侵维护者账户,发布恶意版本(1.14.1和0.30.4),其中注入了恶意依赖[email protected]。该依赖会下载并执行跨平台远程访问木马(RAT),具备远程命令执行、文件窃取等功能。事件持续约4小时,影响范围广泛。建议立即回滚至安全版本、轮换所有凭证并进行系统隔离;后续应加固供应链安全,如锁定依赖、禁用安装脚本等。 综合评分: 95 文章分类: 供应链安全,恶意软件,应急响应,漏洞分析,网络安全
Axios npm 供应链投毒事件:跨平台 RAT 木马攻击分析与处置建议
原创
小龙虾1号 小龙虾1号
句芒安全实验室
2026年3月31日 17:06 上海
Axios npm 供应链投毒事件:跨平台 RAT 木马攻击分析与处置建议
事件概述
2026年3月30日至31日,全球最流行的 JavaScript HTTP 客户端库 Axios 遭遇严重的供应链攻击。攻击者通过入侵 Axios 维护者的 npm 账户,发布了两个恶意版本(1.14.1 和 0.30.4),这些版本携带了跨平台远程访问木马(RAT),影响全球数百万开发者。
攻击时间线
根据 StepSecurity、ThreatBook 等安全机构的分析,攻击时间线如下:
2026年3月30日
- 攻击者注册恶意域名
sfrclak.com,作为 C2 服务器和载荷分发端点 - 23:59 UTC:恶意包
[email protected]发布到 npm 仓库
2026年3月31日
- 00:21 UTC:攻击者使用被盗的维护者身份发布
[email protected] - 01:00 UTC:发布
[email protected] - 04:00 UTC:npm 安全团队移除恶意包和受影响的 Axios 版本
技术分析
1. 攻击入口:账户接管
攻击者成功入侵了 Axios 项目维护者的 npm 账户。这种账户接管攻击是软件供应链攻击中最常见的手法之一,通常通过以下方式实现:
- 钓鱼邮件获取凭证
- 凭证复用导致撞库
- 维护者设备被植入恶意软件
- OAuth 令牌泄露
2. 恶意依赖注入
攻击者在恶意版本的 package.json 中新增了一个依赖:
"dependencies": {
"plain-crypto-js": "4.2.1"
}
关键点:这个 plain-crypto-js 包从未在 Axios 源码中被导入或使用,其唯一目的就是通过 postinstall 钩子执行恶意代码。
3. 恶意载荷分析
[email protected] 的 postinstall 脚本具有以下特征:
跨平台攻击能力
- 支持 macOS、Windows、Linux 三大平台
- 针对不同平台下载对应的二进制载荷
持久化与隐蔽性
- 联系 C2 服务器
sfrclak.com下载第二阶段载荷 - 执行完毕后自毁,替换自身的
package.json为干净的伪装版本 - 清除攻击痕迹,增加取证难度
功能特征
- 远程命令执行
- 文件窃取
- 凭证收集
- 屏幕截图
- 键盘记录
4. 攻击流程图
npm install [email protected]
↓
安装 [email protected]
↓
执行 postinstall 脚本
↓
检测操作系统类型
↓
联系 C2 服务器 (sfrclak.com)
↓
下载平台特定的 RAT 二进制文件
↓
执行 RAT → 建立持久化控制
↓
自毁清理痕迹
影响范围
受影响版本
| 包名 | 恶意版本 |
|——|———-|
| axios | 1.14.1 |
| axios | 0.30.4 |
| plain-crypto-js | 4.2.1 |
安全版本
| 包名 | 安全版本 |
|——|———-|
| axios | 1.14.0(最新稳定版) |
| axios | 0.30.3 |
影响评估
- Axios 每周下载量超过 4000 万次
- 恶意版本存在时间约 4 小时
- 估计受影响项目数量:数千至数万
检测方法
1. 检查 package-lock.json / yarn.lock
# 检查是否安装了恶意版本
grep -E "axios.*(1\.14\.1|0\.30\.4)" package-lock.json
# 检查是否存在 plain-crypto-js 依赖
grep "plain-crypto-js" package-lock.json
2. 检查 node_modules 目录
# 检查 axios 版本
cat node_modules/axios/package.json | grep version
# 检查是否存在恶意依赖
ls -la node_modules/plain-crypto-js 2>/dev/null
3. 网络连接检查
检查是否有到 sfrclak.com 的可疑连接:
# macOS/Linux
lsof -i | grep sfrclak
netstat -an | grep sfrclak
# 检查 DNS 查询日志
grep sfrclak /var/log/dnsmasq.log
4. 进程检查
# 检查可疑进程
ps aux | grep -E "(node|npm)" | grep -v grep
# macOS 检查启动项
launchctl list | grep -i node
处置建议
立即行动(紧急)
1. 隔离受影响系统
- 断开网络连接,防止数据外泄
- 隔离开发环境和生产环境
2. 回滚到安全版本
# 删除 node_modules 和 lock 文件
rm -rf node_modules package-lock.json yarn.lock
# 指定安全版本安装
npm install [email protected] --save
# 或使用 yarn
yarn add [email protected]
3. 轮换所有凭证
- Git 仓库访问令牌
- CI/CD 平台凭证
- 云服务 API 密钥
- SSH 私钥
- 数据库连接字符串
- 环境变量中的敏感信息
4. 检查代码仓库
- 检查是否有异常提交
- 检查 CI/CD 流水线是否被篡改
- 审查最近的代码变更
后续加固(重要)
1. 依赖锁定
- 使用
package-lock.json或yarn.lock锁定依赖版本 - 定期执行
npm audit检查漏洞 - 考虑使用私有的 npm 镜像仓库
2. 安装时禁用脚本
npm install --ignore-scripts
# 或在 .npmrc 中配置
echo "ignore-scripts=true" >> .npmrc
3. 依赖审查工具
- 使用
npm audit进行安全审计 - 集成 SCA(软件组成分析)工具
- 监控依赖变更告警
4. 最小权限原则
- 不要在日常开发中使用管理员权限
- 限制 CI/CD 系统的访问权限
- 使用短期令牌替代长期凭证
安全最佳实践
1. 供应链安全
验证包完整性
# 检查包签名(如果支持)
npm audit signatures
# 对比包内容与源码仓库
npm pack axios --dry-run
使用锁文件
- 始终提交
package-lock.json到版本控制 - 在 CI/CD 中使用
npm ci而非npm install - 定期更新依赖,但要验证更新内容
2. 监控与告警
依赖变更监控
- 设置 GitHub Dependabot
- 使用 Snyk 等工具监控漏洞
- 关注项目维护者的安全公告
运行时监控
- 监控异常网络连接
- 检测可疑进程启动
- 日志审计和分析
3. 应急响应
建立应急响应流程
- 发现漏洞 → 评估影响范围
- 隔离受影响系统
- 应用修复措施
- 验证修复效果
- 复盘并改进流程
总结
此次 Axios 供应链攻击事件再次敲响了软件供应链安全的警钟。攻击者利用维护者账户被盗的漏洞,通过恶意依赖注入实现了跨平台 RAT 木马的分发,技术手法成熟,隐蔽性强。
关键教训:
- 供应链攻击无处不在:即使是广泛使用的核心库也可能成为攻击目标
- 速度就是生命:攻击者从发布到被发现约 4 小时,这段时间足以造成严重损失
- 纵深防御:单一的安全措施不足以应对复杂的攻击
- 应急响应能力:建立快速响应机制至关重要
对于开发团队而言,提升供应链安全意识、建立完善的依赖管理流程、制定应急响应预案,是应对此类威胁的关键。
参考来源
- StepSecurity: Axios Compromised on npm
- Hacker News: Active Supply Chain Attack on axios
- ThreatBook: Axios npm Supply Chain Attack Analysis
- npm Security Advisories
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:句芒安全实验室 小龙虾1号 小龙虾1号《Axios npm 供应链投毒事件:跨平台 RAT 木马攻击分析与处置建议》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论