在 Defender for Cloud Apps (预览版中调查 OAuth 应用程序攻击路径)

Microsoft 安全风险管理可帮助你有效地管理公司的攻击面和风险暴露风险。 通过组合资产和技术, 攻击路径 说明了攻击者可用于从组织内的入口点移动到关键资产的端到端路径。 Microsoft Defender for Cloud Apps观察到,使用 OAuth 应用程序访问业务关键型应用程序中的敏感数据(如 Microsoft Teams、SharePoint、Outlook 等)的攻击者有所增加。 为了支持调查和缓解,这些应用程序已集成到 Microsoft 安全风险管理 中的攻击路径和攻击图面地图视图中。

先决条件

若要开始使用曝光管理中的 OAuth 应用程序攻击路径功能,请确保满足以下要求。

所需角色和权限

若要访问所有公开管理体验,需要统一基于角色的访问控制 (RBAC) 角色或Entra ID角色。 只需要一个。

  • 公开管理 (读取) (统一 RBAC)

或者,可以使用以下Entra ID角色之一:

权限 操作
全局管理员 (读取和写入权限)
安全管理员 (读取和写入权限)
安全操作员 (读取和受限写入权限)
全局读取器 (读取权限)
安全信息读取者 (读取权限)

注意

目前仅在商业云环境中可用。 Microsoft 安全风险管理数据和功能目前在美国政府云(GCC、GCC High、DoD 和中国政府)中不可用。

关键资产管理 - 服务主体

Microsoft Defender for Cloud Apps定义一组关键特权 OAuth 权限。 具有这些权限的 OAuth 应用程序被视为高价值资产。 如果遭到入侵,攻击者可能会获得对 SaaS 应用程序的高特权。 为了反映此风险,攻击路径会将具有这些权限的服务主体视为目标目标。

查看关键资产的权限

若要查看权限的完整列表,请转到Microsoft Defender门户并导航到“设置”>Microsoft Defender XDR>“规则>”“关键资产管理”。

Defender XDR门户中“关键资产管理”页的屏幕截图。

调查用户流:查看涉及 OAuth 应用程序的攻击路径

了解哪些权限表示高价值目标后,请使用以下步骤调查这些应用程序在环境的攻击路径中的显示方式。 对于具有可管理攻击路径数的小型组织,建议遵循此结构化方法来调查每个攻击路径:

注意

仅当检测到特定条件时,OAuth 应用才会显示在攻击路径图面图中。
例如,如果检测到具有容易利用的入口点的易受攻击的组件,则 OAuth 应用可能会出现在攻击路径中。 此入口点允许横向移动到具有高特权的服务主体。

  1. 转到“曝光管理 > ”“攻击面 > 攻击路径”。

  2. 按“目标类型:AAD 服务主体”进行筛选

    攻击路径服务添加主目标类型的屏幕截图

  3. 选择标题为“具有高严重性漏洞的设备允许横向移动到具有敏感权限的服务主体”的攻击路径

    攻击路径名称的屏幕截图

  4. 单击“在地图中查看”按钮以查看攻击路径。

    地图按钮中视图的屏幕截图

  5. 选择 “ + ” 符号以展开节点并查看详细连接。

    攻击面地图的屏幕截图

  6. 将鼠标悬停或选择节点和边缘以浏览额外的数据,例如此 OAuth 应用拥有的权限。

    显示分配给 OAuth 应用的权限的屏幕截图,如攻击面图中所示

  7. 复制 OAuth 应用程序的名称,并将其粘贴到“应用程序”页的搜索栏中。

    显示“OAuth 应用程序”选项卡的屏幕截图

  8. 选择应用名称以查看分配的权限和使用情况见解,包括是否积极使用高特权权限。

    显示分配给 Oauth 应用的权限的屏幕截图

  9. 可选:如果确定应禁用 OAuth 应用程序,则可以从“应用程序”页禁用它。

决策者用户流:使用扼流点确定攻击路径的优先级

对于具有许多无法手动调查的攻击路径的大型组织,我们建议使用攻击路径数据,并将 Choke Points 体验用作优先级确定工具。 此方法允许你:

  • 识别与最多攻击路径相关的资产。
  • 就要优先调查哪些资产做出明智的决策。
  • 按 OAuth 应用Microsoft Entra进行筛选,以查看哪些 OAuth 应用涉及的攻击路径最多。
  • 确定要对其应用最小特权权限的 OAuth 应用程序。

首先,请执行以下操作:

  1. 转到“攻击路径 > 扼流点”页。

    显示“扼流点”页的屏幕截图

  2. 选择扼流点名称可查看有关热门攻击路径的更多详细信息,例如名称、入口点和目标。

  3. 单击“查看爆炸半径”以进一步调查受攻击面地图中的扼流点。 显示“视图爆炸半径”按钮的屏幕截图

如果扼流点是 OAuth 应用程序,请继续在“应用程序”页进行调查,如上面的步骤 7-9 中所述。

使用查询分析攻击面地图和搜寻

攻击图面图中,可以看到来自用户拥有的应用、OAuth 应用和服务主体的连接。 此关系数据在以下位置可用:

  • ExposureGraphEdges 表 (显示连接)

  • ExposureGraphNodes 表 (包括节点属性,例如权限)

使用以下高级搜寻查询标识具有关键权限的所有 OAuth 应用程序:

let RelevantNodes = ExposureGraphNodes
| where NodeLabel == "Microsoft Entra OAuth App" or NodeLabel == "serviceprincipal"
| project NodeId, NodeLabel, NodeName, NodeProperties;
ExposureGraphEdges
| where EdgeLabel == "has permissions to" or EdgeLabel == "can authenticate as"
| make-graph SourceNodeId --> TargetNodeId with RelevantNodes on NodeId
| graph-match (AppRegistration)-[canAuthAs]->(SPN)-[hasPermissionTo]->(Target)
        where AppRegistration.NodeLabel == "Microsoft Entra OAuth App" and
        canAuthAs.EdgeLabel == "can authenticate as" and
        SPN.NodeLabel == "serviceprincipal" and
        SPN.NodeProperties["rawData"]["criticalityLevel"]["criticalityLevel"] == 0 and
        hasPermissionTo.EdgeLabel == @"has permissions to" and
        Target.NodeLabel == "Microsoft Entra OAuth App" and
        Target.NodeName == "Microsoft Graph"
        project AppReg=AppRegistration.NodeLabel,
         canAuthAs=canAuthAs.EdgeLabel, SPN.NodeLabel, DisplayName=SPN.NodeProperties["rawData"]["accountDisplayName"],
         Enabled=SPN.NodeProperties["rawData"]["accountEnabled"], AppTenantID=SPN.NodeProperties["rawData"]["appOwnerOrganizationId"],
         hasPermissionTo=hasPermissionTo.EdgeLabel, Target=Target.NodeName,
         AppPerm=hasPermissionTo.EdgeProperties["rawData"]["applicationPermissions"]["permissions"]
| mv-apply AppPerm on (summarize AppPerm = make_list(AppPerm.permissionValue))
| project AppReg, canAuthAs, DisplayName, Enabled, AppTenantID, hasPermissionTo, Target, AppPerm

后续步骤

有关更多信息,请参阅: