sampadamawatkar/soc-ids-suricata-lab

GitHub: sampadamawatkar/soc-ids-suricata-lab

一个轻量级、可复现的微型 SOC 实验室,使用 Suricata IDS 和 EveBox 在资源受限的双虚拟机环境中实现实时攻击检测与可视化告警。

Stars: 0 | Forks: 0

# 🛡️ 网络入侵检测实验室 — Suricata IDS + EveBox 这是一个轻量级、可复现的微型 SOC 实验室,它使用 **Suricata IDS**、自定义检测规则和 **EveBox** 仪表盘模拟真实世界的攻击并进行实时检测,同时映射到 **MITRE ATT&CK** 框架。 本项目作为 **CDAC – ITISS** 期间的网络安全实践项目构建,完全在资源受限的双虚拟机环境中运行(无需重量级 SIEM)。 ![Status](https://img.shields.io/badge/status-complete-brightgreen) ![Platform](https://img.shields.io/badge/platform-Linux-blue) ![IDS](https://img.shields.io/badge/IDS-Suricata%207.0.15-orange) ![Dashboard](https://img.shields.io/badge/dashboard-EveBox-purple) ## 📖 概述 大多数 SIEM 技术栈(Wazuh、ELK、Security Onion)需要 16GB 以上的内存和大量的虚拟化支持——这对于使用笔记本电脑的学生来说往往难以实现。本项目证明了只需占用其中一小部分资源,就可以构建一个**功能完备的入侵检测 pipeline**,同时仍然涵盖完整的检测生命周期: **攻击 → 实时流量检测 → 基于特征的告警 → 仪表盘分析 → MITRE ATT&CK 映射** 项目端到端模拟了两种攻击者技术——网络侦察(端口扫描)和凭据暴力破解(SSH)——并且这两者都是通过**自定义编写的 Suricata 规则**捕获的,而不仅仅是依赖开箱即用的特征。 ## 🏗️ 架构 ``` ┌─────────────────────┐ attack traffic ┌──────────────────────────┐ │ Kali Linux (VM) │ ─────────────────────────────▶│ CentOS Stream 9 (VM) │ │ Attacker │ │ Suricata IDS engine │ │ 192.168.141.133 │ │ 192.168.141.134 │ └─────────────────────┘ └────────────┬─────────────┘ │ Nmap (port scan) │ │ Hydra (SSH brute-force) ▼ │ eve.json (alert log) │ │ │ ▼ │ EveBox Dashboard :5636 │ │ └──────────────────────────────────────────────────────────────▼ Report + MITRE ATT&CK Mapping ``` | 角色 | 机器 | IP | 用途 | |---|---|---|---| | 攻击者 | Kali Linux | `192.168.141.133` | 运行 Nmap 和 Hydra 模拟攻击 | | 防御者 | CentOS Stream 9 (arm64) | `192.168.141.134` | 运行 Suricata IDS 和 EveBox 仪表盘 | ## 🧰 技术栈 | 组件 | 版本 | 用途 | |---|---|---| | [Suricata](https://suricata.io/) | 7.0.15 | 网络 IDS 引擎 — 基于特征的流量检测 | | [EveBox](https://evebox.org/) | 0.27.0 | 用于浏览/搜索 Suricata 告警的 Web 仪表盘 | | [Nmap](https://nmap.org/) | — | 端口/服务扫描(侦察模拟) | | [Hydra](https://github.com/vanhauser-thc/thc-hydra) | — | 登录暴力破解工具(针对 SSH) | | Emerging Threats Open 规则集 | 最新版 | 社区检测规则(6.8万+ 特征) | | CentOS Stream 9 (aarch64) | — | 防御者虚拟机操作系统,原生兼容 Apple Silicon | | Kali Linux | — | 攻击者虚拟机操作系统 | ## ✨ 功能特点 - ✅ 使用 Suricata 进行实时网络流量监控 - ✅ 包含两条**自定义编写的检测规则**(不仅仅是默认特征),用于检测端口扫描和 SSH 暴力破解 - ✅ 轻量级 Web 仪表盘(EveBox)——没有 Elasticsearch/Kibana 的开销 - ✅ 完整的从攻击到告警的可追溯性,包含时间戳、源/目标 IP 和严重程度 - ✅ 每一个检测到的攻击都映射了 MITRE ATT&CK 技术 - ✅ 在 8GB 内存的主机上运行流畅(已在 Apple Silicon / arm64 架构上验证) ## 🚀 设置与安装说明 ### 1. 安装 Suricata (CentOS Stream 9 / arm64) ``` sudo dnf install epel-release -y sudo dnf config-manager --set-enabled crb sudo dnf update -y sudo dnf install suricata -y # 下载 Emerging Threats Open ruleset sudo suricata-update ``` ### 2. 添加自定义检测规则 创建 `/var/lib/suricata/rules/local.rules`: ``` alert tcp any any -> $HOME_NET any (msg:"Possible Nmap Port Scan Detected"; flags:S; threshold: type both, track by_src, count 20, seconds 10; sid:1000001; rev:1;) alert tcp any any -> $HOME_NET 22 (msg:"Possible SSH Brute Force Attack"; flow:to_server; threshold: type both, track by_src, count 5, seconds 30; sid:1000002; rev:1;) ``` 确保在 `/etc/suricata/suricata.yaml` 文件中的 `rule-files:` 下包含了 `local.rules`。 ### 3. 启动 Suricata ``` sudo suricata -c /etc/suricata/suricata.yaml -i ens160 -D ``` ### 4. 安装并运行 EveBox ``` curl -sSf https://evebox.org/install.sh | sh sudo /usr/local/bin/evebox oneshot --host 0.0.0.0 --no-open /var/log/suricata/eve.json ``` 在浏览器中打开仪表盘:**`http://:5636`** ## 🎯 攻击模拟与检测结果 ### 1️⃣ Nmap 端口扫描 ``` nmap -p 1-1000 -T4 192.168.141.134 ``` 被自定义规则 `sid:1000001` 检测到——在 10 秒内出现 20+ 个 SYN 数据包的突发流量。 ![Nmap 端口扫描告警](https://static.pigsec.cn/wp-content/uploads/repos/cas/81/81262ece990588482caffdbc47189fb1c3a636059b006a532f7879b979b3b591.png) ### 2️⃣ SSH 暴力破解 (Hydra) ``` hydra -l root -P /tmp/small.txt ssh://192.168.141.134 ``` 被自定义规则 `sid:1000002` 检测到——对端口 22 进行了 5 次以上的快速连接尝试。 ![SSH 暴力破解告警](https://static.pigsec.cn/wp-content/uploads/repos/cas/c4/c4915de51e81db4023e78f180524951767f28eebe46682f66eb20f15c9b83460.png) ### 3️⃣ 附加:社区规则检测 默认的 Emerging Threats 规则集独立地从 DHCP 流量中识别出了攻击者的操作系统——无需自定义规则: ![Kali Linux DHCP 检测](https://static.pigsec.cn/wp-content/uploads/repos/cas/8c/8ca064c0c502189360ac5a254981ba12018158a3fd0f2d459f2fe5806a2776ac.png) ## 🗺️ MITRE ATT&CK 映射 | 攻击 | 工具 | 技术 | 战术 | |---|---|---|---| | 端口 / 服务扫描 | Nmap | [T1046](https://attack.mitre.org/techniques/T1046/) | 侦察 — 网络服务发现 | | SSH 凭据暴力破解 | Hydra | [T1110](https://attack.mitre.org/techniques/T1110/) | 凭据获取 — 暴力破解 | | 操作系统 / 主机指纹识别 | Kali DHCP 客户端 | [T1592](https://attack.mitre.org/techniques/T1592/) | 侦察 — 收集受害者主机信息 | ## 📌 为什么不使用 Wazuh / Security Onion? 本项目刻意避免使用完整的 SIEM 技术栈: - Wazuh 的单节点 Docker 设置和 Security Onion 都需要 **16GB 以上的内存**,并且对 arm64/Apple Silicon 的支持不稳定。 - 独立的 **Suricata + EveBox** 设置在 **8GB 内存的主机**上就能提供相同的核心结果——攻击检测和可视化告警——并且具有原生的 arm64 兼容性,无需容器编排开销。 ## 🔭 未来改进 - [ ] 添加 Web 应用攻击场景(针对 DVWA 的 SQL 注入 / XSS) - [ ] 通过 Suricata 主动响应脚本实现自动化响应(自动封禁违规 IP) - [ ] 将日志转发到集中式 SIEM 以进行多传感器关联 - [ ] 添加实时流量捕获演示(仓库中包含 `.pcap` 文件) ## 📄 完整报告 详细的项目报告(包含架构、设置步骤和完整分析)可在 [`SOC_IDS_Project_Report.docx`](./SOC_IDS_Project_Report.docx) 中查看。 ## 👤 作者 项目由 Sampada Manwatkar 编写,是网络安全和入侵检测课程学习的一部分。 ## 📜 许可证 本项目作为学术课程的一部分,仅供教育目的使用。
标签:CTI, EveBox, Metaprompt, Suricata, 安全实验环境, 插件系统, 现代安全运营, 网络流量分析