Azure存储SDK客户端加密填充预言漏洞缓解方案

本文介绍了Azure存储SDK客户端加密功能中发现的填充预言漏洞(CVE-2022-30187)的技术细节及缓解措施。微软已发布新版本加密方案(v2),建议受影响用户迁移以提升安全性,并提供了迁移指南和替代方案。

摘要

谷歌根据协调漏洞披露(CVD)向微软报告了一个可能影响使用Azure存储SDK(支持Python、.NET、Java)客户端加密功能的填充预言漏洞(CVE-2022-30187)。为缓解此漏洞,微软于2022年7月12日发布了Azure存储SDK客户端加密功能的新正式版(v2)。

微软尚未发现任何针对Azure服务的该漏洞利用报告。建议需要客户端加密的受影响客户迁移至v2版本以保持安全。更多详情请参阅Azure存储博客或下文“参考资料”部分。

客户影响

如前所述,使用Azure存储SDK(支持Python、.NET、Java)客户端加密功能的应用程序可能受到影响,必须更新以尽可能保持安全。若不确定是否受影响,请参阅Azure存储博客中的“如何验证是否使用客户端加密功能”部分。

迁移至v2的指南请参阅Azure存储博客的“修复此漏洞所需的操作”部分。迁移需要:a) 更新代码以使用客户端加密v2;b) 将之前使用客户端加密v1加密的数据迁移至v2。

作为客户端加密的替代方案,受影响客户可考虑使用Azure存储服务端加密来保护静态数据。有关服务端加密的信息,请参阅Azure存储博客的“Azure存储服务端加密”部分。

技术细节

Azure存储.NET、Java和Python SDK支持使用客户在Azure Key Vault或其他密钥库中管理的密钥进行客户端加密。之前发布的Azure存储SDK版本使用密码块链接(CBC)模式进行客户端加密(称为“v1”)。CBC块模式的v1实现存在填充预言攻击漏洞,前提是攻击者具有对Blob的写入权限并能观察到解密失败。我们的调查显示,攻击者需要对每个明文字节执行大量密钥操作才能解密Blob内容。再次强调,微软尚未发现任何针对Azure服务的该漏洞利用报告。

我们感谢谷歌报告此漏洞,并与微软安全响应中心(MSRC)在协调漏洞披露(CVD)框架下合作,帮助保护微软客户的安全。

参考资料

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