La puerta trasera XZ: lo que se sabe

El flagelo de los ataques a la cadena de suministro de software es una técnica de ataque informático cada vez más común que oculta código malicioso en un programa legítimo ampliamente utilizado y puede adoptar muchas formas.

Los delincuentes informáticos pueden penetrar un servidor de actualización para dejar su malware, o incluso ingresar a la red donde se desarrolló el software para corromperlo desde el código fuente. O, en el caso de un atacante de la cadena de suministro de software como el reciente backdoor en XY Utils, donde los atacante pasaron dos años “ofreciendo ayuda cortésmente”.

La puerta trasera en XZ Utils

Durante el fin de semana pasado, la comunidad de ciberseguridad y software de código abierto quedó impactada por la noticia de que una versión experimental relativamente nueva de XZ Utils (una utilidad de compresión integrada en muchas distribuciones populares de Linux) contenía una puerta trasera que habría permitido a los delincuentes informáticos, en posesión de un clave privada específica, conectarse al sistema de puerta trasera y ejecutar sus propios comandos como administrador.

Sólo un trabajo de detective casual llevado a cabo por un solitario ingeniero de Microsoft, Andrés Freund, que había detectado un extraño retraso en la ejecución del protocolo de conexión remota SSH en una versión de la variante de Linux Debian, captó el truco de espionaje antes de que terminara en muchos millones de sistemas en todo el mundo.

Esa puerta trasera de XZ Utils, ahora está claro, fue insertada nada menos que por el principal mantenedor del código de XZ Utils, un desarrollador que se hacía llamar “Jia Tan”. A raíz del descubrimiento de la puerta trasera, un misterio se filtra en el mundo de la tecnología: ¿quién es Jia Tan y para quién trabajó realmente él o ella (o muy probablemente ellos)?

Jia Tan aprovechó el enfoque de codificación colaborativo del software de código abierto mediante el cual cualquiera puede sugerir cambios a un programa en repositorios de código como GitHub, donde otros programadores revisan los cambios antes de integrarlos en el software. Un vistazo a la historia documentada de Jia Tan en el mundo de la programación de código abierto revela que aparecieron por primera vez en noviembre de 2021 con el nombre de usuario de GitHub JiaT75, luego hicieron contribuciones a otros proyectos de código abierto usando el nombre Jia Tan, o a veces Jia Cheong Tan, durante más de un año antes de comenzar a enviar cambios a XZ Utils.

En enero de 2023, el código de Jia Tan se estaba integrando en XZ Utils. Durante el próximo año, tomarían en gran medida el control del proyecto de manos de su mantenedor original, Lasse Collin, un cambio impulsado en parte por correos electrónicos molestos enviados a Collin por un puñado de usuarios quejándose de actualizaciones lentas. No está claro si esos usuarios fueron cómplices involuntarios o si realmente trabajaron con Jia Tan para persuadir a Collin de que renunciara al control. Finalmente, Jia Tan agregó su puerta trasera sigilosa a una versión de XZ Utils en febrero de este año.

Ese enfoque inhumanamente paciente, junto con las características técnicas y la sofisticación de la propia puerta trasera, ha llevado a muchos en el mundo de la ciberseguridad a creer que Jia Tan debe, de hecho, ser un identificador operado por atacantes informáticos patrocinados por el Estado (y muy buenos).

“Esta operación de varios años fue muy astuta y la puerta trasera implantada es increíblemente engañosa”, dice Costin Raiu, quien hasta el año pasado se desempeñó como investigador principal y jefe del equipo de investigación y análisis global de la firma rusa de ciberseguridad Kaspersky. “Yo diría que se trata de un grupo respaldado por un Estado-nación, uno con objetivos a largo plazo en mente y que permite invertir en la infiltración de varios años en proyectos de código abierto”.

En cuanto a qué nación, Raiu nombra a los sospechosos habituales: China, Rusia y Corea del Norte. Dice que todavía es demasiado pronto para conocer al verdadero culpable. “Una cosa está clara. Esto fue más astuto que todos los ataques anteriores a la cadena de suministro de software que he visto”.

Un programador muy privado y muy ocupado

A medida que ha aumentado el escrutinio en torno a Jia Tan desde la revelación de la puerta trasera de XZ Utils el viernes pasado, los investigadores han notado que la persona tiene una seguridad operativa notablemente buena. El reportero de seguridad independiente Brian Krebs escribe que no pudo encontrar ningún rastro cero de la dirección de correo electrónico de Jia Tan fuera de los mensajes que enviaron a otros contribuyentes de código abierto, incluso después de rastrear las bases de datos violadas. Jia Tan también parece haber enrutado todas sus comunicaciones a través de una VPN con una dirección IP de Singapur.

La falta de cualquier otra presencia en línea vinculada a Jia Tan apunta a que la cuenta es una “persona inventada con un solo propósito” e indica cuánta sofisticación, paciencia y pensamiento se puso en el desarrollo de la puerta trasera, dice Will Thomas, instructor de SANS Institute, una empresa de formación en ciberseguridad. La personalidad de Jia Tan ha desaparecido desde que se descubrió la puerta trasera. La cuenta de GitHub de Jia Tan ha sido suspendida, según le dice a WIRED un portavoz de la compañía.

De hecho, las únicas huellas reales que Jia Tan parece haber dejado atrás fueron sus contribuciones a la comunidad de desarrollo de código abierto, donde fueron un colaborador prolífico: de manera inquietante, el primer cambio de código de Jia Tan fue a la biblioteca de compresión “libarchive”, otro componente muy ampliamente utilizado. Ese primer cambio intercambió una función con una alternativa menos segura, potencialmente intentando otro cambio de código malicioso, señala el desarrollador Evan Boehs en su detallada cronología de Jia Tan, aunque el problema ya se solucionó.

En total, Jia Tan realizó 6.000 cambios de código en al menos siete proyectos entre 2021 y febrero de 2024, según Michael Scott, cofundador de la empresa de ciberseguridad NetRise, que anteriormente trabajó en el grupo de guerra cibernética del Cuerpo de Marines bajo el Comando Cibernético de EE.UU.

Determinar todos los efectos ramificados de esos cambios es casi imposible, afirma Scott. Debido a que esos cambios, conocidos como “confirmaciones”, a menudo se agrupan en colecciones en un proceso conocido como “aplastamiento de confirmaciones”, no siempre es evidente qué cambios exactos realizó Jia Tan. Y la dificultad de rastrear cuál de las muchas versiones de una biblioteca como libarchive terminó en qué software agrega otra capa de ofuscación. “Va a ser un poco complicado tirar de este hilo y tratar de descubrir dónde terminaron todas estas cosas”, dice Scott.

Scott señala que, durante todo este tiempo, Jia Tan también estuvo enviando correos electrónicos a otros contribuyentes, escribiendo en un tono “muy conciso, muy seco”, pero no hostil, que Scott compara con el resultado de ChatGPT. Jordi Mas, un desarrollador que contribuyó a XZ Utils y había enviado “comentarios” por correo electrónico de Jia Tan, dice en retrospectiva que la cuenta fue a niveles adicionales para generar confianza en la persona.

En última instancia, Scott sostiene que esos tres años de cambios de código y correos electrónicos corteses probablemente no se dedicaron a sabotear múltiples proyectos de software, sino a construir una historia de credibilidad en preparación para el sabotaje de XZ Utils específicamente, y potencialmente de otros proyectos en el futuro. “Simplemente nunca llegó a ese paso porque tuvimos suerte y encontramos sus cosas. Así que eso ya está quemado y tendrá que volver al punto de partida”.

Tics técnicos y zonas horarias

A pesar de la personalidad de Jia Tan como un solo individuo, su preparación de años es un sello distintivo de un grupo de hackers bien organizado y patrocinado por el estado, argumenta Raiu. También lo son las características técnicas del código malicioso XZ Utils que agregó Jia Tan.

Raiu señala que, a primera vista, el código realmente parece una herramienta de compresión. “Está escrito de una manera muy subversiva”, dice. También es una puerta trasera “pasiva”, dice Raiu, por lo que no llegaría a un servidor de comando y control que podría ayudar a identificar al operador de la puerta trasera. En cambio, espera a que el operador se conecte a la máquina de destino a través de SSH y se autentique con una clave privada, una generada con una función criptográfica particularmente potente conocida como ED448.

El cuidadoso diseño de la puerta trasera podría ser obra de hackers estadounidenses, señala Raiu, pero sugiere que eso es poco probable, ya que Estados Unidos normalmente no sabotearía proyectos de código abierto y, si lo hiciera, la Agencia de Seguridad Nacional probablemente usaría un sistema criptográfico resistente a los cuánticos. La función ED448 no es. Eso deja a los grupos no estadounidenses con un historial de ataques a la cadena de suministro, sugiere Raiu, como el China’s APT41North Korea’s Lazarus Group, y Russia’s APT29.

A primera vista, Jia Tan ciertamente parece del este de Asia, o debería parecerlo. La zona horaria de los compromisos de Jia Tan es UTC+8: esa es la zona horaria de China, y está a sólo una hora de la de Corea del Norte. Sin embargo, un análisis realizado por dos investigadores, Rhea Karty y Simon Henniger, sugiere que Jia Tan simplemente pudo haber cambiado la zona horaria de su computadora a UTC+8 antes de cada confirmación. De hecho, varias confirmaciones se realizaron con una computadora configurada en una zona horaria de Europa del Este o del Medio Oriente, tal vez cuando Jia Tan olvidó hacer el cambio.

“Otro indicio de que no son de China es el hecho de que trabajaron en días festivos chinos importantes”, dicen Karty y Henniger, estudiantes del Dartmouth College y de la Universidad Técnica de Munich, respectivamente. Señalan que Jia Tan tampoco envió un nuevo código en Navidad o Año Nuevo. Boehs, el desarrollador, añade que gran parte del trabajo comienza a las 9am y termina a las 5pm para las zonas horarias de Europa del Este o Medio Oriente. “El rango de tiempo de los compromisos sugiere que este no fue un proyecto que hicieron fuera del trabajo”, dice Boehs.

Aunque eso deja a países como Irán e Israel como posibilidades, la mayoría de las pistas conducen a Rusia, y específicamente al grupo de hackers APT29 de Rusia, sostiene Dave Aitel, ex hacker de la NSA y fundador de la empresa de ciberseguridad Immunity.

Aitel señala que APT29, que se cree que trabaja para la agencia de inteligencia extranjera de Rusia, conocida como SVR, tiene una reputación de atención técnica que pocos grupos de hackers tienen. APT29 también llevó a cabo el compromiso de Solar Winds, quizás el ataque a la cadena de suministro de software más hábilmente coordinado y eficaz de la historia. En comparación, esa operación coincide mucho más con el estilo de la puerta trasera de XZ Utils que con los ataques más crudos a la cadena de suministro de APT41 o Lazarus.

“Es muy posible que se trate de otra persona. Pero, si estás buscando los ataques a la cadena de suministro más sofisticados del planeta, esos serán nuestros queridos amigos en el SVR”.

Los investigadores de seguridad coinciden, al menos, en que es poco probable que Jia Tan sea una persona real, o incluso una persona que trabaje sola. En cambio, parece claro que la persona era la encarnación en línea de una nueva táctica de una organización nueva y bien organizada, una táctica que casi funcionó. Eso significa que deberíamos esperar ver a Jia Tan regresar con otros nombres: contribuyentes aparentemente educados y entusiastas a proyectos de código abierto, que ocultan las intenciones secretas de un gobierno en sus compromisos de código.

FuenteWired

Share

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.