Eshaan49/SentinelX-SOC-Lab
GitHub: Eshaan49/SentinelX-SOC-Lab
一个基于 Wazuh SIEM 构建的自托管 SOC 实验室项目,通过模拟真实攻击场景展示从威胁检测到事件报告的完整安全分析工作流。
Stars: 0 | Forks: 0
# 🛡️ SentinelX — AI 辅助 SOC 调查平台
## 📌 项目概述
SentinelX 是一个从零开始构建的全功能 SOC 实验室环境,使用通过 OVA 部署在 **VMware Workstation Pro** 上的 **Wazuh SIEM**,并将一个运行中的 **Windows 11 终端**接入为受监控的 agent。三个真实的攻击场景被模拟、检测、调查并记录归档——涵盖了从原始告警到关闭事件报告的完整分析师工作流。
本项目作为针对 **SOC 分析师实习岗位** 的作品集而构建,展示了超越证书和课程结业的实用技能。
## 🏗️ 实验室架构
```
┌─────────────────────────────────────────────────────────┐
│ Host Machine │
│ Windows 11 Laptop (ESHAAN) │
│ │
│ ┌──────────────────────┐ ┌────────────────────────┐ │
│ │ VMware Workstation │ │ Windows Agent │ │
│ │ │ │ "HawkEye" (ID: 001) │ │
│ │ ┌────────────────┐ │ │ │ │
│ │ │ Wazuh Server │ │◄───│ • Audit Policy active │ │
│ │ │ (Amazon Linux │ │ │ • Event ID 4688/4624 │ │
│ │ │ 2023 OVA) │ │ │ • Full cmdline logging│ │
│ │ │ │ │ │ • Account Management │ │
│ │ │ 192.168.136.131│ │ │ auditing enabled │ │
│ │ └────────────────┘ │ └────────────────────────┘ │
│ └──────────────────────┘ │
└─────────────────────────────────────────────────────────┘
```
**技术栈:**
- **SIEM:** Wazuh 4.x (Manager + Indexer + Dashboard)
- **终端 Agent:** Windows 11 上的 Wazuh Windows Agent
- **虚拟化:** VMware Workstation Pro (NAT 网络)
- **操作系统:** Amazon Linux 2023 (Wazuh 服务器), Windows 11 (终端)
## 🎯 调查场景
### INC-001 — 暴力破解攻击
**MITRE:** T1110 (Brute Force) | **战术:** Credential Access | **规则:** 60204 | **级别:** 10
使用 PowerShell `net use` 循环针对一个不存在的账号模拟了 10 次快速连续的登录失败尝试。Wazuh 的关联引擎检测到了该模式,并触发了高危告警,将其与孤立的登录失败区分开来。
**核心技能:** 告警分诊、关联规则分析、MITRE ATT&CK 映射、事件报告编写
### INC-002 — 可疑的 PowerShell 执行(混淆)
**MITRE:** T1059.001 + T1027 | **战术:** Execution + Defense Evasion | **自定义规则:** 100002 | **级别:** 12
使用 `-EncodedCommand -WindowStyle Hidden -NoProfile` 标志模拟了一条 Base64 编码的 PowerShell 命令——这是一种经典的 living-off-the-land 混淆技术。**默认的 Wazuh 规则集未能以有意义的严重级别标记此项**(被淹没在通用的级别 3 进程创建噪声中)。
**识别到检测盲区 → 编写并部署了自定义规则:**
```
67027
(?i)-(enc|encodedcommand)\b
Suspicious PowerShell: Base64-encoded/obfuscated command detected
T1059.001
T1027
```
Payload 被手动解码并确认为一条侦察命令(`Get-Process | Out-File`)。自定义规则经验证在 Threat Hunting dashboard 中以级别 12 触发,并带有完整的 MITRE 上下文。
**核心技能:** 威胁狩猎、检测盲区识别、自定义规则工程、pcre2 正则表达式、Payload 分析、检测验证
### INC-003 — 未经授权的用户账号创建与权限提升
**MITRE:** T1136.001 + T1098 + T1078.003 | **战术:** Persistence + Privilege Escalation | **规则:** 60109/60110 | **级别:** 8
模拟攻击者创建了一个具有欺骗性命名的后门本地账号(`svc_backup`),并立即将其添加到本地 Administrators 组中——一种教科书式的持久化技术。Wazuh 的原生规则集自动检测到了这两个事件,预先映射了 MITRE T1098,并自动打上了合规框架(GDPR、HIPAA、PCI-DSS、NIST 800-53)标签。
**核心技能:** 基于账号的攻击检测、合规框架意识、原生与自定义覆盖范围评估
## 📊 检测覆盖范围摘要
| 事件 | 攻击技术 | MITRE | 默认覆盖范围 | 自定义规则 | 严重级别 |
|----------|-----------------|-------|-----------------|-------------|----------|
| INC-001 | Brute Force | T1110 | ✅ 充分 | 不需要 | 级别 10 |
| INC-002 | 编码的 PowerShell | T1059.001, T1027 | ❌ 盲区 (级别 3) | ✅ 编写了规则 100002 | 级别 12 |
| INC-003 | 账号创建 + 权限提升 | T1136.001, T1098 | ✅ 充分 | 不需要 | 级别 8 |
## 📁 仓库结构
```
SentinelX-SOC-Lab/
├── README.md
├── incidents/
│ ├── INC-001-Brute-Force-Report.docx
│ ├── INC-002-Suspicious-PowerShell-Report.docx
│ └── INC-003-Account-Creation-Report.docx
├── detection-rules/
│ └── local_rules.xml # Custom rule 100002
├── screenshots/
│ ├── scenario-1/ # Brute force alert evidence
│ ├── scenario-2/ # PowerShell detection + custom rule
│ └── scenario-3/ # Account creation events
└── lab-setup/
└── infrastructure-notes.md # Setup challenges & solutions
```
## 🔍 展示的技能
| 类别 | 技能 |
|----------|--------|
| **SIEM 操作** | Wazuh 部署、agent 注册、规则管理、Threat Hunting 查询 |
| **检测工程** | 自定义规则编写、pcre2 正则表达式、MITRE ATT&CK 映射、检测盲区分析 |
| **威胁狩猎** | 手动调查、DQL 查询、事件关联、噪声过滤 |
| **事件响应** | 完整的 IR 生命周期 — 检测 → 调查 → 遏制 → 报告 |
| **Windows 安全** | 审计策略配置、Event ID 分析 (4688, 4624, 4625, 4720, 4722, 4738) |
| **攻击模拟** | 暴力破解、PowerShell 混淆、通过账号创建实现持久化 |
| **文档编写** | 包含证据、MITRE 映射和建议的专业事件报告 |
| **合规性** | GDPR, HIPAA, PCI-DSS, NIST 800-53 框架意识 |
## 🛠️ 解决的基础设施挑战
构建此实验室并非即插即用。过程中解决的关键问题包括:
- **Wazuh Cloud 试用被阻止**(大学邮箱被标记)→ 转向自托管的 OVA 部署
- **Ubuntu 26.04 与** Wazuh 4.9.2 **不兼容**→ 在 Amazon Linux 2023 OVA 上重建
- wazuh-indexer 和 wazuh-manager 上的 **Systemd 超时错误**→ 通过直接 shell 写入应用了 `TimeoutStartSec=300` 覆盖(绕过了 nano/VMware 键盘冲突)
- **VMware Ctrl+O 与** nano 冲突导致无法保存文件 → 为所有配置写入开发了统一的 `echo -e | sudo tee` 和 heredoc 模式
- **SSH 剪贴板摩擦**→ 通过将所有管理工作通过 Windows PowerShell SSH 会话执行来解决
记录这些摩擦点是因为真实的 SOC 工作包含对基础设施的故障排除,而不仅仅是使用开箱即完美运行的工具。
## 📋 事件报告
完整的专业事件报告可在 `/incidents` 文件夹中找到,每份报告包含:
- 执行摘要
- 原始告警和事件证据
- MITRE ATT&CK 映射
- 调查时间线
- 建议
- 解决与关闭
| 报告 | 页数 | 亮点 |
|--------|-------|-----------|
| INC-001 | 4 | 关联告警分析、回环源识别 |
| INC-002 | 6 | 检测盲区 + 自定义规则 + payload 解码 — 完整的检测工程生命周期 |
| INC-003 | 6 | 合规性自动打标、两步攻击链、原生与自定义覆盖范围对比 |
## 🚀 如何复现此实验室
**要求:**
- 装有 VMware Workstation Pro (或 Player) 的 Windows 主机
- 至少 8GB RAM(为 VM 分配 4GB)
- [下载 Wazuh OVA](https://documentation.wazuh.com/current/deployment-options/virtual-machine/virtual-machine.html)
**快速开始:**
1. 将 Wazuh OVA 导入 VMware,将网络设置为 NAT
2. 对 wazuh-indexer 和 wazuh-manager 应用 `TimeoutStartSec=300` systemd 覆盖(参见实验室设置说明)
3. 按顺序启动服务:indexer → manager → dashboard
4. 通过 dashboard 的 Deploy Agent 向导注册 Windows agent
5. 启用 Windows 审核策略(进程创建 + 命令行日志记录、账号管理、登录/登出)
6. 运行场景模拟并在 Threat Hunting 中进行调查
## 👤 关于
由 **Eshaan** 构建,这是一个旨在申请网络安全实习的动手实践 SOC 作品集项目。
侧重于展示在威胁检测、SIEM 操作和检测工程方面的实用技能——而不仅仅是理论知识。
*SentinelX 是一个个人实验室项目。所有攻击模拟均在自有的硬件上的隔离环境中进行。*
标签:AI合规, SOC实验环境, Wazuh, 安全运营, 扫描框架, 攻击模拟, 红队行动, 驱动签名利用