Farias1982/azure-soc-lab
GitHub: Farias1982/azure-soc-lab
一个在 Azure 中使用 Microsoft Sentinel 和 KQL 查询检测 Windows 暴力破解登录的云安全运营中心实验项目。
Stars: 0 | Forks: 0
# Azure SOC 实验环境 – 暴力破解检测
## 📌 概述
本项目演示了如何使用 Microsoft Sentinel 在 Azure 中构建基于云的安全运营中心 (SOC) 实验环境。该实验室专注于使用 Windows 安全事件日志和 KQL 查询来检测暴力破解登录尝试。
## 🛠️ 使用的技术
- Microsoft Azure
- Microsoft Sentinel (SIEM)
- Log Analytics Workspace
- Windows 虚拟机
- Kusto Query Language (KQL)
## 🚀 实验环境搭建与部署
按照以下步骤在您自己的 Azure 环境中复现此实验。
### 前置条件
- 一个有效的 Azure 订阅(免费版即可)
- Azure CLI 或对 Azure 门户的访问权限
- 对 Azure 资源组和虚拟机有基本的了解
### 第 1 步 – 创建资源组
在 Azure 门户中,创建一个新的资源组以包含所有实验资源。
```
Name: soc-lab-rg
Region: East US (or your nearest region)
```
### 第 2 步 – 部署 Windows 虚拟机
在 `soc-lab-rg` 中创建一台 Windows Server 虚拟机。这台机器将用于生成安全事件。
```
OS: Windows Server 2022
Size: Standard_B2s (cost-effective for a lab)
Username: labadmin
RDP: Enable port 3389 (for simulating brute force attempts)
```
### 第 3 步 – 创建 Log Analytics Workspace
Microsoft Sentinel 需要一个 Log Analytics Workspace 来存储和查询日志数据。
```
Name: soc-lab-workspace
Region: Same as your resource group
```
### 第 4 步 – 启用 Microsoft Sentinel
1. 在 Azure 门户中搜索 **Microsoft Sentinel**
2. 点击 **创建** 并将其附加到 `soc-lab-workspace`
3. Sentinel 现已激活,可以开始接收数据
### 第 5 步 – 连接 Windows VM 数据连接器
1. 在 Sentinel 中,转到 **Content Hub** 并安装 **Windows Security Events**
2. 转到 **Data Connectors** → **Windows Security Events via AMA**
3. 创建一个 **Data Collection Rule (DCR)** 并将您的 Windows VM 设为目标
4. 选择 **All Security Events** 以捕获事件 ID 4625、4624 和 4740
### 第 6 步 – 模拟暴力破解活动
要生成日志数据,您可以:
- 等待互联网上的自动化扫描器攻击开放的 RDP 端口(通常在 15–30 分钟内),或者
- 通过 RDP 反复输入错误的凭据,手动触发登录失败
### 第 7 步 – 运行 KQL 检测查询
一旦日志出现在 Sentinel 中(等待 5-15 分钟完成接收),打开 **Logs** 并运行来自 [`queries/`](queries/) 文件夹中的查询:
| 查询 | 用途 |
|---|---|
| [`01_brute_force_detection.kql`](queries/01_brute_force_detection.kql) | 确认失败的登录量 |
| [`02_brute_force_with_source_ip.kql`](queries/02_brute_force_with_source_ip.kql) | 识别攻击者 IP |
| [`03_successful_login_after_failures.kql`](queries/03_successful_login_after_failures.kql) | 检测成功的系统入侵 |
| [`04_account_lockout_detection.kql`](queries/04_account_lockout_detection.kql) | 显示被锁定的账户 |
### 第 8 步 – 创建分析规则(告警)
1. 在 Sentinel 中,转到 **Analytics** → **Create** → **Scheduled query rule**
2. 粘贴来自 `01_brute_force_detection.kql` 的查询
3. 将规则设置为每 **5 分钟** 运行一次,回溯过去 **5 分钟**
4. 设置告警阈值为结果 **大于 0** 时触发
5. 分配严重性:**Medium** 或 **High**
这将在检测到暴力破解活动时,在 Sentinel 中自动创建事件。
## 🔍 检测用例
| # | 查询文件 | 事件 ID | 描述 |
|---|---|---|---|
| 1 | [`01_brute_force_detection.kql`](queries/01_brute_force_detection.kql) | 4625 | 检测 5 分钟时间窗口内重复的登录失败 |
| 2 | [`02_brute_force_with_source_ip.kql`](queries/02_brute_force_with_source_ip.kql) | 4625 | 丰富失败的登录信息,包含来源 IP 和目标账户 |
| 3 | [`03_successful_login_after_failures.kql`](queries/03_successful_login_after_failures.kql) | 4625 + 4624 | 识别在重复失败后成功的登录 — 高置信度的暴力破解指标 |
| 4 | [`04_account_lockout_detection.kql`](queries/04_account_lockout_detection.kql) | 4740 | 显示被锁定的账户以及触发锁定的机器 |
## 🧪 核心 KQL 查询
```
// Brute Force Detection – 5+ failures in a 5-minute window
Event
| where EventLog == "Security"
| where EventID == 4625
| summarize FailedAttempts = count() by bin(TimeGenerated, 5m)
| where FailedAttempts > 5
| order by FailedAttempts desc
```
## 📸 实验环境截图
### 日志数据




## 🎯 成果与经验总结
### 构建内容
- 一个功能齐全的 Azure 云 SOC 实验环境,具备真实的日志接收、基于 KQL 的威胁检测,以及通过 Microsoft Sentinel 实现的自动化告警
- 一个涵盖完整暴力破解攻击链的检测流水线:失败尝试 → 账户锁定 → 潜在的成功入侵
- 四个具有内联文档的生产级 KQL 查询,每个查询都针对攻击的不同阶段
### 关键要点
- **日志接收延迟是客观存在的。** 虚拟机上发生的事件与其出现在 Log Analytics Workspace 中之间通常存在 5-15 分钟的延迟。调整告警回溯时间窗口以考虑到这一点,对于避免漏报至关重要。
- **RDP 经常成为攻击目标。** 在向互联网开放 3389 端口后几分钟内,自动化扫描器就会开始尝试登录。这使得生成真实的测试数据变得非常直接,同时也凸显了默认配置的暴露风险。
- **KQL 功能强大,但需要精确性。** 从原始 XML EventData 中提取源 IP 等字段需要谨慎使用 `parse_xml()`。字段索引中的微小错误会默默返回 null 值,这使得查询验证变得至关重要。
- **告警阈值调整非常重要。** 将失败阈值设置得太低会导致告警疲劳;设置得太高则会让真实攻击漏网。从每 5 分钟失败 5 次开始,并根据基线噪音进行调整是一种实用的方法。
### 下一步计划
- 使用 Microsoft Sentinel 的 **TI Map** 集成威胁情报,以自动标记已知的恶意 IP
- 建立一个包含已知安全管理员 IP 的 **watchlist**,以减少误报
- 使用 **Playbooks (Logic Apps)** 自动响应事件 —— 例如,在确认发生暴力破解时通过 NSG 规则阻止 IP
- 扩展到 Linux 虚拟机,以涵盖基于 SSH 的暴力破解(事件日志:`/var/log/auth.log`)
标签:Azure, KQL, Microsoft Sentinel, 免杀技术, 安全运营中心, 暴力破解检测, 红队行动, 网络映射