Pantelis-Karagiannis/THESIS
GitHub: Pantelis-Karagiannis/THESIS
一个自动化的 Android 恶意软件分析与检测框架,通过 MobSF 静态分析提取特征并结合多种机器学习算法实现恶意应用的自动分类。
Stars: 0 | Forks: 0
# Android 恶意软件分析与检测框架
### 静态分析 • 机器学习 • Python • MobSF
## 📖 概述
本项目展示了一个自动化的 Android 恶意软件分析与检测框架,这是我作为帕特雷大学(University of Patras)毕业论文的一部分而开发的。
该框架利用 MobSF 自动化进行 Android 应用程序的静态分析,提取与安全相关的特征,将分析结果存储在 MongoDB 中,并应用机器学习技术将 Android 应用程序分类为良性或恶意软件。
该项目展示了一个完整的端到端恶意软件分析流水线,从 APK 处理到自动化的恶意软件分类。
## 🛠️ 使用的技术
- **编程语言:** Python
- **恶意软件分析:** MobSF (Mobile Security Framework)
- **容器化:** Docker
- **API 通信:** MobSF REST API
- **数据库:** MongoDB
- **数据处理:** Pandas, NumPy
- **机器学习:** Scikit-learn, Random Forest, XGBoost, PyTorch TabNet
- **可视化:** Matplotlib, Seaborn
## 🔄 项目工作流
该框架遵循以下自动化工作流:
```
APK Files
│
▼
MobSF Static Analysis
│
▼
Feature Extraction
│
▼
MongoDB Storage
│
▼
Dataset Generation
│
▼
Machine Learning Models
(Random Forest • XGBoost • TabNet)
│
▼
Performance Evaluation
(Accuracy • Confusion Matrix • Classification Report)
```
## 🚀 核心功能
- ✅ 使用 MobSF 进行自动化的 APK 静态分析
- ✅ 从分析报告中自动提取特征
- ✅ 基于 MongoDB 存储提取的特征
- ✅ 为机器学习生成数据集
- ✅ 使用多种 ML 算法进行恶意软件分类
- ✅ 特征重要性分析
- ✅ 生成混淆矩阵 (Confusion Matrix)
- ✅ 生成分类报告 (Classification Report)
- ✅ 自动保存模型
- ✅ 支持二分类和多分类的恶意软件分类
## 📂 仓库结构
| 文件 | 描述 |
|------|-------------|
| `analyze_apks.py` | 使用 MobSF 自动化分析 APK,并通过 REST API 获取分析结果。 |
| `extract_features_from_mongodb.py` | 提取并预处理存储在 MongoDB 中的恶意软件特征,以供机器学习使用。 |
| `train_model.py` | 训练并评估用于恶意软件分类的 Random Forest、XGBoost 和 TabNet 模型。 |
## 🎯 项目目标
本项目的主要目标是:
- 开发一个自动化的 Android 恶意软件分析流水线。
- 从 Android 应用程序中提取有意义的安全特征。
- 构建适用于机器学习的数据集。
- 比较多种用于恶意软件检测的机器学习算法。
- 使用标准的分类指标评估模型性能。
- 展示一个端到端的自动化恶意软件分析框架。
# 📊 实验结果
## 准确率比较

## 分类性能

## 特征重要性

标签:Android恶意软件分析, Apex, BSD, Caido项目解析, MobSF, Python, 云安全监控, 数据挖掘, 无后门, 机器学习, 请求拦截, 逆向工具, 静态分析