NPNLong/DREBIN
GitHub: NPNLong/DREBIN
一款基于 DREBIN 方法的 Android 恶意软件检测器,使用 Linear SVM 提供可解释的静态分析结果,配备 React 仪表板和 Windows 桌面应用。
Stars: 0 | Forks: 0
# DREBIN 恶意软件检测器
DREBIN 恶意软件检测器是一款面向研究的 Android 恶意软件扫描器,其灵感来自
Arp 等人 (NDSS 2014) 提出的 DREBIN 方法。它从 APK
或 DREBIN 风格的特征文件中提取静态特征,
使用 Linear SVM 对其进行分类,并返回
可解释的判定结果,展示哪些特征影响了决策。
该项目包含一个 FastAPI 后端、一个 React/Vite 仪表板,以及一个用于 Windows 的
Electron 桌面封装程序。
## 下载
下载最新的 Windows 安装程序:
[DREBIN Malware Detector Setup 1.0.0.exe](https://github.com/NPNLong/DREBIN/releases/download/v1.0.0/DREBIN-Malware-Detector-Setup-1.0.0.exe)
## 功能
- 使用 DREBIN 特征组 S1-S8 进行静态 Android 恶意软件检测。
- 可解释的 Linear SVM 输出,带有加权特征贡献。
- 支持 APK 文件或 DREBIN 特征文本文件的文件上传扫描。
- 支持粘贴特征列表的文本扫描。
- 包含指标、特征集贡献和权重的模型遥测仪表板。
- 桌面应用的本地下载监视器。
- 使用 PyInstaller 和 Electron Builder 的 Windows 安装程序构建流水线。
## 技术栈
| 层级 | 技术 |
| --- | --- |
| 后端 | Python, FastAPI, scikit-learn, androguard |
| 前端 | React, TypeScript, Vite, framer-motion |
| 桌面端 | Electron, PyInstaller, Electron Builder |
## 仓库结构
```
DREBIN/
|-- backend/
| |-- app/ # API, training, dataset parsing, model code
| |-- data/ # local datasets, ignored by Git
| |-- models/ # trained models and metrics, ignored by Git
| |-- desktop_server.py # packaged backend entrypoint
| |-- drebin-backend.spec # PyInstaller config
| `-- requirements.txt
|-- docs/
| `-- DESKTOP_BUILD.md # Windows desktop build instructions
|-- examples/ # small feature-list samples for manual scans
|-- frontend/
| |-- electron/ # Electron main process
| |-- public/ # icons and static assets
| |-- src/ # React application
| |-- package.json
| `-- package-lock.json
|-- scripts/
| `-- build-windows-app.ps1
|-- .gitignore
`-- README.md
```
## 前置条件
- Python 3.10 或更高版本。
- Node.js 20 或更高版本。
- npm。
- 用于桌面打包的 Windows PowerShell。
## 后端设置
在仓库根目录下执行:
```
cd backend
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install --upgrade pip
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
```
在启动 API 之前训练模型:
```
.\.venv\Scripts\python.exe -m app.train
```
启动后端:
```
.\.venv\Scripts\python.exe -m uvicorn app.main:app --reload --port 8000
```
API 可在 `http://127.0.0.1:8000` 访问。
## 前端设置
在仓库根目录下打开第二个终端:
```
cd frontend
npm install
npm run dev
```
Web 应用可在 `http://localhost:5173` 访问。Vite 会将 `/api` 请求代理
到 `http://localhost:8000`。
## 数据集和模型文件
大型数据集和训练好的模型文件已被 Git 刻意忽略。
支持的数据集目录结构:
```
backend/data/
|-- feature_vectors/ # one feature file per sample
`-- sha256_family.csv # malware labels
```
```
backend/data/
|-- malware/*.apk
`-- benign/*.apk
```
```
backend/data/
`-- drebin-215-dataset-5560malware-9476-benign.csv
```
训练过程会将文件输出到 `backend/models/`,包括 `model.joblib` 和
`metrics.json`。
## API Endpoint
| 方法 | Endpoint | 描述 |
| --- | --- | --- |
| GET | `/api/health` | 后端健康状况与模型就绪状态 |
| GET | `/api/model/info` | 模型指标和特征集元数据 |
| GET | `/api/model/weights` | 按绝对影响力排序的特征权重 |
| POST | `/api/scan` | 扫描上传的 APK 或特征文本文件 |
| POST | `/api/scan/text` | 扫描粘贴的特征文本 |
| GET | `/api/monitor/status` | 桌面下载监视器状态 |
| POST | `/api/monitor/start` | 启动本地下载监控 |
| POST | `/api/monitor/stop` | 停止本地下载监控 |
| GET | `/api/monitor/events` | 读取监视器事件 |
## 桌面端构建
请参阅 [docs/DESKTOP_BUILD.md](docs/DESKTOP_BUILD.md) 了解 Windows 桌面构建
工作流。
在仓库根目录下的快速构建命令:
```
.\scripts\build-windows-app.ps1
```
安装程序将生成在 `frontend/release/` 目录中。
## 扫描示例
`examples/` 目录包含小型的特征列表示例,可以直接上传
或粘贴到扫描器中,无需提供 APK 文件。
## 注意事项
- 本项目仅供研究、教育和防御性分析使用。
- 检测质量取决于用于训练的数据集。
- 请勿提交真实的恶意软件样本、私有数据集、虚拟环境、
构建输出、安装程序或训练好的模型文件。
## 参考文献
D. Arp, M. Spreitzenbarth, M. Hubner, H. Gascon, and K. Rieck, "Drebin: Effective
and Explainable Detection of Android Malware in Your Pocket", NDSS 2014.
标签:Android安全, Apex, AV绕过, FastAPI, React, Syscalls, URL发现, 云安全监控, 安全检测, 机器学习, 漏洞挖掘, 逆向工具, 静态分析