abduljalilmusagambo-wq/Androguard_Malware_Detector

GitHub: abduljalilmusagambo-wq/Androguard_Malware_Detector

基于 DREBIN 数据集和机器学习集成方法的 Android 恶意软件检测 Web 应用,通过权限特征对 APK 进行静态分析分类。

Stars: 0 | Forks: 0

# DroidScan — Android 恶意软件检测 Web 应用 ### 毕业设计 | Abuja 大学 ## 项目简介 本项目是一个简单的 Android 恶意软件检测器,使用了来自 DREBIN 数据集的真实数据。它基于 Android 权限模式将应用分类为**良性**或**恶意**。 该应用训练了三个机器学习模型,并使用多数投票集成方法: - Random Forest - Naive Bayes - Decision Tree 训练数据来自: - `drebin-215-dataset-5560malware-9476-benign.csv` - 来源 URL:https://www.kaggle.com/datasets/shashwatwork/android-malware-dataset-for-machine-learning?select=drebin-215-dataset-5560malware-9476-benign.csv 这为你的学术项目提供了真实的数据集参考,而不仅仅是合成的生成数据。 ## 项目结构 ``` . ├── app.py ├── train_models.py ├── drebin-215-dataset-5560malware-9476-benign.csv ├── android_permissions.csv ├── models/ │ ├── random_forest.pkl │ ├── decision_tree.pkl │ ├── naive_bayes.pkl │ └── metadata.json └── index.html ``` ## 数据集信息 - 数据集名称:**DREBIN-215** - 恶意样本数:**5560** - 良性样本数:**9476** - 标签列:`class`(`S` 代表可疑/恶意,`B` 代表良性) - 本项目使用真实的 DREBIN 数据集和经过预处理的权限特征文件 `android_permissions.csv`。 ## 设置与运行 ### 1. 安装依赖 ``` pip install -r requirements.txt ``` ### 2. 训练模型 ``` python train_models.py ``` 训练脚本会直接读取 `android_permissions.csv`,因此如果该文件已经存在,则无需重新生成数据。 ### 3. 在本地启动 Web 应用 ``` python app.py ``` ### 4. 在浏览器中打开 ``` http://localhost:5000 ``` ## 部署到 Render 1. 将此仓库推送到 GitHub。 2. 在 Render 中创建一个新的 Web Service。 3. 连接你的 GitHub 仓库,然后使用: - 构建命令:`pip install -r requirements.txt` - 启动命令:`gunicorn app:app` 4. Render 将安装依赖并在端口 `5000` 上启动 Flask 应用。 仓库中包含了 `Procfile` 和 `render.yaml`,以简化 Render 部署。 ## 功能 - **APK 上传**:上传真实的 `.apk` 文件,提取权限并进行分类。 - **手动检测**:手动选择权限并获取即时预测结果。 - **指标**:查看模型结果、特征重要性和评估指标。 ## API Endpoints | 方法 | Endpoint | 描述 | |--------|----------|-------------| | GET | `/api/metadata` | 返回模型指标和特征重要性 | | POST | `/api/predict` | 上传 `.apk` 文件进行分析 | | POST | `/api/predict-manual` | 发送 JSON 权限进行预测 | ### 手动预测示例 ``` POST /api/predict-manual { "app_name": "SuspiciousApp", "permissions": { "SEND_SMS": 1, "READ_SMS": 1, "RECEIVE_SMS": 1, "INTERNET": 1, "READ_CONTACTS": 1 } } ``` ## 工作原理 1. `generate_dataset.py` 从 DREBIN 数据集中提取权限特征,或创建一个合成数据集。 2. `train_models.py` 在权限数据集上训练三个分类器。 3. `app.py` 加载已保存的模型,并使用它们对新的 APK 或手动输入的权限进行分类。 4. 最终决策基于所有三个分类器的多数投票结果。 ## 学术使用说明 - README 中已正确引用了数据集来源。 - 项目文件夹中包含了真实的 DREBIN CSV 文件。 - 模型是基于从 DREBIN 数据集派生的权限特征进行训练的。
标签:Android安全, Apex, Python, 云安全监控, 后端开发, 多模态安全, 无后门, 机器学习, 逆向工具, 静态分析