Nayanathaara/Network-Intrusion-Detection-Packet-Analysis-Suricata

GitHub: Nayanathaara/Network-Intrusion-Detection-Packet-Analysis-Suricata

基于 Suricata 的网络入侵检测与数据包分析实验项目,演示了自定义 IDS 规则开发、攻击流量捕获及分析师风格的调查报告全流程。

Stars: 0 | Forks: 0

# 使用 Suricata 进行网络入侵检测与数据包分析 ## 项目概述 本项目演示了如何部署和使用 **Suricata** 作为网络入侵检测系统 (NIDS),以在受控的家庭实验室环境中监控网络流量。通过从 Kali Linux 攻击机向 Metasploitable 目标机发起模拟攻击,生成了基于网络的安全事件。 我们开发了自定义的 Suricata 检测规则,用于识别 **Nmap 网络扫描** 和 **SQL injection 尝试**。在每次攻击期间,使用 **tcpdump** 捕获网络流量,随后在 **Wireshark** 中进行分析,以验证检测到的活动并检查底层的网络数据包。 本项目展示了完整的操作流程,包括生成攻击流量、检测恶意网络活动、捕获数据包、验证告警以及执行数据包级别的分析。 ## 展示技能 * 网络入侵检测 (NIDS) * Suricata 规则开发 * 使用 tcpdump 进行数据包捕获 * 使用 Wireshark 进行数据包分析 * TCP/IP 协议分析 * Nmap 检测 * SQL Injection 检测 * 网络流量分析 * MITRE ATT&CK 映射 ## 目标 * 将 Suricata 部署为网络入侵检测系统。 * 创建基础的自定义 Suricata 规则,以检测侦察和 Web 攻击活动。 * 从 Kali Linux 攻击机向存在漏洞的 Metasploitable 目标机模拟网络攻击。 * 在每次攻击期间使用 tcpdump 捕获网络流量。 * 在 Wireshark 中通过数据包级别的分析验证 Suricata 的检测结果。 * 记录调查过程,并将观察到的活动映射到 MITRE ATT&CK 框架。 ## 实验架构 本项目在受控的家庭实验室环境中实施,包含相互独立的攻击系统、目标系统和监控系统。 ### 环境 | 组件 | 角色 | | ----------------- | ----------------------------------------------------------------- | | Kali Linux VM | 用于执行 Nmap 扫描和 SQL injection 攻击的攻击机 | | Metasploitable VM | 存在漏洞的目标系统 | | Ubuntu Server VM | 承载 Suricata IDS 的主机 | ![实验架构](https://static.pigsec.cn/wp-content/uploads/repos/cas/f5/f5ffeec5b36015c14dae7c8279bc98c859a849aaa5568805362e713f90a6fc75.png) *图 1. 用于网络入侵检测和数据包分析的家庭实验室架构。* ## 使用的工具 | 工具 | 用途 | | ------------------------------------ | ----------------------------------- | | Suricata | 网络入侵检测系统 (NIDS) | | Kali Linux | 攻击模拟 | | Metasploitable | 存在漏洞的目标机 | | tcpdump | 网络数据包捕获 | | Wireshark | 数据包分析 | | Nmap | 网络侦察 | | DVWA / Metasploitable Web Application | SQL injection 测试 | ## 准备阶段 在执行攻击场景之前,通过配置 Suricata 以检测恶意网络活动,完成了监控环境的准备工作。 准备工作包括: - 在 Ubuntu Server VM 上安装 Suricata。 - 配置 Suricata 将告警记录到 **eve.json**。 - 为以下内容创建自定义检测规则: - Nmap TCP 端口扫描。 - SQL injection 尝试。 创建了两条自定义 Suricata 特征规则,用于检测模拟的攻击场景。 - **LAB Potential TCP Port Scan** – 检测 TCP SYN 端口扫描活动。 - **LAB SQL Injection** – 检测包含 SQL injection 模式的 HTTP 请求。 ![自定义 Suricata 规则](https://static.pigsec.cn/wp-content/uploads/repos/cas/f3/f3a4ec4d6ccdc2ac1b8d254cd7bd0bfb9b8790b6db1c753d2779e77cb848343a.png) *图 2. 为检测 Nmap 扫描和 SQL injection 尝试而开发的自定义 Suricata 规则。* - 配置 **tcpdump** 以捕获网络流量,用于数据包分析。 ![tcpdump 数据包捕获](https://static.pigsec.cn/wp-content/uploads/repos/cas/3e/3e4bd2c32f53e57300aaf81a0a587411dfa403406d310bf0e673ed9a1ce7b141.png) *图 3. 配置 tcpdump 以捕获 Nmap 网络流量,用于离线数据包分析。* ![tcpdump 数据包捕获 Sqli](https://static.pigsec.cn/wp-content/uploads/repos/cas/57/57c5d3950fda57abf3565a4c2d6af350b0ebc6e38631a2d55a567471136547ae.png) *图 4. 配置 tcpdump 以捕获 SQL injection 网络流量,用于离线数据包分析。* ## 攻击场景 模拟了两个攻击场景,以评估 Suricata 检测恶意网络活动的能力,并通过数据包分析验证生成的告警。 ### 场景 1 – 网络侦察 (Nmap 扫描) Kali Linux 攻击机对 Metasploitable 目标执行了 **TCP SYN (`-sS`)** 和 **TCP ACK (`-sA`)** 扫描,以模拟网络侦察活动。 ![Nmap 扫描 sS](https://static.pigsec.cn/wp-content/uploads/repos/cas/91/918148fe16a6722ad214322a1ca6042bd3404586a27083160afeb3f89eed7029.png) *图 5. 从 Kali Linux 对 Metasploitable 目标执行的 Nmap 扫描 (TCP SYN)。* ![Nmap 扫描 sA](https://static.pigsec.cn/wp-content/uploads/repos/cas/58/586c2d8c35fcf2b894e425bb49a811e4c36ab0d65b913fa5f7941e09c33f3208.png) *图 6. 从 Kali Linux 对 Metasploitable 目标执行的 Nmap 扫描 (TCP ACK)。* ### 场景 2 – SQL Injection 对托管在 Metasploitable 机器上的存在漏洞的 Web 应用程序执行了 SQL injection 攻击。该攻击包括使用 **`' OR 1=1 --`** 绕过身份验证,以及使用 **`UNION SELECT 1,2,3`** 进行注入,以模拟数据提取技术。 ![SQL Injection 攻击Union](https://static.pigsec.cn/wp-content/uploads/repos/cas/35/353150d35c597c2a41cb23b08278e2f263eb1d04366690b17e7eaadc281d6b1a.png) *图 7. 针对存在漏洞的 Web 应用程序的 SQL injection 尝试。* ![SQL Injection 攻击OR](https://static.pigsec.cn/wp-content/uploads/repos/cas/90/90372ec17e19e1a7c7a6e32c6c7884f686ff796cbf0a97e75db348d9daf7607f.png) *图 8. 针对存在漏洞的 Web 应用程序的 SQL injection 尝试。* **开发了自定义 Suricata 检测规则以识别这两次攻击。在攻击期间,使用 **tcpdump** 捕获网络流量,同时 Suricata 将生成的告警记录在 **eve.json** 中。随后在 **Wireshark** 中对捕获的 PCAP 进行分析,以验证检测到的侦察活动。** ## 完整调查报告 下方提供了详细的调查记录,包括对这两个攻击场景的告警分析、数据包检查、证据收集和调查结果。 **[查看完整调查报告 - Nmap 扫描 ](Network-Recon-Incident-Report.md)** **[查看完整调查报告 - SQL Injection 攻击 ](SQLI-Incident-Report.md)** ## 经验总结 - 获得了将 Suricata 部署和配置为网络入侵检测系统的实践经验。 - 加深了对开发自定义 IDS 规则以检测侦察和 Web 应用程序攻击的理解。 - 巩固了使用 tcpdump 和 Wireshark 进行数据包分析的技能。 - 学会了将 IDS 告警与捕获的网络流量进行关联,以验证恶意活动。 - 通过数据包级别的检查加深了对 TCP/IP 协议的理解。 - 获得了将检测到的网络攻击映射到 MITRE ATT&CK 框架的实践经验。
标签:CISA项目, DOE合作, Metaprompt, Suricata, Wildcard支持, Wireshark, 句柄查看, 插件系统, 现代安全运营, 网络安全, 隐私保护