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, 凭据篡改, 安全实验室, 审计日志, 异常检测, 服务主体滥用, 渗透测试防御, 网络安全, 身份与访问管理, 隐私保护, 黑客模拟