miércoles, mayo 31, 2017

Rogue Robots: Cómo volver maliciosos robots industriales (Parte 1 de 2)

Ahora que todo el mundo está hablando de los robots y el impacto (negativo o positivo, según se mire) que tendrán en nuestra sociedad, y viendo su crecimiento expansivo, tanto ayer, como hoy, es un buen momento para comenzar a analizar la seguridad de estos Sistemas de Control Industrial (ICS).

Figura 1: Rogue Robots. Cómo volver maliciosos robots industriales (Parte 1 de 2)

No es necesario explicar la tremenda gravedad de no asegurar correctamente estos sistemas los cuales pueden afectar al proceso de fabricación de elementos críticos (aparatos médicos o componentes de coches como los frenos, por ejemplo) o incluso a la seguridad física de las personas que trabajan en la misma fábrica (¿será ya la hora de aplicar las Tres leyes de Asimov? Aunque ya sabemos que tienen fallos). Esto sin contar que las fábricas son instalaciones críticas para cualquier nación, convirtiendo este sector en otro objetivo en una situación de ciberguerra

Figura 2: Las famosas "Tres leyes de la robótica" de Asimov

Aunque las vulnerabilidades en robots industriales son conocidas, no existen muchos estudios que analicen en profundidad esta temática. Un primer paso para comenzar a tener una visión más amplia de esta problemática lo han dado investigadores de la Universidad Politécnica de Milán y la empresa de Trend Micro, realizando una investigación exhaustiva sobre la seguridad de los robots industriales y los resultados no son nada alentadores. En el siguiente vídeo explican qué se podría hacer con un "Rogue Robot" que hubiera sido comprometido y  convertido en malicioso.

Figura 3: "Rogue Robots"

Básicamente han estado haciendo "Hacking con buscadores" utilizando Shodan, ZoomEye y Censys buscando robots de las marcas más conocidas del sector. Al igual que ocurre con muchos otros sistemas industriales - en el libro “Infraestructuras Críticas y Sistemas Industriales: Auditorías de Seguridad y Fortificación” encontrarás mucha información sobre la seguridad de este tipo de sistemas -, han localizado robots utilizando direcciones IP públicas, contraseñas de acceso por defecto, software obsoleto - por ejemplo versiones Linux 2.6 ó .NET SDK 3.5 con vulnerabilidades conocidas - o incluso han llegado a acceder sin que el sistema solicitara contraseña alguna. Y estamos hablando de robots de marcas tan conocidas como Mitsubishi o Kawasaki

Para comprender el impacto real de los problemas de seguridad en este tipo de instalaciones, es necesario tener clara la arquitectura industrial de los ICS:
Robot: este componente es el más fácil de reconocer ya que habitualmente tiene forma de brazo humano y es capaz de moverse en tres o más ejes. Puede estar fijo en una posición o también puede desplazarse (móvil). Puede realizar mucho tipo de tareas desde coger objetos, doblar materiales o incluso manipular otros dispositivos como por ejemplo un láser.
Controlador: está compuesto de múltiples subsistemas informáticos complejos interconectados entre sí para recibir información del exterior y de esa forma tomar decisiones. Es básicamente el cerebro del robot y puede operar de forma automática (tarea programada) o manual (es el operador quien controla el robot habitualmente usando un joystick). 
• Interface Robot-Humano: generalmente existe un dispositivo llamado “teach pendant” el cual se conecta directamente utilizando un cable o vía wireless. En esta consola de mandos está el teclado o incluso el joystick mencionado antes para controlar el robot. Se utiliza tanto para programar el robot como para su monitorización.
Programación del robot: los programas suelen estar escritos en un entorno desarrollado por el propio fabricante. Se puede programar utilizando el joystick o utilizando secuencias de comandos desde un simulador interno. Estos programas se almacenarán en la memoria del controlador.
Figura 4: Arquitectura de un robot industrial

Es importante destacar también que todos estos robots suelen estar conectados a Internet a través de routers industriales de marcas como: Robustel, inHand o Digi. La conexión entre dichos robots se realiza básicamente para tareas de mantenimiento y monitorización. Esta conexión se lleva a cabo utilizando directamente Internet, una conexión VPN o incluso por GPRS usando APNs propias de los fabricantes.  

Figura 5: Ejemplos de routers industriales de las marcas Robustel, InHad y Digi

Una vez tenemos una visión de la arquitectura y el entorno de estos sistemas, podemos comenzar a estudiar algunos ejemplos de ataques. El primer paso será necesario entender un poco funcionamiento de estos robots. Es bastante fácil encontrar por Internet documentación, manuales e incluso ficheros ejecutables del controlador (podríamos aplicar técnicas de ingeniería inversa) o también ficheros de firmware o actualizaciones.

Ataques a Robots Industriales

Por otro lado, es importante distinguir entre ataques de red y ataques físicos. En el ataque de red sólo puede haber comunicación con el robot a través de una conexión de red. Aunque el robot no esté conectado directamente a Internet, suelen estar conectados a una LAN la cual puede a su vez tener fallos de configuración o incluso vulnerabilidades - por ejemplo, atacando un ordenador de algún usuario en esa misma LAN pero con conexión a Internet -.

En cambio, el atacante físico suele ser alguien con acceso directo al robot, como por ejemplo el mismo operador, pero también puede ser personal externo como técnicos de mantenimiento. El acceso físico es más peligroso ya que garantiza un acceso total al controlador del robot utilizando cualquier de los puertos de I/O habituales (aunque algunas conexiones son propias de los mismos fabricantes).

Figura 6: Rogue Robots: Testing the limits of an Industrial Robot´s Security (PDF)

Los diferentes ataques que se pueden realizar a estos sistemas son los siguientes (aquí están resumidos, en el paper original puedes verlos más en detalle):
Ataque 1: alterar los parámetros de control de movimiento. Este es quizás el ataque más llamativo ya que puede violar todas las normas de seguridad física al alterar de forma aleatoria e incluso violenta los movimientos del brazo robot, pudiendo dañar material, al mismo robot o incluso a personas. Este ataque podría ser utilizado en caso de tener como objetivo dañar o modificar el producto que se está fabricando.

Ataque 2: manipulación de los parámetros de calibración. Este ataque es parecido al anterior, pero se centra específicamente en modificar los datos de calibración almacenados en el equipo. Estos datos son utilizados por el controlador para corregir posibles errores de medida cuando los servomotores están funcionando. Una mínima variación de estos valores podría destruir el objeto que se está fabricando o dejarlo inservible. Los efectos de este tipo de ataque son los mismos que en el tipo de ataque número 1.

Ataque 3: manipulación de la lógica interna del producto. En este caso el atacante manipula el programa que se está ejecutando en el robot cambiando internamente su funcionamiento. El objetivo es dañar, modificar o alterar el producto que se está fabricando en la línea de montaje.

Ataque 4: alteración de los interfaces de estado del robot. El robot tiene que informar continuamente sobre el estado de, por ejemplo, sus motores. Esta información es visualizada en interfaces las cuales podrían ser vulnerables a ataques que modificaran la forma en la que muestran dicha información. Aunque un testigo o un panel indicara que los motores están parados, estos podrían seguir en funcionamiento.

Ataque 5: alteración de los estados del robot. En este tipo de ataque el objetivo son directamente los estados en vez de las interfaces. Por ejemplo, un atacante podría cambiar el modo manual a automático y viceversa, ya que normalmente el cambio de este estado se realiza por software en vez de utilizar un interruptor mecánico.
Ahora que ya tenemos algunos tipos de ataques posibles, pasamos a describir una demostración real de ataque.

PoC: Análisis de seguridad de un brazo robot

El objetivo será el brazo robot ABB de seis ejes IRB140, capaz de manipular hasta 6kg de peso. Viene equipado con un controlador bastante común modelo IRC5 y ejecuta el software RobotWare 5.13.10371 y FlexPendant (sistema basado en Windows CE). Este robot debería operar dentro de una jaula para evitar posibles accidentes con otros trabajadores humanos.

Figura 7: Brazo Robot ABB IRB140

Y ahora viene una de las partes que más nos interesa, los puntos de entrada. Para localizar en Internet modelos como el ABB IRB140, se ha utilizado en concreto Shodan - el cual ya hemos visto varias veces en otras pruebas de sistemas industriales -. En el caso práctico de este estudio, se realizado una búsqueda con estos parámetros “Server: eWON¨.

Figura 8: Ejemplo de búsqueda en Shodan de dispositivos eWon

eWON corresponde a la etiqueta que aparece en los servidores web embebidos correspondientes a la marca ABB. Para hacer una búsqueda más precisa podríamos poner el nombre de la empresa fabricante dentro del campo “Basic realm” para comprobar la cabecera de la respuesta HTTP. Una vez descubierto el dispositivo podemos comenzar a buscar vulnerabilidades, pero esto queda para la siguiente parte de este artículo. Vamos, que hacemos un Cliffhanger en toda regla.

Autor: Fran Ramirez (@cyberhadesblog) escritor de libro "Microhistorias: anécdotas y curiosidades de la historia de la informática" e investigador en ElevenPaths.

2 comentarios:

Bertin b dijo...

"eWON corresponde a la etiqueta que aparece en los servidores web embebidos correspondientes a la marca ABB"


ewon no pertenece a ABB como mencionas, ABB escogio a eWon por su experiencia en el campo de routers industriales para integrarlos con sus robots. que por cierto la clave por defecto de esos equipos ewon es adm:adm .

Gonzalo dijo...

Madre mía Windows CE, si sus ultimas versiones fueron del 2011 y 2013, lo triste es que seguro que usaran versiones más antiguas como la 6.0
y que aun sigan identificando los servidores web embebidos ¿aun no han aprendido a no hacer eso? para que es necesario identificar un servidor web embebido, el que se conecte a el legítimamente ya va saber a que se esta conectando

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares