Un hardware trojan, o troyano de hardware, también resulta un potencial problema para los sistemas informáticos, y no demasiadas personas le dan la importancia que merece. No solo existen los troyanos de software como podrás comprobar, y los estragos que pueden causar los de hardware pueden ser incluso peores…
¿Qué es un troyano?
Un caballo de Troya o simplemente troyano es un tipo de malware que puede aparentar ser un programa legítimo y útil, pero que escode un código malicioso. Este tipo de malware que puede tener diferentes objetivos cuando infecta un equipo, como por ejemplo:
- Usar los recursos de la máquina infectada para una botnet (por ejemplo, para realizar ataques de denegación de servicio o envío de spam).
- Instalación de otros programas (incluyendo aplicaciones maliciosas).
- Robo de información personal. Por ejemplo, robo de información bancaria, contraseñas, códigos de seguridad, robo de archivos varios, etcétera.
- Borrado, modificación o transferencia de archivos de forma remota.
- Borrado completo o cifrado de los medios de almacenamiento.
- Control de procesos.
- Apagado o reiniciado del equipo de forma constante o cuando ocurre algún evento específico.
- Captura de las pulsaciones del teclado (keylogger).
- Capturas de pantalla para poder robar cierta información como credenciales, etc.
- Monitorización del sistema y seguimiento de las acciones del usuario.
- Captura de imágenes, vídeos y sonidos a través de la cámara del dispositivo y su micrófono.
- Acceso a la agenda y registros.
- Modificación de datos del usuario.
- Otros
Hardware trojan o troyano de hardware
Un hardware Trojan o HTH es, a diferencia de un troyano de software, una modificación malintencionada de un circuito electrónico con fines diferentes para los que fue diseñado. Por ejemplo, para espionaje, destruir el sistema, permitir backdoors o puertas traseras para el fácil acceso de forma remota, etc. Para que esto sea posible, se deben componer de diferentes partes:
- Representación física: son las alteraciones del hardware como tal, que pueden ser a su vez de dos tipos:
- Modificación funcional: se pueden alterar algunos transistores o puertas lógicas del circuito original para implementar un circuito que puede hacer algo ligeramente diferente al original. Además, una vez encapsulado y vendido, es muy complicado o, incluso, imposible detectar este tipo de hardware trojan. En cuanto a la distribución de los troyanos de este tipo, tenemos que puede ser de distribución suelta o de distribución ajustada:
- Loose distribution: cuando los componentes del troyano están dispersos en varios chips de la máquina. Esto es positivo cuando los troyanos de hardware son demasiado complejo como para integrarse en un mismo circuito, ya que eso supondría un gran cambio de la superficie y se podría detectar más fácilmente.
- Tight distribution: se concentra en un único circuito integrado, puesto que el área necesaria para su implementación no es demasiado grande.
- Modificación paramétrica: se modifica el circuito original sin alterar la lógica, por ejemplo, haciendo unas malas interconexiones, debilitando los transistores, produciendo algunos problemas intencionadamente. El objetivo es que el dispositivo no sea tan fiable y pueda fallar.
- Sistema de activación: los códigos hardware Trojan necesitan de un sistema que active sus funciones ocultas en muchos casos. Puede ser mediante el uso de sensores, para programar un evento, o también cuando ocurre cualquier otro evento.
- Accionador: no se refiere a accionar el troyano en sí, que de eso se encarga la parte anterior como hemos comentado. En este caso es el accionador del código malicioso, si lo hay, cuando se realiza lo que se pretendía de este troyano, desde robo de información sensible, acceso a información de forma remota, escalada de privilegios, control del sistema, etc.
- Auxiliares: por supuesto, también podría haber otras partes auxiliares para dar soporte al hardware trojan y, dependiendo del tipo de troyano, pueden ser muy diversos, y más o menos numerosos. Pero siempre suelen ser menos importantes que los anteriores puntos.
Los troyanos de hardware pueden permanecer latentes durante mucho tiempo, sin consecuencias para el sistema con este tipo de manipulación, pero una vez activos pueden ser bastante agresivos, con riesgos realmente graves. Y lo peor es que las herramientas de análisis de hardware convencionales que se usan para el software no sirven para detectar este tipo de troyanos.
¿Existen formas de detectarlo?
Por último, para concluir este artículo, también es importante decir que estos troyanos de hardware son mucho más complicados de detectar que los de software, y en muchas ocasiones pasan totalmente desapercibidos incluso para los ojos expertos.
- Inspección física: se inspeccionan cosas desde las más transcendentales, como el número de pines, mediciones del área, hasta otras más profundas des-encapsulando el chip y empleando técnicas de termografía, análisis de consumo, microscopía óptica (MO), barrido SEM (Scanning Electron Microscopy), análisis PICA (Picosecond Imaging Circuit Analysis), inspección de imágenes VCI (Voltage Contrast Imaging), técnicas LIVA (Light-induced Voltage Alteration), FANCI (Functional Analysis for Nearly-unused Circuit Identification), y CIVA (Charge-Induced Voltage Alteration). Por ejemplo, las técnicas FANCI, que parecían muy prometedoras, mediante un análisis booleano estático para etiquetar las conexiones que pueden ser potencialmente maliciosas, ha resultado también poco efectivo, ya que se puede hacer que el diseño del troyano de hardware parezca más benigno ante este tipo de técnicas.
- Test funcional: pueden usar aparatos de laboratorios electrónicos como sondas lógicas para generar una serie de estados en las entradas de un circuito y se monitorizan los estados de la salida, para detectar posibles alteraciones en los patrones.
- BIST (Built-in self-test) y DFT (Design For Testing): en los circuitos integrados a nivel del chip se suele emplear una circuitería adicional para verificar la funcionalidad de un circuito o si tiene defectos. Pero estos pueden haber sido alterados para camuflar estos cambios. Los chips originales generan una firma determinada, pero si está alterado generaría una firma desconocida con estos tests. Pero es como cuando compruebas una suma de verificación de un software… ¿y si la han alterado también?
- Análisis del canal lateral: los CI activos emiten señales como campos magnéticos y eléctricos concretos (como una especie de firma también, véase el ejemplo de los side-channel attacks). Esas señales son causadas por la actividad eléctrica del chip, por lo que pueden ser estudiados para obtener información, al igual que se puede emplear una termografía.
Como puedes comprobar, son complicados de detectar, o imposibles en algunos casos, y las herramientas necesarias no están al alcance de los usuarios.
¿Un usuario podría detectarlo?
La respuesta es un no rotundo. A veces los cambios son nanométricos, y un usuario no podría detectar estos problemas aunque quisiera porque no tiene los medios para hacerlo. Incluso si lo pudiera detectar, imaginando que tenga un microscópio electrónico y otro tipo de aparataje realmente caro, las pruebas implicarían desempaquetar y decapar el chip en muchos casos, lo que lo dejaría destruido. Es decir, son pruebas destructivas.
Al ser así, el chip quedaría totalmente inservible, y se tendría que usar otro chip o circuito integrado diferente para la aplicación práctica para la que se requiera. Sin embargo, no se tiene la certeza de que esa otra placa o circuito integrado esté libre de este tipo de troyanos. Es decir, se entra en un infierno de incertidumbre que no se puede disipar por ningún método.
En definitiva, los usuarios domésticos solo podemos hacer una cosa: confiar en que el hardware que se nos vende es confiable. Eso quiere decir que tenemos que considerar que todos los implicados en la cadena de diseño y producción son de confianza.
El problema del control
El problema es una cadena muy larga de producción hasta que llega a las tiendas, y el hecho de que muchas empresas son simplemente diseñadores, y de la fabricación y otras etapas se encargan terceros en los que se debe confiar. Y lo peor de todo es que se pueden implementar los hardware Trojan en varias partes del procedimiento:
Desde que se diseña un chip hasta que sale a la venta pueden pasar años. Esto es lo único que va en contra de la implementación de un troyano de hardware. No obstante, existen otros chips que son mucho menos complejos que las CPUs, GPUs, etc., y que pueden acortar mucho sus tiempos para hacer práctico lanzar el ataque.
- Primeras etapas de diseño del ASIC o PCB:
- Durante la descripción de las especificaciones que tendrá el dispositivo a producir, es posible que el diseñador del mismo, el IDM o el fabless, pueda implementar algunas funciones indocumentadas con fines que solo ellos saben para qué, y no el resto de usuarios. También podría generar inconsistencias intencionadas en su funcionamiento lógico para que pueda fallar.
- Durante la emulación y RTL del diseño también se puede agregar código malicioso en los archivos de lenguajes HDL tipo VHDL, Verilog, Chisel, etc. Y no solo por parte del desarrollador principal, también podrían estar implementadas en algunas bibliotecas empleadas durante el desarrollo.
- Las etapas de después de la programación HDL, como la síntesis y netlist, etc., también puede ser vulnerable a este tipo de amenazas, ya que cualquier personal implicado en el desarrollo podría implementar cambios en el diseño original. Igual ocurre con las celdas básicas que se pueden usar desde el EDA, que podrían estar manipuladas, por ejemplo, para crear un layout poco fiable.
- Manufactura del ASIC o del PCB:
- Si seguimos hacia delante en el proceso, después se generaría el layout y el archivo tipo GDSII para enviarlo a la fábrica. Y los que diseñan las máscaras para la litografía también podrían crear vulnerabilidades en el circuito si los anteriores no lo hicieron, tan solo tienen que modificar alguna de las máscaras empleadas en el diseño.
- Una vez el chip o placa de circuito impreso ha sido fabricada, ya no habría forma de manipularla en el primer caso. En cuanto a los circuitos impresos sí que se podría modificar si se retira algún chip de los montados superficialmente y se suelda otro manipulado que aparentemente hace la misma función. Es decir, que incluso hasta después de la cadena de producción se puede alterar un circuito. De ahí el potencial de peligrosidad de estos troyanos.
Ahora comenzarás a ver el hardware como otra nueva fuente de amenazas, como un vector de ataque más y verás lo desatendido que está. Las auditorías se centran en el 99% de los casos en el software, y dejan de lado el hardware. Hemos visto cómo vulnerabilidades como Meltdown y Spectre han estado ahí durante décadas sin que nadie pusiera remedio a ellas. Y no son las únicas. ¿Crees que el hardware está demasiado descuidado en cuestiones de ciberseguridad?