Método para mitigar CVE-2021-44228 - Amazon EMR

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Método para mitigar CVE-2021-44228

nota

En el caso de la versión 6.9.0 y posteriores de Amazon EMR, todos los componentes instalados por Amazon EMR que utilizan bibliotecas Log4j utilizan la versión 2.17.1 o posteriores de Log4j.

Amazon EMR ejecutándose en EC2

El problema que se analiza en CVE-2021-44228 afecta a las versiones principales de Apache Log4j comprendidas entre la 2.0.0 y la 2.14.1 cuando se procesan entradas de orígenes que no son de confianza. Los clústeres de Amazon EMR lanzados con las versiones 5.x de Amazon EMR hasta la 5.34.0 y las versiones 6.x de EMR hasta Amazon EMR 6.5.0 incluyen marcos de código abierto como Apache Hive, Flink, HUDI, Presto y Trino, que utilizan estas versiones de Apache Log4j. Sin embargo, muchos clientes utilizan los marcos de código abierto instalados en sus clústeres de Amazon EMR para procesar y registrar las entradas de orígenes que no son de confianza.

Se recomienda que aplique la “Solución de acción de arranque de Amazon EMR para Log4j CVE-2021-44228” como se describe en la siguiente sección. Esta solución también aborda CVE-2021-45046.

nota

Los scripts de acción de arranque para Amazon EMR se actualizaron el 7 de septiembre de 2022 para incluir mejoras y correcciones de errores incrementales para Oozie. Si utiliza Oozie, debe aplicar la solución de acción de arranque de Amazon EMR actualizada que se describe en la siguiente sección.

Amazon EMR en EKS

Si utiliza Amazon EMR en EKS con la configuración predeterminada, no se verá afectado por el problema descrito en CVE-2021-44228 y no tendrá que aplicar la solución descrita en la sección Solución de acción de arranque de Amazon EMR para Log4j CVE-2021-44228 y CVE-2021-45046. Para Amazon EMR en EKS, el tiempo de ejecución de Amazon EMR para Spark utiliza la versión 1.2.17 de Apache Log4j. Cuando utilice Amazon EMR en EKS, no debe cambiar la configuración predeterminada del componente log4j.appender a log.

Solución de acción de arranque de Amazon EMR para Log4j CVE-2021-44228 y CVE-2021-45046

Esta solución proporciona una acción de arranque de Amazon EMR que debe aplicarse en los clústeres de Amazon EMR. Para cada versión de Amazon EMR, encontrará a continuación un enlace a un script de acciones de arranque. Para aplicar esta acción de arranque, debe completar los siguientes pasos:

  1. Copie el script correspondiente a su versión de Amazon EMR en un bucket de S3 local en su Cuenta de AWS. Asegúrese de utilizar un script de arranque específico para su versión de Amazon EMR.

  2. Configure una acción de arranque para sus clústeres de EMR a fin de ejecutar el script copiado en su bucket de S3 según las instrucciones que se describen en la documentación de EMR. Si tiene otras acciones de arranque configuradas para sus clústeres de EMR, asegúrese de que este script esté configurado como el primer script de acciones de arranque que se ejecute.

  3. Termine los clústeres de EMR existentes y lance nuevos clústeres con el script de acción bootstrap. AWS recomienda probar los scripts de arranque en el entorno de pruebas y validar las aplicaciones antes de aplicarlos al entorno de producción. Si no está utilizando la revisión más reciente para una versión secundaria de EMR (por ejemplo, 6.3.0), debe usar la revisión más reciente (por ejemplo, 6.3.1) y, a continuación, aplicar la solución descrita anteriormente.

CVE-2021-44228 y CVE-2021-45046: scripts de arranque para versiones de Amazon EMR
Número de versión de Amazon EMR Ubicación del script Fecha de publicación del script
6.5.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.5.0-v2.sh
24 de marzo de 2022
6.4.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.4.0-v2.sh
24 de marzo de 2022
6.3.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.3.1-v2.sh
24 de marzo de 2022
6.2.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.2.1-v2.sh
24 de marzo de 2022
6.1.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.1.1-v2.sh
14 de diciembre de 2021
6.0.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-6.0.1-v2.sh
14 de diciembre de 2021
5,34,0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.34.0-v2.sh
12 de diciembre de 2021
5.33.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.33.1-v2.sh
12 de diciembre de 2021
5.32,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.32.1-v2.sh
13 de diciembre de 2021
5,31.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.31.1-v2.sh
13 de diciembre de 2021
5.30,2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.30.2-v2.sh
14 de diciembre de 2021
5.29,0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.29.0-v2.sh
14 de diciembre de 2021
5.28,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.28.1-v2.sh
15 de diciembre de 2021
5.27.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.27.1-v2.sh
15 de diciembre de 2021
5.26.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.26.0-v2.sh
15 de diciembre de 2021
5.25,0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.25.0-v2.sh
15 de diciembre de 2021
5.24.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.24.1-v2.sh
15 de diciembre de 2021
5,23.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.23.1-v2.sh
15 de diciembre de 2021
5.22.0
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.22.0-v2.sh
15 de diciembre de 2021
5.21.2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.21.2-v2.sh
15 de diciembre de 2021
5.20.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.20.1-v2.sh
15 de diciembre de 2021
5.19,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.19.1-v2.sh
15 de diciembre de 2021
5.18,1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.18.1-v2.sh
15 de diciembre de 2021
5.17.2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.17.2-v2.sh
15 de diciembre de 2021
5.16.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.16.1-v2.sh
15 de diciembre de 2021
5.15.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.15.1-v2.sh
15 de diciembre de 2021
5.14.2
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.14.2-v2.sh
15 de diciembre de 2021
5.13.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.13.1-v2.sh
15 de diciembre de 2021
5.12.3
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.12.3-v2.sh
15 de diciembre de 2021
5.11.4
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.11.4-v2.sh
15 de diciembre de 2021
5.10.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.10.1-v2.sh
15 de diciembre de 2021
5.9.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.9.1-v2.sh
15 de diciembre de 2021
5.8.3
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.8.3-v2.sh
15 de diciembre de 2021
5.7.1
s3://elasticmapreduce/bootstrap-actions/log4j/patch-log4j-emr-5.7.1-v2.sh
15 de diciembre de 2021
Versión de lanzamiento de EMR Revisión más reciente desde diciembre de 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 5.18,1
5.17.0 o 5.17.1 5.17.2
5.16.0 5.16.1
5.15.0 5.15.1
5.14.0 o 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

Preguntas frecuentes

  • ¿Las versiones de EMR anteriores a EMR 5 se ven afectadas por CVE-2021-44228?

    No. Las versiones de EMR anteriores a la versión 5 de EMR utilizan versiones de Log4j anteriores a la 2.0.

  • ¿Esta solución también aborda el CVE-2021-45046?

    Sí. Esta solución también aborda el CVE-2021-45046.

  • ¿La solución gestiona las aplicaciones personalizadas que instalo en mis clústeres de EMR?

    El script de arranque solo actualiza los archivos JAR que instala EMR. Si instala y ejecuta aplicaciones personalizadas y archivos JAR en sus clústeres de EMR mediante acciones de arranque, como pasos enviados a sus clústeres, con una AMI de Amazon Linux personalizada o por medio de cualquier otro mecanismo, póngase en contacto con el proveedor de la aplicación para determinar si sus aplicaciones personalizadas se ven afectadas por CVE-2021-44228 y determinar la solución adecuada.

  • ¿Cómo debo gestionar las imágenes de docker personalizadas con EMR en EKS?

    Si añade aplicaciones personalizadas a Amazon EMR en EKS mediante imágenes de docker personalizadas o envía trabajos a Amazon EMR en archivos de solicitud EKSwith personalizados, póngase en contacto con el proveedor de la aplicación para determinar si sus aplicaciones personalizadas se ven afectadas por el CVE-2021-44228 y determinar la solución adecuada.

  • ¿Cómo funciona el script de arranque para mitigar el problema descrito en CVE-2021-44228 y CVE-2021-45046?

    El script de arranque actualiza las instrucciones de inicio de EMR al agregar un nuevo conjunto de instrucciones. Estas nuevas instrucciones eliminan los archivos de JndiLookup clase utilizados a través de Log4j por todos los marcos de código abierto instalados por EMR. Esto sigue la recomendación publicada por Apache para abordar los problemas de Log4j.

  • ¿Hay alguna actualización de EMR que utilice la versión 2.17.1 o posteriores de Log4j?

    Las versiones de EMR 5 hasta la versión 5.34 y las versiones de EMR 6 hasta la versión 6.5 utilizan versiones anteriores de marcos de código abierto que son incompatibles con las versiones más recientes de Log4j. Si continúa utilizando estas versiones, le recomendamos que aplique la acción de arranque para mitigar los problemas descritos en la. CVEs Después de EMR 5 versión 5.34 y EMR 6 versión 6.5, las aplicaciones que utilicen Log4j 1.x y Log4j 2.x se actualizarán para utilizar Log4j 1.2.17 (o superior) y Log4j 2.17.1 (o superior) respectivamente, y no requerirán usar las acciones de arranque mencionadas anteriormente para mitigar los problemas de CVE.

  • ¿Las versiones de EMR se ven afectadas por el CVE-2021-45105?

    CVE-2021-45105 no afecta a las aplicaciones instaladas por Amazon EMR con las configuraciones predeterminadas de EMR. De las aplicaciones instaladas por Amazon EMR, solo Apache Hive utiliza Apache Log4j con búsquedas de contexto y no utiliza un diseño de patrones no predeterminado de manera que permita procesar datos de entrada inapropiados.

  • ¿Se ve afectado Amazon EMR por alguna de las siguientes divulgaciones de CVE?

    En la siguiente tabla se incluye una lista de CVEs los datos relacionados con Log4j y se indica si cada CVE afecta a Amazon EMR. La información de esta tabla solo se aplica cuando Amazon EMR instala las aplicaciones con las configuraciones predeterminadas.

    CVE Afecta a EMR Notas
    CVE-2022-23302 No Amazon EMR no configura Log4j JMSSink
    CVE-2022-23305 No Amazon EMR no configura Log4j JDBCAppender
    CVE-2022-23307 No Amazon EMR no configura Log4j Chainsaw
    CVE-2020-9493 No Amazon EMR no configura Log4j Chainsaw
    CVE-2021-44832 No Amazon EMR no configura Log4j JDBCAppender con una cadena de conexión JNDI
    CVE-2021-4104 No Amazon EMR no utiliza Log4j JMSAppender
    CVE-2020-9488 No Las aplicaciones que instala Amazon EMR no utilizan Log4j SMTPAppender
    CVE-2019-17571 No Amazon EMR bloquea el acceso público a los clústeres y no los lanza SocketServer
    CVE-2019-17531 No Recomendamos que actualice a la versión más reciente de Amazon EMR. Amazon EMR 5.33.0 y versiones posteriores utilizan jackson-databind 2.6.7.4 o posteriores, y EMR 6.1.0 y versiones posteriores utilizan jackson-databind 2.10.0 o posteriores. Estas versiones de jackson-databind no se ven afectadas por el CVE.