En este artículo, se explica cómo funciona el arranque seguro y cómo se extiende a Linux, específicamente, RHEL7. También ofrece perspectivas para "Arranque con kernel seguro" de Linux y las consecuencias para las aplicaciones en el espacio del usuario.
El arranque seguro está diseñado para evitar que los kits de raíz se instalen en el momento del arranque en la memoria mediante mecanismos como ROM opcional y los MBR para que se carguen en el sistema operativo, secuestrando el control del sistema y permaneciendo oculto de los programas antimalware. Este problema ha crecido con el tiempo para tener una función importante en la pérdida, el daño o el robo de datos. El malware puede venir en medio del BIOS y del cargador del sistema operativo. También puede venir entre el cargador del sistema operativo y el sistema operativo.
UEFI es el nuevo estándar de la interfaz de hardware y software para las plataformas de servidor modernas con un conjunto enriquecido de interfaces de usuario, modularidad e interfaces estándares para que los IHV desarrollen controladores de dispositivos en UEFI que funcionen sin inconvenientes en un entorno previo al arranque que es más flexible que un entorno anterior del BIOS. La adopción de UEFI a través de sistemas operativos y plataformas sigue creciendo, y muchos de los principales clientes y versiones de sistemas operativos del servidor lo admiten.
Liderado por Microsoft, el cuerpo de estándares UEFI identificó una forma para prohibir que se instalen kits de raíz de malware en el tiempo de arranque mediante mecanismos de carga y ejecución de archivos binarios que no se modifican y que son conocidos para la plataforma. Este mecanismo se denomina arranque seguro. Consulte la forma de Arranque seguro de Microsoft para obtener información de Microsoft y, de manera similar, distintos proveedores de SO incorporaron diferentes formas de lograr un arranque seguro.
Las plataformas UEFI protegidas solo cargan archivos binarios de software, como los controladores ROM opcionales, los cargadores de arranque, los cargadores del sistema operativo, que no se modifican y que son seguros para la plataforma. La especificación UEFI describe en detalle el mecanismo de arranque seguro aquí.
La especificación UEFI define la infraestructura necesaria para el arranque seguro. Vamos a proporcionar una breve introducción de la terminología que se utiliza en el arranque seguro para que resulte útil para aquellos que desean comprender con mayor detalle.
El arranque seguro no protege el sistema mientras se ejecuta ni los datos. El arranque seguro detiene el arranque en el sistema operativo si algún componente no se autentica en el proceso de arranque, lo que evita que los sistemas ejecuten malware oculto.
Estas palabras clave son la base del arranque seguro. La Especificación UEFI proporciona más información sobre estas palabras clave. Estas especificaciones indican en detalle cómo firmar los archivos binarios, específicamente consulte la sección 28.
Variables autenticadas: UEFI proporciona un servicio denominado variables autenticadas, lo que significa que solo un módulo certificado o un módulo de código auténtico pueden escribir, es decir, solo un módulo de código que tiene un certificado de clave puede escribir. Sin embargo, cualquier parte puede leer estas variables.
Clave de plataforma (PK): La clave de plataforma establece una relación de confianza entre el propietario de la plataforma y el firmware que el fabricante de la plataforma instala en el NVM.
KEK: Clave de intercambio de claves establece la confianza entre los sistemas operativos y el firmware de la plataforma. El sistema operativo o los componentes de terceros que desean comunicarse con el firmware de la plataforma instalan las KEK en la plataforma.
Base de datos: Base de datos autorizada que contiene las claves públicas y los certificados del módulo de código que está autorizado para interactuar con el firmware de la plataforma.
DBX: Db en lista negra. No se le permite iniciar la carga a ningún módulo con códigos que coincidan con estos certificados.
Firma: La clave privada y el hash del binario que se firmará generan la firma.
Certificado: Certificado authenticode que contiene una clave pública que corresponde a la clave privada que se utiliza para firmar la imagen
El firmware de la plataforma UEFI va a cargar los controladores de terceros, las ROMS opcionales y los cargadores de sistema operativo firmados por la entidad de certificación (CA), en este caso Microsoft. Cualquier proveedor de hardware puede escribir sus controladores en el BIOS UEFI y obtener la firma de Microsoft para que se ejecuten en la plataforma UEFI. Los OEM instalan la parte pública de la clave en la base de datos de la plataforma y el servicio del protocolo del cargador de UEFI valida la firma del archivo binario contra la base de datos autorizada antes de que se permita la ejecución en la plataforma. Esta cadena de autenticación continúa desde el UEFI al cargador del sistema operativo y al sistema operativo.
En Resumen, UEFI permite que se ejecuten los cargadores de sistema operativo que están firmados y cuya clave está presente en la base de datos. Este mecanismo clave garantiza que el cargador del sistema operativo o las ROM de opción se puedan ejecutar solo si están autorizados y no son modificados por ninguna parte.
Figura 1: Firmware de la plataforma UEFI