Protección de mensajes MQTT

El uso de un intermediario de mensajes en las comunicaciones MQTT resuelve algunos problemas de seguridad de las redes industriales, pero no todos. El coinventor de la tecnología ofrece consejos sobre cómo proteger sus comunicaciones MQTT.

Un aspecto clave de la arquitectura de MQTT (transporte de telemetría de fila de mensajes) implica el uso de un servidor intermediario para recopilar datos, a medida que cambian, de los dispositivos a los que está conectado. Luego publica esos puntos de datos en otros sistemas o aplicaciones que se suscriben a esas fuentes de datos específicas recopiladas por el servidor. Debido a que los sistemas o aplicaciones suscriptores no se conectan directamente al dispositivo que están monitoreando, la estructura de mensajería MQTT proporciona inherentemente algunos niveles de seguridad.

Sin embargo, como cualquier medida de seguridad, esta disociación de los dispositivos y los sistemas que se suscriben a ellos no aborda todos los posibles ángulos de ciberseguridad. Más allá de la desconexión directa que ofrece el servidor, las infraestructuras MQTT admiten varias opciones que utilizan métodos de seguridad de Internet ampliamente adoptados, como los utilizados en la banca en línea y recomendados por el NIST (Instituto Nacional de Estándares y Tecnología).

Infraestructura MQTT

Para comprender las diversas medidas de seguridad de MQTT, es útil comprender primero los componentes básicos de la infraestructura IIoT (Internet industrial de las cosas) de MQTT:

·     Clientes de borde MQTT: estos son dispositivos distribuidos de forma remota y / o puertas de enlace en la planta o en el campo conectados a su proceso para recopilar datos.

·      Clientes empresariales MQTT: puede ser cualquier aplicación centralizada o remota que necesite suscribirse a un servidor MQTT para recibir o enviar información en la infraestructura IIoT.

·      Servidor (s) MQTT: estos son servidores centralizados con los que se conectan las aplicaciones de cliente empresarial y de borde para enviar y recibir datos.

Arlen Nipper, presidente y director de tecnología de Cirrus Link y cocreador de MQTT, explica que tanto los clientes empresariales como los de borde de MQTT utilizan los mismos modelos de seguridad. “Cada uno inicia una conexión saliente a través de la red TCP / IP utilizando la seguridad de la capa de transporte (TLS) con credenciales de certificado de seguridad de una autoridad certificadora (CA)”, dijo.


 Lea este artículo sobre ciberseguridad y las áreas de ataque comunes en sistemas de control  industrial


TLS utiliza un conjunto de certificados de seguridad públicos / privados donde los clientes MQTT deben establecer una conexión con el servidor MQTT que está autenticado por la CA. Este es el mismo nivel de seguridad que se usa en los sistemas bancarios hoy en día y el NIST lo considera la mejor práctica.

La arquitectura de red de las topologías MQTT requiere que los clientes de borde MQTT tengan todos los puertos TCP entrantes a través de la red deshabilitados, explicó Nipper. "Esto proporciona un alto nivel de seguridad al evitar que los posibles atacantes en Internet / intranet simplemente establezcan una conexión con los dispositivos periféricos".

Esta ilustración muestra la conectividad del cliente empresarial MQTT.Esta ilustración muestra la conectividad del cliente empresarial MQTT.Fuente: Cirrus Link.Si bien esta configuración proporciona una seguridad sólida, Nipper señala que puede crear desafíos para acceder al cliente de borde para la configuración y la depuración remotas. "Estos desafíos se pueden superar utilizando una conexión VPN inversa", dijo.

  Seguridad del servidor

La configuración de TLS utilizada con el dispositivo de borde también se utiliza con los servidores MQTT. “Los servidores MQTT utilizan más medidas de seguridad en forma de nombre de usuario, contraseña y una lista de control de acceso (ACL) de nivel MQTT”, dijo Nipper. “La ACL limita qué dispositivos podrán conectarse al servidor MQTT. La ACL también controla qué temas puede publicar y suscribirse un determinado par de nombre de usuario / contraseña, lo que brinda mayor seguridad".

Nipper agregó que los servidores MQTT deben configurarse en una DMZ y detrás de un firewall que solo permite dos puertos entrantes para la conexión: 8883 y 443.

Dado que los servidores MQTT proporcionan el mecanismo de entrega de mensajes en el bus de servicios empresariales, Nipper señaló que los servidores MQTT "deben cumplir con 3.1.1 OASIS". Cirrus Link suministra un distribuidor MQTT y un servidor Chariot MQTT para este propósito. La compañía también suministra el servidor Chariot MQTT para múltiples redundancias de servidores MQTT y un mayor número de clientes conectados para aplicaciones locales o conectadas a la nube.

Esta ilustración muestra la conectividad del cliente de borde MQTT.Esta ilustración muestra la conectividad del cliente de borde MQTT.Fuente: Cirrus Link.Resumen de protección

Para reiterar las recomendaciones de seguridad hechas anteriormente, Nipper sugiere aplicar las siguientes medidas de seguridad en los niveles de transporte y aplicación:

·      Red física/VPN para máxima seguridad.

·      TLS con credenciales de certificado de CA para todas las conexiones.

·      Todos los puertos entrantes deben desactivarse en los clientes de borde MQTT.

·      Solo dos puertos TCP / IP (8883 y 443) deben estar abiertos en el servidor MQTT.

·      Utilice el nombre de usuario / contraseña del cliente MQTT en los servidores MQTT, y

·      Las ACL deben usarse para limitar el acceso de los clientes de MQTT a los niveles de tema a los que pueden publicar o suscribirse.

Capas de seguridad

Nipper señaló que la seguridad de la red se puede dividir en tres capas, cada una de las cuales proporciona un nivel diferente de seguridad contra ciberataques:

·      La capa física proporciona el nivel más alto de seguridad cuando la red está aislada de cualquier conexión externa o está completamente encapsulada en una red privada virtual (VPN).

·      La capa de transporte utiliza seguridad de la capa de transporte (TLS) con credenciales de certificado de seguridad de una autoridad de certificación (CA) para proteger las infraestructuras que utilizan redes públicas, donde la configuración de VPN discretas para cada dispositivo final no es práctica ni rentable. Los cortafuegos también se pueden usar en la capa de transporte para cerrar todos los puertos TCP / IP en los dispositivos remotos, y solo se deben permitir los puertos mínimos necesarios para la operación en la ubicación central.

·      La tercera capa es la seguridad de la aplicación donde, dentro de los servidores Cirrus Link MQTT, se aplica la autenticación de nombre de usuario / contraseña con listas de control de acceso (ACL).

“La combinación de estas capas asegura una red IIoT segura y robusta”, dijo Nipper.

Más en Ciberseguridad