KartikPahadiya/ai-malware-family-classifier
GitHub: KartikPahadiya/ai-malware-family-classifier
基于 XGBoost 和静态二进制分析的端到端恶意软件家族分类系统,可将可疑 Windows 可执行文件自动归类到九个已知恶意软件家族。
Stars: 0 | Forks: 0
# 🛡️ AI 恶意软件家族分类系统
这是一个端到端的恶意软件家族分类系统,对可疑的 Windows 可执行文件(`.exe`)进行**静态二进制分析**,并使用 **XGBoost** 将它们分类到不同的恶意软件家族中。
基于 **Python、Streamlit、Capstone、PEFile 和 XGBoost** 构建。
## 🚀 演示
### 上传界面

### 检测结果

## 📌 概述
该项目允许用户上传可疑的 Windows 可执行文件(`.exe`),并通过多阶段 pipeline 对其进行分析:
1. **反汇编可执行文件**
2. **提取汇编 opcode 特征**
3. **生成特征向量**
4. **使用 XGBoost 进行恶意软件家族分类**
5. **展示预测结果及置信度评分**
该系统可预测 **9 种恶意软件家族**之一。
## 🧠 Pipeline 架构
```
Suspicious EXE
↓
PE Parsing (pefile)
↓
Disassembly (Capstone)
↓
ASM File
↓
Opcode Frequency Extraction
↓
Feature Vector (68+ features)
↓
XGBoost Classifier
↓
Malware Family Prediction
```
## ✨ 功能
* 上传可疑的 `.exe` 文件
* 解析 Windows PE 格式
* 使用 Capstone 反汇编可执行节
* 提取汇编 opcode 频率
* 将恶意软件分类到 9 个家族中
* 显示预测置信度
* 可视化最高 opcode 频率
* 交互式 Streamlit UI
## 🦠 支持的恶意软件家族
| 类别 | 家族 | 类型 |
| ----- | -------------- | ------------------ |
| 1 | Ramnit | Worm |
| 2 | Lollipop | Adware |
| 3 | Kelihos_ver3 | Backdoor |
| 4 | Vundo | Trojan |
| 5 | Simda | Backdoor |
| 6 | Tracur | TrojanDownloader |
| 7 | Kelihos_ver1 | Backdoor |
| 8 | Obfuscator.ACY | Obfuscated Malware |
| 9 | Gatak | Backdoor |
## 🛠 技术栈
### 机器学习
* XGBoost
* Scikit-learn
* Pandas
* NumPy
### 恶意软件分析
* Capstone 反汇编引擎
* PEFile
### 部署 / UI
* Streamlit
### 语言
* Python
## 📂 项目结构
```
ai-malware-family-classifier/
│
├── app.py
├── disassembler.py
├── feature_extractor.py
├── predictor.py
├── xgboost_model.joblib
├── requirements.txt
├── assets/
│ ├── home.png
│ └── result.png
└── README.md
```
## ⚙️ 安装说明
克隆 repository:
```
git clone https://github.com/KartikPahadiya/ai-malware-family-classifier.git
cd ai-malware-family-classifier
```
安装依赖项:
```
pip install -r requirements.txt
```
运行 Streamlit 应用:
```
streamlit run app.py
```
## 📊 特征工程
该模型使用从汇编指令中提取的基于 opcode 频率的特征。
示例:
* `mov`
* `call`
* `jmp`
* `cmp`
* `push`
* `xor`
* `add`
* `lea`
附加特征:
* 汇编代码行数
* ASM 文件大小
特征总数:**68+**
## 🤖 模型训练
使用的算法:
**XGBoost 多分类 Classifier**
训练 pipeline:
* 加载 dataset
* 拆分为训练/测试集
* 训练 XGBoost
* 使用 Joblib 保存训练好的模型
模型性能:
* 涵盖 9 个恶意软件家族的多分类
* 使用分类报告评估准确率
## ⚠ 局限性
* 本项目仅执行**静态分析**
* 加壳/混淆的恶意软件可能会逃避检测
* 模型**不对良性文件进行分类**
* 假定输入为可疑的可执行文件
标签:Apex, Kubernetes, Python, XGBoost, 云资产清单, 无后门, 机器学习, 逆向工具, 逆向工程, 静态二进制分析