Identifiants clients MQTT conflictuels - AWS IoT Device Defender

Identifiants clients MQTT conflictuels

Plusieurs appareils se connectent en utilisant le même ID client.

Cette vérification apparaît comme CONFLICTING_CLIENT_IDS_CHECK dans la CLI et l'API.

Gravité : Elevée

Détails

Plusieurs connexions ont été établies avec le même ID client, ce qui a entraîné la déconnexion d'un appareil déjà connecté. La spécification MQTT autorise une seule connexion active par ID client. Par conséquent, si un autre appareil se connecte avec le même ID client, l'appareil précédent est déconnecté.

Lorsqu'il est effectué dans le cadre d'une demande d'audit, ce contrôle examine la façon dont les ID client ont été utilisés pour se connecter au cours des 31 jours avant le début de l'audit. Pour les audits planifiés, ce contrôle examine les données entre la dernière fois où le contrôle a été exécuté et le moment où cette instance de l'audit a démarré. Si vous avez pris des mesures pour atténuer cette condition pendant la période contrôlée, notez à quel moment les connexions/déconnexions ont été effectuées pour déterminer si le problème persiste.

Les codes de motif sont renvoyés lorsque ce contrôle trouve une non-conformité :

  • DUPLICATE_CLIENT_ID_ACROSS_CONNECTIONS

Les résultats renvoyés par ce contrôle incluent également l’ID client utilisé pour se connecter, les ID principaux et les heures de déconnexion. Les résultats les plus récents sont répertoriés en premier.

Pourquoi est-ce important ?

Les appareils dont les ID sont en conflit sont contraints de se reconnecter en permanence, ce qui peut entraîner la perte de messages ou faire qu’un appareil ne peut pas se connecter.

Cela peut indiquer qu'un appareil ou les informations d'identification d'un appareil ont été divulgués, et peut faire partie d'une attaque DDoS. Il est également possible que les appareils soient mal configurés dans le compte ou qu'un appareil ait une mauvaise connexion et soit forcé de se reconnecter plusieurs fois par minute.

Comment réparer

Enregistrez chaque appareil en tant qu'objet unique dans AWS IoT et utilisez le nom d'objet comme ID client pour la connexion. Ou utilisez un UUID comme lD client lors de la connexion de l'appareil via MQTT. Vous pouvez également utiliser des actions d’atténuation pour effectuer les actions suivantes :

  • Appliquer l'action d’atténuation PUBLISH_FINDINGS_TO_SNS si vous souhaitez mettre en œuvre une réponse personnalisée pour répondre au message Amazon SNS.

Pour en savoir plus, consultez Actions d'atténuation.