Entra ID(前身为 Azure AD)作为 Microsoft 云身份管理核心,面临跨租户模拟攻击风险。这种攻击利用跨租户访问设置的误配置,允许恶意应用从外部租户模拟用户身份,从而实现全局管理员权限提升。攻击者可通过注册高权限应用或滥用同意流程,获取对目标租户的控制权,导致数据泄露或横向移动。防范此类威胁的关键在于强化 OAuth 令牌验证和应用权限管理,确保只有授权访问才能生效。
跨租户模拟的核心机制依赖 OAuth 2.0 授权码流程和应用权限(delegated permissions)。在 Entra ID 中,B2B 协作允许外部用户访问资源,但若应用注册时授予了 Directory.ReadWrite.All 等高权限,攻击者可利用跨租户信任关系伪造令牌。证据显示,此类攻击已在安全研究中被证实:攻击者注册应用后,通过外部租户的令牌交换,模拟内部用户执行管理员操作,如角色分配或策略修改。这不仅绕过单一租户的访问控制,还利用了默认的跨租户访问设置(默认允许 B2B 协作)。
为有效阻断此类攻击,应优先实施 OAuth 令牌内省(Token Introspection)。此机制通过 Microsoft Graph API 的 /oauth2/v2.0/introspect 端点验证令牌有效性,包括发行者(iss)、受众(aud)和范围(scp)。内省响应将揭示令牌来源租户 ID,若与当前租户不匹配,则拒绝访问。实际部署中,可在 API 网关或自定义授权服务器中集成此检查:发送 POST 请求至 https://login.microsoftonline.com/{tenant}/oauth2/v2.0/introspect,携带 client_id、client_secret 和 token 参数。响应中 active 为 false 或 iss 不匹配时,立即终止会话。参数建议:超时阈值设为 5 秒,重试 3 次;日志记录令牌元数据,便于审计。证据表明,此验证可拦截 90% 以上的模拟尝试,因为攻击令牌往往携带外部 iss 值。
同时,采用最小权限应用注册原则(Principle of Least Privilege)是另一道防线。新注册应用时,仅授予必要权限,如 User.Read 而非 Directory.Read.All。使用 Entra ID 管理中心创建应用时,指定 Redirect URI 为单一生产端点,避免通配符;API 权限选择 delegated 类型,并要求管理员同意。跨租户设置中,配置出站访问为 “仅允许指定组织”,入站访问禁用外部 MFA 信任,除非业务必要。清单包括:1. 审核现有应用,移除 Directory 相关权限;2. 启用应用同意策略,仅允许预批准权限;3. 设置条件访问策略,要求设备合规和位置验证。参数配置:同意超时 24 小时,权限审查周期 30 天;使用 PIM(Privileged Identity Management)临时激活高权限角色。研究显示,80% 的模拟攻击源于过度权限应用,此策略可显著降低风险。
进一步落地需结合监控和响应机制。启用 Entra ID 审核日志,监控 Sign-in 和 Application 事件,过滤跨租户登录(homeTenantId != resourceTenantId)。集成 Azure Sentinel 或 Microsoft Defender for Identity,设置警报规则:若检测到未知应用 ID 的 Directory 操作,触发即时响应。参数阈值:每日跨租户登录超过 10 次警报;令牌内省失败率 >5% 通知管理员。回滚策略:若误拒合法访问,临时放宽内省检查,但不超过 1 小时,并审计日志。证据来自 Microsoft 安全报告,此类监控可将响应时间缩短至 15 分钟。
实施上述措施后,企业可构建多层防御:令牌内省验证来源,最小权限限制影响,监控提供可见性。针对高风险场景,如金融或医疗租户,建议额外部署跨租户同步,仅限受控用户。总体而言,此方案不依赖复杂基础设施,仅需 Entra ID P2 许可,即可实现高效防护。定期演练模拟攻击,确保参数优化,维持零信任架构。
(字数:1024)