samsonejim/elk-sysmon-soc-lab

GitHub: samsonejim/elk-sysmon-soc-lab

一个在 GCP 上构建的生产级 SOC 家庭实验室,结合 ELK Stack、Sysmon 和 Wazuh 实现端点遥测采集、攻击模拟与基于 MITRE ATT&CK 的威胁检测。

Stars: 0 | Forks: 0

# ELK Stack + Sysmon + Wazuh — 完整 SOC 家庭实验室 **作者:** Samson Ejim | 网络安全爱好者 | 捷克 **平台:** Google Cloud Platform | VirtualBox **技术栈:** Elasticsearch 8.19 · Logstash · Kibana · Sysmon 15 · Winlogbeat 8.19 · Wazuh 4.7.5 ## 项目概述 一个构建在 Google Cloud Platform 上的生产级安全运营中心 (SOC) 家庭实验室, 结合了 ELK Stack、Microsoft Sysmon 和 Wazuh SIEM。该实验室实时接入 Windows 终端节点 遥测数据,使用 Atomic Red Team 运行对手攻击模拟,并通过映射到 MITRE ATT&CK 框架的自定义 KQL 检测规则来检测 威胁。 本项目展示了在 SIEM 工程、终端节点检测、 威胁狩猎、检测即代码以及事件响应方面的实践技能 — 可直接应用于 SOC Tier 1/2 和检测工程岗位。 ## 架构 ``` Windows VM (VirtualBox) → Sysmon → Winlogbeat 8.19 ↓ GCP elk-server → Logstash → Elasticsearch 8.19 → Kibana ↑ Wazuh Server (GCP) → Python Shipper → Logstash ``` ### 基础设施 | 组件 | 规格 | 角色 | |---|---|---| | elk-server (GCP) | e2-standard-4, 16GB RAM, 100GB SSD | Elasticsearch + Logstash + Kibana | | wazuh-server (GCP) | e2-standard-2, 8GB RAM, 50GB SSD | Wazuh Manager + Wazuh Indexer | | windows-endpoint (VirtualBox) | 4GB RAM, 60GB 磁盘 | Sysmon + Winlogbeat + 攻击模拟 | | ubuntu-endpoint (GCP) | e2-medium, 4GB RAM | Suricata IDS + Wazuh Agent | ## 使用的技术 - **Elasticsearch 8.19.15** — 启用安全性的日志存储与索引 - **Logstash** — 日志解析与 pipeline 管理 (端口 5044 + 5045) - **Kibana 8.19.15** — SIEM 仪表板与检测规则引擎 - **Microsoft Sysmon 15.x** — 终端节点遥测 (SwiftOnSecurity config) - **Winlogbeat 8.19.0** — 将 Windows 日志发送至 Logstash - **Wazuh 4.7.5** — 基于主机的 IDS、FIM、合规性监控 - **Atomic Red Team** — 对手攻击模拟 (336 种技术) - **Google Cloud Platform** — 云基础设施 ## 构建的检测规则 从零开始编写了 10 条自定义 KQL 检测规则,全部映射到 MITRE ATT&CK: | 规则名称 | MITRE 技术 | 严重程度 | 风险评分 | |---|---|---|---| | LSASS Memory Access - Credential Dumping | T1003.001 | Critical | 95 | | PowerShell Encoded Command Execution | T1059.001 | High | 75 | | Persistence via Registry Run Key | T1547.001 | High | 73 | | Suspicious Scheduled Task Creation | T1053.005 | High | 73 | | PowerShell Outbound Network Connection | T1071.001 | High | 75 | | Brute Force Login Failures Detected | T1110.001 | Medium | 60 | | Suspicious WMI Child Process Execution | T1047 | High | 73 | | PsExec Lateral Movement Detected | T1569.002 | High | 75 | | Windows Security Event Log Cleared | T1070.001 | Critical | 90 | | DLL Injection via CreateRemoteThread | T1055.001 | Critical | 85 | 此外还安装并启用了 1,677 条 Elastic 预置检测规则。 ## 攻击模拟 运行了 8 次 Atomic Red Team 攻击模拟 — 已确认被自定义规则检测到: | 攻击 | 技术 | 工具 | 是否检测到 | |---|---|---|---| | LSASS Memory Dump | T1003.001 | ProcDump | ✅ 触发规则 | | Credential Dumping | T1059.001 | Mimikatz 2.2.0 | ✅ 触发规则 | | Registry Run Key Persistence | T1547.001 | Atomic Red Team | ✅ 触发规则 | | Scheduled Task Creation | T1053.005 | schtasks.exe | ✅ 触发规则 | | System Information Discovery | T1082 | systeminfo.exe | 已记录 | | Brute Force Login | T1110.001 | Atomic Red Team | ✅ 触发 5 个警报 | | Rundll32 Bypass | T1218.011 | rundll32.exe | 已记录 | | Event Log Clearing | T1070.001 | wevtutil | ✅ 触发 Critical 警报 | **生成的警报总数:29 (1 个 Critical,23 个 High,5 个 Medium)** ## Kibana 仪表板 构建了三个自定义 SOC 仪表板: **1. SOC 概览仪表板** - 按 Event ID 统计的 Windows 事件量 (堆叠柱状图) - 启动次数排名前 10 的进程 (树状图) - 按源 IP 排名 — 网络连接 (表格) - Windows 登录活动 — 成功与失败对比 (柱状图) - 按目标 IP/端口统计的 Sysmon 网络连接 (表格) - Critical Sysmon 事件时间线 (折线图) **2. 威胁警报与检测仪表板** - LSASS 访问尝试 (表格) - 带有命令行的 PowerShell 执行情况 (表格) - 随时间变化的登录失败尝试 (柱状图) - 新创建的服务 (时间线) **3. 威胁狩猎仪表板** - 父子进程关系 (表格) - DNS 查询分析,包括攻击工具下载 (表格) - 注册表修改 (表格) ## 展示的核心技能 - SIEM 部署与配置 (Elasticsearch + Logstash + Kibana) - 终端节点遥测工程 (Sysmon + Winlogbeat) - 编写映射到 MITRE ATT&CK 的 KQL 检测规则 - 使用仪表板分析进行威胁狩猎 - 使用 Atomic Red Team 进行对手模拟 - 事件响应 — 警报分类与调查 - GCP 上的云基础设施 - 日志 pipeline 工程 (Beats → Logstash → Elasticsearch) ## 仓库结构 ``` elk-sysmon-soc-lab/ ├── configs/ │ ├── sysmonconfig.xml │ ├── winlogbeat.yml │ └── logstash/ │ ├── winlogbeat.conf │ └── wazuh.conf ├── detections/ │ └── kql/ │ ├── lsass_credential_dumping.kql │ ├── powershell_encoded_command.kql │ ├── persistence_run_key.kql │ ├── scheduled_task_creation.kql │ ├── powershell_network_connection.kql │ ├── brute_force_login.kql │ ├── wmi_child_process.kql │ ├── psexec_lateral_movement.kql │ ├── event_log_cleared.kql │ └── dll_injection.kql ├── screenshots/ │ ├── kibana_home.png │ ├── security_alerts_29.png │ ├── detection_rules_10_custom.png │ ├── soc_overview_dashboard.png │ ├── threat_hunting_dashboard.png │ ├── threat_alerts_dashboard.png │ ├── winlogbeat_discover.png │ ├── wazuh_alerts_discover.png │ └── expanded_alert_mitre.png └── README.md ``` ## 本系列之前的版本 1. [Wazuh + VirusTotal on GCP](https://github.com/samsonejim/wazuh-virustotal-soc-lab) — 文件完整性监控 + 威胁情报 2. [Suricata IDS + Wazuh on GCP](https://github.com/samsonejim/suricata-ids-wazuh-integration) — 网络入侵检测 3. [Velociraptor DFIR + Wazuh on GCP](https://github.com/samsonejim/velociraptor-dfir-wazuh-lab) — 数字取证 + 事件响应 ## 作者 **Samson Ejim** 网络安全爱好者 | 见习 SOC 分析师 | 捷克 目标成为 SOC Tier 1/2 和检测工程师 [LinkedIn](https://www.linkedin.com/in/samsonejim/) | [GitHub](https://github.com/samsonejim)
标签:ELK Stack, Metaprompt, Wazuh, 内容过滤, 安全实验环境, 安全运营中心, 网络映射, 越狱测试, 逆向工具