AbhigyanPratap007/Azure-Sentinel-Home-Lab
GitHub: AbhigyanPratap007/Azure-Sentinel-Home-Lab
一个使用 Azure Arc 与 Microsoft Sentinel 构建的混合云 SIEM 实验,聚焦 Windows 安全日志的采集、检测规则开发与事件验证。
Stars: 0 | Forks: 0
# Microsoft Sentinel SOC 实验
# Windows 安全监控、检测工程与事件验证
# 1. 项目概述
本项目演示了使用 Microsoft Sentinel 部署端到端云端安全信息和事件管理(SIEM)解决方案,重点关注真实的 SOC(安全运营中心)工作流程。
本地 Windows 端点通过 Azure Arc 接入 Azure,并集成到 Microsoft Sentinel(通过 Azure Monitor Agent(AMA))。该实验环境实现了 Windows 安全事件的实时摄取、分析和检测,并通过模拟攻击场景进行验证。
本项目旨在复现实际的 SOC 分析师职责,包括日志收集、事件分析、检测规则创建和事件验证。
# 2. 目标
- 部署并配置 Microsoft Sentinel SIEM
- 使用 Azure Arc 接入本地 Windows 端点
- 启用 Windows 安全事件日志摄取
- 使用 Kusto 查询语言(KQL)进行日志分析
- 基于真实攻击场景设计和实现检测规则
- 模拟攻击并验证检测能力
- 在 Sentinel 中调查告警和事件
# 3. 架构
# 使用组件
- SIEM 平台:Microsoft Sentinel
- 日志存储:Log Analytics 工作区
- 端点集成:Azure Arc(混合机器)
- 代理:Azure Monitor Agent(AMA)
- 数据源:Windows 安全事件日志
数据流向:
本地 Windows 机器 → Azure Arc → Azure Monitor Agent → 数据收集规则 → Log Analytics 工作区 → Microsoft Sentinel → 分析规则 → 事件
# 4. 环境搭建
# 4.1 Microsoft Sentinel 部署
- 创建 Log Analytics 工作区
- 在工作区上启用 Microsoft Sentinel
- 配置数据连接器
# 4.2 Azure Arc 接入
- 在本地 Windows 系统上安装 Azure 连接计算机代理
- 将系统注册为 Azure 中的混合资源
- 在 Azure Arc 中验证成功连接
# 4.3 数据收集配置
- 创建数据收集规则(DCR)
- 选择 Windows 安全事件(全部事件)
- 将 Azure Arc 机器关联到 DCR
- 在 Log Analytics 中验证日志摄取
# 5. 数据摄取与日志源
使用 Azure Monitor Agent 实时收集 Windows 安全日志。
# 监控的关键事件 ID
| 事件 ID | 描述 | 用途 |
|--------|------|------|
| 4624 | 成功登录 | 用户身份认证跟踪 |
| 4625 | 登录失败 | 暴力破解检测 |
| 4672 | 分配特殊权限 | 特权访问监控 |
| 4688 | 进程创建 | 可疑进程执行检测 |
| 4732 | 用户添加到组 | 特权提升检测 |
# 6. 使用 KQL 进行日志分析
使用 Kusto 查询语言(KQL)查询和分析日志。
# 6.1 身份认证分析
```kql
SecurityEvent
| where EventID == 4624 or EventID == 4625
```
# 6.2 特权与进程监控
```kql
SecurityEvent
| where EventID in (4672, 4688)
```
# 6.3 失败登录聚合
```kql
SecurityEvent
| where EventID == 4625
| summarize FailedAttempts=count() by Account, bin(TimeGenerated, 5m)
```
# 7. 检测工程
创建了两条高影响检测规则,以模拟真实的 SOC 使用场景。
# 7.1 暴力破解登录检测
检测短时间窗口内多次失败的登录尝试。
# 规则逻辑
```kql
SecurityEvent
| where EventID == 4625
| summarize FailedAttempts = count() by Account, Computer, bin(TimeGenerated, 5m)
| where FailedAttempts > 5
```
# 配置
- 严重性:高
- 频率:每 5 分钟
- 查询周期:5 分钟
- 触发条件:失败登录超过 5 次
# 目的
识别针对用户账户的密码猜测或暴力破解攻击。
# 7.2 特权提升检测
检测用户是否被添加到本地管理员组。
# 规则逻辑
```kql
SecurityEvent
| where EventID == 4732
| where TargetUserName contains "Administrators"
```
# 配置
- 严重性:高
- 触发条件:任意匹配
# 目的
识别攻击者使用的未授权特权提升或持久化机制。
# 8. 攻击模拟与验证
# 8.1 暴力破解攻击模拟
- 锁定系统(使用 Windows + L)
- 短时间内多次输入错误密码
- 生成事件 ID 4625
# 结果
- 检测规则成功触发
- 在 Microsoft Sentinel 中生成告警
- 事件创建并在 SOC 仪表板中可见
# 8.2 特权提升模拟
```cmd
net user sentineltest Password123! /add
net localgroup administrators sentineltest /add
```
# 结果
- 生成事件 ID 4732
- 检测规则触发
- 成功创建告警和事件
# 9. 事件调查
在 Microsoft Sentinel 中分析检测规则生成的告警。
# 观察
- 告警与生成的事件关联
- 基于时间的聚合确认规则准确性
- 事件筛选器因优先级评分最初隐藏了告警
- 调整筛选器后显示了正确的检测结果
# 10. 挑战与故障排查
- 由于 Azure 同步导致日志摄取初始延迟
- 数据收集规则需要正确的资源关联
- 检测规则调优需要理解基于时间的聚合
- Sentinel 事件筛选器最初隐藏了有效告警
# 11. 关键收获
- 在云环境中实现端到端 SIEM 管道
- 使用 Azure Arc 和混合端点监控的实际经验
- 理解 Windows 安全事件日志的记录与分析
- 与真实 SOC 场景对齐的动手检测工程
- 日志时间、聚合与告警可见性的重要性
# 12. 结论
本项目通过使用 Microsoft Sentinel 实施一个功能完整的 SIEM 管道,成功演示了真实的 SOC 分析师能力。从接入端点和摄取日志,到设计检测规则并通过模拟攻击验证事件,该项目反映了现代 SOC 环境中使用的实际安全监控和威胁检测工作流程。
能够检测暴力破解登录尝试和特权提升活动,证明了所实现检测的有效性,并展示了在安全事件分析、检测工程和事件响应方面的坚实基础。
标签:AMSI绕过, Azure Arc, Azure Monitor Agent, Incident Response, KQL, Kusto 查询语言, Microsoft Sentinel, PoC, T1003, T1059, T1078, T1083, Windows Security 日志, 事件验证, 协议分析, 威胁检测, 安全信息与事件管理, 安全运营, 扫描框架, 搜索引擎爬取, 日志采集, 暴力破解, 权限提升, 检测规则, 混合云, 特权 escalation, 端点安全, 网络安全审计, 网络资产发现, 补丁管理