Maqsood02/AI---powered-malware-analysis-
GitHub: Maqsood02/AI---powered-malware-analysis-
一个基于机器学习模型(随机森林、SVM、神经网络)的恶意软件静态分析平台,提供文件上传、特征提取、检测分类及可视化仪表板功能。
Stars: 0 | Forks: 0
# 基于人工智能的恶意软件分析引擎
## 1. 完整系统架构
系统采用受微服务启发的三层架构:
1. **前端(表示层):** 使用普通 HTML/CSS/JS,采用深色霓虹网络安全主题。处理用户交互、仪表板渲染及通过 REST API 上传文件。
2. **后端 Node.js API(应用层):** Express.js 服务器,负责 JWT 身份验证、基于角色的访问控制(RBAC)、文件上传处理(通过 Multer)以及将扫描请求路由到 ML 引擎。连接 MongoDB 实现数据持久化。
3. **Python ML 引擎(分析层):** 包含训练好的机器学习模型(随机森林、SVM、神经网络)的 Flask/FastAPI 服务。从 Node.js 后端接收文件,执行静态/动态特征提取,对恶意软件进行分类,并返回置信度评分和风险等级。
## 2. 文件夹结构
```
/AI-PMA
├── frontend/
│ ├── index.html # Landing page
│ ├── dashboard.html # Main Dashboard UI
│ ├── css/
│ │ └── style.css # Cybersecurity styling
│ └── js/
│ ├── main.js # Core logic & interactions
│ └── api.js # Fetch requests to backend
├── backend/
│ ├── server.js # Express server entry point
│ ├── package.json
│ ├── .env
│ ├── middleware/
│ │ ├── auth.js # JWT middleware
│ │ └── upload.js # Multer config
│ ├── models/
│ │ ├── User.js # Mongoose schema
│ │ └── ScanReport.js
│ ├── controllers/
│ │ └── scanController.js
│ └── routes/
│ ├── authRoutes.js
│ └── scanRoutes.js
├── ml_engine/
│ ├── app.py # FastAPI/Flask server for ML predictions
│ ├── requirements.txt
│ ├── train.py # Script for model training
│ ├── extract_features.py # Static/Dynamic feature extraction
│ └── models/
│ └── random_forest.pkl# Saved ML models
└── README.md
```
## 6. MongoDB 模式设计
**用户集合:**
- `_id`:ObjectId
- `username`:字符串
- `email`:字符串(唯一)
- `passwordHash`:字符串
- `role`:字符串(枚举:'admin'、'user')
- `createdAt`:日期
**扫描报告集合:**
- `_id`:ObjectId
- `userId`:ObjectId(引用:用户)
- `filename`:字符串
- `fileHash`:字符串(SHA-256)
- `fileSize`:数字
- `status`:字符串(枚举:'Pending'、'Scanning'、'Completed'、'Failed')
- `malwareType`:字符串(例如 'Trojan'、'Ransomware'、'Benign')
- `confidenceScore`:数字(0-100)
- `riskLevel`:字符串('Low'、'Medium'、'High'、'Critical')
- `featuresExtracted`:对象
- `createdAt`:日期
**威胁日志集合:**
- `_id`:ObjectId
- `alertLevel`:字符串
- `description`:字符串
- `timestamp`:日期
## 7. API 端点
### 认证(Node.js)
- `POST /api/auth/register` - 创建新用户
- `POST /api/auth/login` - 认证并返回 JWT
### 扫描与报告(Node.js)
- `POST /api/scan/upload` - 上传文件(需要 JWT)
- `GET /api/scan/reports` - 获取用户的扫描历史
- `GET /api/scan/reports/:id` - 获取具体报告
### ML 引擎(Python - 内部)
- `POST /analyze` - 接收文件二进制/哈希,返回 `{"malwareType": "...", "confidence": 0.95, "risk": "High"}`
## 8. 认证流程
1. 用户向 `/api/auth/login` 提交凭据。
2. 后端验证哈希并生成包含用户 ID 和角色的 JWT。
3. 前端将 JWT 存储在 `localStorage` 或 `sessionStorage` 中。
4. 后续对受保护路由(如 `/api/scan/upload`)的请求在 `Authorization: Bearer ` 头中包含 JWT。
5. 后端 `auth.js` 中间件验证令牌。若有效,请求继续;否则返回 401 Unauthorized。
## 9. UI/UX 设计规范
- **主题:** 默认深色模式。背景:#0a0a0f,面板:#161622。
- **强调色:** 霓虹绿(#00ff00)用于安全/良性,霓虹红(#ff003c)用于威胁/严重,青色(#00f0ff)用于常规高亮和主要按钮。
- **字体:** 数据显示使用 'Inter' 或 'Roboto Mono',营造终端/黑客美学。
- **微动画:** 悬停时的发光效果,警报的平滑淡入淡出,扫描的动画进度条。
- **布局:** 侧边栏导航,顶部头部包含用户资料和全局搜索,主内容区域使用 CSS Grid 展示分析卡片。
## 10. 部署指南
- **前端:** 部署到 Vercel、Netlify,或通过 Nginx 静态提供。
- **后端(Node.js):** 部署到 Render、Heroku 或 AWS EC2,使用 PM2 管理。
- **数据库:** MongoDB Atlas(无服务器数据库)。
- **ML 引擎(Python):** 作为 Docker 容器部署到 AWS ECS、Google Cloud Run 或专用的 EC2 实例,以处理计算密集的特征提取。
## 11. 安装步骤(本地开发)
1. **克隆仓库:** `git clone <仓库地址>`
2. **后端:**
- `cd backend`
- `npm install`
- 创建 `.env` 文件(MONGO_URI、JWT_SECRET)
- `npm start`
3. **ML 引擎:**
- `cd ml_engine`
- `python -m venv venv`
- `source venv/bin/activate`(Windows 下为 `venv\Scripts\activate`)
- `pip install -r requirements.txt`
- `python app.py`
4. **前端:**
- 使用 Live Server 在浏览器中打开 `frontend/index.html`。
## 12. 未来增强功能
- 在隔离沙箱中实时动态分析(Cuckoo Sandbox 集成)。
- 使用 Airflow 实现上传新数据集时的自动化重训练管道。
- 集成 YARA 规则,在 ML 启发式分析基础上进行精确签名匹配。
- 集成 VirusTotal API 实现基线比较。
## 建议项目时间表(12 周)
- **第 1-2 周:** 需求分析、数据集收集(例如 Ember、Kaggle 恶意软件数据集)、UI 线框图设计。
- **第 3-5 周:** 前端开发(仪表板、上传界面)和 Node.js 后端 API 搭建。
- **第 6-8 周:** Python ML 引擎开发、特征提取脚本、模型训练和评估。
- **第 9-10 周:** 前端、Node.js 和 Python API 集成。端到端测试。
- **第 11 周:** 安全加固、优化、修复漏洞。
- **第 12 周:** 部署、最终演示准备、文档编写。
## 推荐库
- **Python:** `scikit-learn`(ML 模型)、`pandas` 和 `numpy`(数据处理)、`pefile`(PE 头部提取)、`FastAPI`(API)、`uvicorn`。
- **Node:** `express`、`mongoose`、`jsonwebtoken`、`bcryptjs`、`multer`(文件处理)、`cors`。
## 安全最佳实践
- **文件上传:** 切勿在 Node.js 服务器上执行上传的文件。临时存储在隔离的 `tmp` 目录中,或直接流式传输到 Python 引擎。
- **速率限制:** 防止 API 滥用和 DoS 攻击。
- **输入清理:** 清理所有输入以防止 NoSQL 注入。
- **CORS:** 在生产环境中限制允许的来源。
标签:AI安全, Apex, AV绕过, Chat Copilot, DAST, Express.js, FastAPI, Flask, GNU通用公共许可证, JWT认证, MITM代理, MongoDB, Multer, Node.js, Python, RBAC, 云安全监控, 分类引擎, 前端仪表盘, 后端开发, 多模态安全, 微服务架构, 恶意软件分析, 支持向量机, 数据可视化, 文件上传, 无后门, 暗色主题, 机器学习, 权限控制, 特征提取, 神经网络, 网络安全, 置信度评分, 请求拦截, 逆向工具, 随机森林, 隐私保护, 静态分析, 风险等级