Apifox 外部 JS 文件被篡改的核心原理解读和了解

Apifox 外部 JS 文件被篡改的核心原理,是攻击者劫持官方 CDN 动态加载脚本,并利用 Electron 渲染进程直接暴露的 Node.js API(未严格启用 Sandbox 沙箱),实现本地敏感信息窃取与远程控制。

攻击链路全景:

  • 投毒入口:攻击者篡改官方 CDN 上的埋点脚本 apifox-app-event-tracking.min.js,文件从正常 34KB 膨胀至 77KB,注入高度混淆恶意代码。
  • 远程载荷加载:被篡改脚本动态连接恶意域名 apifox.it.com(C2 服务器),下发加密第二阶段载荷,通过内置私钥解密后执行。
  • 权限突破:Electron 未启用 Sandbox,渲染进程可直接调用 fschild_process 等 Node.js 原生 API,突破浏览器安全边界。
  • 数据窃取:读取 SSH 密钥、Git 凭证、命令行历史、环境变量等高敏文件,静默上报至攻击者服务器。
  • 持久化与横向移动:维持后门、创建启动项,尝试在内网扩散。

关键技术成因

  • CDN 动态加载缺陷:客户端启动时远程加载脚本,未做完整性校验(如数字签名、哈希校验),为篡改提供入口。
  • Electron 安全配置不当:关闭 Sandbox 并暴露 Node.js API,使前端 JS 具备系统级权限,恶意代码可直接操作本地资源。
  • 缺乏运行时防护:无行为审计、网络访问白名单等机制,攻击长期潜伏未被发现

修复与加固

  • 架构升级:2.8.19 版本起移除在线 JS 动态加载,改为本地内置打包,彻底切断 CDN 投毒路径。
  • 安全增强:启用严格 Sandbox、限制 Node.js API 暴露、实施脚本签名验证与本地哈希校验。
  • 应急处置:升级至最新版、全面轮换所有凭证、加固 hosts 阻断恶意域名、排查本地持久化后门。

防护核心在于:本地打包优先、强制签名校验、严格限制渲染进程权限。

posted @ 2026-04-07 10:39  Panax  阅读(32)  评论(0)    收藏  举报