Lia-Bing0/azure-defender-sentinel-detection-lab
GitHub: Lia-Bing0/azure-defender-sentinel-detection-lab
基于Terraform构建的Azure Zero Trust实验环境,演示从Windows端点遥测采集到Sentinel暴力破解检测的完整安全监控管道。
Stars: 0 | Forks: 0
# Azure Zero Trust 检测工程实验环境
Terraform • Microsoft Defender • Microsoft Sentinel • Conditional Access • KQL
这是一个 Azure 安全工程实验环境,演示了 Zero Trust 身份强制执行、基础设施隔离、端点遥测采集、检测工程以及事件生成。基础设施使用 Terraform 进行配置,并与 Microsoft Sentinel 集成,以实现集中化监控和响应。
该实验环境验证了端到端的检测管道:从 Windows 登录失败活动(Event ID 4625)到生成符合 MITRE ATT&CK T1110(Brute Force)标准的高严重性 Sentinel 事件。
## 架构

## 构建内容
- Terraform 资源:
- Resource Group (rg-zt-sentinel-lab-2jke2)
- Virtual Network 和 subnet
- Network Security Group
- Public IP
- Windows Virtual Machine (sentinel-lab-vm01)
- Log Analytics Workspace (law-zt-sentinel-lab-2jke2)
- 安全监控栈:
- 在 Log Analytics Workspace 上启用 Microsoft Sentinel
- Windows VM 上的 Azure Monitor Agent (AMA)
- 用于采集 Windows Security Events 的 Data Collection Rule (DCR)
## Zero Trust 控制
- Conditional Access 策略对目标用户/组和选定的云应用强制执行 MFA。
- 针对紧急账号/管理员连续性和受控测试应用了安全排除项。
- 策略目标:在访问前验证身份保证,符合 Zero Trust 原则。
## 安全架构原则
- 身份优先的访问验证(在访问控制平面之前强制执行 MFA)
- 最小权限网络暴露(NSG + 受控 RDP 访问)
- 通过端点遥测进行持续验证
- Sentinel 中的集中检测和事件关联
- MITRE 对齐的检测策略
## 遥测与采集
- Windows Security Event 日志通过 AMA 采集,使用与 `sentinel-lab-vm01` 关联的 DCR。
- 采集验证查询:
```
SecurityEvent
| take 10
```
- 验证确认 SecurityEvent 记录已成功采集并可在工作区内查询。
## 检测工程
- 检测目标:通过对失败登录事件(Event ID 4625)的时间聚合来识别潜在的 RDP 暴力破解行为。
- 计划分析规则使用 Event ID 4625,演示阈值为 5 分钟内 >= 3 次失败,以便在实验室测试中可靠地触发警报。在生产环境中,此阈值通常会提高,并结合额外的上下文(源 IP 频率、地理异常或账户锁定遥测)以减少警报疲劳。
- 规则配置:
- 类型:计划分析规则
- 频率:每 5 分钟
- 回溯:过去 5 分钟
- 严重性:高
- MITRE ATT&CK:`T1110 Brute Force` (Credential Access)
### 计划分析规则查询
```
SecurityEvent
| where EventID == 4625
| summarize FailedLogons = count() by Account = tostring(TargetUserName), Host = tostring(Computer)
| where FailedLogons >= 3
```
## 证据
以下产物展示了成功的基础设施部署、遥测采集、检测规则执行和 Sentinel 事件生成。
- [资源组部署](docs/images/01-resource-group-deployment.png)
- [Sentinel 连接到工作区](docs/images/02-sentinel-connected.png)
- [DCR 创建并关联](docs/images/03-dcr-configured.png)
- [Log Analytics SecurityEvent 采集验证](docs/images/05-securityevent-ingestion.png)
- [Event ID 4625 登录失败证据](docs/images/06-eventid-4625-evidence.png)
- [Sentinel 中创建的事件](docs/images/07-incident-created.png)
## 仓库结构
```
.
├─ README.md
├─ docs/
│ ├─ architecture.md
│ ├─ detection.md
│ ├─ zero-trust.md
│ ├─ operations.md
│ │
│ └─ images/
│ ├── 01-resource-group-deployment.png
│ ├── 02-sentinel-connected.png
│ ├── 03-dcr-configured.png
│ ├── 04-dcr-associated-vm.png
│ ├── 05-securityevent-ingestion.png
│ ├── 06-eventid-4625-evidence.png
│ ├── 07-incident-created.png
└─ terraform/
├─ main.tf
├─ providers.tf
├─ variables.tf
└─ outputs.tf
```
## 成本、拆除与安全
- 此实验环境会产生 Azure 消耗成本(VM 计算、存储、日志采集和 Sentinel 分析)。
- 完成后销毁所有已配置的基础设施:
```
terraform destroy
```
- 安全提示:
- 不要提交包含敏感值的机密、凭证或环境文件。
- 不要发布包含密码、Token 值、订阅 ID、租户 ID 或公共 IP 地址的屏幕截图。
## 经验总结
- 遥测完整性和配置准确性直接决定检测可靠性和警报保真度。
- 简单的阈值规则对于演示检测管道有效,但需要调整以减少误报。
- Conditional Access 设计需要在安全性与可用性之间取得平衡,包括明确的紧急账号例外。
## 下一阶段 - 端点检测、关联与自动化
此实验环境的计划扩展包括:
- 将 Windows VM 载入 Microsoft Defender for Endpoint (EDR)
- 将 Defender for Endpoint 警报集成到 Microsoft Sentinel
- 关联身份验证遥测(Event ID 4625)与端点行为检测
- 将 Microsoft Defender for Cloud 警报采集到 Sentinel 以获得更广泛的信号可见性
- 实施 Sentinel playbook 以实现自动丰富和通知
- 添加 GeoIP 丰富以识别可疑登录源位置
Mermaid 源码(点击展开)
``` flowchart LR %% Identity Plane User[User or Admin Access] --> CA[Conditional Access Policy with MFA] CA --> AzureAD[Azure Identity Plane] %% Subscription Boundary AzureAD --> Sub[Azure Subscription Boundary] %% Infrastructure Boundary subgraph Infra[Zero Trust Infrastructure Boundary] RG[Resource Group] subgraph Network[Network Controls] VNet[VNet and Subnet] NSG[Network Security Group] PIP[Public IP] end subgraph Monitoring[Telemetry and Monitoring] LAW[Log Analytics Workspace] DCR[Data Collection Rule] end VM[Windows Virtual Machine] end Sub --> RG RG --> VNet --> VM RG --> NSG --> VM RG --> PIP --> VM RG --> LAW RG --> DCR --> VM %% Detection Pipeline VM --> AMA[Azure Monitor Agent] AMA --> SecurityEvent[SecurityEvent Table] SecurityEvent --> SentinelRule[Sentinel Scheduled Analytics Rule] SentinelRule --> Incident[High Severity Sentinel Incident] ```标签:Azure, Azure Monitor, Cloudflare, Defender for Cloud, ECS, FOFA, JSONLines, KQL, Microsoft Sentinel, MITRE ATT&CK, PE 加载器, Terraform, Windows 虚拟机, 免杀技术, 安全实验室, 暴力破解检测, 条件访问策略, 端点遥测, 红队行动, 网络安全, 自动化防御, 身份与访问管理, 隐私保护, 零信任