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, 企业级安全, 威胁检测, 子域名变形, 安全事件调查, 安全实验室, 安全工程, 安全运营中心, 安全配置评估, 安全防御评估, 家庭实验室, 属性图, 日志管理, 检测规则, 监控架构, 端点安全, 端点监控, 网络安全实验, 网络安全审计, 网络映射, 网络资产发现, 脆弱性评估, 补丁管理, 警报分类, 请求拦截