sohail0974/Malware-Detection-and-Analysis-System
GitHub: sohail0974/Malware-Detection-and-Analysis-System
基于随机森林分类器的静态 PE 文件头分析工具,通过检测加壳与加密等操作造成的结构异常来识别 Windows 恶意软件,并生成可解释的威胁报告。
Stars: 0 | Forks: 0
# MDAS - 恶意软件检测与分析系统 🛡️
一个基于机器学习的 Web 应用程序,通过分析可移植可执行 (PE) 文件头来检测 Windows 可执行文件中的恶意软件。
**在线 Web 应用程序:https://malware-detection-and-analysis-system.streamlit.app/**
## 功能特点
- **PE 文件头分析**:在不执行代码的情况下,提取并分析 Windows 可执行文件的结构特征。
- **机器学习检测**:使用训练好的随机森林分类器 将文件分类为良性或恶意。
- **交互式 Web 界面**:使用 Streamlit 构建,方便上传文件并进行实时分析。
- **威胁情报报告**:提供详细的“可解释 AI”说明,准确解释是哪些结构异常触发了检测。
- **安全的文件处理**:安全的临时文件处理,并自动清理内存。
## 工作原理
恶意软件开发者经常使用加壳工具、加密器和混淆器来隐藏其恶意代码。这些工具在数学上改变了可执行文件的底层蓝图。本系统通过分析 8 个特定的 PE 文件头特征来捕捉这些变形:
- `DebugSize` 和 `DebugRVA`
- `ExportSize` 和 `ExportRVA`
- `IatVRA`(导入地址表)
- `NumberOfSections`
- `SizeOfStackReserve`
- `ResourceSize`
基于这些结构特征,随机森林模型能够识别出文件是否表现出黑客工具集特有的数学指纹。
## 安装说明
1. 克隆仓库:
```
git clone https://github.com/sohail0974/Malware-Detection-and-Analysis-System.git
cd MDAS
```
2. 创建虚拟环境:
```
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
```
3. 安装依赖项:
```
pip install -r requirements.txt
```
## 使用说明
1. 运行 Streamlit 应用程序:
```
streamlit run app.py
```
2. 打开您的 Web 浏览器并导航到提供的本地 URL(通常是 `http://localhost:8501`)
3. 上传一个 Windows 可执行文件(.exe 或 .dll)
4. 查看分析结果和威胁情报报告
## 项目结构
```
MDAS/
├── app.py # Main Streamlit application
├── Malware_Model.joblib # Trained machine learning model
├── requirements.txt # Python dependencies
├── Model.ipynb # Model training notebook
├── main.ipynb # Data analysis notebook
├── dataset_malwares.csv # Training dataset
├── data_file.csv # Additional data file
└── README.md # Project documentation
```
## 模型信息
检测模型是基于从已知恶意软件和良性可执行文件数据集中提取的 PE 文件头特征进行训练的。该模型能够识别出通常与恶意软件相关的结构性异常,包括:
- 被剥离的调试信息
- 异常的节数量
- 非标准的内存分配模式
- 缺失或可疑的资源目录
- 可执行文件中存在导出表
## 安全注意事项
- **文件安全性**:应用程序仅分析 PE 文件头,不会执行上传的文件
- **临时存储**:上传的文件会被临时存储以供分析,并在分析后自动删除
- **本地处理**:所有分析均在本地执行——文件不会被发送到外部服务
## 环境要求
- Python 3.7+
- Streamlit
- pefile
- pandas
- scikit-learn
- joblib
## 免责声明
本工具仅供教育和研究目的使用。虽然它可以帮助识别潜在的恶意文件,但不应将其作为生产环境中唯一的安全措施。请始终使用多重安全防护,并在关键应用中咨询网络安全专业人士。
## 开源许可证
本项目基于 MIT 许可证授权 - 详见 [LICENSE](LICENSE) 文件。
## 致谢
- 使用 `pefile` 库进行 PE 文件头解析
- 由 scikit-learn 提供机器学习能力支持
- 使用 Streamlit 创建交互界面
标签:Apex, Conpot, DNS 反向解析, Kubernetes, PE文件分析, Python, Streamlit, Windows安全, XAI, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 加壳识别, 可解释AI, 威胁情报, 开发者工具, 异常检测, 文件上传检测, 无后门, 机器学习, 网络安全, 自定义DNS解析器, 访问控制, 逆向工具, 逆向工程, 随机森林, 隐私保护, 静态分析