mostafaahmedaly2003/SOC-monitoring-lab

GitHub: mostafaahmedaly2003/SOC-monitoring-lab

一个集成的 SOC 迷你实验室,通过 Snort、Wazuh、T-Pot 与 Shuffle SOAR 实现秒级检测与自动响应。

Stars: 3 | Forks: 3

# SOC Mini-Lab: Snort + Wazuh + T-Pot + Shuffle SOAR ![Wazuh](https://img.shields.io/badge/Wazuh-4.14.4-005571?style=flat) ![Snort](https://img.shields.io/badge/Snort-3.12.1-CC0000?style=flat) ![T--Pot](https://img.shields.io/badge/T--Pot-24.04-orange?style=flat) ![Shuffle](https://img.shields.io/badge/Shuffle_SOAR-Automated_Response-6A0DAD?style=flat) ![NIST CSF](https://img.shields.io/badge/Framework-NIST_CSF_2.0-0057A8?style=flat) ![License](https://img.shields.io/badge/License-GPL--2.0-blue?style=flat) ![Detection](https://img.shields.io/badge/Detection_Time-5--15s-brightgreen?style=flat) ![Scenarios](https://img.shields.io/badge/Test_Scenarios-6%2F6_Passed-brightgreen?style=flat)

SOC Dashboard

SOC Mini-Lab — 集成安全运营中心

一个构建在虚拟化实验环境中的、完全集成的开源 SOC。
网络 IDS/IPS • SIEM 日志收集 • 蜜罐欺骗 • 自动化事件响应

Status Snort Wazuh T-Pot Shuffle NIST License

Platform Response Time Tests Agents

## 目录 - [核心亮点](#-highlights) - [架构概述](#-architecture-overview) - [网络拓扑](#-network-topology) - [使用工具](#-tools--technology-stack) - [检测管道](#-detection-pipeline) - [自动化工作流](#-automation-workflow) - [性能结果](#-performance-results) - [安装说明](#-installation-guide) - [截图展示](#-screenshots--demo) - [项目结构](#-project-structure) - [未来规划](#-future-roadmap) - [参考资料](#-references) ## 核心亮点

5

核心组件
Wazuh • Snort • Shuffle • T-Pot • Sysmon

<15s

从攻击到阻断
端到端自动化响应

3

活跃 Agent
Kali + Windows + T-Pot

6/6

通过的测试
100% 检测率
## 架构概述 ``` flowchart TB subgraph INTERNET["INTERNET"] NET[("WAN")] end subgraph KALI["KALI LINUX — Gateway + Attacker"] ETH0["eth0: NAT\n192.168.61.128"] SNORT["Snort 3.12.1.0\nIPS: NFQUEUE drop\nIDS: alert_fast.txt"] WAGENT1["Wazuh Agent"] SHUFFLE["Shuffle SOAR\n:3443"] end subgraph INTERNAL["INTERNAL LAN — 192.168.1.0/24"] WIN["Windows 10\n192.168.1.32\nWazuh Agent + Sysmon"] WAZUH["Wazuh Server\n192.168.1.33\nManager + Indexer + Dashboard"] TPOT["T-Pot Honeypot\n192.168.1.34\nWazuh Agent"] end subgraph EXTERNAL["EXTERNAL SERVICES"] VT["VirusTotal API"] SG["SendGrid Email"] end NET -->|NAT| ETH0 ETH0 --> SNORT SNORT -->|"clean traffic"| WIN SNORT -->|"attack traffic"| TPOT SNORT -->|"alerts"| WAGENT1 WAGENT1 -->|TCP 1514| WAZUH WIN -->|"events"| WAZUH TPOT -->|"honeypot logs"| WAZUH WAZUH -->|"webhook L10+"| SHUFFLE SHUFFLE --> VT SHUFFLE --> SG style KALI fill:#1a1a2e,stroke:#00ff41,color:#00ff41 style INTERNAL fill:#0d1117,stroke:#58a6ff,color:#58a6ff style SNORT fill:#ff4444,stroke:#ff4444,color:#fff style WAZUH fill:#0066cc,stroke:#0066cc,color:#fff style TPOT fill:#ff8800,stroke:#ff8800,color:#fff style SHUFFLE fill:#9933ff,stroke:#9933ff,color:#fff ```
View Architecture Dashboard Screenshot
Architecture Flow
**完整架构详情:** [`architecture/README.md`](architecture/README.md) ## 网络拓扑 ### IP 分配 | 机器 | 接口 | IP 地址 | 网络 | 角色 | |:--------|:----------|:-----------|:--------|:-----| | Kali Linux | eth0 | `192.168.61.128` | NAT | 互联网出口 | | Kali Linux | eth1 | `192.168.1.31` | Bridged | 内部局域网 | | Kali Linux | eth2 | `10.94.117.59` | Bridged | Snort 检测 | | Windows 10 | eth0 | `192.168.1.32` | Bridged | 受害者 + Wazuh agent | | Wazuh Server | eth0 | `192.168.1.33` | Bridged | SIEM manager | | T-Pot | eth0 | `192.168.1.34` | Bridged | 蜜罐 | | Shuffle SOAR | Docker | `10.94.117.58:3443` | — | SOAR 引擎 | ### 网段划分 | 网段 | CIDR | 用途 | |:--------|:-----|:--------| | NAT | `192.168.61.0/24` | 仅限 Kali 访问互联网 | | 内部局域网 | `192.168.1.0/24` | 所有 agent 连接至 Wazuh manager | | 管理 | `10.94.117.0/24` | Snort 接口 + Shuffle | ### 流量流向 ``` sequenceDiagram participant K as Kali (Attacker) participant S as Snort IPS/IDS participant W as Windows (Victim) participant T as T-Pot (Honeypot) participant M as Wazuh Manager participant SH as Shuffle SOAR participant VT as VirusTotal participant E as SendGrid Email K->>S: Attack traffic (eth2) S--xK: IPS: DROP malicious packets S->>W: Clean traffic forwarded (eth1) S->>M: IDS alerts via Wazuh agent W->>M: Endpoint events (Sysmon/Security) T->>M: Honeypot hits via Wazuh agent M->>SH: Level 10+ alert webhook SH->>VT: IP reputation lookup VT-->>SH: Malicious score SH->>E: Alert email notification SH->>M: IP block (active response) ```
View Network Topology Dashboard
Network Topology
**完整拓扑详情:** [`topology/README.md`](topology/README.md) ## 工具与技术栈 | 工具 | 版本 | 用途 | 许可证 | |:-----|:--------|:--------|:--------| | Kali Linux | 2025.4 | 攻击者 + 网关 + Docker 主机 | GPL | | Snort | 3.12.1.0 | 网络 IDS/IPS (NFQUEUE inline) | GPL-2.0 | | Wazuh | 4.14.4 OVA | SIEM: Manager + Indexer + Dashboard | GPL-2.0 | | Windows 10 | 10.0.17763 | 受害者端点 | 专有 | | Sysmon | v15 | 增强的 Windows 事件日志记录 | 免费 | | T-Pot | 24.04 HIVE | 多蜜罐平台 | Apache-2.0 | | Shuffle SOAR | 最新版 | 自动化事件响应 | GPL-3.0 | | VirusTotal API | v3 | IP 信誉查询 | 免费层 | | SendGrid | v3 API | 邮件通知 | 免费层 | | VMware Workstation | Pro | Kali + Windows 虚拟化 | 专有 | | VirtualBox | 最新版 | Wazuh + T-Pot 虚拟化 | GPL-2.0 | | Docker | 最新版 | Shuffle 容器 | Apache-2.0 | | iptables/NFQUEUE | 内核 | 将数据包路由至 Snort 进行 inline 处理 | GPL | ### 功能对比 | 能力 | 传统 SOC | 本实验室 | |:-----------|:----------------|:---------| | 检测方法 | 人工日志审查 | 自动化 IDS/IPS + SIEM 关联分析 | | 响应时间 | 几分钟到几小时 | **< 15 秒** | | 威胁情报 | 手动查询 IOC | 自动化 VirusTotal 情报补充 | | 告警 | 定时邮件 | 实时 webhook + 邮件 | | 蜜罐集成 | 独立系统 | 统一整合在 SIEM 管道中 | | 事件响应 | 人工 playbook | SOAR 自动化工作流 |
View Tools & Stack Dashboard
Tools & Stack
## 检测管道 ``` flowchart LR subgraph ATTACK["ATTACK"] A1["Nmap SYN Scan"] A2["Hydra SSH Brute"] A3["ICMP Sweep"] A4["Honeypot Probe"] end subgraph DETECT["DETECT"] D1["Snort IDS\nalert_fast.txt"] D2["Snort IPS\nNFQUEUE DROP"] D3["Sysmon\nWindows Events"] D4["T-Pot\nJSON Logs"] end subgraph CORRELATE["CORRELATE"] C1["Wazuh Manager\n192.168.1.33"] end subgraph RESPOND["RESPOND"] R1["Shuffle SOAR"] R2["VirusTotal API"] R3["SendGrid Email"] R4["IP Block"] end A1 --> D1 & D2 A2 --> D1 & D2 A3 --> D1 & D2 A4 --> D4 D1 --> C1 D3 --> C1 D4 --> C1 C1 -->|"Level 10+"| R1 R1 --> R2 R2 --> R3 R2 --> R4 style ATTACK fill:#ff4444,stroke:#ff4444,color:#fff style DETECT fill:#ff8800,stroke:#ff8800,color:#fff style CORRELATE fill:#0066cc,stroke:#0066cc,color:#fff style RESPOND fill:#00cc44,stroke:#00cc44,color:#fff ``` ### 自定义 Snort 规则 | SID | 类型 | 规则 | 阈值 | |:----|:-----|:-----|:----------| | 1000001 | IDS | ICMP Ping 扫描 | 5 个 ping / 2 秒 | | 1000002 | IDS | Nmap SYN 端口扫描 | 20 个 SYN / 1 秒 | | 1000003 | IDS | SSH 暴力破解 | 5 次尝试 / 60 秒 | | 1000004 | IDS | HTTP 非标准端口 (C2) | 每个数据包 | | 1000005 | **IPS** | **激进端口扫描** | **30 个 SYN / 5 秒** | | 1000006 | IDS | RDP 暴力破解 | 5 次尝试 / 30 秒 | | 1000007 | **IPS** | **ICMP 泛洪** | **50 个 ping / 1 秒** | | 1000008 | IDS | FTP 登录尝试 | 每个数据包 | | 1000009 | IDS | DNS 放大攻击 | dsize > 512 | **检测规则、解码器和规则 ID:** [`detection-pipeline/README.md`](detection-pipeline/README.md) ## 自动化工作流 ### Shuffle SOAR — 告警富化管道 ``` flowchart TD A["Wazuh Alert\nLevel >= 10"] -->|webhook| B["Shuffle\nWebhook Trigger"] B --> C["Extract src_ip\n(regex parse)"] C --> D["VirusTotal\nIP Lookup"] D --> E{"Malicious\nscore > 0?"} E -->|YES| F["SendGrid\nAlert Email"] E -->|YES| G["Wazuh\nIP Block"] E -->|NO| H["Log: Benign\n(INFO level)"] style A fill:#0066cc,stroke:#0066cc,color:#fff style E fill:#ff8800,stroke:#ff8800,color:#fff style F fill:#00cc44,stroke:#00cc44,color:#fff style G fill:#ff4444,stroke:#ff4444,color:#fff style H fill:#666,stroke:#666,color:#fff ``` **触发条件:** Wazuh 告警级别 >= 10 **平均响应时间:** 从检测到邮件发送 < 15 秒 **完整工作流文档:** [`automation-workflows/shuffle-lab1.md`](automation-workflows/shuffle-lab1.md) ## 性能结果 | 指标 | 结果 | 评级 | |:-------|:-------|:-------| | Snort 到 Wazuh 延迟 | 1-3 秒 | 极好 | | Wazuh 到 Shuffle 延迟 | 2-5 秒 | 良好 | | 端到端(从攻击到阻断) | **5-15 秒** | 极好 | | VirusTotal API 响应 | 1-3 秒 | 免费层 | | T-Pot 捕获率 | 100% | 极好 | | 邮件发送 (SendGrid) | 3-10 秒 | 良好 | | Dashboard 查询时间 | 1-2 秒 | 良好 | ### 已验证的攻击场景 | # | 攻击 | 工具 | IPS 响应 | IDS 告警 | SOAR 操作 | 状态 | |:--|:-------|:-----|:-------------|:----------|:------------|:-------| | 1 | 端口扫描 | `nmap -sS` | 30 个 SYN/5s 后阻断 | 规则 1000002 | 发送邮件 | 通过 | | 2 | SSH 暴力破解 | `hydra` | 5 次尝试后阻断 | 规则 1000003 | 封禁 IP | 通过 | | 3 | ICMP 扫描 | `ping -c` | 50 次/秒 后阻断 | 规则 1000001 | 记录日志 | 通过 | | 4 | 恶意 IP 探测 | `curl` | 无 | Wazuh 告警 | VT 评分 > 0 - 发送邮件 | 通过 | | 5 | 蜜罐 SSH | 对 T-Pot 执行 `ssh` | 无 | 规则 200002 | Dashboard 告警 | 通过 | | 6 | FIM 变更 | Win 上编辑文件 | 无 | Sysmon EID 1 | Dashboard 告警 | 通过 |
View Results & Performance Dashboard
Results & Metrics
## 安装指南 请按顺序遵循以下指南: | 步骤 | 指南 | 时间 | |:-----|:------|:-----| | 0 | [外部账户设置](installation/00-accounts-setup.md) | 15 分钟 | | 1 | [Kali 环境配置](installation/01-kali-setup.md) | 20 分钟 | | 2 | [Snort IDS/IPS 配置](installation/02-snort-ids-ips.md) | 30 分钟 | | 3 | [Kali 上的 Wazuh Agent](installation/03-wazuh-agent-kali.md) | 20 分钟 | | 4 | [Windows Agent + Sysmon](installation/04-windows-agent-sysmon.md) | 25 分钟 | | 5 | [T-Pot 蜜罐](installation/05-tpot-honeypot.md) | 60 分钟 | | 6 | [Shuffle SOAR 工作流](installation/06-shuffle-soar.md) | 30 分钟 | | 7 | [端到端验证](installation/07-verification.md) | 15 分钟 | ### 前置条件 - VMware Workstation Pro(任何近期版本) - VirtualBox(最新版) - 配置了 3 个网络适配器的 Kali Linux 虚拟机 - 宿主机最低 **16 GB RAM**(仅 T-Pot 就需要 8 GB) ## 截图与演示