2023年9月6日,微软发布了一篇博客文章,详细介绍了中国威胁行动者Storm-0558如何使用获得的Microsoft账户(MSA)消费者密钥伪造令牌以访问OWA和Outlook.com。在确定威胁行动者获得了消费者密钥后,微软进行了一项全面的技术调查,调查了Microsoft账户消费者签名密钥的获取方式,以及它如何被用来访问企业电子邮件。我们的技术调查已经结束。作为我们对透明度和信任的承诺的一部分,我们将发布我们的调查结果。
密钥获取
微软维护着一个高度隔离和限制的生产环境。微软员工访问生产基础设施的控制措施包括背景调查、专用账户、安全访问工作站以及使用硬件令牌设备的多因素身份验证。该环境中的控制措施还防止使用电子邮件、会议、网络研究和其他合作工具,这些工具可能导致常见的账户被入侵矢量,如恶意软件感染或钓鱼,同时使用及时和有限访问策略限制对系统和数据的访问。
我们的企业环境也需要安全身份验证和安全设备,并允许使用电子邮件、会议、网络研究和其他合作工具。虽然这些工具很重要,但它们也使用户容易受到针对性网络钓鱼、令牌窃取恶意软件和其他账户被入侵矢量的攻击。因此,根据政策和作为我们零信任和“假定受损”思维方式的一部分,密钥材料不应离开我们的生产环境。
我们的调查发现,2021年4月发生的消费者签名系统崩溃导致了一个崩溃进程的快照(“崩溃转储”)。这些崩溃转储应该不包含签名密钥。但在这种情况下,一个竞争条件导致密钥出现在崩溃转储中(这个问题已经得到修复)。我们的系统没有检测到崩溃转储中的密钥材料(这个问题已经得到修复)。
我们发现,这个崩溃转储在当时被移动到了隔离的生产网络之外,进入了我们连接到互联网的企业网络的调试环境。这与我们的标准调试流程一致。我们的凭证扫描方法没有检测到其存在(这个问题已经得到修复)。
在2021年4月之后,当密钥通过崩溃转储泄露到企业环境时,Storm-0558行动者成功入侵了一名微软工程师的企业账户。该账户具有访问包含错误包含密钥的崩溃转储的调试环境的权限。由于日志保留政策的原因,我们没有具体证据证明这个行动者的数据外泄,但这是最可能的行动者获取密钥的机制。
消费者密钥为什么能够访问企业邮件
为了满足日益增长的客户需求,支持同时使用消费者和企业应用程序的应用程序,微软在2018年9月引入了一个公共密钥元数据发布端点。作为这个统一提供的一部分,微软更新了文档,澄清了密钥范围验证的要求-用于企业账户的密钥以及用于消费者账户的密钥。
作为预先存在的文档和辅助API库的一部分,微软提供了一个API来帮助进行加密签名的验证,但没有更新这些库以自动执行这个范围验证(这个问题已经得到修复)。邮件系统在2022年更新,使用了公共元数据端点。邮件系统中的开发人员错误地认为库已经执行了完整的验证,并没有添加所需的发行者/范围验证。因此,邮件系统会接受使用消费者密钥签名的安全令牌的企业邮件请求(这个问题已经使用更新的库得到修复)。
事后回顾
微软作为我们的深度防御策略的一部分,不断加强系统的安全性。与MSA密钥管理相关的投资在https://aka.ms/storm-0558博客中有详细介绍。本博客中详细介绍的内容只是这些整体投资的一部分。为了明确起见,我们在这里总结了与这些发现相关的改进措施:
- 确定并解决了允许签名密钥出现在崩溃转储中的竞争条件问题
- 加强了对错误包含在崩溃转储中的密钥材料的预防、检测和响应能力
- 加强了凭证扫描以更好地检测调试环境中签名密钥的存在
- 发布了增强的库,以自动进行身份验证库中的密钥范围验证,并澄清了相关文档
via https://msrc.microsoft.com/blog/2023/09/results-of-major-technical-investigations-for-storm-0558-key-acquisition/