Apifox 遭受供应链攻击 https://v2ex.com/t/1201146
早上自己检查了一下,顺便搞了一个自动扫描工具。
2026 年 3 月 25 日,Apifox 官方确认其公网 SaaS 版桌面客户端遭受供应链攻击。客户端动态加载的一个外部 JavaScript 文件被恶意篡改。
apifox.it.com(托管在 Cloudflare ,存活 18 天,目前已下线)~/.ssh/、~/.zsh_history、~/.bash_history、~/.git-credentials本工具自动扫描系统状态,引导你完成凭证轮换:
| 模块 | 功能 |
|---|---|
| 0 - 取证确认 | 检查 LevelDB 恶意标记、验证 Apifox 版本、在 /etc/hosts 中屏蔽 C2 域名 |
| 1 - 终止进程 | 终止运行中的 Apifox 进程 |
| 2 - SSH 密钥 | 扫描、备份、轮换 SSH 私钥,并提示对应平台 |
| 3 - Shell History | 清理 zsh/bash/fish 历史记录中的敏感 token |
| 4 - GitHub Token | 轮换 GitHub CLI 认证 |
| 5 - K8s 凭证 | 备份 kubeconfig 以便重新颁发 |
| 6 - Docker 凭证 | 登出所有已配置的 Docker Registry |
| 7 - macOS 钥匙串 | 检查与 apifox 相关的钥匙串条目(仅 macOS ) |
| 8 - .env 扫描 | 在常见开发目录中查找 .env 、.key 、.pem 文件 |
| 9 - 审计 | 引导检查异常活动( GitHub 安全日志、git 历史、K8s 事件) |
重要提示: 本工具仅备份和轮换凭证,不会删除任何原始文件——操作前始终会先创建备份。
可以先执行 --dry-run 预览
1
wzw 3 月 26 日
平台: Darwin 24.6.0
Apifox 进程: 运行中 (PID: 54040) Apifox LevelDB: 未发现已知恶意标记 Hosts 屏蔽: apifox.it.com 未屏蔽 发现的凭证: SSH 密钥: 未找到 GitHub CLI: not installed Kubernetes: 未找到 Docker: 未找到 Shell History: 未发现敏感 token .env 文件: 未找到 将执行的模块: [0] 取证确认 & Hosts 屏蔽 ✓ 适用 [1] 终止 Apifox 进程 ✓ 适用 [2] 轮换 SSH 密钥 — 跳过 [3] 清理 Shell History — 跳过 [4] 轮换 GitHub Token — 跳过 [5] 轮换 K8s 凭证 — 跳过 [6] 轮换 Docker 凭证 — 跳过 [7] 检查 macOS 钥匙串 ✓ 适用 [8] 扫描 .env 文件 — 跳过 [9] 审计异常活动 ✓ 适用 执行所有适用模块?[Y(是)/n(否)/select(选择)] 这样是未中招?, SSH 密钥 应该有才对呀 |
4
gefangshuai 3 月 26 日
apifox 真是坑
|
5
ShawyerPeng 3 月 27 日
MALICIOUS MARKERS FOUND 这就是中招了?
|
6
ShawyerPeng 3 月 27 日
我怎么感觉没有恶意标记文件呢?为什么会扫出来 pifox LevelDB: MALICIOUS MARKERS FOUND 呢?跑命令还有自己去目录下('~/Library/Application Support/apifox/Local Storage/leveldb')找了都没有_rl_headers 、_rl_mc 、af_uuid 类似文件
|
7
cooper OP @ShawyerPeng #6
优化一下指标判断: 恶意指标:localStorage 中存在 rl_headers 、rl_mc 键; HTTP 请求头中包含 af_uuid 、af_os 、af_user 、af_name 、af_apifox_user 、af_apifox_name ;读取 com -mon.accessToken 凭证;执行 ps aux / tasklist 命令 调整为: 恶意指标: 确认标记( Remote Loader ):localStorage 中存在 _rl_headers 、_rl_mc 键 可疑字段(数据窃取字段,也可能为正常 Apifox 数据):HTTP 请求头中包含 af_uuid 、af_os 、af_user 、af_name 、af_apifox_user 、af_apifox_name ;读取 common. +accessToken 凭证;执行 ps aux / tasklist 命令 |