基于YUM的安全更新操作

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

YUM(Yellowdog Updater Modified)是一个强大的包管理工具,可以用来安装、更新、删除软件包,以及管理软件包仓库,进行安全更新操作对于保持系统安全至关重要。Alibaba Cloud Linux发行版为保障系统的安全性,会紧密跟进业界与社区发现的软件问题及安全漏洞(CVE),及时更新包括内核在内的软件包、修复软件缺陷、修补安全漏洞以及增强安全功能。本文主要介绍如何使用yum查询、检查以及安装Alibaba Cloud Linux操作系统的安全更新。

前提条件

已创建了操作系统为Alibaba Cloud Linux的ECS实例。具体操作,请参见实例创建方式介绍

背景信息

关于Alibaba Cloud Linux安全更新记录,请参见Alibaba Cloud Linux 3安全公告Alibaba Cloud Linux 2安全公告

Alibaba Cloud Linux安全更新根据CVE的通用漏洞评估方法(CVSS3)的评分,将安全更新分为以下四个等级:

  • Critical:高风险,必须更新

  • Important:较高风险,强烈建议更新

  • Moderate:中等风险,推荐更新

  • Low:低风险,可选更新

查询安全更新

查询安全更新的yum命令格式如下。

yum updateinfo <command> [option]

yum updateinfo 命令用于显示与软件包更新相关的信息。包括哪些更新是安全更新、哪些是缺陷修复更新、哪些是增强功能更新。此命令通常用于获取可用更新的详细信息,包括描述更新的类型、相关的CVE标识、以及可能影响的软件包。

命令内参数的取值说明如下。

变量名称

取值

<command>

  • list:查询可用的安全更新列表。

  • info <update_id>:查询指定的安全更新详情。其中参数<update_id>的取值为Alibaba Cloud Linux安全公告中的Advisory ID。

[option]

  • --sec-severity=<SEVS>:指定安全更新级别,参数<SEVS>为指定的安全更新级别。

    重要

    您可以指定多个安全更新的级别,以半角逗号(,)分隔,严格区分大小写。

    格式说明:

    • 如果只指定一个安全更新级别进行查询,示例格式为--sec-severity=Moderate

    • 如果同时指定多个安全更新级别进行查询,示例格式为--sec-severity={Moderate,Important}

  • --cve=<CVE ID>:指定CVE ID。CVE ID可从Alibaba Cloud Linux安全公告中获取。

yum updateinfo命令相关的使用示例如下。

  • 运行以下命令,获取命令的帮助信息。

    yum updateinfo --help
  • 运行以下命令,查询当前全部可用的安全更新信息。

    yum updateinfo

    查询结果示例如下所示:

    Alibaba Cloud Linux 3

    Last metadata expiration check: 0:06:42 ago on Wed 02 Jun 2021 03:05:30 AM EDT.
    Updates Information Summary: available
        3 Security notice(s)
            2 Important Security notice(s)
            1 Moderate Security notice(s)

    Alibaba Cloud Linux 2

    Loaded plugins: fastestmirror
    Determining fastest mirrors
    base                                                                                                                                                  | 3.1 kB  00:00:00
    extras                                                                                                                                                | 2.5 kB  00:00:00
    plus                                                                                                                                                  | 2.5 kB  00:00:00
    updates                                                                                                                                               | 2.9 kB  00:00:00
    (1/6): extras/2.1903/x86_64/primary_db                                                                                                                | 149 kB  00:00:00
    (2/6): base/2.1903/x86_64/group_gz                                                                                                                    | 101 kB  00:00:00
    (3/6): updates/2.1903/x86_64/updateinfo                                                                                                               |  81 kB  00:00:00
    (4/6): plus/2.1903/x86_64/primary_db                                                                                                                  | 1.5 MB  00:00:00
    (5/6): base/2.1903/x86_64/primary_db                                                                                                                  | 4.9 MB  00:00:00
    (6/6): updates/2.1903/x86_64/primary_db                                                                                                               | 6.1 MB  00:00:00
    Updates Information Summary: updates
        17 Security notice(s)
             7 Important Security notice(s)
             6 Moderate Security notice(s)
             4 Low Security notice(s)
    updateinfo summary done
  • 运行以下命令,查询当前可用的安全更新列表。

    yum updateinfo list

    查询结果示例如下所示:

    Alibaba Cloud Linux 3

    Last metadata expiration check: 0:09:05 ago on Wed 02 Jun 2021 03:05:30 AM EDT.
    ALINUX3-SA-2021:0008 Moderate/Sec.  gnutls-3.6.14-7.1.al8.x86_64
    ALINUX3-SA-2021:0029 Important/Sec. gnutls-3.6.14-8.1.al8.x86_64
    ALINUX3-SA-2021:0028 Important/Sec. libldb-2.1.3-3.1.al8.x86_64
    ALINUX3-SA-2021:0029 Important/Sec. nettle-3.4.1-4.1.al8.x86_64

    Alibaba Cloud Linux 2

    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    ALINUX2-SA-2019:0055 Moderate/Sec.  binutils-2.27-41.base.1.al7.x86_64
    ALINUX2-SA-2019:0058 Low/Sec.       curl-7.29.0-54.1.al7.x86_64
    ALINUX2-SA-2019:0059 Low/Sec.       elfutils-default-yama-scope-0.176-2.1.al7.n
    ...
  • 运行以下命令,查询指定安全更新的内容。

    yum updateinfo info <update_id>

    使用示例如下:

    Alibaba Cloud Linux 3

    例如,<update_id>的取值为ALINUX3-SA-2021:0008,则需要运行以下命令。

    yum updateinfo info ALINUX3-SA-2021:0008

    查询结果示例如下所示:

    Last metadata expiration check: 0:11:58 ago on Wed 02 Jun 2021 03:05:30 AM EDT.
    ===============================================================================
      ALINUX3-SA-2021:0008: gnutls security and bug fix update (Moderate)
    ===============================================================================
      Update ID: ALINUX3-SA-2021:0008
           Type: security
        Updated: 1969-12-31 19:00:00
           CVEs: CVE-2020-24659
    Description: Package updates are available for Alibaba Cloud Linux 3 that fix the following vulnerabilities:
               :
               : CVE-2020-24659:
               : An issue was discovered in GnuTLS before 3.6.15. A server can trigger a NULL pointer dereference in a TLS 1.3 client if a no_renegotiation alert is sent with unexpected timing, and then an invalid second handshake occurs. The crash happens in the application's error handling path, where the gnutls_deinit function is called after detecting a handshake failure.
               :
       Severity: Moderate

    Alibaba Cloud Linux 2

    例如,<update_id>的取值为ALINUX2-SA-2020:0005,则需要运行以下命令。

    yum updateinfo info ALINUX2-SA-2020:0005

    查询结果示例如下所示:

    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    
    ===============================================================================
      ALINUX2-SA-2020:0005: nss, nss-softokn, nss-util security update (Important)
    ===============================================================================
      Update ID : ALINUX2-SA-2020:0005
        Release : Alibaba Cloud Linux 2.1903
           Type : security
         Status : stable
         Issued : 2020-01-03
           CVEs : CVE-2019-11729
                : CVE-2019-11745
    Description : Package updates are available for Alibaba Cloud Linux 2.1903 that fix
                : the following vulnerabilities:
                :
                : CVE-2019-11729:
                : Empty or malformed p256-ECDH public keys may
                : trigger a segmentation fault due values being
                : improperly sanitized before being copied into
                : memory and used. This vulnerability affects
                : Firefox ESR < 60.8, Firefox < 68, and Thunderbird
                : < 60.8.
                :
                : CVE-2019-11745:
                : When encrypting with a block cipher, if a call to
                : NSC_EncryptUpdate was made with data smaller than
                : the block size, a small out of bounds write could
                : occur. This could have caused heap corruption and
                : a potentially exploitable crash. This
                : vulnerability affects Thunderbird < 68.3, Firefox
                : ESR < 68.3, and Firefox < 71.
                :
       Severity : Important
    updateinfo info done
  • 运行以下命令,指定安全更新级别进行查询。

    yum updateinfo list --sec-severity=Moderate

    查询结果示例如下所示:

    Last metadata expiration check: 0:05:25 ago on Mon 07 Jun 2021 09:08:25 AM EDT.
    ALINUX3-SA-2021:0008 Moderate/Sec. gnutls-3.6.14-7.1.al8.x86_64

检查安全更新

Alibaba Cloud Linux操作系统中默认安装并开启了update-motd服务,当系统检测有可用的安全更新时,会在您登录ECS实例时显示安全更新的提醒。关于update-motd服务的管理操作,请参见管理update-motd服务

您也可以通过yum check-update --security命令检查系统当前可用的安全更新信息。可以在命令后追加参数--sec-severity=<SEVS>来检查指定级别的安全更新,参数<SEVS>为指定的安全更新级别。

说明

您可以指定多个安全更新的级别,以半角逗号(,)分隔,区分大小写。

检查安全更新的使用示例如下。

Alibaba Cloud Linux 3

  • 示例一:运行以下命令,检查所有安全更新信息。

    yum check-update --security

    查询结果示例如下所示:

    Last metadata expiration check: 0:08:41 ago on Wed 02 Jun 2021 05:24:55 PM CST.
    
    nss.x86_64                        3.53.1-17.1.al8                 alinux3-updates
    nss-softokn.x86_64                3.53.1-17.1.al8                 alinux3-updates
    nss-softokn-freebl.x86_64         3.53.1-17.1.al8                 alinux3-updates
    nss-sysinit.x86_64                3.53.1-17.1.al8                 alinux3-updates
    nss-util.x86_64                   3.53.1-17.1.al8                 alinux3-updates
    perl-Errno.x86_64                 1.28-417.2.al8                  alinux3-updates
    perl-IO.x86_64                    1.38-417.2.al8                  alinux3-updates
  • 示例二:运行以下命令,检查高风险和较高风险的安全更新信息。

    yum check-update --security  --sec-severity={Critical,Important}

    查询结果示例如下所示:

    Last metadata expiration check: 0:10:23 ago on Wed 02 Jun 2021 05:24:55 PM CST.
    
    gnutls.x86_64                      3.6.14-8.2.al8              alinux3-updates
    nss.x86_64                         3.53.1-17.1.al8             alinux3-updates
    nss-softokn.x86_64                 3.53.1-17.1.al8             alinux3-updates
    nss-softokn-freebl.x86_64          3.53.1-17.1.al8             alinux3-updates
    nss-sysinit.x86_64                 3.53.1-17.1.al8             alinux3-updates
    nss-util.x86_64                    3.53.1-17.1.al8             alinux3-updates
    perl-Errno.x86_64                  1.28-417.2.al8              alinux3-updates
    perl-IO.x86_64                     1.38-417.2.al8              alinux3-updates

Alibaba Cloud Linux 2

  • 示例一:运行以下命令,检查状态为available的所有安全更新信息。

    yum check-update --security |grep available

    查询结果示例如下所示:

    49 package(s) needed for security, out of 183 available
  • 示例二:运行以下命令,检查状态为available的高风险和较高风险的安全更新信息。

    yum check-update --security --secseverity=Critical,Important |grep available

    查询结果示例如下所示:

    30 package(s) needed for security, out of 183 available

安装安全更新

检查系统中有安全更新时,您可以通过yum upgrade命令指定安全更新级别或者CVE ID,安装安全更新。

警告

通过命令yum upgrade进行安装安全更新会强制删除过时的软件包(内核包除外),可能造成您的实例停止工作,导致业务中断,建议您在非业务高峰期时执行该操作。

  • 命令yum upgrade --security可以安装安全更新,可在该命令后追加参数--sec-severity=<SEVS>来安装指定级别的安全更新,<SEVS>为指定的安全更新级别。

    说明

    您可以指定多个安全更新的级别,以半角逗号(,)分隔,区分大小写。

    使用示例如下:

    运行以下命令,安装高风险和较高风险的安全更新。

    sudo yum upgrade --security --sec-severity={Critical,Important}

    安装过程中的回显信息示例如下所示:

    Alibaba Cloud Linux 3

    Last metadata expiration check: 0:06:43 ago on Wed 02 Jun 2021 03:51:48 AM EDT.
    Dependencies resolved.
    ================================================================================
     Package              Arch       Version              Repository           Size
    ================================================================================
    Upgrading:
    ...
    Transaction Summary
    ================================================================================
    Upgrade  12 Packages
    
    Total download size: 3.9 M
    Is this ok [y/N]:

    Alibaba Cloud Linux 2

    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    ...
    [snipped]
    ...
    Transaction Summary
    =============================================================================================================================================================================
    Upgrade  30 Packages (+1 Dependent package)
    
    Total download size: 91 M
    Is this ok [y/d/N]:
  • 命令yum upgrade -cve=<CVE ID>可以安装指定CVE的安全更新,参数-cve=<CVE ID>为指定的CVE ID。

    说明

    您可以指定多个CVE ID,以半角逗号(,)分隔,区分大小写。

    使用示例如下:

    Alibaba Cloud Linux 3

    运行以下命令,安装CVE-2020-24659安全更新。

    sudo yum upgrade --cve=CVE-2020-24659

    安装过程中的回显信息示例如下所示:

    Last metadata expiration check: 0:02:44 ago on Wed 02 Jun 2021 04:17:27 AM EDT.
    Dependencies resolved.
    =====================================================================================
     Package        Architecture   Version                 Repository               Size
    =====================================================================================
    Upgrading:
    ...
    Transaction Summary
    =====================================================================================
    Upgrade  1 Package
    
    Total download size: 1.0 M
    Is this ok [y/N]

    Alibaba Cloud Linux 2

    运行以下命令,安装CVE-2019-11729CVE-2019-11745安全更新。

    sudo yum upgrade --cve=CVE-2019-11729,CVE-2019-11745

    安装过程中的回显信息示例如下所示:

    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    ...
    [snipped]
    ...
    Dependencies Resolved
    
    =============================================================================================================================================================================
     Package                                         Arch                                Version                                      Repository                            Size
    =============================================================================================================================================================================
    Updating:
     nss                                             x86_64                              3.44.0-7.1.al7                               updates                              854 k
     nss-softokn                                     x86_64                              3.44.0-8.1.al7                               updates                              330 k
     nss-softokn-freebl                              x86_64                              3.44.0-8.1.al7                               updates                              225 k
     nss-sysinit                                     x86_64                              3.44.0-7.1.al7                               updates                               65 k
     nss-tools                                       x86_64                              3.44.0-7.1.al7                               updates                              528 k
     nss-util                                        x86_64                              3.44.0-4.1.al7                               updates                               79 k
    Updating for dependencies:
     nspr                                            x86_64                              4.21.0-1.1.al7                               updates                              127 k
    
    Transaction Summary
    =============================================================================================================================================================================
    Upgrade  6 Packages (+1 Dependent package)
    
    Total download size: 2.2 M
    Is this ok [y/d/N]:
    说明

    通过命令man yum可知,sudo yum upgrade命令等同于sudo yum update --obsoletes。因配置文件/etc/yum.conf中默认开启了obsoletes,所以sudo yum upgrade也等同于sudo yum update

管理update-motd服务

您可以通过systemctl命令管理update-motd服务。具体说明如下:

  • 启动update-motd服务。

    sudo systemctl start update-motd
  • 停止update-motd服务。

    sudo systemctl stop update-motd
  • 重启update-motd服务。

    sudo systemctl restart update-motd
  • 查看update-motd服务状态。

    systemctl status update-motd