salahkouhail/ids-pedagogique

GitHub: salahkouhail/ids-pedagogique

一个基于Python和Scapy开发的教学用入侵检测系统原型,能够实时捕获网络流量、检测五种常见攻击类型并通过交互式仪表板可视化告警。

Stars: 0 | Forks: 0

# 计算机网络入侵检测系统的研究与实现:在教学网络中的应用 ![Python](https://img.shields.io/badge/Python-3.14-blue) ![Streamlit](https://img.shields.io/badge/Streamlit-1.57-red) ![Scapy](https://img.shields.io/badge/Scapy-2.7-orange) ![License](https://img.shields.io/badge/Licence-Académique-green) ## 📌 描述 这是一个教学用的入侵检测系统 (IDS) 原型,完全使用 Python 开发,能够实现以下功能: - 🔍 通过 **Scapy** 实时捕获网络流量 - 🛡️ 检测 **5 种真实的网络攻击**类型 - ⚠️ 将警报划分为 **3 个风险等级** - 📊 通过交互式 **SOC 仪表板**可视化警报 - 📄 自动生成专业的 **PDF 报告** ## 🏗️ 架构 ``` Kali Linux (attaquant) Ubuntu Server (cible) 192.168.100.128 192.168.100.129 │ │ └───────────────┬───────────────────┘ │ VMnet2 (réseau isolé, Host-only) 192.168.100.0/24 │ capture.py (Scapy) │ traffic.csv │ detector.py (5 règles) │ alerts.csv │ app.py (Streamlit) ┌──────┴──────┐ Dashboard SOC Export PDF ``` ## 🚨 检测规则 | # | 攻击类型 | Kali 工具 | 阈值 | 等级 | |---|------------------|-----------------|-------------------------------|----------| | 1 | 端口扫描 (Port Scan) | `nmap -sS` | > 50 个端口 / IP | 🔴 高危 | | 2 | SSH 暴力破解 (Brute Force) | `hydra` | > 50 次尝试 (端口 22) | 🔴 高危 | | 3 | DDoS 泛洪 (Flood) | `hping3` | > 200 个数据包 / IP | 🟠 中危 | | 4 | ARP 欺骗 (Spoofing) | `arpspoof` | > 5 个可疑 ARP 数据包 | 🔴 高危 | | 5 | Ping 泛洪 (Flood) | `hping3 -1` | > 50 个 ICMP 数据包 | 🟠 中危 | ## 📊 获得的结果 | 指标 | 数值 | |--------------------------------------|-----------| | ✅ 检测率 | **100%** | | ✅ 误报率 (正常流量) | **0%** | | ✅ 检测到的警报 | **6 个警报** | | ✅ 分析的行数 | **4 084** | ## 🗂️ 项目结构 ``` ids-pedagogique/ ├── capture.py # Capture trafic réseau (Scapy) ├── detector.py # Moteur de détection (5 règles) ├── app.py # Dashboard SOC (Streamlit + PDF) ├── generate_normal.py # Génération trafic normal simulé ├── requirements.txt # Dépendances Python ├── traffic.csv # Données capturées ├── alerts.csv # Alertes détectées └── traffic_normal.csv # Trafic normal (validation) ``` ## 📸 截图 ### SOC 仪表板 ![SOC 仪表板](https://static.pigsec.cn/wp-content/uploads/repos/cas/e5/e5e9f2c1c2b93ea1a544f29e8a0e45f259e8bb7db8e8a3247f392de470776afd.jpg) ### PDF 报告 — 第 1 页 ![PDF 报告 1](https://static.pigsec.cn/wp-content/uploads/repos/cas/bf/bfc80e90b22487af1c17b65eab95e6d5be38b00dd81c2e023910244740ee4938.jpg) ### PDF 报告 — 第 2 页 ![PDF 报告 2](https://static.pigsec.cn/wp-content/uploads/repos/cas/f2/f25b4cec03772ae9712411f372a20eb96a8a468157d8a158b940f21e46b8c100.jpg) ## ⚙️ 安装与使用 ### 1. 克隆项目 ``` git clone https://github.com/salahkouhail/ids-pedagogique.git cd ids-pedagogique ``` ### 2. 安装依赖 ``` pip install -r requirements.txt ``` ### 3. 启动捕获 (需要管理员权限) ``` python capture.py ``` ### 4. 启动检测 ``` python detector.py traffic.csv ``` ### 5. 启动仪表板 ``` streamlit run app.py ``` ## 🖥️ 测试环境 | 机器 | 操作系统 | IP | 角色 | |---------|-----------------------|------------------|------------| | VM 1 | Kali Linux 2026 | 192.168.100.128 | 攻击者 | | VM 2 | Ubuntu Server 22.04 | 192.168.100.129 | 目标 | | 主机 | Windows + Python 3.14 | 192.168.100.1 | IDS | ## 🛠️ 技术栈 | 技术 | 版本 | 用途 | |-------------|---------|-------------------------| | Python | 3.14 | 主要语言 | | Scapy | 2.7 | 网络捕获 | | Pandas | 3.0 | 数据处理 | | Streamlit | 1.57 | Web 仪表板 | | Plotly | 6.7 | 数据可视化 | | ReportLab | 4.5 | 导出 PDF | ## ⚠️ 法律声明 本项目是在**严格的教学和防御性**框架下开发的。 所有模拟攻击均在**隔离且受控**的网络中进行。 任何攻击性使用都是**非法且违背职业道德的**。 ## 📄 许可证 学术项目 — EMSI 卡萨布兰卡 — 2025-2026 学年
标签:Kubernetes, Python, Streamlit, 插件系统, 无后门, 网络安全, 访问控制, 逆向工具, 防御绕过, 隐私保护