El lado oscuro de la impresión 3D: desafíos, riesgos y usos maliciosos (I)

25 de febrero de 2019
La tecnología de impresión 3D está revolucionando los procesos de fabricación, sus entusiastas ya imaginan un futuro donde cada hogar y empresa tenga al menos uno de estos dispositivos, lo que transformaría la forma en que producimos, consumimos y reciclamos los objetos. Ahora bien… ¿qué riesgos de ciberseguridad son los más probables en este escenario? Espionaje, malware, destrucción, creación de armas…Vamos a analizarlos. Tabla impresión 3D imagen Tabla de impresión 3D La impresión 3D es un grupo de tecnologías de fabricación por adición, en las que se crea un objeto tridimensional a partir de modelos CAD o 3D, mediante la superposición de capas sucesivas de material. Las impresoras 3D por lo general son más rápidas, económicas y fáciles de usar que otras tecnologías de fabricación por adición, y además ofrecen la capacidad para imprimir piezas de diferentes materiales, con diferentes propiedades físicas y mecánicas, normalmente con un proceso de ensamble sencillo. Existen varios tipos de impresoras 3D, sus principales diferencias se encuentran en la técnica empleada para superponer las diferentes capas, la tecnología utilizada y los materiales que soportan. Algunos métodos funden o ablandan el material para producir las capas, por ejemplo, sintetizado de láser selectivo (SLS) y modelado por deposición fundida (FDM), mientras que otros depositan materiales líquidos que luego son solidificados. Cada método tiene sus propias ventajas e inconvenientes. Pero como toda tecnología, l a impresión 3D también tiene su lado oscuro, incluyendo los riesgos de seguridad que implica su utilización y los usos maliciosos o abusos posibles de esta tecnología. Vamos a analizar cinco de estos aspectos, que a nuestro entender son los más representativos:
  1. Modificación no autorizada de archivos de impresión
  2. Vulnerabilidades en software y firmware
  3. Exposición a Internet o redes inseguras
  4. Robo de modelos o archivos de impresión confidenciales
  5. Impresión de piezas con fines maliciosos
Modificación no autorizada de archivos de impresión
Para imprimir en 3D con la técnica FDM, el proceso consiste en ir alimentando con un filamento termoplástico a un extrusor, éste lo funde y lo deposita en capas siguiendo un recorrido de acuerdo a la forma que posee el objeto a cada altura. Las instrucciones para ir disponiendo el material fundido y construir así la forma de la pieza se suelen describir usando G-Code, que es un lenguaje de programación con el que se expresan las órdenes que debe ejecutar la impresora 3D. G-Code es en realidad un estándar muy difundido para programar máquinas de control numérico como tornos o fresadoras (no sólo impresoras 3D), e indica a la impresora por medio de un archivo los movimientos exactos que debe realizar a través de un sistema de coordenadas cartesiano 3D, cómo de caliente debe estar el extrusor, cómo de rápido rápido deben girar los motores, la cantidad de material a fundir y demás aspectos. Ejemplo de G-Code imagen Ejemplo de G-Code El problema es que l a mayoría de los archivos de impresión 3D no poseen verificación de integridad. Si un atacante pudiera acceder a ellos antes de ser impresos, podría modificarlos sin ser detectado y esa modificación podría tener graves repercusiones, sobre todo en entornos industriales. Los objetos impresos en 3D tienen una estructura interna que, en general, no es visible para el ojo humano una vez que se completa la impresión. Muchos proyectos incluyen elementos de diseño específicos, cruciales para la resistencia y la integridad estructural del objeto impreso. Un atacante con acceso a los archivos G-Code o archivos de modelo podría modificarlos o sabotearlos, introduciendo puntos débiles en su diseño que solo saldrían a la luz cuando se use el objeto, lo cual podría ser desastroso para una fábrica que utiliza impresoras de alta gama para desarrollar piezas industriales. A este respecto, un grupo de investigadores de varias universidades lanzó un vídeo que muestra lo que ellos denominan el ataque dr0wned. En el video se puede observar, desde el principio hasta el final, cómo un atacante podría infectar el equipo de una víctima, encontrar los modelos de impresión 3D que contiene (en este caso, uno para una hélice de avión no tripulado) y posteriormente modificar esos modelos para que finalmente fallen durante el uso.
Vulnerabilidades en software y firmware
Si bien las impresoras 3D difieren entre sí en muchos aspectos, comparten atributos similares que las hacen vulnerables a ataques informáticos. Uno de ellos es el hecho de que incluyen software y firmware que (por supuesto) pueden contener vulnerabilidades de seguridad que podrían ser aprovechadas por los criminales para atacar estos equipos. En cuanto al firmware, las impresoras 3D "Do It Yourself" o DIY más simples y económicas, como por ejemplo los clones de la conocida Prusa I3 MK2 y las impresoras 3D de RepRap, a menudo utilizan el firmware open source denominado Marlin. En junio de 2018, un investigador descubrió una vulnerabilidad de buffer overflow en el firmware Marlin, que fue corregida en las últimas versiones. Si un atacante convence al operador de la impresora (ya sea en entorno doméstico o industrial) para que cargue un archivo de impresión 3D malintencionado con instrucciones específicas en G-Code, podría explotar esta vulnerabilidad para ejecutar código arbitrario en la impresora de la víctima. Sobre el software, existen herramientas de software 3D específicas que se utilizan en cada una de las distintas etapas de la impresión 3D, como el diseño de modelos ( modeling) y la traducción de estos modelos a capas ( slicing), estas herramientas también podrían contener vulnerabilidades de seguridad. Por ejemplo, Blender, es un software usado para slicing que posee varias vulnerabilidades de buffer overflow, como se detalla en los siguientes CVEs, por las que un atacante podría convencer al operador de la impresora de abrir un archivo .blend malicioso especialmente manipulado, lo que resultaría en la ejecución código arbitrario en el equipo. Software Blender imagen Blender Continuación del análisis describiendo el resto de riesgos: » El lado oscuro de la impresión 3D: desafíos, riesgos y usos maliciosos (II)