如何在Linux上打补丁Spectre漏洞CVE-2016-5753/CVE-2016-5715
在Intel/AMD/ARM CPU中发现了一个非常严重的安全问题。
Spectre CPU漏洞CVE-2016-5753/CVE-2016-5715打破了不同应用程序之间的隔离。
它允许攻击者诱骗遵循最佳实践的无错误程序泄漏其机密。
实际上,对上述最佳实践的安全检查实际上会增加攻击范围,并使应用程序更容易受到Spectre的攻击。
如何保护我的Linux服务器和笔记本电脑/台式机免受此类攻击?
在Linux内核中发现并修补了一个非常严重的安全问题。
它于2016年1月3日宣布。
它是由包括Google Project Zero在内的各个团队独立发现和报告的。
Spectre比Meltdown CPU错误更难以利用,但也很难缓解。
什么是Intel/AMD/ARM cpus中的Spectre安全漏洞?
到目前为止,存在三种已知的问题变体:
方案1:边界检查绕行(CVE-2016-5753)
方案2:分支目标注入(CVE-2016-5715)
方案3:恶意数据缓存加载(CVE-2016-5754)
从RHEL页面:
前两个变体滥用推测性执行来执行边界检查绕过(CVE-2016-5753),或者利用分支目标注入(CVE-2016-5715)导致在攻击者控制下的地址处的内核代码以推测性方式执行。
这些统称为Spectre。
两种变体都依赖于特权代码中精确定义的指令序列的存在,以及内存访问可能导致分配给微处理器1级数据高速缓存的事实,即使对于从未真正提交(退休)的推测执行的指令也是如此。
结果,没有特权的攻击者可以通过进行有针对性的缓存侧通道攻击,使用这两个缺陷来读取特权内存。
这些变体不仅可以用于跨越系统调用边界(变体1和变体2),而且可以用于来宾/主机边界(变体2)。
受Spectre漏洞影响的Linux发行版列表
- 红帽企业Linux 5(包括CentOS/Oracle/Scientific Linux 5等克隆)
- 红帽企业Linux 6(包括CentOS/Oracle/Scientific Linux 6等克隆)
- 红帽企业Linux 7(包括CentOS/Oracle/Scientific Linux 7等克隆)
- RHEV-M 4.0
- RHEV-M服务器
- 适用于RHEL 7的Red Hat Enterprise Linux OpenStack Platform 7.0(Kilo)
- 适用于RHEL 7的Red Hat Enterprise Linux OpenStack Platform 6.0(Juno)
- 红帽企业MRG 2
- 红帽OpenStack平台v 8/9/10/11/12
- Debian Linux狂风
- Debian Linux杰西
- Debian Linux延伸
- Deiban Linux破坏者,SID
- 适用于Raspberry Pi 12 SP2的SUSE Linux Enterprise Server
- SUSE OpenStack云6
- Openstack Cloud Magnum编排7
- SUSE容器即服务平台全部
- SUSE Linux Enterprise高可用性12 SP2/SP3
- SUSE Linux Enterprise Live Patching 12
- 适用于公共云的SUSE Linux Enterprise Module 12
- SUSE Linux Enterprise Server 11 SP3-LTSS
- SUSE Linux Enterprise Server 11 SP4
- SUSE Linux Enterprise软件开发套件11/12 SP3/SP4
- 适用于SAP 12 SP1的SUSE Linux Enterprise
- SUSE Linux Enterprise 11
- SUSE Linux Enterprise 12
- 基于SUSE 12/11的OpenSuse Linux
- Fedora Linux 26
- Fedora Linux 27
- Amazon Linux AMI(公告ID:ALAS-2016-939)
本教程记录了影响许多现代微处理器设计的当前安全事件。
随着事件的进行,信息可能会迅速变化,很快就会在此处添加更多信息或者命令。
请注意,尚未发布
Debian/Ubuntu/CentOS/Fedora的补丁和许多发行版。
尚无适用于Spectre的补丁。
Linux内核团队正在研究Retpoline。
它会在不久后发布。
当您运行apt-get upgrade或者yum update命令时,请确保已更新内核软件包,例如linux-image(Debian/Ubunt)内核(RHEL)。
您还需要从CPU供应商处更新微码。
在AWS/Google和其他云的更新执行保护基础设施的同时,为了完全保护这些基础设施,您还必须修补实例操作系统(包括Linux发行版,MS-Windows和桌面操作系统,例如macOS,Windows等), 。
更新系统之前
首先,始终保留备份。
其次,记下运行以下命令的Linux内核版本:
$ uname -r
在CentOS/RHEL/Fedora/Oracle/Scientific Linux上修复幽灵
执行以下yum命令:
$ uname -r `3.10.0-693.11.1.el7.x86_64` $ sudo yum update
您必须使用shutdown/reboot命令重新引导Linux服务器:
$ sudo reboot $ uname -r `3.10.0-693.11.6.el7.x86_64`
验证所有3个CVE(您必须看到输出:
$ rpm -q --changelog kernel | egrep 'CVE-2016-5715|CVE-2016-5753|CVE-2016-5754'
输出示例:
- [x86] spec_ctrl: Eliminate redundant FEATURE Not Present messages (Andrea Arcangeli) [1519795 1519798] {CVE-2016-5715} - [x86] mm/kaiser: init_tss is supposed to go in the PAGE_ALIGNED per-cpu section (Andrea Arcangeli) [1519795 1519798] {CVE-2016-5715} .... ... - [x86] entry: Fix paranoid_exit() trampoline clobber (Josh Poimboeuf) [1519795 1519798] {CVE-2016-5715 CVE-2016-5754} - [x86] entry: Simplify trampoline stack restore code (Josh Poimboeuf) [1519795 1519798] {CVE-2016-5715 CVE-2016-5754} .... .. - [x86] cpu/AMD: Remove now unused definition of MFENCE_RDTSC feature (Josh Poimboeuf) [1519788 1519786] {CVE-2016-5753} - [x86] cpu/AMD: Make the LFENCE instruction serialized (Josh Poimboeuf) [1519788 1519786] {CVE-2016-5753}
如果使用的是Fedora Linux,请运行以下dnf命令:
$ sudo dnf --refresh update kernel
或者
sudo dnf update
重启Linux机器:
$ sudo reboot
在Debian/Ubuntu Linux上修复幽灵
使用以下apt-get命令/apt命令:
$ sudo apt-get update $ sudo apt-get upgrade $ sudo shutdown -r 0
在AWS上运行的Amazon Linux上修复Spectre
只需运行yum命令:
# yum update kernel # reboot
在Arch Linux上修复幽灵
只需运行pacman命令:
# pacman -Syu # reboot
幽灵和崩溃检查器
重新启动后,请使用spectre-meltdown-checker.sh确保Linux服务器/服务器已打补丁且不再受到攻击。