Un virus en tu hardware

Intel-Unveils-16-Core-2-Extreme-and-Xeon-CPUs-From-the-Penryn-Family-2 

Hace unos meses, en Octubre de 2010, leí un artículo de la fantástica revista Investigación y Ciencia, en concreto su número 409, un artículo llamado “Microchips piratas” donde se explicaba una nueva vulnerabilidad en la seguridad informática basada en el diseño y fabricación de microchips.

Ya había oido algo sobre este problema, pero pensaba que la fabricación de un chip era algo seguro y un proceso de una sóla empresa,  pero ahora entre la crisis y la globalización, parece que esto ha cambiado bastante. Antes sólo había algunas empresas muy especializadas en la creación, diseño y fabricación de microchips (Intel, AMD, etc.) pero ahora casi cualquier empresa puede fabricar su propio chip. Y además este proceso involucra a miles de personas, países  y empresas repartidas por todo el mundo.  Antes era un proceso seguro, ya que se realizaba única y exclusivamente dentro de las instalaciones del fabricante en un entorno controlado, tanto el diseño como la fabricación.

Pero los tiempos han cambiado, y mucho.

Puedes diseñar el chip a nivel teórico y luego pedir que te creen cada bloque de código a muchas empresas distintas, la cuales te lo envían (como he dicho en código, nunca en silicio) y luego sólo tienes que añadirlo a tu diseño original. Pero alguien podría interceptar ese envío y contaminarlo con el código malicioso ó algo peor, alguien dentro de la empresa lo podría infectar antes de enviarlo. Por ejemplo, un microchip que se dedique a analizar diferentes parámetros climáticos puede tener varias partes para cada una de estas variables. Un bloque se dedica a analizar los datos, otro es la parte que recoge la información de I/O, otro bloque se dedica a enviar esa información por red, etc. Y cada uno de ellos pueden estar creados en China, Singapur, India, Corea, etc.

Y aquí viene el problema. ¿Cómo podemos garantizar que ese microcódigo que nos envían está correcto y no tiene código malicioso?. Es cierto que las empresas que fabrican microchips pasan miles de pruebas a sus diseños antes de fabricarlo, pero son millones de variables, es imposible analizarlo todo. Además nadie lee o analiza cada línea de estos programas debido a su gran tamaño y su extrema complejidad. No olvidemos que estamos hablando a un nivel de diseño casi a nivel binario para cada instrucción del programa. La activación de este código malicioso puede desencadenarse de millones de formas distintas, imposible de detectar con simulaciones.

Imaginaos esta situación. Todos los microchips (o la mayoría) incluidos en marcas AMERICANAS como DELL, HP, IBM, etc… están fabricados la mayoría en China. ¿Qué pasaría si al gobierno chino se le ocurre introducir código malicioso (un troyano por ejemplo) en alguno de estos chips?. No necesariamente en la CPU, puede ser en cualquier otro circuito. Utilizando el método adecuado de activación podrían desde inutilizarlos hasta conseguir cualquier tipo de información reservada. Estamos hablando de la capa más baja dentro de la arquitectura de un ordenador, el hardware. O esta otra, de repente todos los móviles de una marca determinada dejan de funcionar, sin motivo aparente. Ya tenemos microchips hasta en los frigoríficos pero nadie se molesta en analizar el código que llevan dentro.

Da igual que tengas un buen sistema operativo/software extremadamente seguro, si el hardware tiene código malicioso, la cosa se complica.

Preocupa tanto este tema que incluso ya hay documentos haciendo referencia a posibles soluciones hardware para evitar esta amenaza. Por ejemplo este “paper “ de una conferencia llamada  “A Trojan-Resistant system-on-chip bus architecture” (en PDF), donde se explica una posible solución.

No estamos hablando de virus grabados en memorias tipo flash o firmware, como este caso de Dell en Julio de 2010. Es más complejo, es re-diseñar todo el código interno de chip grabado en silicio y ocultar dentro de él lo que queramos.

Pronto asistiremos a una revolución, habrá de rediseñar los desensambladores de código, los antivirus, etc.

Quién sabe, a lo mejor dentro de poco podríamos ver los próximos microprocesadores con la etiqueta de “Intel Quad Core secured with Nod32” ;)

Como dirían los americanos, “scary”.