Pendekatan untuk mengurangi CVE-2021-44228 - Amazon EMR

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pendekatan untuk mengurangi CVE-2021-44228

catatan

Untuk Amazon EMR rilis 6.9.0 dan yang lebih baru, semua komponen yang diinstal oleh Amazon EMR yang menggunakan pustaka Log4j menggunakan Log4j versi 2.17.1 atau yang lebih baru.

Amazon EMR berjalan di EC2

Masalah yang dibahas dalam CVE-2021-44228 relevan dengan versi inti Apache Log4j antara 2.0.0 dan 2.14.1 saat memproses input dari sumber yang tidak tepercaya. Cluster Amazon EMR diluncurkan dengan Amazon EMR 5.x rilis hingga 5.34.0 dan EMR 6.x rilis hingga Amazon EMR 6.5.0 termasuk kerangka kerja sumber terbuka seperti Apache Hive, Flink, HUDI, Presto, dan Trino, yang menggunakan versi Apache Log4j ini. Namun, banyak pelanggan menggunakan kerangka kerja sumber terbuka yang diinstal pada kluster EMR Amazon mereka untuk memproses dan mencatat input dari sumber yang tidak tepercaya.

Kami menyarankan Anda menerapkan “Amazon EMR Bootstrap Action Solution for Log4j CVE-2021-44228" seperti yang dijelaskan di bagian berikut. Solusi ini juga membahas CVE-2021-45046.

catatan

Skrip tindakan bootstrap untuk Amazon EMR diperbarui pada 7 September 2022 untuk menyertakan perbaikan bug tambahan dan peningkatan untuk Oozie. Jika Anda menggunakan Oozie, Anda harus menerapkan solusi tindakan bootstrap Amazon EMR yang diperbarui yang dijelaskan di bagian berikut.

Amazon EMR di EKS

Jika Anda menggunakan Amazon EMR di EKS dengan konfigurasi default, Anda tidak terpengaruh oleh masalah yang dijelaskan dalam CVE-2021-44228, dan Anda tidak perlu menerapkan solusi yang dijelaskan di bagian. Solusi aksi bootstrap Amazon EMR untuk Log4j CVE-2021-44228 & CVE-2021-45046 Untuk Amazon EMR di EKS, runtime Amazon EMR untuk Spark menggunakan Apache Log4j versi 1.2.17. Saat menggunakan Amazon EMR di EKS, Anda tidak boleh mengubah pengaturan default untuk log4j.appender komponen menjadi. log

Solusi aksi bootstrap Amazon EMR untuk Log4j CVE-2021-44228 & CVE-2021-45046

Solusi ini menyediakan tindakan bootstrap Amazon EMR yang harus diterapkan pada cluster EMR Amazon Anda. Untuk setiap rilis Amazon EMR, Anda akan menemukan tautan ke skrip tindakan bootstrap di bawah ini. Untuk menerapkan tindakan bootstrap ini, Anda harus menyelesaikan langkah-langkah berikut:

  1. Salin skrip yang sesuai dengan rilis EMR Amazon Anda ke bucket S3 lokal di ember Anda. Akun AWS Pastikan bahwa Anda menggunakan skrip bootstrap yang khusus untuk rilis EMR Amazon Anda.

  2. Siapkan tindakan bootstrap untuk kluster EMR Anda untuk menjalankan skrip yang disalin ke bucket S3 Anda sesuai instruksi yang dijelaskan dalam dokumentasi EMR. Jika Anda memiliki tindakan bootstrap lain yang dikonfigurasi untuk kluster EMR Anda, pastikan bahwa skrip ini diatur sebagai skrip tindakan bootstrap pertama yang dijalankan.

  3. Hentikan cluster EMR yang ada, dan luncurkan cluster baru dengan skrip aksi bootstrap. AWS merekomendasikan agar Anda menguji skrip bootstrap di lingkungan pengujian Anda dan memvalidasi aplikasi Anda sebelum menerapkannya ke lingkungan produksi Anda. Jika Anda tidak menggunakan revisi terbaru untuk rilis minor EMR (misalnya, 6.3.0), Anda harus menggunakan revisi terbaru (misalnya, 6.3.1), dan kemudian menerapkan solusi yang dibahas di atas.

CVE-2021-44228 & CVE-2021-45046 - Skrip Bootstrap untuk Rilis EMR Amazon
Nomor rilis Amazon EMR Lokasi skrip Tanggal rilis skrip
6.5.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.5.0-v2.sh
24 Maret 2022
6.4.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.4.0-v2.sh
24 Maret 2022
6.3.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.3.1-v2.sh
24 Maret 2022
6.2.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.2.1-v2.sh
24 Maret 2022
6.1.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.1.1-v2.sh
Desember 14, 2021
6.0.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.0.1-v2.sh
Desember 14, 2021
5.34.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.34.0-v2.sh
Desember 12, 2021
5.33.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.33.1-v2.sh
Desember 12, 2021
5.32.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.32.1-v2.sh
13 Desember 2021
5.31.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.31.1-v2.sh
13 Desember 2021
5.30.2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.30.2-v2.sh
Desember 14, 2021
5.29.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.29.0-v2.sh
Desember 14, 2021
5.28.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.28.1-v2.sh
Desember 15, 2021
5.27.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.27.1-v2.sh
Desember 15, 2021
5.26.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.26.0-v2.sh
Desember 15, 2021
5.25.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.25.0-v2.sh
Desember 15, 2021
5.24.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.24.1-v2.sh
Desember 15, 2021
5.23.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.23.1-v2.sh
Desember 15, 2021
5.22.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.22.0-v2.sh
Desember 15, 2021
5.21.2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.21.2-v2.sh
Desember 15, 2021
5.20.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.20.1-v2.sh
Desember 15, 2021
5.19.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.19.1-v2.sh
Desember 15, 2021
5.18.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.18.1-v2.sh
Desember 15, 2021
5.17.2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.17.2-v2.sh
Desember 15, 2021
5.16.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.16.1-v2.sh
Desember 15, 2021
5.15.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.15.1-v2.sh
Desember 15, 2021
5.14.2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.14.2-v2.sh
Desember 15, 2021
5.13.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.13.1-v2.sh
Desember 15, 2021
5.12.3
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.12.3-v2.sh
Desember 15, 2021
5.11.4
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.11.4-v2.sh
Desember 15, 2021
5.10.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.10.1-v2.sh
Desember 15, 2021
5.9.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.9.1-v2.sh
Desember 15, 2021
5.8.3
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.8.3-v2.sh
Desember 15, 2021
5.7.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.7.1-v2.sh
Desember 15, 2021
Versi rilis EMR Revisi terbaru per Desember 2021
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 atau 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 atau 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 atau 5.17.1 5.17.2
5.16.0 5.16.1
5.15.0 5.15.1
5.14.0 atau 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

Pertanyaan umum

  • Apakah rilis EMR yang lebih tua dari EMR 5 dipengaruhi oleh CVE-2021-44228?

    Tidak. Rilis EMR sebelum rilis EMR 5 menggunakan versi Log4j yang lebih tua dari 2.0.

  • Apakah solusi ini membahas CVE-2021-45046?

    Ya, solusi ini juga membahas CVE-2021-45046.

  • Apakah solusinya menangani aplikasi khusus yang saya instal di kluster EMR saya?

    Skrip bootstrap hanya memperbarui file JAR yang diinstal oleh EMR. Jika Anda menginstal dan menjalankan aplikasi khusus dan file JAR di kluster EMR Anda melalui tindakan bootstrap, sebagai langkah yang dikirimkan ke cluster Anda, dengan menggunakan Amazon Linux AMI khusus, atau melalui mekanisme lain, silakan bekerja dengan vendor aplikasi Anda untuk menentukan apakah aplikasi kustom Anda dipengaruhi oleh CVE-2021- 44228, dan tentukan solusi yang tepat.

  • Bagaimana saya harus menangani gambar docker yang disesuaikan dengan EMR di EKS?

    Jika Anda menambahkan aplikasi khusus ke Amazon EMR di EKS menggunakan gambar docker yang disesuaikan atau mengirimkan pekerjaan ke Amazon EMR di EKSWith file aplikasi khusus, silakan bekerja dengan vendor aplikasi untuk menentukan apakah aplikasi khusus Anda dipengaruhi oleh CVE-2021-44228, dan tentukan solusi yang tepat.

  • Bagaimana cara kerja skrip bootstrap untuk mengurangi masalah yang dijelaskan dalam CVE-2021-44228 dan CVE-2021-45046?

    Skrip bootstrap memperbarui instruksi startup EMR dengan menambahkan satu set instruksi baru. Instruksi baru ini menghapus file JndiLookup kelas yang digunakan melalui Log4j oleh semua kerangka kerja open source yang diinstal oleh EMR. Ini mengikuti rekomendasi yang diterbitkan oleh Apache untuk mengatasi masalah Log4j.

  • Apakah ada pembaruan untuk EMR yang menggunakan Log4j versi 2.17.1 atau lebih tinggi?

    EMR 5 rilis hingga rilis 5.34 dan EMR 6 rilis hingga rilis 6.5 menggunakan versi kerangka kerja open source yang lebih lama yang tidak kompatibel dengan versi terbaru Log4j. Jika Anda terus menggunakan rilis ini, kami sarankan Anda menerapkan tindakan bootstrap untuk mengurangi masalah yang dibahas dalam CVE. Setelah EMR 5 rilis 5.34 dan EMR 6 rilis 6.5, aplikasi yang menggunakan Log4j 1.x dan Log4j 2.x akan ditingkatkan untuk menggunakan Log4j 1.2.17 (atau lebih tinggi) dan Log4j 2.17.1 (atau lebih tinggi) masing-masing, dan tidak akan memerlukan penggunaan tindakan bootstrap yang disediakan di atas untuk mengurangi masalah CVE.

  • Apakah rilis EMR dipengaruhi oleh CVE-2021-45105?

    Aplikasi yang diinstal oleh Amazon EMR dengan konfigurasi default EMR tidak terpengaruh oleh CVE-2021-45105. Di antara aplikasi yang diinstal oleh Amazon EMR, hanya Apache Hive yang menggunakan Apache Log4j dengan pencarian konteks, dan tidak menggunakan tata letak pola non-default dengan cara yang memungkinkan data input yang tidak pantas diproses.

  • Apakah Amazon EMR dipengaruhi oleh salah satu pengungkapan CVE berikut?

    Tabel berikut berisi daftar CVE yang terkait dengan Log4j dan mencatat apakah setiap CVE berdampak pada Amazon EMR. Informasi dalam tabel ini hanya berlaku ketika aplikasi diinstal oleh Amazon EMR menggunakan konfigurasi default.

    CVE Dampak EMR Catatan
    CVE-2022-23302 Tidak Amazon EMR tidak mengatur Log4j JMSsink
    CVE-2022-23305 Tidak Amazon EMR tidak mengatur Log4j JDBCappender
    CVE-2022-23307 Tidak Amazon EMR tidak mengatur Log4j Chainsaw
    CVE-2020-9493 Tidak Amazon EMR tidak mengatur Log4j Chainsaw
    CVE-2021-44832 Tidak Amazon EMR tidak mengatur Log4j JDbCappender dengan string koneksi JNDI
    CVE-2021-4104 Tidak Amazon EMR tidak menggunakan Log4j JMSappender
    CVE-2020-9488 Tidak Aplikasi yang diinstal oleh Amazon EMR tidak menggunakan Log4j SMTPAppender
    CVE-2019-17571 Tidak Amazon EMR memblokir akses publik ke cluster dan tidak diluncurkan SocketServer
    CVE-2019-17531 Tidak Kami menyarankan Anda meningkatkan ke versi rilis Amazon EMR terbaru. Amazon EMR 5.33.0 dan yang lebih baru menggunakan jackson-databind 2.6.7.4 atau yang lebih baru, dan EMR 6.1.0 dan yang lebih baru menggunakan jackson-databind 2.10.0 atau yang lebih baru. Versi jackson-databind ini tidak terpengaruh oleh CVE.