KhuranaArjun/soc-analyst-homelab

GitHub: KhuranaArjun/soc-analyst-homelab

基于Wazuh SIEM构建的SOC分析师家庭实验室,整合攻击模拟、自定义检测规则、自动化脚本和事件响应Playbook,提供从理论到实践的完整安全运营训练环境。

Stars: 0 | Forks: 0

# 🛡️ SOC Analyst 家庭实验室 — Wazuh SIEM + 攻击模拟 ![Lab Status](https://img.shields.io/badge/Lab_Status-Active-brightgreen?style=flat-square) ![Wazuh](https://img.shields.io/badge/SIEM-Wazuh_4.9-blue?style=flat-square&logo=wazuh) ![MITRE ATT&CK](https://img.shields.io/badge/Framework-MITRE_ATT%26CK-red?style=flat-square) ![Agents](https://img.shields.io/badge/Agents-3_Monitored_Endpoints-orange?style=flat-square) ![License](https://img.shields.io/badge/License-MIT-lightgrey?style=flat-square) ## 📋 目录 - [概述与动机](#-overview--motivation) - [实验室架构](#-lab-architecture) - [技术栈](#-tech-stack) - [设置指南](#-setup-guides) - [攻击场景与检测结果](#-attack-scenarios--detection-results) - [自定义检测规则](#-custom-detection-rules) - [自动化脚本](#-automation-scripts) - [事件响应 Playbook](#-incident-response-playbooks) - [Sigma 规则](#-sigma-rules) - [关键收获与经验教训](#-key-takeaways--lessons-learned) ## 🎯 概述与动机 作为一名网络安全理学硕士研究生,我构建此实验室旨在弥合学术安全理论与真实 SOC 环境所需的实际动手技能之间的差距。该实验室模拟了一个小型企业网络,包含中央 SIEM、Linux 和 Windows 端点以及专用的攻击者机器 —— 使我能够模拟、检测和响应映射到 [MITRE ATT&CK 框架](https://attack.mitre.org/) 的真实攻击技术。 **本实验室展示的内容:** - 部署和配置生产级开源 SIEM (Wazuh 4.9) - 编写超越开箱即用默认设置的自定义检测规则 - 执行和检测攻击技术:SSH 暴力破解、权限提升、侦察 - 构建 Python 自动化工具用于警报增强和日志解析 - 编写 IR Playbook 以实现可重复的事件响应 - 将检测转换为可移植的 Sigma 规则以实现跨平台使用 **为什么选择 Wazuh?** 它被全球真实的 SOC 团队使用,与 MITRE ATT&CK 原生集成,同时支持 HIDS 和网络监控,是 Splunk 或 Microsoft Sentinel 等商业 SIEM 工具的开源等效方案。 ## 🏗️ 实验室架构 ``` ┌─────────────────────────────────────────────────────────────────────┐ │ HOST MACHINE │ │ VirtualBox / VMware Workstation │ │ │ │ ┌──────────────────────────────────────────────────────────────┐ │ │ │ HOST-ONLY NETWORK 192.168.56.0/24 │ │ │ │ │ │ │ │ ┌─────────────────────┐ ┌──────────────────────────┐ │ │ │ │ │ Wazuh Manager + │ │ Ubuntu 22.04 LTS │ │ │ │ │ │ Dashboard │◄───│ Victim / Linux Agent │ │ │ │ │ │ Ubuntu 22.04 LTS │ │ Wazuh Agent + auditd │ │ │ │ │ │ 192.168.56.10 │ │ 192.168.56.20 │ │ │ │ │ └──────────┬──────────┘ └──────────────────────────┘ │ │ │ │ │ │ │ │ │ │ ┌──────────────────────────┐ │ │ │ │ └───────────────│ Windows 10 Pro │ │ │ │ │ │ Wazuh Agent + Sysmon │ │ │ │ │ │ 192.168.56.30 │ │ │ │ │ └──────────────────────────┘ │ │ │ │ │ │ │ │ ┌─────────────────────┐ │ │ │ │ │ Kali Linux 2024.1 │ ─── ─── ─── Attack Traffic ───► │ │ │ │ │ Attacker Machine │ │ │ │ │ │ 192.168.56.40 │ │ │ │ │ └─────────────────────┘ │ │ │ └──────────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────────┘ Log Flow: Agent ──► Wazuh Manager (port 1514) ──► Indexer ──► Dashboard ``` ### 虚拟机规格 | VM | OS | RAM | CPU | 角色 | |---|---|---|---|---| | `wazuh-manager` | Ubuntu 22.04 LTS | 4 GB | 2 cores | SIEM — Wazuh Manager + Indexer + Dashboard | | `linux-victim` | Ubuntu 22.04 LTS | 2 GB | 1 core | 受监控端点 — Wazuh Agent + auditd | | `win-victim` | Windows 10 Pro | 4 GB | 2 cores | 受监控端点 — Wazuh Agent + Sysmon | | `kali-attacker` | Kali Linux 2024.1 | 2 GB | 1 core | 攻击模拟 — Hydra, Nmap, Metasploit | ## 🔧 技术栈 | 组件 | 工具 | 版本 | 用途 | |---|---|---|---| | SIEM | Wazuh | 4.9 | 中央日志收集、关联、告警 | | 端点检测 | Wazuh Agent | 4.9 | 基于代理的主机监控 | | Windows 日志 | Sysmon | 15.x | 增强的进程、网络、注册表事件 | | Linux 审计 | auditd | 3.x | Syscall 级别审计日志 | | 攻击模拟 | Hydra | 9.5 | SSH/RDP 暴力破解模拟 | | 网络侦察 | Nmap | 7.x | 端口扫描和 OS 指纹识别 | | 自动化 | Python | 3.11 | 警报增强、日志解析、报告 | | Shell 脚本 | Bash | 5.x | 设置自动化和主动响应 | | 规则语言 | Wazuh XML + Sigma | - | 检测工程 | ## 📖 设置指南 分步安装和配置文档位于 [`docs/setup/`](docs/setup/) 文件夹中: 1. [`01-wazuh-manager-install.md`](docs/setup/01-wazuh-manager-install.md) — 在 Ubuntu 22.04 上部署 Wazuh Manager + Dashboard 2. [`02-linux-agent-setup.md`](docs/setup/02-linux-agent-setup.md) — 配置带有 auditd 规则的 Linux 代理 3. [`03-windows-agent-sysmon.md`](docs/setup/03-windows-agent-sysmon.md) — 在 Windows 10 上部署 Wazuh agent + Sysmon 4. [`04-network-configuration.md`](docs/setup/04-network-configuration.md) — VirtualBox 仅主机网络设置 5. [`05-custom-rules-deployment.md`](docs/setup/05-custom-rules-deployment.md) — 加载和测试自定义 Wazuh 规则 ## ⚔️ 攻击场景与检测结果 三个完整的攻击场景已从头到尾记录,涵盖从执行到 Wazuh 警报分析的全过程。 | 场景 | ATT&CK 战术 | 技术 | 检测规则 ID | 文档 | |---|---|---|---|---| | SSH 暴力破解 | Credential Access | T1110.001 | 5710, 5712, 100101 | [📄 文档](attack-scenarios/01-ssh-brute-force/README.md) | | Linux 权限提升 | Privilege Escalation | T1548.001 | 5402, 100201, 100202 | [📄 文档](attack-scenarios/02-privilege-escalation/README.md) | | Web 侦察 (Nmap) | Discovery | T1046, T1595 | 100301, 100302 | [📄 文档](attack-scenarios/03-web-recon/README.md) | ## 🔍 自定义检测规则 所有自定义规则位于 [`rules/local_rules.xml`](rules/local_rules.xml)。每个规则都注释了 ATT&CK 映射、检测逻辑和调优说明。 **已编写的规则:** | 规则 ID | 描述 | 级别 | ATT&CK | |---|---|---|---| | 100101 | SSH 暴力破解 — 高频阈值 | 12 | T1110.001 | | 100102 | SSH 暴力破解伴随地理位置异常 | 14 | T1110.001 | | 100201 | SUID 二进制文件执行 (权限提升) | 12 | T1548.001 | | 100202 | 非管理员用户的可疑 sudo 使用 | 10 | T1548.003 | | 100301 | 通过 auditd 检测到 Nmap SYN 扫描 | 8 | T1046 | | 100302 | 来自内部主机的端口扫描 — 横向移动信号 | 11 | T1046 | | 100401 | /etc/passwd 或 /etc/shadow 文件完整性违规 | 15 | T1003.008 | | 100402 | 非 root 用户添加的新 crontab 条目 | 10 | T1053.003 | ## 🤖 自动化脚本 | 脚本 | 语言 | 描述 | |---|---|---| | [`alert_enricher.py`](scripts/python/alert_enricher.py) | Python | 读取 Wazuh 警报 JSON,通过 ip-api 使用 IP 地理位置进行增强 | | [`log_parser.py`](scripts/python/log_parser.py) | Python | 将 `/var/ossec/logs/alerts/alerts.log` 解析为结构化 CSV | | [`daily_report.py`](scripts/python/daily_report.py) | Python | 生成每日 HTML 摘要,包含触发次数最多的规则、最频繁的源 IP | | [`active_response_block.sh`](scripts/bash/active_response_block.sh) | Bash | Wazuh 主动响应脚本 — 通过 iptables 封禁攻击者 IP | | [`agent_health_check.sh`](scripts/bash/agent_health_check.sh) | Bash | 检查所有 Wazuh 代理的连接性并报告断开连接的代理 | ## 📋 事件响应 Playbook 针对三种攻击场景的结构化 Playbook —— 它们模仿了真实的 SOC Runbook 格式: - [`playbooks/SSH-BruteForce-Playbook.md`](playbooks/SSH-BruteForce-Playbook.md) - [`playbooks/PrivilegeEscalation-Playbook.md`](playbooks/PrivilegeEscalation-Playbook.md) - [`playbooks/Recon-Sweep-Playbook.md`](playbooks/Recon-Sweep-Playbook.md) ## 🔄 Sigma 规则 Sigma 是一种通用的 SIEM 无关规则格式。[`sigma-rules/`](sigma-rules/) 中的 Sigma 规则是自定义 Wazuh 检测的可移植转换版本 —— 它们可以转换为 Splunk SPL、Elastic ESQL 或 Microsoft Sentinel KQL。 ## 📝 关键收获与经验教训 **效果良好的方面:** - Wazuh 内置的 MITRE ATT&CK 映射使将警报与真实攻击者技术关联变得简单直接 - 使用 `frequency` + `timeframe` 属性编写自定义规则比单个事件规则提供了更多有效信号 - Linux 上的 auditd 提供极其精细的 syscall 日志 —— 对于捕获权限提升至关重要 **挑战及解决方法:** - Wazuh indexer 在第 3 天耗尽磁盘空间 —— 通过实施适当的索引生命周期管理 (ILM) 策略解决 - Windows 代理时间戳偏差导致警报排序错误 —— 通过在所有 VM 上同步 NTP 解决 - Hydra 暴力破解在 2 分钟内生成了约 3,000 条警报 —— 调整规则阈值以减少噪音,同时保持高真阳性率 **如果我要重建这个实验室:** - 添加 TheHive 以进行适当的案例管理和警报工单处理 - 集成 VirusTotal API 以对 FIM 警报进行文件哈希查找 - 部署 Suricata 进行网络级检测,配合基于主机的 Wazuh 代理 ## 📁 仓库结构 ``` soc-analyst-homelab/ ├── README.md ← You are here ├── docs/ │ ├── setup/ │ │ ├── 01-wazuh-manager-install.md │ │ ├── 02-linux-agent-setup.md │ │ ├── 03-windows-agent-sysmon.md │ │ ├── 04-network-configuration.md │ │ └── 05-custom-rules-deployment.md │ └── architecture/ │ └── lab-diagram.md ├── rules/ │ └── local_rules.xml ← All custom Wazuh rules ├── scripts/ │ ├── python/ │ │ ├── alert_enricher.py │ │ ├── log_parser.py │ │ └── daily_report.py │ └── bash/ │ ├── active_response_block.sh │ └── agent_health_check.sh ├── attack-scenarios/ │ ├── 01-ssh-brute-force/ │ │ └── README.md │ ├── 02-privilege-escalation/ │ │ └── README.md │ └── 03-web-recon/ │ └── README.md ├── playbooks/ │ ├── SSH-BruteForce-Playbook.md │ ├── PrivilegeEscalation-Playbook.md │ └── Recon-Sweep-Playbook.md ├── sigma-rules/ │ ├── ssh_brute_force.yml │ ├── linux_priv_esc_suid.yml │ └── internal_port_scan.yml └── screenshots/ └── [Wazuh dashboard alert screenshots] ``` ## 📌 参考资料 - [Wazuh 4.9 Documentation](https://documentation.wazuh.com/current/) - [MITRE ATT&CK Framework](https://attack.mitre.org/) - [SwiftOnSecurity Sysmon Config](https://github.com/SwiftOnSecurity/sysmon-config) - [Sigma Rules Project](https://github.com/SigmaHQ/sigma) - [Atomic Red Team](https://github.com/redcanaryco/atomic-red-team)
Arjun Khurana 构建 — 网络安全理学硕士,帕绍大学 (University of Passau)
标签:Cloudflare, Conpot, CSV导出, IR剧本, MITRE ATT&CK, PB级数据处理, PE 加载器, Python自动化, Sigma规则, SOC分析师, SSH暴力破解, Wazuh, Windows安全, 协议分析, 安全规则开发, 安全运维, 家庭实验室, 密码管理, 应用安全, 插件系统, 攻击模拟, 权限提升, 目标导入, 端点监控, 网络安全, 网络安全审计, 逆向工具, 隐私保护, 驱动签名利用