Approccio per mitigare il CVE-2021-44228 - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Approccio per mitigare il CVE-2021-44228

Nota

Per versione di rilascio 6.9.0 e successive di Amazon EMR, tutti i componenti installati da Amazon EMR che utilizzano librerie Log4j utilizzano Log4j versione 2.17.1 o successiva.

Amazon EMR eseguito su EC2

Il problema discusso nel CVE-2021-44228 riguarda le versioni principali di Apache Log4j (dalla 2.0.0 alla 2.14.1) durante l'elaborazione di input da origini non attendibili. I cluster Amazon EMR avviati con i rilasci di Amazon EMR della serie 5.x fino al 5.34.0 e della serie 6.x fino al 6.5.0 includono framework open source come Apache Hive, Flink, HUDI, Presto e Trino, che utilizzano queste versioni di Apache Log4j. Tuttavia, molti clienti utilizzano i framework open source installati sui cluster Amazon EMR per elaborare e registrare gli input da origini non attendibili.

Suggeriamo di applicare la "Soluzione per l'operazione di bootstrap di Amazon EMR relativa al CVE-2021-44228 di Log4j" come descritto nella sezione successiva. Questa soluzione si rivolge anche al CVE-2021-45046.

Nota

Gli script dell'operazione bootstrap per Amazon EMR sono stati aggiornati il 7 settembre 2022 per includere correzioni di bug incrementali e miglioramenti per Oozie. Se utilizzi Oozie, devi applicare la soluzione dell'operazione di bootstrap di Amazon EMR aggiornata, descritta nella sezione seguente.

Amazon EMR su EKS

Se utilizzi Amazon EMR su EKS con la configurazione predefinita, non riscontrerai il problema descritto nel CVE-2021-44228 e non sarà necessario applicare la soluzione descritta nella sezione Soluzione per l'operazione di bootstrap di Amazon EMR relativa al CVE-2021-44228 e al CVE-2021-45046 di Log4j. Per Amazon EMR su EKS, il runtime di Amazon EMR per Spark utilizza Apache Log4j versione 1.2.17. Se utilizzi Amazon EMR su EKS, evita di modificare le impostazioni predefinite per il componente log4j.appender in log.

Soluzione per l'operazione di bootstrap di Amazon EMR relativa al CVE-2021-44228 e al CVE-2021-45046 di Log4j

Questa soluzione fornisce un'operazione di bootstrap di Amazon EMR che deve essere applicata ai cluster Amazon EMR. Per ogni rilascio di Amazon EMR, troverai qui sotto un link a uno script di operazione di bootstrap. Per applicare questa operazione di bootstrap è necessario completare i seguenti passaggi:

  1. Copia lo script che corrisponde al rilascio di Amazon EMR in un bucket S3 locale nel tuo Account AWS. Assicurati di utilizzare uno script di bootstrap specifico per il tuo rilascio di Amazon EMR.

  2. Imposta un'operazione di bootstrap per i cluster EMR per eseguire lo script copiato nel bucket S3 secondo le istruzioni descritte in Documentazione di EMR. Se sono state configurate altre operazioni di bootstrap per i cluster EMR, assicurati che questo script sia impostato come primo script di operazione di bootstrap da eseguire.

  3. Termina i cluster EMR esistenti e avvia nuovi cluster con lo script di azione bootstrap. AWS consiglia di testare gli script di bootstrap nell'ambiente di test e di convalidare le applicazioni prima di applicarle all'ambiente di produzione. Se non si sta utilizzando la revisione più recente di una versione secondaria di EMR (ad esempio 6.3.0), è necessario utilizzare la revisione più recente (ad esempio, 6.3.1) e quindi applicare la soluzione di cui sopra.

CVE-2021-44228 e CVE-2021-45046: script di bootstrap per i rilasci di Amazon EMR
Numero di rilascio di Amazon EMR Percorso script Data di rilascio dello script
6.5.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.5.0-v2.sh
24 marzo 2022
64,0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.4.0-v2.sh
24 marzo 2022
6.3.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.3.1-v2.sh
24 marzo 2022
6.2.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.2.1-v2.sh
24 marzo 2022
6.1.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.1.1-v2.sh
14 dicembre 2021
6.0.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.0.1-v2.sh
14 dicembre 2021
5,34,0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.34.0-v2.sh
12 dicembre 2021
5,33,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.33.1-v2.sh
12 dicembre 2021
5,32,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.32.1-v2.sh
13 dicembre 2021
5,31,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.31.1-v2.sh
13 dicembre 2021
5,30,2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.30.2-v2.sh
14 dicembre 2021
5,290
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.29.0-v2.sh
14 dicembre 2021
5,281
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.28.1-v2.sh
15 dicembre 2021
5,27,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.27.1-v2.sh
15 dicembre 2021
5,26,0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.26.0-v2.sh
15 dicembre 2021
5,25,0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.25.0-v2.sh
15 dicembre 2021
5,24,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.24.1-v2.sh
15 dicembre 2021
5,23,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.23.1-v2.sh
15 dicembre 2021
522,0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.22.0-v2.sh
15 dicembre 2021
5,21,2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.21.2-v2.sh
15 dicembre 2021
5,20,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.20.1-v2.sh
15 dicembre 2021
519,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.19.1-v2.sh
15 dicembre 2021
518,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.18.1-v2.sh
15 dicembre 2021
5,17,2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.17.2-v2.sh
15 dicembre 2021
5,16,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.16.1-v2.sh
15 dicembre 2021
515,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.15.1-v2.sh
15 dicembre 2021
5,14,2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.14.2-v2.sh
15 dicembre 2021
5,13,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.13.1-v2.sh
15 dicembre 2021
5,12,3
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.12.3-v2.sh
15 dicembre 2021
5.11.4
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.11.4-v2.sh
15 dicembre 2021
5.10.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.10.1-v2.sh
15 dicembre 2021
5.9.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.9.1-v2.sh
15 dicembre 2021
5.8.3
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.8.3-v2.sh
15 dicembre 2021
5.7.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.7.1-v2.sh
15 dicembre 2021
Versione del rilascio di EMR Ultima revisione: dicembre 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 o 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 o 5.21.1 5,21,2
5,20,0 5,20,1
5,19,0 5,19,1
5,18,0 518,1
5.17.0 o 5.17.1 5,17,2
5.16.0 5,16,1
5.15.0 515,1
5.14.0 o 5.14.1 5,14,2
5.13.0 513,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

Domande frequenti

  • Il CVE-2021-44228 interessa le versioni di EMR precedenti a EMR 5?

    No. I rilasci di EMR precedenti al rilascio 5 di EMR utilizzano versioni Log4j precedenti alla 2.0.

  • Questa soluzione si rivolge anche al CVE-2021-45046?

    Sì, questa soluzione si rivolge anche al CVE-2021-45046.

  • La soluzione gestisce le applicazioni personalizzate installate sui cluster EMR?

    Lo script di bootstrap aggiorna solo i file JAR installati da EMR. Se installi ed esegui applicazioni personalizzate e file JAR sui cluster EMR tramite operazioni di bootstrap, come passaggi inviati ai cluster, utilizzando AMI Amazon Linux personalizzate o tramite qualsiasi altro meccanismo, mettiti in contatto con il fornitore dell'applicazione per determinare se le applicazioni personalizzate sono interessate dal CVE-2021-44228 e per trovare una soluzione appropriata.

  • Come dovrei gestire le immagini docker personalizzate con EMR su EKS?

    Se aggiungi applicazioni personalizzate ad Amazon EMR su EKS utilizzando immagini docker personalizzate oppure invii processi ad Amazon EMR su EKS con i file delle applicazioni personalizzati, collabora con il fornitore dell'applicazione per determinare se le tue applicazioni personalizzate sono interessate dal CVE-2021-44228 e per trovare una soluzione appropriata.

  • Come funziona lo script bootstrap per mitigare il problema descritto in CVE-2021-44228 e CVE-2021-45046?

    Lo script di bootstrap aggiorna le istruzioni di startup di EMR aggiungendo un nuovo set di istruzioni. Queste nuove istruzioni eliminano i file JndiLookup di classe utilizzati tramite Log4j da tutti i framework open source installati da EMR. Questo segue il suggerimento pubblicato da Apache per risolvere i problemi di Log4j.

  • Esiste un aggiornamento a EMR che utilizza Log4j versione 2.17.1 o successiva?

    I rilasci di EMR dalla versione 5 fino alla 5.34 e dalla 6 fino alla 6.5 utilizzano versioni precedenti di framework open source incompatibili con le versioni più recenti di Log4j. Se si continua a utilizzare questo rilascio, consigliamo di applicare l'operazione di bootstrap per mitigare i problemi discussi nei CVE. Dopo i rilasci di EMR dalla versione 5 fino alla 5.34 e dalla 6 fino alla 6.5, le applicazioni che utilizzano Log4j 1.x e Log4j 2.x verranno aggiornate per utilizzare rispettivamente Log4j 1.2.17 (o successiva) e Log4j 2.17.1 (o successiva) e non richiederanno l'utilizzo delle operazioni di bootstrap sopra fornite per mitigare i problemi CVE.

  • Il CVE-2021-45105 interessa le versioni di EMR?

    Il CVE-2021-45105 non riguarda le applicazioni installate da Amazon EMR con le configurazioni di default di EMR. Tra le applicazioni installate da Amazon EMR, solo Apache Hive utilizza Apache Log4j con ricerche di contesto; al contempo, non utilizza un layout di pattern non di default in un modo che consenta l'elaborazione di dati di input inappropriati.

  • Amazon EMR è influenzato da una delle seguenti informazioni CVE?

    La seguente tabella contiene un elenco di CVE correlati a Log4j e annota se ogni CVE influenza Amazon EMR. Le informazioni contenute in questa tabella si applicano solo quando le applicazioni sono installate da Amazon EMR utilizzando le configurazioni di default.

    CVE Impatti EMR Note
    CVE-2022-23302 No Amazon EMR non configura Log4j JMSSink
    CVE-2022-23305 No Amazon EMR non configura Log4j JDBCAppender
    CVE-2022-23307 No Amazon EMR non configura Log4j Chainsaw
    CVE-2020-9493 No Amazon EMR non configura Log4j Chainsaw
    CVE-2021-44832 No Amazon EMR non configura Log4j DBCAppender con una stringa di connessione JNDI
    CVE-2021-4104 No Amazon EMR non utilizza Log4j JMSAppender
    CVE-2020-9488 No Le applicazioni installate da Amazon EMR non utilizzano Log4j SMTPAppender
    CVE-2019-17571 No Amazon EMR blocca l'accesso pubblico ai cluster e non si avvia SocketServer
    CVE-2019-17531 No Consigliamo di eseguire l'aggiornamento alla versione del rilascio di Amazon EMR più recente. Amazon EMR 5.33.0 e versioni successive utilizzano jackson-databind 2.6.7.4 o versioni successive ed EMR 6.1.0 e versioni successive utilizzano jackson-databind 2.10.0 o versioni successive. Queste versioni di jackson-databind non sono influenzate dal CVE.