CVE-2021-44228 を軽減するためのアプローチ - Amazon EMR

CVE-2021-44228 を軽減するためのアプローチ

注記

Amazon EMR リリース 6.9.0 以降では、Amazon EMR によってインストールされ、Log4j ライブラリを使用するすべてのコンポーネントは Log4j バージョン 2.17.1 以降を使用します。

EC2 で実行されている Amazon EMR

CVE-2021-44228 で説明されている問題は、信頼できないソースからの入力を処理する場合の Apache Log4j コアバージョン 2.0.0 から 2.14.1 までに関係するものです。5.34.0 までの Amazon EMR 5.x リリースと Amazon EMR 6.5.0 までの EMR 6.x リリースで起動された Amazon EMR クラスターには、これらのバージョンの Apache Log4j を使用する、Apache Hive、Flink、HUDI、Presto、Trino などのオープンソースフレームワークが含まれています。ただし、多くのお客様は、Amazon EMR クラスターにインストールされているオープンソースフレームワークを使用して、信頼できないソースからの入力を処理し、ログ記録しています。

以下のセクションで説明するように、「Log4j CVE-2021-44228 用 Amazon EMR ブートストラップアクションソリューション」を適用することをお勧めします。このソリューションは CVE-2021-45046 にも対応しています。

注記

Amazon EMR のブートストラップアクションスクリプトは 2022 年 9 月 7 日に更新され、Oozie の段階的なバグ修正と改善が含まれています。Oozie を使用する場合は、以下のセクションで説明する更新された Amazon EMR ブートストラップアクションソリューションを適用する必要があります。

Amazon EMR on EKS

Amazon EMR on EKS をデフォルト設定で使用する場合、CVE-2021-44228 で説明されている問題の影響を受けず、「Log4j CVE-2021-44228 および CVE-2021-45046 用 Amazon EMR ブートストラップアクションソリューション」セクションで説明されているソリューションを適用する必要もありません。Amazon EMR on EKS の場合、Spark の Amazon EMR ランタイムは Apache Log4j バージョン 1.2.17 を使用します。Amazon EMR on EKS を使用するときは、log4j.appender コンポーネントのデフォルト設定を log に変更しないでください。

Log4j CVE-2021-44228 および CVE-2021-45046 用 Amazon EMR ブートストラップアクションソリューション

このソリューションでは、Amazon EMR クラスターに適用する必要がある Amazon EMR ブートストラップアクションを提供します。以下に、Amazon EMR のリリースごとに、ブートストラップアクションスクリプトへのリンクが示してあります。このブートストラップアクションを適用するには、次の手順を完了する必要があります。

  1. Amazon EMR リリースに対応するスクリプトを、AWS アカウントのローカル S3 バケットにコピーします。お使いの Amazon EMR リリース固有のブートストラップスクリプトを使用していることを確認してください。

  2. EMR ドキュメントに記載されている手順に従って、EMR クラスターのブートストラップアクションを設定し、S3 バケットにコピーされたスクリプトを実行します。EMR クラスターに他のブートストラップアクションが設定されている場合は、このスクリプトが、最初に実行するブートストラップアクションスクリプトとして設定されていることを確認してください。

  3. 既存の EMR クラスターを終了し、ブートストラップアクションスクリプトを使用して新しいクラスターを起動します。AWS では、本番環境に適用する前に、テスト環境でブートストラップスクリプトをテストし、アプリケーションを検証することをお勧めしています。EMR マイナーリリースの最新リビジョン (6.3.0 など) を使用していない場合は、最新リビジョン (6.3.1 など) を使用し、前述のソリューションを適用する必要があります。

CVE-2021-44228 および CVE-2021-45046 - 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-2021-45046 にも対応しています。

  • このソリューションは、私が自分の EMR クラスターにインストールしたカスタムアプリケーションを処理しますか?

    ブートストラップスクリプトは、EMR によってインストールされた JAR ファイルのみを更新します。ブートストラップアクション、クラスターに送信されたステップ、カスタム Amazon Linux AMI の使用、またはその他のメカニズムを通じて、カスタムアプリケーションと JAR ファイルを EMR クラスターにインストールして実行する場合は、アプリケーションベンダーと協力して、カスタムアプリケーションが CVE-2021-44228 の影響を受けるかどうかを判断し、適切な解決策を決定してください。

  • EMR on EKS を使用して、カスタマイズされた docker イメージをどのように処理すればよいですか?

    カスタマイズされた docker イメージを使用して Amazon EMR on EKS にカスタムアプリケーションを追加するか、カスタムアプリケーションファイルを使用して Amazon EMR on EKS にジョブを送信する場合は、アプリケーションベンダーと協力して、カスタムアプリケーションが CVE-2021-44228 の影響を受けるかどうかを判断し、適切な解決策を決定してください。

  • ブートストラップスクリプトは、CVE-2021-44228 および CVE-2021-45046 で説明されている問題を軽減するためにどのように機能しますか?

    ブートストラップスクリプトは、新しい命令セットを追加して EMR 起動命令を更新します。これらの新しい命令は、EMR によってインストールされたすべてのオープンソースフレームワークで Log4j によって使用されている JndiLookup クラスファイルを削除します。これは、Log4j の問題に対処するための Apache の勧告に従うものです。

  • Log4j バージョン 2.17.1 以降を使用する EMR の更新はありますか?

    リリース 5.34 までの EMR 5 リリースとリリース 6.5 までの EMR 6 リリースでは、Log4j の最新バージョンと互換性のない古いバージョンのオープンソースフレームワークが使用されています。これらのリリースを引き続き使用する場合は、CVE で説明されている問題を軽減するためにブートストラップアクションを適用することをお勧めします。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 の影響を受けますか?

    EMR のデフォルト設定で Amazon EMR によってインストールされたアプリケーションは、CVE-2021-45105 の影響を受けません。Amazon EMR によってインストールされたアプリケーションのうち、コンテキスト検索で Apache Log4j を使用するのは Apache Hive のみであり、不適切な入力データを処理するようなデフォルト以外のパターンレイアウトは使用していません。

  • Amazon EMR は、以下の CVE 開示のいずれかによって影響を受けますか?

    次の表には、Log4j に関連する CVE のリストと、各 CVE が Amazon EMR に影響するかどうかが記載されています。この表の情報は、Amazon EMR がデフォルト設定を使用してアプリケーションをインストールする場合にのみ適用されます。

    CVE EMR への影響 メモ
    CVE-2022-23302 No Amazon EMR は Log4j JMSSink をセットアップしません
    CVE-2022-23305 No Amazon EMR は Log4j JDBCAppender をセットアップしません
    CVE-2022-23307 No Amazon EMR は Log4j Chainsaw をセットアップしません
    CVE-2020-9493 No Amazon EMR は Log4j Chainsaw をセットアップしません
    CVE-2021-44832 No Amazon EMR は JNDI 接続文字列を使用して Log4j JDBCAppender をセットアップしません
    CVE-2021-4104 No Amazon EMR は Log4j JMSAppender を使用しません
    CVE-2020-9488 No Amazon EMR によってインストールされるアプリケーションは Log4j SMTPAppender を使用しません
    CVE-2019-17571 No Amazon EMR はクラスターへのパブリックアクセスをブロックし、SocketServer を起動しません
    CVE-2019-17531 No 最新の 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 の影響を受けません。