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, 云安全监控, 安全插件, 浏览器安全, 自动化攻击, 逆向工具, 静态分析