edsonencinas/suricata_project

GitHub: edsonencinas/suricata_project

一个在 GCP 免费层上部署 Suricata IDS 并与 Splunk SIEM 集成的完整实验指南,实现网络层入侵检测与安全日志的关联分析。

Stars: 0 | Forks: 0

# 🛡️ Google Cloud Platform (GCP) 免费层上的 Suricata IDS ## 📌 概述 本项目是 **Splunk 和日志源实验 (Splunk and Log Source Lab)** 的扩展,此前 Splunk 已作为 SIEM 部署,并使用专用的日志源 VM 来生成系统日志。 在此阶段,引入 Suricata 作为**基于网络的入侵检测系统 (IDS)**,以提供网络遥测和安全告警。Suricata 监控攻击者与日志源 VM 之间的网络流量,并生成可转发至 Splunk 进行关联分析的告警。 本指南的目标是记录在实验环境中**安装、配置和验证 Suricata** 的过程。 ## Suricata GCP 实验架构 ``` ┌──────────────────────┐ │ Attacker VM │ │ (Kali / Ubuntu) │ │ - Hydra, Nmap, Ping │ └─────────┬────────────┘ │ │ Test Traffic ▼ ┌──────────────────────┐ │ Target VM │ │ - SSH enabled │ │ - auth.log │ └─────────┬────────────┘ │ │ Mirrored / Routed Traffic ▼ ┌──────────────────────┐ │ Suricata Sensor │ │ Runs: │ │ - IDS │ │ - eve.json output │ └─────────┬────────────┘ │ │ Logs forwarded ▼ ┌──────────────────────┐ │ Log Forwarder VM │ │ Splunk Universal │ │ Forwarder sends: │ │ - Suricata logs │ │ - auth.log │ └─────────┬────────────┘ │ │ Indexed events ▼ ┌──────────────────────┐ │ Splunk SIEM │ │ - Alerts dashboard │ │ - SPL searches │ │ - Correlation │ └──────────────────────┘ ``` ## 🎯 目标 - 在专用传感器 VM 上安装 Suricata - 配置 Suricata 进行数据包捕获 - 启用并更新检测规则 - 使用测试攻击验证检测功能 - 生成用于 SIEM 接收的 IDS 告警 ## 🖥️ 环境 - 操作系统: Ubuntu / Debian / Kali Linux - 权限: Root 或 sudo 权限 - 现有实验环境: 已部署 Splunk Server VM 和 Log Source VM - Suricata VM 充当专用的网络传感器 ## ⚙️ Suricata 分步安装指南 ### 1️⃣ 更新系统 ``` sudo apt update && sudo apt upgrade -y ``` ### 2️⃣ 安装 Suricata ``` sudo apt install suricata -y ``` 验证安装: ``` suricata -V ``` ### 3️⃣ 识别网络接口 Suricata 必须监听正确的接口才能捕获流量。 ``` ip a ``` 常见接口名称: - eth0 - ens4 (GCP VM 常见) - enp0s3 ### 4️⃣ 配置 Suricata 编辑配置文件: ``` sudo nano /etc/suricata/suricata.yaml ``` **4.1 配置 HOME_NET** 设置监控的网络范围: ``` HOME_NET: "[192.168.1.0/24]" #The subnet where the VM belong ``` 用于实验测试: ``` HOME_NET: "any" ``` **4.2 配置捕获接口** 找到 `af-packet` 部分并设置您的接口: ``` af-packet: - interface: eth0 ``` 将 `eth0` 替换为您的实际接口名称。 ### 5️⃣ 更新检测规则 下载并更新 Suricata 规则: ``` sudo suricata-update ``` 规则存储在: ``` /var/lib/suricata/rules/ ``` ### 6️⃣ 启动 Suricata 设置 Suricata 开机自启并启动服务: ``` sudo systemctl enable suricata sudo systemctl start suricata ``` 检查状态: ``` sudo systemctl status suricata ``` ### 7️⃣ 验证检测 触发一个已知的测试签名: ``` curl http://testmynids.org/uid/index.html ``` 检查告警: ``` cat /var/log/suricata/fast.log ``` 成功的告警确认 Suricata 正在检查网络流量。 8️⃣ Suricata 日志文件 日志存储在: ``` /var/log/suricata/ ``` 关键文件: | 文件 | 描述 | | -------------- | ---------------------------- | | `fast.log` | 人类可读的告警 | | `eve.json` | 用于 SIEM 接收的 JSON 事件 | | `suricata.log` | 引擎日志和错误 | | `stats.log` | 性能统计数据 | ## 📤 转发 Suricata 日志到 Splunk (Universal Forwarder) 本项目建立在早期的 **Splunk 和日志源实验** 基础之上,其中 **Splunk Universal Forwarder (UF)** 已被引入。 有关详细的 UF 安装步骤,请遵循上一个仓库中的说明: **参考:** ***Splunk and Log Source Lab → Universal Forwarder Installation Guide*** [点击这里](https://github.com/edsonencinas/splunk-log-source-lab.git) ### 1️⃣ 安装 Splunk Universal Forwarder (Suricata VM) 按照早期项目的相同安装步骤,在 Suricata VM 上安装并启动 Splunk Universal Forwarder。 ### 2️⃣ 转发 Suricata 日志 将 Suricata 日志添加到 Splunk 监控: ``` sudo /opt/splunkforwarder/bin/splunk add monitor /var/log/suricata/eve.json -index suricata -sourcetype suricata:json sudo /opt/splunkforwarder/bin/splunk add monitor /var/log/suricata/fast.log -index suricata -sourcetype suricata:alert ``` ## 🧠 这如何扩展 Splunk 实验 之前的 Splunk 和日志源项目专注于基于主机的日志记录。 此扩展增加了网络层检测,从而实现: - 洞察扫描和暴力破解攻击 - 基于网络的告警 - 在 Splunk 中关联主机日志和 IDS 告警 这模拟了一个真实世界的 SOC 环境,其中 **端点日志和网络遥测数据被一起分析**。
标签:AMSI绕过, EVE JSON, GCP, Google Cloud Platform, Homebrew安装, Hydra, Metaprompt, NIDS, Nmap, PB级数据处理, Suricata, Suricata规则, 入侵检测系统, 威胁检测, 安全实验室, 安全数据湖, 安全运维, 实验环境, 容器化, 插件系统, 流量监控, 现代安全运营, 网络安全, 网络遥测, 虚拟驱动器, 隐私保护