Axios 供应链投毒全解析与企业长效防御体系建设昨天上午,大量正在使用 OpenClaw 的开发者和安全工程师陆续收到预警:在北京时间今天上午 8:00–12:00 期间正常安装或更新 OpenClaw 的用户,可能已被动植入跨平台 RAT 远控木马。这不是 OpenClaw 本身的漏洞。根本原因,指向了 JavaScript 生态里一个你几乎每天都在用的组件——Axios。Axios 是 npm 下载量排名全球第一的 HTTP 客户端库,每周下载超 1 亿次,是 React、Vue、Angular 前端项目和 Express、NestJS 后端服务的标配依赖。它如此基础,以至于你使用的很多工具——包括 OpenClaw——都在底层依赖它,你甚至不知道它的存在。任何在感染窗口期内执行 npm install 的项目,只要允许拉取这两个版本,都可能已在不知情的情况下被植入后门。OpenClaw 中招的原因正是如此——上游依赖被污染,OpenClaw 用户成为受害者,而自己完全没有过错。这次投毒并非普通的「上传恶意包」。攻击者展现出相当高的对抗意识,整个攻击链设计得极为精密。1.影子依赖注入(Ghost Dependency)Axios 本身的源码没有任何改动。攻击者仅在 package.json 中额外声明了一个从未被 axios 代码引用的依赖 plain-crypto-js,npm 安装时自动拉取并执行。这使得源码审计几乎无法发现异常——你看 axios 的代码,没有任何问题。在发布恶意包的 18 小时前,攻击者提前发布一个干净版本,为攻击者账号建立发布历史。许多自动化安全工具会对「从未发包的新账号」重点告警,这一预热动作有效绕开了这类检测。dropper 识别操作系统,刻意回避在代码顶层 require 敏感系统模块(如 fs、os、child_process),转而在运行时动态构建模块名称并加载,此方法可以绕过SAST分析工具。const mod = require(['ch','ild','_pr','ocess'].join(''));const exec = mod['execS' + 'ync'];
并在之后联系 C2 服务器 http://sfrclak.com:8000/6202033(IP142.11.206.73),下载对应平台的第二阶段载荷:执行完毕后,恶意脚本将自身删除,并用干净版本替换 package.json,导致事后取证极度困难。在 npm 官方于北京时间 12:00 正式下架恶意包约 41 分钟前,塞讯高级持续威胁情报智能平台的供应链情报模块已完成对本次投毒事件的情报收录与威胁标注。- 多源外部情报聚合实时对接 24+ 外部情报源(Snyk、OSV、GitHub Advisory、Socket.dev 等),全天候同步新威胁包记录,无需人工触发
- 自研动态与静态分析对可疑包进行多工具组合检测 + LLM 深度语义分析,覆盖混淆代码、postinstall 钩子、动态模块加载等对抗性技术
- 威胁情报与 IOC 关联从恶意包到 C2 域名、攻击 IP,攻击链完整呈现——一张详情页,看清这次投毒从包到 C2 的完整路径
这次 Axios 投毒事件,从外部情报发现到平台收录,完全由自动化流程完成,决策链路上不依赖人工感知。如果你的团队今天在感染窗口期(北京时间 08:00–12:00)执行过 npm install 或 npm update,请立即按以下步骤自查。npm list axiosnpm list plain-crypto-js检查全量依赖树(包含传递依赖)npm list --all | grep -E "axios|plain-crypto-js"检查 lock 文件中是否锁定了恶意版本grep -E "1.14.1|0.30.4|plain-crypto-js" package-lock.json
ls node_modules/plain-crypto-js 2>/dev/null && echo "⚠️ POTENTIALLY AFFECTED"
即使恶意脚本已自删除,只要该目录存在,即可判定 dropper 曾经执行过。ls -la /Library/Caches/com.apple.act.mond 2>/dev/null && echo "🔴 COMPROMISED"Linux — 检查 Python RAT 脚本ls -la /tmp/ld.py 2>/dev/null && echo "🔴 COMPROMISED"
Get-Item "$env:PROGRAMDATAwt.exe" -ErrorAction SilentlyContinue
4.4 检查网络侧痕迹
在防火墙/流量日志中搜索到 sfrclak.com:8000 的 HTTP POST 请求。如有回连,系统已失陷,立即进入应急响应。- 域名:sfrclak.com / callnrwise.com
- IP:142.11.206.73 / 142.11.196.73 / 142.11.199.73
npm install axios@1.14.0npm install axios@0.30.3npm install --ignore-scripts
上述自查步骤能帮你止血。但每次类似事件发生后,你都需要重新拿出这份清单,重新推送给开发团队,等待他们逐一排查——然后收集零散的反馈,再判断有没有遗漏。今天这起事件暴露的,正是大多数企业软件供应链防御的结构性盲区:情报感知是被动的,防御是事后的,开发侧的依赖引入几乎没有管控。Axios 首席维护者在 GitHub 公开表示,他无法从内部撤销攻击者的发布权限,只能申请人工干预。这意味着:即使是全球最高频的开源项目之一,其安全性也依赖于一个账号的密码强度和一个维护者是否开启了 MFA。开源生态的信任模型本质是脆弱的。未来类似的供应链投毒事件不会减少,会更频繁,手法会更精密,影响范围会更广。企业不能把信任决策寄托在上游维护者的账号安全上。 可量化、可自动化、不依赖人工感知的信任验证体系,才是应对这类系统性风险的长效解法。从昨天的 11:19 开始,这已经不再只是「安全团队的事」了。立即在防火墙、SIEM、DNS 过滤中封禁以下指标▶▶关注【塞讯安全验证】,了解塞讯安全度量验证平台以及更多安全资讯▶▶关注【塞讯科技 Cyritex】,关注企业发展和数字韧性平台的最新建设情况
还没有评论,来说两句吧...