概述
本文主要介绍移动云主机CPU漏洞信息及关闭漏洞修复的方法,您可以根据实际情况选择关闭漏洞修复。
本文方法只针对BCLinux、CentOS以及RedHat操作系统。
背景信息
2018年1月,谷歌Project Zero公布了现代处理器存在安全漏洞Spectre与Meltdown。
Spectre攻击利用的是处理器的分支猜测和高速缓存技术。在执行指令的过程中,当遇到分支时,为了避免等到分支判断结束后再堵塞读取内存中的后续指令,处理器会进行分支猜测。spectre通过可利用的代码片段并对其进行训练,可以读取本来无法读取到的信息。
Meltdown是基于处理器的乱序执行和高速缓存技术,结合现代操作系统进程中内存管理技术制造的一个安全漏洞。meltdown可以绕过权限检查访问数据,所以可以“熔断”(meltdown)安全边界,因此得名。
CPU的投机执行(Speculative Execution)和乱序执行(Out-of-order Execution)是一种性能优化技术,因此修复Meltdown或Spectre漏洞后可能导致在特定工作负载下的性能下降,实际的影响程度与业务和CPU相关(比如在Intel skylake CPU上对Redis性能影响20%左右)。对此用户可以根据自己的需要关闭相关修复,以提升云主机的性能。
漏洞详情与关闭修复方法
1. 关于各漏洞的详细介绍,请单击漏洞名查看详细信息。
2. 关闭修复方法为在内核启动参数中添加参数,具体方法参考如下。
1) 在 /etc/default/grub文件 ,GRUB_CMDLINE_LINUX 行添加需要关闭的漏洞参数,此处以添加“nopti”参数为例。
# vim /etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=bel/root rd.lvm.lv=bel/swap rhgb quiet nopti "
2) 重新生成grub文件。
# grub2-mkconfig -o /boot/grub2/grub.cfg
3) 重启云主机。
3. 各项漏洞对应的关闭方法如下。
|
漏洞名称 |
漏洞配置文件所在路径 |
默认处理方式 |
关闭漏洞修复的方法 |
|
Spectre Variant 1(Bounds Check Bypass) |
/sys/devices/system/cpu /vulnerabilities/spectre_v1 |
默认开启漏洞修复 |
强制开启,无法关闭 |
|
Spectre Variant 1(swapgs) |
/sys/devices/system/cpu /vulnerabilities/spectre_v1 |
默认开启漏洞修复 |
仅3.10-1062及之后的内核版本支持关闭 nospectre_v1=off mitigations=off |
|
/sys/devices/system/cpu /vulnerabilities/spectre_v2 |
默认开启漏洞修复 (spectre_v2=auto) |
nospectre_v2 spectre_v2=off mitigations=off(仅3.10-1062及之后的内核版本支持) |
|
|
Spectre Variant 4(Speculative Store Bypass) |
/sys/devices/system/cpu /vulnerabilities/spec_store_bypass |
若处理器支持Speculative Store Bypass Disable特性,则开启修复,否则不开启任何修复 (spec_store_bypass_disable=auto) |
spec_store_bypass_disable=off nospec_store_bypass_disable mitigations=off(仅3.10-1062及之后的内核版本支持) |
|
/sys/devices/system/cpu /vulnerabilities/meltdown |
默认开启漏洞修复(pti=auto) |
pti=off nopti mitigations=off(仅3.10-1062及之后的内核版本支持) |
|
|
/sys/devices/system/cpu /vulnerabilities/l1tf |
Guest Kernel中只开启PTE Inversion修复 |
l1tf=off mitigations=off(仅3.10-1062及之后的内核版本支持 |
|
|
/sys/devices/system/cpu /vulnerabilities/mds 说明:仅3.10-1062及之后的内核版本支持 |
Guest Kernel中只开启CPU buffer clear修复 |
mds=off mitigations=off(仅3.10-1062及之后的内核版本支持) |
检测Linux操作系统安全漏洞是否修补
1. 单击spectre-meltdown-checker获取spectre-meltdown-checker.sh检测脚本。
2. 将脚本上传至云主机。
3. 在云主机执行以下命令,并根据脚本提示判断Meltdown或Spectre漏洞是否已经修复,OK为已修复漏洞,KO为未修复。
# chmod +x spectre-meltdown-checker.sh
# sudo bash spectre-meltdown-checker.sh
执行结果示例如下:
