La plataforma x86 de Intel, nociva según experta en seguridad

«Intel x86 considerado dañino» es como se titula un paper publicado por Joanna Rutkowska, creadora de Qubes OS e investigadora de seguridad a bajo nivel y rootkits.

Se trata de una afirmación un tanto arriesgada porque con un título tan ambiguo, se podría estar refiriendo a varias cosas como el repertorio de instrucciones x86 o la plataforma x86 de Intel entre otras. En este caso se habla de la plataforma de Intel específicamente aunque AMD tampoco se libra.

De Qubes OS hablamos hace bastante poco y  en resumidas cuentas, se podría considerar una de las distros más seguras que hay en activo ya que permite ejecutar cada proceso en una máquina virtual por separado, lo que aísla la ejecución de ciertos programas del resto del sistema.

La seguridad de la plataforma x86 de Intel se ha puesto en entredicho durante el último año debido a la inclusión de ciertas funciones que pueden convertirse en un agujero de seguridad tal que den a un atacante control absoluto sobre nuestro ordenador. Por otra parte, ayer mismo hablábamos de la problemática que supone tener la necesidad de ejecutar al inicio del sistema un programa propietario del que no sabemos nada y cómo, gracias a esta falta de transparencia del código, ya ha sucedido que ciertas empresas han incluido puertas traseras. Aunque hay proyectos que intentan solventar esto, los fabricantes de hardware como Intel están trabajando en dificultar la instalación de estas BIOS alternativas (en principio, no por por razones malévolas).

Y es precisamente en la BIOS/UEFI donde la plataforma x86 de Intel pincha en seguridad. Tal y como se puede leer en el documento publicado por Rutkowska:

La BIOS, más conocida recientemente por «firmware UEFI» se han considerado tradicionalmente la base de la confianza para el sistema operativo que se ejecuta en la plataforma porque:
1. La BIOS es el primer código que se ejecuta en el procesador y por lo tanto puede modificar (maliciosamente) la imagen del sistema operativo que supuestamente se ejecuta después.
2. La BIOS tiene acceso privilegiado y completo a todo el hardware por lo que puede hablar con todos los dispositivos y reprogramarlos como quiera: por ejemplo iniciando transacciones de escritura DMA, en algún momento, para predefinir el lugar en memoria donde el sistema operativo o el hipervisor se va a cargar.
3. La BIOS proporciona el código que ejecuta el System Management Mode (o SMM) durante toda la vida útil de la plataforma de forma que se pueden inyectar rootkits SMM maliciosos.

Es decir, que el problema no está en el repertorio de instrucciones en sí, sino en el hecho de que en realidad nadie sabe (excepto el fabricante) qué está haciendo la BIOS cuando encendemos el ordenador. Si se retuerce el asunto más todavía, tal y como continúa:

Pero incluso si tuviéramos una BIOS completamente segura, es decir, que no contenga defectos que permitan ejecutar código durante la primera etapa, un atacante físicamente presente podría modificar la BIOS abriendo la caja, conectando un programador SPI y escribiendo contenido arbitrario dentro del chip.

Esto, que en realidad puede sonar paranoico, es un problema en que ha estado trabajando la misma Intel y la solución que encontró fue la comentada en anteriores entradas: firmar la BIOS y comprobar la firma mediante una clave pública incrustada en el hardware. Y es precisamente esta función que pretende brindar este tipo de seguridad la que impide instalar firmwares diferentes al de fábrica como Coreboot.

Así que una solución a un problema de seguridad (que alguien haga modificaciones a la BIOS de fábrica) supone un obstáculo insalvable para aplicar una solución más radical: usar una BIOS de código abierto.

Pero antes de que pienses que Intel pierde puntos ante una futura adquisición y que AMD podría ser una buena alternativa, deberías seguir leyendo:

En este paper nos hemos centrado en las plataformas x86 basadas en Intel. La razón principal para esto es muy pragmática: la mayoría de los portátiles en el mercado a día de hoy llevan…  procesadores Intel.

¿Pero es diferente la situación en plataformas x86 basadas en AMD? ¡No lo parece! Los problemas retratados en la seguridad en el arranque parecen ser similares a los que hemos discutido en este paper. Y parece que AMD tiene un equivalente de Intel ME disfrazado como Platform Security Processor (PSP).

De PSP no hay demasiada información pero en principio parece que ofrece funciones similares a las del Management Engine de Intel. De esa forma la arquitectura x86, que de por sí no tiene ningún problema de esta índole, ha ido adquiriendo ciertas funciones con el tiempo que la han cerrado hasta tal punto que a día de hoy resulta imposible disponer de un sistema completamente libre. Y resulta que a parte de Intel y AMD, no hay fabricantes de plataformas x86 su altura en el mercado.

Para los usuarios preocupados por el hecho de que en sus máquinas se ejecuten programas que escapan de su control, existen alternativas emergentes y la más inmediata es la arquitectura ARM que lleva varios años en el mercado y desde hace un tiempo ha irrumpido en ordenadores de escritorio. Sólo queda esperar si aparecerá hardware apto y a un precio competitivo para realizar todas las tareas que se realizan en un PC convencional actual.

El paper completo de Joanna Rutkowska se puede consultar aquí.