BIOS, UEFI y décadas de firmware inseguro en tu PC

Un ordenador puede tener varios tipos de firmware instalados: para la placa base, para un controlador de disco, un modem, … pero el firmware más importante es el que viene instalado en la propia placa para inicializar todo el hardware de la placa base y controlar  el proceso de arranque.

Antes de 2011 solíamos referirnos a este firmware como BIOS (Basic Input/Output System, Sistema básico de Entrada/Salida) pero en 2011 llegó un nuevo tipo de firmware para inicializar el hardware y controlar el proceso de arranque de los ordenadores, este nuevo firmware se llamaba EFI (Extensible Firmware interface, Interfaz de firmware extensible) y comenzó la transición.

Mucha gente conoce el termino UEFI en vez de EFI. UEFI es en realidad EFI 2.x por lo que no pasa nada por llamarlo UEFI o EFI 2.x

 

# No puedes fiarte de un firmware que no es libre

En 2014 Lenovo incorporó el famoso Superfish que entre otras lindezas utilizaba un certificado SSL falso y colocaba publicidad al navegante. La historia del Superfish de Lenovo no se terminaba simplemente eliminando en condiciones el contenido del disco duro ya que en algunos casos requería una actualización de la BIOS para eliminarse completamente.

Eso llevó a mucha gente a pensar que realmente antes del sistema operativo está la información del firmware de la BIOS/UEFI y que esta históricamente ha tenido básicamente un monopolio por parte de los proveedores de BIOS  American Megatrends (AMI) y Phoenix Technologies (que compró Award Sofware International en el 98).

Estos fabricantes no publican el código y por tanto de algún modo podríamos hablar de que disponemos de una BIOS en la mayoría de ordenadores “insegura”.

Un proyecto no exento de alguna que otra polémica (nada relevante para lo que tenemos entre manos) ha sido “Libreboot” (basado en coreboot) que permite cambiar ese firmware (la BIOS) por uno totalmente libre en algunos modelos de ordenadores. Por este motivo digo que disponemos de una BIOS en la mayoría de ordenadores “insegura” y no digo en todos.

Por otro lado disponer de un ordenador con una BIOS con Libreboot permite tal libertad que es posible hacer overclocking de forma sencilla a la CPU por ejemplo y eso nos lleva a que permite sobrepasar los limites para los que esa placa ha sido diseñada y testeada.

Digamos que esa posibilidad hace que los fabricantes de placas no desean que utilices una BIOS libre ya que no pueden dar garantía del hardware que venden si  está overclokeado trabajando a unos valores y frecuencias de CPU diferentes a los cálculos de sus ingenieros/as.

Con las filtraciones del “Hacking Team” se supo que usaban un rootkit UEFI. Por decirlo de forma sencilla básicamente la herramienta de control remoto se quedaba almacenada en el espacio UEFI y aunque formateases o cambiases de disco duro seguiría buscando scout.exe  en el siguiente PATH de un sistema Windows: Users\[username]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\6To_60S7K_FU06yjEhjh5dpFw96549UU. 

Esto evidentemente también podría ocurrir con un firmware de BIOS libre pero sería posible y sencillo comprobarlo.

 

# El periodo de transición entre BIOS y EFI

Vamos a ver si nos aclaramos un poco con estos términos. A groso modo ordenadores anteriores a 2010/2011 digamos que llevarán una BIOS tradicional mientras que desde 2011 la tendencia es poner EFI. Se podría decir que vivimos un tiempo de transición de BIOS a EFI y que comenzó más o menos en 2011.

UEFI reemplazará a la BIOS por razones lógicas no necesariamente por el monopolio de Microsoft y su sistema Windows (hablaremos de eso luego).

Cientos de empresas del mundillo (entre las que está AMI y Phoenix puede verse aquí: http://www.uefi.org/members ) se subieron al carro para crear una evolución de BIOS (que sigue sin ser libre).

Directamente los sistemas operativos como GNU/Linux no utilizan los servicios que ofrece BIOS pero si obtienen la información necesaria sobre el hardware.

El problema de la BIOS (y que es algo que viene a solucionar EFI (UEFI)) es que se ejecuta en 16bit y resulta ineficiente para los modernos sistemas operativos que trabajan en modo protegido (y 64 bits).

Luego también supongo que pensaron que la interface BIOS era fea y con EFI se pretende que sean mucho más vistosas pasando del modo texto a un modo gráfico, con ratón y tonterías. Aunque no siempre es así, no es algo obligatorio aunque si posible.

Por ejemplo aquí se puede ver la interface típica de una BIOS y la interface EFI de una placa ASRock mucho más vistosa:

 

 

Evidentemente otros de los motivos de EFI es crear un firmware que permita un arranque más seguro.

Durante este tiempo de transición es normal encontrar modo legacy y modo UEFI. El modo legacy existe para mantener compatibilidad aún con determinado hardware y sistemas operativos que no admiten UEFI.

Se supone que EFI (UEFI) tardará mucho menos tiempo en presentar los diferentes dispositivos hardware existentes (mientras que con BIOS supongamos tarda 15 segundos pues con UEFI lo mismo 5).

Y no hemos de olvidar que UEFI también ofrece soporte para particionado de discos GTP (tabla de particiones GUID) en vez de MBR de toda la vida. Con GTP puedes tener más de 4 particiones primarias y estás pueden tener más de 2TB por ejemplo.

GTP es parte de EFI y sustituye al MBR (Master boot record) que se utiliza con BIOS.

UEFI nace con la finalidad de ser más seguro que la BIOS tradicional que se ha estado usando toda la vida en los PC. Por ese motivo tiene teóricamente una opción llamada “Secure boot” que permite un arranque más seguro de un sistema operativo.

Microsoft pertenece al grupo de empresas del foro de UEFI. Es una de las empresas que de algún modo utiliza esta tecnología para mantener su monopolio ya que existe ese riesgo y de facto le beneficia.

Ese riesgo de monopolio reside en el sistema de firmas .EFI . Esto se utiliza para el “Secure boot” (arranque seguro).
Lo normal es que se pueda desactivar el “Secure boot” pero en la practica es poca la gente que se meterá a hacerlo. Eso nos lleva a que Microsoft desde el Windows 8 indica que los ordenadores que lleven su sistema han de tener el secure boot aplicado por defecto.

Si lo que quieres es usar Windows podrás iniciar este sistema operativo pero no podrás con el secure boot activado instalar otros (en teoría).

En la comunidad de GNU/Linux esto puso la alarma sobre UEFI y el modo seguro por defecto para Windows. Supone esto un paso más para hacer más complicado instalar otro sistema operativo.

Respecto al multiboot típico que se usa o ha usado estos años teóricamente con discos GPT y particiones GPT no sería necesario GRUB, LILO, SYSLINUX, … ya que desde la interface de gestión UEFI se podría cambiar y arrancar con otro sistema.

 

# Resumen de lo que es un firmware

Podríamos resumir lo que es un firmware como: un software que maneja físicamente al hardware.

El programa BIOS de un ordenador es un firmware que tiene como propósito activar una máquina desde su encendido y preparar el entorno para cargar un sistema operativo en la memoria RAM y disco duro (en el caso de que se disponga de uno).

Pero podríamos hablar también del firmware de un router, o del firmware de un smartphone, de un reproductor hardware de sonido, de un coche, …

No obstante sobre el firmware al que nos referiremos en este articulo es básicamente la BIOS o EFI de un ordenador.

 

# Un poco de información sobre BIOS

A la BIOS de un ordenador suele accederse al arranque de este. Normalmente podemos entrar pulsando la tecla suprimir, f2, f8, … o dándole a todos los f1-f12 si desconocemos la maldita tecla o combinación de teclas. Algunos portátiles utilizan combinación de teclas y vamos a tener que usar la tecla fn + algún f1-f12.

Cuando entramos a una BIOS veremos algo así como esto:

 

 

Los proveedores más conocidos de BIOS son American Megatrends (AMI) y Phoenix Technologies.

Veamos algunas fotos de como es una ROM BIOS físicamente:

 

En los tiempos de MS-DOS (el sistema operativo de Microsoft dominante para PC desde principios de la década de los 80 hasta principios de los 90 o mediados) este sistema dependía de los servicios de la BIOS para las funciones de disco, teclado y visualización de textos. Sistemas operativos como GNU/Linux y los windows modernos no lo usan después de cargarse en memoria.

 

La ROM BIOS de ordenadores Amiga (el kickstart) por ejemplo solían tener que cambiarse físicamente. Con los PCs ocurría lo mismo aunque algunas venían soldadas a la placa.

 

# Un uso habitual de configurar la BIOS es desactivar por ejemplo la tarjeta gráfica integrada

Por ejemplo es posible que para algún ordenador en concreto se necesitase desactivar el USB. Por ejemplo si es un ordenador que estará colocado como servidor.

Es posible que lo mismo no nos interese disponer del puerto ethernet que trae el ordenador en su placa ya que disponemos de una placa con otro que nos interesa más. Es posible también que queramos desactivar la tarjeta gráfica integrada de una placa base ya que disponemos de otra. En todos esos casos en la BIOS normalmente tendríamos que poder desactivarlo.

próximo Publicación

Atrás Publicación

2 Comentarios

  1. alfilo 31 enero, 2018

    ¿Se puede anular la firma del chip efi ?

    • mierda 1 febrero, 2018 — Autor de artículo

      Si te refieres a la firma del secure boot (arranque seguro) yo si he podido desde una BIOS del fabricante insyde. Supongo que otras lo permitirán también.

Dejar una contestacion

© 2018 [ MIERDA TV ]

Tema de Anders Norén