如何禁用页表隔离以恢复由于英特尔CPU安全漏洞修补程序而导致的性能损失?


43

由于当前的Intel CPU安全漏洞问题,预计会有一个补丁会降低系统性能。

我如何确保此补丁程序不会安装在我的Ubuntu系统上?


49
您可以通过禁用其他各种安全机制来进一步提高系统性能。不,那不是建议。
scai

11
如果性能对您很重要,我建议您自己构建最新的内核发行候选版本并测试工作负载上的性能损失。您可能会发现开销可以忽略不计或可以接受。
Jeffrey Bosboom

5
我不能夸大这想法多么可怕。
亚历山大

13
我要表示异议。就个人而言,我不建议禁用安全功能,但是,对于那些注意到性能下降的用户,考虑到利用针对此特定安全漏洞的攻击和目标计算机/数据的价值有多么困难,禁用pti可能是一个合理的选择。问题是如何禁用此选项,而不是禁用此选项。

2
我同意,PTI是一项安全功能,其成本可以忽略不计。由OP决定是否适合他们并且不在此问题的范围内。
杰克

Answers:


55

该补丁程序(也称为“页面表隔离”)将是常规内核更新(更新系统时将得到的)的一部分。但是,强烈建议保持内核为最新,因为它还会获得很多其他安全修复程序。因此,我建议您不要使用没有修复程序的过时内核。

但是,您可以通过在内核命令行(howto)中添加pti=off内核补丁添加此选项,并提供更多信息)来有效地禁用该补丁。请注意,这样做将导致系统的安全性降低。

PostgreSQL邮件列表上有更多启用和禁用PTI的信息和性能测试-TLDR对性能有10%到30%的影响(对于ProstgreSQL,也就是说,对游戏等其他东西的影响可能较小) 。

请注意,这只会影响Intel处理器,因为AMD 显然不受影响reddit),因此可以预见,默认情况下将在AMD上禁用此功能。


2
“ ...可以预见,在AMD上默认将禁用此功能。” 这是否意味着在Canonical提供的带有AMD CPU的计算机上运行的Ubuntu操作系统会有一个额外的内核版本?:)
cl-netbox '18

16
不,内核会(在启动时)检测到它正在AMD CPU上运行的天气,如果是,则禁用该修复程序。@ cl-netbox
JonasCz-恢复莫妮卡

1
根据register.co.uk/2018/01/04/intel_amd_arm_cpu_vulnerability的说法,AMD芯片至少受到一种Spectre攻击(分支目标注入)的影响,因此本周它们将获得可能会影响性能的内核更新,即使他们不受Meltdown的约束也是如此。
Dave Sherohman

1
显然,此功能是x64体系结构中的功能,而不是i386 / IA-32中的功能。因此,该补丁也不会影响32位linux(安全性/ Kconfig需要X86_64才能启用PAGE_TABLE_ISOLATION)。这带来了另一个问题。安装了32位linux的x64机器怎么样?这些会受到影响吗?如果是这样,那受BIOS限制只能运行32位指令的旧x64机器(例如基于原子的旧上网本)会怎样?他们坐鸭子吗?
thePiGrepper

2
直到我确定要进行基于JavaScript的攻击之前,我都打算使用它。
约书亚

35

更新:这个问题有两个绰号:Meltdown和Spectre。我已经用新信息更新了答案。

最初将是一个内核补丁。它将显示为更高版本。由于已linux-image-generic安装,因此将被安装。那就是那个包裹的目的。因此您可以删除linux-image-generic。这是一个可怕的灾难性想法,会让您陷入各种麻烦,但您可以做到。有可能还是遵循CPU微代码linux-firmware为in-CPU修复。那真的在英特尔身上。

您用来解决此问题的方法无关紧要。您要绕过一些您不知道该错误的真正影响或修复该错误的性能成本的内容。

  • 该错误是令人讨厌的。报告的CVE是跨进程内存读取。任何能够读取任何其他进程的内存的进程。输入,密码,全部。这也可能对沙箱也有影响。现在还处于初期,我希望人们在影响和获取方面都进一步推动这一步。

  • 性能下降可能不会像您担心的那样大。人们抛出的数字主要集中在子系统的理论性能上,或者说是最坏的情况。缓存不良的数据库将受到最严重的打击。游戏和日常事物可能不会发生明显变化。

即使现在我们仍然可以看到实际的错误是什么,现在说影响是什么还为时过早。虽然对RAM的免费读取访问很糟糕,但是还有更糟的事情。我还将测试一下该修复程序对您的实际影响(以及您所做的事情)。

不要开始使用标志预加载您的GRUB配置,也不要立即删除内核元软件包。


7
您需要做的就是添加pti=off到内核​​命令行(在GRUB中)以禁用补丁。
JonasCz-恢复莫妮卡

3
@JonasCz的评论-如果是真实的,我不知道-听起来值得单独回答,特别是如果您可以引用它进行备份。
字节指挥官

恕我直言nopti是一个更好的选择
Panther

3
@Oli我同意这个建议,并且在其他地方也给予过这样的建议。话虽如此,问题是如果需要的话,如何禁用此新安全功能,IMO,nopti是这样做的选择。

1
是的,使用虚拟机时,它使我的某些系统活动速度降低了99%。将文件从主机复制到虚拟机通常需要2-3秒钟,现在要花一分钟以上的时间。
rboy

14

尽管我不建议这样做,但是可以禁用PTI

使用nopti内核命令行参数

根据Phoronix的说法。

为此,请附加nopti到以GRUB_CMDLINE_LINUX_DEFAULTin 开头的行旁边的字符串/etc/default/grub,然后运行

sudo update-grub

然后重新启动。

有关禁用与性能相关的安全功能的内核启动参数的更多信息,请参见:Ubuntu Wiki中的Spectre&Meltdown MitigationControls


1
内核引导参数noptipti = off有什么区别
niutech '18

@niutech没有区别,为证明起见,您可以在这里
nixpower



3

最简单的方法:取消选中内核配置

->安全选项

[]在用户模式下删除内核映射

然后编译新内核


1
欢迎来到Ask Ubuntu!按照目前的形式,您的答案并不尽如人意。您能否复习一下《如何写一个好的答案》以及有关问题和答案的样式指南。- 评分
J.,斯塔恩斯

2
可悲的是,J。Starnes是对的。除了作为最后的选择,您不再编译自己的内核。
约书亚

这是对内核选项的相当微不足道的更改,但是,IMO nopti可能最好是一个更好/更容易的选择。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.