Widersprüchliche MQTT-Client-IDs
Mehrere Geräte stellen eine Verbindung mittels derselben Client-ID her.
Diese Prüfung wird wie CONFLICTING_CLIENT_IDS_CHECK
in der CLI und API angezeigt.
Schweregrad: Hoch
Details
Es wurden mehrere Verbindungen mit der gleichen Client-ID hergestellt, wodurch ein bereits verbundenes Gerät getrennt wurde. Die MQTT-Spezifikation gestattet nur eine aktive Verbindung pro Client-ID, d. h. wenn sich ein anderes Gerät mit derselben Client-ID verbindet, wird die vorherige Verbindung abgebrochen.
Wenn diese Prüfung im Rahmen eines On-Demand-Audits durchgeführt wird, untersucht sie, wie Client-IDs verwendet werden, um innerhalb der letzten 31 Tage vor dem Start des Audits eine Verbindung herzustellen. Bei geplanten Audits untersucht diese Prüfung die Daten ab dem Zeitpunkt, an dem der Audit zuletzt ausgeführt wurde, bis zu dem Zeitpunkt, an dem diese Instance des Audits gestartet wurde. Wenn Sie innerhalb des geprüften Zeitraums Abhilfemaßnahmen ergriffen haben, vermerken Sie, wann Verbindungen hergestellt/getrennt wurden, um zu bestimmen, ob das Problem weiterhin besteht.
Die folgenden Ursachencodes werden zurückgegeben, wenn diese Prüfung Nichtkonformität findet:
-
DUPLICATE_CLIENT_ID_ACROSS_CONNECTIONS
Die durch diese Prüfung zurückgegebenen Ergebnisse umfassen die Client-ID, mit der die Verbindung hergestellt wurde, die Prinzipal-IDs und die Trennungszeiten. Die neuesten Ergebnisse werden zuerst aufgelistet.
Warum dies wichtig ist
Geräte mit widersprüchlichen IDs werden gezwungen, sich ständig neu zu verbinden. Dies kann dazu führen, dass Nachrichten verloren gehen oder ein Gerät keine Verbindung herstellen kann.
Dies kann darauf hinweisen, dass ein Gerät oder die Anmeldeinformationen eines Geräts kompromittiert wurden und möglicherweise Teil eines DDoS-Angriffs sind. Es ist auch möglich, dass Geräte im Konto nicht ordnungsgemäß konfiguriert sind oder ein Gerät aufgrund einer schlechten Verbindung gezwungen ist, sich mehrmals pro Minute neu zu verbinden.
So lässt es sich beheben
Registrieren Sie jedes Gerät als eindeutiges Objekt in AWS IoT und verwenden Sie den Objektnamen als Client-ID für die Verbindung. Verwenden Sie alternativ eine UUID als eine Client-ID, wenn Sie eine Geräteverbindung über MQTT herstellen. Sie können Abhilfemaßnahmen auch für Folgendes verwenden:
-
Wenden Sie die Abhilfemaßnahme
PUBLISH_FINDINGS_TO_SNS
an, wenn Sie eine benutzerdefinierte Antwort als Antwort auf die Amazon SNS-Nachricht implementieren möchten.
Weitere Informationen finden Sie unter Abschwächungsaktionen.