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)。




## 📖 概述
大多数 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 数据包的突发流量。

### 2️⃣ SSH 暴力破解 (Hydra)
```
hydra -l root -P /tmp/small.txt ssh://192.168.141.134
```
被自定义规则 `sid:1000002` 检测到——对端口 22 进行了 5 次以上的快速连接尝试。

### 3️⃣ 附加:社区规则检测
默认的 Emerging Threats 规则集独立地从 DHCP 流量中识别出了攻击者的操作系统——无需自定义规则:

## 🗺️ 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, 安全实验环境, 插件系统, 现代安全运营, 网络流量分析