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,渲染进程可直接调用
fs、child_process等 Node.js 原生 API,突破浏览器安全边界。 - 数据窃取:读取 SSH 密钥、Git 凭证、命令行历史、环境变量等高敏文件,静默上报至攻击者服务器。
- 持久化与横向移动:维持后门、创建启动项,尝试在内网扩散。
关键技术成因
- CDN 动态加载缺陷:客户端启动时远程加载脚本,未做完整性校验(如数字签名、哈希校验),为篡改提供入口。
- Electron 安全配置不当:关闭 Sandbox 并暴露 Node.js API,使前端 JS 具备系统级权限,恶意代码可直接操作本地资源。
- 缺乏运行时防护:无行为审计、网络访问白名单等机制,攻击长期潜伏未被发现
修复与加固
- 架构升级:2.8.19 版本起移除在线 JS 动态加载,改为本地内置打包,彻底切断 CDN 投毒路径。
- 安全增强:启用严格 Sandbox、限制 Node.js API 暴露、实施脚本签名验证与本地哈希校验。
- 应急处置:升级至最新版、全面轮换所有凭证、加固 hosts 阻断恶意域名、排查本地持久化后门。
防护核心在于:本地打包优先、强制签名校验、严格限制渲染进程权限。
作者:人参,每篇随笔皆原创(除非注明原作者的随笔),欢迎指正!

浙公网安备 33010602011771号