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**
该模型实现了非常低的假阴性率,这对于恶意软件检测系统非常重要。
## 混淆矩阵可视化

## 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绕过, 逆向工具, 随机森林, 静态分析