ursuswh-metamorphic/D-NIPS_NT106
GitHub: ursuswh-metamorphic/D-NIPS_NT106
这是一个分布式网络入侵检测系统,通过机器学习和规则引擎实现实时流量监控与异常检测。
Stars: 3 | Forks: 2
# 实时数据包嗅探与异常检测系统,集成分布式网络入侵检测(D-NIDS)
这是一个集成了分布式网络入侵检测系统(D-NIDS)的实时数据包监控系统。它在分布式客户端捕获实时网络流量,使用机器学习检测异常,并通过集中式的基于 Suricata 的规则引擎确认威胁。
## 项目概述
该系统提供去中心化和可扩展的入侵检测功能,利用:
- 客户端节点的实时边缘异常检测
- 集中式服务器上基于 Suricata 规则的验证
- 用于实时告警可视化的 PySide6 仪表盘
- 加密通信与数据库持久化
## 系统架构
```
D-NIDS/
├── Client/ # Packet sniffing, feature extraction, ML detection
├── Dashboard/ # GUI visualization using PySide6 + Flask API
├── Server/ # Suricata-based IDS + PostgreSQL storage
├── net_pro/ # Optional network utilities
├── generated-files/ # CSS and UI assets
├── run_client.sh # Launch client node
├── run_server.sh # Launch Suricata server
├── run_das.sh # Launch dashboard
├── run_all.sh # Orchestrator for full system
└── requirements.txt # Python dependencies
```
### 客户端功能
- 通过 `pcap`/`dpkt` 捕获流量
- 提取特征:数据包长度、时间差、IP地址、端口、流
- 使用 `IsolationForest`(scikit-learn)进行异常检测
- 通过 TCP 发送 JSON 告警(使用 AES 加密)
- 丰富的命令行日志记录和可选的 PySide6 图形界面
### 仪表盘功能
- 使用 PySide6 和 Qt Designer 构建的图形用户界面
- 通过 Flask API 与客户端通信
- 显示数据包摘要、异常分数和告警历史
### 服务器功能
- 接收来自客户端的加密异常报告
- 将 JSON 转换为 PCAP 进行深度检查
- 对可疑流量进行基于 Suricata 规则的检测
- 生成包含告警严重性的 HTML 报告
- 将日志存储在 PostgreSQL 中
- 针对高严重性告警发送电子邮件通知
## 安全性
- 使用 Diffie-Hellman 密钥交换建立安全会话
- 使用带随机初始向量的 AES-256-CBC 对称加密
- 使用消息长度前缀的 TCP 套接字帧
## 示例场景
### 场景 1 – 多网络监控
部署在不同网络区域的客户端连接到服务器,并流式传输加密的异常事件。
### 场景 2 – DDoS ICMP 检测
服务器通过 Suricata 识别 ping 洪泛攻击并触发实时电子邮件告警。
## 部署说明
### 前置条件
- Python 3.7
- PostgreSQL 13+
- Suricata IDS
- Linux 操作系统双启动版本
- PySide6 - 最新版本
### 安装
```
pip install -r requirements.txt
```
### 运行系统
```
./run_all.sh # Start all components
./run_server.sh # Start server
./run_client.sh --interface eth0 # Start client
./run_das.sh # Start dashboard
```
## 代码仓库
GitHub: https://github.com/ursuswh-metamorphic/D-NIPS_NT106
## 演示
要查看项目的操作流程,可以在此处观看演示视频:
[](https://drive.google.com/drive/folders/1vw7LXJQ3Ick8RxU8MWXLfjgqUCHScUJQ?usp=drive_link)
要查看项目的操作流程,可以在此处观看演示视频:
[](https://drive.google.com/drive/folders/1vw7LXJQ3Ick8RxU8MWXLfjgqUCHScUJQ?usp=drive_link)标签:Apex, GUI仪表板, Homebrew安装, Metaprompt, Python编程, Suricata规则引擎, 入侵检测系统, 分布式架构, 加密通信, 告警可视化, 威胁情报, 安全数据湖, 客户端-服务器模型, 开发者工具, 异常检测, 数据库持久化, 机器学习, 测试用例, 网络安全, 边缘计算, 逆向工具, 隐私保护