Todos los ordenadores modernos hacen uso del conocido Secure Boot, una medida de seguridad incorporada en las placas base para verificar el acceso a sistemas operativos aprobados por Microsoft. De esta forma, si intentamos instalar un sistema operativo en un equipo con Secure Boot activado, y este SO no está firmado con la llave de Microsoft, no podremos instalarlo.
Si en nuestros equipos únicamente trabajamos con Microsoft Windows no tendremos ningún problema en cuanto a compatibilidad ni seguridad, sin embargo, para hacer la vida más fácil a los usuarios de sistemas Linux, Microsoft proporciona bootloaders a algunas de Linux con la firma de Microsoft para que se puedan instalar sin problemas en ordenadores que tengan Secure Boot habilitado.
Cómo funciona Secure Boot
La principal función de Secure Boot es la de establecer una cadena de confianza desde el firmware UEFI hasta el sistema operativo, de esta forma, cuando intentamos instalar un sistema operativo, UEFI se asegura que el bootloader de Windows contenga la firma de Microsoft y que no haya sido modificado. Posteriormente el bootloader de Windows verifica también su legitimidad para comenzar la instalación del sistema operativo. Estas medidas de seguridad son para que no haya ningún rootkit interfiriendo en el proceso de arranque del sistema.
El problema con Ubuntu
El problema de seguridad viene cuando el bootloader firmado de Ubuntu es capaz de ejecutar cualquier código sin firmar, de tal forma que rompe la cadena de confianza creada por Microsoft. Cuando el firmware UEFI entrega al bootloader la responsabilidad de instalar el sistema operativo, no se asegura de que el kernel de Linux que arranca esté firmado por Canonical, por lo que un usuario malintencionado podría utilizar el bootloader de Ubuntu (que es de confianza) para instalar malware en el sistema. De hecho este problema también afectaría a sistemas Windows ya que es muy normal que un equipo tenga instalados los dos sistemas operativos y el Grub gestione su arranque. Para la siguiente versión de Ubuntu 16.04 LTS este problema quedará solucionado y no se podrá ejecutar código sin firmar.
Según el ingeniero de seguridad de Ubuntu, el soporte de Ubuntu para Secure Boot es más una opción de compatibilidad para poder instalarlo en equipos con Secure Boot activado, que una opción como medida de seguridad. El desarrollador de software libre Matthew Garret descubrió este fallo el 6 de enero de 2016 y lo reportó a Ubuntu incluso acusándoles de ineptitud criminal, ya que este fallo no solo afecta a los usuarios de Ubuntu sino a todos los usuarios que usan UEFI Secure Boot.