WafaaRahmoune/Intrusion-Detection-System

GitHub: WafaaRahmoune/Intrusion-Detection-System

基于多种机器学习与深度学习模型的智能网络入侵检测系统,支持离线 PCAP 分析和实时流量嗅探,可检测并分类 20 种网络攻击。

Stars: 0 | Forks: 0

# 智能入侵检测系统 (IDS) ![Backend](https://img.shields.io/badge/Backend-Flask-000000?style=flat-square&logo=flask) ![Frontend](https://img.shields.io/badge/Frontend-React-20232A?style=flat-square&logo=react&logoColor=61DAFB) ![ML](https://img.shields.io/badge/ML%2FDL-XGBoost%20%7C%20LSTM%20%7C%20DNN-F7931E?style=flat-square) ![Accuracy](https://img.shields.io/badge/Accuracy-~97%25-34d399?style=flat-square) ![License](https://img.shields.io/badge/License-MIT-blue?style=flat-square) 一款智能入侵检测系统,结合 **7+ 种机器学习/深度学习模型**与元启发式特征优化(**PSO** 和 **Firefly**),能够检测并分类 **20 种网络攻击**。它可以分析来自 **PCAP 文件**或通过 **实时抓包**(Scapy)获取的流量,并在 NF-UQ-NIDS 数据集上达到了约 **97% 的准确率**。 ## 功能 - 检测并分类 **20 种攻击类型** - 支持对 **PCAP 文件**的离线分析与 **实时流量嗅探**(Scapy) - 提供 **7+ 种 ML/DL 模型**(XGBoost, AdaBoost, Random Forest, LSTM, DNN, ...) - 使用 **PSO** 和 **Firefly** 进行特征优化,使用 **PCA** 进行降维 - Web 仪表盘:上传、实时扫描、结果展示、攻击案例、历史/归档记录 - 带有邮箱验证的用户认证(JWT) - 内置助手 / 聊天机器人 ## 架构 ``` Intrusion-Detection-System/ ├── Back-end/ # Flask REST API │ ├── app.py # application entry point │ ├── routes.py # API endpoints │ ├── flow_utils.py # PCAP parsing, flow features, prediction │ ├── models.py # SQLAlchemy models (User, UploadedFile) │ ├── models/ # ML artifacts (feature scaler) │ ├── encoders/ # feature encoders │ ├── migrations/ # Alembic database migrations │ ├── requirements.txt │ └── .env.example # template for your secrets ├── frontend/ # React (Vite) single-page app │ └── src/ (Pages, Components, Styles, assets) └── README.md ``` ## 技术栈 - **后端:** Python, Flask, Flask-SQLAlchemy, Flask-JWT-Extended, Flask-Migrate (Alembic), Flask-Mail, Scapy, pandas, scikit-learn, XGBoost, joblib, PostgreSQL - **前端:** React, Vite, JavaScript, CSS ## 快速开始 ### 前置条件 - Python 3.10+ - Node.js 18+ - PostgreSQL ### 1. 后端 ``` cd Back-end python -m venv venv # Windows: venv\Scripts\activate # Linux / macOS: source venv/bin/activate pip install -r requirements.txt # 配置你自己的 secrets cp .env.example .env # then edit .env with your values python app.py # starts the API on http://localhost:5000 ``` 应用程序在首次运行时会自动创建数据库表。 也可以通过 `flask --app app db upgrade` 来执行数据库迁移。 ### 2. 前端 ``` cd frontend npm install npm run dev # starts the app on http://localhost:5173 ``` ## 配置 (.env) 所有密钥均从环境变量中读取,且**绝不提交到代码仓库**。 将 `Back-end/.env.example` 复制为 `Back-end/.env` 并填写以下内容: - `DATABASE_URL` : 你的 PostgreSQL 连接字符串 - `JWT_SECRET_KEY` : 一串较长的随机字符串 - `MAIL_USERNAME` / `MAIL_PASSWORD` : 一个 Gmail 地址和对应的 Gmail **应用密码** ## 数据集与模型 - 在 **NF-UQ-NIDS** 数据集(20 个攻击类别)上进行训练和评估。 - 模型包括:XGBoost, AdaBoost, Random Forest, LSTM, DNN;使用 **PSO** 和 **Firefly** 进行特征优化;使用 **PCA** 进行降维。 - 报告的性能:约 **97% 的准确率**。 - 注意:未提交大型的已训练模型权重文件;`Back-end/models/` 目录中仅包含轻量级的预处理产物。 ## 许可证 基于 MIT License 发布。详见 [LICENSE](LICENSE)。
标签:Apex, Flask, React, Syscalls, 入侵检测系统, 安全数据湖, 机器学习, 测试用例, 深度学习, 网络安全, 自定义脚本, 逆向工具, 隐私保护