El código abierto no es la solución

Un participante del Chaos Communication Congress reflexiona sobre si el uso del hardware de código abierto es la solución a los problemas de fiabilidad del hardware.

Muchos piensan que el software de código abierto es más seguro que el privado y ahora estamos viendo cómo otros intentan aplicar una teoría similar al desarrollo de hardware. Sin embargo, el mes pasado, en la 36ª conferencia Chaos Communication Congress (36C3), los expertos Andrew “bunnie” Huang, Sean “xobs” Cross y Tom Marble plantearon dudas acerca de si era suficiente el empleo de desarrollo de código abierto para resolver los problemas de fiabilidad del hardware. Huang habló largo y tendido sobre el tema.

Diferencias entre hardware y software en términos de fiabilidad

La seguridad del software de código abierto no solo reside en su carácter abierto, sino también en las herramientas tan utilizadas que ayudan a garantizar que el programa que ejecutas en un equipo sea fiel al código fuente publicado. Por ejemplo, los programadores firman su software con un certificado digital y el sistema comprueba el certificado antes de ejecutar el software en el ordenador del usuario.

El hardware es otra cosa. Como no existen equivalentes para la creación de hash o firmas digitales, los usuarios no cuentan con herramientas para comparar la autenticidad del hardware con la información publicada al respecto. La última vez que se comprueba un dispositivo o un chip es en la fábrica. Y, cuanto más tiempo pase entre la revisión de fábrica y el uso del dispositivo, mayor es el riesgo de sufrir un ataque MITM exitoso.

¿Qué podría salir mal?

En términos generales, cualquiera cosa puede suceder con los chips o dispositivos completos desde que abandonan la fábrica y se usan por primera vez. Para empezar, el firmware podría sustituirse. (Bueno, sí, el firmware es de hecho un problema de software, por lo que puede comprobarse, pero aun así dependerás del uso del hardware durante la verificación). De ahí que Huang se haya centrado en problemas estrictamente relacionados con el hardware, como la sustitución de componentes, las modificaciones y los implantes.

Añadir componentes

Ahora se puede insertar un módulo no autorizado en el puerto USB del cable de carga. Evidentemente, es aún más sencillo alterar un equipo multicomponente más sofisticado que deje más espacio para los implantes. La buena noticia es que es relativamente fácil identificar un chip añadido.

Sustituir componentes

El truco más simple de sustitución es la falsificación del logotipo de marca. De hecho, este es un ejemplo real: a simple vista, un microcontrolador que funcionaba mal presentaba el logotipo de marca correcto (de STMicroelectronics) sobre un chip completamente diferente. En esa ocasión, la trampa consistía en que habían sustituido un componente caro por uno barato, pero el reemplazo pudo haber contenido cualquier cosa.

Modificar el chip

La gente suele pensar que los chips no se pueden modificar una vez que salen de fábrica, pero no es así. En muchos casos, lo que vemos como un simple chip es en realidad un conjunto de diversos microcircuitos en un mismo paquete. Un delincuente experimentado podría utilizar la misma tecnología para insertar un pedacito de silicio en el mismo paquete y conectar este implante con otros contactos existentes.

Implante chip-on-chip. Fuente de imagen

De hecho, el equipo necesario para ello es relativamente barato y accesible (según el orador, una máquina de wire bonding de segunda mano de China cuesta unos 7.000 dólares), aunque los resultados falsificados se pueden detectar con radiografías.

Es más caro modificar los paquetes CSP a nivel de oblea (WL-CSP, por sus siglas en inglés) y las radiografías no revelarán la manipulación.

Modificación del circuito integrado (CI)

Normalmente, las empresas diseñan chips para las tareas específicas de su sector; sin embargo, subcontratan a los fabricantes de estos; solo las grandes empresas pueden permitirse producir sus propios chips. En esta clase de acuerdo, existen muchas formas de modificar el producto final de modo que aún cumpla con los términos de referencia. Por otra parte, cuando el chip o dispositivo abandona el control del diseñador es raro que alguien se tome la molestia de comparar el producto final con las especificaciones originales.

¿En qué momento se puede alterar el hardware?

El experto mencionó diversos escenarios de sustitución, desde los más complicados (interceptar un cargamento en marcha como caso extremo) hasta los relativamente sencillos. A grandes rasgos, cualquiera que compre un producto puede alterarlo y devolverlo al vendedor, que lo venderá de nuevo. Y, oficialmente, en las diversas etapas de suministro, el equipo de transporte del fabricante, los agentes de aduanas y muchas otras partes involucradas tienen acceso al equipo, y cualquiera podría alterarlo si así lo deseara. Para todos los efectos, el uso de hardware de código abierto no mejorará mucho la seguridad.

Conclusiones

Hacia el final de su presentación, Huang especuló sobre los cambios en la producción del hardware que podrían permitir a los usuarios finales verificar la seguridad de los chips y los dispositivos. Quienes estén interesados en la filosofía del movimiento, así como en los detalles técnicos de la modificación de chips, deberían ver el vídeo de la presentación.

No todas las formas que existen para modificar el hardware con el objetivo de que sea malicioso son caras o laboriosas. Además, no existe una correlación entre la complejidad del ataque y la dificultad de detección. En cuanto a los usuarios empresariales: deberían ser conscientes de la amenaza y no depender solamente de los productos de seguridad de los equipos; los sistemas de protección de infraestructura protegen frente a amenazas y ataques dirigidos.

Consejos