Hace unos días se descubrió una nueva puerta trasera incluida en la BIOS de los portátiles Lenovo. Pero también existen otras puertas traseras, no tan ocultas pero tampoco demasiado conocidas ni evidentes.
Si se le pregunta a cualquier defensor del FOSS cuál es su plataforma preferida, si no le van demasiado los juegos la respuesta va ser rápida: Intel. Intel es el único fabricante que tiene a un equipo desarrollando controladores libres para Linux destinados a sus procesadores gráficos. Eso hace que sea la mejor opción en cuanto a compatibilidad y funcionalidad siempre que no se necesiten grandes esfuerzos 3D.
Pero no todo el software que se ejecuta en nuestro ordenador depende de nosotros y aunque usemos software libre y de código abierto tanto como sistema operativo como en programas y controladores, podrían existir programas de código cerrado en ejecución sin tener control sobre ellos.
Ese es el caso de la tecnología Management Engine de Intel (o AMT, Active Management Technology), un procesador separado del resto incorporado en todos los chipsets de Intel desde el 2006. Este pequeño procesador proporciona acceso remoto, conectividad ethernet, acceso al hardware, gestión de energía y más funciones del sistema independientemente del sistema operativo que estemos usando.
Para que funcione este procesador es necesario un binario precompilado integrado en el chipset del que no se sabe nada sobre su código fuente. Si se elimina este programa, el sistema se apaga automáticamente a los 30 minutos y su sustitución es imposible ya que el sistema comprueba la firma del programa cuya clave privada se desconoce.
Este pequeño procesador es un microcontrolador de ARC y el firmware que lo motoriza está basado en el sistema operativo ThreadX RTOS, diseñado específicamente para estos microcontroladores. De esa forma, el código fuente de este firmware no pertenece a Intel por lo que ni queriendo podría publicar información adicional sobre este programa. Y lo peor de todo, si Intel de alguna forma consiguiera publicar el código fuente, sus modificaciones no se podrían instalar ya que el firmware está firmado y la firma se comprueba en cada arranque de forma que sería rechazado por el microcontrolador ARC.
En resumidas cuentas, si tienes una plataforma Intel basada en Core 2 o posterior, tu sistema cuenta con este programa cerrado y firmado del que no te puedes deshacer.
La razón de incluir este sistema no es malévola (al menos no inicialmente) ya que Management Engine permite lo que su propio nombre indica: gestionar el sistema. Comercialmente, Intel ha llamado a esto AMT (Active Management Technology). Tener la posibilidad de controlar remotamente un ordenador independientemente del sistema operativo permite cosas como modificar la BIOS e instalar otros sistemas operativos sin necesidad de estar físicamente delante del ordenador, algo que puede llegar a resultar muy práctico. Sin un sistema de estas características sería imposible.
El problema viene cuando no se conoce el código fuente, no permiten realizar modificaciones y tampoco hay información sobre posibles vulnerabilidades del sistema. La seguridad es una de las razones más poderosas para usar software libre ya que las probabilidades de que te den gato por liebre se minimizan. Intel no permite modificar el software que se ejecuta en sus chips y tampoco se conoce el código fuente por lo que nadie (salvo el fabricante) sabe realmente qué se está ejecutando en nuestros procesadores.
Así que aunque estés usando un sistema operativo libre, con programas libres y controladores libres, al final todo eso está dependiendo de un pequeño programa propietario del que nadie sabe nada y que tiene la capacidad de dar poder absoluto sobre tu sistema remotamente.
En el siguiente video podemos ver una demostración de cómo se arranca remotamente un PC y se accede a él a través de AMT:
Se puede leer un artículo dedicado a Management Engine en el blog de la FSF. Más información en Libreboot.org.