SuperAPI AI 工具集

reversing-browser-extensions

安全与审计

查看项目

更新于 10-16 03:04

技能介绍

用途:逆向并安全审计浏览器扩展,找出扩展中“特权一侧信任非特权一侧”的位置。扩展是运行在用户每个访问页面旁的特权小程序,其安全性几乎都围绕边界展开:内容脚本运行在不可信网页内容旁,却能调用持有真实权限(cookies、tabs、网络,有时还有本地进程)的后台上下文。

主要能力:解包并阅读 manifest;分析内容脚本与后台/服务工作线程之间的消息传递;识别权限泄露与数据外传。

使用方式:

  1. 获取代码并读 manifest。扩展以 CRX(Chrome)或 XPI(Firefox)分发,二者都是 ZIP 压缩包,解压阅读。可从商店的 CRX 端点拉取已发布扩展,或直接从浏览器配置文件的 Extensions 目录取。先读 manifest 再读代码,关注:manifest_version(MV2 后台页、webRequest 阻塞,对比 MV3 后台服务工作者、declarativeNetRequest、禁止远程代码);permissions 与 host_permissions(如 <all_urls>、tabs、cookies、webRequest、debugger、nativeMessaging、scripting);content_scripts 注入页面范围;externally_connectable;web_accessible_resources;content_security_policy。
  2. 分析信任边界:Page↔内容脚本通过 DOM 与 window.postMessage 泄露;内容脚本→后台服务工作者经由 chrome.runtime 消息;onMessageExternal/externally_connectable;native messaging 到本地宿主二进制。对每个特权能力问:什么输入到达它,来自多远(仅后台、内容脚本还是任意页面)。
  3. 需去混淆时,把 bundle 交给 reversing-obfuscated-javascript 处理后再对照边界审查;并在浏览器扩展 DevTools 中调试运行时消息传递。

适用场景:分析可疑、权限过高或未知扩展行为;审计 manifest 与消息传递的权限泄露;调查内容脚本如何向页面暴露后台/原生能力;还原扩展实际行为与商店描述是否一致。

限制与不适用:纯代码阅读式的 JS 去混淆应使用 reversing-obfuscated-javascript;恶意扩展的引爆与 IOC 提取应使用 analyzing-malware;测试扩展交互的 Web 应用应使用 testing-web-applications;嵌入浏览器的桌面应用应使用 testing-thick-clients。需警惕的要点:权限与功能不成比例、onMessage 未校验发送者、postMessage 无 origin 检查、远程代码/eval、数据外传、原生消息输入未校验、更新与供应链风险。商店审核较浅且可绕过,所有权变更可能让原本干净的扩展一次更新即变恶意。