Jz8Root/crx-forensics
GitHub: Jz8Root/crx-forensics
Chrome 扩展静态分析 CLI,通过解析 CRX 包、评估权限组合、扫描可疑代码模式并检测 Chrome Debugger Protocol 滥用来生成风险裁决。
Stars: 0 | Forks: 0
# crx-forensics
Chrome 扩展程序 (`.crx`) 包的静态分析 CLI。旨在帮助恶意软件分析师、威胁猎手和安全研究人员快速评估浏览器扩展程序是否在执行其声称的操作。
解析 CRX2/CRX3 格式,分析 manifest,扫描 JavaScript 中的可疑模式,检测嵌入的秘密,标记 Chrome Debugger Protocol 滥用,提取硬编码的 URL,并生成风险裁决。
## 安装
```
pip install -e .
```
或者从克隆的仓库安装:
```
git clone https://github.com/Jz8Root/crx-forensics.git
cd crx-forensics
pip install -e .
```
## 使用方法
分析一个 `.crx` 文件:
```
crx-forensics analyze extension.crx
```
分析一个解压后的扩展目录:
```
crx-forensics scan-dir path/to/unpacked/
```
用于脚本处理的 JSON 输出:
```
crx-forensics analyze --json extension.crx
```
## 检查内容
- **Manifest** — 权限评分,危险组合 (MITM、cookie 窃取、CDP 接管),已弃用的 manifest v2,非官方更新 URL,内容脚本注入范围
- **代码模式** — eval、Function 构造函数、键盘按键监听器、DOM 注入、表单抓取、动态脚本加载、WebSocket 连接、剪贴板访问、obfuscator.io 签名
- **混淆** — 每个 JS 文件的 Shannon 熵(阈值:6.0)
- **秘密** — RSA 私钥、AWS 访问密钥、GitHub token、Stripe 密钥、Slack token、硬编码密码
- **Chrome Debugger Protocol** — chrome.debugger API 调用,CDP 域命令 (Runtime.evaluate、Network.enable、Input.dispatch、Fetch.enable、Page.captureScreenshot)。这是一个关键的区别点 — CDP 滥用是 Cloud9 RAT 和 VenomSoftX 等高级间谍扩展程序的标志
- **网络** — 硬编码的 URL 和域名、原始 IP 地址、可疑 TLD (.tk、.xyz 等)
- **风险评分** — 加权分数 (0-100) 及裁决:
- **MALICIOUS** (60+):强烈指标,如 IP + 混淆 + 凭据窃取
- **SUSPICIOUS** (40-59):值得调查的模式
- **LOW RISK** (0-39):正常或预期的模式
## 退出代码
| 代码 | 含义 |
|------|---------|
| 0 | 无严重或高危发现 |
| 1 | 存在高危发现 |
| 2 | 存在严重发现 |
| 3 | 输入错误 (无效的 CRX,缺少 manifest) |
适用于 CI 流水线 — 如果扩展存在严重发现,则阻止部署。
## 校准
针对 24 个真实世界的扩展进行了测试,包括已知恶意软件样本、加密钱包 (MetaMask、TronLink)、广告拦截器 (uBlock Origin、AdBlock Plus)、密码管理器 (Bitwarden) 和开发者工具 (React DevTools、Postman)。
在 MALICIOUS 级别下零误报。已知安全的扩展评为 LOW RISK。
## 局限性
这是一个静态分析工具,而不是沙箱。它不会:
- 执行扩展代码
- 将代码与已知的恶意软件签名进行核对(如 AV 引擎)
- 验证 URL/域名是否确属恶意
- 替代训练有素的分析师的人工审查
风险评分是一个分流信号,而不是最终裁决。被标记为 SUSPICIOUS 的扩展可能是完全合法的 — 请审查各项具体发现。
## 开发
```
pip install -e ".[dev]"
pytest
ruff check crx_forensics/ tests/
```
## 参考
该工具的灵感来源于已发表的关于恶意 Chrome 扩展的研究:
- DataSpii — 通过浏览器扩展进行的大规模数据收集 (2019)
- The Great Suspender — 合法扩展通过所有权转移被劫持 (2021)
- ChromeLoader — 使用恶意扩展的广告软件活动 (2022)
- Cloud9 RAT — 使用带有 CDP 滥用的 Chrome 扩展的僵尸网络 (Zimperium, 2022)
- VenomSoftX — 通过扩展进行的加密货币剪贴板劫持 (Avast, 2022)
- Rilide — 伪装成浏览器扩展的银行凭据窃取器 (Trustwave, 2023)
## 许可证
MIT — 参见 [LICENSE](LICENSE)。
问题与讨论:[GitHub Issues](https://github.com/Jz8Root/crx-forensics/issues)
标签:CDP滥用, Chrome Debugger Protocol, Chrome扩展分析, CRX2, CRX3, CRX静态分析, manifest.json, Object Callbacks, Python, 代码混淆检测, 凭据提取, 威胁情报, 安全合规, 密钥泄露, 开发者工具, 恶意扩展, 恶意脚本检测, 数据泄露, 文档结构分析, 无后门, 权限分析, 网络代理, 网络安全, 网络钓鱼, 逆向工具, 隐私保护, 风险评分