kurapatijyothiprasanna12-sudo/Network-Intrusion-Detection-System

GitHub: kurapatijyothiprasanna12-sudo/Network-Intrusion-Detection-System

基于 Snort 的轻量级网络入侵检测演示项目,通过自定义规则监控 ICMP 流量并生成告警,帮助初学者快速掌握 IDS 的基本原理与部署方法。

Stars: 0 | Forks: 0

# 网络入侵检测系统 (IDS) ## 项目概述 本项目演示了如何在 Windows 上使用 Snort 构建一个基础的网络入侵检测系统 (IDS)。该系统监控实时网络流量,应用自定义的入侵检测规则,并对 ICMP 数据包等可疑活动生成警报。 开发此项目旨在理解以下内容: - 网络流量分析 - 数据包监控 - 入侵检测概念 - Snort 规则配置 - 实时警报生成 - 使用 Python 进行基础警报分析 ## 功能 - 实时数据包监控 - 基于 Snort 的 IDS 设置 - 自定义入侵检测规则 - ICMP 流量检测 - 基于控制台的警报生成 - 警报日志记录 - 基于 Python 的警报分析 - 网络流量分析 ## 使用的技术 - Snort IDS - Python - Npcap - Windows 命令提示符 - 网络协议 (ICMP, TCP/IP) ## 项目结构 ``` Network-Intrusion-Detection-System │ ├── README.md ├── requirements.txt ├── local.rules ├── snort_rules.txt ├── alerts.log ├── alert_analysis.py ├── snort_running.png ├── icmp_alert.png └── local_rules.png ``` ## 使用的 IDS 规则 ``` alert icmp any any -> any any (msg:"ICMP Ping Detected"; sid:1000001; rev:1;) ``` 此规则在网络流量中检测到 ICMP 数据包时会生成警报。 ## Snort 规则文件 `snort_rules.txt` 的内容: ``` # 自定义 Snort 规则 alert icmp any any -> any any (msg:"ICMP Ping Detected"; sid:1000001; rev:1;) ``` ## 警报日志样本 `alerts.log` 的内容: ``` 05/13-16:15:21 [**] [1:1000001:1] ICMP Ping Detected [**] 05/13-16:15:22 [**] [1:1000001:1] ICMP Ping Detected [**] 05/13-16:15:27 [**] [1:1000001:1] ICMP Ping Detected [**] ``` ## 警报分析程序 `alert_analysis.py` 的内容: ``` # 简单告警分析程序 print("===== ALERT ANALYSIS =====") with open("alerts.log", "r") as file: alerts = file.readlines() print(f"Total Alerts Detected: {len(alerts)}") for alert in alerts: print(alert.strip()) ``` 此 Python 程序从日志文件中读取入侵警报,并显示检测到的警报信息。 ## 运行方法 ### 步骤 1 — 安装 Snort 在 Windows 上安装 Snort 和 Npcap。 ### 步骤 2 — 配置规则 在以下路径添加自定义规则: ``` C:\Snort\rules\local.rules ``` ### 步骤 3 — 运行 Snort ``` snort -i 4 -A console -N -q -c C:\Snort\etc\simple.conf ``` ### 步骤 4 — 生成网络流量 ``` ping google.com ``` ### 步骤 5 — 监控警报 Snort 会直接在控制台中显示入侵警报。 ### 步骤 6 — 运行警报分析 ``` python alert_analysis.py ``` ## 示例输出 ``` [**] [1:1000001:1] ICMP Ping Detected [**] ``` ## 截图 ### Snort 运行中 ![Snort Running](https://raw.githubusercontent.com/kurapatijyothiprasanna12-sudo/Network-Intrusion-Detection-System/main/snort_running.png) ### ICMP 警报检测 ![ICMP Alert](https://raw.githubusercontent.com/kurapatijyothiprasanna12-sudo/Network-Intrusion-Detection-System/main/icmp_alert.png) ### 自定义规则配置 ![Custom Rule](https://raw.githubusercontent.com/kurapatijyothiprasanna12-sudo/Network-Intrusion-Detection-System/main/local_rules.png) ## 学习成果 - 理解入侵检测系统 - 配置 Snort IDS - 编写自定义检测规则 - 监控实时网络流量 - 生成入侵警报 - 执行基础警报分析 - 分析数据包行为 ## 未来改进 - 端口扫描检测 - 仪表盘可视化 - 自动响应机制 - 威胁统计与报告 - 基于电子邮件的警报通知 - 高级流量分析 ## 结论 本项目演示了如何使用 Snort 实现一个基础的网络入侵检测系统。它强调了如何利用自定义规则和实时数据包监控来识别可疑的网络活动并生成实时警报。该项目还包含一个简单的基于 Python 的警报分析系统,用于处理入侵日志。
标签:ICMP检测, Npcap, PB级数据处理, Ping检测, Python, TCPIP, 入侵检测系统, 内核驱动, 前端框架, 安全数据湖, 安全运维, 开源安全工具, 无后门, 网络协议, 网络安全, 自定义规则, 警报分析, 逆向工具, 逆向工程平台, 防御绕过, 隐私保护