gmsmeghana/Wazuh-SIEM-FIM-Lab-

GitHub: gmsmeghana/Wazuh-SIEM-FIM-Lab-

一个手把手的 Wazuh SIEM 实验室教程,演示如何在 Windows 端点上部署代理并配置实时文件完整性监控(FIM)与合规映射。

Stars: 0 | Forks: 0

# Wazuh SIEM 家庭实验室:实时文件完整性监控 一个端到端部署开源 [Wazuh](https://wazuh.com/) SIEM 平台的动手实践家庭实验室——包含基于 Linux 的管理器和 Windows 端点代理——并配置实时文件完整性监控 (FIM) 以检测文件系统变更并进行实时告警。 ![Wazuh 仪表板显示 1 个活跃代理,在 24 小时内有 380 个中等和 222 个低严重性警报](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/10a1458ba9142712.png) ## 实验室概述 | 项目 | 详情 | |---|---| | **SIEM 平台** | Wazuh 4.12.0 (Manager + Indexer + Dashboard) | | **管理器主机** | VirtualBox 中的 Ubuntu Server 24.04 (桥接适配器) | | **端点代理** | Windows 11 Home 上的 Wazuh Agent 4.12.0 | | **检测模块** | 文件完整性监控 (Syscheck) — 实时模式 | | **网络** | 同一 `/24` 局域网 — 管理器 `192.168.1.89`,端点 `192.168.1.12` | ### 架构 ``` +---------------------------+ | Windows 11 Endpoint | | 192.168.1.12 | | | | Wazuh Agent v4.12.0 | | - Real-time FIM | | - Watching C:\Test-FIM | +-------------+-------------+ | | TLS over TCP/1514 v +---------------------------+ | Ubuntu Server VM | | 192.168.1.89 | | | | Wazuh Manager (1514) | | Wazuh Indexer (9200) | | Wazuh Dashboard (443) | +---------------------------+ ``` ### 本实验室演示的内容 - 跨平台 SIEM 部署(Linux 服务器 + Windows 端点) - 使用身份验证密钥进行代理到管理器的注册 - 使用 Syscheck 对敏感目录进行实时文件完整性监控 - 通过桥接的 VirtualBox 适配器进行跨网络遥测 - 端到端告警管道:文件系统事件 → 代理检测 → 管理器 → 索引器 → 仪表板 - 结合 MITRE ATT&CK 技术、PCI DSS、NIST 800-53、GDPR 和 HIPAA 合规性映射的告警丰富化 ## 前置条件 - VirtualBox 7.x - Ubuntu Server 22.04+ 或 24.04 LTS ISO - 具有管理员访问权限的 Windows 10/11 主机 - 桥接网络适配器,使虚拟机和主机共享同一局域网 - 为 Ubuntu 虚拟机分配约 4 GB RAM(Wazuh Indexer 基于 JVM) ## 第一部分 — 在 Ubuntu 上安装 Wazuh 管理器 ### 1.1 添加 Wazuh GPG 密钥 ``` curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | sudo gpg --dearmor -o /usr/share/keyrings/wazuh-archive-keyring.gpg ``` ### 1.2 运行一体化安装脚本 ``` curl -sO https://packages.wazuh.com/4.12/wazuh-install.sh sudo bash ./wazuh-install.sh -a -i ``` 标志:`-a` 安装所有组件(Manager + Indexer + Dashboard),`-i` 以交互模式运行。该脚本会生成密码并将其保存在 `wazuh-install-files.tar` 中。 ### 1.3 启用开机自启服务 ``` sudo systemctl enable wazuh-indexer wazuh-manager wazuh-dashboard ``` ### 1.4 访问仪表板 浏览至 `https://` 并接受自签名证书警告。 管理员密码位于安装压缩包中: ``` sudo tar -O -xvf wazuh-install-files.tar wazuh-install-files/wazuh-passwords.txt | grep -A 1 "username: 'admin'" ``` 首次登录时,由于尚未注册任何代理,仪表板会提示部署新代理: ![Wazuh 仪表板在注册任何代理之前,显示 Deploy new agent 提示](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/5918257b19142714.png) ## 第二部分 — 在 Windows 上安装 Wazuh 代理 ### 2.1 下载并安装 从 [Wazuh 文档](https://documentation.wazuh.com/current/installation-guide/wazuh-agent/wazuh-agent-package-windows.html) 下载适用于 Windows 的官方 Wazuh Agent MSI 安装程序,并使用默认设置运行。 安装后,从 `C:\Program Files (x86)\ossec-agent\win32ui.exe` 打开 **Wazuh Agent Manager**(以管理员身份运行),显示代理正在等待身份验证密钥: ![MSI 安装后的 Wazuh Agent Manager,状态:Require import of authentication key](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/8d6d6659ad142716.png) ## 第三部分 — 将代理注册到管理器 ### 3.1 在管理器上生成代理密钥 在 Ubuntu 虚拟机上,运行代理管理工具: ``` sudo /var/ossec/bin/manage_agents ``` 在菜单中: 1. 按 `A` 添加代理 2. 名称:`WINDOWS-AGENT` 3. IP 地址:`any`(允许代理从任何 IP 连接——当端点使用 DHCP 时很有用) 4. 按 `y` 确认 ![在 Ubuntu 管理器上正在添加 WINDOWS-AGENT 的 manage_agents 工具](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/218e643959142717.png) 5. 按 `E` 提取密钥,输入代理 ID(例如 `001`) 6. 复制 base64 密钥(这是一个凭据——切勿将其提交到公共仓库或在截图中分享) ![提取代理密钥的 manage_agents,实际密钥值已编辑处理](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/63ebe705a0142719.png) 7. 按 `Q` 退出 ### 3.2 在 Windows 代理上应用密钥 返回 Windows 上的 Wazuh Agent Manager 图形界面: 1. **Manager IP**:`192.168.1.89` 2. **Authentication key**:粘贴从管理器复制的密钥 3. 点击 **Save** → **OK** 4. 从菜单中选择:**Manage → Restart** 状态翻转为 `Running`: ![Wazuh Agent Manager 显示 Status: Running,Manager IP 192.168.1.89,auth key 已编辑处理](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/fb3f0476d5142720.png) ### 3.3 在仪表板上验证代理 端点页面现在显示代理状态为 **active**: ![Wazuh Endpoints 页面显示代理 ID 002 状态为 active,Windows 11 Home,版本 4.12.0](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/272f5fcff1142722.png) 深入查看代理会显示完整的模块视图——MITRE ATT&CK、合规性 (PCI DSS)、漏洞检测和 SCA 扫描 (CIS Microsoft Windows 11 Benchmark) 已经在提取数据: ![代理概览显示 MITRE ATT&CK 战术、合规性、漏洞检测和 CIS SCA 扫描结果](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/4b7b7ecb7b142723.png) ## 第四部分 — 配置实时文件完整性监控 ### 4.1 创建受监控目录 ``` New-Item -Path "C:\Test-FIM" -ItemType Directory -Force ``` ### 4.2 编辑代理配置 配置文件位于 `C:\Program Files (x86)\ossec-agent\ossec.conf`。编辑需要管理员权限: ``` # 在提升的 PowerShell 窗口中 notepad "C:\Program Files (x86)\ossec-agent\ossec.conf" ``` 在 `` 块中,添加新的指令行: ``` C:\Test-FIM ``` `realtime="yes"` 启用即时检测而非周期性扫描。`check_all="yes"` 跟踪大小、权限、所有者、组、MD5/SHA1/SHA256 哈希——完整的完整性配置文件。 ![在记事本中打开的 ossec.conf,在 syscheck 块中添加了 C:\Test-FIM 实时指令](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/90a2f48454142725.png) ### 4.3 验证编辑并重启服务 ``` Select-String -Path "C:\Program Files (x86)\ossec-agent\ossec.conf" -Pattern "Test-FIM" New-Item -Path "C:\Test-FIM" -ItemType Directory -Force Restart-Service -Name WazuhSvc Get-Service WazuhSvc ``` Wazuh 服务干净地重新启动: ![PowerShell 显示重启后 WazuhSvc Status: Running](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/3dc39f8506142727.png) `Select-String` 确认指令位于 `ossec.conf` 的第 94 行,`Test-FIM` 目录已创建,并且服务已恢复运行状态: ![PowerShell 验证 ossec.conf 中的 FIM 指令,创建 C:\Test-FIM,并将 WazuhSvc 重启为 Running](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/705ea5f256142728.png) ## 第五部分 — 触发并验证警报 ### 5.1 生成文件系统事件 在 `C:\Test-FIM` 中,通过文件资源管理器执行操作(比 PowerShell 更可靠,因为 PowerShell 可能会保持文件句柄,并在实时哈希处理期间导致 `ERROR_SHARING_VIOLATION`): 1. 右键点击 → **新建** → **文本文档** → 命名为 `evidence.txt` 2. 在记事本中打开它 → 输入一些内容 → **Ctrl+S** → 关闭 3. 右键点击 `evidence.txt` → **删除** ### 5.2 在仪表板中查看警报 导航至代理的 **File Integrity Monitoring → Events**。出现了五个 FIM 事件,与端点上执行的操作完全匹配——文件已添加、修改和删除: ![Wazuh FIM Events 页面显示 5 个警报:evidence.txt 和 new text document.txt 的文件已添加、修改和删除](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/5b9274cf28142730.png) ### 5.3 深入查看单个警报 每个警报都是一个完全丰富的文档。选择删除 `evidence.txt` 的事件会显示元数据: ![Document Details 面板显示警报 ID、代理 IP、指示 realtime 模式的 full_log、rule.id 553,以及映射到 T1070.004 (Defense Evasion: File Deletion) 和 T1485 (Impact: Data Destruction) 的 MITRE ATT&CK](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/95c98f9114142731.png) 继续向下滚动会显示取证级别的遥测数据——文件哈希、Windows ACL 以及其他合规性框架映射(NIST 800-53、PCI DSS、GDPR、HIPAA、GPG13、TSC): ![警报详情续:文件的 MD5/SHA1/SHA256 哈希、Windows 权限、NIST 800-53 SI.7、PCI DSS 11.5 和 TSC 合规性映射](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/8c0da8bd53142733.png) 这就是 SOC 分析师在每个事件中获得的上下文级别——足以在大多数监管框架下进行调查、归因和报告。 ## 故障排除说明 本实验室遇到了几个真实的故障,值得记录下来,因为它们反映了真实的 SOC 运营问题: ### 问题 1 — “Wazuh dashboard server is not ready yet” 仪表板依赖于索引器在启动前完全上线。如果它们启动顺序颠倒(或索引器初始化缓慢),仪表板就会卡住。 **修复:**按依赖顺序重启服务: ``` sudo systemctl restart wazuh-indexer sleep 60 sudo systemctl restart wazuh-manager sudo systemctl restart wazuh-dashboard ``` ### 问题 2 — `ERROR (6716): Could not open handle for ... Error code: 32` `ERROR_SHARING_VIOLATION`——Wazuh 代理尝试打开一个文件进行哈希处理,而另一个进程仍持有该文件的句柄。当文件由 PowerShell 中的 `Out-File` 创建时,这很常见,因为它会短暂保持流处于打开状态。 **修复:**使用文件资源管理器或 `Set-Content`(它会干净地关闭句柄)进行 FIM 测试。 ### 问题 3 — 代理在仪表板上显示为“Disconnected”,但在本地正在运行 仪表板上的时间戳 `Last keep alive` 反映了最近的代理心跳。服务重启后,状态会短暂翻转为断开连接。请使用以下命令验证: ``` Get-Service WazuhSvc Get-Content "C:\Program Files (x86)\ossec-agent\ossec.log" -Tail 5 ``` 如果日志显示 `Connected to the server`,仪表板将在约 30 秒内更新状态。 ## 我学到了什么 - **服务依赖性很重要。** SIEM 平台有严格的启动顺序。在生产环境中,这由 systemd 单元依赖项处理;在实验室中,你学会了在索引器先出现异常时重启仪表板。 - **凭据会在截图中泄露。** 我编辑处理了每次提交的图像中的身份验证密钥。在真实环境中,同样的原则也适用于工单附件和 Slack 截图。 - **实时 FIM 存在时序边缘情况。** 操作系统、应用程序和 Wazuh 哈希例程之间的文件句柄争用会产生 `Error code: 32` 事件。这些不是 FIM 故障——它们是实时扫描的正常假象,SOC 分析师应该认识到这一点。 - **一个可用的 SIEM 不仅仅是安装。** 验证完整管道(端点事件 → 代理 → 管理器 → 索引器 → 仪表板)需要刻意测试,而不仅仅是检查服务状态。 - **MITRE 和合规性映射会自动进行。** 每个 Wazuh 警报都会开箱即用地标记上 MITRE ATT&CK 技术和监管框架控制措施,这正是使其可用于 SOC 报告和审计的原因。 ## 仓库结构 ``` . ├── README.md ├── LICENSE ├── .gitignore └── screenshots/ ├── 01-dashboard-no-agents.png ├── 02-agent-pre-registration.png ├── 03-manage-agents-add.png ├── 04-agent-key-extracted.png (auth key redacted) ├── 06-agent-running.png (auth key redacted) ├── 07-dashboard-active.png ├── 08-endpoints-agent-active.png ├── 09-agent-overview-modules.png ├── 10-ossec-conf-fim-directive.png ├── 11-wazuh-service-running.png ├── 12-config-verified-folder-created.png ├── 13-fim-alerts-detected.png ├── 14-alert-mitre-details.png └── 15-alert-forensic-detail.png ``` ## 参考文献 - [Wazuh 文档](https://documentation.wazuh.com/) - [Wazuh 文件完整性监控指南](https://documentation.wazuh.com/current/user-manual/capabilities/file-integrity/index.html) - [Wazuh 代理安装 — Windows](https://documentation.wazuh.com/current/installation-guide/wazuh-agent/wazuh-agent-package-windows.html) - [MITRE ATT&CK — T1070.004 (File Deletion)](https://attack.mitre.org/techniques/T1070/004/) - [MITRE ATT&CK — T1485 (Data Destruction)](https://attack.mitre.org/techniques/T1485/) **作者:** Monica Sai Meghana Ghanta **LinkedIn:** [linkedin.com/in/gmsmeghana28](https://www.linkedin.com/in/gmsmeghana28) **GitHub:** [github.com/gmsmeghana](https://github.com/gmsmeghana)
标签:AMSI绕过, Cloudflare, Conpot, DNS 解析, Home Lab, MITRE ATT&CK, PB级数据处理, Wazuh, Windows安全, 主机入侵检测, 合规框架, 威胁检测, 子域名变形, 安全可视化, 安全实验室, 安全运维, 端点安全, 网络安全, 虚拟化安全, 补丁管理, 隐私保护