语言:
Microsoft Entra ID 中的动态组是一项强大的功能,需要 P1 或更高级别的许可证。这些组会根据与用户属性相关联的特定规则自动更新其成员资格。然而,如果规则依赖于用户可以自行修改的属性,则容易遭到利用。
攻击者如果能够修改动态组规则中使用的属性,便可以操纵该组的成员资格。如果该组允许其成员访问敏感资源,则这种错误配置可能导致未经授权的访问或特权提升。
虽然租户中的许多属性不可由用户修改,但来宾帐户是一个例外。由攻击者控制的来宾用户在攻击者的主租户中具有管理特权,可以修改该租户的属性,并利用目标租户中的动态组规则。
此问题最早在 2020 年左右的安全研究和渗透测试文献中被提出,在错误配置的环境中至今仍然是一个可行的攻击向量。自 2024 年底以来,AADInternals 攻击工具中增加了用于识别可利用组的功能。
可能的攻击场景:
displayName
。风险及其可能造成的严重性取决于以下因素:
动态组简化了管理任务,但需要谨慎配置以防止滥用。通过解决这些风险,管理员能够在 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