Seguridad SCADA: Herramienta para test de penetración de dispositivos Modbus/TCP.

Share this…

Los sistemas SCADA (Redes de Control de industrial) han pasado de redes cerradas propietarias a soluciones de código abierto y redes habilitadas para TCP/IP de manera constante durante los últimos años. Esto los ha hecho vulnerables a las mismas vulnerabilidades de seguridad que se enfrentan las redes informáticas tradicionales.

El protocolo más utilizado en redes SCADA suele ser Modbus. Un protocolo de comunicaciones de nivel 7 OSI, basado en la arquitectura maestro/esclavo, diseñado en 1979 por Modicon para su gama de controladores lógicos programables (PLCs). Modbus es uno de los protocolos más utilizados porque: es público, su implementación es fácil y requiere poco desarrollo y además maneja bloques de datos sin suponer restricciones. Este protocolo puede ser empleado sobre RS-232, RS-422, RS-485 o TCP/IP (puerto estándar TCP 502).

El protocolo Modbus/TCP se utilizó como protocolo de referencia para la creación de la herramienta Smod  para test de penetración de dispositivos Modbus/TCP, por los siguientes aspectos:

  • Modbus sigue siendo ampliamente utilizado en sistemas SCADA.
  • Modbus/TCP es simple y fácil de implementar.
  • Las bibliotecas de protocolos modbus están libremente disponibles para poder implementar aplicaciones inteligentes de red.

Smod es una herramienta con todo tipo de características de: diagnóstico, test de stress, test de penetración y fuzzing, para el protocolo modbus. Es una implementación de protocolo Modbus completa que utiliza Python y Scapy. Este software puede ejecutarse Linux y OS X con python 2.7.x.

Smod tiene 23 modulos para diversas pruebas en Modbus:

  • Ataque DoS con envenenamiento Arp.
  • Ataque DoS a PLC Galil RIO-47100.
  • Ataque DoS para escribir todas variables ‘coil’.
  • Ataque DoS con escritura de toda la función de registro.
  • Ataque DoS con función variables ‘coil’ de única de escritura.
  • Ataque DoS escribir una sola función de registro.
  • Funciones fuzzing Modbus.
  • Fuzzing basada en lectura de variables ‘coil’.
  • Fuzzing basada en excepción de lectura de variables ‘coil’.
  • Función de lectura de entradas discretas.
  • Fuzzing excepción de lectura de entradas discretas.
  • Fuzzing  excepción de función leer estado .
  • Fuzzing leer registros de retención de la función.
  • Fuzzing excepción de función leer registros de mantenimiento.
  • Fuzzing lectura de registros de entrada función.
  • Fuzzing  excepción de función leer registros de entrada.
  • Fuzzing escribir función variables ‘coil’ única.
  • Fuzzing escribir la función de registro único.
  • Vigilante ARP.
  • Comprobar protocolos Modbus.
  • Función de enumeración en Modbus.
  • Fuerza bruta.
  • Envenenamiento cache Arp.

Fuente:https://www.gurudelainformatica.es