Aprendiendo a Leer y Escribir pero… dispositivos industriales (Parte 1)

En nuestro articulo anterior compartíamos información como con nuestro script podíamos capturar y analizar tráfico del protocolo ModBus pero muchos nos han preguntado si no podíamos escribir… Claro que sí, y de hecho los atacantes mayormente buscan escribir en los PLC con el objetivo de afectar funcionalidades u operatividad en nuestros sistemas, básicamente comprometiendo la disponibilidad o la integridad de nuestros procesos.

Varios de los protocolos industriales son por defecto inseguros ya que no fueron pensados con la seguridad desde el diseño, esto sin duda permite en algunas implementaciones interactuar con los registros sin mayor complicación (mientras sean accesibles obviamente) ya que algunos casos como ModBus no se preocupan por autenticar ni al origen ni al destino de un trama.


En esta nueva entrada de nuestro blog nos enfocaremos en como interactuar a través de leer y escribir ciertos datos quizás en los dos protocolos mas conocidos y usados dentro del mundo industrial.

Protocolo Modbus
Utilizaremos el simulador Modbus llamado modbusPAL que permitiría emular nuestro laboratorio. Por su naturaleza Modbus funciona de modo Master/Slave, por lo que primero crearemos un Slave.

Luego configuraremos los registros y coils del Slave, donde este ultimo hará las veces del PLC en el cual modificaremos los valores.

Ahora, usaremos la herramienta mbtget como maestro para comprobar que la lectura es correcta.

Observando que la lectura es correcta, realizaremos la prueba de escritura.

Del mismo modo para los registros puedes escribir en estos (soportan valores decimales), no así en los coils, que como vimos en nuestro laboratorio solo aceptan valores binarios.

Cada uno de estos valores aplica cambios directos sobre la operación física que ejecutan los elementos que los PLC están controlando, por lo tanto, para hacer cambios sin resultados inciertos que pueden generar un riesgo a la instalación industrial. Es por eso que será necesario entender que esta conectado al PLC y como interactuar, además de no realizar cambios sobre sistemas desconocidos.

Por último, es importante recordar que nuestras pruebas es un ambiente acotado a una demostración y la nomenclatura master-slave se intenta evitar en entornos productivos en esta época y la forma correcta a utilizar es cliente servidor (por ejemplo, Cliente = master = HMI o Servidor = slave = PLC). Así también, en caso de querer implementar controles de seguridad a nivel se software, esto hoy en día cambio de uso de una lista blanca por lista de permitidos, y lista negra por lista de denegados.

En nuestra próxima entrada conoceremos mas sobre como leer y escribir datos, pero… en otro protocolo industrial que seguro te interesara.

Leave a Reply

Your email address will not be published. Required fields are marked *