アプリケーションおよびサービス プリンシパル API での Azure Active Directory (AD) keyCredential プロパティの情報漏えいに関するガイダンス
日本セキュリティチーム / 2021年11月17日 / 15分読み取り
本博客是《Guidance for Azure Active Directory (AD) keyCredential property Information Disclosure in Application and Service Principal APIs》的摘译版。最新信息请参考原文。
微软针对Azure Active Directory(AD)中引发信息泄露的漏洞CVE-2021-42306实施了修复,确保部分Azure服务不会将私钥数据存储在Azure Active Directory(Azure AD)应用程序和/或服务主体的KeyCredentials属性中,并限制对已存储KeyCredentials属性中私钥数据的读取访问。
KeyCredentials属性用于配置应用程序的身份验证凭据。具有应用程序元数据读取访问权限的组织Azure AD租户内的所有用户或服务均可访问此属性。
该属性设计用于接受带有公钥数据的证书以进行身份验证,但可能错误地存储了带有私钥数据的证书。访问私钥数据可能导致特权提升攻击,使用户能够模拟受影响的应用程序或服务主体。
某些Microsoft服务在创建应用程序时,被发现未正确将私钥数据存储在keyCredentials属性中。根据微软调查,未发现对这些私钥数据存在恶意访问的痕迹。
受此漏洞影响的Microsoft Azure服务通过阻止keyCredentials属性存储明文私钥信息来解决问题。此外,Azure AD通过阻止用户或服务通过UI或API读取先前添加的明文私钥数据来解决问题。
因此,无法再访问keyCredentials属性中的明文私钥数据,风险得以减轻。
作为预防措施,微软建议使用以下“受影响的产品/服务”中描述的服务客户采取行动。此外,认为环境中可能已将私钥数据添加到其他Azure AD应用程序或服务主体凭据的客户,建议遵循本指南。
受影响的产品/服务
微软确认以下平台/服务将私钥存储在公共属性中。同时,已识别受影响客户,通过Azure服务健康通知,并提供问题处理指南。
| 产品/服务 | 微软实施的修复 | 客户需执行的影响确认与缓解措施 |
|---|---|---|
| Azure Automation 在创建Automation Run-As账户时使用Application and Service Principal keyCredential APIs。 | Azure Automation已向该服务部署更新,防止明文私钥数据上传至Azure AD应用程序。2021年10月15日前创建或更新的Run-As账户不受影响,无需处理。 | 使用Azure Automation自签名证书创建的Automation Run As账户中,在2020年10月15日至2021年10月15日期间未更新的账户会受影响。使用自有证书的账户也可能受影响,与账户更新日期无关。识别受影响的Automation Run-As账户及相关Azure AD应用程序,请参考Github Repo。Azure Automation也支持托管身份(2021年10月正式发布)。从Run-as迁移到托管身份可解决此漏洞问题。迁移方法详情请参考此指南。 |
| Azure Migrate 服务创建Azure AD应用程序以便Azure Migrate设备与服务端点通信。 | Azure Automation已向该服务部署更新,防止明文私钥数据上传至Azure AD应用程序。2021年11月2日后部署的Azure Migrate应用程序,且设备配置管理器版本为6.1.220.1或更高版本,则不受影响,无需处理。 | 2021年11月2日前注册的Azure Migrate应用程序,或2021年11月2日后注册但禁用自动更新的应用程序会受影响。确认影响并处理,请参考此链接。 |
| Azure Site Recovery (ASR) 创建Azure AD应用程序以便与ASR服务端点通信。 | Azure Site Recovery已向该服务部署更新,防止明文私钥数据上传至Azure AD应用程序。2021年11月1日后使用Azure Site Recovery预览版“VMware to Azure Disaster Recovery”的客户不受影响,无需处理。 | 2021年11月1日前使用Azure Site Recovery预览版“VMware to Azure Disaster Recovery”的客户会受影响。确认影响并处理,请参考此链接。 |
| Azure AD应用程序及服务主体1 | 2021年10月30日限制了对私钥的访问。 | 参考https://aad-app-credential-remediation-guide上发布的指南,确认是否需要更改应用程序使用的凭据。该指南介绍了识别KeyCredentials中是否存储了私钥信息及处理方法。 |
如何实施审计和调查意外使用?
作为额外措施和最佳实践,建议进行以下审计和调查:
- 审计授予受影响实体的权限(如订阅访问、角色、OAuth权限等),评估凭据泄露时的潜在影响。参考安全操作指南应用程序权限部分。
- 如果轮换了应用程序/服务主体的凭据,特别是受影响实体对敏感资源具有高特权权限时,建议调查是否存在意外使用。参考应用程序的最小特权访问,确保授予最低必要权限。
- 检查登录日志、AAD审计日志和M365审计日志,确认是否存在可疑活动,如来自意外IP地址的登录。
- 部署了Microsoft Sentinel的客户,可利用笔记本/Playbook/狩猎查询搜索可能的恶意活动。参考指南。
- 更多详情,请参考安全操作指南。
作为强大安全态势(安全状况)的一部分,我们与研究人员合作发现漏洞,从而在利用前进行修复。感谢NetSPI的Consumer Fosaaen报告此漏洞,并在“协调漏洞披露(CVD)”下与微软安全响应中心(MSRC)合作,帮助保护微软客户。
-
此漏洞问题仅影响将明文私钥信息添加到keyCredential的Azure AD应用程序和服务主体。微软建议采取预防措施,识别管理凭据的应用程序中此问题的其他实例,并在发现影响时执行改进步骤。 ↩︎