AurelioAvila/soc-home-lab
GitHub: AurelioAvila/soc-home-lab
面向安全运营中心一线分析师的实操演练项目,完整展示了 SIEM 环境搭建、日志接入、告警分诊及基于证据的安全事件调查流程。
Stars: 0 | Forks: 0
# SOC 家庭实验室 — SIEM 监控、检测工程与告警分诊
一个专注于真实 SOC (Security Operations Center) 一线工作流的实操组合项目:
日志接入、告警验证、分诊以及基于调查的决策制定。
## 分析师角色模拟
在本实验中,我担任 SOC Tier 1 分析师,负责监控端点遥测数据、验证告警以及执行基于调查的分析。
各项活动均采用真实的 SOC 工作流进行,包括告警分诊、假设验证和基于证据的决策制定。
## 项目目标
阅读 SOC 操作的相关资料很容易,但展示实际操作能力却非易事。
本仓库展示了我处理真实 SOC Tier 1 活动的方式,重点在于:
- 验证数据源和日志接入
- 端到端地验证告警
- 执行结构化的告警分诊
- 调查身份验证和权限相关事件
- 清晰有条理地记录调查结果
本项目重点关注流程、推理和验证——而不仅仅是工具的安装。
## 架构
本实验室模拟了一个逼真的 SOC 风格监控架构:
- 在 Ubuntu (Oracle VirtualBox) 上运行的 **Wazuh Manager (All-in-One)**
- **OpenSearch** 用于索引和搜索
- **OpenSearch Dashboards** 用于告警可视化和调查
- **Filebeat (Wazuh 模块)** 用于结构化日志接入
- 安装了 Wazuh Agent 的 **Windows 11 端点**
此架构反映了专注于基于主机的遥测和集中监控的常见入门级 SOC 环境。
## 监控范围
该实验室收集并验证真实的端点遥测数据,包括:
- Windows 身份验证活动 (Event ID 4624 / 4625)
- 失败登录检测与验证
- 权限相关活动
- Agent 心跳与连接监控
- 基于主机的事件日志 (Security、System、Application)
告警通过以下信息进行丰富:
- MITRE ATT&CK 技术映射
- 合规性元数据(例如 PCI DSS、GDPR,如可用)
## 🎯 MITRE ATT&CK 映射
| 技术 | ID | 战术 |
|-----------|-----|--------|
| Brute Force: Password Guessing | [T1110.001](https://attack.mitre.org/techniques/T1110/001/) | Credential Access (TA0006) |
| Valid Accounts | [T1078](https://attack.mitre.org/techniques/T1078/) | Defense Evasion / Persistence |
| OS Credential Dumping | [T1003](https://attack.mitre.org/techniques/T1003/) | Credential Access (TA0006) |
## 检测验证示例
为了验证接入和检测能力:
- 使用 `runas /user:fakeuser cmd` 模拟了失败的身份验证尝试
- 这生成了一个 Windows Security Event ID 4625 (Logon Failure)。
- Wazuh 成功接入该事件并生成了 Level 5 告警。
- 该告警被映射到相关的 MITRE ATT&CK 技术。
这确认了:
- 正确的 Windows Event Channel 接入
- 检测规则触发
- 字段解析与归一化
- 从端点到 SIEM 的端到端数据流
### 📸 证据
**Agent 已连接 — Wazuh 仪表板:**

**失败登录检测 — Event ID 4625:**

## 案例研究 (SOC 调查示例)
本仓库包含展示告警分诊和分析推理的实际 SOC 风格调查。
- [案例研究 01 — 失败登录调查 (Event ID 4625)](case-studies/brute-force-investigation.md)
每个案例研究都记录了 SOC Tier 1 分析师所遵循的调查工作流,包括分诊、分析和决策制定。
## 展示的 SOC 活动
本项目包含以下内容的实操执行:
- 端点接入(Agent 部署和连接验证)
- 日志接入验证与故障排除
- 使用上下文元数据进行告警分诊
- 身份验证事件调查
- 通过模拟对抗行为进行检测验证
- 服务和权限故障排除
- OpenSearch 中的索引和数据流验证
重点在于理解*为什么*会生成告警以及如何验证它们。
## 工具与技术
- **SIEM:** Wazuh
- **HIDS:** Wazuh Agent
- **搜索与索引:** OpenSearch
- **日志传输:** Filebeat (Wazuh 模块)
- **操作系统:** Ubuntu (VirtualBox)、Windows 11
- **虚拟化:** Oracle VirtualBox
- **框架:** MITRE ATT&CK
## 设计决策
实验室使用官方的 Wazuh Filebeat 模块进行接入,而不是自定义 pipeline,以便:
- 减少配置偏差
- 提高可维护性
- 更好地反映生产级别的 SOC 环境
配置与入门级监控设置的最佳实践保持一致。
## 仓库结构
```
screenshots/ → Evidence of agent connectivity and alert validation
troubleshooting/ → Log ingestion and configuration troubleshooting documentation
case-studies/ → SOC investigation write-ups
```
截图不包含凭据或敏感的主机信息。
## 故障排除与验证
真实的 SOC 工作包括识别和解决接入与可见性问题。
在此实验室构建期间,遇到并解决了以下问题:
- Windows Security 日志接入配置错误
- 事件通道解析验证
- Agent 连接验证
- OpenSearch 中的索引可见性和数据验证
- ossec.conf 中的配置语法错误
- 端到端数据流验证
完整的故障排除文档可在 `troubleshooting/` 目录中找到。
## 当前状态
✔ 核心监控已实施
✔ 接入验证已完成
✔ 失败身份验证检测已验证
✔ 告警分诊工作流已演示
✔ 案例研究已记录 (Event ID 4625 调查)
### 后续步骤
- 额外的端点模拟场景
- 通过自定义 Wazuh 规则扩展检测规则覆盖范围
- 基于网络的遥测集成
## 免责声明
本项目仅用于教育和作品集目的。
不涉及任何生产系统或敏感数据。
## 🔗 相关项目
| 项目 | 描述 |
|---------|-------------|
| [splunk-brute-force-detection](https://github.com/AurelioAvila/splunk-brute-force-detection) | 使用 Splunk SPL 进行暴力破解检测 |
| [malware-triage-hash](https://github.com/AurelioAvila/malware-triage-hash) | 通过 VirusTotal API 进行恶意软件分诊的 Python 工具 |
| [phishing-email-analysis](https://github.com/AurelioAvila/phishing-email-analysis) | 邮件头解析器和 IOC 提取器 |
标签:Cloudflare, Filebeat, MITRE ATT&CK, PCI DSS合规, SIEM监控, SOC家庭实验室, Tier 1分析师, VirtualBox, Wazuh, Windows 11, Windows事件日志, 事件ID 4624, 事件ID 4625, 初级安全分析师, 告警分诊, 安全分析师作品集, 安全告警验证, 安全运营中心, 日志接入与解析, 特权活动监控, 登录失败检测, 端点遥测监控, 网络安全实验, 网络映射, 身份验证监控