esenfrdeitptru

CVE-2021-44228 Log4shell - Resumen y mitigaciones

AS-126-2021

Fecha: 13/12/2021

Descripción:

Vulnerabilidad de ejecución de código remoto que afecta a la librería de registro de logs de Java Apache Log4j 2, herramienta desarrollada por Apache Foundation en las versiones a partir de la 2.0.0 y antes de la 2.17.0.

La vulnerabilidad afecta a varios productos de software inhouse y comerciales debido a que el uso de la librería es extendido. Y se aprovecha de la inyección de clases maliciosas a través de JNDI utilizando LDAP, CORBA, DNS, RMI para su explotación.

Además, la rama 1.x de la librería se encuentra en EOL, y puede ser susceptible a este fallo si implementa JNDI. La versión 1.x no recibirá soporte de sus creadores.

Impacto.

Un atacante remoto puede ejecutar código arbitrario en el servidor a través JNDI del servicio afectado, permitiéndole incluso tomar control total del equipo.

Conforme CVSS el impacto se cataloga como CRÍTICO y es fundamental actualizar la versión del paquete afectado, o aplicar las mitigaciones del caso.

Productos afectados.

Varios productos comerciales de empresas como VMWARE, Redhat, Cisco, etc, y servicios de nube como Apple, Amazon, Twitter, entre otros, se encuentran reportados como vulnerables. De igual manera, productos desarrollados inhouse, y soluciones de software libre que implementan la librería están expuestas al riesgo crítico.

A continuación, una lista completa de los productos en los que se ha detectado la presente vulnerabilidad e información sobre sus respectivas mitigaciones: https://github.com/NCSC-NL/log4shell/tree/main/software

Mitigaciones.

1) Identifique los productos vulnerables comerciales, libres y de desarrollo propio que puedan contener la librería. Genere un inventario de los posibles productos afectados.

2) Aplique el parche, o la mitigación conforme las instrucciones del fabricante. En el caso de desarrollos inhouse, actualice la librería y compile el producto de nuevo de ser necesario.

3) Para los desarrollos inhouse, o soluciones de software libre aplicar lo siguiente:

3.1) Identifique el componente vulnerable de log4j con los siguientes comandos:

Para Linux:

find / 2>/dev/null -regex ".*.jar" -type f | xargs -I{} grep JndiLookup.class "{}"

Para Windows:

gci 'C:\' -rec -force -include *.jar -ea 0 | foreach {select-string "JndiLookup.class" $_} | select -exp Path

Si el resultado muestra el nombre de la librería log4j-core-version.jar, en donde version corresponde al rango de la 2.0.0 a la 2.14.1, existe coincidencia por lo tanto su producto presenta la versión vulnerable a ejecución remota de código.

3.2) Elimine el archivo JndiLookup.class de la librería log4j-core-version.jar utilizando un software de compresión como zip, winrar,etc. Ejemplo:
zip -q -d /path/libreria/log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
y compruebe nuevamente que esta clase haya desaparecido, con los comandos del punto 3.1.

3.3) Si no puede eliminar la clase JndiLookup.class, entonces aplique la directiva -Dlog4j2.formatMsgNoLookups=true en las JVM_OPTIONS. Reinicie el servicio, y para comprobar que la directiva se encuentra presente, puede ejecutar el siguiente comando en Linux:
ps aux | grep java | grep Dlog4j2.formatMsgNoLookups

4) Active, en modo bloqueo, las firmas de seguridad CVE-2021-44228 de sus dispositivos de seguridad (firewall, waf, ips, ids) para prevenir/detener los ataques a su infraestructura. Ejemplo:

• Checkpoint: https://supportcenter.us.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk176884
• Palo Alto: https://unit42.paloaltonetworks.com/apache-log4j-vulnerability-cve-2021-44228/
• Fortinet: https://www.fortiguard.com/outbreak-alert/log4j2-vulnerability

5) Verifique, a través de los archivos de log, si su servidor fue escaneado. Para ello puede utilizar los siguientes comandos en Linux:

sudo egrep -i -r '\$\{jndi:(ldap[s]?|rmi|dns):/[^\n]+' /var/log

sudo find /var/log -name \*.gz -print0 | xargs -0 zgrep -E -i '\$\{jndi:(ldap[s]?|rmi|dns):/[^\n]+'


6) Escanee sus servicios con herramientas de detección de vulnerabilidades como:

https://github.com/Neo23x0/log4shell-detector

https://github.com/fullhunt/log4j-scan


7) En caso de que se detecte la explotación del fallo en un equipo, aíslelo de la red y notifique a su oficial de seguridad informática o CSIRT.


Referencias:

https://access.redhat.com/security/cve/cve-2021-44228

https://blog.cloudflare.com/inside-the-log4j2-vulnerability-cve-2021-44228/

https://unit42.paloaltonetworks.com/apache-log4j-vulnerability-cve-2021-44228/

https://blog.talosintelligence.com/2021/12/apache-log4j-rce-vulnerability.html

Tlp Clear 2023