adnanhadi10/home-soc-lab

GitHub: adnanhadi10/home-soc-lab

基于 Wazuh 的云端家庭 SOC 实验室,用于 Windows 和 Linux endpoint 的安全监控、威胁狩猎及 MITRE ATT&CK 检测验证。

Stars: 0 | Forks: 0

# 使用 Wazuh 搭建家庭 SOC 实验室 这是一个搭建在云端的 Security Operations Center(安全运营中心)实验室,使用 Wazuh 构建,旨在监控 Windows 和 Linux endpoint,集中安全遥测数据,调查告警,执行威胁狩猎,并验证映射到 MITRE ATT&CK 框架的检测。 ![最终的 Wazuh Dashboard](https://static.pigsec.cn/wp-content/uploads/repos/cas/05/058407d24012925aa454b54bed01c39d29a78101c397779bc3f630c0b6d663be.png) ## 项目概述 本项目记录了使用 Wazuh 作为 SIEM 和 XDR 平台的家庭 Security Operations Center 的设计、部署、测试和运营过程。 中央 Wazuh server 部署在 Google Cloud Platform 的 Ubuntu Server 虚拟机上。一个 Windows 11 endpoint 和一个独立的 Ubuntu endpoint 通过 Wazuh agent 接入。 为了验证完整的监控 pipeline,在两个 endpoint 上故意生成了安全事件: ``` Endpoint activity ↓ Operating system logs ↓ Wazuh agent ↓ Encrypted transmission ↓ Wazuh manager ↓ Decoders and detection rules ↓ Wazuh indexer ↓ Wazuh dashboard ↓ SOC analyst investigation ``` 该实验室包括身份验证监控、账户管理检测、权限监控、File Integrity Monitoring、Microsoft Defender 遥测、恶意软件测试检测以及基于 MITRE ATT&CK 的威胁狩猎。 ## 项目目标 主要目标是: * 部署集中的 Wazuh 安全监控平台 * 理解 manager、indexer、dashboard 和 agent 的角色 * 监控 Windows 和 Linux endpoint * 收集 Windows 安全和 Microsoft Defender 事件 * 收集 Linux 身份验证和账户管理日志 * 配置并验证 File Integrity Monitoring * 使用 Wazuh Discover 调查安全事件 * 将多个相关事件间的活动进行关联 * 理解 MITRE ATT&CK 的战术和技术 * 练习 SOC 分析师调查工作流 * 记录基础设施挑战和故障排除决策 ## 架构 ``` Internet │ Google Cloud Firewall │ ┌──────────────────┴──────────────────┐ │ │ SSH Administration HTTPS Dashboard │ │ └──────────────────┬──────────────────┘ │ Ubuntu Server on GCP ┌─────────────────────────────────────┐ │ Wazuh Stack │ │ │ │ Wazuh Manager │ │ Wazuh Indexer │ │ Wazuh Dashboard │ └─────────────────────────────────────┘ ▲ ▲ │ │ Wazuh agent Wazuh agent │ │ Windows 11 VM Ubuntu endpoint VirtualBox VirtualBox ``` ### 组件职责 | 组件 | 职责 | |---|---| | Wazuh agent | 收集 endpoint 日志、安全事件、清单和文件完整性数据 | | Wazuh manager | 接收事件,应用解码器和规则,并生成告警 | | Wazuh indexer | 存储和索引告警,以便进行搜索和分析 | | Wazuh dashboard | 提供 endpoint 可见性、仪表板、告警调查和威胁狩猎功能 | | Microsoft Defender | 检测并响应 Windows 上的恶意软件相关活动 | | Google Cloud 防火墙 | 限制对暴露服务的访问 | | VirtualBox | 托管隔离的 Windows 和 Ubuntu endpoint 虚拟机 | ## 技术栈 | 技术 | 用途 | |---|---| | Google Cloud Platform | 托管中央 Wazuh server | | Ubuntu Server 24.04 LTS | Wazuh server 和 Linux endpoint 的操作系统 | | Windows 11 Home | 用于生成事件的 Windows endpoint | | Wazuh 4.14.6 | SIEM、endpoint 监控和威胁狩猎平台 | | Microsoft Defender Antivirus | endpoint 恶意软件检测 | | VirtualBox | 本地 endpoint 虚拟化 | | PowerShell | Windows 管理和事件生成 | | Linux 命令行 | 服务器管理和 Linux 事件生成 | | SSH | Linux 系统的远程管理 | | Syscheck | Wazuh File Integrity Monitoring 模块 | | MITRE ATT&CK | 用于对对手行为进行分类的框架 | ## 部署摘要 Wazuh 技术栈作为独立的组件进行安装: 1. Wazuh Manager 2. Wazuh Indexer 3. Wazuh Dashboard 4. 证书基础设施 5. Google Cloud 防火墙规则 6. Windows Wazuh agent 7. Ubuntu Wazuh agent 在 indexer 部署期间,原始磁盘达到容量限制后,Wazuh server 需要额外的存储空间。对磁盘进行了扩容,并在存储升级后验证了各项服务。 两个 endpoint 均已成功注册并显示为活跃状态。 ![两个活跃的 Endpoint](https://static.pigsec.cn/wp-content/uploads/repos/cas/99/99c09b9d3fc08840e9f44647cc37bfbb62fd77235c0598f768c278507270297a.png) ## 检测覆盖范围 ### Windows 事件 | 活动 | 事件 ID | 结果 | |---|---:|---| | 成功登录 | 4624 | 已检测 | | 登录失败 | 4625 | 已检测 | | 创建本地用户账户 | 4720 | 已检测 | | 启用用户账户 | 4722 | 已检测 | | 将成员添加到本地安全组 | 4732 | 已检测 | | Microsoft Defender 检测到恶意软件 | 1116 | 已检测 | | Microsoft Defender 采取补救措施 | 1117 | 已检测 | ### Linux 事件 | 活动 | 检测来源 | 结果 | |---|---|---| | 用户创建 | `useradd` 和系统日志 | 已检测 | | 密码更改 | PAM 和系统日志 | 已检测 | | 用户信息修改 | `chfn` 和系统日志 | 已检测 | | 用户删除 | `userdel` 和系统日志 | 已检测 | | 身份验证失败 | PAM 和 journald | 已检测 | | 文件添加或修改 | Syscheck | 已检测 | ## 威胁狩猎调查 ### Windows 身份验证失败 针对 `labuser` 账户生成了一个登录失败事件,并使用 Windows 安全事件 ID 4625 进行了调查。 调查确认: * Endpoint:`win-endpoint-01` * 目标账户:`labuser` * 来源地址:`127.0.0.1` * 登录类型:本地交互式登录 * 结果:身份验证失败 环回地址确认该尝试源自 endpoint 本地。 单次登录失败可能是由正常的用户错误引起的。针对同一账户的重复失败可能表明存在密码猜测、暴力破解活动或未经授权的访问尝试。 ![登录失败调查](https://static.pigsec.cn/wp-content/uploads/repos/cas/0d/0ddf22847c7eb3245c4c88a5eca38cc10376ef185a8a2f131066465c882b2cd3.png) ### Windows 权限更改 名为 `socuser` 的测试账户被添加到本地 Administrators 组。Windows 生成了事件 ID 4732,Wazuh 收集了该事件。 调查确认: * Endpoint:`win-endpoint-01` * 添加的账户:`socuser` * 修改的组:`Administrators` * 执行操作的账户:`labuser` * 安全影响:授予了管理权限 意外添加到 Administrators 组将需要进行验证,因为这可能允许攻击者或未经授权的用户安装软件、禁用控制、访问受保护的数据或建立持久性。 ![权限提升调查](https://raw.githubusercontent.com/adnanhadi10/home-soc-lab/main/Screenshots/32-threat-hunt-privilege-escalation.png) ### Linux 账户创建 使用 `useradd` 工作流创建了一个 Linux 账户。Wazuh 检测到此活动,并将该事件映射到账户创建行为。 调查确认: * Endpoint:`ubuntu-endpoint-1` * 程序:`useradd` * 创建的账户:`socuser` * 规则描述:系统中添加了新用户 * MITRE ATT&CK 技术:T1136 Create Account * MITRE ATT&CK 战术:Persistence 意外的账户创建可能表明存在未经授权的管理、内部人员活动或攻击者正在创建替代的访问方式。 ![Linux 账户创建](https://static.pigsec.cn/wp-content/uploads/repos/cas/77/77c09f7c45e739b6c3ab67acfc3ed44fbcecd232067521987431226c9793feb7.png) ### 文件完整性监控 Wazuh Syscheck 监控选定的 Linux 文件和目录的更改。 告警包含: * 文件路径 * 文件创建或修改状态 * 文件大小 * 修改时间 * 所有者 * 权限 * MD5 哈希 * SHA1 哈希 * SHA256 哈希 File Integrity Monitoring 非常有价值,因为对系统文件、配置文件、启动文件或安全控制的未经授权更改可能表明存在篡改、持久性、恶意软件活动或权限提升。 ![文件完整性监控](https://static.pigsec.cn/wp-content/uploads/repos/cas/d5/d5b920eff8b5607d9152baabbd65eb066cebf8cda81706761e8bb514afc991b1.png) ### Microsoft Defender EICAR 检测 EICAR 防病毒测试文件用于在不引入真实恶意软件的情况下验证恶意软件检测。 Microsoft Defender 阻止了该文件并生成了: * 用于恶意软件检测的事件 ID 1116 * 用于补救措施的事件 ID 1117 Wazuh 收集了 Defender Operational 日志事件,并显示了以下信息: * Endpoint 名称 * 检测时间戳 * 下载位置 * 文件路径 * 威胁信息 * Defender 操作 这验证了从 endpoint 检测到集中式 SIEM 调查的完整安全遥测 pipeline。 ![Microsoft Defender EICAR 检测](https://static.pigsec.cn/wp-content/uploads/repos/cas/2e/2e1688d8dc4fc508d3445bbbfd6ea69059eedbae642c189fe09e34a5a9ce356d.png) ## MITRE ATT&CK 背景 MITRE ATT&CK 提供了一种用于描述对手目标和技术通用语言。 | 观察到的活动 | ATT&CK 背景 | |---|---| | 重复的登录失败 | T1110 Brute Force | | Linux 账户创建 | T1136 Create Account | | 账户或组修改 | T1098 Account Manipulation | | 使用合法账户 | T1078 Valid Accounts | | 文件和配置篡改 | Persistence 或 Defense Evasion 调查背景 | 并非每个安全事件都能自动证明存在恶意活动。ATT&CK 映射可帮助分析师理解,当结合辅助证据时,观察到的事件如何与攻击者行为相关联。 ## 调查方法 在每次威胁狩猎期间使用了以下工作流: 1. 识别告警或指标 2. 确认受影响的 endpoint 3. 识别涉及的用户或账户 4. 查看时间戳 5. 检查源地址或进程 6. 查看原始事件字段 7. 搜索相关活动 8. 确定该事件是否在预期之内 9. 将相关行为映射到 MITRE ATT&CK 10. 记录发现和安全影响 ## 关键命令 ### Windows Agent 管理 ``` Get-Service WazuhSvc Start-Service WazuhSvc Restart-Service WazuhSvc ``` ### Windows 安全事件查看 ``` Get-WinEvent -LogName Security -MaxEvents 10 ``` ### Microsoft Defender 事件查看 ``` Get-WinEvent ` -LogName "Microsoft-Windows-Windows Defender/Operational" ` -MaxEvents 10 ``` ### Microsoft Defender 状态 ``` Get-MpComputerStatus | Select-Object AMServiceEnabled, AntivirusEnabled, RealTimeProtectionEnabled ``` ### 创建 Windows 测试账户 ``` net user socuser Password123! /add ``` ### 将测试账户添加到 Administrators ``` net localgroup Administrators socuser /add ``` ### Linux Agent 管理 ``` sudo systemctl status wazuh-agent sudo systemctl restart wazuh-agent ``` ### 查看 Linux Agent 配置 ``` sudo grep -A5 '' /var/ossec/etc/ossec.conf ``` ### 创建和删除 Linux 测试用户 ``` sudo adduser socuser sudo deluser socuser ``` ### 查看 Linux 账户活动 ``` sudo journalctl --since "10 minutes ago" | grep -i socuser ``` ### 验证 Syscheck 配置 ``` sudo grep -A20 '' /var/ossec/etc/ossec.conf ``` ## 故障排除亮点 ### Indexer 存储耗尽 在部署期间,原始 Wazuh server 磁盘已满。 解决方案: * 扩展了 GCP 磁盘 * 扩展了可用文件系统 * 重启了受影响的服务 * 重新验证了 indexer 健康状况 ### Agent 连接到旧的 Manager 地址 Ubuntu endpoint 保留了先前 Wazuh server 的公共 IP 地址。 解决方案: ``` sudo sed -i 's/OLD_MANAGER_IP/NEW_MANAGER_IP/g' /var/ossec/etc/ossec.conf sudo systemctl restart wazuh-agent ``` ### Windows Agent 服务已停止 Agent 安装成功,但未能保持运行。 解决方案: ``` Start-Service WazuhSvc Get-Service WazuhSvc ``` ### Windows 事件未立即可见 Windows 正在本地生成事件,但必须使用正确的 Wazuh 搜索。 解决方案: * 使用 `Get-WinEvent` 确认事件存在 * 按 `agent.name` 过滤 * 使用 Windows 事件 ID 进行搜索 * 在需要时重启 Wazuh 服务 ### Defender 事件需要 Operational 日志 Defender 检测使用与标准 Windows Security 日志分开的事件通道。 相关的日志为: ``` Microsoft-Windows-Windows Defender/Operational ``` ### VirtualBox Windows 安装问题 无人值守的 Windows 安装创建了未知密码,并阻止了正常访问。 解决方案: * 删除了受影响的虚拟机 * 使用手动 Windows 安装进行重建 * 创建了已知的本地账户 * 重新安装并重新连接了 Wazuh agent ## 展现的技能 * Wazuh 部署和管理 * SIEM 架构 * Windows endpoint 监控 * Linux endpoint 监控 * Windows Event Log 分析 * Microsoft Defender 调查 * File Integrity Monitoring * 威胁狩猎 * 告警分类 * MITRE ATT&CK 解读 * PowerShell 管理 * Linux 管理 * Google Cloud 基础设施 * 防火墙配置 * SSH 管理 * 基于证书的通信 * 服务故障排除 * 存储故障排除 * 事件关联 * 技术文档编写 ## 详细文档 `docs` 目录中提供了更多文档: * [安装指南](docs/installation.md) * [威胁狩猎指南](docs/threat-hunting.md) * [检测摘要](docs/detections.md) * [故障排除](docs/troubleshooting.md) * [经验教训](docs/lessons-learned.md) 完整的屏幕截图集合可在 [截图](Screenshots/) 目录中找到。 ## 仓库结构 ``` home-soc-lab/ │ ├── README.md │ ├── docs/ │ ├── installation.md │ ├── threat-hunting.md │ ├── detections.md │ ├── troubleshooting.md │ └── lessons-learned.md │ ├── Screenshots/ │ ├── infrastructure screenshots │ ├── endpoint screenshots │ ├── detection screenshots │ └── threat hunting screenshots │ ├── diagrams/ └── assets/ ``` ## 经验教训 这个项目印证了构建 SOC 不仅仅是安装一个 SIEM 那么简单。 可靠的监控取决于: * 正确的 endpoint 配置 * 正常工作的网络连接 * 充足的存储 * 健康的服务 * 正确的事件通道收集 * 准确的搜索过滤器 * 理解原始事件字段的含义 * 区分预期的管理活动与可疑行为 最重要的学习成果是理解从 endpoint 活动到分析师调查的完整路径。 ## 未来改进 潜在的未来改进: * 部署 Sysmon 以增强 Windows 进程可见性 * 创建自定义 Wazuh 规则 * 添加基于 Sigma 的检测 * 集成 YARA 恶意软件扫描 * 添加 Suricata 网络入侵检测 * 监控 Active Directory 环境 * 添加自动电子邮件通知 * 构建 active response 工作流 * 集成威胁情报源 * 开发自定义仪表板 * 测试额外的 Windows 持久性技术 * 实施对 Wazuh dashboard 的最小权限访问 ## 项目状态 **已完成** 该实验室成功演示了 Windows 和 Linux endpoint 的集中监控、身份验证分析、账户管理检测、权限监控、File Integrity Monitoring、Microsoft Defender 集成、恶意软件测试检测、MITRE ATT&CK 解读以及 SOC 分析师威胁狩猎工作流。
标签:AI合规, DNS 反向解析, HTTP工具, IP 地址批量处理, Wazuh, x64dbg, 安全实验室, 安全运营中心, 端点监控, 网络映射, 自定义DNS解析器