Anilkumar64/-PS-06-Intelligent-Intrusion-Detection-System-
GitHub: Anilkumar64/-PS-06-Intelligent-Intrusion-Detection-System-
这是一个结合规则引擎与机器学习模型的实时混合入侵检测系统,利用C++高性能流处理网络流量以识别端口扫描、DoS及未知异常威胁。
Stars: 0 | Forks: 0
# 🛡️ 智能入侵检测系统 (PS-06)
## 📌 概述
**智能入侵检测系统 (IDS)** 旨在通过提供**实时、自适应且高性能的网络监控解决方案**,来应对日益复杂和规模化的现代网络威胁。
传统的 IDS 解决方案严重依赖静态特征,这使其对**零日攻击和不断演变的威胁模式**无效。本项目提出了一种**混合检测系统**,该系统结合了:
* ⚡ 基于规则的检测(快速、确定性)
* 🧠 基于机器学习的异常检测(自适应、智能)
该系统专注于**实时数据包分析**,能够在可疑活动升级为全面攻击之前实现早期检测。
## 🧠 系统方法 (思维模型)
整个系统被设计为一个**实时数据包处理流水线**:
```
[Internet Traffic]
↓
[NIC (Network Interface Card)]
↓
[Kernel Network Stack → sk_buff]
↓
[Packet Capture (libpcap)]
↓
[Feature Extraction Engine]
↓
[Detection Engine (Rules + AI)]
↓
[Decision Engine]
↓
[Alerting & Logging System]
```
👉 核心理念:
**我们不存储数据包——我们将它们作为连续流进行处理。**
## ⚙️ 工作原理
### 1. 数据包接入
* 传入的数据包到达 **NIC**(网卡)
* Linux 内核处理它们,并将每个数据包表示为一个 **`sk_buff` 结构体**
* IDS 使用 **libpcap** 接入此流程,而无需修改内核行为
### 2. 数据包捕获
* 使用 `libpcap`,系统实时**捕获实时网络数据包**
* 捕获的数据包括:
* 源 IP
* 目的 IP
* 端口号
* 协议 (TCP/UDP/ICMP)
* 数据包大小
* 时间戳
### 3. 特征提取
原始数据包数据被转换为结构化特征:
```
{
"src_ip": "192.168.1.10",
"dst_ip": "8.8.8.8",
"port": 443,
"protocol": "TCP",
"packet_rate": 120
}
```
这些特征代表了**行为模式**,而不仅仅是原始数据。
### 4. 检测引擎
#### 🔹 基于规则的检测
第一层检测已知的攻击模式:
* 端口扫描(快速访问多个端口)
* SYN flood 攻击(高 SYN 包速率)
* 异常连接突发
👉 提供**即时且确定性的检测**
#### 🔹 基于 AI 的异常检测
第二层使用无监督学习检测未知威胁:
* 使用的模型:
* Isolation Forest(孤立森林)
* One-Class SVM(单类支持向量机)
👉 核心理念:
* AI **不分析原始数据包**
* 它分析**衍生出的行为特征**
模型输入示例:
```
[packet_rate, unique_ports, avg_packet_size, connection_count]
```
该模型学习**正常的网络行为**,并将偏差标记为异常。
### 5. 决策引擎
结合来自两个检测层的输出:
```
Rule Engine + AI Model → Final Classification
```
分类:
* ✅ 正常
* ⚠️ 可疑
* 🚨 攻击
### 6. 告警与日志
检测到的威胁会被记录完整上下文:
```
[ALERT]
IP: 192.168.1.5
Type: Port Scan
Reason: Accessed 200 ports in 2 seconds
```
系统提供:
* 实时告警
* 攻击分类
* 详细推理
## 🚀 主要特性
* ⚡ 实时数据包处理(无批处理延迟)
* 🧠 混合检测(规则 + AI)
* 📊 行为分析而非静态特征
* 🔍 可解释的告警(基于推理的检测)
* 🧵 用于可扩展性的多线程处理
* 🧪 攻击模拟支持(例如,端口扫描、DoS)
## 🏗️ 技术栈
### 核心系统
* C++20(高性能后端)
* libpcap(数据包捕获)
* 多线程(并行处理)
### 机器学习
* Python (scikit-learn)
* Isolation Forest / One-Class SVM
### 可视化(可选)
* CLI / Web 仪表板 (Flask / Node.js)
## 🧪 测试与模拟
系统支持模拟攻击场景:
* 端口扫描 (`nmap`)
* SYN flood / DoS 模拟
* 异常流量生成
性能指标:
* 检测延迟
* 吞吐量(数据包/秒)
* 异常检测准确度
## 💣 核心洞察
## ⚠️ 设计原则
* 不依赖存储的数据集
* 无集中式数据包存储
* 基于流的处理架构
* 专注于低延迟和实时响应
## 🔮 未来增强
* 跨多个节点的分布式 IDS
* 与防火墙集成以实现自动阻断
* 深度包检测 (DPI)
* 在线学习模型
* 基于云的监控仪表板
## 🧩 结论
通过将**高效的系统编程 (C++)** 与**智能异常检测**相结合,本项目交付了一个可扩展且自适应的 IDS,能够实时检测已知和未知的网络威胁。
它展示了以下方面的强大集成:
* 系统级网络
* 实时数据处理
* 应用机器学习
# 工作流程
部门 1 — Kernel
bashcd kernel_module/
make # build .ko
sudo make load # insmod
sudo make unload # rmmod
部门 2 — Backend + GUI
bashcd core/
mkdir build && cd build
cmake .. && make -j$(nproc)
sudo ./IDS_System
部门 3 — ML
bashcd ml/
python3 preprocess.py --input ../MachineLearningCVE --output .
python3 train_model.py --data . --output .
# 模型保留在此处,core/ 二进制文件在运行时读取它们
标签:Bash脚本, C++, DNS枚举, DoS防御, IP 地址批量处理, sk_buff, 低延迟, 基于规则, 威胁情报, 密钥泄露防护, 开发者工具, 异常检测, 恶意活动检测, 插件系统, 数据擦除, 机器学习安全, 混合检测, 特征提取, 端口扫描检测, 网络基础设施, 网络安全, 网络安全工具, 网络流量分析, 逆向工具, 配置错误, 隐私保护, 零日攻击防御, 高性能计算