ouaffaqoussama/siem-ids-detection-lab

GitHub: ouaffaqoussama/siem-ids-detection-lab

基于 Splunk 和 Snort 构建的 SIEM+IDS 检测流水线实验室,在四种模拟攻击场景下实现 100% 检测率并附带完整事件响应手册。

Stars: 0 | Forks: 0

# SIEM + IDS 检测流水线 — Splunk Enterprise & Snort **端到端攻击检测实验室:自定义 IDS 规则、实时 SIEM 关联,以及完整的事件响应手册 —— 在 4 种模拟攻击类型中实现了 100% 的检测率。** ## 架构 位于隔离子网的三虚拟机环境: | 角色 | 操作系统 | 软件 | |---|---|---| | Web 服务器 (靶机 + IDS 主机) | Windows Server 2016 | IIS 10, Snort 2.9.20, Splunk Universal Forwarder | | SIEM 服务器 | Windows Server 2016 | Splunk Enterprise 9.x | | 攻击者 | Kali Linux | Hydra v9.6, Nmap 7.98 | **检测数据流:** ``` Kali attack → Web Server NIC → Snort IDS (packet inspection) → alert.ids log → Splunk Universal Forwarder (TCP 9997) → Splunk index (csa271_logs) → Real-time SPL alerts → Triggered Alerts dashboard ``` 所有虚拟机时钟均通过 NTP 同步(`w32tm /resync /force`)—— 准确的时间戳对于跨源事件关联和事件时间线重建至关重要。 ## 我构建的内容 **1. 自定义 Snort 检测规则 (`local.rules`)** 编写了基于 TCP flag 行为而非工具名称的签名规则: - **SYN 扫描** — 针对仅设置了 SYN flag 的 TCP 数据包(`flags:S`)进行告警,这是半开扫描的标志 - **Xmas 扫描** — 针对 FIN+PSH+URG flag 组合进行告警 - **UDP 扫描** — 针对扫描受保护子网的 UDP 数据报进行告警 - **TCP connect 扫描** — 通过 Snort 的 stream 预处理器识别已完成握手的端口扫描来进行检测 **2. 日志转发流水线** 在 Web 服务器上配置了 Splunk Universal Forwarder(`inputs.conf` / `outputs.conf`),用于追踪 Snort 的告警日志、IIS HTTP/FTP 日志、Windows 安全事件以及 Windows 防火墙日志,并将其汇聚到专用的 Splunk index 中。 **3. 五个实时 SPL 关联告警** 保存的搜索关联了 Windows EventCode(登录失败激增)、FTP 状态码异常(`sc_status=530` 重复 → 暴力破解)以及 Snort sourcetype 事件 —— 每一项都会作为高严重性的触发告警实时发出。 **4. 攻击模拟与验证** 从 Kali 执行了四种攻击类型 —— FTP 暴力破解(Hydra + rockyou.txt)、SYN 扫描(`nmap -sS`)、TCP connect 扫描(`nmap -sT`)、UDP 扫描(`nmap -sU`)—— 实现了 **100% 检测率:18 个高严重性告警,零漏报**。这些扫描还揭示了一个真实发现:目标机器上 **WinRM (端口 5985) 暴露**,已被标记待强化。 **5. 事件响应手册** 编写了一份涵盖五种事件类型(HTTP 暴力破解、FTP 暴力破解、SYN/TCP/UDP 扫描)的完整手册,每种类型均包含: - 检测逻辑与手动 SPL 调查查询 - **检测 → 遏制 → 根除 → 恢复 → 事件后(Post-Incident)** 流程 - 针对每种攻击类型的 PowerShell 遏制命令 - 升级与通知矩阵,以及证据保全清单 ## 展现的技能 `Splunk (SPL)` · `Snort IDS` · `检测工程` · `日志转发与索引` · `Windows Server 2016` · `IIS` · `Nmap` · `Hydra` · `事件响应(NIST 生命周期)` · `PowerShell` · `网络流量分析` ## 在生产环境中我会如何改进 - 部署 Snort 3.x(或 Suricata),在自定义规则之下叠加社区规则集 - 通过 TLS 传输日志,并增加一层 heavy forwarder 以实现大规模解析 - 根据基线流量调整阈值,在发出告警前控制误报率 - 添加 SOAR 式自动遏制,而不是使用手动 PowerShell 响应 *完整的配置报告和手册可应要求提供(已脱敏)。*
标签:AI合规, CTI, 安全实验环境, 安全运营, 库, 应急响应, 扫描框架, 插件系统, 红队行动