緩解 CVE-2021-44228 的方法 - Amazon EMR

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

緩解 CVE-2021-44228 的方法

注意

對於 Amazon 6.9.0 版及更新EMR版本,Amazon EMR使用 Log4j 程式庫安裝的所有元件都使用 Log4j 2.17.1 版或更新版本。

在 EMR上執行的 Amazon EC2

CVE-2021-44228 中討論的問題與處理來自不受信任來源的輸入時 2.0.0 和 2.14.1 之間的 Apache Log4j 核心版本相關。使用 Amazon EMR 5.x 5.34.0 版和 Amazon EMR 6.5.0 EMR 版啟動的 Amazon EMR叢集包括開放原始碼架構,例如 Apache Hive、Flink、HUDI、Presto 和 Trino,這些架構使用這些版本的 Apache Log4j。不過,許多客戶會使用安裝在其 Amazon EMR叢集上的開放原始碼架構來處理和記錄來自不受信任來源的輸入。

建議您套用「Amazon EMR Bootstrap Action Solution for Log4j CVE-2021-44228」,如下節所述。此解決方案也會處理 CVE-2021-45046。

注意

Amazon 的引導操作指令碼EMR已於 2022 年 9 月 7 日更新,以包含 Oozie 的增量錯誤修正和改進。如果您使用 Oozie,您應該套用下一節所述的更新 Amazon EMR 引導操作解決方案。

Amazon EMR on EKS

如果您在 EMR 上使用 Amazon EKS 搭配預設組態,您不會受到 CVE-2021-44228 中所述問題的影響,而且您不需要套用 適用於 Log4j CVE-2021-44228 和 CVE-2021-45046 的 Amazon EMR bootstrap 動作解決方案一節中所述的解決方案。對於 Amazon EMR on EKS,適用於 Spark 的 Amazon EMR執行期使用 Apache Log4j 1.2.17 版。在 EMR 上使用 Amazon 時EKS,您不應將log4j.appender元件的預設設定變更為 log

適用於 Log4j CVE-2021-44228 和 CVE-2021-45046 的 Amazon EMR bootstrap 動作解決方案

此解決方案提供必須套用至 Amazon EMR叢集的 Amazon EMR引導操作。對於每個 Amazon EMR版本,您會在下面找到引導動作指令碼的連結。若要套用此引導操作,您應該完成下列步驟:

  1. 將對應至 Amazon EMR版本的指令碼複製到 中的本機 S3 儲存貯體 AWS 帳戶。請確定您使用 Amazon EMR版本專用的引導指令碼。

  2. 設定叢集的引導動作EMR,根據EMR文件中的說明執行複製到 S3 儲存貯體的指令碼。如果您為EMR叢集設定了其他引導操作,請確保此指令碼設定為要執行的第一個引導操作指令碼。

  3. 終止現有的EMR叢集,並使用引導操作指令碼啟動新的叢集。 AWS 建議您在測試環境中測試引導指令碼,並在將應用程式套用至生產環境之前驗證應用程式。如果您不是使用EMR次要版本的最新版本 (例如 6.3.0),則必須使用最新版本 (例如 6.3.1),然後套用上述解決方案。

CVE-2021-44228 和 CVE-2021-45046 - Amazon EMR版本的引導指令碼
Amazon EMR版本號碼 指令碼位置 指令碼版本日期
6.5.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.5.0-v2.sh
2022 年 3 月 24 日
6.4.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.4.0-v2.sh
2022 年 3 月 24 日
6.3.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.3.1-v2.sh
2022 年 3 月 24 日
6.2.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.2.1-v2.sh
2022 年 3 月 24 日
6.1.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.1.1-v2.sh
2021 年 12 月 14 日
6.0.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.0.1-v2.sh
2021 年 12 月 14 日
5.34.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.34.0-v2.sh
2021 年 12 月 12 日
5.33.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.33.1-v2.sh
2021 年 12 月 12 日
5.32.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.32.1-v2.sh
2021 年 12 月 13 日
5.31.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.31.1-v2.sh
2021 年 12 月 13 日
5.30.2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.30.2-v2.sh
2021 年 12 月 14 日
5.29.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.29.0-v2.sh
2021 年 12 月 14 日
5.28.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.28.1-v2.sh
2021 年 12 月 15 日
5.27.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.27.1-v2.sh
2021 年 12 月 15 日
5.26.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.26.0-v2.sh
2021 年 12 月 15 日
5.25.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.25.0-v2.sh
2021 年 12 月 15 日
5.24.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.24.1-v2.sh
2021 年 12 月 15 日
5.23.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.23.1-v2.sh
2021 年 12 月 15 日
5.22.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.22.0-v2.sh
2021 年 12 月 15 日
5.21.2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.21.2-v2.sh
2021 年 12 月 15 日
5.20.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.20.1-v2.sh
2021 年 12 月 15 日
5.19.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.19.1-v2.sh
2021 年 12 月 15 日
5.18.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.18.1-v2.sh
2021 年 12 月 15 日
5.17.2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.17.2-v2.sh
2021 年 12 月 15 日
5.16.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.16.1-v2.sh
2021 年 12 月 15 日
5.15.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.15.1-v2.sh
2021 年 12 月 15 日
5.14.2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.14.2-v2.sh
2021 年 12 月 15 日
5.13.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.13.1-v2.sh
2021 年 12 月 15 日
5.12.3
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.12.3-v2.sh
2021 年 12 月 15 日
5.11.4
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.11.4-v2.sh
2021 年 12 月 15 日
5.10.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.10.1-v2.sh
2021 年 12 月 15 日
5.9.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.9.1-v2.sh
2021 年 12 月 15 日
5.8.3
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.8.3-v2.sh
2021 年 12 月 15 日
5.7.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.7.1-v2.sh
2021 年 12 月 15 日
EMR 發行版本 截至 2021 年 12 月的最新修訂版
6.3.0 6.3.1
6.2.0 6.2.1
6.1.0 6.1.1
6.0.0 6.0.1
5.33.0 5.33.1
5.32.0 5.32.1
5.31.0 5.31.1
5.30.0 或 5.30.1 5.30.2
5.28.0 5.28.1
5.27.0 5.27.1
5.24.0 5.24.1
5.23.0 5.23.1
5.21.0 或 5.21.1 5.21.2
5.20.0 5.20.1
5.19.0 5.19.1
5.18.0 5.18.1
5.17.0 或 5.17.1 5.17.2
5.16.0 5.16.1
5.15.0 5.15.1
5.14.0 或 5.14.1 5.14.2
5.13.0 5.13.1
5.12.0、5.12.1、5.12.2 5.12.3
5.11.0、5.11.1、5.11.2、5.11.3 5.11.4
5.9.0 5.9.1
5.8.0、5.8.1、5.8.2 5.8.3
5.7.0 5.7.1

常見問答集

  • 超過 EMR 5 版的EMR版本是否受到 CVE-2021-44228 的影響

    否。第 5 EMR版之前的EMR版本使用 2.0 之前的 Log4j 版本。

  • 此解決方案是否處理 CVE-2021-45046?

    是,此解決方案也會處理 CVE-2021-45046。

  • 解決方案是否處理我在EMR叢集上安裝的自訂應用程式?

    引導指令碼只會更新由 安裝JAR的檔案EMR。如果您透過引導操作,使用自訂 Amazon Linux AMI或透過任何其他機制,在EMR叢集上安裝和執行自訂應用程式和JAR檔案,並判斷您的自訂應用程式是否受到 CVE-2021- 44228 的影響,並判斷適當的解決方案。

  • 我應該如何處理在 EMR上使用 的自訂 Docker 映像EKS?

    如果您在EMREKS使用自訂 docker 映像時將自訂應用程式新增至 Amazon,或EMR將任務提交至EKSwith自訂應用程式檔案給 Amazon,請與應用程式供應商合作,判斷您的自訂應用程式是否受到 CVE-2021-44228 影響,並判斷適當的解決方案。

  • 引導指令碼如何緩解 CVE-2021-44228 和 CVE-2021-45046 中所述的問題?

    引導指令碼會新增一組新的指示,以更新EMR啟動指示。這些新指示會刪除 所安裝之所有開放原始碼架構透過 Log4j 使用的 JndiLookup 類別檔案EMR。這符合 Apache 發布的建議,可解決 Log4j 問題。

  • 是否有使用 Log4j 2.17.1 版或更新版本EMR的 更新?

    EMR 5 版至 5.34 版,6 EMR 版至 6.5 版使用舊版開放原始碼架構,這些架構與最新版的 Log4j 不相容。如果您繼續使用這些版本,我們建議您套用引導動作,以減輕 中討論的問題CVEs。5.34 EMR 版和 6.5 EMR 版之後,使用 Log4j 1.x 和 Log4j 2.x 的應用程式將分別升級為使用 Log4j 1.2.17 (或更新版本) 和 Log4j 2.17.1 (或更新版本),並且不需要使用上述提供的引導動作來緩解CVE問題。

  • EMR版本是否受 CVE-2021-45105 影響?

    Amazon EMR使用 EMR的預設組態安裝的應用程式不受 CVE-2021-45105 影響。在 Amazon 所安裝的應用程式中EMR,只有 Apache Hive 會使用 Apache Log4j 搭配內容查詢,而且它不會以允許處理不當輸入資料的方式使用非預設模式配置。

  • Amazon 是否受到下列任何CVE揭露EMR的影響?

    下表包含與 Log4j 相關的 清單CVEs,並記下每個 是否CVE會影響 Amazon EMR。此資料表中的資訊僅適用於EMR使用預設組態由 Amazon 安裝的應用程式。

    CVE 影響 EMR 備註
    CVE-2022-23302 Amazon EMR 未設定 Log4j JMSSink
    CVE-2022-23305 Amazon EMR 未設定 Log4j JDBCAppender
    CVE-2022-23307 Amazon EMR 未設定 Log4j Chainsaw
    CVE-2020-9493 Amazon EMR 未設定 Log4j Chainsaw
    CVE-2021-44832 Amazon EMR 不會JDBCAppender使用JNDI連線字串設定 Log4j
    CVE-2021-4104 Amazon EMR 不使用 Log4j JMSAppender
    CVE-2020-9488 Amazon 安裝的應用程式EMR不使用 Log4j SMTPAppender
    CVE-2019-17571 Amazon 會EMR封鎖對叢集的公開存取,不會啟動 SocketServer
    CVE-2019-17531 我們建議您升級至最新的 Amazon EMR發行版本。Amazon EMR 5.33.0 和更新版本使用 jackson-databind 2.6.7.4 或更新版本,以及 EMR 6.1.0 和更新版本使用 jackson-databind 2.10.0 或更新版本。這些版本的 jackson-databind 不受 影響CVE。