51dayo/CloudGuard-SentinelWatch
GitHub: 51dayo/CloudGuard-SentinelWatch
一个云原生威胁检测实验室,在 Azure 上集成 Sentinel 与 Arc,通过 Atomic Red Team 模拟攻击并以 KQL 构建检测规则,解决从端点 onboarding 到事件可视化的安全运营闭环问题。
Stars: 0 | Forks: 0
# CloudGuard-SentinelWatch
## 云原生威胁检测与监控(Microsoft Sentinel + Defender XDR)





## 概述
本项目展示了一个完整的云原生安全运营中心(SOC)管道,涵盖从端点入职到实时威胁检测、自动化事件创建以及基于工作簿的分析。构建在 Microsoft Azure 上,集成了 **Microsoft Sentinel** 作为 SIEM,并接入 **Windows Security Events**,通过 **Atomic Red Team** 模拟对手行为,使用自定义 **KQL 检测规则** 自动在 Sentinel 中呈现事件。
该实验扩展了现有的本地 Active Directory 环境——两台端点均为域加入的 Windows 机器,此前曾用于 AD 攻击模拟——构成一个真实的混合企业架构。
## 架构
## 环境
| 组件 | 详情 |
|---|---|
| Hypervisor | VMware Workstation |
| Endpoint 1 | Windows Server 2022 — 域控制器(域加入) |
| Endpoint 2 | Windows 10 Pro — 域加入 |
| Cloud | Microsoft Azure |
| SIEM | Microsoft Sentinel |
| Onboarding | Azure Arc(混合机器管理) |
| Agent | Azure Monitor Agent(AMA) |
| Telemetry | Sysmon + Windows Security Events |
| Simulation | Atomic Red Team |
| Query Language | KQL(Kusto 查询语言) |
## 项目阶段
### 阶段 1 — 通过 Azure Arc 进行端点 onboarding
两台 Windows 机器(服务器和客户端)通过 **Azure Arc** 上线 Azure,使 Microsoft 能够在它们作为 VMware 中本地域加入机器的同时对其进行管理和监控。
**为何使用 Azure Arc?**
标准的 Azure Monitor Agent 部署假设为云原生虚拟机。对于域加入的本地机器,Azure Arc 提供了必要的桥梁——在 Azure 资源管理器中注册每台机器,以便可以集中部署和管理 AMA。
**完成的步骤:**
- 从 Azure 门户下载 Azure Arc 上线脚本
- 在每台 VM 上以管理员身份运行 PowerShell 上线脚本
- 确认两台机器均在 **Azure Arc > Servers** 中显示
- 验证代理健康状态显示 **Connected**
**1.1 — Azure Arc 上线脚本在 Windows Server 上运行:** 
**1.2 — Azure 门户中两台机器均显示 Connected 状态:**  ### 阶段 2 — Sentinel 工作区与数据连接器设置 创建 **Log Analytics Workspace** 作为 Sentinel 的数据后端,随后在其上启用 Sentinel。 **部署的数据连接器:** 通过 AMA 的 Windows Security Events
**2.1 — 在 Azure 门户中创建 Log Analytics Workspace:** 
**2.2 — 在工作区上启用 Microsoft Sentinel:** 
**2.3 — 从 Content Hub 安装 Windows Security Events 解决方案:** 
**2.4 — 配置并针对两台 VM 的数据收集规则(DCR):** 在连接器页面内创建 DCR,设置如下: - 规则名称:`sentinel-lab-dcr` - 资源:Windows 服务器 + Windows 客户端(均为 Arc 注册) - 事件层级:**Common**(涵盖登录事件、进程创建、账户变更、权限使用) 
**2.5 — 数据连接器显示 Active 状态:** 
**2.6 — 使用 Sentinel Logs 中的 KQL 查询验证日志摄取:** ``` SecurityEvent | take 10 ```  两台机器均已确认发送事件。Sysmon 遥测也通过 Windows 事件日志通道流动,并捕获在 `Event` 表中。 ### 阶段 3 — 使用 Atomic Red Team 进行攻击模拟 在 **Windows Client** 上执行两项 MITRE ATT&CK 技术,以生成真实的对抗遥测。 | 技术 | ID | 战术 | 描述 | |---|---|---|---| | PowerShell 执行 | T1059.001 | 执行 | 模拟攻击者用于执行载荷的编码/混淆 PowerShell 命令 | | 本地账户创建 | T1136.001 | 持久化 | 创建本地用户账户——一种常见的维持访问权限的后门 |
**3.1 — 在 Windows Client 上执行 T1059.001(PowerShell 作为管理员):** ``` Invoke-AtomicTest T1059.001 ``` 
**3.2 — 在 Windows Client 上执行 T1136.001(PowerShell 作为管理员):** ``` Invoke-AtomicTest T1136.001 ``` 
**3.3 — 执行后数分钟内 Sentinel Logs 中可见的攻击事件:** ``` SecurityEvent | where EventID == 4688 0r EventID == 4720 ```  ### 阶段 4 — KQL 检测规则 为每个模拟技术编写自定义 KQL 检测查询,并作为 **Scheduled Analytics Rules** 部署在 Sentinel 中。 #### Detection 1 — 可疑的 PowerShell 执行(T1059.001) 识别使用常见标志调用 PowerShell 的进程创建事件,这些标志常用于混淆或隐藏恶意命令。 ``` WindowsEvent | where EventID == 1 | where Provider == "Microsoft-Windows-Sysmon" | where tostring(EventData.Image) has_any ("powershell.exe", "pwsh.exe") | where tostring(EventData.CommandLine) has_any ( "-enc", "EncodedCommand", "FromBase64String", "IEX", "Invoke-Expression", "DownloadString", "Net.WebClient" ) | project TimeGenerated, Computer, User = tostring(EventData.User), Image = tostring(EventData.Image), CommandLine = tostring(EventData.CommandLine) ``` **4.1 — 针对模拟攻击数据返回结果的查询:**  #### Detection 2 — 新建本地账户(T1136.001) 标记新本地用户账户创建事件——在非正常管理流程外创建时作为持久化指标。排除以 `$` 结尾的机器账户(在 AD 环境中这些是预期的)。 ``` WindowsEvent | where EventID == 4720 | project TimeGenerated, Computer, TargetUser = tostring(EventData.TargetUserName), CreatedBy = tostring(EventData.SubjectUserName) ``` **4.2 — 针对模拟攻击数据返回结果的查询:**  **应用于两项检测的 Analytics Rule 配置:** | 设置 | 值 | |---|---| | 规则类型 | 计划查询规则 | | 执行频率 | 每 5 小时 | | 回溯周期 | 最近 5 小时 | | 警报阈值 | 结果数大于 0 | | 事件创建 | 已启用——每个警报创建一个事件 | | 关联 MITRE 战术 | 执行(T1059.001)/ 持久化(T1136.001) | | 严重性 | 中等 |
**4.3 — Sentinel 中配置的 Analytics Rule 逻辑:** 
**.4 — 规则关联的 MITRE ATT&CK 战术与技术:** 
**4.5 — Sentinel 中两项规则均处于 Active 和计划状态:**  ### Phase 5 — 事件与工作簿仪表板 #### 事件 随着 Analytics Rules 上线,当规则触发模拟攻击数据时,Sentinel 会自动创建事件。每个事件包含完整的警报时间线、受影响的实体以及用于调查的原始证据。 **5.1 — Sentinel 事件面板 — 自动创建的 T1059 和 T1136 事件:** 
**5.2 — 事件详细视图,展示实体、时间线和警报证据:**  #### 工作簿仪表板 在 **Sentinel > 工作簿 > 添加工作簿** 下创建了一个 Sentinel **工作簿**,用于可视化分析两个端点上的安全事件和事件趋势。 **包含的磁贴:** | 磁贴 | 可视化 | 查询基础 | |---|---|---| | 随时间变化的安全事件 | 折线图 | SecurityEvent \| 按小时分桶 | | 按账户统计的失败登录 | 柱状图 | 事件 ID 4625 按账户分组 | | 新建账户 | 表格 | 事件 ID 4720 | | 可疑 PowerShell 命令 | 表格 | 事件 ID 4688 + CommandLine 筛选 | | 按严重性分组的实例 | 饼图 | SecurityIncident 表 | | 按计算机分组的实例数 | 柱状图 | 按计算机分组的 SecurityEvent |
**5.3 — 完成的 Sentinel 工作簿仪表板:**  ## 存储库结构 ``` CloudGuard-SentinelWatch/ ├── README.md # This file ├── detections/ │ ├── T1059.001-powershell.kql # Suspicious PowerShell execution │ └── T1136.001-local-account.kql # New local account creation ├── docs/ │ ├── report.md # Full technical lab report │ └── architecture.md # Network and data flow diagram └── screenshots/ ├── architecture-diagram.png # Phase 0 — lab topology ├── arc-onboarding-script.png # Phase 1.1 ├── arc-servers-connected.png # Phase 1.2 ├── log-analytics-workspace.png # Phase 2.1 ├── sentinel-enabled.png # Phase 2.2 ├── content-hub-installed.png # Phase 2.3 ├── dcr-configuration.png # Phase 2.4 ├── data-connector-active.png # Phase 2.5 ├── log-ingestion-verified.png # Phase 2.6 ├── atomictest-t1059-execution.png # Phase 3.1 ├── atomictest-t1136-execution.png # Phase 3.2 ├── attack-events-in-sentinel.png # Phase 3.3 ├── kql-t1059-results.png # Phase 4.1 ├── kql-t1136-results.png # Phase 4.2 ├── analytics-rule-config.png # Phase 4.3 ├── analytics-rule-mitre-mapping.png # Phase 4.4 ├── analytics-rules-active.png # Phase 4.5 ├── sentinel-incidents.png # Phase 5.1 ├── incident-detail-view.png # Phase 5.2 └── workbook-dashboard.png # Phase 5.3 ``` ## 检测覆盖范围 | MITRE 技术 | ID | 战术 | 日志来源 | Sentinel 表 | 规则状态 | |---|---|---|---|---|---| | PowerShell 执行 | T1059.001 | 执行 | Windows Security Events | SecurityEvent | Active | | 本地账户创建 | T1136.001 | 持久化 | Windows Security Events | SecurityEvent | Active | ## 展示的关键技能 - **Azure Arc** — 将域加入的本地机器上线 Azure 以实现混合管理 - **Microsoft Sentinel** — 工作区创建、Content Hub、数据连接器部署 - **Azure Monitor Agent(AMA)** — 代理部署和数据收集规则配置 - **KQL(Kusto 查询语言)** — 针对真实对抗遥测编写检测查询 - **检测工程** — 将 MITRE ATT&CK 技术映射到基于日志的分析规则 - **Atomic Red Team** — 执行可控的对手模拟以验证检测 - **Sentinel 工作簿** — 构建安全事件可视化仪表板 - **事件管理** — 自动事件创建与分级流程 ## 改进方向 - **SOAR 集成** — 将 Sentinel 连接到 Logic Apps 或 Shuffle 以自动响应事件(例如:当 T1136 触发时禁用用户账户) - **威胁情报** — 集成 Microsoft Threat Intelligence 连接器,用已知恶意 IP/域名丰富告警 - **Sysmon 专用规则** — 利用 `Event` 表结合 Sysmon 事件 ID(1、3、8、22)实现更深层检测,这些是 Windows Security Events 无法覆盖的 - **成本监控** — 设置 Azure Monitor 预算告警以跟踪大规模摄取成本 - **多阶段事件关联** — 将 T1059 → T1136 关联为多步骤事件,模拟真实攻击链 - **成本监控** — 设置 Azure Monitor 预算告警以跟踪大规模摄取成本 *属于涵盖 EDR、SOAR、云 SIEM、威胁情报、欺骗技术及漏洞管理的网络安全作品集的一部分。
**1.1 — Azure Arc 上线脚本在 Windows Server 上运行:** 
**1.2 — Azure 门户中两台机器均显示 Connected 状态:**  ### 阶段 2 — Sentinel 工作区与数据连接器设置 创建 **Log Analytics Workspace** 作为 Sentinel 的数据后端,随后在其上启用 Sentinel。 **部署的数据连接器:** 通过 AMA 的 Windows Security Events
**2.1 — 在 Azure 门户中创建 Log Analytics Workspace:** 
**2.2 — 在工作区上启用 Microsoft Sentinel:** 
**2.3 — 从 Content Hub 安装 Windows Security Events 解决方案:** 
**2.4 — 配置并针对两台 VM 的数据收集规则(DCR):** 在连接器页面内创建 DCR,设置如下: - 规则名称:`sentinel-lab-dcr` - 资源:Windows 服务器 + Windows 客户端(均为 Arc 注册) - 事件层级:**Common**(涵盖登录事件、进程创建、账户变更、权限使用) 
**2.5 — 数据连接器显示 Active 状态:** 
**2.6 — 使用 Sentinel Logs 中的 KQL 查询验证日志摄取:** ``` SecurityEvent | take 10 ```  两台机器均已确认发送事件。Sysmon 遥测也通过 Windows 事件日志通道流动,并捕获在 `Event` 表中。 ### 阶段 3 — 使用 Atomic Red Team 进行攻击模拟 在 **Windows Client** 上执行两项 MITRE ATT&CK 技术,以生成真实的对抗遥测。 | 技术 | ID | 战术 | 描述 | |---|---|---|---| | PowerShell 执行 | T1059.001 | 执行 | 模拟攻击者用于执行载荷的编码/混淆 PowerShell 命令 | | 本地账户创建 | T1136.001 | 持久化 | 创建本地用户账户——一种常见的维持访问权限的后门 |
**3.1 — 在 Windows Client 上执行 T1059.001(PowerShell 作为管理员):** ``` Invoke-AtomicTest T1059.001 ``` 
**3.2 — 在 Windows Client 上执行 T1136.001(PowerShell 作为管理员):** ``` Invoke-AtomicTest T1136.001 ``` 
**3.3 — 执行后数分钟内 Sentinel Logs 中可见的攻击事件:** ``` SecurityEvent | where EventID == 4688 0r EventID == 4720 ```  ### 阶段 4 — KQL 检测规则 为每个模拟技术编写自定义 KQL 检测查询,并作为 **Scheduled Analytics Rules** 部署在 Sentinel 中。 #### Detection 1 — 可疑的 PowerShell 执行(T1059.001) 识别使用常见标志调用 PowerShell 的进程创建事件,这些标志常用于混淆或隐藏恶意命令。 ``` WindowsEvent | where EventID == 1 | where Provider == "Microsoft-Windows-Sysmon" | where tostring(EventData.Image) has_any ("powershell.exe", "pwsh.exe") | where tostring(EventData.CommandLine) has_any ( "-enc", "EncodedCommand", "FromBase64String", "IEX", "Invoke-Expression", "DownloadString", "Net.WebClient" ) | project TimeGenerated, Computer, User = tostring(EventData.User), Image = tostring(EventData.Image), CommandLine = tostring(EventData.CommandLine) ``` **4.1 — 针对模拟攻击数据返回结果的查询:**  #### Detection 2 — 新建本地账户(T1136.001) 标记新本地用户账户创建事件——在非正常管理流程外创建时作为持久化指标。排除以 `$` 结尾的机器账户(在 AD 环境中这些是预期的)。 ``` WindowsEvent | where EventID == 4720 | project TimeGenerated, Computer, TargetUser = tostring(EventData.TargetUserName), CreatedBy = tostring(EventData.SubjectUserName) ``` **4.2 — 针对模拟攻击数据返回结果的查询:**  **应用于两项检测的 Analytics Rule 配置:** | 设置 | 值 | |---|---| | 规则类型 | 计划查询规则 | | 执行频率 | 每 5 小时 | | 回溯周期 | 最近 5 小时 | | 警报阈值 | 结果数大于 0 | | 事件创建 | 已启用——每个警报创建一个事件 | | 关联 MITRE 战术 | 执行(T1059.001)/ 持久化(T1136.001) | | 严重性 | 中等 |
**4.3 — Sentinel 中配置的 Analytics Rule 逻辑:** 
**.4 — 规则关联的 MITRE ATT&CK 战术与技术:** 
**4.5 — Sentinel 中两项规则均处于 Active 和计划状态:**  ### Phase 5 — 事件与工作簿仪表板 #### 事件 随着 Analytics Rules 上线,当规则触发模拟攻击数据时,Sentinel 会自动创建事件。每个事件包含完整的警报时间线、受影响的实体以及用于调查的原始证据。 **5.1 — Sentinel 事件面板 — 自动创建的 T1059 和 T1136 事件:** 
**5.2 — 事件详细视图,展示实体、时间线和警报证据:**  #### 工作簿仪表板 在 **Sentinel > 工作簿 > 添加工作簿** 下创建了一个 Sentinel **工作簿**,用于可视化分析两个端点上的安全事件和事件趋势。 **包含的磁贴:** | 磁贴 | 可视化 | 查询基础 | |---|---|---| | 随时间变化的安全事件 | 折线图 | SecurityEvent \| 按小时分桶 | | 按账户统计的失败登录 | 柱状图 | 事件 ID 4625 按账户分组 | | 新建账户 | 表格 | 事件 ID 4720 | | 可疑 PowerShell 命令 | 表格 | 事件 ID 4688 + CommandLine 筛选 | | 按严重性分组的实例 | 饼图 | SecurityIncident 表 | | 按计算机分组的实例数 | 柱状图 | 按计算机分组的 SecurityEvent |
**5.3 — 完成的 Sentinel 工作簿仪表板:**  ## 存储库结构 ``` CloudGuard-SentinelWatch/ ├── README.md # This file ├── detections/ │ ├── T1059.001-powershell.kql # Suspicious PowerShell execution │ └── T1136.001-local-account.kql # New local account creation ├── docs/ │ ├── report.md # Full technical lab report │ └── architecture.md # Network and data flow diagram └── screenshots/ ├── architecture-diagram.png # Phase 0 — lab topology ├── arc-onboarding-script.png # Phase 1.1 ├── arc-servers-connected.png # Phase 1.2 ├── log-analytics-workspace.png # Phase 2.1 ├── sentinel-enabled.png # Phase 2.2 ├── content-hub-installed.png # Phase 2.3 ├── dcr-configuration.png # Phase 2.4 ├── data-connector-active.png # Phase 2.5 ├── log-ingestion-verified.png # Phase 2.6 ├── atomictest-t1059-execution.png # Phase 3.1 ├── atomictest-t1136-execution.png # Phase 3.2 ├── attack-events-in-sentinel.png # Phase 3.3 ├── kql-t1059-results.png # Phase 4.1 ├── kql-t1136-results.png # Phase 4.2 ├── analytics-rule-config.png # Phase 4.3 ├── analytics-rule-mitre-mapping.png # Phase 4.4 ├── analytics-rules-active.png # Phase 4.5 ├── sentinel-incidents.png # Phase 5.1 ├── incident-detail-view.png # Phase 5.2 └── workbook-dashboard.png # Phase 5.3 ``` ## 检测覆盖范围 | MITRE 技术 | ID | 战术 | 日志来源 | Sentinel 表 | 规则状态 | |---|---|---|---|---|---| | PowerShell 执行 | T1059.001 | 执行 | Windows Security Events | SecurityEvent | Active | | 本地账户创建 | T1136.001 | 持久化 | Windows Security Events | SecurityEvent | Active | ## 展示的关键技能 - **Azure Arc** — 将域加入的本地机器上线 Azure 以实现混合管理 - **Microsoft Sentinel** — 工作区创建、Content Hub、数据连接器部署 - **Azure Monitor Agent(AMA)** — 代理部署和数据收集规则配置 - **KQL(Kusto 查询语言)** — 针对真实对抗遥测编写检测查询 - **检测工程** — 将 MITRE ATT&CK 技术映射到基于日志的分析规则 - **Atomic Red Team** — 执行可控的对手模拟以验证检测 - **Sentinel 工作簿** — 构建安全事件可视化仪表板 - **事件管理** — 自动事件创建与分级流程 ## 改进方向 - **SOAR 集成** — 将 Sentinel 连接到 Logic Apps 或 Shuffle 以自动响应事件(例如:当 T1136 触发时禁用用户账户) - **威胁情报** — 集成 Microsoft Threat Intelligence 连接器,用已知恶意 IP/域名丰富告警 - **Sysmon 专用规则** — 利用 `Event` 表结合 Sysmon 事件 ID(1、3、8、22)实现更深层检测,这些是 Windows Security Events 无法覆盖的 - **成本监控** — 设置 Azure Monitor 预算告警以跟踪大规模摄取成本 - **多阶段事件关联** — 将 T1059 → T1136 关联为多步骤事件,模拟真实攻击链 - **成本监控** — 设置 Azure Monitor 预算告警以跟踪大规模摄取成本 *属于涵盖 EDR、SOAR、云 SIEM、威胁情报、欺骗技术及漏洞管理的网络安全作品集的一部分。
标签:AI合规, Atomic Red Team, Azure Arc, Azure Monitor Agent, Cloudflare, FTP漏洞扫描, KQL, Kusto 查询语言, Microsoft Sentinel, MITRE ATT&CK, SOC 管道, Sysmon, T1059, T1136, VMware Workstation, Windows 10, Windows Server, Windows 安全事件, 云原生威胁检测, 云安全运营中心, 企业级端点管理, 域加入, 域名控制器, 安全编排, 实时威胁检测, 工作簿分析, 攻击模拟, 数据泄露检测, 日志收集, 混合架构, 端点注册, 自动事件创建, 自动化响应, 驱动签名利用