CHAT12234/malware-pe-analysis

GitHub: CHAT12234/malware-pe-analysis

利用 XGBoost 和 SHAP 对 Windows PE Header 进行静态分析,实现恶意软件检测并提供模型可解释性的机器学习实验项目。

Stars: 0 | Forks: 0

# 使用 XGBoost & SHAP 分析恶意软件 PE Header ## 📌 实验简介 本实验构建了一个机器学习 pipeline,通过分析 Windows 文件的 **PE Header (Portable Executable)** 来检测恶意软件。该方法摒弃了传统的 signature,采用 **静态分析 (static analysis)** 从 PE Header 中提取结构特征,并训练分类模型以区分安全文件 (benign) 和恶意文件 (malware),旨在为科学论文 Deep Dive into Malware Analysis and Their Behavior Patterns: A Systematic Technical Review (https://www.researchgate.net/publication/399608091_Deep_Dive_into_Malware_Analysis_and_Their_Behavior_Patterns_A_Systematic_Technical_Review) 提供补充。 本项目的亮点在于集成了 **SHAP (Shapley Additive exPlanations)** 来解开“黑盒”模型,为 PE Header 中哪些特征在识别恶意软件时发挥最关键作用提供了透明的解释。 ## 🚀 主要功能 - **静态分析:** 无需执行文件即可分析 PE Header 结构,确保分析环境的绝对安全。 - **数据均衡:** 使用均衡的 EMBER 数据集子集,以消除模型的偏见 (bias)。 - **高性能分类:** 采用 **XGBoost** 算法,实现最优的准确率和处理速度。 - **可解释性 (XAI):** 集成 **SHAP** 以可视化每个特征的重要性,帮助分析专家深入理解模型做出预测的依据。 ## 📁 项目结构 ``` ├── src/ │ ├── experiments/ │ │ ├── train_parquet.py # Huấn luyện mô hình và đánh giá hiệu năng │ │ └── extract_features.py # Logic trích xuất đặc trưng từ file PE │ ├── prepare_real_ember.py # Tiền xử lý và cân bằng dữ liệu │ └── run_shap_analysis.py # Tính toán và vẽ biểu đồ giải thích SHAP ├── results/ # Lưu trữ các chỉ số đánh giá và Ma trận nhầm lẫn (Confusion Matrix) ├── docs/ # Lưu trữ biểu đồ phân tích SHAP ├── notebooks/ # Các file phân tích dữ liệu khám phá (EDA) ├── requirements.txt # Danh sách các thư viện cần thiết └── ember_1k_balanced.parquet # Tập dữ liệu PE Header đã cân bằng ``` ## 🛠️ 安装与设置 1. **克隆此仓库到本地:** git clone https://github.com/CHAT12234/malware-pe-analysis.git cd malware-pe-analysis 2. **创建虚拟环境(推荐):** python -m venv venv # 在 Windows 上激活: venv\Scripts\activate 3. **安装所需的依赖库:** pip install -r requirements.txt ## 💻 实验运行指南 ### 1. 训练与评估模型 运行训练脚本以检查模型的性能(Accuracy、F1-Score 并绘制混淆矩阵)。 ``` python src/experiments/train_parquet.py ``` ### 2. 解释性特征分析 (SHAP) 运行 SHAP 分析脚本,找出对分类结果影响最大的 PE Header 特征。 ``` python src/run_shap_analysis.py ``` ## 📊 预期结果 - **性能:** 模型取得了较高的 F1-Score,证明 PE Header 包含了大量用于识别恶意软件的重要信息。 - **解释:** 文件 `docs/shap_summary.png` 将展示哪些特征(例如:`NumberOfSections`、`Entropy`)是导致恶意软件分类决定的核心因素。 ## 🧠 执行流程 1. **数据收集:** 使用 EMBER 数据集。 2. **预处理:** 清洗数据并平衡标签(500 个安全样本 / 500 个恶意软件样本)。 3. **分类:** 在 PE Header 的静态特征上训练 XGBoost 模型。 4. **解释:** 应用 SHAP 值分析模型的决策机制。 *本项目出于恶意软件分析的实验目的而实施。*
标签:Apex, PE头分析, XGBoost, 云安全监控, 可解释AI, 机器学习, 逆向工具, 静态分析