El backdoor más famoso del año pasado aún infecta contenedores disponibles públicamente en Docker Hub

A finales de marzo del año pasado, toda la comunidad de ciberseguridad quedó conmocionada por el descubrimiento del infame backdoor de XZ Utils. ‘Jia Tan’, un desarrollador que había pasado dos años construyendo credibilidad significativa en el proyecto a través de numerosas contribuciones, insertó una sofisticada puerta trasera en los paquetes xz-utils. El descubrimiento puso a los expertos en ciberseguridad, incluyendo al equipo de Binarly REsearch, a trabajar frenéticamente para realizar ingeniería inversa del backdoor y comprender su alcance e impacto potencial.

La naturaleza del ataque

En resumen, la puerta trasera estaba incrustada en la biblioteca liblzma.so, utilizada por el servidor OpenSSH, y se activa cuando un cliente interactúa con el servidor SSH infectado. El objetivo final del código malicioso es instalar tres hooks en el contexto del proceso sshd, dirigidos a las funciones RSA_public_decrypt, RSA_get0_key, y EVP_PKEY_set1_RSA, habilitando así la funcionalidad de la puerta trasera.

Esto se logra a través de una sofisticada secuencia de hooks, iniciada por resolvers IFUNC modificados para lzma_crc32 y lzma_crc64 en la biblioteca liblzma.so. El año pasado, el equipo de Binarly lanzó un análisis exhaustivo detallando la cadena de hooks y la funcionalidad del backdoor.

El impacto real en la cadena de suministro

Lo que realmente destacó en esta historia es que el impacto del backdoor no fue solo teórico, ya que los paquetes maliciosos de xz-utils que contenían la puerta trasera fueron distribuidos por varias distribuciones importantes de Linux, incluyendo Debian, Fedora y OpenSUSE. Esto tuvo serias implicaciones para la cadena de suministro de software, ya que se volvió desafiante identificar rápidamente todos los lugares donde la biblioteca comprometida había sido incluida.

En 24 horas, Binarly lanzó XZ.fail, una herramienta gratuita basada en análisis estático diseñada para detectar resolvers IFUNC sospechosos con casi cero falsos positivos.

Nuevos hallazgos: contenedores Docker infectados

En este análisis, Binarly comparte un nuevo hallazgo en la saga de XZ Utils: varias imágenes Docker construidas durante el tiempo del compromiso contienen el backdoor.

A primera vista, esto podría no parecer alarmante: si los paquetes de distribución estaban comprometidos, entonces cualquier imagen Docker basada en ellos estaría infectada también. Sin embargo, lo que descubrieron es que algunas de estas imágenes comprometidas siguen estando disponibles públicamente en Docker Hub. Y aún más preocupante, otras imágenes han sido construidas sobre estas imágenes base infectadas, haciéndolas transitivamente infectadas.

Alcance del problema

En total, identificaron más de 35 imágenes que incluyen el backdoor. Aunque esto puede parecer un número pequeño, solo escanearon una pequeña porción de las imágenes publicadas en DockerHub, deteniéndose en imágenes de segundo orden. Además, se enfocaron únicamente en imágenes de Debian, ya que conservan datos históricos en Docker Hub.

El impacto en imágenes Docker de Fedora, OpenSUSE y otras distribuciones que fueron afectadas por el backdoor de XZ Utils permanece desconocido en este momento.

Puertas traseras persistentes en Docker Hub

En Binarly, siempre se esfuerzan por entregar resultados significativos a sus clientes, aumentando su visibilidad sobre riesgos de seguridad reales y reduciendo falsos positivos. Para lograr esto, constantemente perfeccionan sus herramientas para mantenerse adelante de las amenazas en evolución y entregar insights precisos y accionables.

El descubrimiento

Recientemente, recopilaron un dataset masivo de casi 15TB de imágenes Docker, que utilizaron exitosamente para mejorar sus capacidades de encontrar secretos. Dado el esfuerzo requerido para construir el dataset, decidieron perfeccionar otras capacidades de la Binarly Transparency Platform, específicamente los análisis relacionados con detecciones de código malicioso.

Esta suite de análisis automatizados se enfoca en tipos comunes de modificaciones, como anomalías en archivos ELF y varias técnicas de hooking, incluyendo el método de hooking IFUNC utilizado por ‘Jia Tan’ para implementar el backdoor.

Durante este proceso, descubrieron que 12 imágenes Docker de Debian disponibles en Docker Hub aún contienen el backdoor de xz-utils, más de un año después del descubrimiento público del backdoor.

Divulgando nuestros hallazgos

Al descubrir este problema, Binarly notificó inmediatamente a los mantenedores de Debian y solicitó la eliminación, pero las imágenes afectadas permanecen en su lugar.

Figura 1. Respuesta del mantenedor de Debian a nuestra divulgación

Solo parcialmente estamos de acuerdo con esta respuesta: aunque es cierto que los usuarios deberían confiar en imágenes actualizadas, dejar imágenes Docker públicamente disponibles que contienen una puerta trasera potencialmente accesible por red representa un riesgo de seguridad significativo. Incluso si el impacto práctico de este problema es algo limitado, dado que la explotación requiere que los propietarios de la clave de la puerta trasera tengan acceso de red al dispositivo o contenedor infectado con el servicio SSH ejecutándose.

No obstante, nuestro descubrimiento subraya cómo incluso las compilaciones comprometidas de corta duración pueden pasar desapercibidas y persistir en registros de contenedores durante mucho tiempo.

Respondiendo a incidentes similares a «XZ Utils» con la Plataforma de Transparencia Binarly

Los incidentes de seguridad que afectan la cadena de suministro de software son más frecuentes que nunca. Esta es una de las motivaciones clave para construir la Plataforma de Transparencia Binarly: queremos empoderar a investigadores de seguridad, equipos de seguridad de productos y organizaciones con las herramientas adecuadas que necesitan para detectar y remediar amenazas efectivamente.

Desde el primer día, los clientes de BTP tuvieron acceso a un análisis preciso desarrollado por nuestro equipo de investigación para detectar hooking basado en IFUNC, que es la misma técnica utilizada en la puerta trasera de XZ. Esta es la misma tecnología que impulsa xz.fail, una herramienta gratuita de escaneo que Binarly lanzó para apoyar a la comunidad en general y ayudar a las organizaciones afectadas a responder a esta amenaza.

Una de las últimas adiciones a nuestra plataforma, presentada la semana pasada en Black Hat USA, es la integración de reglas YARA. Parte de esta integración es un nuevo Rule Playground diseñado para ayudar a los usuarios de la plataforma a desarrollar reglas YARA. En solo unos minutos, las organizaciones pueden escanear todo su portafolio de software usando reglas YARA, ya sean desarrolladas internamente o provenientes de la comunidad de seguridad más amplia.

Conclusión

El incidente de la puerta trasera de xz-utils demuestra que incluso el código malicioso de corta duración puede pasar desapercibido en imágenes oficiales de contenedores durante mucho tiempo, y que puede propagarse en el ecosistema Docker. El retraso subraya cómo estos artefactos pueden persistir silenciosamente y propagarse a través de pipelines de CI y ecosistemas de contenedores, reforzando la necesidad crítica de monitoreo continuo a nivel binario más allá del simple seguimiento de versiones.

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí