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** 构建。 ## 🚀 演示 ### 上传界面 ![上传页面](https://raw.githubusercontent.com/KartikPahadiya/ai-malware-family-classifier/main/assets/upload.png) ### 检测结果 ![预测结果](https://raw.githubusercontent.com/KartikPahadiya/ai-malware-family-classifier/main/assets/result.png) ## 📌 概述 该项目允许用户上传可疑的 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, 云资产清单, 无后门, 机器学习, 逆向工具, 逆向工程, 静态二进制分析