Zum Inhalt springen
Besuchen Sie Censys für einen Bedrohungsabwehr Workshop & Happy Hour! | 17. April in der City Winery in Philadelphia | Jetzt anmelden
Blogs

Wie man mit den Protokollen MQTT und AMQP Server findet

Veröffentlicht am 19. März 2019

Wie man mit den Protokollen MQTT und AMQP Server findet

Wir haben kürzlich die Protokolle MQ Telemetry Transport (MQTT) und Advanced Message Queuing Protocol (AMQP) zu unserem Datensatz hinzugefügt. Im Folgenden finden Sie einen kurzen Überblick darüber, wofür diese Protokolle verwendet werden, welche Sicherheitsrisiken sie mit sich bringen, wie Sie nach Servern und Geräten suchen, die MQTT und AMQP verwenden, und wie Sie diese Server absichern.

Was ist MQTT?

MQTT ist ein Machine-to-Machine-Messaging-Protokoll, das 1999 von Dr. Andy Stanford-Clark von IBM und Arlen Nipper von Arcom entwickelt wurde. Ihr Ziel war es zunächst, ein Nachrichtenprotokoll zu entwickeln, das leichtgewichtig genug ist, um die Netzwerkbandbreite zu entlasten. Die offizielle Definition von mqtt.org:

MQTT steht für MQ Telemetry Transport. Es handelt sich um ein extrem einfaches und leichtgewichtiges Nachrichtenprotokoll, das für begrenzte Geräte und Netze mit geringer Bandbreite, hoher Latenz oder Unzuverlässigkeit entwickelt wurde. Die Entwurfsprinzipien bestehen darin, die Anforderungen an die Netzbandbreite und die Geräteressourcen zu minimieren und gleichzeitig zu versuchen, die Zuverlässigkeit und ein gewisses Maß an Sicherheit bei der Zustellung zu gewährleisten. Diese Grundsätze machen das Protokoll auch ideal für die aufkommende "Maschine-zu-Maschine"-Welt (M2M) oder das "Internet der Dinge" mit angeschlossenen Geräten und für mobile Anwendungen, bei denen Bandbreite und Batterieleistung eine wichtige Rolle spielen.

IBM veröffentlichte 2014 einen Bericht darüber, wie das MQTT-Protokoll für die IoT-Explosion genutzt werden könnte. Das Problem, das sie identifizierten, war, dass IoT-Geräte auf eine große Anzahl von Signalen angewiesen sind, die einen standardisierten Kommunikationsmodus erfordern. MQTT könnte verwendet werden, um IoT-Geräte miteinander zu verbinden, ohne sich darauf zu verlassen, dass alle Geräte von einem einzigen Anbieter stammen und ohne die bestehenden Bandbreitenbeschränkungen zu überlasten. IBM behauptet in seinem Bericht, dass MQTT zur "Demokratisierung von Geräten" verwendet werden könnte, was im Wesentlichen bedeutet, dass Verbraucher und Unternehmen die mit dem Internet verbundenen Geräte genau für ihre Bedürfnisse nutzen können, ohne in Verbindungsprobleme verwickelt zu werden, bei denen die Geräte nicht miteinander kommunizieren oder zusammenarbeiten können.

Viele Entwickler stimmten dieser Behauptung zu, und MQTT wurde schnell zu einem der beliebtesten Kommunikationsprotokolle für mit dem Internet verbundene Geräte sowie für mobile Anwendungen und Hausautomatisierungsprodukte.

Was ist AMQP?

Das AMQP-Protokoll wurde 2003 von John O'Hara bei JPMorgan Chase entwickelt und dient als Kommunikationsprotokoll für Machine-to-Machine-Messaging, um bestehende Middleware zu ersetzen, die in Bezug auf die Kompatibilität etwas restriktiv war. Die offizielle Definition von https://www.amqp.org:

Das Advanced Message Queuing Protocol (AMQP) ist ein offener Standard für die Übermittlung von Geschäftsnachrichten zwischen Anwendungen oder Organisationen. Es verbindet Systeme, versorgt Geschäftsprozesse mit den benötigten Informationen und übermittelt zuverlässig die Anweisungen zur Erreichung ihrer Ziele.

AMQP wird ähnlich wie MQTT verwendet - es dient als Kommunikationsprotokoll zwischen Systemen, um Interoperabilität und Zuverlässigkeit zu gewährleisten. Der Hauptunterschied besteht darin, dass MQTT meist mit der Kommunikation von IoT-Geräten in Verbindung gebracht wird, während AMQP in einem breiteren Rahmen als Kommunikationsprotokoll zwischen einer Vielzahl von Geschäftsgeräten (z. B. Datenbanken und kritischen Systemen) verwendet wird.

AMQP wird genau wie MQTT in erster Linie verwendet, damit Geräte verschiedener Anbieter miteinander kommunizieren, zusammenarbeiten und einfacher verwaltet werden können. Laut dem Blogbeitrag von VMWare zum Kommunikationsprotokoll verwenden Unternehmen wie JP Morgan AMQP, um 1 Milliarde Nachrichten pro Tag zu verarbeiten. Die NASA verwendet es für Nebula Cloud Computing. Google verwendet es für die Verarbeitung komplexer Ereignisse.

Wie Sie sich vorstellen können, sind MQTT und AMQP bei einer Vielzahl von Geräten und Anwendungsfällen sowohl im Verbraucher- als auch im Unternehmensbereich sehr weit verbreitet. Mit unserer einzigartigen globalen Perspektive waren wir in der Lage, Daten über das MQTT- und AMQP-Protokoll zu sammeln, damit Sie Geräte und Server finden können, die diese Protokolle verwenden, und sicherstellen können, dass sie gegen Angriffe geschützt sind.

64K Server mit MQTT-Protokoll, 57K unverschlüsselt

Wie jedes andere Protokoll weisen auch MQTT und AMQP Schwachstellen auf, und die damit verbundenen Sicherheitsrisiken können erheblich sein, insbesondere in Unternehmensumgebungen. Sicherheitsprobleme ergeben sich in erster Linie aus Konfigurationen, denen es an Verschlüsselung und Authentifizierung mangelt. Ohne ordnungsgemäße Konfigurationen und grundlegende Sicherheitsmaßnahmen kann jeder die Kommunikation zwischen den Geräten, die mit diesen Protokollen arbeiten, abhören.

Von den 64.025 Servern, die wir gefunden haben und die das MQTT-Protokoll verwenden, nutzen 57.217 Geräte kein TLS (Port 1883), d. h. sie sind unverschlüsselt und könnten in der Mitte der Kommunikationskette ausspioniert werden. Die positive Seite ist, dass 15.020 Geräte TLS (Port 8883) verwenden und zumindest verschlüsselt sind. Damit sind aber immer noch rund 80 % der MQTT-Server unverschlüsselt.

Um festzustellen, welche dieser MQTT-Server exponiert und verwundbar sind, habenwir einen Bericht mit derZeichenfolge "connection accepted" im Feld "connack.connect_return" erstellt, was lediglich bedeutet, dass sich diese Geräte für unsere Scans mit uns verbinden würden.

Um nur die am stärksten gefährdeten Dienste hervorzuheben, ist zu beachten, dass 35.397 Hosts anonyme Verbindungen akzeptieren. Mit anderen Worten: Es gibt keinerlei Authentifizierungsanforderungen, um Zugang zu diesen mehr als 30.000 Diensten zu erhalten, die über das MQTT-Protokoll laufen. Igitt:

Rohdaten

TODO: Tabelle einfügen: https://censys.io/blog/find-mqtt-amqp-protocol

Bericht anzeigen in Censys

In Anbetracht der beträchtlichen Sicherheitsrisiken, die diese Geräte darstellen, wollen wir uns ansehen, wie Sie sie mit Censys finden und alle Geräte, die Ihren Mitarbeitern gehören oder anderweitig mit Ihrem Netzwerk und Ihrem Unternehmen verbunden sind, schützen können.

102K Server mit AMQP

Insgesamt haben wir 102.247 Dienste gefunden, die das AMQP-Protokoll (Port 5672) verwenden, wobei die USA und China zusammen mehr als die Hälfte aller AMQP-Erkennungen ausmachen. Um nach AMQP-Servern zu suchen, die mit Ihrem Unternehmen in Verbindung stehen, verwenden Sie einfach das AMQP-Tag und fügen Sie die Nummer Ihres autonomen Systems (AS) hinzu. Beispiel: Suche nach AMQP-Brokern an der Universität von Michigan:

https://censys.io/ipv4?q=tags%3Aamqp+AND+autonomous_system.asn%3A+36375

Was ist zu tun, wenn Sie Server mit diesen Protokollen in Ihrem Unternehmen (oder Ihrem Heimnetzwerk) finden?

Sowohl die MQTT- als auch die AMQP-Tags können natürlich nützlich sein, um Geräte zu lokalisieren, die Sie kennen, aber auch, um Geräte zu finden, von denen Sie nicht wussten, dass sie online sind, aber mit Ihnen oder Ihrem Unternehmen in Verbindung stehen. IoT-Geräte sind dafür bekannt, dass sie auf coole Funktionen optimiert sind und die Sicherheit oft vernachlässigt wird. Deshalb ist es gut, regelmäßig nach neuen internetfähigen Geräten zu suchen und sicherzustellen, dass sie sicher sind.

Insbesondere für Server, auf denen MQTT- und AMQP-Protokolle laufen, empfehlen wir:

  • Stellen Sie sicher, dass Ihre Nachrichtenbroker eine starke Verschlüsselung verwenden und dass jeder AMQP-Broker oder MQTT in TLS-Sockets verpackt ist, um die Vertraulichkeit der Nachrichten, Integritätsprüfungen und optionale Authentifizierung zu gewährleisten. Da über diese Kanäle sensible Daten übertragen werden, kann TLS die erforderlichen Authentifizierungs- und Autorisierungsgarantien bieten.
  • Stellen Sie diese Dienste hinter eine Firewall. Ihre Isolierung ist im Grunde der einzige sichere Weg, um sicherzustellen, dass Ihre Gegner nicht über diese Server oder Geräte Zugang zu vertraulichen Daten erhalten.

Lösungen für das Management von Angriffsflächen
Mehr erfahren