AakarGupta-coder/Sentinel-NIDS
GitHub: AakarGupta-coder/Sentinel-NIDS
一个使用 Python 和 Scapy 构建的实时网络入侵检测系统,通过 Tkinter GUI 仪表盘监控网络流量并检测 SQL 注入和 XSS 攻击。
Stars: 0 | Forks: 0
# 🛡️ Sentinel — 实时网络入侵检测系统
**Sentinel** 是一个功能完备的网络入侵检测系统 (NIDS),其现代化且交互式的仪表盘完全使用 Python 构建。它捕获并分析实时网络流量,利用复杂的基于特征的检测引擎来识别常见的 Web 威胁,例如 **SQL 注入**和**跨站脚本攻击 (XSS)**。
## 🌌 核心功能
### 📡 实时网络嗅探
- 使用 **Scapy** 捕获实时网络数据包。
- 过滤流量以专注于相关协议 (HTTP/HTTPS)。
- 允许监控特定网络接口或针对特定 IP 地址/URL。
- 提供 **启动/停止控制** 以便按需监控。
### 🎯 基于特征的威胁检测
- 针对 SQL 注入和 XSS 漏洞进行**多重威胁分析**。
- 使用正则表达式的**高级解析逻辑**,以识别各种攻击变种。
- 将流量实时分类为“恶意”或“良性”。
### 🖥️ 交互式仪表盘
- **实时活动日志**带有颜色编码的警报,可即时感知威胁。
- **检测历史**表格,用于查看过往事件及源/目标详细信息。
- 由 **Matplotlib** 驱动的**动态图表**,展示威胁分布和整体流量分类。
- **实时“速度计”**显示当前的上传和下载速度。
### 🔬 深度分析与模拟
- 选择任意检测到的入侵以启用“更多信息”功能。
- 显示特定威胁的详细信息,包括其影响和缓解策略。
- 提供**伪实时攻击模拟**,以可视化方式演示所检测到的 payload 的逐步影响。
### ⚙️ 专业的 UI/UX
- 流畅、现代的界面,支持**浅色和深色模式**。
- 响应式布局,可适应不同的窗口大小。
- 详细的“网络信息”窗口,包含实时图表和统计数据。
- 启动时带有加载动画的**启动画面**。
## 🌐 技术栈
| 层级 | 使用的技术 |
|---|---|
| **核心应用程序** | Python 3.x |
| **GUI 框架** | Tkinter, ttk (用于现代小部件) |
| **数据包嗅探** | Scapy |
| **数据可视化** | Matplotlib |
| **系统监控** | psutil |
| **检测逻辑** | 正则表达式 (re 模块) |
| **并发处理** | threading |
## 🗂️ 项目结构
由于这是一个单文件应用程序,其结构全部包含在 `main.py` 脚本中。关键的类包括:
```
main.py
├── class SQLInjectionParser() # Detection logic for SQLi
├── class XSSParser() # Detection logic for XSS
├── class NIDSEngine() # Manages parsers and threat data
├── class TrafficSniffer() # Handles packet capture with Scapy
└── class NIDSApp() # Main Tkinter application class
```
## 🛠️ 入门指南
### 📦 前置条件
请确保您已安装以下软件:
- Python (v3.8 或更高版本)
- pip
- Git
**重要提示:** 此应用程序需要管理员/root 权限才能捕获网络数据包。
### 🚀 应用程序设置
1. 克隆仓库:
git clone
cd
2. 安装所需的 Python 包:
pip install -r requirements.txt
*(您需要创建一个包含以下内容的 `requirements.txt` 文件):*
matplotlib
psutil
scapy
3. **安装 Npcap(仅限 Windows 用户):**
* 从 [https://nmap.org/npcap/](https://nmap.org/npcap/) 下载并安装 Npcap。
* 在安装过程中,请务必勾选 **“Install Npcap in WinPcap API-compatible Mode.”** 的复选框。
4. 使用管理员/root 权限运行应用程序:
**在 Windows 上:**
- **以管理员身份**打开命令提示符或 PowerShell。
- 导航到项目目录并运行:
python main.py
**在 Linux/macOS 上:**
sudo python main.py
## 🧪 使用方法
1. 从下拉菜单中**选择一个网络接口**。
2. (可选)输入特定的**目标地址**(如 `google.com` 或一个 IP)以过滤流量。
3. 点击 **“Start Sniffing”** 以开始实时分析。
4. 生成一些网络流量(例如,浏览网页)。
5. 要测试检测功能,请使用 **“Manual Payload Analysis”** 部分输入已知的恶意字符串。
6. 点击 **“Detection History”** 中的任何检测到的入侵,以启用 **“More Info”** 按钮,并查看详细的分析和模拟。
## 📄 许可证
本项目仅用于教育目的。严禁未经授权将其用于攻击目标。
© 2025 Aakar Gupta。保留所有权利。
## 👨💻 开发者
**Aakar Gupta**,计算机工程专业学生
标签:CISA项目, DOE合作, Python, Scapy, SQL注入检测, XSS检测, 无后门, 桌面端UI, 流量监控, 网络入侵检测系统, 逆向工具