mehraniqbalgp/DSA-IDS-Project
GitHub: mehraniqbalgp/DSA-IDS-Project
基于C++和libpcap的轻量级实时网络入侵检测系统,集成SYN泛洪/端口扫描检测、规则引擎和现代Web仪表板。
Stars: 0 | Forks: 0
🛡️ IDS Guard — 网络入侵检测系统
一个使用 C++ 构建的实时 网络入侵检测系统,内置 HTTP 服务器和现代玻璃拟态 Web 仪表板。捕获实时网络流量,通过基于规则和行为分析来检测攻击,并通过基于浏览器的精美 GUI 展示所有信息。
## ✨ 功能特性 | 类别 | 详情 | |---|---| | **实时数据包捕获** | 使用 `libpcap` 在任意接口上实时嗅探网络流量 | | **攻击检测** | SYN Flood 检测、端口扫描检测、流量突发分析 | | **自定义规则引擎** | 定义基于关键字的检测规则,支持严重级别 (CRITICAL → INFO) | | **威胁情报** | 自适应评分 — 将事件标记为真实威胁或误报以提高准确性 | | **PCAP 重放** | 上传 `.pcap` 捕获文件并进行离线分析 | | **监控 IP** | 维护带有备注的 IP 监视列表,以便进行针对性监控 | | **分析仪表板** | 针对活跃主机 和最常被攻击端口的交互式图表 | | **CSV 导出** | 将捕获的事件导出为 CSV 以供外部分析 | | **嵌入式 Web 服务器** | 内置 HTTP 服务器,监听端口 `8080` — 无需外部 Web 服务器 | ## 🖥️ 仪表板预览 Web 仪表板具有 **暗色玻璃拟态 UI**,包含: - 📊 实时统计数据(总数据包、捕获运行时间、威胁指标) - 📈 针对顶级源 IP 和目标端口的交互式条形图 - 🎛️ 带有接口选择器的数据包捕获控制 - 📋 基于严重性颜色编码的实时事件流 - 🔍 按 IP、严重级别和验证状态过滤 - 👁️ 监控 IP 管理模态框 - 📜 检测规则管理模态框 - 📤 用于离线分析的 PCAP 文件上传 ## 🛠️ 技术栈 - **后端:** C++17 配合 POSIX 线程 - **数据包捕获:** `libpcap` - **Web 服务器:** 自定义嵌入式 HTTP 服务器 - **前端:** HTML5 + CSS3 + 原生 JavaScript - **图表:** [Chart.js](https://www.chartjs.org/) - **字体:** [Plus Jakarta Sans](https://fonts.google.com/specimen/Plus+Jakarta+Sans) ## 📋 前置条件 - **Linux** (推荐 Ubuntu/Debian) - **g++** (支持 C++17) - **libpcap** 开发头文件 ``` # 安装依赖项 sudo apt update sudo apt install g++ libpcap-dev ``` ## 🚀 快速开始 ### 1. 克隆仓库 ``` git clone https://github.com/mehraniqbalgp/DSA-IDS-Project.git cd DSA-IDS-Project ``` ### 2. 编译 ``` # 编译集成版本(含 Web dashboard) g++ -std=c++17 -o ids_integrated ids_integrated.cpp -lpcap -lpthread # 编译 CLI-only 版本 g++ -std=c++17 -o ids ids.cpp -lpcap -lpthread ``` ### 3. 运行 ``` # 运行集成版本(数据包捕获需要 root) sudo ./ids_integrated ``` ### 4. 打开仪表板 在浏览器中访问 **[http://localhost:8080](http://localhost:8080)**。 ## 📁 项目结构 ``` DSA-IDS-Project/ ├── ids_integrated.cpp # Main source — IDS engine + embedded web server ├── ids.cpp # CLI-only version of the IDS engine ├── dashboard.html # Web dashboard (served by embedded server) ├── rules.txt # Active detection rules ├── rulesbook.txt # Extended rulebook with 90+ signatures ├── monitored_ips.txt # Watchlisted IP addresses ├── intelligence.dat # Persistent threat intelligence data ├── result.csv # Captured events export ├── monitored_report.csv # Monitored IP report ├── report.txt # Detailed text report └── README.md # You are here ``` ## 📜 检测规则 规则遵循简单的 `keyword = severity` 格式: ``` # Authentication Events failed login = MEDIUM multiple failed login = HIGH brute force = CRITICAL # Network Attacks port scan = HIGH syn flood = CRITICAL ddos attack = CRITICAL # Web Attacks sql injection = CRITICAL xss attack = CRITICAL command injection = CRITICAL ``` 完整规则库 (`rulesbook.txt`) 包含各类别的 **90+ 检测签名**: - 🔐 认证事件 - ⬆️ 权限提升 - 📂 文件系统访问 - 🌐 网络攻击 - 🕸️ Web 攻击 - 🦠 恶意软件签名 - 📤 数据渗出 - ⚙️ 系统事件 - 🔎 侦察 - 🚨 可疑行为 ## 🔧 工作原理 ``` ┌──────────────┐ │ Network │ │ Interface │ └──────┬───────┘ │ libpcap ┌──────▼───────┐ │ Packet │ │ Capture │ └──────┬───────┘ │ ┌────────────┼────────────┐ │ │ │ ┌──────▼──────┐ ┌──▼──────┐ ┌──▼──────────┐ │ Rule-Based │ │Behavioral│ │ Monitored │ │ Matching │ │Analysis │ │ IP Check │ └──────┬──────┘ └──┬──────┘ └──┬──────────┘ │ │ │ └────────────┼────────────┘ │ ┌──────▼───────┐ │ Event │ │ Generation │ └──────┬───────┘ │ ┌────────────┼────────────┐ │ │ │ ┌──────▼──────┐ ┌──▼──────┐ ┌──▼──────────┐ │ Web Dashboard│ │CSV Export│ │ Intelligence │ │ (Port 8080) │ │ │ │ Storage │ └─────────────┘ └─────────┘ └──────────────┘ ``` 1. **数据包捕获** — 使用 `libpcap` 从选定的网络接口捕获原始数据包 2. **协议解析** — 提取 IP 头、TCP/UDP 端口和标志位 3. **规则匹配** — 将数据包数据与定义的规则和关键字进行比较 4. **行为分析** — 使用连接跟踪检测 SYN Flood、端口扫描和流量突发 5. **威胁评分** — 基于用户反馈分配严重性和自适应评分 6. **仪表板展示** — 通过嵌入式 Web 服务器将结果提供至浏览器仪表板 ## 👤 作者 **Mehran Iqbal** 🔗 GitHub: [@mehraniqbalgp](https://github.com/mehraniqbalgp) 💼 LinkedIn: [mehraniqbalgp](https://linkedin.com/in/mehraniqbalgp) 🌐 网站: [retrax.co](https://retrax.co)出于对网络安全的热爱而制作 ❤️
标签:C++, CSV 导出, DOS 防护, HTTP 服务器, NIDS, PCAP 分析, SYN Flood 检测, Web GUI, 云计算, 仪表盘, 入侵检测系统, 多包管理, 威胁情报, 安全可视化, 安全数据湖, 容器化, 开发者工具, 插件系统, 数据可视化, 数据擦除, 流量突发分析, 端口扫描检测, 网络安全, 网络攻防, 网络流量分析, 规则引擎, 防御绕过, 隐私保护