Identificadores de cliente MQTT contradictorios - AWS IoT Device Defender

Identificadores de cliente MQTT contradictorios

Varios dispositivos se conectan con el mismo ID de cliente.

Esta comprobación aparece como CONFLICTING_CLIENT_IDS_CHECK en la CLI y la API.

Gravedad: alta

Detalles

Se han realizado varias conexiones con el mismo ID de cliente, lo que ha provocado la desconexión de un dispositivo ya conectado. La especificación de MQTT solo permite una conexión activa por ID de cliente, con lo cual, cuando otro dispositivo se conecta con el mismo ID de cliente, se bloquea la conexión del dispositivo anterior.

Cuando se realiza como parte de una auditoría bajo demanda, esta comprobación analiza cómo se usaban los ID de cliente utilizados por los dispositivos para conectarse durante los 31 días anteriores al inicio de la auditoría. Para las auditorías programadas, esta comprobación analiza los datos desde la última vez que se realizó la auditoría hasta el momento en que comenzó esta instancia de la auditoría. Si ha tomado medidas para mitigar esta condición durante el periodo de la comprobación, observe cuándo se realizaron las conexiones/desconexiones para determinar si el problema persiste.

Se devuelven los siguientes códigos de motivo cuando esta comprobación encuentra una falta de conformidad:

  • DUPLICATE_CLIENT_ID_ACROSS_CONNECTIONS

Además, los resultados devueltos con esta comprobación incluyen el ID de cliente utilizado para conectarse, los identificadores de las entidades principales y los tiempos de desconexión. Se muestran primero los resultados más recientes.

¿Por qué importa?

Los dispositivos con ID en conflicto se ven obligados a volver a conectarse constantemente, lo que puede provocar la pérdida de mensajes o la imposibilidad de que el dispositivo se conecte.

Esto puede indicar que un dispositivo o las credenciales de un dispositivo se han puesto en riesgo y podrían ser parte de un ataque DDoS. También es posible que los dispositivos estén mal configurados en la cuenta o que el dispositivo tenga una mala conexión y se vea obligado a volver a conectarse varias veces por minuto.

Cómo solucionarlo

Registre cada dispositivo como un objeto único en AWS IoT y use el nombre de objeto como ID de cliente para la conexión. O use un UUID como ID de cliente al conectar el dispositivo a través de MQTT. También puede utilizar acciones de mitigación para:

  • Aplicar la acción de mitigación PUBLISH_FINDINGS_TO_SNS si desea implementar una respuesta personalizada en respuesta al mensaje de Amazon SNS.

Para obtener más información, consulte Acciones de mitigación.