Log4j Ataque día 0

Autor: Hugo Galilea

Una falla en un software de uso común ha dejado a millones de servidores web vulnerables a la explotación por parte de piratas informáticos.

#Log4j es una librería de logs muy usada, basada en Java. Se estima que aproximadamente 13.000 millones de dispositivos utilizan Java, desde teléfonos a computadores, tablets y servidores. Todos ellos vulnerables a un ataque por este medio.

Mientras cientos o quizás miles de operadores de seguridad trabajan para parchar esta vulnerabilidad, los cibercriminales buscan la forma de identificar y vulnerar web servers al rededor del mundo. “The internet’s on fire right now” nos dijo Adam Meyers desde la empresa de seguridad informática Crowdstrike.

¿Qué ha sucedido?

El problema con Log4j fue identificado por primera vez en el videojuego Minecraft, pero rápidamente se hizo evidente que su impacto era mucho mayor. El software se utiliza en millones de aplicaciones web, incluido iCloud de Apple. Los ataques que explotan el error, conocidos como ataques Log4Shell, han estado ocurriendo desde el 9 de diciembre, dice Crowdstrike.

La directora de la Agencia de Seguridad de Infraestructura y Ciberseguridad (CISA) de EE. UU., Jen Easterly, dice que la falla de seguridad representa un «riesgo severo» para Internet. “Esta vulnerabilidad, que está siendo ampliamente explotada por un creciente grupo de actores de amenazas, presenta un desafío urgente para los defensores de las redes”, dice ella.

¿Qué es exactamente Log4j?

Casi todos los programas que utilice mantendrán registros de errores y otros eventos importantes, conocidos como registros o logs. En lugar de crear su propio sistema de registro, muchos desarrolladores de software utilizan Log4j de código abierto, lo que lo convierte en uno de los paquetes de registro más comunes del mundo.

¿Qué permite la falla hacer a los piratas informáticos?

Los atacantes pueden engañar a Log4j para que ejecute código malicioso forzándolo a almacenar una entrada de registro que incluya una cadena de texto en particular. La forma en que los piratas informáticos hacen esto varía de un programa a otro, pero en Minecraft, se ha informado que esto se hizo a través de cajas de chat. Se crea una entrada de registro para archivar cada uno de estos mensajes, por lo que si la cadena de texto peligrosa se envía de un usuario a otro, se implantará en un registro.

En otro caso, se descubrió que los servidores de Apple creaban una entrada de registro que registraba el nombre dado a un iPhone por su propietario en la configuración. Independientemente de cómo se haga, una vez logrado este truco, el atacante puede ejecutar cualquier código que desee en el servidor, como robar o eliminar datos confidenciales.

¿Por qué no se encontró este defecto antes?

El código que compone el software de código abierto puede ser visto, ejecutado e incluso, con controles y contrapesos, editado por cualquier persona. Esta transparencia puede hacer que el software sea más robusto y seguro, porque muchos pares de ojos están trabajando en él. Pero no se puede garantizar la seguridad de ningún software.

El problema que habilita el ataque Log4Shell ha estado en el código durante bastante tiempo, pero solo fue reconocido a fines del mes pasado por un investigador de seguridad de la empresa informática china Alibaba Cloud. Informó del problema de inmediato a la Apache Software Foundation, la organización estadounidense sin fines de lucro que supervisa cientos de proyectos de código abierto, incluido #Log4j, para que tenga tiempo de solucionar el problema antes de que se revele públicamente.

Esta divulgación responsable es una práctica estándar para errores como este, aunque algunos cazadores de errores también venderán tales vulnerabilidades a los piratas informáticos, lo que les permitirá usarlas silenciosamente durante meses o años de eventos, incluso en software de espionaje vendido a gobiernos de todo el mundo.

¿Qué debo hacer ahora?

Apache le dio a la vulnerabilidad una clasificación «crítica» y se apresuró a desarrollar una solución. Ahora, cientos de miles de equipos de TI se esfuerzan por actualizar Log4j a la versión 2.15.0, que se lanzó antes de que la vulnerabilidad se hiciera pública y, en su mayoría, soluciona el problema. Los equipos también deberán buscar en su código posibles vulnerabilidades y estar atentos a los intentos de piratería.

Si bien los parches para solucionar problemas como este pueden surgir muy rápidamente, especialmente cuando se revelan de manera responsable al equipo de desarrollo, todos necesitan tiempo para aplicarlos. Las computadoras y los servicios web son tan complejos ahora, y están tan superpuestos con docenas de niveles apilados de abstracción, código que se ejecuta en código, en código, que la actualización de todos estos servicios podría llevar meses.

Y siempre habrá algunos que nunca lo hagan. Muchos rincones polvorientos de Internet están respaldados por hardware antiguo con código vulnerable y obsoleto, algo que los piratas informáticos pueden aprovechar fácilmente.

La vulnerabilidad de día cero ofrece a los atacantes una forma sencilla de ejecutar código en cualquier servidor afectado y, en última instancia, de penetrar en las redes empresariales y los entornos de nube. Aunque algunas soluciones ya se han hecho públicas (como una actualización de la biblioteca), Log4Shell Attack sigue siendo una amenaza global apremiante y no hay una solución fácil para eso.

Es por esto que recomendamos tener una política de parchado eficiente, automatizada y monitoreada. Esta es la base para una buena defensa ante atacantes.

UPDATE (15-12-2021):
La solución para CVE-2021-44228 (log4shell) provoca una vulnerabilidad de DOS en Apache Log4j 2.15.0.
Parche para CVE-2021-45046 ha sido liberado. El antiguo es incompleto para ciertas configuraciones non-default.

UPTDATE (16.12.2021):
Ha sido revelada la nueva vulnerabilidad CVE-2021-45046 , tercera con referencia a la librería #LOG4J.

Esta nueva vulnerabilidad hace posible que los adversarios lleven a cabo ataques de denegación de servicio (DoS) y sigue la revelación de Apache Software Foundation (ASF) de que la solución original para la ejecución remota del código error CVE-2021-44228 también conocido como Log4Shell – estaba «incompleto en ciertas configuraciones non-default». Desde entonces, el problema se ha solucionado en la versión 2.16.0 de Log4j.

 

Parcha tu Log4j Ahora!

Click to Tweet