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, 内容过滤, 安全实验环境, 安全运营中心, 网络映射, 越狱测试, 逆向工具