Remediación de vulnerabilidad Apache Log4j en vCenter Server
Hola, este nuevo post mostraré como realizar la remediación de la vulnerabilidad de Apache Log4j Remote Code Execution (RCE) identificada como crítica según el equipo de seguridades de VMware bajo el VMSA (VMware Security Advisory) VMSA-2021-0028.2. Hablemos un poco de esta vulnerabilidad.
Apache Log4j Remote Code Execution (RCE)
La vulnerabilidad se encuentra indexada en el CVE (Common Vulnerabilities and Exposures) CVE-2021-44228 publicada el 10 de diciembre de 2021 y tiene como puntuación de 10/10 en la escala de severidad.
El fallo consiste en una vulnerabilidad de ejecución remota de código que permite que un atacante ejecute cualquier código en un servidor afectado, valiéndose de una de las librerías de registro más usadas basada en java (Log4j). VMware no queda por fuera de esta vulnerabilidad ya que varios productos trabajan con la librería, los productos afectados se los encuentra en la VMSA-2021-0028.2.
Para mayor información recomiendo esta lectura muy interesante que expusieron en el blog de seguridad de VMware Investigating CVE-2021-44228 Log4Shell Vulnerability
Remediación de vulnerabilidad en vCenter Server 7.x y 6.x
El equipo de VMware tiene una solución alterna o workaround que mitigarán momentáneamente este problema, sin embargo se debe seguir la recomendación del VMSA y actualizar con un nuevo parche cuando esté disponible.
Los pasos para seguir se encuentran documentados en los KBs: 87081 y 87088, en este segmento, vamos a realizar el workaround usando un script automatizado.
Primero debemos descargarnos el script vmsa-2021-0028-kb87081 que está disponible en la página del KB-87088 y luego subimos al vCenter Server a la ubicacion /tmp, podemos usar WinSCP, por si da problemas la conexión el comando a usar para habilitar el Bash Shell:
chsh -s /bin/bash root
Para desactivar se corre el comando:
chsh -s /bin/appliancesh root
Una vez que tenemos el script, y luego de haber realizado un snapshot de preferencia con la VM apagada. Debemos correrlo usando las sentencias:
python /tmp/vmsa-2021-0028-kb87081.py
Esperamos que el script haya finalizado
Segundo debemos descargarnos el script remove_log4j_class que está disponible en la página del KB-87081 y luego subimos al vCenter Server a la misma ubicacion /tmp, para ejecutarlo, con la siguiente sentencia eliminamos las vulnerabilidades:
python /tmp/remove_log4j_class.py
Validamos usando la opción "dry-run" del script en el cual no debe salir información de archivos vulnerables.
python /tmp/remove_log4j_class.py -r
Además, se debe verificar si los cambios afectaron al servicio vMon que inicie con el nuevo parámetro -Dlog4j2.formatMsgNoLookups=true, ejecutando el comando:
ps auxww | grep formatMsgNoLookups
Y por último, analizar el cambio en los servicios Analytics y CM los cuales deben devolver el valor de 0 lineas, usando los comandos respectivamente:
grep -i jndilookup /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar | wc -l
grep -i jndilookup /usr/lib/vmware-cm/lib/log4j-core.jar | wc -l
En vCS versión 7.x se debe validar adicional el cambio en el servicio de Update Manager, usando el siguiente comando:
/usr/lib/vmware-updatemgr/bin/jetty/java -jar start.jar --list-config
La respuesta debe ser log4j2.formatMsgNoLookups = true bajo la opción System Properties
Finalmente, debemos estar pendientes de las actualizaciones del VMSA para actualizar nuestros vCS, el workaround es una solución temporal, la remediación definitiva vendrá como PARCHE de las versiones de vCS.
Tags: mantenimiento, Tecnología, vCenterServer, vCSA, Appliance, vulnerabilidad, logshell, vmsa, cve, cve-2021-44228, cve-2021-45056