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.

RepositoryTagLatest Tag?Manifest Digest
buildpack-depsuntagged5e4438a4660fff39ff4671bc5ecfaea3e639dafe61d5c19c735335c96d61c1e4
buildpack-depsuntagged443be2e684c2974f94329fe904ab025826cd45f4a1dc52a922e5b01e66e75ee0
buildpack-depsuntagged8f95f8a59ac3227cb7483799a6836e9c79d5cef491ba672c1958abdf36bf7648
buildpack-depsuntaggedbf7c5e7df1344c29825cecf0b13a48e3542d9076344bb488f886f9dfce534e05
buildpack-depsuntagged8d5e5912bc9fdc287f89b87e7b97a615110842f6c6f3ed380dccef85a75ef6cc
buildpack-depsuntaggedd650be418934c90f6e9e3efcb52bef7ad660324074002efb8541e7baf9aab6d8
neurodebianuntagged388d46f65da097cd9371385d9c2f3f3fe04d4bc88b529b52125b9f94d74edaff
neurodebianuntagged7ffa336b9a0f2e594d1df70ce66a259db156902baa371337a6bfaae2eefa4de3
r-baseuntagged3b5c502ccd9d4a6c0937a6bfc51e02741bdc7c520fe458ce4d9c136553df42b0
georchestra/jenkins-buildersid-jdk-8YESd7ad7c3386a874e81006bc6fab0ce7eb5cf227f4a1c2d3dff7850e17ff7a5f48
myoung34/github-runner2.315.0-debian-sidNO8c0c44b7404fdcdc52f4c04d41b2a674510ac98f21fb81cd68575be30eeb51a7
slash5toaster/calibre7.7.0NOfa5dcddaa909b76a8b6c5fb44a8eb833ab2f407f81cc7185a9c299e02cc1c2ef
flowgunso/seafile-client9.0.4NOb6d1c3b9232874356dee489685528f94c048e6683573cdb5b0a0b106e3d85708
makepad/opencvtrixie-4.8.1NO153319e41415b5a789704e31017aff2e2c8223c2e155875947639935fa4f72ca
makepad/opencvtrixie-4.8.0NO1b5b2b14dc1262074e0b933ae8a483a5f21c5fc2e9dd42f0b7e8f2fa2ebc12a0
makepad/opencvtrixie-4.7.0NO060fddaf2879513e900d0e93097c3096f541ca871c390639bb6cb67c6fd1bc84
makepad/opencvtrixie-4.9.0YES2fdc5fa0c19fe4e04d3117477f49b8b7e0e4124290d9f4270f215f8e7c5b9078
makepad/opencvtrixie-slim-4.8.0NOf5e90754a89e6837c7b5165b57ffd4d5d66990d798bfce1018048b7ac21f0e6a
makepad/opencvtrixie-slim-4.9.0YES7a4e5b592b318a38542dd21f87a810263d39a3b4caf9d85bb973594264a38fca
makepad/opencvtrixie-slim-4.8.1NOcdb95cc294d7ea4f1703e817674c477e99a80be16a6c980f88365f77c195f0f0
makepad/opencvtrixie-slim-4.7.0NO94a10719a142f3b11c6d8cd4bc88b415a163f7052061c22222df7c4c96a95aa2
optionfactory/debian1380NO1dedf1ad124f7eff12011122565bed92c207d3cd1c9b650a40fb680d846bd515
optionfactory/debian1381NO1dedf1ad124f7eff12011122565bed92c207d3cd1c9b650a40fb680d846bd515
controlplane/sectoolslatestYES86090b316ad096e53c81f91e94ac2ae95c2f28feee10ce8ec32aa573d8263021

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.

TagManifest DigestBlob Hash
rc-buggy-20240311a702c7f4bb57a17762e258871f45f8273ae49bec5515452d5133e66450c95ba53a737ad8ab65fe5ad068d6094fbf99ce9ed2b5beff9c86daceee8c2c50182bde
experimental-2024031181992d9d8eb99b5cde98ba557a38a171e047b222a767dc7ec0ffe0a194b1c469cd5a0401cc26824227d6ffe1f921e91657dc46666e0f20f408d8d154ca49f5c0
unstable-20240311-slim7a3332fbf100a0ef9762ead20a4224665768b237c5bfedfe0f86bf88e0c13b7a40f436db82f2316ccced5a0deef57fac6eb766b073d7e64d5dfe93e6782482b1
unstable-202403118690225da3ca369e9be720446f73e0aa06f290776fdf2605b6ec80c2b229b9f6cd5a0401cc26824227d6ffe1f921e91657dc46666e0f20f408d8d154ca49f5c0
trixie-20240311-slimd4e306f14b8b7389b36be8fb0eadab638cb7744546a33a74f0fc27bb9037dc14b94224647092fbfb1fa9ceb18cf55a60f5a00183971516dd46f1f72f5f7b26df
trixie-2024031185068c773f7fcc9c9acd8f244759cb2131e7a1775c5bf8d6710f76e7467fa3f193e647bfd891e82156d7a13e0f0b194003855008967ec51e962ea0d70fc59ff6
testing-20240311-slimc2e15dd5788b20f360ab3f2d8b60111b6e8b011c5c4960e0129551c743f5cd30243521c5a6cd930662c078eec5f83156663f3197cf12158ce60e0a0f9d0a3eb6
testing-202403110746d89c588160d0470beaae7a55e38305ede06cb5717d132bd6a795610234d8522a6d12a8a3032c984d93fd141274f1cb7cc1e9a6942e3b36cbf803bbe36a12
sid-20240311-slim94596b0770714bac6e8adef7e1d3dbc16245ad2978f94006587e44850343cb88554b70c8b9ed0854851a55e915cefa47cdc18fed201b4aba87193d575410b53d
sid-202403110aff2113f50451631f0f8c22d85c97aad855d73545b6018fcbe9f0a78ae265833a737ad8ab65fe5ad068d6094fbf99ce9ed2b5beff9c86daceee8c2c50182bde
untaggedfa2016c58b4df666286dfa14b2402c05d60c556ecfd4c60635b64ad21380edba93e647bfd891e82156d7a13e0f0b194003855008967ec51e962ea0d70fc59ff6
untaggede24f4205978e6c0f98697e2075439825f86df56457d2d1ea9e0f8593cf5b5236522a6d12a8a3032c984d93fd141274f1cb7cc1e9a6942e3b36cbf803bbe36a12

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.

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í