christian6134/Security-Monitoring-Wazuh-Suricata

GitHub: christian6134/Security-Monitoring-Wazuh-Suricata

一个详细记录使用Wazuh SIEM和Suricata IDS构建端到端安全监控流水线的家庭实验室项目,涵盖从部署配置到攻击检测的完整流程。

Stars: 0 | Forks: 0

## 安全监控家庭实验室 **作者**: Christian Garces **实验重点**: 使用 Wazuh SIEM 和 Suricata IDS 构建端到端的安全监控流水线。 ### 概述 本项目记录了使用 **Wazuh** 和 **Suricata** 部署小规模 **安全信息与事件管理 (SIEM)** 环境的过程。实验室的目标是: - 从端点**采集**主机遥测数据 - 使用 IDS 传感器**检查**网络流量 - **生成**入侵警报 - 在集中式 SIEM 中**获取并关联**事件 - 在仪表板中**可视化并调查**检测结果 该实验室由运行在 Ubuntu 虚拟机上的 Wazuh 服务器和同时运行 Wazuh agent 及 Suricata IDS 的 Raspberry Pi 端点组成。Raspberry Pi 充当网络入侵检测传感器,同时将结构化警报转发到 Wazuh SIEM 进行分析和可视化。 ### 实验室架构 - **SIEM 平台**: 运行在 `Ubuntu Server` 上的 `Wazuh` (Manager, Indexer, Dashboard) - **IDS 传感器 / 端点**: 运行 `Suricata` 和 `Wazuh Agent` 的 `Raspberry Pi` - **网络**: 家庭实验室网络,Raspberry Pi 在其主接口上监控流量 **逻辑架构:** ``` Home / Lab Network │ +-------+--------+ | Raspberry Pi | | Suricata IDS | | Wazuh Agent | +-------+--------+ │ Suricata JSON Alerts (eve.json) ▼ +---------------------+ | Ubuntu Server VM | | Wazuh Manager | | Wazuh Indexer | | Wazuh Dashboard | +---------------------+ ``` *图 1 – 高层架构:Raspberry Pi 上的 Suricata 生成警报并转发到 Ubuntu 上的 Wazuh SIEM 技术栈。* ### 环境设置 #### Wazuh SIEM 部署 第一步是在 Ubuntu Server VM 上部署 Wazuh SIEM 技术栈。该技术栈包含三个主要组件: - **Wazuh Manager** – 收集和分析安全事件 - **Wazuh Indexer** – 存储和索引事件数据 - **Wazuh Dashboard** – 提供用于安全监控的 Web 界面 image *图 2 – Wazuh server、dashboard 和 indexer 已在 Ubuntu Server 上成功安装。* 安装完成后,从主机访问 Wazuh dashboard 以确认 SIEM 平台正常运行。 image *图 3 – 从主机 OS 查看 Wazuh dashboard 登录界面和初始视图。* #### 端点 Agent 注册 为了收集主机遥测数据,在 Raspberry Pi 端点上安装了 **Wazuh agent**。 image *图 4 – Wazuh agent 已在 Raspberry Pi 上安装并配置。* 识别 Ubuntu server 的 IP 地址,以便 agent 能够与 Wazuh manager 通信。 image *图 5 – Raspberry Pi agent 用于注册的 Wazuh server IP 地址。* ### Suricata IDS 部署与配置 #### 安装 Suricata 在 Raspberry Pi 上安装 Suricata 以充当 **网络入侵检测传感器**。 image *图 6 – Suricata 已在 Raspberry Pi 上成功安装。* 已确认 IDS 服务正在运行。 image *图 7 – Suricata 服务正在运行且已启用。* 接下来,检查系统接口以确定 Suricata 应监控哪个网络接口。 image *图 8 – Raspberry Pi 上的网络接口,用于选择受监控的接口。* #### Suricata 配置 Suricata 安装目录包含配置文件、规则集和运行时日志。 image *图 9 – 包含配置文件和规则集的 Suricata 目录结构。* Suricata 包含许多默认检测规则。 image image *图 10 – Suricata 自带的预打包规则。* 编辑主配置文件 `suricata.yaml` 以匹配实验室网络环境。 **所做的更改:** - 更新 `HOME_NET` 以匹配受监控的子网 `192.168.122.0/24` - 更新 `af-packet` 接口为正确的网络接口 image *图 11 – 针对实验室网络调整的 `suricata.yaml`(HOME_NET 和 af-packet 接口)。* 配置中还确认了 Suricata 规则路径。 image *图 12 – Suricata 规则路径配置及已启用的规则文件。* #### 安装 Emerging Threats 规则集 为了启用网络攻击检测,安装了 **Emerging Threats** 社区规则集。 image *图 13 – 为 Suricata 安装 Emerging Threats 规则集。* 还审查并安装了 Suricata 可用的其他规则来源。 image image *图 14 – 管理和更新额外的 Suricata 规则来源。* 随后验证了 Suricata 配置。 image *图 15 – 确认 Suricata 成功加载 Emerging Threats 规则集的验证结果。* ### Suricata 日志与遥测 Suricata 生成多个捕获不同类型遥测数据的日志文件。 image *图 16 – 包含多个遥测文件的 Suricata 日志目录。* **关键日志文件包括:** - `eve.json` – 用于 SIEM 获取的结构化 JSON 事件日志 - `fast.log` – 快速人类可读警报 - `stats.log` – Suricata 性能统计数据 - `suricata.log` – Suricata 运行时消息和诊断 ### 监控与检测工作流 #### 验证 IDS 检测 查看了 Suricata 运行时日志以确认初始化成功。 image *图 17 – Suricata 启动日志确认 IDS 引擎已激活。* 生成测试网络流量以触发 IDS 检测,验证规则集是否成功识别潜在恶意活动。 image *图 18 – 由测试 IDS 流量生成的 Suricata 检测。* 实施了自定义 Suricata 检测规则,以检测指向受监控网络的 ICMP、SSH 和 HTTP 流量。 image image *图 19 – 自定义 Suricata 规则及加载社区和自定义规则集的配置。* 配置验证确认 IDS 引擎成功加载了所有规则。 image *图 20 – 确认活跃的自定义和社区规则的验证输出。* #### 实时 IDS 监控 使用 `fast.log` 文件监控 Suricata 警报。 image *图 21 – Suricata 实时检测多个网络事件,同时生成测试流量。* 在使用以下命令监控 Suricata 警报日志时: ``` tail -f /var/log/suricata/fast.log ``` 从另一个终端生成了诸如 ICMP ping 和 SSH 连接尝试之类的测试流量。当数据包穿过受监控的接口时,Suricata 根据其加载的检测特征对其进行检查,并在检测到匹配活动时立即生成警报。 ### 解析 Suricata JSON 日志 Suricata 的 `eve.json` 输出包含结构化事件数据,但难以直接阅读。 image *图 22 – Suricata 的原始 `eve.json` 输出。* 使用 `jq` 工具过滤和解析 JSON 警报。 *图 23 – 使用 `jq` 解析 Suricata JSON 警报以便于分析。* **使用的命令:** ``` sudo tail -f /var/log/suricata/eve.json | jq 'select(.event_type=="alert")' ``` 此命令实时流式传输 Suricata 事件日志,并仅过滤 IDS 警报事件。 ### 将 Suricata 集成到 Wazuh 为了集中管理 IDS 警报,配置 Wazuh 以获取 Suricata 事件日志。 *图 24 – Wazuh 配置通过 `` 条目监控 Suricata `eve.json` 日志。* 在 `ossec.conf` 中添加了一个 `` 条目,指示 Wazuh 监控 Suricata `eve.json` 日志,从而允许 Suricata 警报直接转发到 Wazuh SIEM 中。 ### 在 SIEM 中可视化 IDS 警报 集成后,Suricata 警报在 Wazuh dashboard 中变得可见。 *图 25 – Suricata 警报被获取到 Wazuh 并通过 Discover dashboard 进行可视化。* Discover dashboard 用于过滤事件。通过以下方式过滤: ``` rule.groups:suricata ``` 将 IDS 警报与其他系统日志(例如 PAM 身份验证事件)隔离开来。 ### 攻击模拟测试 执行了多次模拟攻击以验证检测。 **示例暴力破解 SSH 活动:** ``` for i in {1..30}; do ssh fakeuser@192.168.122.25 done ``` 这些操作生成了 Suricata 警报,并成功被 Wazuh 获取和在 SIEM dashboard 中可视化,确认了从网络事件到 SIEM 的端到端可见性。 ### 结果与学习成果 本实验室成功演示了一个端到端的安全监控流水线: ``` Network Traffic ↓ Suricata IDS Sensor (Raspberry Pi) ↓ Structured JSON Alerts (eve.json) ↓ Wazuh SIEM Ingestion ↓ Centralized Security Event Analysis ``` 本项目展示了以下方面的实践经验: - 入侵检测系统 (IDS) 的部署与配置 - SIEM 集成与日志转发 - 检测规则的创建与管理(社区和自定义规则) - 使用 `jq` 等工具进行日志解析与扩充 - 在 SIEM dashboard 中进行安全事件的可视化与调查 这个结构化的家庭实验室通过将网络 IDS 遥测数据与集中式、可查询的安全分析相结合,紧密模拟了现实世界的安全运营工作流程。
标签:AMSI绕过, Homebrew安装, Homelab, Metaprompt, OISF, Raspberry Pi, Suricata, Wazuh, 仪表盘, 入侵检测系统, 内存执行, 威胁检测, 安全事件分析, 安全数据湖, 安全运营, 家庭实验室, 对抗机器学习, 扫描框架, 日志管理, 日志聚合, 现代安全运营, 端点遥测, 网络安全, 网络流量分析, 隐私保护