Storm-0558密钥获取重大技术调查结果
2024年3月12日更新
作为微软安全未来倡议中持续透明化承诺的一部分,我们根据持续调查提供进一步信息。新信息未改变先前发布的客户指南,调查也未发现对微软或客户的额外影响。客户无需采取额外行动。
2023年7月11日,微软发布了针对中国威胁组织Storm-0558活动的初步调查报告。2023年9月6日,我们宣布主要技术调查已完成。但为保护客户免受类似攻击,我们持续研究该威胁组织的战术技术。本次补充说明基于最新发现对内容进行澄清和修正。
未变更的结论:
- 主要假设仍是操作失误导致密钥材料离开安全令牌签名环境,后通过受感染的工程账户在调试环境中被访问。
- 对客户、微软的影响及攻击者活动均无变化。最新信息仍可参考微软安全博客。
基于2023年9月6日后新发现的更新内容:
- 原博客称攻击者访问可能源于2021年的崩溃转储,但未发现包含受影响密钥材料的崩溃转储。
- 原博客提到的竞态条件不影响密钥是否存在于崩溃转储,而是影响崩溃转储能否从安全令牌签名环境中移除。
- 原称将崩溃转储移出安全签名环境符合标准调试流程——本意是指过去未禁止该操作,故可能发生。当前微软标准调试流程禁止从生产环境移出此类材料。
- 持续调查发现凭证扫描技术存在局限性,将在发现时解决。
- 调查仍在进行,若与客户或行业相关将持续更新以帮助防护类似攻击。
密钥获取详情
微软维护高度隔离和受限的生产环境。员工访问生产基础设施的管控包括背景调查、专用账户、安全访问工作站及硬件令牌的多因素认证。该环境还禁止使用邮件、会议、网页研究等协作工具(这些工具可能导致恶意软件感染或钓鱼等常见账户泄露途径),并通过即时和最小权限策略限制系统数据访问。
企业环境虽需安全认证和设备,但允许邮件、会议、网页研究等协作工具。这些工具虽重要,但也使用户易受鱼叉钓鱼、令牌窃取恶意软件等攻击。因此,根据零信任和“假设已失陷”策略,密钥材料不应离开生产环境。
调查发现,2021年4月消费者签名系统崩溃生成了崩溃进程快照(崩溃转储)。崩溃转储应抹除敏感信息且不包含签名密钥,但本次竞态条件导致密钥存在于转储中(该问题已修复)。系统未检测到转储中的密钥材料(该问题已修复)。
该转储当时被认为不包含密钥材料,后被从隔离生产网络移至互联网连接的企业网络调试环境。此操作符合当时标准调试流程。凭证扫描方法未检测到其存在(该问题已修复)。
2021年4月密钥通过崩溃转储泄露至企业环境后,Storm-0558攻击者成功入侵了微软工程师的企业账户。该账户有权访问包含错误密钥的调试环境。由于日志保留策略,无该攻击者窃取的具体日志证据,但这是最可能的密钥获取机制。
消费者密钥为何能访问企业邮件
为满足客户对同时支持消费者和企业应用的需求,微软于2018年9月引入了通用密钥元数据发布端点。作为此融合方案的一部分,微软更新文档以明确密钥范围验证要求——企业账户和消费者账户分别使用何密钥。
在现有文档和辅助API库中,微软提供了协助加密验证签名的API,但未更新这些库以自动执行范围验证(该问题已修复)。邮件系统于2022年更新为使用通用元数据端点。邮件系统开发者错误假设库执行完整验证,未添加必要的颁发者/范围验证。因此,邮件系统会接受使用消费者密钥签名的安全令牌请求企业邮件(该问题已通过更新库修复)。
事后审查
微软持续强化系统作为深度防御策略的一部分。与MSA密钥管理相关的投资详见https://aka.ms/storm-0558博客。本博客所述为整体投资的子集。此处总结与这些发现相关的改进:
- 识别并修复导致签名密钥存在于崩溃转储的竞态条件。
- 增强对崩溃转储中错误包含密钥材料的预防、检测和响应。
- 改进凭证扫描以更好检测调试环境中的签名密钥。
- 发布增强库以在身份验证库中自动化密钥范围验证,并澄清相关文档。