Saltar al contenido
Zyberum Cyber Security Firm
Menú
Caso prácticoIoTMQTT

Caso práctico: un riego inteligente que cualquiera controlaba

Probamos un sistema de riego inteligente: una configuración MQTT defectuosa nos permitió ver y accionar los dispositivos de otros clientes y localizar dónde están.

Zyberum Security Team · Publicado · 4 min de lectura

El riego inteligente suena inofensivo: válvulas, un controlador, una app. Probamos un sistema de este tipo y acabamos con el control de dispositivos que no eran nuestros y con un mapa de dónde están.

Qué probamos

  • el controlador y su firmware
  • la app móvil
  • el servicio en la nube
  • la conexión MQTT que transporta los comandos y los mensajes de estado

Qué encontramos

MQTT estaba roto

El sistema utilizaba MQTT para conectar los dispositivos, la app y la nube. La configuración no separaba a unos clientes de otros. Desde nuestra propia cuenta podíamos ver los dispositivos de otros clientes, incluidos sus mensajes de estado.

Podíamos accionarlos

Y no se quedaba en ver. También podíamos enviar comandos: abrir válvulas, iniciar el riego, cambiar ajustes, en sistemas que pertenecían a otras personas.

Podíamos localizarlos

Los mensajes y las respuestas de la API contenían información suficiente para geolocalizar los dispositivos. Un atacante sabría qué dispositivo está en cada sitio.

Por qué importa

En conjunto: una lista de dispositivos, sus ubicaciones, su actividad y la capacidad de controlarlos a distancia. Eso son daños por agua y costes a gran escala, y son datos de ubicación de viviendas particulares y de empresas.

Y, como en la mayoría de los hallazgos IoT de este tipo, nada de esto exigió romper el cifrado ni explotar errores de memoria. El sistema respondía a preguntas que debería haber rechazado.

Qué deberían aprender los fabricantes

  1. Dé a cada dispositivo su propia identidad. Sus propias credenciales, no unas compartidas sacadas del firmware.
  2. Restrinja los topics en el broker. Un cliente solo debe poder leer y escribir en sus propios topics. Las suscripciones con comodines tienen que ser imposibles para los clientes normales.
  3. No incluya la ubicación en mensajes que no la necesitan. Un dato que no se envía no se puede filtrar.
  4. Compruebe la autorización también en la nube. La misma comprobación de propiedad corresponde a cada llamada de API.
  5. Monitorice el broker. Un cliente que se suscribe a todo es un incidente y debería hacer saltar una alarma.

Son exactamente los puntos que los requisitos de ciberseguridad de la RED (EN 18031) y el Cyber Resilience Act convierten ahora en obligatorios para los productos conectados.

Probamos los dispositivos, sus apps y su nube como un único sistema. Consulte nuestras pruebas de seguridad IoT o los pentests de hardware, o vea cuánto cuesta una prueba.

FAQ

Preguntas frecuentes

¿Qué es MQTT y por qué supone un riesgo?

MQTT es un protocolo de mensajería ligero que utilizan muchos productos IoT: los dispositivos y las apps publican y se suscriben a topics en un broker central. Si el broker no restringe qué topics puede usar cada cliente, cualquier cliente conectado puede leer y enviar mensajes de todos los dispositivos.

¿De verdad un sistema de riego de jardín es un problema de seguridad?

Sí. Quien lo controla puede provocar daños por agua y costes, y los datos de ubicación indican a un atacante dónde están instalados los dispositivos y, por su actividad, cuándo no hay nadie. Las mismas familias de productos se utilizan además en agricultura y en instalaciones comerciales.

LlámenosReservar llamada

Elija la hora que mejor le convenga

Abrir en una pestaña nueva