shaileshnputhran/wazuh-siem-homelab
GitHub: shaileshnputhran/wazuh-siem-homelab
在 macOS Apple Silicon 上使用 Docker 构建企业级 Wazuh SIEM 家庭实验室的完整指南与实践记录,帮助安全从业者零成本动手掌握 SOC 核心技能。
Stars: 0 | Forks: 0
# 🛡️ Wazuh SIEM 家庭实验室 — macOS (M2 Apple Silicon)
## 📋 项目概述
本项目记录了在搭载 Apple Silicon M2 芯片的 Mac 上,使用 Docker Desktop 构建和运行基于 **企业级 SIEM 家庭实验室**(运行 Wazuh 4.10.3)的全过程。该实验室模拟了一个真实的 SOC 监控环境——包括受监控的终端、实时告警生成、漏洞检测、文件完整性监控以及 MITRE ATT&CK 映射检测。
构建此实验室旨在培养并展示以下实际的 SOC 分析师技能:
- SIEM 部署与配置
- 终端代理的注册与监控
- 告警分诊与调查
- 漏洞管理
- 文件完整性监控 (FIM)
- 安全配置评估 (SCA)
- 编写自定义检测规则
- MITRE ATT&CK 技术映射
## 🏗️ 实验室架构
```
┌─────────────────────────────────────────────────────┐
│ M2 MacBook │
│ │
│ ┌─────────────────────────────────────────────┐ │
│ │ Docker Desktop │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────────────┐ │ │
│ │ │ wazuh. │ │ wazuh.manager │ │ │
│ │ │ indexer │◄──│ (Detection Engine) │ │ │
│ │ │ (OpenSearch)│ └─────────────────────┘ │ │
│ │ └──────┬──────┘ ▲ │ │
│ │ │ │ │ │
│ │ ┌──────▼──────┐ │ │ │
│ │ │ wazuh. │ │ │ │
│ │ │ dashboard │ │ │ │
│ │ │ (Web UI 443)│ │ │ │
│ │ └─────────────┘ │ │ │
│ └─────────────────────────────┼───────────────┘ │
│ │ │
│ ┌─────────────────────────────▼───────────────┐ │
│ │ Wazuh Agent (Mac endpoint) │ │
│ │ /Library/Ossec/ — monitoring macOS 26.3 │ │
│ └─────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘
Dashboard URL: https://localhost:443
Agent ID: 001 (Mac.lan) — Status: Active
```
## 🛠️ 工具与技术
| 组件 | 技术 | 用途 |
|---|---|---|
| SIEM 平台 | Wazuh 4.10.3 | 集中安全监控 |
| 搜索与存储 | OpenSearch (Wazuh Indexer) | 告警索引与搜索 |
| 可视化 | Wazuh Dashboard | Web UI,仪表盘,报告 |
| 容器化 | Docker Desktop (Apple Silicon) | 运行 Wazuh 技术栈 |
| 终端代理 | Wazuh Agent ARM64 | 监控 Mac 终端 |
| 框架 | MITRE ATT&CK | 技术映射 |
| 合规性 | PCI DSS, NIST 800-53 | 合规性监控 |
## ⚙️ 设置与安装
### 前置条件
- macOS (Apple Silicon M2/M3/M4)
- Docker Desktop for Mac (Apple Silicon) — `docker.com/products/docker-desktop`
- Docker 至少有 8 GB 可用内存
- 已安装 Git
### 第 1 步 — 配置 Docker 内存
打开 Docker Desktop → Settings → Resources → 将内存设置为 **至少 6 GB**。点击 Apply & Restart。
### 第 2 步 — 设置 vm.max_map_count (OpenSearch 要求)
```
docker run --rm --privileged --pid=host alpine nsenter -t 1 -m -u -n -i sysctl -w vm.max_map_count=262144
```
### 第 3 步 — 克隆 Wazuh Docker 仓库
```
cd ~/Downloads
git clone https://github.com/wazuh/wazuh-docker.git -b v4.10.3
cd wazuh-docker/single-node
```
### 第 4 步 — 生成 SSL 证书
```
docker compose -f generate-indexer-certs.yml run --rm generator
```
### 第 5 步 — 启动 Wazuh
```
docker compose up -d
```
### 第 6 步 — 验证所有容器是否正在运行
```
docker compose ps
```
预期输出:
```
single-node-wazuh.dashboard-1 Up 0.0.0.0:443->5601/tcp
single-node-wazuh.indexer-1 Up 0.0.0.0:9200->9200/tcp
single-node-wazuh.manager-1 Up 0.0.0.0:1514-1515->1514-1515/tcp
```
### 第 7 步 — 访问仪表盘
打开浏览器 → `https://localhost:443`
接受证书警告 → 登录:`admin` / `SecretPassword`
### 第 8 步 — 在 Mac (ARM64) 上安装 Wazuh Agent
```
curl -so wazuh-agent.pkg https://packages.wazuh.com/4.x/macos/wazuh-agent-4.10.3-1.arm64.pkg
sudo WAZUH_MANAGER='127.0.0.1' installer -pkg wazuh-agent.pkg -target /
```
在配置中修复 manager IP:
```
sudo nano /Library/Ossec/etc/ossec.conf
# 将 MANAGER_IP 更改为 127.0.0.1
```
移除不支持的 syscollector 标签:
```
sudo sed -i '' '//d; //d' /Library/Ossec/etc/ossec.conf
```
启动代理:
```
sudo /Library/Ossec/bin/wazuh-control start
```
### 在 Mac 重启后启动 Wazuh
```
cd ~/Downloads/wazuh-docker/single-node
docker compose up -d
sudo /Library/Ossec/bin/wazuh-control start
```
## 🔬 实验室练习与发现
### 练习 1 — 漏洞检测扫描
**目标:** 识别受监控 Mac 终端上的 CVE
**模块:** Wazuh → Vulnerability Detection
**方法:** 对 Mac.lan 代理运行自动化漏洞扫描
**发现:**
| 严重程度 | 数量 |
|---|---|
| 🔴 严重 | 2 |
| 🟠 高危 | 22 |
| 🟡 中危 | 48 |
| 🟢 低危 | 5 |
**受影响最多的包:** macOS (58 个包), pip (10), setuptools (6), Safari (5)
**MITRE ATT&CK 映射:** T1190 — 利用面向公众的应用程序
**调查备注:** 在 macOS 终端上发现了两个严重级别的 CVE。在真实的 SOC 环境中,这些漏洞会被立即升级给漏洞管理团队,以进行补丁修复优先级排序。pip 和 setuptools 漏洞表明存在过时的 Python 包,应当进行更新。
### 练习 2 — 文件完整性监控 (FIM)
**目标:** 检测终端上未经授权的文件修改
**模块:** Wazuh → File Integrity Monitoring
**方法:** Wazuh FIM 模块持续监控关键系统目录
**发现:**
- 进行更改最活跃的用户:`root` (99.45%)
- 操作类型:`modified` (100% 的事件)
- 检测到更改的受监控文件:
| 文件路径 | 操作 | 规则 ID |
|---|---|---|
| /usr/sbin/htcacheclean | modified | 550 |
| /usr/sbin/apachectl | modified | 550 |
| /usr/sbin/WirelessRadioManagerd | modified | 550 |
| /bin/bash | modified | 550 |
| /bin/cat | modified | 550 |
| /bin/chmod | modified | 550 |
| /bin/cp | modified | 550 |
**MITRE ATT&CK 映射:** T1565 — 数据篡改,T1070 — 指标移除
**调查备注:** 检测到系统二进制文件被修改。在真实的事件中,对 `/bin/bash` 和 `/bin/cat` 的修改将是潜在的木马化二进制文件或 rootkit 活动的高优先级指标。这些事件将作为潜在的真正阳性被立即升级处理。
### 练习 3 — 安全配置评估 (SCA)
**目标:** 识别终端上的安全配置错误
**模块:** Wazuh → Configuration Assessment
**策略:** 基于 Unix 系统的系统审计
**发现:**
| 结果 | 数量 |
|---|---|
| ✅ 通过 | 0 |
| ❌ 失败 | 10 |
| ⚪ 不适用 | 13 |
| 得分 | 0% |
**检测到 SSH 加固失败:**
| 检查 ID | 发现 | 风险 |
|---|---|---|
| 3000 | SSH 端口不应为 22 | 中危 |
| 3001 | SSH 协议应设置为 2 | 高危 |
| 3002 | 不应允许通过 SSH 进行 root 账户登录 | 高危 |
| 3003 | 未配置公钥认证 | 中危 |
| 3004 | 应禁用密码认证 | 高危 |
| 3005 | 不应允许空密码 | 严重 |
| 3006 | 不应允许 Rhost 或 shost | 高危 |
| 3007 | 宽限时间应为一分钟 | 低危 |
| 3008 | 最大认证尝试次数设置错误 | 中危 |
| 3009 | 未禁用 SSH HostbasedAuthentication | 高危 |
**MITRE ATT&CK 映射:** T1110 — 暴力破解,T1021.004 — SSH
**调查备注:** 此终端上的 SSH 配置未通过所有 10 项加固检查。在真实的 SOC 环境中,这将生成一张修复工单。主要风险:启用了密码认证且无暴力破解保护、允许 root SSH 登录以及允许空密码——所有这些都会使此终端极易受到基于凭据的攻击。
### 练习 4 — MITRE ATT&CK 威胁检测
**目标:** 识别 Wazuh 检测到的对抗技术
**模块:** Wazuh → Threat Hunting → MITRE ATT&CK 面板
**检测到的主要战术:**
| 战术 | 告警数量 | 意义 |
|---|---|---|
| 影响 | 1,266 | 影响完整性的系统修改 |
| 防御规避 | 6 | 试图逃避检测 |
| 权限提升 | 3 | 试图获取更高权限 |
| 初始访问 | 2 | 入口点技术 |
| 持久化 | 2 | 维持访问的机制 |
**24 小时内总告警数:** 1,373
**高危 (Level 12+):** 0
**中危告警:** 1,397
## 📁 仓库结构
```
wazuh-siem-homelab/
├── README.md ← This file
├── setup/
│ ├── docker-compose-notes.md ← Setup notes and troubleshooting
│ └── agent-installation-macos.md ← Agent setup steps for macOS ARM64
├── detection-rules/
│ └── local_rules.xml ← Custom Wazuh detection rules
├── investigations/
│ ├── vulnerability-scan-analysis.md
│ ├── file-integrity-monitoring.md
│ ├── ssh-misconfiguration-analysis.md
│ └── mitre-attck-detections.md
└── screenshots/
├── 01-overview-dashboard.png
├── 02-agents-active.png
├── 03-agent-detail-mitre.png
├── 04-threat-hunting.png
├── 05-file-integrity-monitoring.png
└── 06-configuration-assessment.png
```
## 🧠 自定义检测规则
编写用于检测可疑的 `whoami` 命令执行——映射至 MITRE T1033 (系统所有者/用户发现):
```
sudo
whoami
Suspicious whoami command via sudo detected — possible reconnaissance
T1033
```
## 📊 实验室仪表盘截图
| 截图 | 描述 |
|---|---|
| `screenshots/01-overview-dashboard.png` | Wazuh 概述 — 1 个活跃代理,1,559 条总告警 |
| `screenshots/02-agents-active.png` | Mac.lan 代理活跃 — macOS 26.3, Wazuh v4.10.3 |
| `screenshots/03-agent-detail-mitre.png` | MITRE ATT&CK 检测 + CVE 发现 + FIM 事件 |
| `screenshots/04-threat-hunting.png` | 1,373 个事件 — ossec, syscheck, sudo, authentication 组 |
| `screenshots/05-file-integrity-monitoring.png` | FIM — 检测到 /bin/bash, /bin/cat, /bin/chmod 修改 |
| `screenshots/06-configuration-assessment.png` | SCA — 发现 10 项 SSH 加固失败 |
## 🎯 展示的关键技能
- 在 macOS Apple Silicon 上使用 Docker 部署了多组件 SIEM 技术栈 (Indexer + Manager + Dashboard)
- 将 macOS 终端注册并配置为受监控的 Wazuh 代理
- 通过漏洞扫描识别并记录了 **2 个严重级别 CVE** 和 **22 个高危 CVE**
- 检测并分析了关键系统二进制文件上的**文件完整性违规**
- 通过安全配置评估识别了 **10 项 SSH 加固失败**
- 将检测到的事件映射到 **5 种 MITRE ATT&CK 战术**,包括权限提升和防御规避
- 编写了映射到 MITRE T1033 的**自定义 Wazuh 检测规则**
- 为每项发现生成了专业的调查报告
## 🔗 联系方式
| | |
|---|---|
| 📍 位置 | 迪拜,阿联酋 |
| 💼 LinkedIn | [linkedin.com/in/shailesh-puthran-1602547b](https://linkedin.com/in/shailesh-puthran-1602547b)|
| 📧 邮箱 | shaileshnputhran17@gmail.com |
标签:AMSI绕过, Apple Silicon, Docker, Docker Desktop, EDR, HTTP工具, M2芯片, MITRE ATT&CK映射, OISF, SOC分析师, Wazuh, Wazuh Indexer, Wazuh Manager, x64dbg, 企业级安全, 威胁检测, 子域名变形, 安全事件调查, 安全实验室, 安全工程, 安全运营中心, 安全配置评估, 安全防御评估, 家庭实验室, 属性图, 日志管理, 检测规则, 监控架构, 端点安全, 端点监控, 网络安全实验, 网络安全审计, 网络映射, 网络资产发现, 脆弱性评估, 补丁管理, 警报分类, 请求拦截