poojakumaricodex/Android-Malware-Detection-Using-ML-and-Static-analysis
GitHub: poojakumaricodex/Android-Malware-Detection-Using-ML-and-Static-analysis
基于静态分析的 Android 恶意软件检测系统,结合机器学习模型与 Web 仪表盘实现实时风险预测与可视化。
Stars: 0 | Forks: 0
# Android Malware 检测 使用 ML 和 Static analysis
# 🛡️ Android 恶意软件检测系统



## 📖 项目概述
**Android 恶意软件检测系统** 是一个全栈 AI 应用,旨在无需执行 APK 文件(静态分析)即可对其进行分析。它提取关键特征——如权限、意图过滤器和 API 调用——并将它们输入到训练好的机器学习模型中,以预测应用是**安全**还是**恶意软件**。
该系统配备了一个现代化的交互式 Web 仪表盘,可可视化风险概率、可疑指标和模型性能基准。
## ✨ 主要功能
* **🚀 实时扫描:** 上传后立即分析 APK 文件。
* **🧠 先进 AI 模型:** 使用 **XGBoost、随机森林、SVM 和神经网络** 进行高精度分类。
* **📊 交互式仪表盘:**
* **风险概率:** 显示置信度得分的环形图。
* **特征分析:** 突出显示最可疑权限的条形图。
* **性能基准:** 显示混淆矩阵和模型比较图表。
* **🎨 现代 UI:** 毛玻璃设计,带有动态反馈(安全 vs. 危险模式)。
* **🔍 静态分析:** 无需运行恶意代码的安全分析方法。
## 🛠️ 技术栈
* **后端:** Python、FastAPI、Uvicorn
* **机器学习:** Scikit-Learn、XGBoost、Pandas、NumPy
* **前端:** HTML5、CSS3、JavaScript、Chart.js
* **数据处理:** Joblib(模型持久化)、Androguard
## 安装设置
快速启动(本地)
1. 创建并激活虚拟环境:
```bash
python -m venv venv
source venv/bin/activate
```
2. 安装依赖:
```bash
pip install -r requirements.txt
```
注意:
- `androguard` 是可选的,但推荐用于更丰富的特征提取。
- 在某些系统上,androguard 可能需要 lxml;如有需要,请安装系统依赖项。
3. 准备数据集:
- 将APK放入文件夹:`data/apks/benign/*.apk` 和 `data/apks/malicious/*.apk`
- 运行:
```bash
python scripts/prepare_dataset.py --benign data/apks/benign --malicious data/apks/malicious --out outputs/features.parquet
```
4. 训练模型:
```bash
python app/train.py --features outputs/features.parquet --out outputs --model xgb
```
5. 评估:
```bash
python app/evaluate.py --features outputs/features.parquet --model outputs/xgb_pipeline.joblib --out outputs
```
6. 运行 API:
```bash
uvicorn app.server:app --reload --port 8000
```
- 发送 POST 请求到 `/predict`(multipart file=apk)会返回恶意软件概率和主要贡献特征。
## 📸 截图
## 📂 项目结构
```
D13/
├── app/
│ ├── server.py # Main FastAPI backend server
│ ├── extractor.py # Logic to extract features from APKs
│ ├── features.py # Vectorizer to convert features to numbers
│ ├── train.py # Script to train the main model
│ └── evaluate.py # Script to generate confusion matrix
├── data/ # Folder for storing APKs (Not uploaded to GitHub)
├── outputs/
│ ├── xgb_pipeline.joblib # Trained AI Model
│ ├── vectorizer.joblib # Feature Vectorizer
│ ├── confusion.png # Model Accuracy Chart
│ └── model_comparison.png # Comparison of ML Models
├── scripts/ # Utility scripts
├── index.html # Main Web Dashboard
├── requirements.txt # List of required libraries
└── README.md # Project Documentation
---
```
## 📂 项目结构
```
D13/
├── app/
│ ├── server.py # Main FastAPI backend server
│ ├── extractor.py # Logic to extract features from APKs
│ ├── features.py # Vectorizer to convert features to numbers
│ ├── train.py # Script to train the main model
│ └── evaluate.py # Script to generate confusion matrix
├── data/ # Folder for storing APKs (Not uploaded to GitHub)
├── outputs/
│ ├── xgb_pipeline.joblib # Trained AI Model
│ ├── vectorizer.joblib # Feature Vectorizer
│ ├── confusion.png # Model Accuracy Chart
│ └── model_comparison.png # Comparison of ML Models
├── scripts/ # Utility scripts
├── index.html # Main Web Dashboard
├── requirements.txt # List of required libraries
└── README.md # Project Documentation
---
```
标签:AI应用, Androguard, Android恶意软件检测, Apex, APK分析, AV绕过, Chart.js, FastAPI, Python, Scikit-Learn, XGBoost, 云安全监控, 交互式仪表盘, 实时扫描, 意图过滤器, 支持向量机, 数据可视化, 无后门, 机器学习, 权限分析, 模型对比, 混淆矩阵, 玻璃态设计, 目录枚举, 神经网络, 移动安全, 网络安全, 逆向工具, 随机森林, 隐私保护, 静态分析, 风险概率