zun-rhmn/wazuh-siem-lab

GitHub: zun-rhmn/wazuh-siem-lab

一个基于 Wazuh 的双蓝队 SIEM 实验环境,从三个日志源采集数据并配置五条自定义检测规则,覆盖完整的告警检测与调查流程。

Stars: 0 | Forks: 0

# Wazuh SIEM 实验环境 这是一个两人蓝队实验环境:单节点 Wazuh SIEM 从三个日志源收集数据,包含五条自定义检测规则,涵盖了从编写、测试到端到端分类处理的完整流程。 **构建者:** Zunan Rahman ([@zun_rhmn](https://github.com/zun-rhmn)) 和 Ali Devjiani ([@adevjiani](https://github.com/adevjiani)) **展示于:** Invest Vancouver,2026年8月10日 ## 架构 ``` Tailscale mesh network | +---------------------+---------------------+ | | | wazuh-siem-manager ubuntu-zrahman win-adevjiani (Ubuntu 24.04 LTS) (Ubuntu 24.04) (Windows 11) Manager + Indexer Wazuh agent Wazuh agent + Dashboard auth.log, syslog Security log VMware / Zunan Apache access/error Sysmon VMware / Zunan VirtualBox / Ali ``` 所有主机都加入了一个私有 Tailscale tailnet。Agent 通过其 MagicDNS 名称连接到 manager,因此该实验环境可以跨越两个不同的 hypervisor、两个家庭网络运行,并且在 IP 地址不断变化的情况下,无需任何端口转发或公网暴露即可正常工作。 | 组件 | 值 | | --- | --- | | Wazuh 版本 | 4.14(固定版本 — 请勿混合使用不同的次要版本) | | Manager 地址 | `wazuh-siem-manager` | | Manager FQDN | `wazuh-siem-manager.tailf359cd.ts.net` | | Dashboard | `https://wazuh-siem-manager` | | Manager OS | Ubuntu Server 24.04 LTS, 4 vCPU / 8 GB / 60 GB | | 时区 | 每台主机均为 UTC | ## 日志源 | # | 来源 | 主机 | 收集内容 | | --- | --- | --- | --- | | 1 | Windows + Sysmon | `win-adevjiani` | 安全事件日志, Sysmon 操作日志 | | 2 | Linux 认证 | `ubuntu-zrahman` | `/var/log/auth.log`, `/var/log/syslog` | | 3 | Web 服务器 | `ubuntu-zrahman` | Apache `access.log`, `error.log` | ## 自定义检测 | 规则 ID | 所有者 | 检测内容 | 级别 | | --- | --- | --- | --- | | 100200 | Ali | 多次 Windows 登录失败 | 10 | | 100201 | Ali | 可疑的 PowerShell 使用 | 9 | | 100202 | Ali | 新用户被添加到 Administrators 组 | 12 | | 100100 | Zunan | 频繁的 SSH 登录失败 | 10 | | 100101 | Zunan | Web 404 爆发 / 可疑的 user-agent | 8 | 规则位于 `rules/` 目录中,按平台划分,这样我们两人就不会编辑同一个文件。有关 ID 范围和告警级别标准,请参阅 [`docs/conventions.md`](docs/conventions.md)。 ## 仓库结构 ``` . |-- README.md |-- .gitignore |-- docs/ | |-- conventions.md # naming, ID ranges, alert levels -- read first | |-- setup.md # full build steps, manager and agents | `-- investigations/ # one writeup per triaged alert |-- rules/ | |-- linux_rules.xml # Zunan -- 100100-100199 | `-- windows_rules.xml # Ali -- 100200-100299 |-- decoders/ |-- agent-configs/ | |-- ubuntu-agent.conf # blocks for auth/syslog/apache | |-- windows-agent.conf # blocks for Security/Sysmon | `-- sysmon-config.xml # shared -- install from this copy, not a download |-- samples/ # raw log lines for offline rule testing `-- screenshots/ # --.png ``` ## 快速开始 ### 前置条件 - 已安装并登录 Tailscale 客户端,**在宿主机和 VM 内部都要操作** - 访问 tailnet 的权限(向 Zunan 请求邀请) - Wazuh dashboard 账号 ### 在进行任何操作之前,请先验证连通性 在将要运行 agent 的 VM 内部执行: ``` ping wazuh-siem-manager ``` 如果此操作失败,请停止并进行修复。没有它,后续的任何操作都无法进行。请检查 VM 内部(不仅仅是宿主机上)的 Tailscale 客户端是否已连接,以及是否启用了“Use Tailscale DNS”。 ### 注册 Agent 请使用 dashboard 的生成器,而不是手动拼凑命令: **Dashboard -> Agents -> Deploy new agent**,然后选择操作系统,输入 `wazuh-siem-manager` 作为服务器地址,并根据规范文档输入 agent 名称。 Linux: ``` # 命令由 dashboard 生成 -- 仅为示例格式 wget https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-agent/wazuh-agent_4.14.0-1_amd64.deb sudo WAZUH_MANAGER='wazuh-siem-manager' WAZUH_AGENT_NAME='ubuntu-zrahman' \ dpkg -i ./wazuh-agent_4.14.0-1_amd64.deb sudo systemctl enable --now wazuh-agent ``` Windows (管理员 PowerShell): ``` msiexec.exe /i wazuh-agent-4.14.0.msi /q ` WAZUH_MANAGER="wazuh-siem-manager" ` WAZUH_AGENT_NAME="win-adevjiani" NET START WazuhSvc ``` 然后确认 agent 在 dashboard 中显示为 **Active**。 ### 部署规则更改 ``` # 在本地编辑 rules/linux_rules.xml,提交,然后在 manager 上: sudo cp rules/linux_rules.xml /var/ossec/etc/rules/ sudo /var/ossec/bin/wazuh-logtest # paste a sample line, confirm it fires sudo systemctl restart wazuh-manager ``` ## 离线规则开发 Manager 仅在 Zunan 的笔记本电脑开机时才运行,但您不需要它来编写或测试规则。`samples/` 保存了从每个来源捕获的原始日志行。在任何 Wazuh 安装环境中,将其中一行粘贴到 `wazuh-logtest` 中,以在将其应用到共享 manager 之前确认规则是否匹配。 每当您捕获到有用的内容时,请将其添加到 `samples/` 中 —— 这正是让我们两人能够互不阻碍地进行开发的关键。 ## 运维说明 - **漏洞检测已禁用**,位于 `ossec.conf` 中。它的 CVE 数据源体积达数 GB,且与此项目无关。 - **Indexer 堆内存限制为 1 GB**,配置于 `/etc/wazuh-indexer/jvm.options` 中,低于默认值,以适配 8 GB 的 VM。 - **防火墙:** UFW 拒绝所有入站流量,除了 `tailscale0` 上的流量。Dashboard 和 agent 端口不会暴露给 LAN 或互联网。 - **如果 dashboard 正常加载但没有出现新的告警**,请首先检查宿主机的磁盘空间。当磁盘已满时,OpenSearch 会将索引切换为只读,其表现形式与损坏的 agent 完全一样。 ## 展示的技能 SIEM 部署与管理 - 跨 Windows、Linux 和 Web 服务器的日志源接入 - 使用 Wazuh 规则语言进行检测工程 - 告警分类与调查 - 使用零信任网状 VPN 的安全网络设计 - 包含分支保护和同行评审的协作式 Git 工作流。
标签:Wazuh, 安全运营, 扫描框架, 网络安全研究