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) 以检测文件系统变更并进行实时告警。

## 实验室概述
| 项目 | 详情 |
|---|---|
| **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'"
```
首次登录时,由于尚未注册任何代理,仪表板会提示部署新代理:

## 第二部分 — 在 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**(以管理员身份运行),显示代理正在等待身份验证密钥:

## 第三部分 — 将代理注册到管理器
### 3.1 在管理器上生成代理密钥
在 Ubuntu 虚拟机上,运行代理管理工具:
```
sudo /var/ossec/bin/manage_agents
```
在菜单中:
1. 按 `A` 添加代理
2. 名称:`WINDOWS-AGENT`
3. IP 地址:`any`(允许代理从任何 IP 连接——当端点使用 DHCP 时很有用)
4. 按 `y` 确认

5. 按 `E` 提取密钥,输入代理 ID(例如 `001`)
6. 复制 base64 密钥(这是一个凭据——切勿将其提交到公共仓库或在截图中分享)

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`:

### 3.3 在仪表板上验证代理
端点页面现在显示代理状态为 **active**:

深入查看代理会显示完整的模块视图——MITRE ATT&CK、合规性 (PCI DSS)、漏洞检测和 SCA 扫描 (CIS Microsoft Windows 11 Benchmark) 已经在提取数据:

## 第四部分 — 配置实时文件完整性监控
### 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 哈希——完整的完整性配置文件。

### 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 服务干净地重新启动:

`Select-String` 确认指令位于 `ossec.conf` 的第 94 行,`Test-FIM` 目录已创建,并且服务已恢复运行状态:

## 第五部分 — 触发并验证警报
### 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 事件,与端点上执行的操作完全匹配——文件已添加、修改和删除:

### 5.3 深入查看单个警报
每个警报都是一个完全丰富的文档。选择删除 `evidence.txt` 的事件会显示元数据:

继续向下滚动会显示取证级别的遥测数据——文件哈希、Windows ACL 以及其他合规性框架映射(NIST 800-53、PCI DSS、GDPR、HIPAA、GPG13、TSC):

这就是 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安全, 主机入侵检测, 合规框架, 威胁检测, 子域名变形, 安全可视化, 安全实验室, 安全运维, 端点安全, 网络安全, 虚拟化安全, 补丁管理, 隐私保护