16GB Mac Mini M4 也能零成本跑本地 AI 助理!Ollama + OpenClaw 保姆级教程(附一键脚本)
Axios 遭供应链攻击:不是简单版本问题,而是 npm 依赖注入恶意后门!开发者必看紧急提醒(新增 EDR & NIDS 检测策略)
大家好,最近前端和 Node.js 社区又炸锅了。
知名 HTTP 请求库 Axios(每周下载量超过 1 亿次)刚刚遭遇了一次严重的供应链攻击。这次攻击不是传统的 typosquatting 或普通账号劫持,而是攻击者通过注入一个看似无关的依赖包,在安装时悄悄植入远程访问木马(RAT)。
攻击细节曝光
攻击者没有直接修改 Axios 的核心代码,而是巧妙地在 axios@1.14.1 和 axios@0.30.4 这两个版本中,注入了一个从未被 Axios 实际使用的依赖包:
plain-crypto-js@4.2.1
这个包的唯一作用,就是在 postinstall 脚本中执行恶意操作:
-
安装后立即向 C2 服务器(sfrclak[.]com / IP: 142.11.206.73,完整 URL:
http://sfrclak.com:8000/6202033)发起请求,下载平台特定的第二阶段 payload。 -
支持跨平台:macOS、Windows、Linux。
-
执行完成后,恶意脚本会立刻覆盖自己的 package.json 为干净版本,抹除安装痕迹,让事后检查 node_modules 几乎看不出异常。
这意味着:即使你只看 Axios 的源码或 GitHub Tag,也很难发现问题。版本号本身不再是可靠的信号。
受影响版本
-
axios@1.14.1
-
axios@0.30.4
-
plain-crypto-js@4.2.1(恶意依赖)
需要检查的持久化痕迹(Persistence Artifacts)
如果你的机器可能已中招,请立刻排查以下路径:
-
macOS:
/Library/Caches/com.apple.act.mond -
Windows:
%programdata%\wt.exe -
Linux:
/tmp/ld.py
同时,检查网络日志中是否有对 sfrclak[.]com 或 IP 142.11.206.73 的 outbound 连接(尤其是端口 8000)。
立即修复建议
-
降级 Axios:
- 1.x 系列 → 使用
axios@1.14.0 - 0.x 系列 → 使用
axios@0.30.3
推荐在
package.json中使用 overrides 或 resolutions 强制锁定安全版本。 - 1.x 系列 → 使用
-
旋转所有密钥:立即更换所有 Secrets、API Key、Token 等敏感凭证。
-
CI/CD 加固:在
npm install、yarn install、pnpm install时添加--ignore-scripts参数,阻断 postinstall 脚本执行。 -
加强依赖验证:单纯的版本 pinning 已不够用,建议引入 artifact hash 验证或开源工具(如 ReleaseGuard)。
新增:EDR 系统检测参考策略(适用于 CrowdStrike、SentinelOne、Microsoft Defender for Endpoint、Elastic EDR 等)
EDR 重点监控“行为”而非仅签名,针对本次攻击可快速配置以下规则:
-
进程行为监控:
检测node/npm进程在postinstall阶段发起外联(尤其是child_process.exec执行curl、wget、powershell或python下载 payload)。
关键字:setup.js执行 + HTTP 请求到未知域名。 -
文件创建/修改规则(File Path Monitoring):
- macOS:创建或修改
/Library/Caches/com.apple.act.mond - Windows:创建
%PROGRAMDATA%\wt.exe(或 ProgramData 目录下以 .exe 结尾的可疑文件) - Linux:创建
/tmp/ld.py(或 /tmp 目录下以 .py 结尾的脚本)
- macOS:创建或修改
-
命令行异常检测:
阻断来自 node_modules 目录下的 PowerShell / sh / python 进程执行 base64 解码或下载命令。
常见 Sigma 规则关键词:npm postinstall+Invoke-WebRequest/curl -o。 -
持久化行为:
监控注册表(Windows)或 LaunchAgents(macOS)中出现wt.exe/com.apple.act.mond相关项。
大多数商用 EDR 已可通过“Living off the Land” + “Suspicious Script Execution” 策略自动告警,建议立即开启 npm 相关行为策略并回溯过去 24 小时安装记录。
新增:NIDS 检测参考策略(适用于 Suricata、Snort、Zeek、Wireshark 等)
NIDS 重点捕获网络层异常,推荐以下签名规则(可直接复制到规则文件中):
-
DNS 查询规则(Suricata 示例):
alert dns any any -> any any (msg:"[Axios RAT] C2 DNS Query"; dns.query; content:"sfrclak.com"; nocase; sid:1000001; rev:1;) -
HTTP/TCP 连接规则:
alert tcp any any -> 142.11.206.73 8000 (msg:"[Axios RAT] C2 Connection"; flow:to_server,established; content:"6202033"; sid:1000002; rev:1;) -
HTTP Payload 特征:
匹配 POST/GET 请求中包含packages.npm.org/product0/1/2或特定 User-Agent(npm 相关),结合 C2 域名。
Zeek 脚本可监控http.log中host == "sfrclak.com"的记录。 -
异常流量:
监控 CI/CD 服务器或开发者机器在npm install期间出现非 npm registry(registry.npmjs.org)的 outbound HTTP/HTTPS 流量。
建议将以上规则优先级调高,并对匹配流量进行包捕获(PCAP)留存取证。
这次事件再次敲响警钟
供应链攻击越来越隐蔽。攻击者可通过劫持 maintainer 账号,直接向 npm registry 推送带毒版本,而不走 GitHub Release 流程。
传统依赖锁定策略已无法完全防御这类“干净外表 + 隐藏后门”的攻击。
你所在的团队目前是如何应对 npm/PyPI 等供应链风险的呢?
-
是单纯依赖
package-lock.json+ 版本 pinning? -
还是已经引入 SBOM、hash 验证、EDR/NIDS 规则、或
--ignore-scripts? -
有没有在用 ReleaseGuard / Safe Chain / Aikido 等开源/商用工具?
欢迎在评论区分享你的做法,一起交流经验。安全从来不是一个人或一个工具的事,而是整个开发生态的共同责任。
行动起来:
-
立刻检查项目依赖,降级 Axios;
-
开启 EDR/NIDS 相关检测规则;
-
加强 CI 安全策略。
别让一次 npm install 就让整个生产环境沦陷。
安全第一,代码第二。保持警惕,保护好你的供应链!
(本文基于 StepSecurity、Socket.dev 等公开技术分析整理,2026年3月31日最新事件。如有最新进展会及时跟进。建议关注 Axios 官方仓库、npm 安全公告及 StepSecurity 博客。)
如果你正在用 Axios,赶紧去检查 + 配置 EDR/NIDS 吧!有任何疑问或补充检测规则,欢迎留言讨论~
#前端安全 #供应链攻击 #npm安全 #Axios #EDR #NIDS #Nodejs开发 #网络安全

