影响数据的危险委派权限

MEDIUM

描述

Microsoft 通过 Entra ID 中的应用程序公开 API,以允许第三方应用程序在 Microsoft Entra ID 本身、Microsoft 365 (O365) 以及 SharePoint Online 和 Exchange Online 等服务中执行操作。“API 权限”保护对这些 API 的访问,这些权限应该仅对需要它们的服务主体可用。权限批准被称为“应用程序角色分配”或“同意授予”。

部分 Microsoft API 上的特定权限可能对环境敏感数据构成威胁​,因为拥有这些权限的服务主体能够访问潜在的敏感信息,同时其行为比拥有全局管理员等高权限管理员角色的用户更为隐蔽。

在合法的情况下,这些权限会增加数据泄露的风险。如果权限不合法,则可能表明存在恶意企图,试图访问和窃取敏感数据,例如电子邮件和项目信息。

如 Microsoft 文档“权限和同意简介”中所述,Microsoft Entra ID 有两种类型的 API 权限:

  • 应用程序权限:请参阅相关风险暴露指标“影响数据的危险应用程序权限”。
  • 委派权限本风险暴露指标检查第二种类型​。有关对整个 Microsoft Entra 租户的威胁,请参阅相关风险暴露指标“影响租户的危险委派权限”。同意权限由用户或管理员代表整个组织授予。请注意,这些权限会基于登录用户的特权(即权限和用户特权级别的交集)限制应用程序执行操作的能力。因此,正如“开发委派权限策略”中所述,这些委派权限的危险级别取决于应用程序用户的实际权限。例如:如果普通用户委派“Group.ReadWrite.All”权限,实际上这只允许应用程序修改用户可以编辑的组,而不是所有的组。根据 Microsoft 的描述

委派权限适用于存在已登录用户的应用程序,并且可以由管理员或用户进行同意授权。

此风险暴露指标 (IoE) 仅报告有关服务主体的内容,因为 API 权限只适用于服务主体,而不适用于用户。

此 IoE 跟踪一个敏感权限列表,其中大多数权限无需加以说明。然而,以下权限需要进一步说明:

  • Group.Read.All(由 Microsoft Graph APIOffice 365 Exchange Online 公开):此权限的风险异常高,因为它甚至允许读取 M365 组的“日历、对话、文件及其他组内容”的具体内容。请考虑这对 Microsoft Teams 使用的 M365 组的影响。

拥有这些敏感权限的合法应用程序可能会请求过于宽泛的访问权限。这也可以指示一种被称为“非法同意授予”的网络钓鱼攻击,其中攻击者成功从管理员那里获得了同意。

默认情况下,此 IoE 会忽略已禁用的服务主体,因为攻击者无法立即使用这些服务主体。

外部参考:

解决方案

首先确定被报告的具有权限的服务主体是否合法​。请注意,就技术角度而言,网络钓鱼攻击可以伪造显示名称。如果服务主体似乎属于已知的软件供应商,请让他们确认被报告的应用程序 ID 是否属于他们。如果服务主体非法,并且它伪装成已知的应用程序名称,则您应该进行取证分析​。

  • 如果服务主体合法:

    • 确定其所有者和角色,以评估该主体是否真的需要这些敏感权限。
      • 如果这是一个内部应用程序,请按照 Microsoft Graph API 文档中“同意及授权”一节所描述的最低权限原则,来评估其功能并减少权限。该指南明确了每个 API 所需的最低权限。
      • 如果这是第三方应用程序,请验证其数据访问是否适合该应用程序(相同范围)。如果不合适,则要求供应商提供文档,说明为什么这些权限是必要的,以及是否可以安全地移除它们。
    • 作为深度防御措施,如果您拥有必要的工作负载身份高级许可证,请考虑使用工作负载身份的条件访问功能。这使您能够将高风险的服务主体限制在已知的可信位置,并基于风险登录限制访问。
  • 默认情况下,所有用户都可以将权限委托给任何应用程序,这使得他们能够做出敏感的安全决定。请参阅相应的“应用程序的无限制用户同意”风险暴露指标。Microsoft Entra ID 提供了一些助您配置用户同意的选项。启用限制后,具有某些角色的 Microsoft Entra 管理员必须管理应用程序的同意情况并评估同意请求。另请参阅如何“审查管理员同意请求”。

  • 对管理员进行培训,使其能够识别可疑应用程序和敏感权限,包括来自特权或敏感用户的委派权限 。这必须包含在更大的应用程序治理工作中。

  • 如果您认为某个权限不合法,请删除它。如果您计划进行更深入的取证调查,Tenable 建议您先保存证据。请遵循 Microsoft 指南来审查授予给企业应用程序的权限。很遗憾,Microsoft Entra 管理门户不提供此功能

您无法使用 Microsoft Entra 管理门户的“用户同意”选项卡撤销权限。但是,您可以通过 Microsoft Graph API 调用或 PowerShell cmdlet 撤销这些权限。有关更多详细信息,请参阅此文章 的 PowerShell 和 Microsoft Graph 部分。

Microsoft 还发布了两份关于如何执行应用程序同意授予调查以及如何发现和纠正非法同意授权的指南。

确保从服务主体(可在门户的“企业应用程序”菜单中找到)中移除敏感权限,而不是从应用程序(可在“应用注册”菜单中找到)中移除。从应用程序中移除只会删除权限请求,并不会影响实际的权限分配。

最后,启用 Graph API 活动日志,以捕获有关 Graph API 事件的详细信息,这将有助于您的 SOC 或 SIEM 识别可疑活动,或在发生攻击时进行取证调查。此外,监控服务主体的登录活动,并为可疑行为配置警报,特别是对于此处突出显示的敏感服务主体。

指标详细信息

名称: 影响数据的危险委派权限

代码名称: DANGEROUS-DELEGATED-PERMISSIONS-AFFECTING-DATA

严重性: Medium

类型: Microsoft Entra ID Indicator of Exposure

MITRE ATT&CK 信息: