緩解措施CVE的方法 - Amazon EMR

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

緩解措施CVE的方法

注意

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

Amazon EMR 運行 EC2

CVE-2021-44228 中討論的問題與處理來自不受信任來源的輸入時,與 2.0.0 和 2.14.1 之間的 Apache Log4j 核心版本有關。使用 Amazon EMR 5.x 推出的 Amazon EMR 集群發布高達 5.34.0 和 EMR 6.x 版本,最高可達 Amazon EMR 6.5.0,包括開源框架,例如阿帕奇蜂巢,Flink,普雷斯托和崔諾HUDI,它們使用這些版本的 Apache Log4j。不過,許多客戶會使用 Amazon EMR 叢集上安裝的開放原始碼架構來處理和記錄來自不受信任來源的輸入。

我們建議您套用「Log4j CVE -2021-44228 的 Amazon EMR 啟動程序動作解決方案」,如下一節所述。該解決方案還解決了 CVE -2021-45046。

注意

Amazon 的引導動作腳本EMR已於 2022 年 9 月 7 日更新,包括 Ooozie 的增量錯誤修復和改進功能。如果您使用 Oozie,則應套用下一節所述的更新後的 Amazon EMR 啟動程序動作解決方案。

Amazon EMR EKS

如果您EMR在EKS預設組態下使用 Amazon,則不會受到 CVE -2021-44228 中所述問題的影響,而且您不必套用本節中所述的解決方案。Amazon EMR 引導動作解決CVE方案 CVE對於 Amazon EMR 上EKS,星火 Amazon EMR 運行時使用阿帕奇 Log4j 版本 1.2.17。EMR在上使用 Amazon 時,EKS您不應將log4j.appender元件的預設設定變更為log

Amazon EMR 引導動作解決CVE方案 CVE

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

  1. 將與 Amazon EMR 版本對應的指令碼複製到 AWS 帳戶. 請確定您使用的是 Amazon EMR 版本專用的啟動程序指令碼。

  2. 根據EMR文件中所述的指示,為EMR叢集設定啟動程序動作,以執行複製到 S3 儲存貯體的指令碼。如果您為EMR叢集設定了其他啟動程序動作,請確定此指令碼已設定為要執行的第一個啟動程序動作指令碼。

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

CVE-2021-45046-適用於 Amazon CVE 版本的引導腳本 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 的影響

    沒有 EMR發行版本 5 之前的EMR發行版本會使用 2.0 以前的 Log4j 版本。

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

    是的,該解決方案還解決了 CVE-20 21-45046。

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

    啟動程序指令碼只會更新由安裝的JAR檔案EMR。如果您透過啟動程序動作、提交至EMR叢集的步驟、使用自訂 Amazon Linux AMI 或任何其他機制在叢集上安裝和執行自訂應用程式和JAR檔案,請與您的應用程式廠商合作,判斷您的自訂應用程式是否受到 CVE -2021-44228 的影響,並決定適當的解決方案。

  • 我應該如何處理自定義的碼頭EMR圖EKS像

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

  • 引導程序腳本如何工作來緩解 CVE -2021-44228 和 -2021-45046 中描述的問題?CVE

    EMR啟動程序指令碼會透過新增一組新的指示來更新啟動指示。這些新指令刪除由安裝的所有開源框架通過 Log4j 使用的 JndiLookup 類文件EMR。這符合 Apache 發布的建議,可解決 Log4j 問題。

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

    EMR5 發行版本高達 5.34 和 EMR 6 版本到 6.5 版本使用舊版本的開源框架,這些框架與最新版本的 Log4j 不兼容。如果您繼續使用這些發行版本,建議您套用啟動程序動作來緩解CVEs. 在 EMR 5 版 5.34 和 EMR 6 版本 6.5 之後,使用 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 是否EMR受到以下任何CVE披露的影響?

    下表包含了相關的 Log4j CVEs 的列表,並指出是否每個CVE影響 Amazon EMR。此表格中的資訊僅適用於 Amazon EMR 使用預設組態安裝應用程式時。

    CVE 影響 EMR 備註
    CVE-2022-23302 Amazon EMR 沒有設置 Log4j JMSSink
    CVE-2022-23305 Amazon EMR 沒有設置 Log4j JDBCAppender
    CVE-2022-23307 Amazon EMR 沒有設置 Log4j 的電鋸
    CVE-2020-9493 Amazon EMR 沒有設置 Log4j 的電鋸
    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 或更高版本,6.1.0 及更高版本使用 jackson-databind 定 2.10.0 或更高版本。EMR這些版本的 jackson-databind 不受. CVE