SuperAPI AI 工具集

detecting-entra-offensive-tools-in-graph-logs

安全与审计

查看项目

更新于 10-16 10:34

技能介绍

用途

该技能是进攻型 Entra ID 工具链的防御补集,用于在 Microsoft Sentinel 或 Log Analytics 中狩猎 Microsoft Graph 与旧版 Azure AD Graph 目录 API 流量中的攻击工具痕迹。其针对的核心行为是攻击者使用合法(常为钓鱼获得或窃取的令牌)云凭据,通过 Graph API 对租户进行枚举与操作,对应 MITRE ATT&CK T1078.004(Valid Accounts: Cloud Accounts)。

背景

旧版 Azure AD Graph API(graph.windows.net)长期是防御盲区:请求不会产生一等公民级活动日志,因此 ROADtools(roadrecon)与 AADInternals 等重度依赖 AAD Graph 的工具可以在几乎无痕迹的情况下枚举整个租户。Microsoft 推出 AADGraphActivityLogs(2026 年正式可用)后,与已有的 MicrosoftGraphActivityLogs(graph.microsoft.com)一起,为 SOC 提供请求级可见性:调用者身份、应用、源 IP、HTTP 方法、请求 URI 以及关键的 User-Agent。

主要能力

  1. 确认两张 Graph 活动表是否正常接入工作区,并查看将用于分析的字段。
  2. 通过 User-Agent 字符串特征检测 ROADtools(基于 Python aiohttp,未伪装时显示 python 与 aiohttp)、AADInternals(常留下 AADInternals 或库字符串)以及 AzureHound(Go HTTP 客户端与 BloodHound 工具特征)。
  3. 行为检测:即使 User-Agent 被伪造,roadrecon gather 会在很短时间内批量访问 users、tenantdetails、groups、applications、serviceprincipals、devices、directoryroles、roledefinitions、contacts、oauth2permissiongrants、authorizationpolicy 等目录资源,形成可识别特征。
  4. 高流量枚举异常检测:捕获在短时间内发起远超人类水平的目录读取。
  5. 将可疑 Graph 调用者关联回登录记录,获取设备、位置、MFA 与条件访问结果;注意 AADGraphActivityLogs 中的 SignInActivityId 可能相对 SigninLogs.UniqueTokenIdentifier 带有“==”填充。
  6. 将高保真查询提升为计划分析规则,映射 T1078.004 并配置实体映射,同时通过监视列表排除已知自动化/服务主体 App ID 与已批准扫描器 IP,以控制误报。

使用方式

前置条件:一个正在接入 MicrosoftGraphActivityLogs、AADGraphActivityLogs、SigninLogs 与 AADNonInteractiveUserSignInLogs 的 Microsoft Sentinel 工作区(或 Log Analytics);Microsoft Sentinel Reader/Responder(或 Log Analytics Reader)RBAC 权限以运行 KQL;熟悉 Kusto 查询语言。需先通过 Azure 门户(Microsoft Entra ID → 诊断设置)或 CLI 命令启用诊断设置,将两类 Graph 日志发送到工作区:

az monitor diagnostic-settings create
--name "entra-graph-logs"
--resource "/providers/microsoft.aadiam/diagnosticSettings"
--logs '[{"category":"MicrosoftGraphActivityLogs","enabled":true},{"category":"AADGraphActivityLogs","enabled":true}]'
--workspace "<log-analytics-workspace-id>"

工作流分七步:确认两表接入;狩猎 User-Agent 指纹(ROADtools/aiohttp);狩猎 AADInternals 与 AzureHound 代理特征;执行 roadrecon 端点扫描行为狩猎;检测高流量枚举异常;将 Graph 活动关联到发起登录;将最佳查询转为计划分析规则并配置实体映射与调优。

适用场景

  • 为覆盖 Entra ID 的 Microsoft Sentinel / Log Analytics 构建或调优检测规则。
  • 在怀疑凭据窃取、设备代码钓鱼或 OAuth 同意滥用后开展威胁狩猎。
  • 紫队演练,验证 ROADtools / AADInternals / AzureHound 活动可被检测。
  • 调查告警时,需要将 Graph API 调用关联回登录/会话。
  • 启用 AADGraphActivityLogs 后关闭旧版 Azure AD Graph 的可见性缺口。

工具指纹参考

  • ROADtools(roadrecon):python + aiohttp User-Agent;5 分钟内完成完整目录端点扫描;表为 AADGraphActivityLogs。
  • AADInternals:User-Agent 中含 AADInternals / 工具包字符串;AAD Graph 读取;表为 AADGraphActivityLogs。
  • AzureHound:Go HTTP 客户端 User-Agent;大范围 MS Graph 枚举;表为 MicrosoftGraphActivityLogs。
  • 通用侦察:短窗口内对 users/groups/apps/SPs 的高 GET 流量;两张表均涉及。

验证标准

确认两表接入;执行 ROADtools/aiohttp User-Agent 指纹狩猎;执行 AADInternals/AzureHound 代理狩猎;执行并调优行为端点扫描狩猎;执行高流量枚举异常查询;至少有一条发现关联回登录/会话与源身份;将最佳查询提升为带 T1078.004 映射与实体映射的计划分析规则;通过监视列表排除已知良性的服务主体/IP 以控制误报。

限制与说明

该技能依赖 AADGraphActivityLogs 与 MicrosoftGraphActivityLogs 的数据接入,缺少相应诊断设置时无法使用;相关表正式可用时间、具体保留与计费信息暂未提供;实际检测效果受工具是否伪装 User-Agent 以及行为模式影响,需结合监视列表调优以降低误报。