Aymo295/SOC-Lab-Flagship_Project
GitHub: Aymo295/SOC-Lab-Flagship_Project
一个多阶段虚拟化 SOC 家庭实验室项目,用于企业级检测工程和事件响应的实践训练与文档化学习。
Stars: 0 | Forks: 0
# 网络安全旗舰 SOC 实验室
## 概述
我搭建了这个家庭安全运营中心 (SOC) 实验室,旨在获得关于遥测数据收集、检测开发、故障排除、验证以及事件调查工作流的实战经验。
该环境由以下部分组成:一台运行 Sysmon、Splunk Universal Forwarder 和 Wazuh Agent 的 Windows 11 终端;一台运行 Splunk Enterprise、Wazuh Manager 和 Chrony 的 Ubuntu 监控服务器;以及一台专用于受控测试和未来攻击模拟的 Kali Linux 系统。
本仓库记录了构建和运营小型 SOC 环境的过程,包括遥测验证、故障排除、检测工程和调查工作流开发。计划中、实验性、已验证和已完成的工作分别进行了标记,以避免夸大项目结果。
## 实验室架构
```
Kali Linux
Controlled testing and future simulations
|
v
Windows 11 Endpoint
Sysmon + Windows Security Events
Splunk Universal Forwarder + Wazuh Agent
|
v
Ubuntu Monitoring Server
Splunk Enterprise + Wazuh Manager + Chrony
```
详细的环境和验证说明可在[实验室概述](docs/lab-overview.md)中查看。
## 主要成就
* 使用 Windows 11、Ubuntu Linux 和 Kali Linux 构建了隔离的 VirtualBox SOC 环境。
* 配置了 Windows Security Event Log 和 Sysmon 遥测数据收集。
* 将 Windows 终端与 Splunk Enterprise 和 Wazuh 集成。
* 通过追踪事件从终端生成、转发、索引到搜索可见性的全过程,验证了遥测数据的接入。
* 配置了通过 TCP 端口 `9997` 的 Splunk 转发,并独立验证了接收器、网络路径和活动的转发目标。
* 诊断了由于配置的 `wineventlog` 索引不存在而导致事件被丢弃的问题。
* 调查了 Sysmon 事件通道订阅失败和 Splunk Forwarder 服务中断的问题。
* 配置了 Chrony 访问规则,并验证了在授权失败后恢复健康的同步状态。
* 开发了涵盖身份验证、执行、持久化、命令与控制 (C2) 以及遥测健康等用例的实验性 SPL 和 Sigma 内容。
* 发布了包含精选截图和证据处理指南的故障排除案例研究。
## 主要故障排除案例
### Splunk 事件因缺少索引而被丢弃
Windows 事件已到达 Splunk,但无法被搜索到,因为它们被路由到了未配置的 `wineventlog` 索引。这证明了 Forwarder 的连通性并不能保证成功索引。
[阅读完整案例研究](docs/troubleshooting/missing-index.md)
### Sysmon 通道订阅失败
Sysmon 事件在本地存在,但 Splunk Universal Forwarder 报告其无法订阅 `Microsoft-Windows-Sysmon/Operational` 通道。这进一步印证了需要独立验证遥测生成、通道访问、收集、传输和索引的必要性。
[阅读完整案例研究](docs/troubleshooting/sysmon-channel-permissions.md)
### Chrony 授权与时间同步
Chrony 客户端请求最初返回 `Not authorised`。在检查了访问规则和服务行为后,随后的跟踪输出显示其处于健康的同步状态,具有正常的闰秒状态和最小的时钟偏移。
[阅读完整案例研究](docs/troubleshooting/time-synchronization.md)
### Splunk 接收器与 Forwarder 连通性
接收器、网络路径和转发目标作为独立的层进行了验证:Ubuntu 正在监听 TCP 端口 `9997`,Windows 终端可以访问该端口,并且 Universal Forwarder 报告 Splunk 服务器为活动的转发目标。
[阅读完整案例研究](docs/troubleshooting/receiver-and-forwarder-connectivity.md)
更多已记录的问题可在[故障排除案例研究索引](docs/troubleshooting/README.md)中找到。
## 检测开发
本仓库包含实验性的检测内容,这些内容仍需进行语法审查、字段映射、阈值调整和实际验证。
| 检测领域 | 主要数据源 | 状态 |
| --------------------------------------------- | -------------------------------------------- | ----------------------------------------- |
| 登录失败和密码喷射 | Windows Security Event ID `4625` | 实验性 |
| 多次失败后的 RDP 成功登录 | Windows Security Event IDs `4624` 和 `4625` | 实验性;序列验证待定 |
| 特权登录活动 | Windows Security Event ID `4672` | 实验性 |
| 可疑的 PowerShell 执行 | Sysmon Event ID `1` | 实验性 |
| 可疑的父子进程关系 | Sysmon Event ID `1` | 搜索查询 |
| 注册表持久化行为 | Sysmon 注册表遥测 | 实验性 |
| 可疑的 DNS 或 C2 风格活动 | Sysmon DNS 遥测 | 实验性 |
| 遥测接入健康度 | Splunk 时间戳和事件量 | 部分实现 |
检测内容组织在以下部分:
* [Splunk 检测](detections/splunk/)
* [Sigma 检测](detections/sigma/)
* [遥测健康搜索](detections/splunk/telemetry/)
## 当前状态
| 领域 | 状态 | 备注 |
| ----------------------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------- |
| 遥测 pipeline | 部分验证 | 核心的 Windows、Splunk、Wazuh、接收器连通性和时间同步工作流已记录在案。 |
| 故障排除文档 | 已记录 | 真实的 service、访问、连通性、同步和索引失败均由精选的截图提供支持。 |
| 检测工程 | 实验性 | 存在 SPL 和 Sigma 内容,但仍需语法审查、字段验证、调整和受控测试。 |
| 受控攻击模拟 | 已计划 | Kali 已配置,但端到端的攻击和检测结果尚未发布。 |
| 已完成的调查 | 尚未填充 | 只有在存在真实验证证据后,才会添加已完成的案例。 |
## 仓库导航
* [实验室概述](docs/lab-overview.md) — 环境详情、遥测状态、验证指南和项目说明。
* [故障排除案例研究](docs/troubleshooting/README.md) — 记录在案的接入、权限、服务、连通性和时间同步问题。
* [遥测验证证据](docs/telemetry-validation.md) — 展示 Splunk 转发、Windows/Sysmon 接入、Wazuh Agent 状态和时间同步验证的截图。
* [响应剧本](docs/response-playbooks.md) — SOC 分析师分诊和调查工作流。
* [Splunk 检测](detections/splunk/) — 按检测类别分组的实验性 SPL 搜索。
* [Sigma 检测](detections/sigma/) — 按检测类别分组的可移植草案规则。
* [调查模板](investigations/templates/) — 可重用的分析师文档模板。
* [攻击模拟](attack-simulations/) — 受控的模拟计划和未来的观察结果。
证据保存和清理程序记录在[证据处理](docs/evidence-handling.md)中。
## 下一个里程碑
* 针对实时的 Splunk 字段映射验证 SPL 搜索。
* 验证 Sigma 语法、元数据和后端兼容性。
* 构建一个检测目录,将搜索、规则、剧本、模拟和调查关联起来。
* 执行首次受控的身份验证模拟。
* 捕获经过清理的端到端检测证据。
* 完成并发布首个经验证的调查案例。
* 扩充 Splunk、Sysmon、Wazuh 和网络的配置示例。
标签:Wazuh, 安全实验室, 安全运营中心, 日志采集, 管理员页面发现, 网络映射