Yang-Nankai/ExPGuard
GitHub: Yang-Nankai/ExPGuard
ExPGuard 是一个针对 Chrome 扩展的静态分析框架,通过数据流与污点分析检测隐私泄露和权限提升漏洞。
Stars: 0 | Forks: 0
# ExPGuard: Extension Privilege Guard
ExPGuard 是一个为 Chrome 扩展构建的综合性静态分析框架,旨在检测隐私泄露和安全漏洞。通过构建精确的执行模型并分析数据流,ExPGuard 能够追踪敏感信息在扩展脚本和页面之间的传播。
## 功能
基于其强大的静态分析引擎,ExPGuard 提供:
- **Extension 建模** (`src/model` / `src/extension`):自动构建 background script、content script 和 extension page 的模型。
- **控制流与数据流** (`src/cfg` / `src/def-use`):高精度的过程内和过程间控制流图(CFG)生成,以及到达定值 / def-use 分析。
- **作用域与作用域树分析** (`src/scope`):针对 JavaScript 作用域的上下文感知分析(例如闭包、ES6 块级作用域、`let`/`const`)。
- **污点分析引擎** (`src/taint`):使用既定的污点策略约束,追踪从各种 extension source 到关键 sink 的敏感数据。
- **图可视化** (`src/graph`):生成中间表示(AST、CFG)的 `.dot` 文件。
## 前置条件
- **Node.js**:(推荐 `v18.x` 或更高版本)
- **TypeScript**:项目依赖 `npm` 和 `tsc` 进行编译。
- **Python**(可选):如果需要运行 `requirements.txt` 中提到的外部启发式脚本。
## 安装与构建
1. **克隆代码库:**
```
git clone https://github.com/Yang-Nankai/ExPGuard.git
cd ExPGuard
```
2. **安装项目依赖:**
```
npm install
```
3. **构建项目:**
```
npx tsc
# 或者直接使用 `tsc`,如果 TypeScript 已全局安装
```
**注意:** 请注意,如果是您第一次进行编译,请将整个 src/transformation 文件夹复制到 dist/ 文件夹中,并添加相关的 JS 库代码,以防止在运行时出错。
## 用法
ExPGuard 提供了一个基于 commander 的命令行界面。
要运行分析器,您可以对编译后的脚本使用 node,或者直接对源文件使用 ts-node。
**基本语法**:
```
node dist/main.js analyze --type --input [options]
```
**选项**:
- --type \:(必填)输入 extension 的格式。有效选项包括 CRX(已打包的 extension)、DIR(未打包的 extension 目录)和 WEB(Chrome Web Store 在线 extension)。
- --input \:(必填)目标 extension 的路径(.crx 文件、本地目录路径或 URL)。
- --out \:保存分析结果的目录。(默认:results)
- --id \:限制分析或显式传入自定义 extension ID。
- --version \:指定 extension 的版本。
**示例:**
1. 分析未打包的 extension 目录:
```
node dist/main.js analyze --type=DIR --input=./samples/privilege_execution/ --out=./output/privilege_execution --id=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa --version=1.0
```
2. 分析已打包的 CRX 文件:
```
node dist/main.js analyze --type CRX --input ./samples/code_injection/example.crx --out=./output/code_injection --id=caofmekclcabakldafkjbfkkmcebndal --version=1.2
```
3. 分析 CWS 在线 extension:
```
node dist/main.js analyze --type WEB --input=https://chromewebstore.google.com/detail/sponsorblock-for-youtube/mnjggcdmjocbbbhaepdhchncahnbgone --out=./output/cws_example --id=mnjggcdmjocbbbhaepdhchncahnbgone --version=6.1.5
```
标签:Chrome插件, DNS重绑定攻击, MITM代理, TypeScript, 云安全监控, 安全插件, 浏览器安全, 自动化攻击, 逆向工具, 静态分析