Azure AD 应用程序中的特权升级潜在风险 | MSRC 博客
摘要
微软已针对 Descope 报告并强调的 Azure AD(AAD)应用程序中的不安全反模式开发了缓解措施。使用访问令牌中的电子邮件声明进行授权可能导致特权升级。攻击者可以伪造发给应用程序的令牌中的电子邮件声明。此外,如果应用程序使用此类声明进行电子邮件查找,还存在数据泄露的威胁。
微软建议永远不要将电子邮件声明用于授权目的。如果您的应用程序使用电子邮件声明进行授权或主要用户标识,则容易受到账户和特权升级攻击。
开发者应审查其应用程序的授权业务逻辑,并遵循以下指南以保护应用程序免受未授权访问。我们还鼓励所有开发者遵循这些 Microsoft 身份平台最佳实践进行令牌验证。如果您使用第三方应用程序(即非您开发的应用程序),我们鼓励您确保您的供应商也遵守这些最佳实践。
我们建议审查应用程序的源代码,并确保电子邮件不用于主要用户标识或授权。如果您的应用程序使用这些不安全模式中的任何一种,请使用以下迁移指南以消除账户升级攻击的风险。
客户影响
微软已识别出多个多租户应用程序的用户使用未验证域所有者的电子邮件地址。尽管未验证的电子邮件地址对不利用电子邮件声明进行授权的应用程序不构成风险,但这些应用程序所有者已收到通知,并获得了如何修改其应用程序的指南(如果适用)。如果您未收到通知,您的应用程序未使用未验证域所有者的电子邮件声明。为保护可能易受特权升级攻击的客户和应用程序,微软已部署缓解措施,为大多数应用程序省略未验证域所有者的令牌声明。
技术细节
没有配置邮箱的 AAD 用户可以为其邮件(主要 SMTP)属性设置任何电子邮件地址。此属性不保证来自已验证的电子邮件地址。特权用户可以创建或修改 AAD 用户,并使用冒充另一个 AAD 用户的电子邮件。当应用程序使用未验证的电子邮件声明进行授权时,恶意行为者有可能通过发出令牌来冒充有效的 AAD 用户以获得未授权访问。
虽然流氓管理员在单租户应用程序中可能这样做,但风险主要存在于多租户应用程序中,这种错误配置可能导致账户和特权升级。
保护 Azure AD 应用程序的指南
由于电子邮件声明的可变性和非唯一性,应用程序永远不应将其用于授权。解决此漏洞需要完全删除任何使用电子邮件声明进行授权的业务逻辑。
微软认识到以这种方式更新应用程序需要时间,因此短期缓解措施是必要的。如果您的应用程序正在积极使用电子邮件声明进行授权,我们建议参考以下文档,该文档提供了迁移远离电子邮件声明使用的指南,并概述了微软正在发布的缓解风险的机制。
微软建议审查应用程序源代码并验证未使用此不安全模式。完全保护您的应用程序免受此错误授权模式的影响需要对应用程序源代码进行更改。
开发者应始终遵循已发布的关于基于声明的授权最佳实践的文档。如果您的应用程序目前受到影响,请查看关于短期风险缓解和迁移远离电子邮件声明的指南。
致谢
我们感谢 Descope 负责任地披露此不安全模式,并允许微软有必要的时间调查问题并制定适当的缓解措施。我们鼓励所有研究人员在协调漏洞披露(CVD)指南下与供应商合作,并遵守渗透测试的参与规则,以避免在进行安全研究时影响客户数据。
参考资料
有问题?通过 Azure 门户在 aka.ms/azsupt 提交支持案例。
Descope 的博客网站:https://www.descope.com/blog/post/noauth
身份和网络访问标准指南:错误标识符反模式
身份和网络访问迁移指南:迁移远离使用电子邮件声明进行用户标识或授权
Open ID Connect 核心规范标准声明:https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims