本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
Alibaba Cloud Linux系统默认启用漏洞修复功能,但该功能可能对系统性能产生影响。您可以根据实际需要选择关闭漏洞修复。本文将介绍Alibaba Cloud Linux系统中存在的CPU漏洞、漏洞状态文件以及关闭漏洞修复的方法。
背景信息
2018年01月,Google Project Zero公布现代处理器存在安全漏洞Spectre与Meltdown。攻击者通过这些漏洞窃取高特权级的数据,因而对系统安全存在严重威胁。这两组漏洞几乎涉及当今大部分主流处理器(包括Intel、AMD、ARM等多种架构),自公开以来便引发了广泛的讨论。不可避免地,阿里云相关产品也受到这些漏洞的影响。随后,包括Linux在内的主流操作系统都对漏洞进行了相应的软件修复。自2018年01月Spectre与Meltdown漏洞首次公布以来,新变种以及新类型的漏洞不断出现,因此可以预见,在未来相当一段时间内,这些漏洞的存在将成为常态。
由于漏洞利用处理器硬件的推测执行(Speculative Execution)以及乱序执行(Out-of-order Execution)特性,而这些特性对于现代处理器的性能提升具有不可或缺的作用,因此修复漏洞会有一定的性能回退。
软件修复通常只能缓解,不能根治漏洞问题。
安全漏洞说明
下面分别介绍Alibaba Cloud Linux 2和Alibaba Cloud Linux 3系统中的安全漏洞详情,以及如何通过启动命令行(boot cmdline)关闭安全漏洞修复。
Alibaba Cloud Linux 3
x86
CVE | 漏洞状态文件所在路径① | 默认处理方式 | 关闭漏洞修复的方法 |
/sys/devices/system/cpu/vulnerabilities/spectre_v1 | 默认开启漏洞修复 | 强制开启,无法关闭 | |
/sys/devices/system/cpu/vulnerabilities/spectre_v1 | 默认开启漏洞修复 | 添加 | |
/sys/devices/system/cpu/vulnerabilities/spectre_v2 | 默认开启漏洞修复 | 添加 | |
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass | 内核根据硬件特性自动开启漏洞修复 | 添加以下任意一个参数:
| |
/sys/devices/system/cpu/vulnerabilities/meltdown | 默认开启漏洞修复 | 添加以下任意一个参数:
| |
/sys/devices/system/cpu/vulnerabilities/l1tf | 默认开启漏洞修复 | 添加 | |
/sys/devices/system/cpu/vulnerabilities/mds | 默认开启漏洞修复 | 须同时添加以下两个参数:
| |
/sys/devices/system/cpu/vulnerabilities/srbds | 默认由处理器微码修复 | 添加 | |
/sys/devices/system/cpu/vulnerabilities/mmio_stale_data | 默认开启漏洞修复 | 须同时添加以下三个参数:
| |
/sys/devices/system/cpu/vulnerabilities/tsx_async_abort | 默认开启漏洞修复 | 须同时添加以下两个参数:
| |
/sys/devices/system/cpu/vulnerabilities/retbleed | 默认开启漏洞修复 | 添加 说明 仅 | |
不涉及 | 不涉及 | 不涉及 | 添加 |
ARM64
CVE | 漏洞状态文件所在路径① | 默认处理方式 | 关闭漏洞修复的方法 |
/sys/devices/system/cpu/vulnerabilities/spectre_v1 | 默认开启漏洞修复 | 强制开启,无法关闭 | |
/sys/devices/system/cpu/vulnerabilities/spectre_v2 | 默认开启漏洞修复 | 添加 | |
/sys/devices/system/cpu/vulnerabilities/spectre_v2 | 默认开启漏洞修复 | 添加 说明 仅 | |
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass | 默认开启漏洞修复 | 添加 | |
/sys/devices/system/cpu/vulnerabilities/meltdown | 默认开启漏洞修复 | 添加 | |
不涉及 | 不涉及 | 不涉及 | 添加 |
Alibaba Cloud Linux 2
CVE | 漏洞状态文件所在路径① | 默认处理方式 | 关闭漏洞修复的方法 |
/sys/devices/system/cpu/vulnerabilities/spectre_v1 | 默认开启漏洞修复 | 强制开启,无法关闭 | |
/sys/devices/system/cpu/vulnerabilities/spectre_v1 | 默认开启漏洞修复 | nospectre_v1=off 说明 仅 | |
/sys/devices/system/cpu/vulnerabilities/spectre_v2 | 默认开启漏洞修复(spectre_v2=auto) | 添加以下任意一个参数:
说明 仅
| |
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass | 若处理器支持 | 添加以下任意一个参数:
说明 仅
| |
/sys/devices/system/cpu/vulnerabilities/meltdown | 默认开启漏洞修复 | 添加以下任意一个参数:
说明 仅
| |
/sys/devices/system/cpu/vulnerabilities/l1tf | Guest Kernel中只开启 | l1tf=off 说明 仅
| |
/sys/devices/system/cpu/vulnerabilities/mds | 默认开启漏洞修复 | mds=off 说明 仅 | |
不涉及 | 不涉及 | 不涉及 | 添加 |
①漏洞状态文件表示Alibaba Cloud Linux系统所在实例的CPU是否存在漏洞以及采取的处理措施,各状态表示:
Not affected
:表示当前CPU不存在该漏洞。Vulnerable
:表示当前CPU存在该漏洞,没有采取任何缓解措施(关闭漏洞修复)。Mitigation
:表示当前CPU存在该漏洞,采取了相应缓解措施(开启漏洞修复)。
关闭漏洞修复
以在Alibaba Cloud Linux 3系统中关闭spectre_v2漏洞修复为例。
执行以下命令,将
nospectre_v2
参数添加到默认内核的boot cmdline
中,以关闭安全漏洞修复功能。sudo grubby --update-kernel=`sudo grubby --default-kernel` --args='nospectre_v2'
执行以下命令,重启实例使配置生效。
警告重启实例将导致您的实例暂停运行,这可能引发业务中断和数据丢失。因此,建议您在执行此操作之前备份关键数据,并选择在非业务高峰期进行。
sudo reboot
执行以下命令,查看漏洞状态文件,确认漏洞修复是否关闭。
cd /sys/devices/system/cpu/vulnerabilities/ for i in `ls`;do echo -n $i": ";cat $i;done
如下图所示,
spectre_v2: Vulnerable
表示当前CPU的spectre_v2
漏洞修复已关闭。