Bootkitty: el primer bootkit UEFI para Linux Desde Linux

Tabla de contenido

bootkitty-uefi-linux-backdoor

Hace pocos días ESET dio a conocer la noticia la primera prueba de concepto de bootkit UEFI para Linux, nombrado como «Bootkitty«, este bootkit es parte de un proyecto creado por estudiantes de ciberseguridad del programa de capacitación Best of the Best (BoB) de Corea.

Bootkitty, como tal, es una amenaza avanzada que se instala como reemplazo del gestor de arranque GRUB en sistemas Linux, utilizando el entorno UEFI para mantener el control del sistema de forma encubierta. Este malware, que es el primer bootkit UEFI diseñado para Linux, carga componentes maliciosos en el kernel para garantizar persistencia.

Funcionamiento de Bootkitty

  1. Sustitución de GRUB:
    El primer paso del bootkit consiste en reemplaza al gestor de arranque estándar, grubx64.efi, en la partición del sistema EFI, lo que le permite iniciar la carga maliciosa durante el arranque del sistema.
  2. Alteración de GRUB en memoria:
    Tras activarse el bootkit, este carga el gestor de arranque GRUB2 legítimo en memoria, pero introduce modificaciones para deshabilitar la verificación de integridad en componentes posteriores. También añade un controlador que manipula el proceso de carga del kernel.
  3. Modificaciones en el kernel:
    • El bootkit modifica las funciones del kernel cargadas en memoria, desactivando la validación de firmas digitales en los módulos del kernel.
    • Posterior a ello cambia la línea de inicialización del kernel, reemplazando /init por un comando malicioso que utiliza LD_PRELOAD para cargar la biblioteca maliciosa injector.so.
  • Componentes maliciosos:
    • Injector.so:
      Esta es una biblioteca que se encarga de interceptar las llamadas del sistema, como las de SELinux y init_module, permitiendo la carga de módulos del kernel maliciosos.
    • Dropper.ko:
      Un módulo del kernel que crea y ejecuta el archivo binario /opt/observer. También se oculta en la lista de módulos del kernel y manipula las funciones del sistema para evitar que se detecte su presencia o ciertos archivos y tráfico de red.
    • Observer y Rootkit Loader:
      El ejecutable /opt/observer carga otro módulo malicioso (rootkit_loader.ko), que a su vez activa un rootkit completo en el sistema comprometido.

Como tal Bootkitty es un bootkit funcional cuyo objetivo es:

» Generar conciencia dentro de la comunidad de seguridad sobre los riesgos potenciales y fomentar medidas proactivas para prevenir amenazas similares. Desafortunadamente, se divulgaron pocas muestras de bootkit antes de la presentación planificada en la conferencia».

Método de ataque

El ataque se ejecuta mediante la inserción de una imagen BMP diseñada específicamente en la partición ESP (EFI System Partition). Esta imagen se presenta como el logotipo del fabricante para el firmware UEFI. Debido a vulnerabilidades en las bibliotecas utilizadas por el firmware para procesar imágenes, como desbordamientos de búfer, la imagen maliciosa desencadena la ejecución de código en el contexto del firmware UEFI. Aunque la vulnerabilidad LogoFAIL fue descubierta hace un año y ha sido solucionada en actualizaciones recientes del firmware UEFI, muchos dispositivos aún operan con versiones desactualizadas y vulnerables, lo que los deja expuestos a este tipo de explotación. bootkitty-Arte ASCII incrustado en el bootkit

Bootkitty cuenta con limitaciones importantes en su implementación, ya que las modificaciones realizadas en las funciones de memoria del kernel se basaban en compensaciones predeterminadas, sin verificar su validez frente a la versión específica del kernel cargado.

La efectividad del bootkit se limita únicamente a las versiones del kernel y GRUB incluidas en ciertas distribuciones de Ubuntu, causando fallos de arranque en otros sistemas. Además, el bootkit utilizaba un certificado autofirmado para validar su gestor de arranque modificado (grubx64.efi), lo que lo hacía ineficaz en sistemas con UEFI Secure Boot habilitado, salvo que se incluyera manualmente el certificado del atacante en la lista de certificados confiables del firmware.

Investigadores de Binarly Research señalaron que entre los componentes de Bootkitty se encontraron imágenes BMP vinculadas a la vulnerabilidad LogoFAIL, una brecha en UEFI que permite la ejecución de código arbitrario en el nivel de firmware y eludir las restricciones de UEFI Secure Boot. En este caso, LogoFAIL se utilizó para insertar automáticamente el certificado autofirmado del atacante en la lista de certificados confiables, lo que habilitó la ejecución del bootkit incluso en sistemas con Secure Boot activo.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

INFORMACION DEL PUBLICADOR
Picture of Kamal Majaiti
Kamal Majaiti
Administrador de sistemas e informático por vocación.
COMPARTELO EN REDES
Publica un comentario

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.