API 协作平台 Apifox 遭供应链攻击,所有桌面端用户 SSH 密钥与凭证面临泄露风险

2026 年 3 月 4 日至 3 月 22 日期间,API 协作平台 Apifox 的公网 SaaS 版桌面客户端遭受供应链攻击。攻击者篡改了托管在 CDN 上的外部 JavaScript 文件,在合法的事件追踪代码末尾追加了约 42 KB 的恶意载荷。

恶意代码会采集机器指纹 (MAC 地址、CPU 型号、主机名等信息的 SHA-256 哈希值) 并窃取 Apifox 用户的访问令牌 (Access Token) ,随后通过 RSA-2048 加密将敏感信息发送至命令与控制 (Command and Control, C2) 服务器 apifox[.]it[.]com。C2 服务器返回经 RSA 加密的 Stage-1 加载器,动态生成随机路径的 Stage-2 攻击载荷。Stage-2 脚本通过 Node.js API 递归读取用户设备上的高敏感文件,包括:

- ~/.ssh/ 目录下的全部 SSH 密钥
- ~/.git-credentials 中的 Git 凭证
- ~/.zsh_history 和 ~/.bash_history 中的命令行历史
- ~/.kube/ 下的 Kubernetes 集群配置
- ~/.npmrc 中的 npm 注册表令牌


攻击者在入口文件中部署了精密的混淆与加密机制,但在服务端下发的实际攻击载荷中却保留了完整的中文开发注释。更关键的失误是将 RSA-2048 私钥硬编码在客户端代码中,使得安全研究人员得以解密全部 C2 通信并完整还原攻击链。

该恶意软件本质上是一个基于 eval() 的完整远程代码执行 (Remote Code Execution, RCE) 平台。C2 服务器在每次轮询 (间隔 30 分钟至 3 小时) 中均可下发完全不同的任意 JavaScript 代码。目前捕获的 Stage-2 载荷仅为前期侦察与凭据采集阶段,攻击者完全有能力根据已回传的机器指纹、Apifox 邮箱 (判断所属公司) 、SSH 密钥 (判断可达服务器) 、Kubernetes 配置 (判断集群规模) 等信息筛选高价值目标,并为其量身定制后续攻击载荷——包括但不限于独立后门植入、横向移动、源代码窃取、生产环境接管以及利用窃取的 npm 或 Git 令牌发起二次供应链投毒。

Apifox 官方已于 3 月 25 日发布紧急修复版本 2.8.19,彻底废除了在线动态加载机制,改为本地内置打包。官方强烈建议受影响用户立即升级客户端、全面轮换 SSH 密钥、吊销 Git 个人访问令牌 (Personal Access Token, PAT) 、重置 Kubernetes 集群凭证与 npm 注册表令牌,并在 hosts 文件中阻断恶意域名 apifox.it.com。私有化部署版与 SaaS Web 版用户不受此次事件影响。

Apifox 现有用户可通过以下方式观察是否被投毒事件影响:
- 检查 Electron localStorage 中是否存在 _rl_headers、_rl_mc 键
- 监控网络流量中是否有到 apifox[.]it[.]com 的历史请求流量
- 检查历史 HTTP 请求头中是否包含 af_uuid、af_os 等异常字段


(Apifox白帽酱)
 
 
Back to Top