3 vulnerabilidades críticas en el arranque seguro afectan a muchos gestores de arranque (bootloaders)

Como parte de la investigación de Eclypsium sobre cargadores de arranque vulnerables y maliciosos, han identificado tres nuevas vulnerabilidades de cargadores de arranque que afectan a la gran mayoría de los dispositivos lanzados en los últimos 10 años, incluidos los dispositivos x86-64 y basados ​​en ARM. Estas vulnerabilidades podrían ser utilizadas por un atacante para evadir fácilmente las protecciones de arranque seguro y comprometer la integridad del proceso de arranque; permitiendo al atacante modificar el sistema operativo mientras se carga, instalar puertas traseras y deshabilitar los controles de seguridad del sistema operativo. 

Al igual que su investigación anterior de GRUB2 BootHole , estos nuevos cargadores de arranque vulnerables están firmados por la autoridad de certificación de terceros de Microsoft UEFI. De manera predeterminada, esta CA cuenta con la confianza de prácticamente todos los sistemas tradicionales basados ​​en Windows y Linux, como computadoras portátiles, computadoras de escritorio, servidores, tabletas y sistemas todo en uno. Como resultado, un atacante podría simplemente instalar el gestor de arranque vulnerable y el dispositivo de destino confiaría en él. Tal actualización requeriría que el atacante tenga privilegios de administrador, sin embargo, tales escaladas son comunes y fácilmente disponibles.

Dado que este problema afecta a varias partes de la cadena de suministro, el proceso de mitigación puede requerir varios pasos. En última instancia, las organizaciones deberán actualizar la base de datos DBX en sus dispositivos, que mantiene una lista de códigos no permitidos. SIN EMBARGO, es importante tener en cuenta que cualquier dispositivo que use los tres cargadores de arranque afectados deberá obtener nuevos cargadores de arranque de los proveedores afectados ANTES de actualizar el DBX. Si no lo hace, el dispositivo no podrá arrancar. 


LAS VULNERABILIDADES

Esta sección resume los puntos clave de cada vulnerabilidad, sin embargo, un análisis más profundo está disponible en su reciente charla DEF CON ( enlace ). Han identificado vulnerabilidades en tres cargadores de arranque diferentes, a los que se les han asignado los siguientes CVE:

  • CVE-2022-34301 – Eurosoft (Reino Unido) Ltd
  • CVE-2022-34302 – Nuevo horizonte Datasys Inc
  • CVE-2022-34303: disco seguro CryptoPro para BitLocker

Dos de las vulnerabilidades (CVE-2022-34301 y CVE-2022-34303) son similares en el sentido de que involucran shells UEFI firmados. En el caso de Eurosoft, el shell firmado es esdiags.efi mientras que para CryptoPro Secure Disk, el shell es Shell_Full.efi . En ambos casos, un atacante puede usar las capacidades integradas del shell para evadir el Arranque seguro, como la capacidad de leer y escribir en la memoria, identificar identificadores y asignar memoria. La explotación podría automatizarse fácilmente utilizando scripts de inicio. 

El comportamiento de estos programas tiene un elemento visual que un usuario podría ver potencialmente en un monitor, pero permanecería oculto en sistemas sin pantalla, como servidores o sistemas industriales. La vulnerabilidad de New Horizon Datasys (CVE-2022-34302) es mucho más sigilosa y siempre sería invisible para el propietario del sistema. Este gestor de arranque contiene una derivación integrada para el arranque seguro que deja activado el arranque seguro pero desactiva las comprobaciones de arranque seguro. Esta omisión puede habilitar aún más evasiones más complejas, como deshabilitar controladores de seguridad. En este caso, un atacante no necesitaría comandos de secuencias de comandos y podría ejecutar directamente código arbitrario sin firmar. La simplicidad de la explotación hace que sea muy probable que los adversarios intenten explotar esta vulnerabilidad particular en la naturaleza. 

La explotación de estas vulnerabilidades requiere que un atacante tenga privilegios elevados (Administrador en Windows o root en Linux). Sin embargo, la escalada de privilegios locales es un problema común en ambas plataformas. En particular, Microsoft no considera que la omisión de UAC sea un límite de seguridad defendible y, a menudo, no corrige las omisiones informadas, por lo que hay muchos mecanismos en Windows que se pueden usar para elevar los privilegios de un usuario sin privilegios a Administrador. 

Vale la pena recordar que la intención de Secure Boot es garantizar que el código malicioso no viole la integridad del proceso de arranque. Si bien el malware y el código malicioso que se ejecutan a nivel del sistema operativo son relativamente comunes, el arranque seguro y otras capacidades de seguridad relacionadas están diseñadas específicamente para garantizar que esas amenazas no puedan elevar aún más los privilegios para obtener el control completo del dispositivo y adelantarse a otros controles de seguridad. Estas vulnerabilidades permitirían a los atacantes cruzar este límite y hacerlo con bastante facilidad. 

PASOS DE MITIGACIÓN Y DESAFÍOS DE LA CADENA DE SUMINISTRO

Las vulnerabilidades del cargador de arranque plantean un problema en la cadena de suministro que puede complicar los esfuerzos de mitigación de una organización. A diferencia de una vulnerabilidad tradicional que simplemente puede parchearse y resolverse, abordar estas vulnerabilidades del cargador de arranque requiere varias partes. Además de las actualizaciones de Microsoft, los proveedores afectados también deberán remediar y publicar actualizaciones para su código. Si Microsoft u otras distribuciones de sistemas operativos implementan actualizaciones automáticas que ponen en la lista negra los cargadores de arranque vulnerables de inmediato, es posible que los dispositivos que usan ese código no se inicien. 

Esto significa que las organizaciones probablemente necesitarán tomar más pasos manuales para mitigar su riesgo. Es importante recordar que la facilidad con la que estas vulnerabilidades pueden convertirse en armas significa que existe una alta probabilidad de que eventualmente veamos amenazas en la naturaleza. Para proteger sus dispositivos, las organizaciones deben seguir los siguientes pasos.

  1. Verificar si sus dispositivos utilizan alguno de los gestores de arranque vulnerables 
    • De forma predeterminada, los cargadores de arranque se almacenan en la partición del sistema EFI (ESP). Esto no está montado de manera predeterminada en Windows, pero puede montarse y examinarse usando el indicador /S ( mountvol DRIVE: /s). En Linux, este sistema de archivos está montado en /boot/efi/.
    • Si usa un cargador de arranque vulnerable, la organización debe aplicar una actualización del cargador de arranque del proveedor correspondiente cuando esté disponible. Las organizaciones con un cargador de arranque afectado NO DEBEN aplicar actualizaciones de DBX antes de actualizar el cargador de arranque o el dispositivo no podrá arrancar.
  2. Actualice la base de datos de revocación de DBX solo después de verificar que el dispositivo no esté utilizando uno de los cargadores de arranque vulnerables. Los usuarios de Windows pueden consultar el siguiente aviso para obtener recomendaciones sobre cómo actualizar su DBX.

Los clientes de Eclypsium pueden usar la plataforma para identificar automáticamente los dispositivos vulnerables y tomar las medidas adecuadas.

CONCLUSIONES CLAVE

Al igual que BootHole, estas vulnerabilidades resaltan los desafíos de garantizar la integridad de arranque de los dispositivos que dependen de una cadena de suministro compleja de proveedores y códigos que trabajan juntos. Si bien la industria ha logrado grandes avances en la mejora de la seguridad del firmware y el proceso de arranque en general, estos problemas resaltan cómo las vulnerabilidades simples en el código de terceros pueden socavar todo el proceso. El problema más amplio es que estos no son incidentes poco comunes. Hay muchos más ejemplos de código de terceros que ha sido firmado por Microsoft y, por lo tanto, los dispositivos confían implícitamente en ellos. Como todo código, este código de terceros puede contener vulnerabilidades que tienen consecuencias inesperadas y pueden ser difíciles de mitigar.