VxRail: Solución alternativa de VxRail Manager para corregir la vulnerabilidad de Apache Log4Shell (CVE-2021-44228, CVE-2021-45046 y CVE-2021-4104)
Summary:
En este artículo, se describe un script que se puede ejecutar en VxRail Manager para corregir la vulnerabilidad de Apache Log4Shell descrita en CVE-2021-44228, CVE-2021-45046 y
CVE-2021-4104 (artículo de Dell DSN-2021-007, artículo de VMware VMSA-2021-0028).
...
Please select a product to check article relevancy
This article applies to This article does not apply toThis article is not tied to any specific product.Not all product versions are identified in this article.
Apache Software Foundation publicó información acerca de un problema crítico de vulnerabilidad en la ejecución remota del código de la biblioteca Apache Log4j, que se conoce como Log4Shell según lo indicado en la base de datos de asesoría de GitHub (también se detalla en CVE-2021-44228, CVE-2021-45046 y CVE-2021-4104). VxRail Manager está expuesto al problema descrito en la vulnerabilidad.
Nota: Se informan dos CVE adicionales, CVE-2021-45046 y CVE-2021-4104, que indican que la recomendación original para corregir el problema descrito en CVE-2021-44228 (Log4j 2.x) no es una solución completa.
Para obtener más información sobre estas CVE, consulte los siguientes artículos:
Nota: El script de este artículo se actualizó a la versión 1.1.2, que incluye las correcciones recomendadas para las tres CVE, CVE-2021-44228, CVE-2021-45046 y CVE-2021-4104.
Se descubrió un problema adicional en el script anterior, lo que puede provocar que se restaure un archivo afectado en VxRail Manager a partir de un archivo del sistema. Este problema también se abordó en esta versión.
Si utilizó scripts anteriores que se proporcionaron con este artículo, descargue el script más reciente (1.1.2) y ejecútelo en VxRail Manager para asegurarse de tener la corrección completa.
Requisitos y alcance
El alcance de lo abarcado en los pasos de corrección en este artículo es:
Este artículo se aplica a VxRail Manager en las versiones 4.5.x, 4.7.x y 7.0.x de VxRail, junto con VxRail Manager en las versiones 3.x y 4.x de VCF.
Los pasos de corrección y el script proporcionados corrigen la vulnerabilidad solo en la VM del dispositivo VxRail Manager.
Otros componentes fuera de VxRail Manager, como vCenter Server Appliance (vCSA), NSX, etc., se deben mitigar por separado y no están en este script.
Además, el script no corrige las aplicaciones ni los servicios en ejecución en las VM que pueden estar expuestas a la vulnerabilidad. Dell EMC recomienda que todos los clientes verifiquen con sus proveedores de aplicaciones o software los servicios en ejecución en máquinas virtuales para asegurarse de que estos no se vean afectados.
Los enlaces a los productos de VMware afectados y las posibles soluciones alternativas se detallan en el siguiente artículo de VMSA de VMware:
Se adjunta a este artículo el archivo fixlog4j-CVE-2021-44228-CVE-2021-45046-v-1-1-2.zip, el cual contiene el script solo para VxRail Manager.
Versiones de VxRail con corrección incluida
Este problema se resolvió en las siguientes versiones del software VxRail:
Versión 7.0.320 del software del paquete de VxRail
Versión 4.7.541 del software de VxRail Appliance
Versión 4.5.471 del software de VxRail Appliance
Se recomienda actualizar a versiones del software de VxRail que incluyan la corrección. Se recomienda el script a los clientes que no puedan realizar la actualización de inmediato.
Nota: Si su clúster de VxRail 7.0.xxx es administrado por un vCenter administrado por el cliente, consulte el siguiente artículo para conocer las consideraciones adicionales que es posible que apliquen:
La corrección para este problema consiste en realizar los siguientes pasos:
Descargue el archivo fixlog4j-CVE-2021-44228-CVE-2021-45046-v-1-1-2.zip adjunto a este artículo.
Cargue el archivo.zip en VxRail Manager mediante un usuario oculto a través de SCP (WinSCP es un ejemplo de un cliente SCP que se puede utilizar).
Inicie sesión en la consola de la VM de VxRail Manager o mediante SSH con el usuario oculto.
Cambie el directorio a la ubicación en que cargó el archivo .zip y extráigalo mediante el comando para descomprimir: mystic@vxrm:~> unzip fixlog4j-CVE-2021-44228-CVE-2021-45046-v-1-1-2.zip Archivo: fixlog4j-CVE-2021-44228-CVE-2021-45046-v-1-1-2.zip aumento: fixlog4j-CVE-2021-44228-CVE-2021-45046.sh
Haga que el script sea ejecutable mediante el comando chmod: mystic@vxrm:~> chmod +x fixlog4j-CVE-2021-44228-CVE-2021-45046.sh
Inicie sesión como usuario raíz de VxRail Manager con el comando su: mystic@vxrm:~> su - Contraseña:
Asegúrese de que se encuentra en el mismo directorio en que descomprimió el paquete del script: vxrm:~ # cd /home/mystic vxrm:/home/mystic #
Ejecute el script: vxrm:/home/mystic # ./fixlog4j-CVE-2021-44228-CVE-2021-45046.sh
Ejemplo de resultado de script: Detenga MARVIN y ejecute el servicio runjars antes de aplicar parches en el sistema
/mystic/connectors/eservice/lib/log4j-core-2.13.0.jar se ve afectado por CVE-2021-44228 y CVE-2021-45046, por lo que se debe aplicar el parche aplicando parches /mystic/connectors/eservice/lib/log4j-core-2.13.0.jar Se aplicaron correctamente los parches /mystic/connectors/eservice/lib/log4j-core-2.13.0.jar
/mystic/connectors/cluster/lib/log4j-core-2.13.0.jar se ve afectado por CVE-2021-44228 y CVE-2021-45046, por lo que se debe aplicar el parche aplicando parches /mystic/connectors/cluster/lib/log4j-core-2.13.0.jar Se aplicaron correctamente los parches /mystic/connectors/cluster/lib/log4j-core-2.13.0.jar
Para asegurarse de que no se produzca un comportamiento de recarga, también debemos empaquetar el archivo .war. Parece que /usr/lib/vmware-marvin/marvind/webapps/ROOT.war contiene la biblioteca defectuosa log4j-core WEB-INF/lib/log4j-core-2.13.0.jar Archivo: /usr/lib/vmware-marvin/marvind/webapps/ROOT.war inflando: WEB-INF/lib/log4j-core-2.13.0.jar Aplicación de parches WEB-INF/lib/log4j-core-2.13.0.jar en /usr/lib/vmware-marvin/marvind/webapps/ROOT.war Reempaquete /usr/lib/vmware-marvin/marvind/webapps/ROOT.war actualizando: WEB-INF/lib/log4j-core-2.13.0.jar (disminución del 11 %) Limpie la carpeta ROOT…
Siempre reinicie los servicios runjars y MARVIN reinicie MARVIN reinicie MARVIN correctamente reinicie runjars runjars se reiniciaron correctamente
Nota: Es posible que la corrección de todos los archivos y el inicio de los servicios de VxRail Manager tarden entre 5 y 10 minutos.
Espere al menos 10 minutos si planea realizar cualquiera de los siguientes pasos de validación manual.
Hay varias versiones diferentes de la biblioteca lib4j-core según la versión de VxRail Manager.
El script se diseñó para corregir correctamente VxRail Manager, sin importar cuál sea la versión de lib4j-core incluida con esa versión de VxRail Manager.
Es posible que en el resultado anterior de la ejecución del script se muestren diferentes archivos en proceso de actualización según la versión de lib4j-core incluida.
Nota: Si realiza una actualización de VxRail a otra compilación de VxRail que no contenga una corrección, este script se debe ejecutar por segunda vez para volver a aplicar la corrección.
NOTA: La mitigación completa de VxRail requiere que se implemente la solución alternativa de vCenter Server Appliance (vCSA) de VMware y la corrección en VxRail Manager que realiza este script.
Para corregir el problema, el script elimina el archivo JndiLookup.class de los archivos jar lib4j-core-*.
Un archivo jar es un formato de paquete de Java para incluir múltiples clases, metadatos y otros programas de Java en un solo archivo. Es similar en concepto a un archivo .zip y se basa en este. La ejecución del script valida que cada archivo jar se ha actualizado correctamente.
Para realizar una validación manual de que el script funciona, puede comprobar si los archivos jar log4j-core-* presentes en VxRail Manager aún contienen el archivo JndiLookup.class afectado. Si funciona, no deben aparecer resultados con los siguientes comandos, lo que confirma que el archivo JndiLookup.class afectado ya no está presente en el archivo jar.
Validación con comando automatizado
El siguiente comando se puede ejecutar en VxRail Manager para escanear todos los archivos log4j-core-xxxx.jar presentes en VxRail Manager y comprobar si contienen el archivo JndiLookup.class afectado:
Resultado de muestra (sistema actualizado):
/mystic/connectors/eservice/lib/log4j-core-2.13.0.jar /mystic/connectors/cluster/lib/log4j-core-2.13.0.jar /usr/lib/vmware-marvin/marvind/webapps/ROOT/WEB-INF/lib/log4j-core-2.13.0.jar
En el ejemplo anterior, el archivo JndiLookup.class no está presente en jar, por lo que el script funcionó, y la verificación se realizó correctamente.
A continuación, se muestra el resultado de muestra de un sistema afectado que se debe actualizar:
/mystic/connectors/eservice/lib/log4j-core-2.13.3.jar 2892 2020-05-10 12:08 org/apache/logging/log4j/core/lookup/JndiLookup.class /mystic/connectors/cluster/lib/log4j-core-2.13.3.jar 2892 2020-05-10 12:08 org/apache/logging/log4j/core/lookup/JndiLookup.class /usr/lib/vmware-marvin/marvind/webapps/ROOT/WEB-INF/lib/log4j-core-2.13.3.jar 2892 2020-05-10 12:08 org/apache/logging/log4j/core/lookup/JndiLookup.class
En el ejemplo anterior, el archivo JndiLookup.class afectado aún está presente en el archivo jar log4j-core-2.13.3.jar.
Validación con comprobación manual de cada archivo
Para identificar rápidamente cualquier archivo log4j-core-xxxx.jar presente en VxRail Manager, ejecute el siguiente comando (esto también aplica un formato al resultado para que sea un comando utilizable):
vxrm:/home/mystic # find / -name log4j-core*jar -print |grep -v log4jbak | awk '{print("unzip -l " $1 "|grep JndiLookup.class")}’
En el resultado de muestra anterior, ejecute cada comando manualmente para ver si se detecta el archivo JndiLookup.class afectado:
vxrm:/home/mystic # unzip -l /mystic/connectors/eservice/lib/log4j-core-2.13.0.jar|grep JndiLookup.class vxrm:/home/mystic #
En el ejemplo anterior, el archivo JndiLookup.class no está presente en jar, por lo tanto, el script funcionó, y la verificación se realizó bien.
Nota: Los nombres de archivos jar en el resultado de muestra anterior pueden variar según su versión de VxRail Manager. Utilice el resultado de muestra que se indica con el comando find anterior.
Ejemplo del resultado de un archivo jar que aún se ve afectado y contiene el archivo JndiLookup.class afectado:
En el ejemplo anterior, el archivo JndiLookup.class afectado aún está presente en el archivo log4j-core-2.4.1.jar.
NOTA: Otro recordatorio de que para la mitigación completa de VxRail se necesita la implementación de la solución alternativa de vCenter Server Appliance (vCSA) de VMware y la corrección en VxRail Manager realizada por este script.