llazyleon/Azure-Sentinel-Threat-Hunting-Lab
GitHub: llazyleon/Azure-Sentinel-Threat-Hunting-Lab
Stars: 1 | Forks: 0
# 🔍 Azure Sentinel 威胁狩猎实验室
## 📌 概述
本实验在 **Microsoft Sentinel** 内部模拟了一次真实世界的威胁狩猎调查,目标是 Azure Active Directory 中一种常见的云攻击技术:**未授权的服务主体证书和密钥操控**。
攻击者在初始入侵后使用此技术向现有的应用注册添加恶意凭据(证书或客户端密钥)——从而获得对云资源的持久且难以检测的访问权限,即使在密码重置后依然有效。
本实验演示了安全分析师如何在安全事件升级为全面入侵之前,使用自定义 KQL 查询主动搜寻此类行为。
## 🎯 目标
- 使用 **Microsoft Sentinel 高级搜寻** 搜寻可疑的 Azure AD 操作
- 针对 Azure 审计日志编写并执行自定义 **KQL 查询**
- 解析云遥测数据中复杂的嵌套 JSON 结构
- 关联 **IP 地址、用户身份和 User Agent** 以揭示异常
- 将发现映射到 **MITRE ATT&CK 框架**
## 🧰 工具与技术
| 工具 | 用途 |
|------|---------|
| Microsoft Sentinel | SIEM / 高级搜寻平台 |
| KQL (Kusto Query Language) | 日志查询与分析 |
| Azure Active Directory | 审计日志遥测源 |
| Log Analytics Workspace | 后端数据存储 (sentinel-prime) |
| Azure Portal | 实验环境 |
## 🗂️ 仓库结构
```
azure-sentinel-threat-hunting-lab/
├── README.md
├── queries/
│ └── service-principal-abuse.kql # Full KQL query used in the investigation
└── screenshots/
├── 01-kql-query.png # Query in Sentinel Advanced Hunting editor
├── 02-results-table.png # Results table with 5 returned items
├── 03-expanded-result.png # Expanded row showing parsed fields
└── 04-ip-correlation.png # Filtered view by suspicious IP
```
## 🔎 KQL 查询
```
AuditLogs_CL
| where OperationName has_any ("Add service principal", "Certificates and secrets management")
| where Result_s =~ "success"
| mv-expand target = todynamic(TargetResources_s)
| where tostring(tostring(parse_json(tostring(parse_json(InitiatedBy_s).user)).userPrincipalName))
| extend targetDisplayName = tostring(parse_json(TargetResources_s)[0].displayName)
| extend targetId = tostring(parse_json(TargetResources_s)[0].id)
| extend targetType = tostring(parse_json(TargetResources_s)[0].type)
| extend eventtemp = todynamic(TargetResources_s)
| extend keyEvents = eventtemp[0].modifiedProperties
```
### 此查询的作用
| 步骤 | 描述 |
|------|-------------|
| `has_any(...)` | 筛选高风险操作 —— 添加服务主体或管理凭据 |
| `Result_s =~ "success"` | 仅显示成功的操作(过滤掉失败的尝试) |
| `mv-expand` + `todynamic()` | 解包 TargetResources 字段中的嵌套 JSON 数组 |
| `parse_json()` + `tostring()` | 提取结构化字段:显示名称、ID、类型 |
| `keyEvents` | 捕获 `modifiedProperties` —— 具体更改了什么 |
## 📊 发现
该查询在 **2026年2月25日** 返回了 **5 个结果**,均在同一分钟内 (12:25:4x),表明这是一次协同或脚本化操作。
| 时间戳 | 操作 | 用户 | 源 IP | User Agent |
|-----------|-----------|------|-----------|------------|
| 2026年2月25日 12:25:4 | Update application – Certif… | victim@buildseccxpninja.o | 45.153.160.2 | Mozilla/5.0 |
| 2026年2月25日 12:25:4 | Update application – Certif… | VadimJ@buildseccxpninja. | 192.168.5.8 | Mozilla/5.0 |
| 2026年2月25日 12:25:4 | Update application – Certif… | VadimJ@buildseccxpninja. | 185.20.35.69 | python/3.8.9 |
### 🚩 关键入侵指标
- 同一用户 (`VadimJ`) 在同一分钟内出现 **多个源 IP** —— 表明存在会话劫持或来自多个位置的脚本访问
- **45.153.160.2** —— 与 `victim@` 账户关联的外部 IP —— 对于内部用户而言异常
- **185.20.35.69 配合 python/3.8.9 user agent** —— 编程访问,非浏览器行为。通过脚本自动添加凭据的强烈迹象
- 所有操作均针对应用注册上的 **证书更新** —— 符合 T1098.001 特征
## 🗺️ MITRE ATT&CK 映射
| 字段 | 值 |
|-------|-------|
| **战术** | Persistence (持久化) |
| **技术** | T1098 — Account Manipulation (账户操控) |
| **子技术** | T1098.001 — Additional Cloud Credentials (额外云凭据) |
| **平台** | Azure AD / Microsoft 365 |
| **描述** | 攻击者向服务主体/应用注册添加凭据,以维持独立于用户密码更改的访问权限 |
## 🔮 未来应用与检测工程
本实验室的查询逻辑可以在生产环境中落地:
- **Sentinel 分析规则** — 将此搜寻查询转换为计划分析规则,当出现匹配事件时触发警报
- **Logic Apps Playbook** — 自动撤销可疑证书,通知 SOC 团队,或在警报触发时禁用受影响的应用注册
- **监视列表集成** — 维护已知良好 IP 的监视列表,并自动标记偏差
- **工作簿仪表板** — 随时间可视化每个应用注册的凭据更改频率,以揭示异常
这构成了符合零信任原则的 **云身份威胁检测流水线** 的基础。
## 📚 参考与延伸阅读
- [MITRE ATT&CK T1098.001](https://attack.mitre.org/techniques/T1098/001/)
- [Microsoft Sentinel 高级搜寻文档](https://learn.microsoft.com/en-us/azure/sentinel/hunting)
- [KQL 快速参考](https://learn.microsoft.com/en-us/azure/data-explorer/kql-quick-reference)
- [Azure AD 审计日志架构](https://learn.microsoft.com/en-us/azure/active-directory/reports-monitoring/reference-audit-activities)
## 👤 作者
**Ssali Leon Reich**
计算机科学工程学士 — 匈牙利多瑙新城大学
[LinkedIn](https://www.linkedin.com/in/leon-reich-8367a8291/) · [Email](mailto:reichleon221@gmail.com)
*本实验在受控 Azure 环境中进行,用于教育和专业发展目的。*
标签:Azure AD, Cloudflare, KQL, Kusto, Microsoft Sentinel, MITRE ATT&CK, 凭据篡改, 安全实验室, 审计日志, 异常检测, 服务主体滥用, 渗透测试防御, 网络安全, 身份与访问管理, 隐私保护, 黑客模拟