AL2023 上的內核實時修補 - Amazon Linux 2023

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AL2023 上的內核實時修補

您可以使用 AL2 023 版核心即時修補程式,將安全性弱點和重大錯誤修補程式套用至執行中的 Linux 核心,而不必重新開機或中斷執行中的應用程式 此外,Kernel Live Patching 可以協助改善應用程式的可用性,同時保持基礎設施的安全和最新狀態。

AWS 為 AL2 023 發布兩種類型的內核實時補丁:

  • 安全性更新 — 包含 Linux 常見弱點和入侵程式的更新 (CVE)。這些更新通常會使用 Amazon Linux 安全建議分級評定為 important (重要)critical (嚴重)。它們通常會對應至 7 或更高的常見弱點評分系統 (CVSS) 分數。在某些情況下, AWS 可能會在指派之前提CVE供更新。在這些情況下,修補程式可能會顯示為錯誤修正。

  • 錯誤修復 — 包括與之無關的重大錯誤和穩定性問題的修復CVEs。

AWS 提供 AL2 023 核心版本的核心即時修補程式,最長可在其發行後 3 個月。經過此期間後,您必須更新至更新的核心版本,才能繼續接收核心即時修補程式。

AL2023 核心即時修補程式在現有的 AL2 023 儲存庫中以已簽署RPM套件的形式提供。修補程式可以使用現有DNF套件管理員工作流程安裝在個別執行個體上 或者,您也可以使用 AWS Systems Manager 員將它們安裝在一組代管執行個體上。

提供 AL2 023 上的核心即時修補,無需額外費用。

限制

套用核心即時修補程式時,您無法執行休眠、使用進階偵錯工具 (例如 SystemTapkprobeseBPF 為基礎的工具),或存取 Kernel Live Patching 基礎架構所使用的 ftrace 輸出檔案。

支援的組態和先決條件

執行 AL2 023 的 Amazon EC2 執行個體和現場部署虛擬機器支援核心即時修補。

若要在 AL2 023 上使用核心即時修補,您必須使用下列命令:

  • 64 位元 x86_64ARM64 架構

  • 核心版本 6.1

政策要求

若要從 AL2 023 儲存庫下載套件,亞馬遜EC2需要存取服務擁有的 Amazon S3 儲存貯體。如果您在環境中使用適用於 Amazon S3 的 Amazon 虛擬私有雲端 (VPC) 端點,請確保您的VPC端點政策允許存取這些公有儲存貯體。下表說明 Amazon 在核心即時修補時EC2可能需要存取的 Amazon S3 儲存貯體。

儲存貯體 ARN 描述

ARN: AWN:: 3:: 回購庫region-方向

包含 AL2 023 個儲存庫的 Amazon S3 貯體

使用 Kernel Live Patching

您可以透過執行個體本身的命令列,在個別執行個體啟用和使用 Kernel Live Patching。或者,您也可以使用 AWS 系統管理員,在受管執行個體群組啟用和使用 Kernel Live Patching。

下列各節說明如何透過命令列在個別執行個體上啟用並使用 Kernel Live Patching。

如需有關在代管執行個體群組上啟用和使用核心即時修補的詳細資訊,請參閱《使用AWS Systems Manager 者指南》中的在 AL2023 個執行個體上使用核心即時修補

啟用 Kernel Live Patching

根據預設,在 AL2 023 上停用「核心即時修補」。若要使用即時修補,您必須安裝核心即時修補的DNF外掛程式,並啟用即時修補功能。

啟用 Kernel Live Patching
  1. 核心即時修補程式適用於具有核心版本的 AL2 023 版本6.1。若要檢查您的核心版本,請執行下列命令。

    $ sudo dnf list kernel
  2. 安裝核心即時修補的DNF外掛程式。

    $ sudo dnf install -y kpatch-dnf
  3. 啟用內核即時修補的DNF外掛程式。

    $ sudo dnf kernel-livepatch -y auto

    此指令也會RPM從設定的儲存庫安裝最新版的核心即時修補程式。

  4. 若要確認已成功安裝核心即時修補的DNF外掛程式,請執行下列命令。

    當您啟用核心即時修補時,會自動套用空白的核心即時修補程RPM式。如果核心即時修補成功啟用,此命令會傳回包含初始空核心即時修補程式的清單RPM。

    $ sudo rpm -qa | grep kernel-livepatch dnf-plugin-kernel-livepatch-1.0-0.11.amzn2023.noarch kernel-livepatch-6.1.12-17.42-1.0-0.amzn2023.x86_64
  5. 安裝 kpatch 套件。

    $ sudo dnf install -y kpatch-runtime
  6. 如果之前已安裝 kpatch 服務,請更新此服務。

    $ sudo dnf upgrade kpatch-runtime
  7. 啟動 kpatch 服務。此服務會在初始化或開機時載入所有核心即時修補程式。

    $ sudo systemctl enable kpatch.service && sudo systemctl start kpatch.service

檢視可用的核心即時修補程式

Amazon Linux 安全性警示會發佈至資訊 Amazon Linux 安全中心。如需有關 AL2 023 安全警示的詳細資訊,包括核心即時修補程式的警示,請參閱 Amazon Linux 安全中心。核心即時修補程式的字首為 ALASLIVEPATCH。Amazon Linux 安全中心可能不會列出解決錯誤的核心即時修補程式。

您也可以使用命令列探索建議的可CVEs用核心即時修補程式。

列出所有可用的核心即時修補程式以供建議使用

使用下列 命令。

$ sudo dnf updateinfo list Last metadata expiration check: 1:06:23 ago on Mon 13 Feb 2023 09:28:19 PM UTC. ALAS2LIVEPATCH-2021-123 important/Sec. kernel-livepatch-6.1.12-17.42-1.0-4.amzn2023.x86_64 ALAS2LIVEPATCH-2022-124 important/Sec. kernel-livepatch-6.1.12-17.42-1.0-3.amzn2023.x86_64
列出所有可用的核心即時修補程式 CVEs

使用下列 命令。

$ sudo dnf updateinfo list cves Last metadata expiration check: 1:07:26 ago on Mon 13 Feb 2023 09:28:19 PM UTC. CVE-2022-0123 important/Sec. kernel-livepatch-6.1.12-17.42-1.0-4.amzn2023.x86_64 CVE-2022-3210 important/Sec. kernel-livepatch-6.1.12-17.42-1.0-3.amzn2023.x86_64

套用核心即時修補程式

您可以使用DNF套件管理員套用核心即時修補程式,方法與套用定期更新相同。核心即時修補的DNF外掛程式會管理您套用的核心即時修補程式,並且不需要重新開機。

提示

建議您定期使用 Kernel Live Patching 來更新您的核心,以確保安全與最新狀態。

您可以選擇套用特定的核心即時修補程式,或套用任何可用的核心即時修補程式,以及定期的安全性更新。

套用特定核心即時修補程式
  1. 使用 檢視可用的核心即時修補程式 中描述的其中一個命令取得核心即時修補程式版本。

  2. 為您的 AL2 023 核心套用核心即時修補程式。

    $ sudo dnf install kernel-livepatch-kernel_version-package_version.amzn2023.x86_64

    例如,下列指令會套用 AL2 023 核心版本的核心即時修補程式 6.1.12-17.42

    $ sudo dnf install kernel-livepatch-6.1.12-17.42-1.0-4.amzn2023.x86_64
套用任何可用的核心即時修補程式,以及您的定期安全性更新

使用下列命令。

$ sudo dnf upgrade --security

省略包含錯誤修正的 --security 選項。

重要
  • 套用核心即時修補程式後,核心版本不會更新。只有在執行個體重新啟動後,版本才會更新為新版本。

  • AL2023 核心會接收 3 個月的核心即時修補程式。經過此期間後,該核心版本不會發行任何新的核心即時修補程式。

  • 若要在 3 個月後繼續接收核心即時修補程式,您必須重新啟動執行個體,才能轉換到新的核心版本。執行個體會在您更新核心後的 3 個月內繼續收到核心即時修補程式。

  • 若要檢查核心版本的支援視窗,請執行下列命令:

    $ sudo dnf kernel-livepatch support

檢視套用的核心即時修補程式

檢視套用的核心即時修補程式

使用下列命令。

$ sudo kpatch list Loaded patch modules: livepatch_CVE_2022_36946 [enabled] Installed patch modules: livepatch_CVE_2022_36946 (6.1.57-29.131.amzn2023.x86_64) livepatch_CVE_2022_36946 (6.1.57-30.131.amzn2023.x86_64)

此命令會傳回已載入及已安裝的安全性更新核心即時修補程式清單。下列為範例輸出。

注意

單一核心即時修補程式可包含並安裝多個即時修補程式。

停用核心即時修補

如果您不再需要使用 Kernel Live Patching,您可以隨時停用它。

  • 停用使用 livepatches:

    1. 停用外掛程式:

      $ sudo dnf kernel-livepatch manual
    2. 停用 kpatch 服務:

      $ sudo systemctl disable --now kpatch.service
  • 完全移除 livepatch 工具:

    1. 移除外掛程式:

      $ sudo dnf remove kpatch-dnf
    2. 移除 kpatch-runtime:

      $ sudo dnf remove kpatch-runtime
    3. 移除任何已安裝的 livepatches:

      $ sudo dnf remove kernel-livepatch\*