SAI-VISHNU-M-S/Malware-Analyzer

GitHub: SAI-VISHNU-M-S/Malware-Analyzer

基于随机森林算法对 Windows PE 文件进行恶意软件分类检测,并结合 Gemini API 自动生成威胁情报报告的 AI 安全分析系统。

Stars: 0 | Forks: 0

# 基于 AI 的 Random Forest 恶意软件检测系统 ## 概述 本项目实现了一个基于 AI 的恶意软件检测系统,该系统使用 Machine Learning 将 Windows Portable Executable (PE) 文件分类为**良性**或**恶意**。 该系统使用基于提取的 PE 文件元数据特征训练的 **Random Forest Classifier**。此外,还集成了一个生成式 AI 模块,用于生成简短的威胁情报报告,解释检测到的恶意软件特征。 ## 功能 - 使用 Random Forest 算法进行恶意软件分类 - PE header 和结构特征分析 - 二元分类: - 0 → 良性 - 1 → 恶意 - 高精度检测 - 混淆矩阵评估 - 使用 Gemini API 生成 AI 威胁说明 ## Machine Learning 模型 ### 使用的算法 **Random Forest Classifier** Random Forest 是一种 ensemble 学习算法,它结合了多个决策树以提高分类准确性并减少过拟合。 ### 输入特征 该模型使用从可执行文件中提取的数字 PE 元数据特征。 重要特征包括: - SectionsLength - SectionMaxEntropy - DirectoryEntryDebugSize - DirectoryEntryImportSize - PE 结构元数据特征 ## 数据集处理 预处理 pipeline: 1. 加载恶意软件数据集 2. 移除非数字属性 3. 分离特征和目标标签 4. 将数据拆分为训练集和测试集 5. 使用 Joblib 保存处理后的矩阵 训练/测试集划分: - 训练数据:80% - 测试数据:20% ## 模型性能 ### 准确率 **Random Forest 准确率:99.13%** ### 混淆矩阵 ``` Predicted Benign Malicious Actual Benign 972 31 Actual Malware 3 2917 ``` ### 结果解释 - 正确分类的良性文件:**972** - 错误地将良性文件分类为恶意软件:**31** - 错误地将恶意文件分类为良性:**3** - 正确检测到的恶意文件:**2917** 该模型实现了非常低的假阴性率,这对于恶意软件检测系统非常重要。 ## 混淆矩阵可视化 ![混淆矩阵](https://raw.githubusercontent.com/SAI-VISHNU-M-S/Malware-Analyzer/main/confusion_matrix.png) ## AI 威胁情报模块 本项目包含一个 AI 助手,它可以: 1. 加载训练好的 Random Forest 模型 2. 查找正确检测到的恶意软件样本 3. 提取可疑的 PE 特征 4. 将结构异常发送至 Gemini API 5. 生成 SOC 风格的威胁摘要 示例输出: ``` The file shows abnormal PE structural characteristics indicating possible packing or obfuscation techniques commonly used by malware. The detected anomalies suggest the executable requires further analysis. ``` ## 项目结构 ``` Malware-Detection/ │ ├── dataset_malwares.csv │ ├── eda.py │ └── Exploratory Data Analysis │ ├── matrix.py │ └── Feature selection and dataset preparation │ ├── rf_model.pkl │ └── Trained Random Forest model │ ├── matrices.pkl │ └── Saved train/test matrices │ ├── feature_names.pkl │ └── Feature list │ ├── ai_assistant.py │ └── AI threat report generation │ └── confusion_matrix.png └── Model evaluation result ``` ## 安装说明 克隆仓库: ``` git clone https://github.com/SAI-VISHNU-M-S/Malware-Analyzer.git cd Malware-Analyzer ``` 安装所需的库: ``` pip install pandas numpy scikit-learn matplotlib seaborn joblib requests ``` ## 使用说明 ### 1. 执行探索性数据分析 ``` python eda.py ``` ### 2. 准备数据集矩阵 ``` python matrix.py ``` ### 3. 训练 Random Forest 模型 (使用训练 notebook/script) ### 4. 生成 AI 威胁报告 设置 Gemini API key: Linux: ``` export GEMINI_API_KEY="your_api_key" ``` Windows: ``` set GEMINI_API_KEY=your_api_key ``` 运行: ``` python ai_assistant.py ``` ## 使用的技术 - Python - Scikit-learn - Random Forest - Pandas - NumPy - Matplotlib - Seaborn - Joblib - Google Gemini API ## 未来改进 - 集成实时 PE 文件扫描 - 添加基于深度学习的恶意软件分类 - 包含动态恶意软件分析 - 开发基于 Web 的安全仪表板 - 使用 SHAP/LIME 提高可解释性 ## 作者 AI & ML 项目
标签:Apex, 云安全监控, 人工智能, 机器学习, 用户模式Hook绕过, 逆向工具, 随机森林, 静态分析