Lost in Translation: Vulnerabilidades de puerta de enlace de protocolo industrial

La barrera del idioma no es solo entre las personas de TI y los usuarios. Las fábricas "inteligentes" y las computadoras que las controlan tampoco pueden comunicarse entre sí sin traductores: puertas de enlace especializadas de protocolos industriales. En esta publicación, exploraremos las debilidades de las puertas de enlace de protocolo y cómo los atacantes pueden usarlas para dañar las empresas.



imagen



Una puerta de enlace de protocolo es un pequeño dispositivo que proporciona traducción de comandos de misión crítica entre máquinas herramienta, sensores, varios actuadores y computadoras que ejecutan fábricas, represas, plantas de energía y plantas industriales. Estas puertas de enlace se parecen a los enrutadores domésticos: también tienen varias interfaces conectadas a diferentes redes y son igualmente vulnerables a varios ataques. Si tal dispositivo falla, se pierde la comunicación entre los sistemas de control y las máquinas. Los operadores no verán lo que está pasando. De hecho, ni siquiera podrán saber si las máquinas, turbinas o generadores funcionan de manera segura. Incluso si algo está claramente mal, una falla en la puerta de enlace no permitirá que el operador emita un comando para iniciar o detener procesos.



Una situación similar tuvo que ser en diciembre de 2015 duranteAtaques a la red eléctrica de Ucrania : los atacantes obtuvieron acceso al centro de control de la red eléctrica y deshabilitaron las puertas de enlace de protocolo en las subestaciones al cargarles firmware dañado. Esto bloqueó todos los intentos de los ingenieros de servicios públicos para restaurar el servicio, ya que los comandos de los sistemas de control para cerrar los interruptores automáticos no se pudieron transmitir.



En un informe de incidente de SANS ICS (una división de la organización estadounidense de educación e investigación SANS Institute for the Study of Industrial Control Systems) y el Power Analysis and Information Exchange Center (E-ISAC, una estructura que reúne a los participantes del mercado eléctrico de América del Norte), el firmware de la puerta de enlace resultó dañado. Los protocolos se denominaron "la explosión de los puentes". Esto describe con mucha precisión lo que sucedió, ya que los atacantes destruyeron el enlace clave: los traductores, que simplemente actúan como un puente entre los controladores y las subestaciones.

imagen

La estructura de interacción entre la red de control y la red de ejecución. Fuente (en adelante, a menos que se indique lo contrario): Trend Micro



Debido a su ubicación, una puerta de enlace de protocolo puede convertirse en el eslabón más débil de una cadena de dispositivos de instalaciones industriales, y un atacante puede atacar dichos dispositivos por dos razones importantes:



  1. Es poco probable que las puertas de enlace terminen en un inventario de activos críticos que sería monitoreado por un agente de seguridad o un sistema de registro. Por lo tanto, es menos probable que se note el ataque.
  2. Los problemas de traducción son difíciles de diagnosticar, por lo que las fallas en el diseño de las puertas de enlace del protocolo permiten a los atacantes avanzados realizar ataques altamente encubiertos.


Tipos de pasarelas



Según el modo de funcionamiento, se pueden distinguir dos familias de pasarelas:



  1. La pasarela en tiempo real ( pasarelas en tiempo real) reenvía el tráfico a medida que están disponibles: cada paquete entrante se evalúa, traduce y reenvía inmediatamente; representantes: Nexcom NIO50, Schneider Link 150, Digi One IA;
  2. Estaciones de datos: funcionan de forma asíncrona mediante la tabla de asignación de interfaces; no esperan una solicitud de lectura para recibir datos del PLC conectado, sino que solicitan periódicamente actualizaciones de estado del PLC y almacenan los datos recibidos en la memoria caché interna para su emisión a pedido.


La segunda característica importante de las puertas de enlace de protocolos es el tipo de protocolos que admiten y traducen. Con esta propiedad, los dispositivos se pueden agrupar en tres categorías:



  1. , , , Modbus TCP Modbus RTU, — , ;
  2. , , , Modbus RTU → Profibus, — , ;
  3. , , , Modbus TCP → Profibus, — , .


En el estudio Lost in Translation: When Industrial Protocol Translation Goes Wrong , examinamos las vulnerabilidades del primer grupo de pasarelas. Para ello, hemos montado un banco de pruebas formado por los siguientes componentes:



  • fuzzer que genera tráfico entrante para la puerta de enlace bajo prueba; por ejemplo, cuando se prueba la traducción de Modbus TCP a Modbus RTU, el fuzzer genera casos de prueba de Modbus TCP,
  • puerta de enlace - dispositivo estudiado,
  • simulador - un dispositivo que simula una estación receptora, por ejemplo, un PLC que implementa el Modbus RTU de un dispositivo esclavo - es necesario porque algunas puertas de enlace de protocolo pueden no funcionar correctamente si no hay esclavo en la cadena,
  • un rastreador que recopila información sobre el tráfico saliente, es decir, sobre el protocolo de transmisión,
  • analizador de tráfico entrante y saliente.


imagen

Diagrama de bloques de un banco de pruebas para estudio de vulnerabilidades de pasarelas de protocolo



imagen

Banco de pruebas real



Para modelar el nodo principal de Modbus, utilizamos el software de código abierto QmodMaster, y para modelar el dispositivo esclavo - pyModSlave, adaptándolo a nuestras necesidades, como recibir datos de / dev / ttyUSB0.



Usamos Wireshark para Modbus TCP e IONinja para Modbus RTU para interceptar el tráfico. Escribimos analizadores especiales para convertir la salida de estos dos programas en una sintaxis común que nuestro analizador pueda entender.



Implementamos el fuzzer sobre la base de BooFuzz, agregando algunos módulos del proyecto Boofuzz-modbus, que se distribuye bajo la licencia Apache. Hicimos el fuzzer portátil para varios protocolos ICS y lo usamos para probar varias implementaciones de Modbus.



Estos son algunos de los tipos de ataques que encontramos al examinar varias puertas de enlace de protocolo:



  • ataque al traductor de protocolo,
  • reutilización de credenciales y descifrado de configuración,
  • amplificación del tráfico,
  • escalada de privilegios.


Ataque de traductor de protocolo



Las puertas de enlace en tiempo real traducen paquetes de un protocolo a otro, reemplazando los encabezados del protocolo de origen con los encabezados del protocolo de destino. Las puertas de enlace de diferentes proveedores manejan los paquetes no válidos de manera diferente. Algunos de ellos, por ejemplo, al recibir un paquete con una longitud especificada incorrectamente, en lugar de ajustar la longitud o descartarlo, lo difunden tal cual. Esta función le permite diseñar cuidadosamente un paquete de la longitud incorrecta para Modbus TCP para que siga siendo correcto después de la traducción a Modbus RTU. Además, si lo lee como un paquete Modbus RTU, tendrá un significado completamente diferente en comparación con el equivalente Modbus TCP.



imagen

Paquete de ataque: en Modbus TCP contiene un comando para leer un registro, pero en Modbus RTU ya es un comando para escribir varias celdas de bits



Al analizar este paquete con semántica Modbus TCP, se interpreta como un comando para leer el registro de entrada (Código de función 04) del bloque con ID = 3. Pero en la semántica de Modbus RTU, se interpreta como escribir varias celdas de bits (código de función 15 y 0F) en un bloque con ID = 1.

Esta vulnerabilidad es crítica porque una solicitud de lectura completamente inocente se convierte en un comando de escritura porque la puerta de enlace del protocolo no procesa correctamente el paquete. Un atacante avanzado podría aprovechar esta vulnerabilidad para eludir un firewall industrial especializado que bloquea los comandos de escritura de direcciones IP no incluidas en la lista blanca.



Como resultado, solo un comando es suficiente para, por ejemplo, desactivar los sensores para monitorear el rendimiento y la seguridad del motor (sensor de temperatura y tacómetro), mientras se deja el motor encendido. Si los ingenieros y operadores no notan esto, es posible que el motor ya pase a modo crítico y falle, pero nadie lo sabrá, ya que el termómetro y el tacómetro han sido desactivados.



Reutilizar credenciales y descifrar la configuración



Las puertas de enlace de Moxa utilizan un protocolo patentado cuando se comunican con el programa de control remoto MGate Manager. Cuando se inicia MGate Manager, se le solicita al ingeniero un nombre de usuario y una contraseña para acceder a la puerta de enlace del protocolo, después de lo cual McGate Manager restablece automáticamente la configuración para que el usuario pueda cambiar la configuración. Cuando el ingeniero de campo completa la configuración de la puerta de enlace del protocolo y hace clic en el botón Salir, la configuración se comprime, encripta y carga en la puerta de enlace.



imagen

Pasos para la configuración de la puerta de enlace de Moxa



Hay dos fallas de seguridad en este procedimiento que pueden ser abusadas.



- Reutilizar



Cuando un ingeniero inicia sesión, se pasa una clave a MGate Manager para que haga hash de la contraseña. Sin embargo, en el firmware probado, el mecanismo se implementa de tal manera que un pirata informático puede interceptar la contraseña cifrada del ingeniero para ingresar al sistema y luego usarla para iniciar sesión con privilegios administrativos, incluso sin conocer la contraseña en forma de texto.



-



Descifrado de la configuración La configuración cifrada transmitida a través de la red contiene una clave de cifrado que permite a un pirata informático descargarla y descifrarla.



imagen

La configuración cifrada contiene la clave AES para descifrarla. Muy útil para piratear



Para el descifrado, utilizamos una biblioteca de descifrado patentada extraída del firmware del dispositivo. La configuración contiene archivos de configuración, bases de datos SQLite y una clave Secure Shell (SSH). A continuación se muestra un ejemplo de la configuración descifrada de nuestra propia puerta de enlace de protocolo, que logramos interceptar.



imagen

Archivos de configuración descifrados de Moxa MGate 5105



Amplificación de tráfico



Debido a que las estaciones de datos transmiten protocolos de forma asincrónica entre sí, se pueden combinar varias solicitudes de escritura de un bit en una sola solicitud para hacer un mejor uso del bus serie. Por ejemplo, un hacker puede llamar a la función 15 (escribiendo varios bits), en la estación de datos se convertirá en 1 registro para ID = 2, 1 para ID = 4, 1 para ID = 5, 1 para ID = 6. Por lo tanto, una entrada Modbus TCP se traduce en cuatro entradas Modbus RTU, lo que provoca una ligera congestión en el bus serie.



imagen

Un comando de TCP para escribir una celda se convierte en cuatro comandos de RTU.



Tenga en cuenta que esta amplificación no provocará una Denegación de servicio (DoS), pero un bus RS-485 sobrecargado puede provocar un comportamiento anormal.



Escalada de privilegios



En MGate 5105-MB-EIP, descubrimos la vulnerabilidad de escalada de privilegios CVE-2020-885 que permite a un usuario sin privilegios ejecutar comandos con privilegios elevados.



La fuente del problema es la falta de filtrado de la entrada del usuario en la interfaz web de la utilidad Ping.



imagen

Interfaz de la utilidad Mgate Ping



Con un conocimiento técnico mínimo, un usuario sin privilegios puede iniciar el demonio Telnet en el contexto del usuario raíz con una simple solicitud HTTP GET y obtener acceso remoto completo con un shell raíz.



Nuestras recomendaciones



Después de examinar las características específicas del funcionamiento de varias pasarelas de protocolos industriales, hemos desarrollado una serie de recomendaciones para proveedores, instaladores o usuarios finales.



  1. - . . .
  2. — , , . ICS- . Trend Micro — TXOne Networks, OT .
  3. , — /, . , , , MQTT.
  4. OT , .



All Articles