补丁基准规则在基于 Linux 的系统上的工作原理 - AWS Systems Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

补丁基准规则在基于 Linux 的系统上的工作原理

对于 Linux 分发版,补丁基准中规则的工作方式因分发版类型的不同而有所差异。与上的修补程序更新不 Windows Server 实例上的规则,将在每个实例上进行评估,以考虑此实例上配置的存储库。Patch Manager 是 AWS Systems Manager 的一项功能,使用本机软件包管理器驱动补丁基准批准的补丁的安装。

补丁基准规则在 Amazon Linux 和 Amazon Linux 2 上的工作原理

在亚马逊 Linux 和 Amazon Linux 2 上,补丁选择过程如下:

  1. 在实例上,YUM 库访问每个配置的存储库的 updateinfo.xml 文件。

    注意

    如果没有updateinfo.xml文件时,是否安装修补程序取决于批准的补丁包括非安全性更新自动审批。例如,如果允许非安全更新,则会在自动批准时间到达时安装这些更新。

  2. updateinfo.xml 中的每个更新通知都包含几个属性,它们表示通知中的软件包的属性,如下表所述。

    更新通知属性
    属性 描述
    类型

    对应于补丁基准的PatchFilter数据类型。表示更新通知中包含的软件包的类型。

    您可以使用 AWS CLI 命令查看支持的值列表describe-patch-properties或 API 操作DescribePatchProperties。您也可以在中查看此列表。审批规则区域创建补丁基准页面编辑补丁基准页面 Systems Manager 的。

    severity

    对应于补丁基准的严重性键属性中的值PatchFilter数据类型。表示更新通知中包含的软件包的严重性。通常只适用于安全性 更新通知。

    您可以使用 AWS CLI 命令查看支持的值列表describe-patch-properties或 API 操作DescribePatchProperties。您也可以在中查看此列表。审批规则区域创建补丁基准页面编辑补丁基准页面 Systems Manager 的。

    update_id

    表示建议 ID,例如 ALAS-2017-867。建议 ID 可以在ApprovedPatches或者RejectedPatches属性。

    重点

    包含有关更新通知的其他信息,例如 CVE ID (格式:CVE-2017-1234567)。CVE ID 可用于ApprovedPatches或者RejectedPatches属性。

    updated

    对应于ApproveAfterDays在补丁基准中。表示更新通知中包含的软件包的发行日期 (更新的日期)。将当前时间戳与此属性的值比较并配合 ApproveAfterDays 可用来确定补丁是否已获得部署批准。

    注意

    有关已批准的补丁和拒绝的补丁列表的已接受格式的信息,请参阅关于已批准补丁和已拒绝补丁列表的软件包名称格式

  3. 实例的产品由 SSM 代理确定。此属性对应于补丁基准的PatchFilter数据类型。

  4. 根据以下准则为更新选择程序包。

    安全性选项 补丁选择

    AWS 提供的预定义的默认补丁基准和自定义补丁基准,其中批准的补丁包括非安全性更新Selected

    对于 updateinfo.xml 中的每个更新通知,补丁基准用作筛选器,只允许更新包含符合条件的软件包。如果应用补丁基准定义后有多个软件包适用,则使用最新版本。

    此工作流程的等效 yum 命令为:

    sudo yum update-minimal --sec-severity=critical,important --bugfix -y

    自定义修补程序基准,其中批准的补丁包括非安全性更新复选框Selected

    除了应用从updateinfo.xml,Patch Manager 会应用符合补丁筛选规则的非安全性更新。

    此工作流程的等效 yum 命令为:

    sudo yum update --security --bugfix -y

有关补丁合规性状态值的信息,请参阅 了解修补程序合规性状态值

补丁基准规则在 CentOS 上的工作原理

在 CentOS 上,补丁选择过程如下:

  1. 在实例上,YUM 库(在 CentOS 6.x 和 7.x 版本上)或 DNF 库(在 CentOS 8.x 上)访问updateinfo.xml文件中的每个已配置的回购。

    注意

    如果没有updateinfo.xml,是否安装修补程序取决于批准的补丁包括非安全性更新自动审批。例如,如果允许非安全更新,则会在自动批准时间到达时安装这些更新。

  2. updateinfo.xml 中的每个更新通知都包含几个属性,它们表示通知中的软件包的属性,如下表所述。

    更新通知属性
    属性 描述
    类型

    对应于补丁基准的PatchFilter数据类型。表示更新通知中包含的软件包的类型。

    您可以使用 AWS CLI 命令查看支持的值列表describe-patch-properties或 API 操作DescribePatchProperties。您也可以在中查看此列表。审批规则区域创建补丁基准页面编辑补丁基准页面 Systems Manager 的。

    severity

    对应于补丁基准的PatchFilter数据类型。表示更新通知中包含的软件包的严重性。通常只适用于安全性 更新通知。

    您可以使用 AWS CLI 命令查看支持的值列表describe-patch-properties或 API 操作DescribePatchProperties。您也可以在中查看此列表。审批规则区域创建补丁基准页面编辑补丁基准页面 Systems Manager 的。

    update_id

    表示建议 ID,例如 CVE-2019-17055。建议 ID 可以在ApprovedPatches或者RejectedPatches属性。

    重点

    包含有关更新通知的其他信息,例如 CVE ID(格式:CVE-2019-17055)或 Bugzilla ID(格式:1463241)。CVE ID 和 Bugzilla ID 可以在ApprovedPatches或者RejectedPatches属性。

    updated

    对应于ApproveAfterDays在补丁基准中。表示更新通知中包含的软件包的发行日期 (更新的日期)。将当前时间戳与此属性的值比较并配合 ApproveAfterDays 可用来确定补丁是否已获得部署批准。

    注意

    有关已批准的补丁和拒绝的补丁列表的已接受格式的信息,请参阅关于已批准补丁和已拒绝补丁列表的软件包名称格式

  3. 实例的产品由 SSM 代理确定。此属性对应于补丁基准的PatchFilter数据类型。

  4. 根据以下准则为更新选择程序包。

    安全性选项 补丁选择

    AWS 提供的预定义的默认补丁基准和自定义补丁基准,其中批准的补丁包括非安全性更新Selected

    对于 updateinfo.xml 中的每个更新通知,补丁基准用作筛选器,只允许更新包含符合条件的软件包。如果应用补丁基准定义后有多个软件包适用,则使用最新版本。

    对于 CentOS 6 和 7,此工作流程的等效 yum 命令为:

    sudo yum update-minimal --sec-severity=critical,important --bugfix -y

    对于 CentOS 8,此工作流程的等效 dnf 命令为:

    sudo dnf update-minimal --sec-severity=Critical --bugfix -y \ sudo dnf update-minimal --sec-severity=Important --bugfix -y

    自定义修补程序基准,其中批准的补丁包括非安全性更新复选框Selected

    除了应用从updateinfo.xml,Patch Manager 会应用符合补丁筛选规则的非安全性更新。

    对于 CentOS 6 和 7,此工作流程的等效 yum 命令为:

    sudo yum update --security --bugfix -y

    对于 CentOS 8,此工作流程的等效 dnf 命令为:

    sudo dnf update --security --bugfix -y

有关补丁合规性状态值的信息,请参阅 了解修补程序合规性状态值

补丁基准规则在 Debian 服务器上的工作原理

在 Debian 服务器上,补丁基准服务提供在Priority (优先级)部分字段。这些字段通常存在于所有 Debian 服务器软件包中。为确定补丁基准是否选择了某个补丁,Patch Manager 执行以下操作:

  1. 在 Debian 服务器系统中,相当于sudo apt-get update运行以刷新可用软件包列表。不配置存储库,从 sources 列表中配置的存储库提取数据。

    重要

    仅在 Debian 服务器 8 上:由于 Debian 服务器 8.* 操作系统引用了一个过时的软件包资料库(jessie-backports),Patch Manager 会执行以下其他步骤来确保修补操作成功:

    1. 在您的实例上,对 jessie-backports 存储库的引用将从源位置列表 (/etc/apt/sources.list.d/jessie-backports) 中注释掉。因此,不会尝试从该位置下载补丁。

    2. 将导入 Stretch 安全更新签名密钥。此密钥为 Debian Server 8.* 发行版上的更新和安装操作提供必要的权限。

    3. 将运行 apt-get 操作,以确保在修补过程开始之前已安装最新版本的 python3-apt

    4. 安装过程完成后,将恢复对 jessie-backports 存储库的引用,并从 apt 源密钥环中删除签名密钥。这样做是为了使系统配置保持修补操作之前的状态。

  2. 然后,GlobalFiltersApprovalRulesApprovedPatchesRejectedPatches列表。

    注意

    由于无法可靠地确定 Debian Server 更新程序包的发布日期,因此该操作系统不支持自动批准选项。

    但是,批准规则也取决于包括非安全更新复选框是在创建或上次更新修补程序基线时选中的。

    如果不包括非安全性更新,将应用一条隐式规则,以便只选择在安全存储库中有升级的软件包。对于每个软件包,软件包的候选版本 (通常为最新版本) 必须包含在安全存储库中。在这种情况下,对于 Debian 服务器,修补程序候选版本仅限于以下回购中包含的修补程序:

    这些回购的命名如下:

    • Debian 服务器 8:debian-security jessie

    • Debian 服务器 9:debian-security stretch

    • Debian 服务器 10:debian-security buster

    如果包含非安全更新,也会考虑来自其他资料库的修补程序。

    注意

    有关已批准的补丁和拒绝的补丁列表的已接受格式的信息,请参阅关于已批准补丁和已拒绝补丁列表的软件包名称格式

要查看 PrioritySection 字段的内容,运行以下 aptitude 命令:

注意

您需要先在 Debian 服务器系统上安装 Aptitude。

aptitude search -F '%p %P %s %t %V#' '~U'

在对此命令的响应中,按以下格式报告所有可升级软件包:

name, priority, section, archive, candidate version

有关补丁合规性状态值的信息,请参阅 了解修补程序合规性状态值

补丁基准规则在 上的工作原理 macOS

On macOS,补丁选择过程如下:

  1. 在实例上,修补程序管理器访问InstallHistory.plist文件并标识软件包名称和版本。

    有关解析过程的详细信息,请参阅macOS选项卡如何安装补丁

  2. 实例的产品由 SSM 代理确定。此属性对应于补丁基准的PatchFilter数据类型。

  3. 根据以下准则为更新选择程序包。

    安全性选项 补丁选择

    AWS 提供的预定义的默认补丁基准和自定义补丁基准,其中批准的补丁包括非安全性更新Selected

    对于每个可用的软件包更新,补丁基准用作筛选器,只允许更新包含符合条件的程序包。如果应用补丁基准定义后有多个软件包适用,则使用最新版本。

    Approved patches include non-security updates (已批准的补丁包括非安全性更新) 选中的自定义补丁基准

    除了应用通过使用InstallHistory.plist ,Patch Manager 会应用符合补丁筛选规则的非安全性更新。

有关补丁合规性状态值的信息,请参阅 了解修补程序合规性状态值

补丁基准规则在 Oracle Linux 上的工作原理

在 Oracle Linux 上,补丁选择过程如下:

  1. 在实例上,YUM 库访问每个配置的存储库的 updateinfo.xml 文件。

    注意

    这些区域有:updateinfo.xml文件可能不存在,如果存储库不是由 Oracle。 如果没有updateinfo.xml,是否安装修补程序取决于批准的补丁包括非安全性更新自动审批。例如,如果允许非安全更新,则会在自动批准时间到达时安装这些更新。

  2. updateinfo.xml 中的每个更新通知都包含几个属性,它们表示通知中的软件包的属性,如下表所述。

    更新通知属性
    属性 描述
    类型

    对应于补丁基准的PatchFilter数据类型。表示更新通知中包含的软件包的类型。

    您可以使用 AWS CLI 命令查看支持的值列表describe-patch-properties或 API 操作DescribePatchProperties。您也可以在中查看此列表。审批规则区域创建补丁基准页面编辑补丁基准页面 Systems Manager 的。

    severity

    对应于补丁基准的PatchFilter数据类型。表示更新通知中包含的软件包的严重性。通常只适用于安全性 更新通知。

    您可以使用 AWS CLI 命令查看支持的值列表describe-patch-properties或 API 操作DescribePatchProperties。您也可以在中查看此列表。审批规则区域创建补丁基准页面编辑补丁基准页面 Systems Manager 的。

    update_id

    表示建议 ID,例如 CVE-2019-17055。建议 ID 可以在ApprovedPatches或者RejectedPatches属性。

    重点

    包含有关更新通知的其他信息,例如 CVE ID(格式:CVE-2019-17055)或 Bugzilla ID(格式:1463241)。CVE ID 和 Bugzilla ID 可以在ApprovedPatches或者RejectedPatches属性。

    updated

    对应于ApproveAfterDays在补丁基准中。表示更新通知中包含的软件包的发行日期 (更新的日期)。将当前时间戳与此属性的值比较并配合 ApproveAfterDays 可用来确定补丁是否已获得部署批准。

    注意

    有关已批准的补丁和拒绝的补丁列表的已接受格式的信息,请参阅关于已批准补丁和已拒绝补丁列表的软件包名称格式

  3. 实例的产品由 SSM 代理确定。此属性对应于补丁基准的PatchFilter数据类型。

  4. 根据以下准则为更新选择程序包。

    安全性选项 补丁选择

    AWS 提供的预定义的默认补丁基准和自定义补丁基准,其中批准的补丁包括非安全性更新Selected

    对于 updateinfo.xml 中的每个更新通知,补丁基准用作筛选器,只允许更新包含符合条件的软件包。如果应用补丁基准定义后有多个软件包适用,则使用最新版本。

    对于版本 7 实例,此工作流程的等效 yum 命令为:

    sudo yum update-minimal --sec-severity=important,moderate --bugfix -y

    对于版本 8 实例,此工作流程的等效 df 命令为:

    sudo dnf upgrade-minimal --security --sec-severity Moderate --sec-severity Important

    Approved patches include non-security updates (已批准的补丁包括非安全性更新) 选中的自定义补丁基准

    除了应用从updateinfo.xml,Patch Manager 会应用符合补丁筛选规则的非安全性更新。

    对于版本 7 实例,此工作流程的等效 yum 命令为:

    sudo yum update --security --bugfix

    对于版本 8 实例,此工作流程的等效 df 命令为:

    sudo dnf upgrade --security --bugfix

有关补丁合规性状态值的信息,请参阅 了解修补程序合规性状态值

补丁基准规则在 上的工作原理 RHEL

On Red Hat Enterprise Linux (RHEL),补丁选择过程如下:

  1. 在实例上,YUM 库 (RHEL 7)或 DNF 图书馆(RHEL 8) 访问updateinfo.xml文件中的每个已配置的回购。

    注意

    如果存储库不是由 Red Hat 管理的,可能不存在 updateinfo.xml 文件。如果找不到 updateinfo.xml,则不会应用任何补丁。

  2. updateinfo.xml 中的每个更新通知都包含几个属性,它们表示通知中的软件包的属性,如下表所述。

    更新通知属性
    属性 描述
    类型

    对应于补丁基准的PatchFilter数据类型。表示更新通知中包含的软件包的类型。

    您可以使用 AWS CLI 命令查看支持的值列表describe-patch-properties或 API 操作DescribePatchProperties。您也可以在中查看此列表。审批规则区域创建补丁基准页面编辑补丁基准页面 Systems Manager 的。

    severity

    对应于补丁基准的PatchFilter数据类型。表示更新通知中包含的软件包的严重性。通常只适用于安全性 更新通知。

    您可以使用 AWS CLI 命令查看支持的值列表describe-patch-properties或 API 操作DescribePatchProperties。您也可以在中查看此列表。审批规则区域创建补丁基准页面编辑补丁基准页面 Systems Manager 的。

    update_id

    表示建议 ID,例如 RHSA-2017:0864。建议 ID 可以在ApprovedPatches或者RejectedPatches属性。

    重点

    包含有关更新通知的其他信息,例如 CVE ID (格式:CVE-2017-1000371) 或 Bugzilla ID (格式:1463241)。CVE ID 和 Bugzilla ID 可以在ApprovedPatches或者RejectedPatches属性。

    updated

    对应于ApproveAfterDays在补丁基准中。表示更新通知中包含的软件包的发行日期 (更新的日期)。将当前时间戳与此属性的值比较并配合 ApproveAfterDays 可用来确定补丁是否已获得部署批准。

    注意

    有关已批准的补丁和拒绝的补丁列表的已接受格式的信息,请参阅关于已批准补丁和已拒绝补丁列表的软件包名称格式

  3. 实例的产品由 SSM 代理确定。此属性对应于补丁基准的PatchFilter数据类型。

  4. 根据以下准则为更新选择程序包。

    安全性选项 补丁选择

    AWS 提供的预定义的默认补丁基准和自定义补丁基准,其中批准的补丁包括非安全性更新” 复选框为Selected

    对于 updateinfo.xml 中的每个更新通知,补丁基准用作筛选器,只允许更新包含符合条件的软件包。如果应用补丁基准定义后有多个软件包适用,则使用最新版本。

    对于 RHEL 7,此工作流程的等效 yum 命令为:

    sudo yum update-minimal --sec-severity=critical,important --bugfix -y

    对于 RHEL 8,此工作流程的等效 yum 命令为:

    sudo dnf update-minimal --sec-severity=Critical --bugfix -y \ sudo dnf update-minimal --sec-severity=Important --bugfix -y

    自定义修补程序基准,其中批准的补丁包括非安全性更新复选框Selected

    除了应用从updateinfo.xml,Patch Manager 会应用符合补丁筛选规则的非安全性更新。

    对于 RHEL 7,此工作流程的等效 yum 命令为:

    sudo yum update --security --bugfix

    对于 RHEL 8,此工作流程的等效 dnf 命令为:

    sudo dnf update --security --bugfix

有关补丁合规性状态值的信息,请参阅 了解修补程序合规性状态值

补丁基准规则在 上的工作原理 SUSE Linux Enterprise Server

On SLES,每个补丁包括以下表示补丁中的程序包的属性:

  • 类别:对应于Classification键属性中的补丁基准的PatchFilter数据类型。表示更新通知中包含的补丁的类型。

    您可以使用 AWS CLI 命令查看支持的值列表describe-patch-properties或 API 操作DescribePatchProperties。您也可以在中查看此列表。审批规则区域创建补丁基准页面编辑补丁基准页面 Systems Manager 的。

  • 严重性:对应于严重性关键属性修补程序基准的PatchFilter数据类型。表示补丁的严重性。

    您可以使用 AWS CLI 命令查看支持的值列表describe-patch-properties或 API 操作DescribePatchProperties。您也可以在中查看此列表。审批规则区域创建补丁基准页面或编辑补丁基准页面 Systems Manager 的。

实例的产品由 SSM 代理确定。此属性对应于产品键属性中的补丁基准的PatchFilter数据类型。

对于每个补丁,补丁基准用作筛选器,只允许更新包含符合条件的软件包。如果应用补丁基准定义后有多个软件包适用,则使用最新版本。

注意

有关已批准的补丁和拒绝的补丁列表的已接受格式的信息,请参阅关于已批准补丁和已拒绝补丁列表的软件包名称格式

Ubuntu 服务器上的补丁基准规则

在 Ubuntu Server 上,补丁基准服务提供Priority (优先级)部分字段。这些字段通常存在于所有 Ubuntu 服务器程序包中。为确定补丁基准是否选择了某个补丁,Patch Manager 执行以下操作:

  1. 在 Ubuntu 服务器系统上,相当于sudo apt-get update运行以刷新可用软件包列表。不配置存储库,从 sources 列表中配置的存储库提取数据。

  2. 然后,GlobalFiltersApprovalRulesApprovedPatchesRejectedPatches列表。

    注意

    由于无法可靠地确定 Ubuntu Server Ubuntu Server 的更新程序包的发布日期,因此操作系统不支持自动批准选项。

    但是,批准规则也取决于包括非安全更新复选框是在创建或上次更新修补程序基线时选中的。

    如果不包括非安全性更新,将应用一条隐式规则,以便只选择在安全存储库中有升级的软件包。对于每个软件包,软件包的候选版本 (通常为最新版本) 必须包含在安全存储库中。在这种情况下,对于 Ubuntu Server,修补程序候选版本仅限于包含在以下回购库中的修补程序:

    • Ubuntu Server 14.04 LTS:trusty-security

    • Ubuntu Server 16.04 LTS:xenial-security

    • Ubuntu Server 18.04 LTS:bionic-security

    • Ubuntu Server 20.04 LTS:focal-security

    • 乌班图服务器 20.10 STR:groovy-gorilla

    如果包含非安全更新,也会考虑来自其他资料库的修补程序。

    注意

    有关已批准的补丁和拒绝的补丁列表的已接受格式的信息,请参阅关于已批准补丁和已拒绝补丁列表的软件包名称格式

要查看 PrioritySection 字段的内容,运行以下 aptitude 命令:

注意

您可能需要先在 Ubuntu 服务器 16 系统上安装 Aptitude。

aptitude search -F '%p %P %s %t %V#' '~U'

在对此命令的响应中,按以下格式报告所有可升级软件包:

name, priority, section, archive, candidate version

有关补丁合规性状态值的信息,请参阅 了解修补程序合规性状态值