语言:
Microsoft 通过 Entra ID 中的应用程序公开 API,以允许第三方应用程序在 Microsoft Entra ID 本身、Microsoft 365 (O365) 以及 SharePoint Online 和 Exchange Online 等服务中执行操作。“API 权限”保护对这些 API 的访问,这些权限应该仅对需要它们的服务主体可用。权限批准被称为“应用程序角色分配”或“同意授予”。
部分 Microsoft API 上的特定权限可能对环境敏感数据构成威胁,因为拥有这些权限的服务主体能够访问潜在的敏感信息,同时其行为比拥有全局管理员等高权限管理员角色的用户更为隐蔽。
在合法的情况下,这些权限会增加数据泄露的风险。如果权限不合法,则可能表明存在恶意企图,试图访问和窃取敏感数据,例如电子邮件和项目信息。
如 Microsoft 文档“权限和同意简介”中所述,Microsoft Entra ID 有两种类型的 API 权限:
委派权限适用于存在已登录用户的应用程序,并且可以由管理员或用户进行同意授权。
此风险暴露指标 (IoE) 仅报告有关服务主体的内容,因为 API 权限只适用于服务主体,而不适用于用户。
此 IoE 跟踪一个敏感权限列表,其中大多数权限无需加以说明。然而,以下权限需要进一步说明:
Group.Read.All
(由 Microsoft Graph API 和 Office 365 Exchange Online 公开):此权限的风险异常高,因为它甚至允许读取 M365 组的“日历、对话、文件及其他组内容”的具体内容。请考虑这对 Microsoft Teams 使用的 M365 组的影响。拥有这些敏感权限的合法应用程序可能会请求过于宽泛的访问权限。这也可以指示一种被称为“非法同意授予”的网络钓鱼攻击,其中攻击者成功从管理员那里获得了同意。
默认情况下,此 IoE 会忽略已禁用的服务主体,因为攻击者无法立即使用这些服务主体。
外部参考:
首先确定被报告的具有权限的服务主体是否合法。请注意,就技术角度而言,网络钓鱼攻击可以伪造显示名称。如果服务主体似乎属于已知的软件供应商,请让他们确认被报告的应用程序 ID 是否属于他们。如果服务主体非法,并且它伪装成已知的应用程序名称,则您应该进行取证分析。
如果服务主体合法:
默认情况下,所有用户都可以将权限委托给任何应用程序,这使得他们能够做出敏感的安全决定。请参阅相应的“应用程序的无限制用户同意”风险暴露指标。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