Approche visant à atténuer le CVE-2021-44228 - Amazon EMR

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Approche visant à atténuer le CVE-2021-44228

Note

Pour Amazon EMR version 6.9.0 et versions ultérieures, tous les composants installés par Amazon EMR qui utilisent les bibliothèques Log4j utilisent Log4j version 2.17.1 ou ultérieure.

Amazon EMR exécuté sur EC2

Le problème abordé dans CVE-2021-44228 concerne les versions principales d'Apache Log4j comprises entre 2.0.0 et 2.14.1 lors du traitement d'entrées provenant de sources non fiables. Les clusters Amazon EMR lancés avec les versions 5.x d'Amazon EMR 5.x jusqu'à 5.34.0 et les versions d'EMR 6.x antérieures à Amazon EMR 6.5.0 incluent des frameworks open source tels qu'Apache Hive, Flink, HUDI, Presto et Trino, qui utilisent ces versions d'Apache Log4j. Cependant, de nombreux clients utilisent les frameworks open source installés sur leurs clusters Amazon EMR pour traiter et enregistrer les entrées provenant de sources non fiables.

Nous vous recommandons d'appliquer la « solution d'action Amazon EMR Bootstrap pour Log4j CVE-2021-44228 » comme décrit dans la section suivante. Cette solution prend également en charge le CVE-2021-45046.

Note

Les scripts d'action d'amorçage pour Amazon EMR ont été mis à jour le 7 septembre 2022 pour inclure des corrections de bogues progressives et des améliorations pour Oozie. Si vous utilisez Oozie, vous devez appliquer la solution d'action d'amorçage Amazon EMR mise à jour décrite dans la section suivante.

Amazon EMR on EKS

Si vous utilisez Amazon EMR sur EKS avec une configuration par défaut, vous n'êtes pas concerné par le problème décrit dans le CVE-2021-44228 et vous n'êtes pas obligé d'appliquer la solution décrite dans la section Solution d'action d'amorçage Amazon EMR pour Log4j CVE-2021-44228 et CVE-2021-45046. Pour Amazon EMR sur EKS, le moteur d'exécution Amazon EMR pour Spark utilise Apache Log4j version 1.2.17. Lorsque vous utilisez Amazon EMR sur EKS, vous ne devez pas modifier le paramètre par défaut du composant log4j.appender sur log.

Solution d'action d'amorçage Amazon EMR pour Log4j CVE-2021-44228 et CVE-2021-45046

Cette solution fournit une action d'amorçage Amazon EMR qui doit être appliquée à vos clusters Amazon EMR. Pour chaque version d'Amazon EMR, vous trouverez ci-dessous un lien vers un script d'action d'amorçage. Pour appliquer cette action d'amorçage, vous devez suivre les étapes suivantes :

  1. Copiez le script correspondant à votre version d'Amazon EMR dans un compartiment S3 local de votre Compte AWS. Assurez-vous que vous utilisez un script d'amorçage spécifique à votre version d'Amazon EMR.

  2. Configurez une action d'amorçage pour vos clusters EMR afin d'exécuter le script copié dans votre compartiment S3 conformément aux instructions décrites dans Documentation EMR. Si d'autres actions d'amorçage sont configurées pour vos clusters EMR, assurez-vous que ce script est configuré comme le premier script d'action d'amorçage à exécuter.

  3. Mettez fin aux clusters EMR existants et lancez de nouveaux clusters à l'aide du script d'action bootstrap. AWS recommande de tester les scripts bootstrap dans votre environnement de test et de valider vos applications avant de les appliquer à votre environnement de production. Si vous n'utilisez pas la dernière version d'une version mineure d'EMR (par exemple, 6.3.0), vous devez utiliser la dernière révision (par exemple, 6.3.1), puis appliquer la solution décrite ci-dessus.

CVE-2021-44228 et CVE-2021-45046 – Scripts d’amorçage pour les versions d’Amazon EMR
Numéro de version d’Amazon EMR Emplacement du script Date de sortie du script
6.5.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.5.0-v2.sh
24 mars 2022
6.4.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.4.0-v2.sh
24 mars 2022
6.3.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.3.1-v2.sh
24 mars 2022
6.2.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.2.1-v2.sh
24 mars 2022
6.1.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.1.1-v2.sh
14 décembre 2021
6.0.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.0.1-v2.sh
14 décembre 2021
5,34,0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.34.0-v2.sh
12 décembre 2021
5,33.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.33.1-v2.sh
12 décembre 2021
5,32.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.32.1-v2.sh
13 décembre 2021
5,31.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.31.1-v2.sh
13 décembre 2021
5,30,2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.30.2-v2.sh
14 décembre 2021
5,29,0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.29.0-v2.sh
14 décembre 2021
5,28.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.28.1-v2.sh
15 décembre 2021
5,27.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.27.1-v2.sh
15 décembre 2021
5,26,0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.26.0-v2.sh
15 décembre 2021
5,25,0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.25.0-v2.sh
15 décembre 2021
5.24.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.24.1-v2.sh
15 décembre 2021
5.23.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.23.1-v2.sh
15 décembre 2021
5,22,0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.22.0-v2.sh
15 décembre 2021
5.21.2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.21.2-v2.sh
15 décembre 2021
5.20.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.20.1-v2.sh
15 décembre 2021
5.19.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.19.1-v2.sh
15 décembre 2021
5.18.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.18.1-v2.sh
15 décembre 2021
5,17.2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.17.2-v2.sh
15 décembre 2021
5.16.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.16.1-v2.sh
15 décembre 2021
5.15.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.15.1-v2.sh
15 décembre 2021
5.14.2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.14.2-v2.sh
15 décembre 2021
5.13.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.13.1-v2.sh
15 décembre 2021
5.12.3
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.12.3-v2.sh
15 décembre 2021
5.11.4
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.11.4-v2.sh
15 décembre 2021
5.10.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.10.1-v2.sh
15 décembre 2021
5.9.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.9.1-v2.sh
15 décembre 2021
5.8.3
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.8.3-v2.sh
15 décembre 2021
5.7.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.7.1-v2.sh
15 décembre 2021
Version EMR Dernière révision en date de décembre 2021
6.3.0 6.3.1
6.2.0 6.2.1
6,10 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 ou 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 ou 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 ou 5.17.1 5,17.2
5.16.0 5.16.1
5.15.0 5.15.1
5.14.0 ou 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

Questions fréquentes (FAQ)

  • Les versions d'EMR antérieures à EMR 5 sont-elles affectées par le CVE-2021-44228 ?

    Non Les versions EMR antérieures à la version 5 d'EMR utilisent des versions de Log4j antérieures à 2.0.

  • Cette solution répond-elle au CVE-2021-45046 ?

    Oui, cette solution prend également en charge le CVE-2021-45046.

  • La solution gère-t-elle les applications personnalisées que j'installe sur mes clusters EMR ?

    Le script d'amorçage met uniquement à jour les fichiers JAR installés par EMR. Si vous installez et exécutez des applications personnalisées et des fichiers JAR sur vos clusters EMR par le biais d'actions d'amorçage, d'étapes soumises à vos clusters, en utilisant une AMI Amazon Linux personnalisée ou via tout autre mécanisme, contactez votre fournisseur d'applications pour déterminer si vos applications personnalisées sont affectées par le CVE-2021-44228 et pour déterminer une solution appropriée.

  • Comment gérer les images docker personnalisées avec EMR sur EKS ?

    Si vous ajoutez des applications personnalisées à Amazon EMR sur EKS à l'aide d'images docker personnalisées ou si vous soumettez des tâches à Amazon EMR sur EKS avec des fichiers de candidature personnalisés, contactez le fournisseur de l'application pour déterminer si vos applications personnalisées sont concernées par le CVE-2021-44228 et pour déterminer une solution appropriée.

  • Comment fonctionne le script bootstrap pour atténuer le problème décrit dans CVE-2021-44228 et CVE-2021-45046 ?

    Le script d'amorçage met à jour les instructions de démarrage d'EMR en ajoutant un nouveau jeu d'instructions. Ces nouvelles instructions suppriment les fichiers JndiLookup de classe utilisés via Log4j par tous les frameworks open source installés par EMR. Cela fait suite à la recommandation publiée par Apache pour résoudre les problèmes liés à Log4j.

  • Existe-t-il une mise à jour d'EMR qui utilise les versions 2.17.1 ou supérieures de Log4j ?

    Les versions EMR 5 jusqu'à la version 5.34 et les versions EMR 6 jusqu'à la version 6.5 utilisent d'anciennes versions de frameworks open source incompatibles avec les dernières versions de Log4j. Si vous continuez à utiliser ces versions, nous vous recommandons d'appliquer l'action d'amorçage pour atténuer les problèmes évoqués dans les CVE. Après EMR 5 version 5.34 et EMR 6 version 6.5, les applications qui utilisent Log4j 1.x et Log4j 2.x seront mises à niveau pour utiliser Log4j 1.2.17 (ou supérieur) et Log4j 2.17.1 (ou supérieur) respectivement, et ne nécessiteront pas l'utilisation des actions d'amorçage fournies ci-dessus pour atténuer les problèmes CVE.

  • Les versions d'EMR sont-elles affectées par le CVE-2021-45105 ?

    Les applications installées par Amazon EMR avec les configurations par défaut d'EMR ne sont pas affectées par CVE-2021-45105. Parmi les applications installées par Amazon EMR, seul Apache Hive utilise Apache Log4j avec des recherches contextuelles, et il n'utilise pas de disposition de modèle autre que celle par défaut de manière à permettre le traitement de données d'entrée inappropriées.

  • Amazon EMR est-il concerné par l'une des divulgations CVE suivantes ?

    Le tableau suivant contient une liste des CVE liés à Log4j et indique si chaque CVE a un impact sur Amazon EMR. Les informations de ce tableau ne s'appliquent que lorsque les applications sont installées par Amazon EMR à l'aide des configurations par défaut.

    CVE Incidence sur EMR Remarques
    CVE-2022-23302 Non Amazon EMR ne configure pas Log4j JMSSink
    CVE-2022-23305 Non Amazon EMR ne configure pas Log4j JDBCappender
    CVE-2022-23307 Non Amazon EMR ne configure pas Log4j Chainsaw
    CVE-2020-9493 Non Amazon EMR ne configure pas Log4j Chainsaw
    CVE-2021-44832 Non Amazon EMR ne configure pas Log4j JDBcAppender avec une chaîne de connexion JNDI
    CVE-2021-4104 Non Amazon EMR n'utilise pas Log4j JMSAppender
    CVE-2020-9488 Non Les applications installées par Amazon EMR n'utilisent pas Log4j SMTPApender
    CVE-2019-17571 Non Amazon EMR bloque l'accès public aux clusters et ne se lance pas SocketServer
    CVE-2019-17531 Non Nous vous recommandons de passer à la dernière version Amazon EMR. Amazon EMR 5.33.0 et versions ultérieures utilisent jackson-databind 2.6.7.4 ou version ultérieure, et EMR 6.1.0 et versions ultérieures utilisent jackson-databind 2.10.0 ou version ultérieure. Ces versions de jackson-databind ne sont pas affectées par le CVE.