具有可利用规则的动态组

MEDIUM

描述

Microsoft Entra ID 中的动态组是一项强大的功能,需要 P1 或更高级别的许可证。这些组会根据与用户属性相关联的特定规则自动更新其成员资格。然而,如果规则依赖于用户可以自行修改的属性,则容易遭到利用。

攻击者如果能够修改动态组规则中使用的属性,便可以操纵该组的成员资格。如果该组允许其成员访问敏感资源,则这种错误配置可能导致未经授权的访问或特权提升。

虽然租户中的许多属性不可由用户修改,但来宾帐户是一个例外。由攻击者控制的来宾用户在攻击者的主租户中具有管理特权,可以修改该租户的属性,并利用目标租户中的动态组规则。

此问题最早在 2020 年左右的安全研究和渗透测试文献中被提出,在错误配置的环境中至今仍然是一个可行的攻击向量。自 2024 年底以来,AADInternals 攻击工具中增加了用于识别可利用组的功能。

可能的攻击场景:

  1. 侦查:攻击者以标准用户(非特权角色)的身份获得对租户的访问权限。默认情况下,他们可以枚举组并查看动态组规则。
  2. 目标选择:攻击者会识别具有敏感权限的动态组,例如订阅中的特权 Azure 角色。这些攻击的目标是使用可利用属性的规则,如包含特定关键字(如“admin”)的 displayName
  3. 恶意准备:攻击者在自己的 Entra 租户中创建一个用户,其属性与目标组的成员资格规则匹配。
  4. 来宾邀请:攻击者邀请该恶意用户以来宾身份加入目标租户。
  5. 规则利用:当恶意来宾接受邀请时,系统会在目标租户中创建其帐户,并且动态组的成员资格规则处理其属性。
  6. 权限提升:恶意来宾会在帐户创建后的几分钟内自动加入动态组并继承其权限(例如特权 Azure 订阅角色)。

风险及其可能造成的严重性取决于以下因素:

  • 来宾访问设置:来宾限制较弱会增加攻击的可能性。当组织允许用户邀请来宾和查看组规则时,风险会增加(详情请参阅相关的“不受限来宾帐户”和“来宾帐户与普通帐户具有相同的访问权限”风险暴露指标)。
  • 组访问范围:攻击的严重性取决于组控制的资源,资源可能包括:
    • Microsoft 365 服务(Teams 频道、SharePoint 站点、Exchange 收件箱)
    • Azure 云资源
    • 其他集成的应用程序

解决方案

动态组简化了管理任务,但需要谨慎配置以防止滥用。通过解决这些风险,管理员能够在 Entra ID 管理中确保动态组的安全和效率。

最直接的修复措施是避免在规则中使用用户可控的属性:不要基于用户(尤其是来宾用户)可以直接修改的属性来制定动态组成员资格规则。然而,这样做会显著降低该功能的实用性和灵活性。

如前所述,最简单的攻击方法是邀请恶意的来宾用户。为了缓解这一问题,您可以配置策略,将来宾邀请权限限制在受信任的用户组内。虽然这可能会影响协作,但也会大大降低恶意来宾访问的风险。 或者,如果您不期望这些存在风险的来宾成为动态组的成员,您可以将他们排除。在 规则编辑器中,对 userType 属性添加一个“And”规则,并为“Guest”值使用“Not Equals”运算符,这会生成以下规则:and (user.userType -ne "Guest")。请注意,这无法防止恶意的“外部成员”。

然而,能够编辑用户属性的内部用户(如通过 Entra 角色而获得相应权限)也可以利用这一点,从而创造出额外的攻击路径。因此,请仔细检查授予此类权限的 Entra 角色

内部用户以及不太受信任的来宾可以轻易发现可利用的组。为了缓解这一问题,您可以减少来宾对组及其规则的可见性。请参阅相关的“不受限来宾帐户”和“来宾帐户与普通帐户具有相同的访问权限”风险暴露指标中的建议。但请注意,这并不能防止内部用户利用这些组,因为他们仍然可以识别出目标组。

作为补充措施,您可以定期监控动态组成员资格的变化,以识别并处理潜在的利用行为。您可以使用 Entra 审计日志实时执行此操作,也可以在动态组的属性中选择“暂停处理”,并仅在您准备好比较变更前后的成员时再重新启用。

最后,如果您接受该风险,可以选择排除已识别的组。这可能是因为您认为发现或利用该组的风险很低,或者是由于该组的成员身份并不赋予对敏感资源的访问权限。

指标详细信息

名称: 具有可利用规则的动态组

代码名称: DYNAMIC-GROUP-FEATURING-AN-EXPLOITABLE-RULE

严重性: Medium

类型: Microsoft Entra ID Indicator of Exposure

MITRE ATT&CK 信息: