🦞 OpenClaw安全事件深度调查:从供应链投毒到系统沦陷
事件概述
2026年3月31日,一场针对npm生态系统的严重供应链攻击震惊了开发者社区。全球最受欢迎的JavaScript HTTP客户端库Axios(周下载量超3亿次)的两个版本被恶意植入远程访问木马(RAT),而这款恶意包通过依赖关系链间接感染了包括**OpenClaw(俗称“龙虾”)**在内的众多开源项目。
这不是一次普通的漏洞披露,而是一场精心策划的账号劫持+供应链投毒+跨平台远控组合攻击,开发者只需执行npm install就可能让整台机器沦陷。
📅 攻击时间线:一场计划周密的“手术”
攻击者在发动攻击前进行了充分准备,整个过程展现出高度专业性:
plain-crypto-js@4.2.0(诱饵包) | |
plain-crypto-js@4.2.1,植入postinstall恶意钩子 | |
劫持Axios维护者账号axios@1.14.1,注入恶意依赖 | |
axios@0.30.4,覆盖老旧项目分支 | |
plain-crypto-js发起安全保留 |
关键发现:攻击者提前18小时发布“干净版”恶意包,目的是让恶意包在npm仓库中拥有“合法历史”,绕过安全工具的“全新可疑包”检测机制。
🔬 技术深度解析:恶意代码如何运作?
攻击链路图
npm install axios@1.14.1 ↓依赖解析 → plain-crypto-js@4.2.1 ↓postinstall钩子触发 → setup.js执行 ↓双层混淆解密(XOR+Base64) ↓连接C2服务器(sfrclak.com:8000) ↓平台识别 → 下载对应RAT载荷 ↓建立持久化 → 自毁痕迹跨平台载荷详情
🔴 macOS:下载二进制至/Library/Caches/com.apple.act.mond,伪装成苹果系统守护进程,具备以下能力:
生成唯一受害者ID 采集系统指纹(主机名、用户名、macOS版本、运行进程) 每60秒向C2发送心跳 支持远程执行任意代码、文件枚举、自毁
🟡 Windows:复制PowerShell至%PROGRAMDATA%\wt.exe(伪装Windows终端),通过隐藏VBScript执行内存载荷:
绕过执行策略 无窗口运行 持久化驻留
🟢 Linux:下载Python脚本至/tmp/ld.py,通过nohup后台运行,脱离终端会话。
反取证机制
恶意代码执行后会自我删除:删除setup.js,将package.json替换为无害的“干净版本”。这意味着,即使事后检查node_modules目录,也难以发现任何异常。
🚨 影响范围:远超OpenClaw
直接受影响群体
所有在3月31日00:21-03:15 UTC期间执行 npm install的开发者依赖 axios@1.14.1或axios@0.30.4的任何项目CI/CD流水线(尤其是夜间自动构建)
间接受影响群体
通过@qqbrowser/openclaw-qbot和@shadanai/openclaw等包间接引入恶意依赖的项目。
OpenClaw自身的安全隐患
除供应链投毒外,OpenClaw平台本身也被曝出多处高危漏洞:
512项安全漏洞(1月审计报告),含8项“严重”级别 ClawJacked漏洞(2月):恶意网页可远程接管OpenClaw智能体 MEDIA协议Prompt注入漏洞(3月):影响全球超17万个公开访问的OpenClaw实例 800+个恶意技能插件已在平台上被发现
🛡️ 官方与监管机构反应
国家相关部门紧急响应
国家知识产权局(4月1日):发布风险提示,指出使用OpenClaw撰写专利申请文件可能导致技术信息泄露、AI幻觉导致的实质缺陷、不诚信申请等三重风险。 工信部NVDB:发布防范OpenClaw安全风险 “六要六不要”建议 国家互联网应急中心(3月22日):发布OpenClaw安全使用实践指南
国际反应
微软、派拓网络、众击等安全团队发布风险报告 荷兰数据保护局:建议用户不要在存有敏感数据的系统上使用OpenClaw Meta、韩国多音通讯:已禁止员工在办公设备上使用OpenClaw
🔧 应急处置指南(分步操作)
第一步:判断是否中招
检查axios版本:
# 全局检查npm list -g axios | grep -E "1\.14\.1|0\.30\.4"# 项目检查npm list axios 2>/dev/null | grep -E "1\.14\.1|0\.30\.4"grep -E '"axios"' package-lock.json | grep -E '1\.14\.1|0\.30\.4'检查恶意依赖痕迹:
# 检查plain-crypto-js目录(最直接的指标)ls node_modules/plain-crypto-js 2>/dev/null && echo "⚠️ 已中招"# 搜索锁文件grep -r "plain-crypto-js" . --include="*lock*"检查系统后门文件:
# macOSls -la /Library/Caches/com.apple.act.mond 2>/dev/null && echo "⚠️ 已沦陷"# Linuxls -la /tmp/ld.py 2>/dev/null && echo "⚠️ 已沦陷"# Windows PowerShellTest-Path "$env:PROGRAMDATA\wt.exe"网络层面:检查是否有发往142.11.206.73或sfrclak.com的异常出站连接。
第二步:若已中招——立即处置
断网隔离:立即断开网络,阻止数据外传和C2后续指令
凭证全量轮换(在安全设备上执行):
npm token 云服务密钥(AWS、Azure、GCP) SSH私钥 数据库密码 API Keys Git凭证(GitHub、GitLab) 浏览器Cookie(尤其是含登录态的) 清理恶意文件:
# macOSsudo rm -rf /Library/Caches/com.apple.act.mond# Linuxsudo rm -f /tmp/ld.py# Windowsdel "%PROGRAMDATA%\wt.exe"重建环境:不建议仅删除
node_modules重装,因为攻击者可能已植入其他持久化机制。最佳实践是从干净镜像重建系统。审查CI/CD流水线:检查流水线是否在攻击窗口期内运行,假设已被攻破,轮换所有CI/CD凭证。
第三步:预防性加固
锁定安全版本:
// package.json{"dependencies": {"axios": "1.14.0"// 或 0.30.3}}禁用postinstall脚本(CI/CD环境):
npm install --ignore-scriptsnpm ci --ignore-scripts网络层阻断(可选):
# 防火墙封禁C2 IPiptables -A OUTPUT -d 142.11.206.73 -j DROP使用安全工具扫描:
# Snyk CLI(免费)npm install -g snyksnyk authsnyk test📋 工信部“六要六不要”建议(精简版)
针对OpenClaw部署场景,工信部NVDB提出以下核心建议:
| 智能办公 | ||
| 开发运维 | ||
| 个人助手 | ||
| 金融交易 |
通用原则:
✅ 使用官方最新版本 ✅ 严格管控互联网暴露面 ✅ 坚持最小权限原则 ✅ 审慎下载技能市场插件 ✅ 启用日志审计 ❌ 不要使用第三方镜像源 ❌ 不要禁用详细日志 ❌ 不要在生产环境直接部署
💡 总结与展望
这起事件暴露了开源生态的供应链脆弱性——一个维护者账号的被劫持,就能让300亿次周下载量的核心库变成木马分发渠道。对OpenClaw用户而言,风险是叠加的:既要面对npm供应链投毒的间接威胁,又要应对OpenClaw自身架构的安全缺陷。
核心启示:
锁文件是生命线:提交 package-lock.json到版本控制,可以阻断攻击窗口期的新增恶意依赖最小权限原则:无论是OpenClaw还是CI/CD,都应按需授予权限 零信任假设:任何依赖都可能被投毒,生产环境应默认禁用 postinstall脚本监控与审计:异常出站连接、陌生进程、系统缓存目录的可疑文件都应触发告警
最后更新:2026年4月2日信息来源:新华社、央视新闻、工信部NVDB、Snyk安全报告、360数字安全集团、StepSecurity等
本文持续更新,如发现新情况请及时反馈。
夜雨聆风