Cuando iniciamos un sistema operativo tradicionalmente lo primero que se ejecuta es el Basic Input/Output System (BIOS); luego viene el sistema operativo y finalmente las aplicaciones que tengamos en nuestra computadora. Hace un par de años se empezó a utilizar el Unified Extensible Firmware Interface (UEFI), un nuevo estándar para PCs diseñado para reemplazarlo.
Fue desarrollado en colaboración con más de 140 compañías con el objetivo de mejorar la interoperabilidad del software y solucionar las limitaciones del BIOS, entre las que se encuentra la seguridad. Por lo tanto, resulta interesante conocer las diferencias entre BIOS y UEFI y sus características, para saber cuál es la mejor forma de protegerse. Para eso, además de este post, también preparamos un video animado:
BIOS y UEFI: controlando el firmware del sistema
Para empezar es importante aclarar que el firmware es una porción de código almacenado en una en una memoria ROM que se utiliza para establecer las instrucciones que controlan las operaciones de los circuitos de un dispositivo.
Este componente de código va integrado al hardware del dispositivo, pero puede ser modificado a través de órdenes externas con el objetivo de mantenerlo actualizado y funcionando de acuerdo a los requerimientos propios del sistema.
La función primordial del BIOS es inicializar los componentes de hardware y lanzar el sistema operativo. Además, con su carga se inicializan otras funciones de gestión importantes como la energía y la gestión térmica.
Por otra parte el UEFI se puede cargar en cualquier recurso de memoria no volátil, lo cual permite que sea independiente de cualquier sistema operativo. Debido a estas características, posee las mismas funciones que BIOS, pero con características adicionales.
Características de BIOS y UEFI
Dado que BIOS inicializa el sistema, hay alguna características fundamentales asociadas a su ejecución:
- Puede ejecutar código para verificar la integridad de todos los componentes del firmware antes de que se ejecute y lance el sistema operativo.
- Probar los componentes clave de hardware en la computadora para garantizar que toda la información cargue correctamente y no genere problemas sobre la información.
- Controla módulos adicionales como la tarjeta de vídeo o la tarjeta de red de área local, entre otros dispositivos.
- Selecciona el dispositivo de arranque que puede ser el disco duro, una unidad de CD o un dispositivo USB.
El proceso de arranque UEFI tiene características similares, pero la diferencia es que el código se ejecuta en 32 - o 64-bit de modo protegido en la CPU, no en modo de 16 bits como suele ser el caso de BIOS. En el caso de Windows 8 ya conocemos cómo activar el modo UEFI y Secure Boot, lo cual nos da un nivel adicional de protección en nuestro sistema.
Dentro de las características adicionales de UEFI está la reducción en el tiempo de inicio y reanudación, y cuenta con un proceso que ayuda a prevenir de ataques del tipo bootkit y utilizar el modo Secure Boot. Estas son algunas de las razones por las cuales UEFI podría reemplazar a BIOS en el sistema de arranque de las computadoras.
Seguridad en BIOS y UEFI
Como la primera porción de código ejecutada por un dispositivo es alguno de estos dos estándares, deben considerarse como un componente crítico para la seguridad. De hecho, gestionar la seguridad en la BIOS permite fortalecer el equipo desde el encendido. Dado que se ha detectado una posible vulnerabilidad que afectaría el modo Secure Boot del UEFI, es importante tener algunas recomendaciones de seguridad que nos ayudan a elevar los niveles de seguridad en nuestro equipo:
- Todos los cambios a BIOS o UEFI deberán utilizar un mecanismo autenticado de actualización o un mecanismo seguro de actualización local.
- El mecanismo de actualización local seguro solo se debe usar para cargar la primera imagen o para recuperarse de una corrupción en el sistema de arranque.
- También garantizará la autenticidad e integridad de la imagen de actualización, especialmente si se trata de BIOS.
- Para evitar la modificación no intencional o maliciosa del sistema, deberán estar protegidos con un mecanismo que no se pueda reemplazar fuera de una actualización autenticada.
- El mecanismo de actualización será el único capaz de modificar el BIOS del sistema sin necesidad de intervención física.
Al tener presentes estas medidas de seguridad lograremos, independiente del modelo de arranque utilizado en nuestro dispositivo, que este garantice la integridad de nuestra información.