如何在 Linux 中检查 Meltdown 和 Spectre 漏洞并修补它们

本周早些时候,谷歌零项目的一组研究人员已经 发现 关于 崩溃幽灵 影响许多现代处理器的漏洞,包括英特尔、AMD 和 ARM 的某些处理器。 尽管 AMD 声称其处理器受这些漏洞影响的可能性为零,但研究人员表示,Meltdown 漏洞是 Intel 处理器独有的,而 Spectre 漏洞可能会影响部分 Intel、AMD 和 ARM 处理器。

根据 有线, “英特尔、AMD 和 ARM 制造商正在与提供处理器的硬件公司和软件公司(如 Apple、Google、Microsoft、Linux 基金会)密切合作,以发布针对这些安全漏洞的补丁程序。我们不能保证这些补丁程序会完全解决了这些问题。但是,至少,比最初看起来要好”。

内容

  1. 你现在能做什么?
  2. 检查 Meltdown 和 Spectre 漏洞
    1. 补丁崩溃和幽灵漏洞
    2. 帮助我们帮助您:

你现在能做什么?

格雷格·克罗-哈特曼 已经宣布发布带有崩溃和 Spectre 修复程序的 4.14.12、4.9.75 和 4.4.110 稳定内核。 因此,如果您使用的是 Intel 或 AMD 或 ARM 处理器,强烈建议检查您的 Linux 系统是否受到 Meltdown 和 Spectre 漏洞的影响,并立即通过更新最新的 Linux 内核对其进行修补。 如果您的 Linux 发行版还没有最新的 Linux 内核更新,强烈建议您立即更改您的 Linux 发行版。

检查 Meltdown 和 Spectre 漏洞

在 Arch Linux 及其衍生版本上,您可以使用以下两个命令来确定您的系统是否受到崩溃/幽灵漏洞的影响。

$ zgrep CONFIG_PAGE_TABLE_ISOLATION /proc/config.gz
$ dmesg | grep iso

如果上述命令返回 NOTHING,则您的系统尚未修补。 因此,您需要使用以下命令更新基于 Arch 的系统:

$ sudo pacman -Syu

完全更新 Arch 系统后,重新启动并再次运行上述命令。 如果您的系统已打补丁,您应该会看到第一个命令的以下输出:

CONFIG_PAGE_TABLE_ISOLATION=y

您将获得第二个命令的输出。

[ 0.000000] Kernel/User page tables isolation: enabled

我已经更新了 Arch 系统中的内核。 正如您在上面的输出中看到的,我的 Linux 内核是 4.14.12-1-ARCH,并且已经打了补丁。 如果你还没有更新你的 Arch 系统,你将不会得到任何输出。

上述命令在 Ubuntu 中可能不起作用。 谢天谢地,一些好心人 阿斯库本图 论坛已经发布了一种解决方法,以查找您的 Ubuntu 系统是否使用以下任何命令进行了修补。

$ grep CONFIG_PAGE_TABLE_ISOLATION=y /boot/config-`uname -r` && echo "patched :)" || echo "unpatched :("
$ grep cpu_insecure /proc/cpuinfo && echo "patched :)" || echo "unpatched :("
$ dmesg | grep "Kernel/User page tables isolation: enabled" && echo "patched :)" || echo "unpatched :("

如果输出是 未打补丁,您的系统尚未修补。 立即更新内核以应用补丁。

我仍然在我的 Ubuntu 系统中使用 4.4.0-104-generic,所以我在所有命令的结果中都得到了“未修补”。