pranav1-1/Microsoft-Sentinel-SOC-Lab

GitHub: pranav1-1/Microsoft-Sentinel-SOC-Lab

基于 Microsoft Sentinel 从零搭建的 SOC 实验室,涵盖 Sysmon 日志采集、自定义 KQL 检测规则编写、攻击模拟与完整的 MITRE ATT&CK 映射事件调查流程。

Stars: 0 | Forks: 0

# 🛡️ Microsoft-Sentinel-SOC-Lab ![状态](https://img.shields.io/badge/status-completed-brightgreen) ![平台](https://img.shields.io/badge/platform-Microsoft%20Sentinel-blue) ![云平台](https://img.shields.io/badge/cloud-Azure-0078D4) ![关注点](https://img.shields.io/badge/focus-SOC%20%2F%20Threat%20Detection-red) ## 📌 本项目存在的意义 大多数初级 SOC/安全分析师候选人都能*谈论* SIEM 工具。但很少有人能*展示*一个由他们自己搭建、配置并调查过的环境。本项目正是为了填补这一空白。 **SentinelEye** 是一个自包含的 SOC 实验室,通过真实的日志、真实的检测和真实的调查记录,证明我能够: - 从零开始部署一个受监控的 endpoint - 将实时遥测数据导入 SIEM - 为真实的攻击者行为设计检测(而不是复制粘贴的规则) - 通过可控且安全的攻击模拟触发这些检测 - 像值班分析师一样调查由此产生的 incident - 将每个检测映射回 MITRE ATT&CK ## 🏗️ 架构 ``` flowchart LR A[Windows 10 VM
Azure] -->|Sysmon +
Security Auditing| B[Azure Monitor Agent] B -->|Data Collection Rule| C[Log Analytics Workspace
Central India] C --> D[Microsoft Sentinel
SIEM] D -->|Analytics Rules| E[Alerts] E --> F[Incidents] F --> G[Investigation
KQL + Entity Analysis] G --> H[Incident Reports
+ MITRE ATT&CK Mapping] ``` **技术栈:** Azure Virtual Machine (Windows 10) → Sysmon → Azure Monitor Agent (AMA) → Data Collection Rule (DCR) → Log Analytics Workspace → Microsoft Sentinel → 自定义 Analytics Rules → Incident 调查 ## 🎯 本实验室的检测目标 | # | 检测项 | MITRE ATT&CK | 严重程度 | |---|---|---|---| | 1 | 多次登录失败尝试 (Brute Force) | [T1110 – Brute Force](https://attack.mitre.org/techniques/T1110/) | 中 | | 2 | 可疑的编码 PowerShell 执行 | [T1059.001 – PowerShell](https://attack.mitre.org/techniques/T1059/001/) | 高 | | 3 | 可疑的侦察命令 (`whoami`, `net user`, `ipconfig` 等) | [T1087 – Account Discovery](https://attack.mitre.org/techniques/T1087/), [T1082 – System Information Discovery](https://attack.mitre.org/techniques/T1082/) | 中 | 每条规则都是从零开始编写的 **KQL Scheduled Query Rule**,针对真实的遥测数据源(通过 Sysmon / Security-Auditing 获取的 `Event` 表)进行了调优,并通过实际触发进行了验证。 ## 🔧 构建过程 ### 1. 实验室环境设置 - 配置了一台 Azure Windows 10 VM (`soc-lab-vm`) 作为受监控的 endpoint - 安装了 **Sysmon** 并采用 SwiftOnSecurity 配置,以获取高保真度的进程、网络和文件遥测数据 - 创建了一个 **Log Analytics Workspace** 作为中央日志存储 - 在该工作区上启用了 **Microsoft Sentinel** ### 2. 日志管道(数据收集) - 构建了自定义的 **Data Collection Rule (DCR)** 以收集 Windows 安全事件和 Sysmon 日志 - 在 VM 上安装并验证了 **Azure Monitor Agent (AMA)** - 在编写任何检测规则之前,先使用 KQL(`Heartbeat`、`Event` 表)验证了端到端的日志流——因为检测的效果取决于其底层数据的质量 ### 3. 检测工程 - 在 Sentinel 的 Analytics 边栏选项卡中编写了 3 条自定义 Scheduled Query Rules - 设置了告警阈值、调度间隔和 incident 生成逻辑 - 将每条规则映射到其对应的 MITRE ATT&CK 技术 ### 4. 攻击模拟 - 模拟了 brute-force 登录尝试(多次失败的 RDP 登录) - 执行了 Base64 编码的 PowerShell 命令(一种常见的现实世界规避技术) - 运行了攻击者在攻击成功后常用的经典侦察命令 ### 5. Incident 调查 - 在 Sentinel 内部对每个生成的 incident 进行了分类筛选 - 使用 KQL 提取原始事件数据,解码失败代码(例如 `0xC000006A`),并识别登录类型、来源 IP 和目标账户 - 在结构化的 incident 报告中记录了发现、证据和结论(参见 [`/incident-reports`](./incident-reports)) ## 🔍 调查记录示例 **Incident:多次登录失败尝试** | 字段 | 值 | |---|---| | Event ID | 4625 | | 目标账户 | `Pranav` | | 失败原因 | 密码错误 (`0xC000006A`) | | 登录类型 | 3 (网络) | | 来源 IP | `182.59.87.245` | | 结论 | 真正例 (模拟) | ## 📁 仓库结构 ## 🧠 展现的技能 - Azure 基础设施配置(VM、Log Analytics、Sentinel) - 日志源配置(Sysmon、Azure Monitor Agent、Data Collection Rules) - KQL (Kusto Query Language) — 从基础探索到检测逻辑 - 检测工程(Sentinel Analytics Rules) - 与真实对手行为对齐的攻击模拟 - Incident 分类与调查方法论 - MITRE ATT&CK 框架映射 - 面向安全受众的技术文档 ## 💼 一句话简历摘要 ## 🚀 下一步计划(第二阶段) 该实验室有意作为一个基础。计划的后续迭代包括: - [ ] 恶意 PowerShell 下载并执行检测 - [ ] 计划任务 / 注册表持久化检测 - [ ] 服务创建与 WMI 事件订阅滥用 - [ ] Pass-the-Hash 模拟与检测 - [ ] 基于 Atomic Red Team 的攻击模拟 - [ ] 高级 KQL 威胁狩猎查询 ## 📬 联系方式 由 **Pranav** 构建并记录 — 一名有志成为 SOC / 安全分析师的从业者。 欢迎在 [LinkedIn](#) 上与我交流,或查看我的另一个安全实验室:[Malware Traffic Analysis Portfolio](#)。 ⭐ 如果本项目为您搭建自己的 SOC 实验室提供了有用的参考,请考虑为本仓库点个 Star。
标签:AMSI绕过, KQL, Microsoft Sentinel, OpenCanary, SOC实验室, 威胁检测, 安全运营, 扫描框架, 红队行动