All Products
Search
Document Center

E-MapReduce:Buletin keamanan | Kerentanan eksekusi kode jarak jauh Apache Log4j2

Last Updated:Aug 21, 2026

Alibaba Cloud baru-baru ini menemukan kerentanan eksekusi kode jarak jauh (RCE) pada komponen Apache Log4j2 dan telah melaporkannya kepada Apache Software Foundation. Topik ini menjelaskan dampak kerentanan tersebut serta rencana pemulihan yang sesuai.

Dampak

Pada E-MapReduce (EMR), komponen yang terdampak mencakup Hive, Presto, Impala, Druid, Flink, Solr, Ranger, Storm, Oozie, Spark, dan Zeppelin. Spark dan Zeppelin terdampak karena bergantung pada komponen Hive.

Rencana pemulihan

Anda harus mengganti file JAR Log4j2 yang rentan di kluster EMR dengan versi 2.17.2 dan memodifikasi konfigurasi Log4j untuk Hive dan Spark guna menonaktifkan fitur JNDI Lookup dengan mengatur log4j2.formatMsgNoLookups=true. Untuk petunjuk lengkap, lihat Prosedur pemulihan.

Rencana pemulihan ini memiliki karakteristik berikut:

  • Berlaku untuk EMR-3.38.2 dan versi sebelumnya, EMR-5.4.2 dan versi sebelumnya, serta semua versi EMR 4.x. Kerentanan ini telah diperbaiki pada EMR-3.38.3 dan versi setelahnya serta EMR-5.4.3 dan versi setelahnya. Tidak diperlukan tindakan apa pun untuk versi-versi tersebut.

  • Anda harus me-restart komponen yang bersangkutan setelah menerapkan rencana ini.

  • Skrip pemulihan tidak berdampak pada layanan online Anda. Namun, karena perbaikan hanya berlaku setelah komponen direstart, kami menyarankan agar Anda melakukan prosedur ini pada jam sepi.

Prosedur pemulihan

Kluster EMR

  1. Klik patches-log4j.tar.gz untuk mengunduh paket patch.

  2. Login ke node master kluster EMR, lalu letakkan paket patch yang diunduh pada Langkah 1 di direktori HOME pengguna emr-user atau hadoop.

  3. Ekstrak paket patch dan jalankan perintah berikut sebagai pengguna emr-user atau hadoop.

    • Untuk kluster skenario DataLake, Dataflow, OLAP, DataServing, dan kustom:

      su emr-user
      tar zxf patches-log4j.tar.gz
    • Untuk kluster lainnya:

      su hadoop
      tar zxf patches-log4j.tar.gz
  4. Edit file hosts dalam paket patch untuk menambahkan hostname semua node dalam kluster, seperti emr-header-1 atau emr-worker-1. Masukkan satu hostname per baris.

    cd patches
    vim hosts

    Berikut contoh isi file hosts:

    emr-header-1
    emr-worker-1
    emr-worker-2
    Penting

    Untuk kluster yang menjalankan EMR 3.41 atau versi setelahnya pada seri EMR 3.x, atau EMR 5.7.0 atau versi setelahnya pada seri EMR 5.x, format hostname telah berubah. Berikut contoh isi file hosts:

    core-1-1
    core-1-2
    task-1-1
    task-1-2
  5. Jalankan skrip fix.sh untuk menerapkan perbaikan.

    ./fix.sh

    Setelah skrip dijalankan, pesan berikut akan dikembalikan:

    ### NOTICE: YOU CAN RESTORE THIS PATCH BY RUN RESTORE SCRIPT ABOVE
    $> sh ./restore.sh 20211213001755
    ### DONE

    Untuk mengembalikan perbaikan, jalankan perintah berikut:

    ./restore.sh 20211213001755
    Catatan

    Untuk pekerjaan YARN yang sedang berjalan (aplikasi), seperti pekerjaan Spark Streaming atau Flink, Anda harus menghentikan pekerjaan tersebut sebelum melakukan rolling restart NodeManager YARN.

  6. Restart layanan.

    Untuk sepenuhnya memulihkan kerentanan, Anda harus me-restart komponen yang terdampak, termasuk Hive, HDFS, Presto, Impala, Druid, Flink, Solr, Ranger, Storm, Oozie, Spark, dan Zeppelin.

    Untuk me-restart komponen Hive, buka halaman layanan Hive di Konsol EMR dan pilih More > Restart di pojok kanan atas.

Kluster gateway

Prosedur pemulihan ini mengandalkan akses SSH tanpa kata sandi. Untuk kluster gateway, Anda harus mengunggah secara manual paket patch ke setiap node dalam kluster dan mengikuti prosedur untuk kluster EMR guna menerapkan perbaikan pada setiap node.

Penting
  • Dalam file hosts pada paket patch, Anda hanya perlu memasukkan hostname dari node saat ini.

  • Kluster gateway tidak menjalankan proses komponen apa pun. Oleh karena itu, Anda tidak perlu me-restart layanan apa pun setelah mengunggah paket patch.

Kluster baru dan scale-out

Anda dapat menambahkan tindakan bootstrap di Konsol EMR untuk secara otomatis memperbaiki kerentanan saat membuat kluster EMR atau memperluas kapasitas kluster yang sudah ada. Ikuti langkah-langkah berikut:

  1. Klik patches-log4j.tar.gz dan bootstrap_log4j.sh untuk mengunduh paket patch dan skrip bootstrap, lalu unggah ke Object Storage Service (OSS).

    Misalnya, path OSS file tersebut adalah oss://<bucket-name>/path/to/patches-log4j.tar.gz dan oss://<bucket-name>/path/to/bootstrap_log4j.sh.

  2. Tambahkan tindakan bootstrap di Konsol EMR. Untuk informasi selengkapnya, lihat Mengelola tindakan bootstrap.

    Pada kotak dialog Add Bootstrap Action, konfigurasikan parameter berikut.

    Parameter

    Deskripsi

    Name

    Nama tindakan bootstrap. Contoh: fix-log4j-vulnerability.

    Script Address

    Lokasi OSS skrip.

    Path skrip harus dalam format oss://**/*.sh. Pada contoh ini, gunakan oss://<bucket-name>/path/to/bootstrap_log4j.sh.

    Parameter

    Parameter untuk skrip tindakan bootstrap, yang menentukan nilai variabel yang dirujuk dalam skrip.

    Pada contoh ini, gunakan oss://<bucket-name>/path/to/patches-log4j.tar.gz .

    Execution Scope

    Pilih Cluster.

    Execution Time

    Pilih After Component Startup.

    Execution Failure Policy

    Pilih Proceed.

  3. Saat memperluas kapasitas kluster yang sudah ada, Anda hanya perlu me-restart komponen yang sesuai pada node baru. Jika Anda membuat kluster baru, Anda harus me-restart komponen seperti HDFS, Hive, Presto, Impala, Druid, Flink, Solr, Ranger, Storm, Oozie, Spark, dan Zeppelin.