最近的英特尔硬件是否在硬件级别缓解了 Meltdown?

信息安全 硬件 崩溃 中央处理器 英特尔
2021-09-03 23:37:08

最近,一位安全研究人员通过 Twitter发表了以下声明(强调):

如果您运行的是 Windows,我将发布一个工具来检查您是否应用了“变体 3:流氓数据缓存加载 (CVE-2017-5754)”(又名#Meltdown 补丁),以及您是否拥有更新的英特尔硬件这似乎在硬件层面有所缓解。这使用了一个新的未记录的 API https://t.co/6sA8tehceg

他们还对此进行了扩展,说:

型号 0x36 及更高版本上有一个新的 CPUID 位和 MSR,看起来像。

我不确定我是否/如何验证这个研究人员可能的发现,所以我不知道这是否属实。

最近的英特尔硬件是否在硬件级别缓解了 Meltdown?如果是这样,如何以及如何以及在什么硬件上?

2个回答

最近的英特尔 CPU 具有 PCID。PCID 对性能损失有很大帮助,因为没有它,您必须将内核 TLB 与用户空间 TLB 完全分开。(*好吧,不完全,但大部分)。如果您有 PCID,那么硬件有一个额外的功能可以避免缓存未命中造成的性能损失,而这通常会在您这样做时发生。

为了回答您的主要问题,PCID 确实有助于解决 Meltdown 变通办法的性能问题,但它不能修复 Meltdown 本身。您仍然需要确保在 Linux 上拥有带有 KPTI 的内核,或在其他操作系统中具有类似的内核修复程序。

参考: https://en.wikipedia.org/wiki/Translation_lookaside_buffer#PCID https://groups.google.com/forum/#!topic/mechanical-sympathy/L9mHTbeQLNU https://en.wikipedia.org/wiki/ kernel_page-table_isolation

在他的 github 页面上查看了 Alex Ionescu 编写的工具源代码简而言之:此工具检查是否为您的处理器启用了分支预测。我还没有找到来源,但在我看来,可以完全禁用分支预测,从而“减轻”分支目标注入。但这似乎是仅适用于较新的英特尔处理器的选项。我稍后会回来查看是否可以找到原始来源。

不过,我可以说的是——如果上述情况属实——在硬件层面似乎有一定程度的缓解。不是因为这些处理器的架构,而是因为您可以“在硬件级别”以某种方式配置它们。我个人认为这不是一个很好的措辞。


与此同时,微软发布了他们的工具,几乎做同样的事情(检查某些配置和注册表项)。这里有一些东西,称为“对分支目标注入缓解的硬件支持”。


我浏览了 Ionescu 的推文并找到了这个

既然 MSR 和命令已记录在英特尔出色的白皮书 [...] 中,我已经更新了 SpecuCheck ,这是他的工具,以解决其一些不正确的假设(这就是您应该使用官方 PowerShell 脚本的原因!)。

  • 亚历克斯约内斯库,06.01.2018

没有更多的输出可用于硬件级别的任何缓解。仍然不确定微软工具输出的是什么。