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发现, 云安全监控, 安全检测, 机器学习, 漏洞挖掘, 逆向工具, 静态分析