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, 云安全监控, 后端开发, 多模态安全, 无后门, 机器学习, 逆向工具, 静态分析