De parte del área de infraestructura se monitoriza de forma proactiva el perímetro de la empresa para informar, detectar y notificar urgentemente la presencia de esta vulnerabilidad, así como otras amenazas críticas que podrían causar un grave impacto sobre la seguridad de sus activos.
El pasado 29 de marzo, un desarrollador identificó la CVE-2024-3094, una vulnerabilidad crítica en XZ Utils (liblzma), un componente esencial en sistemas Debian sid. Andres Freund, el desarrollador en cuestión, tras notar actividades atípicas en su sistema, decidió llevar sus hallazgos a un foro de seguridad de código abierto. Su investigación reveló la presencia de una puerta trasera en las versiones 5.6.0 y 5.6.1 de XZ Utils, introducida por un contribuyente. Este incidente de seguridad ha sido catalogado bajo el identificador CVE-2024-3094, alertando a la comunidad de seguridad digital sobre la urgencia de mitigar esta amenaza.
En las versiones comprometidas de XZ Utils, se descubrió que el código malicioso inyectado, al ejecutarse, operaba dentro del mismo proceso que el servidor OpenSSH (SSHD). Este código alteraba las rutinas de descifrado en el servidor OpenSSH, permitiendo así que un atacante en posesión de una llave privada particular enviara código arbitrario a través de SSH. Las instrucciones enviadas se ejecutarían en un paso previo a la autenticación, concediendo al atacante control total sobre las máquinas afectadas, antes incluso de que se completara el proceso de autenticación, lo que representa una amenaza significativa para la integridad de los sistemas comprometidos.
Análisis técnico del backdoor
El código malicioso se integra en el servidor OpenSSH (proceso sshd), ya que liblzma, que incluye la puerta trasera, es un componente requerido en algunas versiones de OpenSSH. A continuación, veremos el flujo que sigue para ejecutar el payload enviado por el atacante:
1- El código malicioso intercepta la función RSA_public_decrypt, empleada originalmente para la validación de firmas RSA.
2- Cuando un cliente SSH realiza una conexión, el código malicioso obtiene el valor de N dentro de la estructura RSA enviada a la función RSA_public_decrypt.
3- A continuación, se descifran los últimos 240 bytes del valor “N” utilizando el algoritmo ChaCHa20 con una clave de descifrado incluida en el código malicioso.
0a 31 fd 3b 2f 1f c6 92 92 68 32 52 c8 c1 ac 28
34 d1 f2 c9 75 c4 76 5e b1 f6 88 58 88 93 3e 48
4- Tras este paso se verifica la validez de una firma de 114 bytes incluida en los datos descifrados haciendo uso del algoritmo de firma asimétrica de curva elíptica Ed448, utilizando la siguiente clave pública:
0a 31 fd 3b 2f 1f c6 92 92 68 32 52 c8 c1 ac 28
34 d1 f2 c9 75 c4 76 5e b1 f6 88 58 88 93 3e 48
10 0c b0 6c 3a be 14 ee 89 55 d2 45 00 c7 7f 6e
20 d3 2c 60 2b 2c 6d 31 00
5- Por último, el backdoor recupera la cadena que continúa la firma validada. Si la firma es válida, el texto, que contiene el comando a ejecutar, es pasado directamente a system() para su ejecución.
6- En caso de que el payload sea inválido el backdoor continúa la ejecución de la función RSA_public_decrypt de forma transparente y descarta el comando recibido.
Características principales de la CVE-2024-3094
A continuación, se detallan las características principales de esta vulnerabilidad.
- Identificador CVE: CVE-2024-3094
- Vector CVSS: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H (10 Crítico)
- Fecha de publicación: 29/03/2024
- Software Afectado: xz-utils
- Versiones afectadas:
- xz:5.6.0 y xz:5.6.1
Mitigación
Todas las principales distribuciones de Linux recomiendan volver a versiones anteriores a la inclusión de XZ Utils 5.6.0 y 5.6.1 o actualizarse a versiones más recientes.
Distribución | Versiones afectadas |
---|---|
Red Hat | Fedora Linux 40 y Fedora Rawhide |
Debian | No se conoce que ninguna versión estable de Debian esté afectada. Los paquetes comprometidos formaban parte de las distribuciones de prueba, inestables y experimentales de Debian, con versiones que van desde la 5.5.1alpha-0.1 (subida el 01-02-2024), hasta la 5.6.1-1 inclusive. |
Kali | La vulnerabilidad tuvo impacto en Kali desde el 26 hasta el 29 de marzo. Si actualizaste tu instalación de Kali en o después del 26 de marzo, es fundamental aplicar las actualizaciones más recientes hoy para resolver este problema. Sin embargo, si no actualizaste tu instalación de Kali antes del 26 de marzo, no estás afectado por esta vulnerabilidad. |
OpenSUSE | OpenSUSE Tumbleweed y OpenSUSE Micro OS estuvieron afectados entre el 7 y el 28 de marzo de 2024. |
Alpine | Versiones 5.6 anteriores a 5.6.1-r2 |
Arch | Versión 2024.03.01 Imágenes de máquinas virtuales 20240301.218094 y 20240315.221711 Imágenes de contenedores creadas entre el 24 de febrero de 2024 y el 28 de marzo de 2024, inclusive |
Detección de la vulnerabilidad CVE-2024-3094
La presencia de la vulnerabilidad CVE-2024-3094 puede ser identificada mediante la ejecución del siguiente comando en un entorno Linux que mostrará la versión actual de la librería.
strings which xz
| grep '5.6.[01]'
Referencias