Apifox 供应链投毒事件深度分析报告

张开发
2026/5/5 5:21:08 15 分钟阅读
Apifox 供应链投毒事件深度分析报告
摘要2026年3月安全监测发现 API 一体化协作平台 Apifox 的桌面端应用遭受严重的供应链投毒攻击。攻击者通过篡改官方 CDN 托管的 JavaScript 文件利用 Electron 框架未启用 sandbox 的安全缺陷实现了远程代码执行RCE、主机敏感信息窃取、持久化控制与横向移动。该攻击自2026年3月4日开始持续至3月22日活跃窗口长达18天影响范围覆盖全平台 Windows、macOS、Linux 用户。核心结论 任何在风险窗口期内使用过 Apifox SaaS 桌面客户端的终端均应视为可能已沦陷攻击者可获取 SSH 密钥、Git 凭证、命令行历史等核心资产并可能通过横向移动渗透企业内网。第一章事件概述1.1 基本信息项目详情发现时间2026年3月最早可追溯至3月4日攻击持续时间2026年3月4日 — 3月22日共18天受影响应用Apifox 桌面客户端公网 SaaS 版受影响平台Windows、macOS、Linux全平台攻击类型供应链投毒攻击Supply Chain Attack触发方式客户端启动时动态加载被篡改的 CDN JS 文件修复版本v2.8.192026年3月23日发布官方公告2026年3月25日晚间补发修复后未立即公告1.2 事件时间线2026年3月4日 ↓ 攻击者注册的恶意 C2 域名 apifox.it.com 完成解析上线 Apifox CDN 上的 JS 文件被恶意篡改34KB → 77KB 投毒攻击正式启动 ↓ 2026年3月4日 - 3月22日持续18天 攻击持续活跃恶意代码通过 CDN 广泛分发 攻击者持续迭代攻击载荷扩大窃取范围 ↓ 2026年3月22日 恶意域名 DNS 记录下线停止解析 ↓ 2026年3月23日 Apifox 发布 v2.8.19 版本将 JS 文件改为本地内置打包 切断在线加载攻击路径但未发布安全公告 ↓ 2026年3月25日 安全研究员 白帽酱 发布完整技术分析报告 Apifox 官方当日晚间补发风险公告与升级说明1.3 攻击特点总结特点说明隐蔽性强恶意代码混淆加密低频 Beacon 通信30min~3h 随机间隔自动执行客户端启动即触发无需用户交互概率性触发并非每次请求都返回恶意版本增加了检测难度精准定向明确针对开发人员窃取代码仓库和服务器访问权限高权限运行Electron 未启用 sandboxJS 可直接调用 Node.js API第二章技术深度分析2.1 环境利用核心漏洞点Apifox 桌面端基于 Electron 框架开发存在以下安全缺陷问题说明后果未启用 sandbox渲染进程可访问 Node.js API前端 JS 可执行系统命令Node.js API 暴露可直接调用fs、child_process、os等模块文件读写、命令执行、信息收集后果 攻击者通过被投毒的 JS 文件可直接实现远程代码执行RCE控制终端。2.2 CDN 投毒机制2.2.1 文件对比项目正常文件恶意文件URLhttps://cdn.apifox.com/.../apifox-app-event-tracking.min.js\同 URL概率性返回文件大小约 34KB约 77KBMD5a709773362581f4db2f2328e05214e21a68b09956e47c5617f87dc71c895131内容正常埋点代码正常代码 混淆加载器2.2.2 CDN 信息cdn.apifox.com → CNAME → qiniudns.com七牛云 CDN关于投毒发生位置目前存在两种可能CDN 节点被篡改部分 CDN 节点上的文件被替换链路劫持HTTPS 通信过程中被中间人篡改但需绕过证书校验2.3 攻击链完整流程┌─────────────────────────────────────────────────────────────┐ │ 阶段 0初始投毒 │ ├─────────────────────────────────────────────────────────────┤ │ Apifox 启动 → 加载 CDN JS被投毒版本 │ │ 文件apifox-app-event-tracking.min.js77KB │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 阶段 1环境探测与标识采集 │ ├─────────────────────────────────────────────────────────────┤ │ 读取本地环境信息主机名、用户名、MAC、CPU、OS │ │ 生成唯一主机指纹SHA-256(maccpuhostnameuseros) │ │ 构造自定义请求头af_uuid、af_os、af_user、af_name、 │ │ af_apifox_user、af_apifox_name │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 阶段 2C2 请求与载荷获取 │ ├─────────────────────────────────────────────────────────────┤ │ POST https://apifox.it.com/public/apifox-event.js │ │ 携带主机标识头 │ │ 服务端返回 RSA 加密的密文 │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 阶段 3本地解密与调度器执行 │ ├─────────────────────────────────────────────────────────────┤ │ 使用内嵌 RSA 私钥解密异常私钥加密私钥解密 │ │ 解密后得到调度器脚本 → eval 执行 │ │ 调度器动态创建 script 标签加载随机文件名 payload │ │ 示例https://apifox.it.com/2da86746.js │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 阶段 4二阶段 payload 执行数据窃取 │ ├─────────────────────────────────────────────────────────────┤ │ 收集敏感文件、命令历史、进程信息 │ │ 使用 AES-256-GCM 加密 gzip 压缩 │ │ POST 到 https://apifox.it.com/event/0/log │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 阶段 5持久化控制 │ ├─────────────────────────────────────────────────────────────┤ │ setTimeout(loadAndExecute, 随机时间) │ │ 间隔范围30分钟 ~ 3小时 │ │ 内存驻留 低频 Beacon无需落地文件 │ └─────────────────────────────────────────────────────────────┘2.4 加密机制分析2.4.1 RSA 加密异常正常 RSA 使用本样本中的异常行为公钥加密 → 私钥解密私钥加密 私钥解密私钥仅服务端持有私钥硬编码在客户端含义 攻击者将 RSA 私钥嵌入客户端任何被投毒的终端均可解密服务端返回的载荷。这种做法不符合密码学规范但确实实现了载荷的动态下发。2.4.2 AES 加密参数参数值算法AES-256-GCM密钥派生scryptSync(password, salt, 32)passwordapifoxsaltfoxapi输出格式IV(12字节) AuthTag(16字节) Ciphertext → Base642.5 恶意域名分析攻击者使用的 C2 域名apifox.it.com极具迷惑性特征说明表面含义看似意大利国别域名.it的子域实际性质.it.com是商业二级域名服务非 ICANN 标准 TLD注册门槛极低无公开 WHOIS 信息监管状态不受标准 gTLD/ccTLD 监管约束补充封禁域名列表apifox.it.com主 C2cdn.openroute.devupgrade.feishu.it.comsystem.toshinkyo.or.jpns.feishu.it.com第三章恶意能力完整拆解3.1 信息收集能力 文件窃取操作系统目标路径风险Linux / macOS~/.ssh/私钥、公钥、known_hosts服务器权限沦陷~/.git-credentialsGit 明文凭据源代码仓库被入侵~/.bash_history/~/.zsh_history命令历史泄露敏感操作Windows%USERPROFILE%\.sshSSH 密钥泄露通用Apifox 本地缓存apifox/cache/cache_data项目数据、API 定义泄露️ 系统信息采集采集项用途主机名、用户名主机标识MAC 地址、CPU 信息生成唯一指纹OS 类型、版本针对性攻击进程列表ps aux/tasklist发现安全软件、判断环境 应用凭证窃取// 从 localStorage 窃取 Apifox 登录凭证 localStorage.getItem(common.accessToken) // 结合官方 API 获取用户邮箱/用户名3.2 数据回传机制收集数据 → JSON 组织 ↓ gzip 压缩 ↓ AES-256-GCM 加密密钥派生scryptSync(apifox, foxapi, 32) ↓ Base64 编码 ↓ POST 到 https://apifox.it.com/event/0/log 请求头携带 af_uuid主机标识3.3 攻击能力总结表能力类别具体能力风险等级远程代码执行通过 Electron Node.js 接口执行任意系统命令 严重凭据窃取SSH 密钥、Git Token、Apifox Token 严重数据外传加密压缩后回传难以检测 高持久化控制内存驻留、低频 Beacon30min~3h 高横向移动通过窃取的 SSH 密钥渗透内网 严重第四章IOC 指标与检测方法4.1 网络 IOC类型IOC说明域名apifox.it.com恶意分发与外传主域名域名cdn.openroute.dev补充 C2 域名域名upgrade.feishu.it.com补充 C2 域名域名system.toshinkyo.or.jp补充 C2 域名域名ns.feishu.it.com补充 C2 域名URLhttps://apifox.it.com/public/apifox-event.js\RSA 密文分发接口URLhttps://apifox.it.com/event/0/log\数据外传接口URLhttps://apifox.it.com/[随机].js二阶段 payload如 2da86746.jsHeaderaf_uuid,af_os,af_user,af_name,af_apifox_user,af_apifox_name请求中携带的自定义头4.2 主机 IOC检测方法Windows 系统检测以管理员身份打开 PowerShell执行Select-String -Path $env:APPDATA\apifox\Local Storage\leveldb\* -Pattern rl_mc,rl_headers -List | Select-Object Path或使用 CMDfindstr /S /I /C:rl_mc /C:rl_headers %APPDATA%\apifox\Local Storage\leveldb\*有输出 → 已中招macOS 系统检测打开终端执行grep -arlE rl_mc|rl_headers ~/Library/Application\ Support/apifox/Local\ Storage/leveldb有输出 → 已中招4.3 文件特征检测检测项正常值异常值apifox-app-event-tracking.min.js大小34KB77KB本地存储中存在rl_mc/rl_headers键值不存在存在4.4 样本哈希文件MD5正常 apifox-app-event-tracking.min.jsa709773362581f4db2f2328e05214e2恶意 apifox-app-event-tracking.min.js1a68b09956e47c5617f87dc71c895131第五章风险评估5.1 风险评级维度评级说明影响范围⭐⭐⭐⭐⭐开发人员广泛使用全平台用户均受影响隐蔽性⭐⭐⭐⭐⭐内存驻留、低频 Beacon、加密回传、概率性触发利用难度⭐⭐自动触发无需用户交互破坏性⭐⭐⭐⭐⭐RCE、凭据窃取、横向移动、内网渗透综合评级严重Critical5.2 潜在影响影响类别具体风险后果SSH 密钥泄露攻击者可登录所有配置该公钥的服务器服务器沦陷、内网横向移动Git 凭证泄露GitHub/GitLab Personal Access Token 被窃源代码仓库被入侵、代码被篡改或窃取Apifox Token 泄露API 项目配置、接口定义被窃API 资产管理失控命令行历史泄露包含敏感操作、密码输入记录进一步扩大泄露面云服务凭证泄露AWS/GCP/Azure Access Key 被窃云资源被滥用、产生巨额费用内网渗透攻击者利用窃取的凭证横向移动生产环境沦陷5.3 受影响用户群体所有使用 Apifox SaaS 桌面客户端的用户Web 版本不受影响私有化部署版本不受影响非官方渠道下载的版本风险更高无法通过官方更新修复第六章应急处置手册 6.1 网络层封禁立即执行在防火墙、代理或 DNS 层面封禁以下域名apifox.it.com cdn.openroute.dev upgrade.feishu.it.com system.toshinkyo.or.jp ns.feishu.it.comWindows hosts 文件配置C:\Windows\System32\drivers\etc\hosts127.0.0.1 apifox.it.com 127.0.0.1 cdn.openroute.dev 127.0.0.1 upgrade.feishu.it.com 127.0.0.1 system.toshinkyo.or.jp 127.0.0.1 ns.feishu.it.com 6.2 终端处置步骤操作优先级1. 检测执行上述检测命令确认是否中招最高2. 卸载旧版卸载受影响的 Apifox 版本最高3. 升级升级至官方安全版本 ≥ 2.8.19最高4. 杀进程终止所有 Electron / Apifox 相关进程高5. 清理本地存储清除 Apifox 应用数据Local Storage高6. 退出并重新登录使现有会话失效高 6.3 凭据轮换必须执行即使检测无输出只要在风险时间段内3月4日-22日使用过 Apifox也必须轮换以下凭据类别操作紧急程度SSH 密钥重新生成所有可能泄露的 SSH 密钥对更新到所有服务器 紧急Git 凭证撤销并重新生成 GitHub/GitLab Personal Access Token 紧急Apifox Token重置 Apifox 登录凭证退出所有设备登录 紧急云服务密钥轮换 AWS / GCP / Azure 访问密钥Access Key/Secret Key 紧急数据库密码重置可能泄露的数据库密码 重要内网密码重置堡垒机、VPN、内网系统密码 重要CI/CD 密钥更新 GitHub Actions Secrets、GitLab CI Variables 重要 6.4 主机深度排查Windows 系统# 检查 hosts 文件是否被篡改 type C:\Windows\System32\drivers\etc\hosts # 检查近期创建的可疑文件 Get-ChildItem -Path C:\ -Recurse -ErrorAction SilentlyContinue | Where-Object { $_.CreationTime -gt 2026-03-04 } # 检查异常网络连接 netstat -ano | findstr apifox.it.commacOS / Linux# 检查 SSH 目录异常访问 ls -la ~/.ssh/ cat ~/.ssh/authorized_keys # 检查是否有新增公钥 # 检查 shell 历史中的可疑命令 grep -i apifox.it.com ~/.bash_history ~/.zsh_history # 检查 crontab 持久化 crontab -l 6.5 横向排查检查项命令/方法SSH 登录日志/var/log/auth.log、/var/log/secureGit 仓库操作日志GitHub/GitLab Audit Log内网扫描行为防火墙日志中是否有异常端口扫描异常外联检查是否有到恶意域名的连接记录新创建的用户/SSH 密钥检查/etc/passwd、~/.ssh/authorized_keys第七章检测规则建议7.1 行为检测规则规则1Electron 进程访问敏感目录process: electron OR apifox AND file_access: ~/.ssh OR .git-credentials OR .bash_history OR .zsh_history规则2Electron 进程执行系统命令process: electron OR apifox AND process_spawn: bash OR sh OR curl OR ps OR tasklist OR whoami规则3异常网络请求http_request: domain: apifox.it.com OR cdn.openroute.dev OR upgrade.feishu.it.com uri_contains: /event/0/log OR /public/apifox-event.js规则4自定义请求头检测http_request: headers: af_uuid OR af_os OR af_apifox_user7.2 文件特征检测YARA 规则rule Apifox_Malicious_JS { meta: description Detect malicious Apifox JS with embedded RSA private key hash 1a68b09956e47c5617f87dc71c895131 strings: $rsa_key -----BEGIN PRIVATE KEY----- $url_pattern apifox.it.com $aes_param scryptSync condition: ($rsa_key and $url_pattern) or ($aes_param and filesize 50000) }第八章官方响应分析8.1 官方处理时间线时间官方动作评价3月23日发布 v2.8.19 修复版本JS 改为本地内置✅ 技术修复及时3月23日-25日未发布任何安全公告⚠️ 透明度不足3月25日安全研究员公开技术分析-3月25日晚间补发正式安全公告✅ 补发公告8.2 修复方案说明Apifox v2.8.19 的修复方案是将原本动态加载的 JS 文件改为本地内置打包彻底切断在线加载攻击路径。这意味着即使 CDN 或网络链路再次被污染客户端也不会加载远程恶意代码。Web 版本和私有化部署版本自始至终不受影响。第九章长期防护建议9.1 开发工具安全建议说明优先级启用 Electron sandbox对于 Electron 应用严格启用沙箱参数高锁定 CDN 资源版本使用带版本号的 URL避免加载最新资源高使用 SRI 校验子资源完整性校验确保加载的 JS 未被篡改中本地打包替代 CDN关键资源内置到安装包不动态加载高9.2 供应链管理建议说明优先级官方渠道下载禁止从第三方镜像站、网盘下载开发工具最高软件来源白名单仅允许从官方域名下载和更新高依赖完整性校验建立工具安装包的哈希校验机制中9.3 终端防护建议说明优先级EDR 部署监控 Electron 进程异常行为访问 .ssh、执行命令高开发者终端隔离开发者终端与生产环境网络隔离高最小权限原则开发人员 SSH 密钥不应直接用于生产服务器高定期凭据轮换建立 SSH 密钥、Git Token 定期轮换机制中9.4 网络防护建议说明优先级恶意域名封禁在 DNS、防火墙层永久封禁已知恶意域名高出站流量监控监控开发者终端的出站流量识别异常外联高HTTPS 流量检测部署 TLS 解密设备检测加密流量中的恶意内容中9.5 应急响应准备建议说明建立开发者工具安全事件响应流程明确发现投毒后的处置步骤定期演练凭证轮换确保能够在短时间内批量轮换 SSH 密钥、云凭证开发工具资产清单记录团队使用的开发工具及版本便于快速排查第十章总结10.1 事件总结Apifox 投毒事件是一起典型的供应链投毒 开发工具定向攻击攻击者利用Electron 安全配置缺陷未启用 sandboxCDN 资源可被篡改通过 CDN 节点污染或链路劫持多阶段加密载荷分发RSA 私钥加密 AES 加密回传内存驻留低频 Beacon30min~3h 随机间隔隐蔽性强官方响应延迟修复后 2 天未发公告被曝光后才承认10.2 攻击趋势研判本次 Apifox 投毒事件与近期 LiteLLM 供应链攻击、Trivy 投毒事件形成呼应表明针对开发工具和开源基础设施的供应链攻击正在成为主流威胁。攻击者的目标从最终用户转向开发者因为开发者拥有更高的系统权限开发者掌握代码仓库和服务器访问凭证攻破一个开发者可横向移动至整个企业内网防御建议 将开发工具纳入企业安全资产管理建立开发者终端安全基线实施最小权限原则并定期进行供应链安全演练。附录附录A参考链接白帽酱Apifox 供应链投毒攻击完整技术分析慢雾安全监测报告Apifox 官方安全公告补发CSDN速查你的Apifox可能被投毒ChainCatcher 报道区块链周刊Apifox遭供应链投毒18天附录B样本哈希汇总文件MD5SHA-256正常 apifox-app-event-tracking.min.jsa709773362581f4db2f2328e05214e2-恶意 apifox-app-event-tracking.min.js1a68b09956e47c5617f87dc71c895131-二阶段 payload示例-2da86746.js随机文件名附录C检测命令速查表平台检测命令说明WindowsSelect-String -Path $env:APPDATA\apifox\Local Storage\leveldb\* -Pattern rl_mc,rl_headers -ListPowerShellWindowsfindstr /S /I /C:rl_mc /C:rl_headers %APPDATA%\apifox\Local Storage\leveldb\*CMDmacOSgrep -arlE rl_mcrl_headers ~/Library/Application\ Support/apifox/Local\ Storage/leveldb附录D封禁域名完整列表apifox.it.com cdn.openroute.dev upgrade.feishu.it.com system.toshinkyo.or.jp ns.feishu.it.com附录E版本对照表版本状态说明 2.8.19❌ 受影响风险窗口期内3月4日-22日使用的版本2.8.19✅ 安全2026年3月23日发布JS 改为本地内置≥ 2.8.19✅ 安全已修复漏洞报告结束本报告由安全响应中心编写整合了公开的技术分析与安全监测数据。如有任何问题或需要进一步的技术支持请联系安全团队。重要提醒 本报告包含的域名和 URL 仅用于安全分析目的请勿在非安全测试环境中访问。

更多文章