Hacker traza un meticuloso plan durante 2 años para colar un backdoor en casi todos los Linux del mundo
Un hacker traza un meticuloso plan durante largos 2 años para intentar colar un acceso a casi todos los sistemas Linux del mundo. Esto lo hizo modificando poco a poco líneas de código a la librería «libzlma» que sirve (entre otras cosas) para comprimir los datos que se envían en protocolos binarios como el del SSH lo que le permitiría crear un exploit y acceder a prácticamente cualquier servidor SSH de cualquier sistema que utilice dicha librería.
La modificación fue detectada por un desarrollador experto en seguridad que detectó que el acceso a una de sus sistemas tardaba 0,5 segundos más de lo habitual, empezó a enfadarse y a investigar el motivo y, (ventajas del software libre) pudo ver el código fuente y se dio cuenta que había un error en una librería llamada libzlma que tenía un backdoor que nadie había detectado antes.
Y es que, viendo quién subió ese código, parece ser que un hacker ha estado enviando modificaciones del código cada cierto tiempo a la librería (junto con modificaciones de otros archivos, manuales, etc.) hasta llegar a un momento en que la suma de todo su código era el propio backdoor.
¿Por qué no se detectó antes?
Este software cuenta con sistemas que detectan código erróneo (maligno, malificiente, malvado, …) pero el desarrollador puso un «punto» en un momento del código que provocaba un error en el sistema de testing del código y eso hacía que dejara de comprobar el resto del código donde se encontraba el código con la puerta trasera.
La detección de este bug ha provocado que hayan muchas versiones de SSH vulnerables, por lo que este fin de semana ha sido un momento ideal para comprobar las versiones de la librería y ver si utilizaban la versión vulnerable.
Cómo detectar si estamos comprometidos
Para comprobar si estamos usando la versión «peligrosa», podemos ejecutar en Linux el siguiente código:
strings `which xz` | grep "(XZ Utils)"
Si la versión que te devuelve es inferior a 5.6.0, entonces tienes una versión segura.
En caso contrario, habría que hacer un downgrade o, mejor aun, bloquear el SSH para evitar el acceso externo y permitir conectar por SSH únicamente mediante VPN (que sería lo mejor)
Las versiones comprometidas son la 5.6.0 y 5.6.1
Si utilizas una distribución basada en .deb o .rpm con glibc y xz-5.6.0 o xz-5.6.1:
- Si utilizas systemd con un ssh públicamente accesible: ACTUALIZA AHORA MISMO!!!
- Si no usas systemd con un ssh públicamente accesible: ACTUALIZA AHORA MISMO
- Si utilizas otro tipo de distribución:
- Con glibc y xz-5.6.0 o xz-5.6.1: ACTUALIZA AHORA MISMO
Enlace al reporte de seguridad: https://nvd.nist.gov/vuln/detail/CVE-2024-3094
Más información: https://gist.github.com/thesamesam/223949d5a074ebc3dce9ee78baad9e27