转自 Solidot

Google Project Zero 和奥地利格拉茨技术大学等机构的研究人员披露了三个处理器高危漏洞,分别编号为 CVE-2017-5753(Variant 1)、CVE-2017-5715(Variant 2)和 CVE-2017-5754(Variant 3),前两个漏洞被称为 Spectre,后一个漏洞被称为 Meltdown,Spectre Variant 1 影响 AMD,英特尔和 ARM 处理器,而所有三个漏洞都影响英特尔处理器,研究人员已经开发出了概念验证的漏洞利用。AMD 和 ARM 已经发表声明称漏洞可以通过软件修正,对性能影响不大。而英特尔处理器的软件修正则被认为存在显著的性能影响。Meltdown 破坏了用户应用程序和操作系统直接的最基本隔离,允许一个程序访问内存,获取其它应用程序和操作系统的秘密;Spectre 破坏了不同应用程序之间的隔离,允许攻击者诱骗没有错误的程序泄漏秘密。

万恶的牙膏厂,这应该是迄今为止最严重的芯片漏洞,尽管可以通过补丁修复漏洞(包括 Intel 向内核提交的),但对性能有一定的影响。另外若要修复 Meltdown,需要给操作系统打补丁,Linux 的补丁是 Kernel Page Table Isolation (KPTI),根据这个 commit,所有 Intel 的
x86 CPU 都会受到补丁的影响,而 AMD 则不受影响。


首先确认 CPU:

$ lscpu

或:

$ cat /proc/cpuinfo

Vendor IDmodel name 为牙膏厂则为不幸中枪。

检查内核版本和当前操作系统是 64 位还是 32 位:

$ uname -msr

以 Ubuntu 16.04 为例,此时最新的 stable 内核版本为 4.14.15。下载最新稳定版内核

$ sudo apt update
$ sudo apt upgrade -y
$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.14.15/linux-headers-4.14.15-041415_4.14.15-041415.201801231530_all.deb
$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.14.15/linux-headers-4.14.15-041415-generic_4.14.15-041415.201801231530_amd64.deb
$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.14.15/linux-image-4.14.15-041415-generic_4.14.15-041415.201801231530_amd64.deb

以上是 64 位系统的,32 位系统应下载以 i386 结尾的。

安装并更新 grub:

$ sudo dpkg -i *.deb
$ sudo update-grub

重启:

$ sudo systemctl reboot

检查内核版本是否正确:

$ uname -r

至此完成,可以选择性地删除旧版本的内核。这里使用 byobu 这个工具,运行后会提醒你即将删除的内核版本,防止删错。

$ sudo apt install byobu
$ sudo dpkg -l | grep linux-image
$ sudo purge-old-kernels

End.