1 puntos por GN⁺ 2024-03-31 | Aún no hay comentarios. | Compartir por WhatsApp

Explicación de la ofuscación en la etapa Bash

  • Se descubrió una puerta trasera en xz/liblzma. Afecta al servidor OpenSSH.
  • Más que el binario con la puerta trasera, se pone atención en la parte inicial en bash y en el método de ofuscación simple pero ingenioso que se usó.
  • Este artículo explica cómo se ofusca y se extrae la etapa bash.

Antes de empezar

  • Dos versiones de xz/liblzma (5.6.0 y 5.6.1) están afectadas. Hay diferencias sutiles.
  • La parte bash se divide en tres etapas (¿o cuatro etapas?) y cada una se nombra de la Stage 0 a la Stage 2.
  • También se planea mencionar la "Stage 3", pero puede que aún no esté completamente implementada.
  • Las etapas ofuscadas/cifradas y la posterior puerta trasera binaria están ocultas en dos archivos de prueba.

Stage 0

  • Empieza en el archivo m4/build-to-host.m4. Este código se ejecuta en algún punto del proceso de compilación y extrae el script de la Stage 1.
  • Lee bytes del archivo de prueba y los envía a la salida estándar, y usa el comando tr para mapear caracteres a otros caracteres.

Stage 1

  • Un archivo bash que comienza con "####Hello####". Está hecho para ejecutarse solo en Linux.
  • Incluye una cadena compleja de comandos head que usa eval para extraer srcdir desde config.status, omitir ciertos bytes y emitir la salida.
  • Aplica un cifrado por sustitución simple con el comando tr, luego descomprime con el comando xz y lo ejecuta.

Stage 2

  • La Stage 2 es un script bash que modifica el proceso real de compilación.
  • Parece tener un sistema de "extensión/parche" para poder ejecutar scripts nuevos sin seguir modificando los archivos de prueba.
  • Incluye código para extraer archivos .o e integrarlos en el proceso de compilación/enlazado.

Resumen

  • Este proceso está muy bien oculto y está construido de forma compleja usando solo herramientas estándar de línea de comandos.
  • Con una ejecución en 3 etapas y un sistema de "extensión", está diseñado pensando en el futuro para evitar tener que volver a modificar los archivos binarios de prueba.
  • El hecho de que este ataque haya sido descubierto por casualidad deja muchas preguntas para la comunidad de seguridad.

Opinión de GN⁺

  • Este artículo destaca la importancia de la seguridad de software y de los ataques a la cadena de suministro. Hace tomar conciencia de las vulnerabilidades que pueden surgir durante el proceso de compilación de software y recuerda la importancia de la revisión de código y las auditorías de seguridad.
  • Las técnicas de ofuscación y los métodos de ataque multietapa muestran lo sofisticado que puede ser un atacante al infiltrarse en un sistema. Estas técnicas también tienen valor educativo para especialistas en seguridad.
  • Otras herramientas o proyectos de seguridad con funciones similares incluyen Dependency-Check de OWASP y Nexus Platform de Sonatype. Ayudan a identificar vulnerabilidades de seguridad en las dependencias de software.
  • Al adoptar este tipo de tecnología, es necesario reforzar la seguridad en todas las etapas de la cadena de suministro de software. La ventaja es elevar la seguridad del sistema; la desventaja es que, si un atacante usa estos métodos, la detección puede volverse difícil.
  • Este incidente revela tanto las fortalezas como las debilidades de la comunidad de código abierto. La revisión y las contribuciones impulsadas por la comunidad son importantes para el crecimiento y la seguridad de los proyectos, pero al mismo tiempo existe el riesgo de contribuyentes maliciosos.

Aún no hay comentarios.

Aún no hay comentarios.