[Centos6.5][Spectre] 变体 2 未得到修复

[Centos6.5][Spectre] 变体 2 未得到修复

我的客户操作系统(CentOS 6.5,内核版本 2.6.32-696.18.7.el6.x86_64)正在 ESXI 服务器(VMware ESXi 5.5.0 build-6480324,已应用补丁 ESXi550-201709001.zip)中运行。
我安装了https://lists.centos.org/pipermail/centos-announce/2018-January/

已安装软件包的列表如下

kernel-debug-devel-2.6.32-696.18.7.el6.i686
kernel-2.6.32-696.18.7.el6.x86_64
kernel-doc-2.6.32-696.18.7.el6.noarch
kernel-debug-2.6.32-696.18.7.el6.x86_64
kernel-devel-2.6.32-696.18.7.el6.x86_64
kernel-debug-devel-2.6.32-696.18.7.el6.x86_64
libreport-plugin-kerneloops-2.0.9-19.el6.centos.x86_64
abrt-addon-kerneloops-2.0.8-21.el6.centos.x86_64
dracut-kernel-004-409.el6_8.2.noarch
kernel-headers-2.6.32-696.18.7.el6.x86_64
kernel-firmware-2.6.32-696.18.7.el6.noarch
kernel-abi-whitelists-2.6.32-696.18.7.el6.noarch
dracut-004-409.el6_8.2.noarch
dracut-kernel-004-409.el6_8.2.noarch    
elfutils-libs-0.164-2.el6.x86_64
elfutils-0.164-2.el6.x86_64
elfutils-libelf-devel-0.164-2.el6.x86_64
elfutils-libelf-0.164-2.el6.x86_64
elfutils-devel-0.164-2.el6.x86_64
microcode_ctl-1.17-25.2.el6_9.x86_64
python-perf-2.6.32-696.18.7.el6.x86_64
perf-2.6.32-696.18.7.el6.x86_64     

但是 /sys/kernel/debug/x86/ibrs_enabled 仍然设置为 0,如果我执行

echo 2 > /sys/kernel/debug/x86/ibrs_enabled"

然后我们得到错误

“bash:echo:写入错误:没有这样的设备”。

的内容/sys/kernel/debug/x86/ibpb_enabled也是0

echo 1 > /sys/kernel/debug/x86/ibpb_enabled  

抛出同样的错误

“bash:echo:写入错误:没有这样的设备”。

我使用了一个工具https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh检测 meltdown 和 spectre 是否已修复。Spectre Variant 1 和 Meltdown 已修复,但 Variant 2 尚未修复。

"CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2'
* Mitigation 1
*   Hardware (CPU microcode) support for mitigation:  YES
*   Kernel support for IBRS:  YES
*   IBRS enabled for Kernel space:  NO
*   IBRS enabled for User space:  NO
* Mitigation 2
*   Kernel compiled with retpoline option:  NO
*   Kernel compiled with a retpoline-aware compiler:  NO
> STATUS:  VULNERABLE  (IBRS hardware + kernel support OR kernel with retpoline are needed to mitigate the vulnerability)"

答案1

但是 /sys/kernel/debug/x86/ibrs_enabled 仍然设置为 0,如果我执行echo 2 > /sys/kernel/debug/x86/ibrs_enabled,我们会收到错误

“bash:echo:写入错误:没有这样的设备”。

/sys/kernel/debug/x86/ibpb_enabled 的内容也为 0,并且 echo 1 > /sys/kernel/debug/x86/ibpb_enabled 会引发错误

“bash:echo:写入错误:没有这样的设备

在 Centos 6 上(与 CentOS 7 不同),为了能够写入那些位置,您需要挂载内核 debugfs

 mount -t debugfs nodev /sys/kernel/debug

答案2

我有几个 CentOS 6.x 和 CentOS 7 主机。

我的主机在 VMWare ESX 主机上运行,​​因此需要修补以获取最新的 CPU 功能,例如 ibrs 和 spec_ctrl。

修补主机后,所有虚拟机都需要升级到 VMWare 硬件版本 >= 9。

最后,我安装了 CentOS 提供的新内核,它利用了微码更新添加的缓解功能。

正如 VMWare 所述,您需要对每个 VM 进行电源循环,以准备好新的 CPU 功能。

在电源循环(重新启动)之前,无法执行 echo 2 > /sys/kernel/debug/x86/ibrs_enabled

电源循环后,它运行良好,我所有 CentOS VM 上的 3 种 Spectre 变体都得到了缓解。我创建了一个 cron 作业,在每次重新启动时将 ibrs_enabled 设置为 2,因为此设置不会持续,尽管如果有微码提供的新功能可用,CentOS 内核会默认将其设置为 1。

相关内容