Evolucionando a Modbus seguro
El protocolo Modbus/TCP es utilizado en el entorno industrial para transmitir órdenes de lectura o escritura de registros entre dispositivos dentro de múltiples sectores, incluyendo fabricación, industria química, alimentación, etc. Está basado en una relación maestro/esclavo y se encuentra muy extendido dentro del mundo industrial por la sencillez de sus tramas y el gran soporte que tiene con respecto a todos los dispositivos que poseen capacidades para utilizarlo en sus comunicaciones.
Como ya se comentó en el artículo Desmontando Modbus, este protocolo tiene bastantes deficiencias, fruto de un diseño inicial sin tener en cuenta la seguridad. Por esta razón, apareció su sucesor, el protocolo Modbus/TCP seguro, cuyo objetivo es ser más fiable y robusto, de forma que sus comunicaciones se cifren y no sea tan fácil interpretar los datos.
Nuevas características de seguridad de Modbus/TCP seguro
Las nuevas características de seguridad que incorpora este protocolo respecto a su predecesor son:
- Cambio de maestro/esclavo a cliente/servidor. Según la nueva especificación ahora los dispositivos Modbus no serán el maestro y el esclavo sino que se cambia a un lenguaje más informático, por lo que se habla de cliente y servidor. El cliente se correspondería con el tradicional maestro y el servidor sería el dispositivo final, anteriormente llamado esclavo.
- Cambio al puerto 802/TCP. Aunque este aspecto no guarda una gran relación con la seguridad del protocolo es importante tener este dato en cuenta a la hora de analizar las comunicaciones. En esta línea, cabe destacar que no hay cambios en la cabecera mbap (Modbus Application Protocol).
- Identidad basada en certificados (x.509v3). El uso de estos certificados evitará ataques que actualmente pueden ejecutarse con Modbus/TCP como man in the middle, inyección de tramas, etc. El certificado permite garantizar la proveniencia de las tramas asegurando que los dos dispositivos que mantienen la comunicación son los que dicen ser.
- Establecimiento de la comunicación (fase de autenticación) entre cliente y servidor a través de un canal seguro con TLS. Una vez establecida la sesión TLS entre cliente y servidor, tanto las peticiones como las respuestas Modbus/TCP se intercambiarán dentro de un canal seguro.
- Autenticación mutua entre cliente y servidor. Como alternativa al uso de credenciales el servidor puede autenticar a los clientes mediante un certificado. El servidor puede requerir que el cliente proporcione un certificado que el servidor valida según las autoridades de certificación en las que confía.
- Autorización mediante roles codificados como extensión en los propios certificados. Gracias al uso de identificadores de objetos (OID) incluidos en los certificados electrónicos es posible incluir el rol asignado al dispositivo que va a intercambiar información. Por ejemplo, el siguiente identificador se corresponde con la asignación de rol como Operador en el que el rol es definido por un PEN (Private Enterprise Number), en este caso 50316, dentro de un MIB privado proporcionado por la organización Modbus:
- RoleOID:1.3.6.1.4.1.50316.802.1
El protocolo Modbus/TCP seguro es una evolución de Modbus/TCP ya existente que añade una cabecera de seguridad para encapsular las tramas basándose en el uso de TLS (seguridad de la capa de transporte). La PDU (Protocol Data Unit) mbap, que no ha cambiado en el perfil mbaps, se encapsula en un mensaje de protocolo de aplicación TLS.
Modbus/TCP vs. Modbus/TCP seguro
La documentación de modbus seguro refleja que se han implementado mejoras en el protocolo Modbus/TCP, pero realmente no se han comentado las diferencias entre ambos. A continuación se verá una comparación de diversas partes del protocolo antiguo (no seguro) y nuevo (seguro) para aclarar cuáles han sido los cambios que hacen a este protocolo Modbus/TCP seguro un candidato perfecto para ser usado en las comunicaciones industriales.
- Diferencias básicas entre Modbus/TCP y Modbus/TCP seguro -
El protocolo Modbus que se ha usado hasta hoy, y que se seguirá usando pero cada vez menos, posee dos formas de transmitirse: por serie o Ethernet, ambas inseguras y con facilidad de que un atacante se aproveche de las vulnerabilidades que poseen. Con la nueva implementación de Modbus seguro solo se podrán transmitir las tramas en comunicaciones a través de Ethernet y haciendo uso de TLS.
El protocolo Modbus actual no tiene autenticación, ya que solo es necesaria una dirección IP y un código de función para establecer las sesiones. Además, un atacante es capaz de capturar el tráfico de red y analizar todas las peticiones intercambiadas entre maestros y esclavos en una red industrial que utilice Modbus/TCP y podría interpretar las tramas fácilmente porque la especificación de Modbus es de dominio público. Al no estar autenticadas las sesiones se podía suplantar tanto al esclavo como al maestro. En Modbus/TCP seguro esto ya no es posible al asegurarse la autenticación y el cifrado de la información.
Este tipo de debilidades obliga a aplicar contramedidas externas en el uso del Modbus actual, ya que es la única forma de mejorar su seguridad. Mediante el uso de cortafuegos es posible controlar las peticiones tanto de escritura como de lectura y hasta los registros a los que está permitido realizar ciertas acciones. Por otro lado, y gracias al uso de IDS e IPS, se alerta o se bloquean peticiones provenientes de posibles atacantes.
Dado que la nueva implementación de Modbus/TCP en su versión segura incorpora cifrado, el paradigma de la ciberseguridad está cambiando a la hora de analizar las tramas y detectar anomalías. Por ello, el uso de cortafuegos, sistemas de detección de intrusos, etc. solo puede implementarse en una red industrial si dichas herramientas son capaces de interpretar el tráfico cifrado. Este hecho supone un problema con respecto al establecimiento de canales TLS seguros extremo a extremo, ya que estos dispositivos deberían romper el cifrado para poder realizar el análisis, tal y como se hace actualmente con las comunicaciones HTTPS, donde se establece un canal cifrado entre un extremo hasta el cortafuegos y desde este al otro extremo.
Usos e incompatibilidades
El uso de Modbus seguro, como nuevo protocolo, requiere de unos años para su asentamiento en la industria. Actualmente se están creado los primeros dispositivos que lo soportan, por lo que el índice de penetración en el mercado es pequeño.
Modbus seguro podría usarse para las mismas funciones y en los mismos entornos en los que se utiliza la versión TCP de Modbus original, siempre teniendo en cuenta lo comentado anteriormente sobre el soporte de los dispositivos.
Conclusión
Las nuevas capacidades en materia de ciberseguridad que se incorporan en el protocolo Modbus seguro hacen del mismo una gran elección para poder utilizar y reemplazar otras comunicaciones que llevan más tiempo implantadas en la industria y no se pensaron inicialmente con una capa de seguridad. Sin embargo, es un gran reto para la industria desarrollar dispositivos que permitan soportar dicho protocolo. Por esta razón, su despliegue se podría ver ralentizado, dando lugar a otro desafío para algunas herramientas de monitorización que actualmente pueden diseccionar protocolos industriales sin cifrar.