Azure AD多租户应用授权配置漏洞与安全加固指南

本文详细分析了Azure AD多租户应用中存在的授权配置错误风险,提供了具体的技术解决方案和安全最佳实践,包括应用清单审查、授权逻辑实现和服务主体验证等关键安全措施。

关于使用Azure AD的多租户应用授权配置潜在错误指南

摘要

微软已解决由Wiz发现并报告的使用Azure AD的多租户应用中的授权配置错误问题,该问题影响了少数内部应用。此配置错误允许外部方对受影响的应用进行读写访问。

微软立即纠正了配置错误,并增加了额外的授权检查来解决该问题,确认未发生任何意外访问。

微软确认由于这些修复,研究人员描述的所有操作都已不再可能。

微软进行了额外更改以降低未来配置错误的风险。

拥有多租户应用的客户应遵循本文中概述的安全指南,以保护其应用免受未经授权的访问。一如既往,微软还鼓励所有客户遵循这些安全最佳实践。

技术细节

Microsoft Azure Active Directory应用可配置为单租户或多租户。多租户应用使开发人员能够使其应用跨组织边界可用,支持各种企业对企业、企业对消费者和复杂组织场景。配置为多租户的应用需要额外的授权(AuthZ)检查,以确保仅允许那些应被允许访问的实体。这种额外的授权检查需求也适用于使用Azure应用服务身份验证等功能处理其Azure AD身份验证的应用。

在此特定情况下,一些应用被错误地配置为多租户应用,而其他多租户应用未能正确处理授权检查,可能错误地授权了来自未在租户中显式注册的客户端对租户中资源的访问。实施正确授权检查的部分内容是应用检查客户端提供的访问令牌中的服务主体。

请参阅以下指南以保护您的多租户应用免受未经授权的访问。

安全增强

Azure AD已更新,停止向未在资源租户中注册的客户端颁发访问令牌。这防止了即使应用未正确处理授权检查时发生此问题。

此功能已对超过99%的客户应用禁用。对于仍依赖来自没有服务主体的客户端访问的剩余多租户资源应用,我们已在Azure服务运行状况安全公告中向全局管理员(Azure门户和电子邮件)和Microsoft 365消息中心提供了说明。所有拥有多租户应用的客户仍需遵循以下安全指南。

Azure应用服务身份验证引入了新的配置选项,以添加对客户端注册(服务主体)存在和租户ID匹配允许列表的检查。这些可用于多租户应用的额外安全。

关于保护使用Azure AD的多租户应用的指南

以下是根据您的角色可以采取的一些步骤,以保护您的应用免受未经授权的访问。

如果您是管理员:

  • 清点租户中注册为多租户的所有应用。审查每个应用是否需要在注册租户之外使用。如果不需要,更新受众以限制到应用的租户。这将消除来自租户外部的意外访问。
  • 继续遵循安全最佳实践。审查和监视租户的登录日志。使用"分配必需"功能限制仅对明确分配给资源应用的实体的访问。要管理对租户中资源的外部访问,实施条件访问策略。

如果您是应用开发人员:

  • 审查您的Azure AD多租户应用的授权逻辑,并确保实施推荐的授权检查。
  • 对于使用应用服务身份验证功能的应用(默认仅提供身份验证),采取明确步骤包含授权逻辑。应用服务身份验证允许配置一些额外检查作为应用授权逻辑的一部分。您的应用还可以通过处理来自代码的声明来执行授权检查。
  • 确保您有基于对象ID(‘oid’)或其他安全标识符的授权逻辑。
  • 更新客户部署过程以包含为每个客户端应用创建服务主体以允许访问资源应用的步骤。
  • 确保您的应用使用Microsoft身份验证库(MSAL)进行身份验证和令牌管理。

致谢

我们感谢Wiz负责任地披露此发现,这使我们有机会调查和解决提出的问题。我们鼓励所有研究人员与供应商在协调漏洞披露(CVD)下合作,并遵守渗透测试的参与规则,以避免在进行安全研究时影响客户数据。

参考

有问题?通过Azure门户在aka.ms/azsupt打开支持案例。 Wiz的博客网站:https://www.wiz.io/blog/azure-active-directory-bing-misconfiguration

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计