影响租户的危险 API 权限

High

描述

Microsoft 通过 Entra ID 中的应用程序公开 API,以允许第三方应用程序在 Microsoft Entra ID、Microsoft 365 (O365)、Azure 云等产品中执行操作。“API 权限”保护这些 API,使其免受非法访问。只有需要这些 API 的服务主体才能拥有这些 API。权限批准被称为“应用程序角色分配”或“同意授予”。

部分 Microsoft API 的一些权限(见下方)可能对整个 Microsoft Entra 租户造成严重威胁​,因为具有这些权限的服务主体会拥有很高的权限,同时也比高权限的管理员角色(例如,全局管理员)等更加谨慎。滥用这些权限可能导致攻击者绕过多因素身份验证 (MFA) 并阻止用户密码重置。

在合法的情况下,权限会增加租户的攻击面。在不合法的情况下,权限可能是升级特权或持久性方法的恶意尝试。

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

  • 应用程序权限:同意来自管理员,权限适用于所有租户。
  • 委派权限:同意来自代表整个组织的用户或管理员。请注意,这些权限会基于登录用户的特权(即权限和用户特权级别的交集)限制应用程序执行操作的能力。因此,正如开发委派权限策略中所述,这些委派权限的危险性取决于应用程序用户的实际权限。例如:如果普通用户委派“Group.ReadWrite.All”权限,实际上这只允许应用程序修改用户可以编辑的组,而不是所有的组。

此风险暴露指标会检查这两种类型的权限。此指标只报告有关服务主体的内容,而非用户的内容,因为 API 权限仅应用于服务主体。

此风险暴露指标也重点关注允许访问 Microsoft 图形 API 和旧版 Azure AD 图形 API 的权限。以下危险权限尤其会造成安全风险:

  • RoleManagement.ReadWrite.Directory:允许攻击者将自己提升为全局管理员角色
  • AppRoleAssignment.ReadWrite.All:允许攻击者授予自己RoleManagement.ReadWrite.Directory权限(见上文)。

具有这些危险权限的合法应用程序请求的权限可能过于宽泛。这也可以作为一种被称为“非法同意授予”的网络钓鱼攻击的信号,在这种攻击中,攻击者会成功获得管理员同意。

解决方案

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

  • 如果服务主体合法,则您应该确定其所有者和角色,以评估该主体是否真的需要这些危险的权限。如果这是一个内部应用程序,请根据其功能,按照 Microsoft 图形 API 文档中“同意及授权” 部分(此部分具体描述了每个 API 所需的最小权限)描述的最小特权原则最佳实践​来减少权限。如果这是第三方应用程序,请要求供应商减少所需的权限,或者至少说明为什么需要这些权限。
  • 默认情况下,所有用户都可以向任何应用程序委派权限,使其能够做出敏感的安全决策。Microsoft Entra ID 提供了一些助您配置用户同意的选项。启用限制后,具有某些角色的 Microsoft Entra 管理员必须管理应用程序的同意情况并评估同意请求。另请参阅如何“审查管理同意请求”
  • 应用程序权限 始终需要管理员同意。培训这些管理员以识别可疑应用程序和敏感权限,特别是租户范围内的应用程序权限,以及来自特权或敏感用户的委派权限 。这必须包含在更大的应用程序治理工作中。
  • 如果您认为某个权限不合法,请删除它。如果您计划进行更深入的取证调查,Tenable 建议您先保存证据。Microsoft Entra 门户有专门的功能来审查授予企业应用程序的权限

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

指标详细信息

名称: 影响租户的危险 API 权限

代码名称: DANGEROUS-API-PERMISSIONS-AFFECTING-THE-TENANT

严重程度: High

MITRE ATT&CK 信息:

技术: T1566, T1528, T1550.001