sukrrr/IDS-Project

GitHub: sukrrr/IDS-Project

一个基于 Python 和 Scapy 的轻量级网络入侵检测系统,可实时监控流量并检测端口扫描、SYN flood 和 DNS 异常等可疑活动。

Stars: 0 | Forks: 0

# 网络入侵检测系统 (IDS) 一个使用 Python 构建的轻量级网络入侵检测系统,可实时监控网络流量,并检测包括端口扫描、SYN flood 和 DNS 异常在内的可疑活动。 ## 功能 - **实时数据包捕获** - 使用 Scapy 嗅探网络流量 - **流量分析** - 分析数据包流和连接模式 - **基于特征的检测** - 检测已知的攻击模式 - **异常检测** - 识别异常的流量行为 - **警报系统** - 带有严重程度级别(严重、高、中)的实时警报 - **日志记录** - 所有警报都会被记录以供事后分析 - **攻击检测**: - 端口扫描 - SYN flood 攻击 - DNS 隧道/可疑的 DNS 活动 - 暴力破解尝试 ## 使用的技术 - **Python 3.8+** - 核心编程语言 - **Scapy** - 数据包操作和捕获 - **Scikit-learn** - 用于异常检测的机器学习 - **Pandas** - 数据分析 - **Matplotlib** - 可视化(可选) ## 安装 ### 前置条件 - Python 3.8 或更高版本 - Npcap (Windows) 或 libpcap (Linux) - 管理员/root 权限 ### 克隆仓库 ``` git clone https://github.com/sukri/IDS-Project.git cd IDS-Project ``` ### 安装依赖 ``` pip install -r requirements.txt ``` ### Windows 用户 - 安装 Npcap 1. 从以下地址下载 Npcap:https://npcap.com/ 2. 在安装过程中,**勾选**“WinPcap API-compatible Mode” 3. 以管理员身份运行命令提示符 ## 用法 ### 启动 IDS **在 Windows (Wi-Fi) 上:** ``` python src/main.py -i "Wi-Fi" ``` **在 Windows (以太网) 上:** ``` python src/main.py -i Ethernet ``` ### 检查您的网络接口 **Windows:** ``` ipconfig ``` ## 测试 IDS ### 从 Kali Linux (攻击机) **1. 端口扫描检测:** ``` nmap -sS -p 1-1000 TARGET_IP ``` **2. SYN flood 检测:** ``` sudo hping3 -S -p 80 --flood TARGET_IP ``` **3. DNS 异常检测:** ``` for i in {1..1000}; do nslookup test$i.evil.com; done ``` ### 从 Windows (生成流量) ``` for /L %i in (1,1,50) do nslookup test%i.google.com ``` ## 警报输出示例 ``` ================================================== ALERT: Port Scan Severity: HIGH Source: 10.101.111.166 Confidence: 100% Details: Packet: TCP 53->59331 ================================================== ``` ## 检测阈值 | 攻击类型 | 阈值 | 时间窗口 | |-------------|-----------|-------------| | 端口扫描 | 20 个唯一端口 | 60 秒 | | SYN flood | 100 个数据包 | 10 秒 | | DNS 隧道 | 50 次查询 | 10 秒 | ## 自定义 您可以在 `src/detection_engine.py` 中调整检测阈值: self.thresholds = { 'port_scan': 20, # 增加以降低敏感度 'syn_flood': 100, # 减小以提高敏感度 'dns_tunnel': 50, 'brute_force': 30 } ## 日志 警报存储在: - `logs/alerts.log` - 纯文本格式 - `logs/alerts.jsonl` - 用于解析的 JSON 格式 ## 学习成果 通过这个项目,我学习了: - 使用 Scapy 进行网络数据包分析 - TCP/IP 协议基础 - 基于特征和基于异常的检测 - 实时监控和警报 - 使用 Python 多线程进行并发处理 - 安全监控的最佳实践 ## 未来改进 - 用于高级异常检测的机器学习 - 带有实时可视化的 Web 仪表板 - 电子邮件/短信警报 - 与 Snort/Suricata 规则集成 - 多线程数据包处理 - 报告生成 ## 许可证 该项目基于 MIT 许可证授权。
标签:Apex, IP 地址批量处理, Python, Scapy, 入侵检测系统, 安全数据湖, 插件系统, 无后门, 机器学习, 网络安全, 逆向工具, 隐私保护