RouteToRoot/soc-lab-27-microsoft-sentinel
GitHub: RouteToRoot/soc-lab-27-microsoft-sentinel
一个完整的 Microsoft Sentinel 云 SIEM 实验项目,演示了从日志摄取、KQL 检测规则工程到暴力破解攻击模拟与事件调查的企业级云安全运营全流程。
Stars: 0 | Forks: 0
# SOC 实验 27 — Microsoft Sentinel:云 SIEM 检测
## 目录
1. [执行摘要](#executive-summary)
2. [事件工单 (ServiceNow 模拟)](#incident-ticket-servicenow-simulation)
3. [实验目标](#lab-objectives)
4. [环境概述](#environment-overview)
5. [数据管道配置](#data-pipeline-configuration)
6. [日志摄取验证](#log-ingestion-verification)
7. [检测规则工程](#detection-rule-engineering)
8. [攻击模拟](#attack-simulation)
9. [事件调查](#incident-investigation)
10. [MITRE ATT&CK 映射](#mitre-attck-mapping)
11. [证据](#evidence)
12. [结论](#conclusions)
13. [后续步骤](#next-steps)
## 执行摘要
本实验在 Azure 中部署 Microsoft Sentinel 作为云原生 SIEM,并验证了完整的检测管道——从日志摄取到事件调查。一台 Windows Server 2025 虚拟机 (RTR-WinVM) 被配置为通过 Azure Monitor Agent (AMA) 和 Data Collection Rule (DCR) 将 Windows Security Events 转发到 Log Analytics Workspace。编写了一个自定义的 KQL 定时查询规则来检测失败的登录尝试 (Event ID 4625)。通过 RDP 使用无效凭证模拟了暴力破解攻击,产生了 30 个失败登录事件。Microsoft Sentinel 在 Microsoft Defender XDR 门户中触发了 7 个事件,均确认为中等严重性,并识别了源账户、目标机器和攻击者 IP。
本实验演示了企业安全运营中使用的完整云 SOC 检测管道:使用 Microsoft 安全技术栈进行日志收集、检测工程、警报分诊和事件调查。
## 事件工单 (ServiceNow 模拟)
| 字段 | 详情 |
|---|---|
| **事件 ID** | INC-0027 |
| **检测日期/时间** | 2026-05-09 16:11 UTC |
| **检测人** | Eric Ellison — SOC Analyst |
| **严重性** | 中 |
| **类别** | 凭证访问 |
| **子类别** | 暴力破解 / 登录失败 |
| **简短描述** | Microsoft Sentinel 检测到来自 IP 64.183.42.233 对 RTR-WinVM 的 30 次失败 Windows 登录尝试 |
| **详细描述** | Microsoft Sentinel 中的一个定时 KQL 分析规则检测到针对 RTR-WinVM 的重复失败 Windows 登录尝试 (Event ID 4625)。该规则以 5 分钟的间隔运行,具有 1 小时的回溯窗口,阈值设定为按账户、计算机和 IP 地址分组后失败尝试达到 5 次或以上。查询结果识别出账户 .\fakeuser 通过 RDP 从外部 IP 64.183.42.233 发起了 30 次失败尝试。在检测窗口期间,Microsoft Defender XDR 事件队列中生成了 7 个事件。所有事件均确认为中等严重性和活跃状态。 |
| **IOCs** | 账户: .\fakeuser — 计算机: RTR-WinVM — 源 IP: 64.183.42.233 — 失败尝试次数: 30 — Event ID: 4625 |
| **影响评估** | 低 — 实验环境。在生产环境中,来自外部 IP 针对本地账户的 30 次失败 RDP 登录尝试将代表一次需要立即遏制的活跃暴力破解攻击。 |
| **已采取的响应措施** | 已在 Microsoft Defender XDR 中审查事件。已确认警报详情。已记录 IOCs。已确定遏制建议。 |
| **建议措施** | 在 NSG 层面阻止 IP 64.183.42.233。禁用公共 RDP 暴露。启用账户锁定策略。对所有可进行 RDP 访问的账户强制执行 MFA。将 RDP 限制为通过 Azure Bastion 或 VPN 访问。 |
| **状态** | 已关闭 — 实验完成 |
## 实验目标
- 在 Azure 中部署 Microsoft Sentinel 并连接到 Log Analytics Workspace
- 配置 Windows VM 通过 Azure Monitor Agent (AMA) 转发 Security Events
- 通过查询 Log Analytics 中的 SecurityEvent 表来验证日志摄取
- 编写自定义 KQL 定时查询规则以检测失败的登录尝试 (Event ID 4625)
- 通过 RDP 模拟暴力破解攻击以生成真实遥测数据
- 在 Microsoft Defender XDR 中调查生成的事件
- 以事件报告格式记录调查结果,作为个人作品集
## 环境概述
| 组件 | 详情 |
|---|---|
| **SIEM 平台** | Microsoft Sentinel |
| **安全门户** | Microsoft Defender XDR (security.microsoft.com) |
| **Log Analytics Workspace** | RTR-LAW (West US 2) |
| **工作区 ID** | e58d0565-bcf4-43b7-820a-07e86fdab056 |
| **虚拟机** | RTR-WinVM |
| **操作系统** | Windows Server 2025 Datacenter x64 |
| **VM 大小** | Standard_D2s_v3 (2 vCPUs, 8 GiB) |
| **VM 区域** | East US |
| **VM 公网 IP** | 20.127.82.236 |
| **数据连接器** | Windows Security Events via AMA |
| **Data Collection Rule** | rtr-dcr-windowsevents |
| **资源组** | rtr-sentinel-lab |
| **Azure 订阅** | Azure Subscription 1 (Pay-As-You-Go) |
| **查询语言** | KQL (Kusto Query Language) |
## 数据管道配置
数据管道被配置为通过以下组件将 Windows Security Events 从 RTR-WinVM 转发到 Microsoft Sentinel:
### Azure Monitor Agent (AMA)
Azure Monitor Agent 通过 Microsoft Sentinel 中的 Windows Security Events 数据连接器部署在 RTR-WinVM 上。AMA 取代了传统的 Microsoft Monitoring Agent (MMA),并提供了当前受支持的 Windows 事件日志收集方法。
### Data Collection Rule (DCR)
创建了一个名为 **rtr-dcr-windowsevents** 的 Data Collection Rule,用于定义要收集的数据以及发送目标。
| DCR 属性 | 值 |
|---|---|
| 名称 | rtr-dcr-windowsevents |
| 平台类型 | Windows |
| 数据源 | Windows Event Logs |
| 目标 | Azure Monitor Logs (RTR-LAW) |
| 连接的资源 | RTR-WinVM (East US) |
| 标签 | createdBy: Sentinel |
### 数据流
```
RTR-WinVM (Windows Server 2025)
→ Azure Monitor Agent (AMA)
→ Data Collection Rule (rtr-dcr-windowsevents)
→ Log Analytics Workspace (RTR-LAW)
→ Microsoft Sentinel
→ Microsoft Defender XDR
```
## 日志摄取验证
在创建检测规则之前,通过使用 KQL 直接在 Log Analytics 中查询 SecurityEvent 表来验证日志摄取。
### 验证查询
```
SecurityEvent
| take 10
```
### 结果
从 RTR-WinVM 返回了 10 个事件,其时间戳与当前会话匹配。事件包含账户 WORKGROUP\RTR-WinVM$ 和 NT AUTHORITY\SYSTEM——确认了从 VM 经由 AMA、DCR 到 Log Analytics Workspace 的端到端连接性。
## 检测规则工程
### 规则配置
在 Microsoft Sentinel 中(通过 Microsoft Defender XDR 门户)创建了一个定时查询分析规则,以使用 Event ID 4625 检测暴力破解登录尝试。
| 规则属性 | 值 |
|---|---|
| **规则名称** | Failed Login Detection — Event ID 4625 |
| **规则类型** | 定时查询规则 |
| **描述** | 检测 RTR-WinVM 上失败的 Windows 登录尝试 (Event ID 4625) |
| **严重性** | 中 |
| **状态** | 已启用 |
| **MITRE 战术** | Credential Access (TA0006) |
| **MITRE 技术** | T1110 — Brute Force |
| **查询频率** | 每 5 分钟 |
| **回溯期** | 过去 1 小时 |
| **警报阈值** | 大于 0 |
| **事件分组** | 将所有事件分组到单个警报中 |
### KQL 检测查询
```
SecurityEvent
| where EventID == 4625
| where TimeGenerated > ago(1h)
| summarize FailedAttempts = count() by Account, Computer, IpAddress
| where FailedAttempts >= 5
```
**查询逻辑:**
- 过滤 SecurityEvent 表以查找 Event ID 4625 (登录失败)
- 将范围限制为过去 1 小时内
- 按账户、计算机和源 IP 对失败尝试进行分组
- 当任何组合超过 5 次失败尝试时发出警报——这与暴力破解行为一致
## 攻击模拟
通过 RDP 对 RTR-WinVM 执行了暴力破解登录模拟,以生成真实的 Event ID 4625 遥测数据。
### 模拟参数
| 参数 | 值 |
|---|---|
| **目标机器** | RTR-WinVM |
| **目标 IP** | 20.127.82.236 |
| **协议** | RDP (端口 3389) |
| **工具** | mstsc (远程桌面连接) |
| **模拟用户名** | fakeuser |
| **模拟密码** | [故意输入错误] |
| **手动尝试** | 10 次 RDP 连接尝试 |
| **检测到的总事件数** | 30 个 Event ID 4625 条目 (在 1 小时回溯期内) |
### 模拟步骤
1. 在本地机器上打开远程桌面连接 (mstsc)
2. 连接到 20.127.82.236 (RTR-WinVM 公网 IP)
3. 在 Windows 安全提示处输入用户名 `fakeuser` 和错误密码
4. 每次失败尝试都会在 Windows Security Event Log 中生成一个或多个 Event ID 4625 条目
5. 事件通过 AMA 和 rtr-dcr-windowsevents DCR 转发到 RTR-LAW
6. 重复 10 次以产生足够的数量供规则检测
## 事件调查
### 事件队列
模拟结束后,Microsoft Sentinel 的分析规则被触发,并在 Microsoft Defender XDR 事件队列中生成了事件。
| 属性 | 值 |
|---|---|
| **生成的事件总数** | 7 |
| **事件 ID (最新)** | 7 |
| **警报名称** | Failed Login Detection — Event ID 4625 |
| **严重性** | 中 |
| **状态** | 活跃 |
| **活跃警报** | 1/1 |
| **首次活动** | 2026 年 5 月 9 日 — UTC 下午 3:06:14 |
| **最后活动** | 2026 年 5 月 9 日 — UTC 下午 4:06:14 |
| **事件创建时间** | 2026 年 5 月 9 日 — UTC 下午 4:11:18 |
### 警报查询结果 — 已识别的 IOCs
| 字段 | 值 | 备注 |
|---|---|---|
| **账户** | .\fakeuser | 不存在的本地账户——枚举尝试 |
| **计算机** | RTR-WinVM | 目标机器 |
| **源 IP** | 64.183.42.233 | 外部 IP — 攻击来源 |
| **失败尝试次数** | 30 | 远超阈值——确认属于暴力破解模式 |
| **Event ID** | 4625 | Windows 安全:账户登录失败 |
### 事件时间线
| 时间 (UTC) | 事件 |
|---|---|
| 2026 年 5 月 9 日 下午 3:06 | 在 RTR-WinVM 上记录到首次失败的登录尝试 |
| 2026 年 5 月 9 日 下午 3:16 | Sentinel 分析规则触发 — 生成事件 ID 7 警报 |
| 2026 年 5 月 9 日 下午 4:06 | 记录到最后一次失败的登录尝试 |
| 2026 年 5 月 9 日 下午 4:11 | 在 Microsoft Defender XDR 中创建事件 ID 5 |
| 2026 年 5 月 9 日 下午 4:21 | 创建事件 ID 7 — 队列中共有 7 个事件 |
| 2026 年 5 月 9 日 下午 4:34 | 审查警报详情 — 确认 30 次失败尝试 |
### 分析
来自单个外部 IP (64.183.42.233) 针对 RTR-WinVM 上不存在的本地账户 (fakeuser) 进行的 30 次失败登录尝试,符合自动化的凭证暴力破解模式:
- 在压缩的时间范围内出现高尝试量,表明使用了自动化
- 单个源 IP 针对一台机器——属于针对性暴力破解,而非分布式攻击
- 账户名 'fakeuser' 在系统上不存在——攻击者正尝试账户枚举
- 失败之后没有成功登录 (Event ID 4624)——未实现访问
- RDP 暴露在公网 IP 上——这就是攻击面
## MITRE ATT&CK 映射
| 字段 | 值 |
|---|---|
| **战术** | Credential Access (TA000) |
| **技术** | Brute Force (T1110) |
| **子技术** | Password Guessing (T1110.001) |
| **目标** | 获取对 RTR-WinVM 的未授权 RDP 访问权限 |
### 遏制建议
- 在 Azure Network Security Group (NSG) 层面阻止源 IP 64.183.42.233
- 禁用端口 3389 上的公共 RDP 暴露——仅限通过 Azure Bastion 或 VPN 访问
- 通过 Group Policy 启用账户锁定策略(5 次失败尝试后触发)
- 为所有具有 RDP 访问权限的账户启用 MFA
- 扫描其他机器是否存在来自同一源 IP 的登录尝试
- 审查 Azure Activity Log 以检查来自该源 IP 的未授权资源修改
- 如果识别出横向移动或额外的 IOCs,则升级至 Tier 2 处理
## 证据
所有截图均存储在此仓库中。
| 文件 | 描述 |
|---|---|
| screenshot_alert_details_fakeuser.png | 警报详情,显示 fakeuser、RTR-WinVM、IP 64.183.42.233、30 次失败尝试 |
| screenshot_id_5_alert_details_fakeuser.png | 事件 ID 5 概览 — Attack story 选项卡 |
| screenshot_id_7_alerts_tab.png | 事件 ID 7 — Alerts 选项卡,显示 Failed Login Detection 警报 |
| screenshot_id_7_failed_login_detection.png | 事件 ID 7 — Attack story 选项卡及活动时间线 |




## 结论
- Microsoft Sentinel 成功通过 AMA 和 rtr-dcr-windowsevents DCR 从 RTR-WinVM 摄取了 Windows Security Events
- 使用 EventID 4625 结合 summarize 和阈值过滤的 KQL 查询有效地呈现了暴力破解活动,同时减少了干扰
- 带有 1 小时回溯期的 5 分钟定时规则提供了近实时的检测——在模拟结束后的几分钟内,事件就出现在了 Defender XDR 中
- Microsoft Defender XDR 将 Sentinel 事件与更广泛的 XDR 遥测数据整合在一起——这种集成反映了企业 SOC 架构
- 生成了 7 个事件——全部为中等严重性——确认检测规则在多个规则周期中正确触发
- 成功识别了 IOCs:账户名、目标机器、源 IP 和失败尝试次数
- 公共 RDP 暴露是一个关键的攻击面——本实验准确演示了为什么在生产环境中必须对其进行限制
## 后续步骤
- 实验 28:漏洞扫描 — Nessus Essentials 或 OpenVAS
- 将 Microsoft Sentinel 添加到简历技能表中
- 开始 Python 脚本编写实验以进行基础安全自动化
- 备考 CompTIA Security+
标签:Azure Log Analytics, Azure Monitor Agent, Azure安全, EDR/XDR, KQL查询, KQL检测规则开发, Microsoft Sentinel, MITRE ATT&CK映射, RDP攻击, RDP暴力破解, SecOps, SIEM实验室, SIEM部署, SOC实验室, Windows Server安全, 云原生SIEM, 云安全架构, 凭据访问防御, 后端开发, 安全事件调查, 安全检测工程, 安全运营中心, 数据收集规则, 暴力破解模拟, 检测规则, 网络安全实验, 网络映射, 网络资产发现, 自动化告警, 蓝队演练