Introducción a la Seguridad en Redes Industriales (y III)

lunes, 18 de agosto de 2014

Antiguamente, en entornos industriales era normal encontrarse con una red de datos y una red de control "casi" completamente separadas. En la red de datos se solía transmitir gran cantidad de información, sobre todo para la toma de decisiones. Así, uno de los protocolos favoritos para las aplicaciones SCADA era el DNP (Distributed Network Protocol). Sin embargo en la red de control se transmitían pequeños paquetes de información de los elementos de campo bajo monitorización. Así que en ellas, por lo general, no se utilizaban redes ethernet con TCP/IP sino protocolos del tipo buses de campo como ModBus (de capa 7, de aplicación), HART (High way Addressable-Remote-Transducer), Device Net, o CanOpen.

Si bien existen varios protocolos en ambas redes, los más comunes de encontrar son ModBus y DNP, ambos utilizados en una gran variedad de escenarios de conectividad física diferentes, que incluyen RS-232, RS-422, RS-485 y Ethernet con TCP/IP.

ModBus

Creado en el año 1979, es un protocolo de mensajería de la capa de aplicación del modelo OSI. Se utiliza para proporcionar comunicación cliente/servidor entre dispositivos conectados en diferentes tipos de buses de comunicación de uso industrial en general. Su diseño es antiguo y no se realizó pensando en la problemática de la seguridad. Esto tiene consecuencias que podríamos considerar "absurdas" para nuestra mirada actual. Por ejemplo, los dispositivos de ModBus no posean especificaciones claras respecto a cómo deben ser los accesos de entrada y salida a través de los PLC. Dado que los fabricantes de dispositivos con ModBus necesitan agregar más funcionalidades y no existe una definición estándar respecto a cómo deben ser enviados o recibidos los Data Types, cada uno ha agregado extensiones propietarias haciendo que en muchos casos los dispositivos entre distintos fabricantes no puedan interoperar entre sí. Los Data Types soportados por este protocolo solo se basan en entradas (Discrete Input) y salidas de 16 bits sin mayores especificaciones.

Las características básicas de ModBus son:

  • No soporta File Transfer.
  • No posee indicadores de hora y día en su trama. Lee los valores de los rangos de entradas o salidas por la emisión de una única solicitud. Todos los datos son tratados como valor actual, por tanto, sin un dato no es leído, se pierde.
  • Las operaciones de control que soporta son a través de la lectura/escritura de los Data Types (Coils and Holding Registers).

DNP

Es un estándar un poco más nuevo, de 1990. Su versión 3.0 Basic 4 fue creada en 1993. Se diseñó para ser utilizada en las aplicaciones SCADA y en las RTU de las empresas de redes eléctricas. El protocolo fue especificado particularmente para trabajar de manera serial (RS-232 o RS-485) sobre la capa física típicamente en cobre, fibra o radio, aunque también puede utilizarse en conexiones satelitales y en Ethernet (DNP3).

La concepción de DNP3 se basaba principalmente en:
  • Asegurar la integridad de los datos transmitidos.
  • Permitir armar una estructura ágil y flexible para soportar múltiples implementaciones y ser interoperable.
  • Aprovechar al máximo la disponibilidad de las redes cableadas sin sobrecargarlas de información.
  • Mantener como un estándar abierto, no propietario, para asegurarse que incluya los aportes de todas las partes (representantes de las empresas, los fabricantes, los desarrolladores de RTU y los implementadores).

Las características básicas de DNP:
  • Soporta transferencia de archivos.
  • Soporta múltiples métodos de lectura de entradas, como también la encapsulación en un solo mensaje.
  • Posee un TimeStamp por cada lectura.
  • Soporta cambios de eventos (actualizaciones de estado), reduciendo considerablemente el tráfico de la red.
  • Soporta las operaciones de control a través de salida de grupos de objetos (Crob y Analog Output Blocks). Estos objetos de salida también son de lectura/escritura ya que leer el objeto de salida permite obtener las estadísticas de producción.
  • Soporta operaciones de control por etapas (dos etapas más precisamente) como una variable de seguridad, que lamentablemente no es la que más se ve implementada. Con este control, un operador realiza una consulta "Select" y una vez que se confirma por el dispositivo esclavo, puede enviar la petición “Operate”.

A diferencia de ModBus, se encuentran definidos un interesante conjunto de Data Types que describen cómo debe tratarse la información: 16 y 32 bit integral value, 32 y 64 bit floating point values, TimeStamps or not y Quality flags.

La documentación de DNP3 es bastante extensa y tiene diferentes especificaciones:
  • DNP 3.0 - Basic 4 Document Set.
  • DNP 3.0 Data Link Layer.
  • DNP 3.0 - Transport Functions
.
  • DNP 3.0 - Application Layer Specification.
  • 
DNP 3.0 - Data Object Library.

Para obtener más información sobre estos protocolos, recomendamos esta serie de enlaces.

* Introducción a la seguridad en redes industriales (I)
* Introducción a la seguridad en redes industriales (II)


Claudio Caracciolo
claudio.caracciolo@11paths.com

No hay comentarios:

Publicar un comentario en la entrada