Laiba-Laiba/Malware-analysis-platform
GitHub: Laiba-Laiba/Malware-analysis-platform
一个结合静态分析与机器学习的全栈恶意软件检测平台,在不执行文件的前提下对可执行文件进行恶意或良性分类。
Stars: 0 | Forks: 0
# 恶意软件分析平台
这是一个全栈 Web 应用程序,用于对上传的文件执行**静态恶意软件分析**,并利用机器学习将可执行文件(.exe)**分类**为恶意或良性。
## 🔍 概述
该平台允许用户通过 Web 界面上传任何文件,并对其运行静态分析——在**不执行**文件的情况下——检查其结构并提取潜在的风险指标。特别是对于可执行文件,提取的静态特征将经过训练好的机器学习模型处理,将文件分类为**恶意**或**良性**。
该项目的目标是将实用的 **Web 开发**(全栈架构、REST API、文件处理)与**网络安全**概念(静态分析、恶意软件分类、安全文件处理)结合起来。
## ✨ 功能
- 📁 **多文件类型上传** — 支持对不同文件类型进行静态分析,而不仅仅是可执行文件
- 🧠 **基于机器学习的分类** — Random Forest 和 XGBoost 模型基于提取的静态特征将 `.exe` 文件分类为恶意或良性
- 🔗 **REST API 后端** — 处理文件上传,触发分析 pipeline,并返回结构化的结果
- 🖥️ **交互式仪表板** — 简洁的基于 React 的 UI,用于上传文件和查看分析结果
- 🔒 **安全的文件处理** — 在运行任何分析之前,上传的文件将作为不受信任的输入进行验证和安全处理
## 🛠️ 技术栈
| 层级 | 技术 |
|---|---|
| Frontend | React JS |
| Backend | Node.js, Express.js |
| 机器学习 / 分类 | Python, Random Forest, XGBoost |
| API | REST |
| 文件处理 | Multer / 安全上传验证 |
## ⚙️ 工作原理
1. **上传** — 用户从 React 前端上传文件。
2. **API 请求** — 文件通过 REST API endpoint 发送到 Node.js/Express 后端。
3. **静态分析** — 后端在不执行文件的情况下提取其静态特征(例如,header 信息、节区、导入、字符串)。
4. **分类(针对 `.exe` 文件)** — 提取的特征被传递给训练好的 Random Forest / XGBoost 模型,该模型预测文件是恶意的还是良性的。
5. **结果** — 分类和分析摘要被返回到前端并显示在仪表板上。
## 📂 项目结构
```
malware-analysis-platform/
├── client/ # React frontend
│ ├── src/
│ └── public/
├── server/ # Node.js/Express backend
│ ├── routes/ # REST API endpoints
│ ├── uploads/ # Temporary secure file storage
│ └── ml/ # ML model integration (Random Forest / XGBoost)
└── README.md
```
## 🚀 入门指南
```
# 克隆 repository
git clone https://github.com/Laiba-Laiba/internship.git
cd malware-analysis-platform
# 安装 backend 依赖
cd server
npm install
# 安装 frontend 依赖
cd ../client
npm install
# 运行 backend
cd ../server
npm start
# 运行 frontend
cd ../client
npm start
```
## 🎯 动机
恶意软件检测工具通常依赖于动态(行为)分析,这需要执行潜在有害的文件——这本身就是一种安全风险。本项目探索了一种替代方案:执行**静态分析**以在**不执行**的情况下评估风险,然后应用机器学习来自动化并提高可执行文件分类的准确性。
## 📌 未来改进
- 将分类支持从 `.exe` 扩展到其他可执行格式
- 添加更细粒度的威胁分类(例如,木马、勒索软件、广告软件)
- 使用更大、更多样化的训练数据集来提高模型的准确性
- 添加用户身份验证和分析历史记录
## 👩💻 作者
**Laiba Nasir**
网络安全本科生,FAST-NUCES
[GitHub](https://github.com/Laiba-Laiba/internship) · [LinkedIn](https://linkedin.com/in/laiba-nasir-339954318)
标签:Apex, DAST, GNU通用公共许可证, MITM代理, Node.js, Python, React, Syscalls, 云安全监控, 恶意软件分析, 无后门, 机器学习, 网络测绘, 逆向工具, 静态分析