Ansatz zur Minderung von CVE-2021-44228 - Amazon EMR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Ansatz zur Minderung von CVE-2021-44228

Anmerkung

Für Amazon-EMR-Version 6.9.0 und höher verwenden alle von Amazon EMR installierten Komponenten, die Log4j-Bibliotheken verwenden, Log4j Version 2.17.1 oder höher.

Amazon EMR läuft auf EC2

Das in CVE-2021-44228 behandelte Problem ist für Apache-Log4j-Kernversionen zwischen 2.0.0 und 2.14.1 relevant, wenn Eingaben aus nicht vertrauenswürdigen Quellen verarbeitet werden. Amazon-EMR-Cluster, die mit Amazon-EMR-5.x-Versionen bis 5.34.0 und EMR-6.x-Versionen bis Amazon EMR 6.5.0 gestartet wurden, enthalten Open-Source-Frameworks wie Apache Hive, Flink, HUDI, Presto und Trino, die diese Versionen von Apache Log4j verwenden. Viele Kunden verwenden jedoch die auf ihren Amazon-EMR-Clustern installierten Open-Source-Frameworks, um Eingaben aus nicht vertrauenswürdigen Quellen zu verarbeiten und zu protokollieren.

Wir empfehlen, dass Sie die „Lösung Amazon EMR-Bootstrap-Aktion für Log4j CVE-2021-44228“ wie im folgenden Abschnitt beschrieben anwenden. Diese Lösung befasst sich auch mit CVE-2021-45046.

Anmerkung

Die Bootstrap-Aktionsskripte für Amazon EMR wurden am 7. September  2022 aktualisiert und enthalten nun schrittweise Bugfixes und Verbesserungen für Oozie. Wenn Sie Oozie verwenden, sollten Sie die aktualisierte Amazon-EMR-Bootstrap-Aktionslösung anwenden, die im folgenden Abschnitt beschrieben wird.

Amazon EMR in EKS

Wenn Sie Amazon EMR in EKS mit Standardkonfiguration verwenden, sind Sie von dem in CVE-2021-44228 beschriebenen Problem nicht betroffen und Sie müssen die im Abschnitt Amazon-EMR-Bootstrap-Aktionslösung für Log4J CVE-2021-44228 und CVE-2021-45046 beschriebene Lösung nicht anwenden. Für Amazon EMR auf EKS verwendet die Amazon-EMR-Laufzeit für Spark Apache Log4j Version 1.2.17. Wenn Sie Amazon EMR in EKS verwenden, sollten Sie die Standardeinstellung für die log4j.appender Komponente nicht auf log ändern.

Amazon-EMR-Bootstrap-Aktionslösung für Log4J CVE-2021-44228 und CVE-2021-45046

Diese Lösung bietet eine Amazon-EMR-Bootstrap-Aktion, die auf Ihre Amazon-EMR-Cluster angewendet werden muss. Für jede Amazon-EMR-Version finden Sie unten einen Link zu einem Bootstrap-Aktionsskript. Sie sollten die folgenden Schritte ausführen, um diese Bootstrap-Aktion anzuwenden:

  1. Kopieren Sie das Skript, das Ihrer Amazon-EMR-Version entspricht, in einen lokalen S3-Bucket in Ihrem AWS-Konto. Bitte stellen Sie sicher, dass Sie ein Bootstrap-Skript verwenden, das für Ihre Amazon-EMR-Version spezifisch ist.

  2. Richten Sie eine Bootstrap-Aktion für Ihre EMR-Cluster ein, um das in Ihren S3-Bucket kopierte Skript gemäß den in der EMR-Dokumentation beschriebenen Anweisungen auszuführen. Wenn Sie andere Bootstrap-Aktionen für Ihre EMR-Cluster konfiguriert haben, stellen Sie sicher, dass dieses Skript als erstes Bootstrap-Aktionsskript eingerichtet ist, das ausgeführt wird.

  3. Beenden Sie bestehende EMR-Cluster und starten Sie neue Cluster mit dem Bootstrap-Aktionsskript. AWS empfiehlt, dass Sie die Bootstrap-Skripte in Ihrer Testumgebung testen und Ihre Anwendungen validieren, bevor Sie sie in Ihrer Produktionsumgebung anwenden. Wenn Sie nicht die neueste Version für eine EMR-Nebenversion (z. B. 6.3.0) verwenden, müssen Sie die neueste Version (z. B. 6.3.1) verwenden und dann die oben beschriebene Lösung anwenden.

CVE-2021-44228 & CVE-2021-45046 – Bootstrap-Skripte für Amazon-EMR-Versionen
Amazon-EMR-Versionsnummer Skript-Speicherort Datum der Veröffentlichung des Skripts
6.5.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.5.0-v2.sh
24. März 2022
6.4.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.4.0-v2.sh
24. März 2022
6.3.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.3.1-v2.sh
24. März 2022
6.2.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.2.1-v2.sh
24. März 2022
6.1.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.1.1-v2.sh
14. Dezember 2021
6.0.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.0.1-v2.sh
14. Dezember 2021
5,34,0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.34.0-v2.sh
12. Dezember 2021
5,33,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.33.1-v2.sh
12. Dezember 2021
5.32,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.32.1-v2.sh
13. Dezember 2021
5.31,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.31.1-v2.sh
13. Dezember 2021
5,30,2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.30.2-v2.sh
14. Dezember 2021
5.29,0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.29.0-v2.sh
14. Dezember 2021
5,28,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.28.1-v2.sh
15. Dezember 2021
5,27,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.27.1-v2.sh
15. Dezember 2021
5,26,0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.26.0-v2.sh
15. Dezember 2021
5,25,0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.25.0-v2.sh
15. Dezember 2021
5,24,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.24.1-v2.sh
15. Dezember 2021
5.23,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.23.1-v2.sh
15. Dezember 2021
5,22,0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.22.0-v2.sh
15. Dezember 2021
5,21,2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.21.2-v2.sh
15. Dezember 2021
5,20,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.20.1-v2.sh
15. Dezember 2021
5.19,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.19.1-v2.sh
15. Dezember 2021
5.18.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.18.1-v2.sh
15. Dezember 2021
5.17.2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.17.2-v2.sh
15. Dezember 2021
5.16.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.16.1-v2.sh
15. Dezember 2021
5.15,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.15.1-v2.sh
15. Dezember 2021
5.14.2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.14.2-v2.sh
15. Dezember 2021
5.13.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.13.1-v2.sh
15. Dezember 2021
5.12.3
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.12.3-v2.sh
15. Dezember 2021
5.11.4
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.11.4-v2.sh
15. Dezember 2021
5.10.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.10.1-v2.sh
15. Dezember 2021
5.9.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.9.1-v2.sh
15. Dezember 2021
5.8.3
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.8.3-v2.sh
15. Dezember 2021
5.7.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.7.1-v2.sh
15. Dezember 2021
EMR-Version Letzte Version vom Dezember 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 oder 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 oder 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 oder 5.17.1 5.17.2
5.16.0 5.16.1
5.15.0 5.15,1
5.14.0 oder 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

Häufig gestellte Fragen

  • Sind EMR-Versionen, die älter als EMR 5 sind, von CVE-2021-44228 betroffen?

    Nein. EMR-Versionen vor EMR-Version 5 verwenden Log4J-Versionen, die älter als 2.0 sind.

  • Befasst sich diese Lösung mit CVE-2021-45046?

    Ja, diese Lösung adressiert auch CVE-2021-45046.

  • Unterstützt die Lösung benutzerdefinierte Anwendungen, die ich auf meinen EMR-Clustern installiere?

    Das Bootstrap-Skript aktualisiert nur JAR-Dateien, die von EMR installiert wurden. Wenn Sie benutzerdefinierte Anwendungen und JAR-Dateien auf Ihren EMR-Clustern über Bootstrap-Aktionen, als an Ihre Cluster übermittelte Schritte, mithilfe eines benutzerdefinierten Amazon-Linux-AMI oder über einen anderen Mechanismus installieren und ausführen, wenden Sie sich bitte an Ihren Anwendungsanbieter, um festzustellen, ob Ihre benutzerdefinierten Anwendungen von CVE-2021- 44228 betroffen sind, und suchen Sie nach einer geeigneten Lösung.

  • Wie sollte ich mit benutzerdefinierten Docker-Images mit EMR in EKS umgehen?

    Wenn Sie benutzerdefinierte Anwendungen mithilfe benutzerdefinierter Docker-Images zu Amazon EMR auf EKS hinzufügen oder Jobs mit EKSwith benutzerdefinierten Anwendungsdateien an Amazon EMR senden, ermitteln Sie gemeinsam mit dem Anbieter der Anwendung, ob Ihre benutzerdefinierten Anwendungen von CVE-2021-44228 betroffen sind, und ermitteln Sie eine geeignete Lösung.

  • Wie funktioniert das Bootstrap-Skript, um das in CVE-2021-44228 und CVE-2021-45046 beschriebene Problem zu entschärfen?

    Das Bootstrap-Skript aktualisiert die EMR-Startup-Anweisungen, indem es einen neuen Befehlssatz hinzufügt. Diese neuen Anweisungen löschen die JndiLookup Klassendateien, die über Log4j von allen von EMR installierten Open-Source-Frameworks verwendet werden. Dies folgt der von Apache veröffentlichten Empfehlung zur Behebung der Log4j-Probleme.

  • Gibt es ein Update für EMR, das Log4j-Versionen 2.17.1 oder höher verwendet?

    EMR-5-Versionen bis Version 5.34 und EMR-6-Versionen bis Version 6.5 verwenden ältere Versionen von Open-Source-Frameworks, die mit den neuesten Versionen von Log4j nicht kompatibel sind. Wenn Sie diese Versionen weiterhin verwenden, empfehlen wir Ihnen, die Bootstrap-Aktion anzuwenden, um die in der beschriebenen Probleme zu beheben. CVEs Nach EMR-5-Version 5.34 und EMR-6-Version 6.5 werden Anwendungen, die Log4j 1.x und Log4j 2.x verwenden, auf Log4j 1.2.17 (oder höher) bzw. Log4j 2.17.1 (oder höher) aktualisiert, sodass die oben genannten Bootstrap-Aktionen nicht erforderlich sind, um die CVE-Probleme zu beheben.

  • Sind EMR-Versionen von CVE-2021-45105 betroffen?

    Die von Amazon EMR mit den Standardkonfigurationen von EMR installierten Anwendungen sind von CVE-2021-45105 nicht betroffen. Unter den von Amazon EMR installierten Anwendungen verwendet nur Apache Hive Apache Log4j mit Kontext-Lookups und verwendet kein vom Standard abweichendes Muster-Layout, sodass unangemessene Eingabedaten verarbeitet werden können.

  • Ist Amazon EMR von einer der folgenden CVE-Offenlegungen betroffen?

    Die folgende Tabelle enthält eine Liste CVEs mit Bezug zu Log4j und gibt an, ob sich die einzelnen CVE auf Amazon EMR auswirken. Die Informationen in dieser Tabelle gelten nur, wenn Anwendungen von Amazon EMR mit den Standardkonfigurationen installiert werden.

    CVE Auswirkungen EMR Hinweise
    CVE-2022-23302 Nein Amazon EMR richtet Log4j nicht ein JMSSink
    CVE-2022-23305 Nein Amazon EMR richtet Log4j nicht ein JDBCAppender
    CVE-2022-23307 Nein Amazon EMR richtet Log4j Chainsaw nicht ein
    CVE-2020-9493 Nein Amazon EMR richtet Log4j Chainsaw nicht ein
    CVE-2021-44832 Nein Amazon EMR richtet Log4j nicht JDBCAppender mit einer JNDI-Verbindungszeichenfolge ein
    CVE-2021-4104 Nein Amazon EMR verwendet Log4j nicht JMSAppender
    CVE-2020-9488 Nein Die von Amazon EMR installierten Anwendungen verwenden Log4j nicht SMTPAppender
    CVE-2019-17571 Nein Amazon EMR blockiert den öffentlichen Zugriff auf Cluster und startet nicht SocketServer
    CVE-2019-17531 Nein Es wird empfohlen, ein Upgrade auf die neueste Amazon-EMR-Release-Version durchzuführen. Amazon EMR 5.33.0 und höher verwenden jackson-databind 2.6.7.4 oder höher, und EMR 6.1.0 und höher verwenden jackson-databind 2.10.0 oder höher. Diese Versionen von jackson-databind sind vom CVE nicht betroffen.