如何修复 CVE-2018-3640 [流氓系统寄存器读取] 又名“变体 3a”和 CVE-2018-3639 [推测存储绕过] 又名“变体 4”。我对他们的地位是脆弱的。我有 Intel CPU 并使用内核 4.17
我在一个网站上看到有一个名为 007 的框架可以非常轻松地修复 Spectre,但我在 github 上找不到它。
答案1
在撰写本文时,您需要最新的 CPU 微代码更新来缓解变体 3a 和 4,并且并非所有 Intel CPU 都已发布这些缓解措施。这是适用于 Linux 系统的 2018 年 7 月英特尔微代码包。
有时需要一段时间才能为 Linux 打包最新的微代码。这是一个 Github 站点,声称有各种可用的微代码版本,由互联网上的随机人员从具有最新固件的新系统中提取:使用风险自负。
微代码更新可以由系统固件(= BIOS/UEFI 更新)和/或操作系统提供。微代码更新不会持久保存在 CPU 中:每次系统重新启动时都需要重新加载。这就是为什么在系统固件中嵌入微代码更新似乎是“最佳”选择:它确保在执行任何非固件代码之前始终加载更新。
在采用 Intel 硬件的现代 Linux 发行版上,您可以下载微代码包,然后使用iucode-tool
with 选项-S -l
验证包是否包含与您的 CPU 匹配的更新微代码,然后使用 with 选项-S -K
将更新的微代码写入 下的适当位置/lib/firmware/intel-ucode
。然后只需更新您的initramfs
/initrd
文件,然后重新启动。
Spectre 的问题在于,真正的修复需要在以下级别进行更改:CPU设计原则。迄今为止发布的微代码和操作系统补丁有缓解措施,即它们不一定能解决根本问题,但会使其无法(或至少效率极低)被利用。
任何声称“轻松修复 Spectre”的“框架”对我来说听起来都像是万金油。