monulp/sentinel-soc-home-lab
GitHub: monulp/sentinel-soc-home-lab
一个基于 Microsoft Sentinel 和 Splunk 构建的开源 SOC 家庭实验室,利用真实互联网攻击流量实现检测规则开发、事件调查与多 SIEM 关联分析的完整工作流演示。
Stars: 1 | Forks: 0
# 🛡️ SOC 家庭实验室 — Microsoft Sentinel + Splunk

## 📋 目录
- [概述](#overview)
- [架构](#architecture)
- [工具与技术](#tools--technologies)
- [检测规则](#detection-rules)
- [已调查事件](#incidents-investigated)
- [KQL 手册](#kql-playbook)
- [仪表盘](#dashboard)
- [教程](#tutorials)
- [展示技能](#skills-demonstrated)
## 概述
本实验室通过将一台 Linux Web 服务器暴露在公共互联网上,并通过 Microsoft Sentinel 和 Splunk 监控所有攻击流量,来模拟真实的 SOC 环境。此处记录的每个警报、事件和调查均基于**来自真实威胁行为者的真实攻击**。
### 与众不同之处
- **真实攻击数据** — 非模拟数据,7×24 小时的真实暴力破解和扫描活动
- **多 SIEM** — 在 Sentinel 和 Splunk 之间对相同攻击进行关联分析
- **端到端工作流** — 从日志采集 → 检测规则 → 事件调查 → 关闭
- **专业文档** — 事件报告、KQL 手册、教程
### 实验室统计数据(截至 2026 年 5 月)
| 指标 | 数值 |
|---|---|
| 检测到的事件总数 | 200+ |
| 活跃检测规则 | 6 |
| 观察到的唯一攻击者 IP | 50+ |
| 已识别的来源国家 | 10+ |
| 已阻止的暴力破解尝试 | 4,600+ |
## 架构
```
┌─────────────────────────────────────────────────────────┐
│ INTERNET ATTACKERS │
│ SSH Brute Force / Web Scanners / Nmap │
└──────────────────────┬──────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ server1.adilmonu.com │
│ Digital Ocean Ubuntu 22.04 Droplet │
│ │
│ Apache Web Server ←→ rsyslog ←→ Splunk Agent │
│ SSH Service │
│ Azure Arc Agent │
│ Azure Monitor Agent │
└──────────┬──────────────────────────┬───────────────────┘
│ │
▼ ▼
┌──────────────────┐ ┌───────────────────────┐
│ Microsoft │ │ Splunk Enterprise │
│ Sentinel │ │ (Local Instance) │
│ │ │ │
│ Log Analytics │ │ Web Security Dashboard │
│ Analytics Rules │ │ Triggered Alerts │
│ Incident Queue │ │ Custom Searches │
│ Custom Workbook │ │ │
└──────────────────┘ └───────────────────────┘
```
### 日志流
```
Apache Access Log → rsyslog → local0 → Azure Monitor Agent → Sentinel
Apache Error Log → rsyslog → local1 → Azure Monitor Agent → Sentinel
SSH Auth Log → rsyslog → auth → Azure Monitor Agent → Sentinel
```
## 工具与技术
| 类别 | 工具 | 用途 |
|---|---|---|
| **SIEM** | Microsoft Sentinel | 主要 SOC 平台、检测规则、事件管理 |
| **SIEM** | Splunk Enterprise | 辅助 SIEM、跨平台关联分析 |
| **云** | Microsoft Azure | Sentinel 工作区、Log Analytics、Azure Arc |
| **基础设施** | Digital Ocean | Ubuntu 22.04 Droplet(server1.adilmonu.com) |
| **日志管理** | Azure Monitor Agent | 日志采集并转发至 Sentinel |
| **日志管理** | rsyslog | Linux 服务器上的日志路由 |
| **Web 服务器** | Apache2 | 生成 Web 访问/错误日志 |
| **查询语言** | KQL | Sentinel 狩猎和检测查询 |
| **查询语言** | Splunk 搜索和告警查询 |
| **终端** | Azure Arc | 将本地服务器连接到 Azure |
## 检测规则
所有规则均为 Microsoft Sentinel 中自定义构建的 Scheduled Analytics Rules,映射到 MITRE ATT&CK。
| 规则名称 | 严重程度 | MITRE 战术 | 技术 | 调度频率 | 日志源 |
|---|---|---|---|---|---|
| SSH 暴力破解检测 | 中 | TA0006 凭据访问 | T1110 | 每 5 分钟 | auth/authpriv |
| 端口扫描检测 | 高 | TA0043 侦察 | T1595 | 每 5 分钟 | auth/authpriv |
| Nmap 扫描检测 | 高 | TA0043 侦察 | T1595.001 | 每 5 分钟 | auth/authpriv |
| Web 扫描器检测 | 中 | TA0043 侦察 | T1595 | 每 1 小时 | local0(Apache) |
| 高 HTTP 错误率 | 中 | TA0043 侦察 | T1595 | 每 30 分钟 | local0(Apache) |
| 可疑 User Agent 检测 | 高 | TA0043 侦察 | T1595 | 每 15 分钟 | local0(Apache) |

### 检测工程亮点
**SSH 暴力破解规则** — 使用 24 小时回溯和 5 次失败尝试的阈值,按实体对警报进行分组,以防止来自同一攻击者的警报泛滥。
**Web 扫描器规则** — 在发现检测漏洞后,捕获所有可疑状态码(404、301、302、403、400、500)的扫描器,此前仅过滤 404 的规则遗漏了 301 重定向。通过与 Splunk 的跨平台关联分析发现。
**可疑 User Agent** — 零误报规则。通过其 User-Agent 字符串识别已知的攻击工具(Nikto、Gobuster、sqlmap、Nmap、Masscan、Nuclei)。任何匹配均确认为恶意。
## 已调查事件
### INC-030 — SSH 暴力破解活动(多来源僵尸网络)

| 字段 | 详情 |
|---|---|
| **日期** | 2026 年 5 月 11 日 |
| **分类** | 真实阳性 — 良性(攻击失败) |
| **严重程度** | 中 |
| **总尝试次数** | 2,326 次暴力破解尝试 |
| **攻击者 IP** | 7 个 IP,分布在美国、香港、越南、荷兰、墨西哥、摩尔多瓦 |
| **峰值流量** | 上午 06:00 波次中约 1,820 次尝试 |
| **确认入侵** | 否 — 通过 KQL 确认零次成功认证 |
| **MITRE 战术** | TA0006 凭据访问 |
**调查摘要:**
75 分钟内 7 个不同 IP 触发了 16 个 Sentinel 警报。所有 IP 均被 Defender XDR 威胁情报标记为可疑。KQL 入侵验证查询返回零结果 — 所有 2,326 次尝试均在 [preauth] 阶段失败。跨越 7 个国家的协调时间符合分布式僵尸网络活动的特征。
📄 [完整事件报告](https://github.com/monulp/sentinel-soc-home-lab/blob/main/incidents/Incident30/report)
### INC-031 — Web 扫描器检测(进行中)
| 字段 | 详情 |
|---|---|
| **日期** | 2026 年 5 月 11 日 |
| **分类** | 真实阳性 — 调查中 |
| **攻击者 IP** | 118.148.72.193 |
| **MITRE 战术** | TA0043 侦察 |
## KQL 手册
针对每个检测规则的完整调查指南 — 针对每种警报类型,按顺序运行哪些查询。
📄 [KQL 调查手册](https://github.com/monulp/sentinel-soc-home-lab/blob/main/docs/KQL-Investigation-Playbook.md)
### 快速参考
```
// Universal starting query — run this first for every investigation
Syslog
| where TimeGenerated > ago(24h)
| where SyslogMessage contains "ATTACKER_IP_HERE"
| project TimeGenerated, Facility, SyslogMessage
| order by TimeGenerated asc
```
## 仪表盘
自定义 Sentinel Workbook,用与此实验室相关的安全特定可视化替代通用模板。

### 仪表盘面板
- **过去 24 小时活跃事件** — 按规则名称分组的柱状图
- **攻击流量时间线** — 以 30 分钟为区间显示攻击波次
- **Top 10 Web 攻击 IP** — 按请求量排名
- **Top 10 SSH 暴力破解 IP** — 按尝试次数排名
- **HTTP 状态码分布** — 响应码饼图
## 教程
从零开始构建本实验室的分步指南。
| 教程 | 描述 | 状态 |
|---|---|---|
| [教程 01 — 实验室搭建](https://github.com/monulp/sentinel-soc-home-lab/blob/main/tutorial-docs/01-azure-sentinel-setup.md) | Digital Ocean Droplet、Azure Arc、Sentinel 工作区、日志采集 | ✅ 已完成 |
| 教程 02 — 检测规则 | 构建自定义分析规则、KQL 编写、MITRE 映射 | 🔄 进行中 |
| 教程 03 — 攻击模拟 | 运行 Hydra 暴力破解和 Gobuster Web 扫描、调查结果 | ⬜ 计划中 |
| 教程 04 — Wazuh EDR | 安装 Wazuh 作为 CrowdStrike 的替代方案、代理部署 | ⬜ 计划中 |
## 展示技能
### 检测工程
- 从零构建了 6 个自定义 Sentinel Analytics Rules
- 编写了带正则表达式提取的 KQL 检测查询
- 通过跨平台关联分析识别并解决了检测漏洞
- 将所有规则映射到 MITRE ATT&CK 框架
### 事件响应
- 端到端事件调查工作流(分类 → 取证 → KQL → 判定 → 关闭)
- 使用定向 KQL 查询进行入侵验证
- 专业事件报告撰写
- 事件分类与判定
### 威胁狩猎
- 超越警报边界的主动 KQL 狩猎
- 跨平台关联分析(Sentinel + Splunk)
- 攻击者 IP 画像和地理位置定位
- 杀伤链重建
### SIEM 管理
- Microsoft Sentinel 工作区配置
- Log Analytics 工作区管理
- 数据收集规则设置
- Azure Monitor Agent 部署
- 自定义 Workbook 开发
### Linux 与基础设施
- Ubuntu 服务器管理
- rsyslog 配置用于多目标日志路由
- Apache2 Web 服务器搭建和日志管理
- Azure Arc 代理安装与管理
## 关于
本实验室是为网络安全分析师职位面试准备的一部分,展示了在真实基础设施上使用企业级工具的实用 SOC 技能。
**联系方式:** https://github.com/monulp
**平台:** Microsoft Sentinel | Splunk | Digital Ocean | Azure
*所有展示的攻击数据均来自面向互联网的流量的真实数据。无模拟数据。*
标签:AMSI绕过, APT, brute force, CISA项目, Cloudflare, Dashboard, DNS信息、DNS暴力破解, FTP漏洞扫描, IOC, IP 地址批量处理, KQL, KQL文档, Kusto查询语言, Linux服务器, Microsoft Sentinel, MITRE ATT&CK, Nmap, PB级数据处理, SOAR, SSH暴力破解, Web防火墙, YARA规则, 事件报告, 事件调查, 反取证, 多SIEM关联, 威胁情报, 威胁检测, 安全事件, 安全响应, 安全编排, 安全评估, 安全运维, 安全运营中心, 家庭实验环境, 开发者工具, 恶意IP, 技能展示, 插件系统, 攻击者行为, 攻击链, 数字取证, 数据展示, 数据统计, 检测规则, 真实攻击, 端口扫描, 红队, 网络安全, 网络映射, 网络资产发现, 自动化脚本, 虚拟驱动器, 隐私保护