cryptoswg/wazuh-siem-lab

GitHub: cryptoswg/wazuh-siem-lab

在 Apple Silicon ARM64 上手动搭建 Wazuh + Suricata + Logstash 家庭安全实验室,提供从部署到攻击检测与自动响应的完整实践方案。

Stars: 0 | Forks: 0

# 🛡️ 家庭 SIEM 实验室 — 在 Apple Silicon 上部署 Wazuh + Suricata ## 📋 目录 - [项目概述](#обзор-проекта) - [架构](#архитектура) - [技术栈](#стек-технологий) - [安装与配置](#установка-и-настройка) - [攻击场景与检测](#сценарии-атак-и-детекция) - [关键成果](#ключевые-результаты) - [ARM64 技术特性](#технические-особенности-arm64) ## 项目概述 本项目展示了如何使用 Wazuh、Suricata 和 Logstash 在家庭环境中构建一个功能完整的 SIEM 实验室。该实验室部署在 **运行于搭载 Apple Silicon (aarch64) 的 Mac 上的 VMware Fusion** 中 —— 这是一个非标准平台,由于官方安装程序不兼容 ARM64,因此需要手动安装所有组件。 **项目目标:** - 在实践中学习 SIEM 架构 - 模拟真实攻击(brute-force、扫描、可疑进程、关键文件篡改) - 配置事件的自动响应机制 - 获取 MITRE ATT&CK 的实践经验 ## 架构 ``` ┌─────────────────────────────────────────────────────┐ │ Mac (Apple Silicon) │ │ Хост / Браузер │ │ https://127.0.0.1 (dashboard) │ └──────────────────────┬──────────────────────────────┘ │ VMware Fusion ┌────────────┴────────────┐ │ siem-lab network │ │ 192.168.212.0/24 │ └──┬──────────┬───────────┘ │ │ │ ┌────────┴──┐ ┌─────┴──────┐ ┌─┴──────────┐ │ wazuh-srv │ │ ubuntu-agt │ │ kali-atk │ │.212.10 │ │.212.20 │ │.212.40 │ │ │ │ │ │ │ │ Wazuh │ │ Wazuh │ │ Hydra │ │ Indexer │ │ Agent │ │ Nmap │ │ Manager │ │ Suricata │ │ Netcat │ │ Dashboard │ │ Auditd │ │ │ │ Logstash │ │ │ │ │ └───────────┘ └────────────┘ └────────────┘ ``` ### 虚拟机 | VM | 操作系统 | IP (siem-lab) | 角色 | |----|----|---------------|------| | wazuh-srv | Ubuntu 20.04 | 192.168.212.10 | SIEM 服务器 | | ubuntu-agt | Ubuntu 20.04 | 192.168.212.20 | 受害者 / Agent | | kali-atk | Kali Linux | 192.168.212.40 | 攻击者 | ## 技术栈 | 组件 | 版本 | 用途 | |-----------|--------|------------| | Wazuh Indexer | 4.14.5 | 存储和索引告警 (OpenSearch) | | Wazuh Manager | 4.14.5 | 日志分析、应用规则 | | Wazuh Dashboard | 4.14.5 | 可视化、MITRE ATT&CK 映射 | | Wazuh Agent | 4.14.5 | 在 ubuntu-agt 上收集日志 | | Suricata | 8.x | IDS — 网络检测 | | Logstash | 8.9.0 (OSS) | 解析并发送告警至索引 | | Auditd | — | 监控系统调用 | | VMware Fusion | — | Apple Silicon 上的虚拟化平台 | ## 安装与配置 ### 针对 ARM64 的关键解决方案 官方安装脚本 `wazuh-install.sh` **不支持 ARM64** —— 它只检测 `x86_64`。所有组件均按照以下顺序手动安装: ``` wazuh-indexer → wazuh-manager → wazuh-dashboard ``` **显式指定架构的 APT 仓库:** ``` echo "deb [arch=arm64 signed-by=/usr/share/keyrings/wazuh.gpg] \ https://packages.wazuh.com/4.x/apt/ stable main" \ | sudo tee /etc/apt/sources.list.d/wazuh.list ``` **使用 Logstash 替换 Filebeat**,因为 Filebeat 与 OpenSearch 2.x 不兼容(在 Bulk API 中使用了 `_type`): ``` # 使用了 logstash-oss-with-opensearch-output-plugin-8.9.0-linux-arm64 ``` **Logstash 配置的必做修复:** ``` filter { mutate { remove_field => ["host"] # без этого mapper_parsing_exception } } ``` ### 网络配置 通过 VMware Fusion 的端口转发,实现在 Mac 上访问 Dashboard: ``` # /Library/Preferences/VMware Fusion/vmnet8/nat.conf 443 = 192.168.212.10:443 ``` ## 攻击场景与检测 ![所有 Wazuh Threat Hunting 中的告警](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/b8b369315d081326.jpg) ### 场景 B — SSH Brute-Force 🔴 **攻击:** 对 ubuntu-agt 进行 SSH 密码暴力破解 **工具:** `hydra -l testuser -P wordlist.txt ssh://192.168.212.20` **检测:** Wazuh 在 8 次以上失败尝试后触发的聚合规则 **结果:** Rule **5763** `sshd: brute force trying to get access` — **Level 10** **MITRE:** T1110 — Brute Force / Credential Access ``` [Kali] hydra → [ubuntu-agt:22] → sshd logs → [Wazuh Agent] → [Wazuh Manager] → Rule 5763 (Level 10) → [Dashboard] ``` ![SSH Brute-force — Rule 5763](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/c80c21ec25081331.jpg) ### 场景 C — Suspicious Process (Netcat) 🔴 **攻击:** 在 ubuntu-agt 上运行 netcat(模拟 reverse shell) **工具:** `nc -zv 192.168.212.10 443` **检测:** Auditd (execve syscall) + 自定义 Wazuh 规则 **结果:** Rule **100001** `Suspicious: netcat executed` — **Level 10** **MITRE:** T1059 — Command and Scripting Interpreter **自定义规则** (`/var/ossec/etc/rules/local_rules.xml`): ``` 80700 exe="/usr/bin/nc Suspicious: netcat executed on $(agent.name) T1059 ``` ![Netcat detection — Rule 100001](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/554bcb0c6b081336.jpg) ### 场景 D — File Integrity Monitoring 🟡 **攻击:** 添加用户并修改 `/etc/sudoers` **工具:** `useradd hacker123`, `echo "hacker123 ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers` **检测:** Wazuh FIM (syscheck) 实时监控 **结果:** Rule **550** `Integrity checksum changed` — **Level 7** **FIM 配置** (`/var/ossec/etc/shared/default/agent.conf`): ``` /etc/passwd,/etc/shadow,/etc/sudoers /root ``` ![FIM — Rule 550](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/aa51c5357f081341.jpg) ### Active Response — 自动封禁 IP 🔴 **触发条件:** Rule 5763 (SSH brute-force, Level 10) **动作:** `firewall-drop` — 通过 iptables 自动执行 DROP **超时时间:** 300 秒 **结果:** Rule **651** `Host Blocked by firewall-drop Active Response` ``` Rule 5763 срабатывает → Wazuh Manager отправляет команду агенту → firewall-drop скрипт выполняется на ubuntu-agt → iptables -I INPUT -s 192.168.212.40 -j DROP → kali-atk заблокирован на 5 минут ``` **配置** (`/var/ossec/etc/ossec.conf`): ``` firewall-drop local 5763 300 ``` **封锁确认:** ``` $ sudo iptables -L INPUT -n | grep 192.168.212.40 DROP all -- 192.168.212.40 0.0.0.0/0 ``` ![Active Response — Rule 651](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/17ea226605081346.jpg) ### 场景 E — Suricata Network Detection 🟡 **攻击:** 从 kali-atk 发起激进端口扫描 **工具:** `nmap -A -T4 -sV 192.168.212.20` **检测:** Suricata ET SCAN 规则 **结果:** `ET SCAN Possible Nmap User-Agent Observed` (Rule 86601) ![Suricata Nmap detection — Rule 86601](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/fe2abab333081351.jpg) ## 关键成果 | # | 场景 | 攻击工具 | Rule ID | Level | MITRE | |---|----------|-----------------|---------|-------|-------| | B | SSH Brute-force | hydra | 5763 | **10** | T1110 | | C | Netcat (reverse shell) | nc | 100001 | **10** | T1059 | | D | sudoers modification | useradd / echo | 550 | 7 | T1548 | | AR | Auto IP block | — | 651 | 3 | — | | E | Suricata Nmap detect | nmap | 86601 | 3 | T1046 | ## ARM64 技术特性 在 Apple Silicon 上运行需要采取一些非标准的解决方案: 1. **官方安装程序无法运行** — `wazuh-install.sh` 检测 `x86_64`,在 aarch64 上会报错崩溃。必须手动安装。 2. **Filebeat 与 OpenSearch 2.x 不兼容** — 它在 Bulk API 中使用了已弃用的 `_type`。已被替换为带有 `opensearch-output-plugin` 的 Logstash。 3. **auditd `-w` 文件监控** 在 ARM64 上运行不稳定 — 已替换为 `-a always,exit -F arch=b64 -S execve`。 4. **VMware Fusion NAT** 不会自动转发端口 — 需要手动编辑 `nat.conf`。 5. **磁盘空间会被占满**,原因是 `/var/ossec/queue/vd/event/LOG`(已删除但仍保持打开状态的文件) — 可通过 `lsof +L1` 和 `rm -rf /var/ossec/queue/vd/` 解决。 ## 仓库结构 ``` wazuh-siem-lab/ ├── README.md ├── configs/ │ ├── wazuh-srv/ │ │ ├── ossec.conf # конфиг менеджера │ │ ├── local_rules.xml # кастомные правила │ │ └── logstash-wazuh.conf # pipeline Logstash │ └── ubuntu-agt/ │ ├── ossec.conf # конфиг агента │ ├── agent.conf # shared config (FIM) │ └── audit.rules # auditd правила └── screenshots/ ├── allrules.jpg ├── rule5763.jpg ├── rule100001.jpg ├── rule550.jpg ├── rule651.jpg └── rule86601.jpg ``` *本项目出于学习目的,在完全隔离的虚拟环境中进行。*
标签:ARM64, Metaprompt, Suricata, Wazuh, x64dbg, 内容过滤, 安全实验环境, 安全运营, 扫描框架, 插件系统, 现代安全运营