免责声明:本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

 

概述

本文主要介绍Linux镜像如何开启或关闭Meltdown与Spectre安全漏洞补丁。

 

详细信息

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

Meltdown与Spectre(中文名称为熔断和幽灵)存在于英特尔(Intel)处理器芯片的安全漏洞,该漏洞源于芯片硬件层面的设计缺陷,可导致操作系统内核信息泄露、应用程序越权访问系统内核数据等问题。如下三种为漏洞编号请在CVE网站中搜索查看。

  • CVE-2017-5753
  • CVE-2017-5715
  • CVE-2017-5754

 

阿里云于2018年1月20日发布了安全漏洞公告,漏洞风险详情及影响范围。本文主要介绍阿里云提供的公共镜像(GuestOS)安全补丁设置方法,及如何根据具体情况配置操作系统。默认安全策略如下所示。

  • 对Meltdown漏洞默认采取PTI ON(Page Table Isolation)开启措施,打开Meltdown安全漏洞补丁。
  • 对Spectre漏洞默认采取NOIBRS(No Indirect Branch Restricted Speculation)禁止间接分支限制推测措施,结合Reptpoline和IBPB(Indirect Branch Prediction Barriers)的限制策略。

 

如何开启或者关闭Meltdown安全漏洞补丁

以下几种镜像为已经打开Meltdown安全漏洞补丁(采取PTI ON措施)的公共镜像,镜像将随着阿里云公共镜像的更新而发生变化。

  • CentOS 7.5/7.6
  • Debian 9.6/8.10
  • Red Hat 7.5/7.6
  • SUSE Linux 15
  • Ubuntu 18.04
  • CoreOS 1911.3.0
  • FreeBSD 11.2
  • OpenSUSE 15

 

如果您认为开启PTI ON对实例性能有影响,或者您有其他防护措施,可以根据以下步骤关闭PTI ON。

注:如何添加或修改内核参数,请参阅各Linux发行版对应的官方网站。

  1. 远程连接并登录Linux实例。
  2. 请根据现场情况,选择以下对应的步骤。
    • CentOS、Debian、OpenSUSE、Red Hat、SUSE Linux和Ubuntu系统,添加内核参数nopti
    • CoreOS系统,执行vi /usr/share/oem/grub.cfg命令,在grub.cfg配置文件中添加pti=off
    • FreeBSD系统,执行vi /boot/loader.conf命令,在配置文件中添加vm.pmap.pti=0
  3. 重启实例。

 

如何开启或者关闭Spectre安全漏洞补丁

阿里云目前支持IBRS和IBPB输出。公共镜像默认通过Reptpoline和IBPB (Indirect Branch Prediction Barriers)的限制策略对Spectre漏洞进行防护,同时通过noibrs参数禁用了IBPB。以下几种镜像为涉及的公共镜像,镜像将随着阿里云公共镜像的更新而发生变化。

  • CentOS 7.5/7.6
  • Debian 9.6/8.10
  • Red Hat 7.5/7.6
  • SUSE Linux 15
  • Ubuntu 18.04
  • CoreOS 1911.3.0
  • FreeBSD 11.2
  • OpenSUSE 15

 

如果您需要恢复操作系统的默认设置,或者认为当前设置对性能有影响,若您有其他防护措施需要关闭Spectre安全漏洞补丁,请按照以下步骤做相应的修改。

注:如何添加或修改内核参数,请参阅各Linux发行版对应的官方网站。

  1. 远程连接并登录Linux实例。
  2. 请根据现场情况,选择以下对应的操作。
     
    发行平台 如何恢复阿里云默认设置 如何恢复操作系统默认设置 如何关闭Spectre漏洞补丁
    CentOS 添加内核参数noibrs 删除内核参数noibrs 添加内核参数spectre_v2=off
    Red Hat
    CoreOS 运行vi /usr/oem/share/grub.cfg在grub.cfg配置文件中添加内核参数spectre_v2=off 删除内核参数spectre_v2=off
    OpenSUSE 添加内核参数spectre_v2=off
    Debian 已默认开启retpoline与ibpb防护措施 无需修改
    Ubuntu
    SUSE Linux 已默认开启retpoline防护措施
    FreeBSD 添加内核参数hw.ibrs_disable 删除内核参数hw.ibrs_disable 添加内核参数hw.ibrs_disable
    说明:内核参数 noibrs对OpenSUSE和CoreOS操作系统无效,您需要通过设置 spectre_v2=off添加防护措施。
  3. 重启实例。

 

如何检测是否开启防护

  1. 远程连接并登录Linux实例。
  2. GitHub spectre-meltdown-checker Repo获取spectre-meltdown-checker.sh检测脚本。
  3. 依次执行如下命令,添加执行权限并运行脚本。
    chmod +x spectre-meltdown-checker.sh
    sudo bash spectre-meltdown-checker.sh
  4. 根据脚本提示判断是否已开启Meltdown或Spectre防护。

 

相关文档

若您使用的是下列操作系统,可以前往官网了解更多信息。

  • Red Hat
  • SUSE Linux
  • Ubuntu

 

适用于

  • 云服务器 ECS