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, 流量监控, 网络入侵检测系统, 逆向工具