0xF477yy/wazuh-siem-fim-deployment

GitHub: 0xF477yy/wazuh-siem-fim-deployment

该项目提供自动化脚本和分步指南,用于部署 Wazuh SIEM 并在 Windows 与 Linux 端点上配置实时文件完整性监控。

Stars: 0 | Forks: 0

# 🛡️ Wazuh SIEM 部署与文件完整性监控 (FIM) 设置 此仓库包含用于部署和配置 **Wazuh SIEM** 以创建集中式安全监控环境的自动化脚本、配置文件和分步文档。 本项目是作为 **ITSimplera Solutions 网络安全与基础设施实习项目** 的 **第一周实习任务** 完成的。 ## 📋 目录 1. [目标](#-objective) 2. [架构概述](#%EF%B8%8F-architectural-overview) 3. [环境与软件规范](#-environment--software-specifications) 4. [分步部署指南](#-step-by-step-deployment-guide) - [步骤 1:部署 Wazuh 服务器 (OVA)](#step-1-deploying-the-wazuh-server-ova) - [步骤 2:注册 Windows Agent](#step-2-enrolling-the-windows-agent) - [步骤 3:注册 Linux Agent](#step-3-enrolling-the-linux-agent) 5. [文件完整性监控 (FIM) 设置](#-file-integrity-monitoring-fim-setup) 6. [告警验证与事件生成](#-alert-validation--event-generation) - [Windows FIM 事件验证](#windows-fim-event-verification) - [Linux FIM 事件验证](#linux-fim-event-verification) 7. [Wazuh FIM 告警解析](#-wazuh-fim-alert-breakdown) 8. [结论与关键学习点](#-conclusion--key-learnings) ## 🎯 目标 使用 **Wazuh SIEM** 平台建立集中式安全监控解决方案。部署内容包括: * 在 Oracle VirtualBox 中设置中央 Wazuh Manager。 * 将 Windows 和 Linux 端点注册为受监控的 agent。 * 配置具有 diff 报告(`report_changes`)功能的实时**文件完整性监控 (FIM)**。 * 通过模拟文件篡改攻击来验证威胁检测和日志分析。 ## 🗺️ 架构概述 下图说明了部署中日志、配置参数和告警触发器的流向: ``` graph TD %% Define Nodes subgraph Endpoints [Monitored Endpoints] WA[Windows Agent
Host OS / VM] LA[Linux Agent
Ubuntu/Rocky VM] end subgraph Network [Virtual Network Subnet] BN[Bridged Network Adapter] end subgraph WazuhStack [Wazuh SIEM Server VM] WM[Wazuh Manager
Rule Engine & Decoders] WI[Wazuh Indexer
Elasticsearch/OpenSearch Database] WD[Wazuh Dashboard
Web UI Interface] WM -->|Stores Alerts| WI WD -->|Queries Alerts| WI end User((Security Analyst)) -->|HTTPS Port 443| WD WA -->|Logs & FIM Alerts
Port 1514 TCP| BN LA -->|Logs & FIM Alerts
Port 1514 TCP| BN BN -->|Central Ingestion| WM %% Styles classDef endpoint fill:#f9f,stroke:#333,stroke-width:2px; classDef manager fill:#85C1E9,stroke:#333,stroke-width:2px; classDef network fill:#F5B041,stroke:#333,stroke-width:1px,stroke-dasharray: 5 5; class WA,LA endpoint; class WM,WI,WD manager; class BN network; ``` ## 💻 环境与软件规范 * **Hypervisor:** Oracle VM VirtualBox (v7.x) * **Wazuh Manager:** Wazuh 虚拟设备 OVA (v4.8.0),预装 Linux (CentOS/Rocky 替代内核)。 * *资源:* 4 vCPUs, 8 GB 内存, 50 GB 存储。 * *网络:* 桥接网卡(确保具有唯一的局域网 IP 以供 agent 发现)。 * **端点:** * **Windows 端点:** Windows 10/11 主机或虚拟机。 * **Linux 端点:** Ubuntu 22.04 LTS 或类似的虚拟机。 ## 🚀 分步部署指南 ### 步骤 1:部署 Wazuh 服务器 (OVA) 1. 从 [Wazuh 虚拟机文档](https://documentation.wazuh.com/current/deployment-options/virtual-machine/virtual-machine.html) 下载官方预配置的虚拟设备。 2. 将 `.ova` 文件导入 **VirtualBox** (`文件` -> `导入虚拟电脑`)。 3. **重要提示:** 将网络适配器类型从 NAT 更改为**桥接网卡**,以使服务器可在本地网络中访问。 4. 启动虚拟机。使用默认凭据(`root` / `wazuh` 或设置界面中配置的凭据)登录。 5. 运行以下命令获取服务器 IP 地址: ip a 6. 在主机上打开 Web 浏览器并登录 Wazuh Web UI: * **URL:** `https://` * **凭据:** 默认管理员凭据(通常为 `admin` / `admin` 或在设置期间生成)。 ### 步骤 2:注册 Windows Agent 为了实现 Windows Agent 注册的自动化,我们创建了一个 PowerShell 安装脚本。 1. 以**管理员**身份打开 PowerShell。 2. 运行部署脚本: Set-ExecutionPolicy Bypass -Scope Process -Force .\scripts\install-agent.ps1 -ManagerIP "" 3. 此脚本将自动下载 Windows agent MSI,配置 manager IP,注入 FIM 配置,并启动 `Wazuh` Windows 服务。 ### 步骤 3:注册 Linux Agent 为了实现 Linux Agent 注册的自动化: 1. 将 `./scripts/install-agent.sh` 脚本复制到您的 Linux 虚拟机。 2. 使用 root 权限运行它: chmod +x install-agent.sh sudo ./install-agent.sh "" 3. 该脚本会配置软件仓库,安装 `wazuh-agent`,修改 `/var/ossec/etc/ossec.conf` 以监控 `/var/wazuh-fim-test`,并重启 agent 服务。 ## 🔍 文件完整性监控 (FIM) 设置 Wazuh 的文件完整性监控 (FIM) 在 agent 上的 `ossec.conf` 文件中的 `` 块内进行配置。 我们的脚本会自动部署以下配置: ### Windows Agent (`C:\Program Files (x86)\ossec-agent\ossec.conf`): ``` C:\wazuh-fim-test ``` ### Linux Agent (`/var/ossec/etc/ossec.conf`): ``` /var/wazuh-fim-test ``` ### 关键配置指令: * **`realtime="yes"`**: 配置通过内核空间钩子(Linux 使用 `inotify`,Windows 使用 `ReadDirectoryChangesW`)进行即时监控,而不是依赖定期的计划扫描。 * **`report_changes="yes"`**: 配置 Wazuh 记录确切的文件内容差异,并将其发送给 manager,使安全分析师能够准确检查更改了哪些文本。 * **`check_all="yes"`**: 检查文件大小、权限、所有者、组、修改情况以及加密哈希 (MD5, SHA1, SHA256),以实现完整的完整性跟踪。 ## 🧪 告警验证与事件生成 为了测试我们的 FIM 设置,我们运行了模拟恶意或未经授权的文件篡改的自动化验证脚本。 ### Windows FIM 事件验证 运行以下脚本来生成添加、修改和删除事件: ``` .\scripts\fim-test.ps1 ``` * **预期输出:** 对 `C:\wazuh-fim-test\intern_report.txt` 的创建、修改和删除将在仪表板上触发相应的告警。 ### Linux FIM 事件验证 在您的 Linux 机器上运行以下脚本: ``` sudo chmod +x ./scripts/fim-test.sh sudo ./scripts/fim-test.sh ``` * **预期输出:** `/var/wazuh-fim-test` 内的文件事件将触发相应的告警。 ## 🚨 Wazuh FIM 告警解析 当您在 **Wazuh Dashboard** 的 **Security Events** 或 **File Integrity Monitoring** 下检查时,请搜索以下特定于 FIM 的规则(这些是 Wazuh 默认的内置 `syscheck` 规则 ID,并非本次部署自定义的): 1. **规则 554(文件已添加):** 在首次创建 `intern_report.txt` 时触发。 2. **规则 550(文件已修改):** 在脚本向 `intern_report.txt` 追加字符串时触发。在仪表板中点击此告警将显示一个突出显示新增行的 **diff 块**。 3. **规则 553(文件已删除):** 在脚本于测试结束时删除文件后触发。 *注意:请确保在 Wazuh Dashboard 中截取这些告警的屏幕截图,以用于您的提交报告!* ## 🏁 结论与关键学习点 通过完成此部署,我们成功地: 1. 在虚拟化环境中配置并管理了**集中式 SIEM 基础设施**。 2. 了解了 agent 到 manager 的安全通信(使用通过端口 1514 和 1515 传输的加密密钥)。 3. 配置了 **FIM 策略**以实时监控敏感的系统资产。 4. 演示了如何执行**安全事件验证**,以验证安全运营中心 (SOC) 中的告警阈值和主动监控配置。
标签:AI合规, Cutter, PB级数据处理, Wazuh, 安全基础设施部署, 安全运维