uborkar/Malware-Detection-and-Classification

GitHub: uborkar/Malware-Detection-and-Classification

基于机器学习的 Windows 恶意软件检测系统,通过静态分析 PE 文件特征实现恶意与良性文件的自动分类。

Stars: 0 | Forks: 0

# 恶意软件检测与分类 ## 📌 项目简介 本项目旨在使用**机器学习**技术检测和分类 Windows 可执行文件(`.exe`)。通过**静态分析**和**基于模式的学习**,系统能够识别文件是**恶意软件 (Malware)** 还是**良性文件 (Benign)**。 该工具采用 Python 后端和简单的 Web UI 构建,展示了进行实时网络安全分析的实用方法。它可以作为一个基础模型,后续可扩展为企业级安全工具,或与杀毒软件及威胁情报系统进行集成。 ## 🧪 主界面 提供一个简洁、极简的 UI,用户可以在此上传 `.exe` 文件以检测是否存在恶意软件。

## 🚨 预测结果 扫描完成后,系统会立即返回结果: - **MALWARE**(如果检测到威胁) - **BENIGN**(如果文件安全) ### 🚨 恶意软件

### ✅ 良性文件

## ⚙️ 安装与设置 ### ✅ 使用 Conda(推荐) ``` # 步骤 1:创建 virtual environment conda create -n malware_detector python=3.10 # 步骤 2:激活环境 conda activate malware_detector # 步骤 3:克隆仓库 git clone https://github.com/uborkar/Malware-Detection-and-Classification.git cd Malware-Detection-and-Classification # 步骤 4:安装依赖 pip install -r requirements.txt ``` ## 📦 Python 依赖项 | 包名 | 用途 | | -------------- | --------------------------------------------- | | `Flask` | 后端 Web 框架 | | `scikit-learn` | ML 模型 (Random Forest) | | `pandas` | 数据处理与操作 | | `numpy` | 数值计算 | | `joblib` | 保存和加载 ML 模型 | | `pefile` | 从 `.exe` 文件中提取静态特征 | | `werkzeug` | 在 Flask 中安全地处理文件名 | 使用以下命令安装所有依赖: ``` pip install flask scikit-learn pandas numpy joblib pefile werkzeug ``` ## 🗂️ 目录结构 ``` Malware-Detection-System/ ├── app/ # Core application logic │ ├── feature_extractor.py # Feature extraction from .exe files │ └── predict_malware.py # Prediction function / wrapper │ ├── scripts/ # Scripts used for training or testing │ ├── train_model.py # Model training script (if applicable) │ └── create_dataset.py # Dataset preparation script │ ├── models/ # Stored trained models │ ├── classifier.pkl │ └── malware_model.pkl │ ├── data/ # Input datasets for training/testing │ ├── dataset.csv │ ├── PE_Dataset_Label.csv │ └── sample_dataset.csv │ ├── templates/ # HTML templates for Flask UI │ └── index.html │ ├── uploads/ # Temporary uploaded .exe files │ ├── fake_malware.exe │ └── notepad.exe │ ├── static/ # (Optional) for future CSS or JS │ ├── app.py # Main Flask server ├── requirements.txt # List of Python packages └── README.md # Project documentation ``` ## 🚀 运行应用程序 在本地启动 Web 应用程序: ``` python app.py ``` 然后在浏览器中访问以下地址打开应用程序: ``` http://127.0.0.1:5000/ ``` ## 🛠️ 技术栈 | 层级 | 使用的工具 | | ------------- | ------------------------------------ | | Frontend | HTML, CSS | | Backend | Python, Flask | | ML 框架 | scikit-learn (Random Forest) | | 文件解析 | pefile (Python PE Parser) | | 托管环境 | Localhost (Flask Server) | ## 🚧 计划中的改进 - 添加威胁情报 API(VirusTotal、Hybrid Analysis) - 扩展对 ELF 和 Mach-O 二进制文件(Linux/macOS)的支持 - 使用 Docker 进行部署以提升安全性 - 添加高级可视化功能以进行特征分析 - 构建用于多用户访问的身份验证模块
标签:Apex, Flask, Python, 云安全监控, 后端开发, 多模态安全, 无后门, 机器学习, 逆向工具, 静态分析