Saltar al contenido principal

Arranque seguro - Proceso de inicio verificado

Lectura de 2 min aprox.

El arranque seguro (Secure Boot) es un mecanismo que, en cada etapa desde el encendido de la computadora hasta la finalización del arranque del sistema operativo, verifica que el código que se ejecuta posee una firma legítima, impidiendo así la ejecución de software manipulado. Se implementa como una función del firmware UEFI (Unified Extensible Firmware Interface) y se considera una defensa fundamental frente al malware que se oculta antes del inicio del sistema operativo, como los rootkits y los bootkits.

Relación con el firmware UEFI

El arranque seguro es una función integrada en la especificación UEFI (versión 2.3.1 y posteriores). El BIOS tradicional carecía de un mecanismo de verificación de firmas de código, por lo que cualquier código escrito en el sector de arranque se ejecutaba de forma incondicional. Para resolver este problema, UEFI introdujo una infraestructura de criptografía de clave pública en el proceso de arranque. El propio firmware se convierte en la «raíz de confianza» (Root of Trust) y verifica en cadena todos los componentes posteriores.

Flujo de verificación de la cadena de arranque

El arranque seguro gestiona las relaciones de confianza de firmas mediante cuatro tipos de bases de datos de claves.

PK
Platform Key
Raíz de confianza superior
KEK
Key Exchange Key
Permiso para actualizar db/dbx
db
Lista de permitidos
Claves de firma de confianza
dbx
Lista de denegados
Firmas y hashes revocados

La PK es la clave de nivel más alto, configurada por el fabricante del hardware, y normalmente solo existe una. La KEK la posee el proveedor del sistema operativo (como Microsoft) y tiene la autoridad para actualizar db y dbx. Durante el arranque, UEFI compara la firma del cargador de arranque con db y confirma que no esté incluida en dbx antes de permitir su ejecución.

Pasos de verificación del proceso de arranque

Encendido
Inicialización de UEFI
Verificación de firma
Cargador de arranque
Verificación de firma
Núcleo del SO
Verificación de firma
Controladores
Arranque del SO completo

Defensa contra bootkits y rootkits

Un bootkit es un tipo de malware extremadamente peligroso que reside en la memoria antes de que arranque el sistema operativo y puede eludir todos sus mecanismos de seguridad. El «bootkit FinSpy» descubierto en 2020 y «BlackLotus» en 2022 se conocen como ejemplos reales que aprovecharon vulnerabilidades del MBR o de UEFI para sortear el arranque seguro. Cuando el arranque seguro está habilitado, el código sin firmar se rechaza en la primera etapa de la cadena de arranque, por lo que la mayoría de los bootkits nunca llegan a ejecutarse. Desde el punto de vista de la seguridad de los endpoints, el arranque seguro también es la capa de defensa más básica.

Integración con TPM - Measured Boot

Mientras que el arranque seguro se centra en la «verificación de firmas», Measured Boot, que funciona junto con el TPM, lleva a cabo la «medición y el registro del proceso de arranque».

AspectoArranque seguroMeasured Boot (TPM)
ObjetivoImpedir la ejecución de código sin firmarRegistro del estado de arranque y verificación externa
ComportamientoDetiene el arranque si falla la verificaciónRegistra el hash de cada etapa en los PCR
Momento de verificaciónEn tiempo real durante el arranqueAtestación remota tras el arranque

En Measured Boot, el valor hash de cada etapa del proceso de arranque (firmware, cargador de arranque, núcleo, controladores) se registra de forma secuencial en los PCR (Platform Configuration Register) del TPM. Mediante la «atestación remota», en la que un servidor externo verifica estos registros, es posible demostrar a través de la red que el dispositivo no ha sido manipulado.

Compatibilidad con el arranque seguro en Linux

La compatibilidad con el arranque seguro en el núcleo de Linux ha sido durante mucho tiempo objeto de debate por su dependencia estructural de las claves de firma de Microsoft. Las principales distribuciones adoptan un método de arranque a través del cargador «shim», que ha obtenido la firma UEFI de Microsoft. En esta configuración de varias etapas, shim verifica GRUB2 y GRUB2 verifica el núcleo. Como también se habilita la verificación de firmas de los módulos del núcleo, al usar controladores de terceros sin firmar (como el controlador propietario de NVIDIA) es necesario registrar una MOK (Machine Owner Key).

En internet se ve a menudo el consejo de que «basta con desactivar el arranque seguro y funcionará», pero esto equivale a renunciar a la seguridad de raíz. El procedimiento de registro de la MOK se completa en unos pocos minutos, por lo que el método correcto es resolver el problema manteniendo activado el arranque seguro.

Los fundamentos de la tecnología de cifrado se explican en detalle en el artículo sobre los conceptos básicos del cifrado, y su relación con la seguridad física se aborda en el artículo sobre seguridad física. Consulta también la protección contra ransomware y los riesgos de la autenticación biométrica.libros sobre seguridad de UEFI (Amazon) también es un buen lugar para buscar.

Términos relacionados

¿Te resultó útil este artículo?

XHatena