es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ataque JNDI de LOG4J CVE-2021-45105: vulnerabilidad en WSO2.

Mi proyecto actual está completamente dockerizado con un gran número de contenedores de Spring Boot. La mayoría de ellos están construidos con la versión 2+ de log4j (menos de 2.7 para Java 8). ¿Cómo proteger completamente la aplicación del ataque JNDI CVE-2021-45105?

Sé que la mejor solución posible es reconstruir esos contenedores con la versión de log4j, pero llevará tiempo y presupuesto.

Pero si desactivo la función de búsqueda a nivel de docker compose para cada contenedor, utilizando el siguiente comando, ¿funcionará?

“JVMEXTRAOPTS=-Dlog4j2.formatMsgNoLookups=true”

En segundo lugar, si elimino la clase JndiLookup del archivo jar log4j-core ‘zip -q -d log4j-core-*.jar’ y lo vuelvo a empaquetar, ¿afectaría alguna implementación de registro actual? En caso afirmativo, ¿qué funcionalidades pueden verse afectadas?

Si configuro la propiedad del sistema log4j2.formatMsgNoLookups=true, ¿funcionará? ¿Dónde debo establecer esta propiedad para detener la búsqueda?

Nota: Recientemente se me informó que también deberé manejar/eliminar las clases “JMSAppender” y “ServerSocket” del archivo jar log4j-core, ya que también pueden ser vulnerables.

Si no configuro JMSAppender y SocketAppender, ¿no deberían ser vulnerables? ¿O aún así necesito eliminarlos?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en Java y Log4j, recomendaría lo siguiente:

    1. Desactivar la función de búsqueda de JNDI a nivel de docker compose utilizando el comando “JVM_EXTRA_OPTS=-Dlog4j2.formatMsgNoLookups=true” es una buena solución temporal para proteger su aplicación del ataque JNDI CVE-2021-45105. Este comando deshabilitará la funcionalidad de búsqueda de JNDI en Log4j, lo que evitará que se active el exploit. Sin embargo, esta no es una solución permanente y se recomienda actualizar a una versión parcheada de Log4j lo antes posible.
    2. Eliminar el archivo JndiLookup.class del tarro log4j-core y volver a empaquetarlo puede afectar la implementación actual de registro. Es posible que las funcionalidades que dependen de la búsqueda de JNDI no funcionen como se espera después de realizar este cambio. Se recomienda probar minuciosamente la aplicación después de realizar este cambio.

    3. Configurar la propiedad del sistema “log4j2.formatMsgNoLookups=true” en el código de la aplicación o en los argumentos de línea de comando también desactivará la funcionalidad de búsqueda de JNDI en Log4j. Sin embargo, es importante asegurarse de que esta propiedad se configure antes de inicializar la biblioteca Log4j. Esto se puede hacer añadiendo la propiedad a los argumentos de línea de comando de JVM o como una propiedad del sistema en el código de la aplicación.

    4. Si no configura JMSAppender y SocketAppender, no deberían volverse vulnerables. Sin embargo, se recomienda eliminar estas clases del tarro log4j-core como medida de precaución.

    En resumen, la mejor manera de proteger completamente su aplicación del ataque JNDI CVE-2021-45105 es actualizar a una versión parcheada de Log4j. Sin embargo, mientras tanto, soluciones temporales como desactivar la funcionalidad de búsqueda de JNDI o eliminar clases vulnerables del tarro log4j-core pueden proporcionar cierto nivel de protección.

Comments are closed.