Blog

La puerta trasera de XZ Utils en Linux apunta a un problema de seguridad más amplio en la cadena de suministro, y necesitamos algo más que espíritu comunitario para mantenerlo a raya.

April 11, 2024
Pieter Danhieux
Texto blanco "La puerta trasera de XZ Utils" sobre un fondo de degradado azul con formas de flechas pixeladas

El sector de la ciberseguridad volvió a ponerse en alerta máxima tras el descubrimiento de un insidioso compromiso en la cadena de suministro de software. La vulnerabilidad, que afecta a la biblioteca de compresión de datos XZ Utils que se incluye en las principales distribuciones de Linux, está registrada bajo el CVE-2024-3094 y se reduce a una puerta trasera insertada deliberadamente por un mantenedor voluntario que antes era de confianza. Al permitir la ejecución remota de código (RCE) en algunos casos si se explota con éxito, representa un problema de alta gravedad con capacidad para causar daños graves en los procesos de compilación de software establecidos.

Afortunadamente, otro mantenedor descubrió esta amenaza antes de que el código malicioso entrara en las versiones estables de Linux, pero sigue siendo un problema para quienes han empezado a ejecutar las versiones 5.6.0 y 5.6.1 de XZ Utils como parte de Fedora Rawhide, y se insta a las organizaciones a aplicar parches como prioridad de emergencia. Si este descubrimiento no se hubiera hecho a tiempo, el perfil de riesgo lo convertiría en uno de los ataques a la cadena de suministro más devastadores registrados, quizás incluso eclipsando a SolarWinds.

La dependencia de voluntarios de la comunidad para mantener sistemas críticos está ampliamente documentada, pero rara vez se discute hasta que problemas de gran impacto como este incidente salen a la superficie. Aunque su incansable trabajo es esencial para el mantenimiento del software de código abierto, esto pone de relieve la necesidad de hacer hincapié en las habilidades de seguridad y la concienciación a nivel de desarrollador, por no hablar de mayores controles de acceso en torno a los repositorios de software.

¿Qué es la puerta trasera de XZ Utils y cómo se mitiga?

El 29 de marzo, Red Hat publicó una alerta de seguridad urgente para informar a los usuarios de Fedora Linux 40 y Fedora Rawhide de que las últimas versiones de las herramientas y bibliotecas de compresión "XZ" contienen código malicioso que parece haber sido creado específicamente para facilitar el acceso no autorizado de terceros. La forma en que se inyectó este código malicioso será probablemente objeto de un intenso estudio en el futuro, pero equivale a un ejercicio de ingeniería social sofisticado, paciente y de años de duración por parte del actor de la amenaza, un atacante seudónimo llamado "Jia Tan". Esta persona pasó incontables horas ganándose la confianza de otros mantenedores, realizando contribuciones legítimas al proyecto y a la comunidad de XZ Utils durante más de dos años, hasta que finalmente obtuvo el estatus de "mantenedor de confianza" después de que varias cuentas falsas erosionaran la confianza en el propietario del proyecto voluntario, Lasse Collin:

Jia Tan insertándose como colaborador en el proyecto. Fuente: Mail Archive.

‍

El mantenedor original estando sobrecargado de trabajo. Jia Tan ganando más confianza de la comunidad para tomar el control. Fuente: Mail Archive.

‍

Este escenario inusual es un ejemplo perfecto de cómo una persona altamente técnica puede seguir siendo víctima de tácticas reservadas normalmente para quienes tienen menos conocimientos, lo que demuestra la necesidad de una formación en concienciación sobre seguridad basada en roles y precisión. Solo gracias a la curiosidad y rapidez mental del ingeniero de software de Microsoft y mantenedor de PostgreSQL, Andres Freund, se descubrió la puerta trasera y se revirtieron las versiones, deteniendo así lo que podría haber sido el ataque a la cadena de suministro más devastador de los últimos tiempos.

La puerta trasera en sí está siendo rastreada oficialmente como una vulnerabilidad de la mayor gravedad posible en el registro del NIST. Aunque inicialmente se pensó que permitía eludir la autenticación SSH, una investigación posterior reveló que permitía la ejecución remota de código sin autenticación en sistemas Linux vulnerables, incluidos Fedora Rawhide, Fedora 41, Kali Linux, openSUSE MicroOS, openSUSE Tumbleweed y algunas versiones de Debian.

Jia Tan parece haber hecho grandes esfuerzos para ofuscar el paquete malicioso, el cual, cuando se activa para construirse durante el proceso de compilación, obstaculiza la autenticación en SSHd a través de systemd. Como Red Hat detalló, en las circunstancias adecuadas, esta interferencia podría permitir potencialmente a un atacante romper la autenticación SSHd y obtener acceso remoto no autorizado a todo el sistema.

Code diff showing added fprintf call with archive error and entry path in tar/read.c source file.
Primer commit de Jia Tan en el repositorio libarchive. Reemplazando la safe_fprintf() con la función fprintf(). Es posible que la intención no fuera maliciosa en esta etapa, pero no se puede pasar por alto que este cambio puede introducir potencialmente una vulnerabilidad de escape de caracteres. Fuente: GitHub.

‍

Microsoft, entre otros, ha publicado una guía completa sobre cómo escanear sistemas en busca de instancias del exploit y mitigar su efecto, y la acción inmediata recomendada por CISA es que los desarrolladores y usuarios afectados degraden XZ Utils a una versión no comprometida, como XZ Utils 5.4.6 Stable.

Prevenir este tipo de ataque es increíblemente difícil, especialmente cuando se utilizan componentes de código abierto en el software, ya que hay muy poca garantía y transparencia sobre la seguridad de la cadena de suministro. Ya hemos combatido fallos accidentales en la cadena de suministro de software, pero este riesgo ha aumentado hasta incluir errores de seguridad plantados deliberadamente con malicia para comprometer la seguridad del código abierto.

La mayoría de los desarrolladores no podrán detener un ataque de esta naturaleza a menos que tengan un fuerte sentido de la concienciación sobre la seguridad, conocimientos sólidos de seguridad y una pizca de paranoia. Es casi un caso de requerir una mentalidad de actor de amenazas. Sin embargo, una consideración principal siempre debe centrarse en los repositorios de código fuente que están controlados internamente (es decir, que no son de código abierto). Estos solo deben ser accesibles para personas que tengan habilidades de seguridad verificadas y relevantes. Los profesionales de AppSec podrían considerar una configuración como controles de seguridad a nivel de rama, permitiendo solo a los desarrolladores con habilidades de seguridad confirmar cambios en la rama maestra final.

Los mantenedores voluntarios son héroes, pero se necesita (o debería necesitarse) a toda una comunidad para mantener un software seguro

Para quienes están fuera del ámbito de la ingeniería de software, la idea de que una comunidad entusiasta de voluntarios mantenga minuciosamente sistemas críticos en su propio tiempo es un concepto difícil de comprender, pero esta es la naturaleza del desarrollo de código abierto, y sigue siendo un área de riesgo crítico para los profesionales de la seguridad que protegen la cadena de suministro.

El software de código abierto es una parte vital del ecosistema digital de prácticamente todas las empresas, y los mantenedores de confianza (la mayoría de los cuales actúan de buena fe) son verdaderamente heroicos en su búsqueda desinteresada del progreso tecnológico y la integridad, pero es absurdo que sigan trabajando de forma aislada. En estos tiempos centrados en DevSecOps, la seguridad es una responsabilidad compartida, y cada desarrollador debe estar armado con el conocimiento y las herramientas adecuadas para navegar por los problemas de seguridad que probablemente encontrará en su jornada laboral. La concienciación sobre la seguridad y las habilidades prácticas deben ser innegociables en el proceso de desarrollo de software, y depende de los líderes de seguridad influir en el cambio a nivel empresarial.
‍

‍Construya hoy mismo una cultura de seguridad próspera en su organización con los cursos detallados de Secure Code Warrior.

Eslogan

Controle el desarrollo impulsado por IA antes de su lanzamiento

Mida el riesgo asistido por IA, aplique políticas de codificación segura en el momento de la confirmación y acelere la entrega segura en todo su ciclo de vida de desarrollo de software (SDLC).

Reservar una demostración
Biblioteca de recursos

Explorar más blogs

Acceda a contenido especializado sobre programación segura, gobernanza de IA y gestión de riesgos de software.

ver todo
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Una cultura de seguridad: cómo Sage creó su programa de defensores

Descubre cómo Sage reforzó su seguridad con un enfoque flexible y centrado en las relaciones, logrando formar a más de 200 expertos en seguridad y alcanzar una reducción de riesgos cuantificable.

Más información
Icono de ventana de navegador con las letras KVK en negrita y dos líneas horizontales azules debajo sobre un fondo azul degradado.
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Kamer van Koophandel: Seguridad a escala impulsada por los desarrolladores

La Cámara de Comercio (Kamer van Koophandel) comparte cómo integró la programación segura en el desarrollo diario mediante certificaciones basadas en roles, evaluaciones comparativas de puntuación de confianza y una cultura de responsabilidad compartida en seguridad.

Más información
Logotipo de Insurance Australia Group con texto y un icono en azul y gris dentro del diseño de una ventana de navegador web.
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Cómo un «Juego de Códigos» guía a IAG Group hacia un futuro de programación más seguro

IAG Group es la entidad detrás de muchas de las principales compañías de seguros en la región de Asia-Pacífico, que suscribe pólizas para millones de clientes por un valor aproximado de 11.400 millones de dólares australianos en primas anuales.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Mes de la Concienciación sobre Ciberseguridad 2026: Comprender la seguridad de la IA es fundamental para la defensa empresarial

Hemos llegado a un punto en el que la mayoría de las principales empresas de IA han pedido públicamente una ralentización global en el desarrollo de la IA para que las medidas de seguridad puedan ponerse al día, pero la verdad es que ya se han materializado graves problemas de seguridad. Esto deja a innumerables líderes de seguridad y equipos ejecutivos en una situación urgente, a medida que los costes monetarios y de riesgo de la implementación de la IA siguen acumulándose.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Habilitador 8: Branding de su programa

Un programa de codificación segura necesita algo más que un buen contenido para tener éxito. El Habilitador 8 muestra cómo el branding transforma la participación en una experiencia codiciada basada en el estatus.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Cada empleado está ahora en la primera línea de la ciberseguridad de la IA

El panorama tecnológico empresarial está cambiando a una velocidad que pocos previeron hasta que fue demasiado tarde. Hemos cruzado oficialmente el umbral del código escrito por humanos y la asistencia básica de copilotos hacia la era del Ciclo de Vida de Desarrollo Agéntico (ADLC). Si bien los agentes de IA autónomos prometen una eficiencia sin precedentes en múltiples funciones, también traen consigo una clase completamente nueva de riesgos regulatorios y de seguridad.

Más información

Proteja el desarrollo basado en IA antes de su lanzamiento

Identifique riesgos de desarrollo, aplique políticas y prevenga vulnerabilidades en todo el ciclo de vida de su software.

Reservar una demostración
No se encontraron elementos.