Windows系统上Spectre和Meltdown漏洞缓解措施的性能影响分析

本文详细分析了Windows系统针对Spectre和Meltdown硬件漏洞的缓解措施,包括三种变体的技术细节、防护方案实施指南,以及不同硬件配置下的性能影响评估,帮助用户平衡安全与性能。

Windows系统上Spectre和Meltdown漏洞缓解措施的性能影响

本文章翻译自Microsoft Secure博客“Understanding the performance impact of Spectre and Meltdown mitigations on Windows Systems”(2018年1月9日美国时间发布)。

上周,科技行业和许多客户了解到手机、PC和服务器硬件芯片中存在新的漏洞。微软(以及行业内的其他公司)在数月前通过保密协议得知这些漏洞的存在,立即开始开发缓解措施,并着手更新云基础设施。本博客将尽可能清晰地解释发现的漏洞,客户可以采取的安全措施,以及目前了解到的性能影响。

新的漏洞详情

2018年1月3日(美国时间),几位安全研究人员公开了三个潜在漏洞的信息,分别称为“Meltdown”和“Spectre”。多个博客尝试详细解释这些漏洞,Stratechery提供了清晰的说明。

在手机和PC上,恶意软件可以利用硅芯片的漏洞,使一个软件程序访问另一个程序的信息。这些攻击还涉及浏览器,通过网页或广告部署的恶意JavaScript可以访问系统中正在运行的另一个软件程序或浏览器标签的信息(如法律文档或财务信息)。在多个服务器共享功能的环境(某些云服务配置中存在)中,这些漏洞可能使一个虚拟机访问另一个虚拟机上的信息。

保护系统的措施

目前,这三个漏洞的技术利用已被证明是可行的。通过与硅合作伙伴合作,我们对Windows和硅微代码进行了更改,以缓解这些漏洞。

被利用的漏洞 CVE 漏洞名称 公开名称 Windows的更改 是否需要主机硅微代码更新
Spectre 2017-5753 Variant 1 边界检查绕过 编译器更改:重新编译部分二进制文件;增强Edge和IE11以防止JavaScript利用
Spectre 2017-5715 Variant 2 分支目标注入 调用新的CPU指令以消除风险情况下的分支推测
Meltdown 2017-5754 Variant 3 恶意数据缓存加载 分离内核模式和用户模式的页表

Windows客户端与不可信代码通过各种方式交互(如浏览包含广告或下载应用的网页),因此建议通过Windows更新和硅微代码更新保护所有系统。

对于Windows Server,管理员应确保在物理服务器级别实施缓解措施,以隔离服务器上运行的虚拟工作负载。本地服务器可以通过应用适当的微代码更新来缓解。如果运行Hyper-V,请使用最近发布的Windows更新进行更新。Azure客户无需采取特殊措施实现虚拟隔离,因为微软已在所有Azure服务器上应用了基础设施更新,确保工作负载与其他客户隔离。这意味着其他Azure客户无法利用这些漏洞攻击您的虚拟机或应用程序。

在本地或云上使用Windows Server的客户需要评估是否为每个Windows Server VM客户机或物理实例应用额外的安全缓解措施。这些措施在Windows Server实例中运行不可信代码时是必要的(例如,允许特定客户上传在Windows Server实例中运行的二进制文件或代码片段),以确保防止对Windows Server实例内存的未经授权访问。这些措施不用于将虚拟服务器上的Windows Server VM与其他VM隔离,仅用于隔离特定Windows Server实例中运行的不可信代码。

目前,微软支持45个Windows版本,其中41个版本的修复程序可通过Windows Update获取。其余版本将于近期发布。各版本的更新发布时间表在Windows客户指南中公布。

硅微代码由硅供应商分发给系统OEM,然后由OEM决定向客户发布。有些系统OEM通过Windows Update分发微代码,有些则使用自己的更新系统。系统微代码更新的信息在此处公布。对于Surface,从今天起通过Windows Update进行更新。

有关确认和启用/禁用这些缓解措施的指南,请参考以下内容:

  • Windows客户端
  • Windows Server
  • Microsoft Azure

性能影响

关于所有这些修复的一个常见问题是它们对PC和服务器的性能影响。请注意,目前发布的大多数基准测试不包括OS和硅的更新。微软正在进行自己的基准测试,并计划在完成后公布结果。同时,我们还在进一步改进性能调优。一般来说,Variant 1和Variant 3缓解措施的性能影响非常小,而包括OS和微代码的Variant 2缓解措施对性能有影响。

目前了解的影响概述如下:

  • 在新硅芯片(搭载2016代Skylake、Kabylake或更新CPU的PC)上的Windows 10基准测试中,观察到个位数的延迟,由于是毫秒级,大多数用户可能不会注意到变化。
  • 在旧硅芯片(搭载2015代Haswell或更早CPU的PC)上的Windows 10的一些基准测试中,观察到更明显的延迟,预计部分用户会注意到系统性能下降。
  • 在旧硅芯片(搭载2015代Haswell或更早CPU的PC)上的Windows 8和Windows 7中,预计大多数用户会感受到系统性能下降。
  • 在所有硅芯片上的Windows Server中,特别是IO密集型应用程序,如果启用了隔离Windows Server实例中不可信代码的缓解措施,性能影响更为显著。因此,仔细评估每个Windows Server实例的不可信代码风险,并在您的环境中平衡安全与性能的权衡至关重要。

对于Skylake等新CPU,Intel公司改进了禁用分支推测的指令,将其限制为间接分支,从而减少了Spectre缓解措施的整体性能影响。在旧版本的Windows(即Windows 7和Windows 8)中,由于遗留的设计决策(如所有字体渲染在内核中进行),用户与内核之间的交易较多,因此性能影响更大。我们计划在数周内公布基准性能数据。

结论

正如您所料,侧信道攻击技术有很多需要应对的地方。对于这种新的漏洞利用,需要整个行业共同努力,为客户提供最佳解决方案。确保客户可信赖的系统安全是微软的首要任务。我们还通过尽可能保持透明和基于事实,帮助您为在全球运营组织所使用的设备和系统做出最佳选择。这就是为什么我们在1月3日迅速发布更新和缓解措施,并在今天提供额外的情况说明和信息。我们将继续致力于提供可信赖的技术,尽可能优化性能,并在获得新信息时通知您。

-Terry
Windows和设备集团执行副总裁,安全开发、安全策略、行业趋势

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