MQTT-protocol: IoT-communicatie van kernreactors en gevangenissen publiek toegankelijk

Redactie
0
Internet of Things

(Afbeelding: Purple Slog, CC BY 2.0 )

Een enorm aantal IoT-sensors in bijvoorbeeld auto’s en vliegtuigen communiceert via het telemetrieprotocol MQTT met de bijbehorende servers. Dat gebeurt standaard zonder gebruik te maken van versleuteling of wachtwoorden. Hackers kunnen de communicatie hierdoor niet alleen meelezen, maar de verstuurde gegevens ook simpel manipuleren.

Volgens beveiligingsexpert Lucas Lundgren zijn er op dit moment zo’n 60.000 zogenaamde MQTT-brokers (Message Queue Telemetry Transport) publiekelijk op internet toegankelijk. Elk van deze brokers bestaat uit een server, die met duizenden, zo niet honderdduizenden IoT-sensors in contact staat en gegevens kan ontvangen en versturen. Lundgren deed zijn uitspraken op de RSA Conference, die momenteel plaatsvindt in San Francisco.

MQTT werd rond de millenniumwisseling ontwikkeld om telemetriegegevens tussen sensors en servers over onbetrouwbare dataverbindingen te kunnen versturen. Voordat Facebook zijn Messenger op XMPP baseerde, maakte de chatsoftware eveneens gebruik van MQTT. Het protocol is verder alleen bij ingewijden enigszins bekend, maar lijkt dankzij het Internet of Things weer wat populairder te worden.

Geen wachtwoord, geen veiligheid

Het probleem van de zichtbare brokers, is niet toe te schrijven MQTT. Het probleem is dat de beheerders van de servers hun software niet goed geconfigureerd hebben en daarnaast ook nog eens afzien van gebruikersnamen, wachtwoorden en versleuteling. Een doodzonde voor alles wat aan het internet hangt.

Die ontbrekende versleuteling is volgens Lundgren nog wel te verklaren doordat encryptie een hogere hoge processorbelasting en daarmee een hoger energieverbruik tot gevolg heeft. Bij sensors die op batterijen werken, zou dit de gebruiksduur flink verminderen. Dat er ook geen authentificatie met login/password wordt gebruikt, wordt door de penetratietester toegeschreven aan onwetendheid of gemakzucht van de beheerders.

Er is niks, wat niet via MQTT communiceert

De onbeschermd via internet communicerende sensors bevinden zich in auto’s, kernreactors, fitnesstrackers, aardbevingssensors, gevangenissen, geldautomaten, klimaatregelingen, lampen, medische apparatuur, pipelines, tv-zenders en zelfs vliegtuigen.

Afhankelijk van de toepassing lekken ze informatie als bitcoindata, druk, fitness-info, login-tokens, gebruikersnamen/wachtwoorden, locatie (lengte- en breedte), positionering van het stuur of rempedaal, stralingsgegevens, temperatuur of snelheid, toestandsmeldingen (deur open/dicht in gevangenissen) en nog veel meer..

De BBC stuurt de ondertitels van tv-programma’s bijvoorbeeld via MQTT over het internet. En zelfs een door strafvervolgers op een auto van een verdachte aangebrachte tracker was via MQTT door de straten te volgen, schetst Lundgren.

Brokers opsporen

Het ergste is misschien nog wel dat de brokers zo eenvoudig te traceren zijn. Net als voor veel andere zaken kan dit gewoon via de zoekmachine voor het Internet of Things Shodanof via Nmap, meestal op poort 1883 TCP (onversleuteld) of poort 8883 TCP (versleuteld). Nmap kan IP-ranges ook zonder poortvermelding naar MQTT-brokers doorzoeken, maart heeft dan verhoudingsgewijs veel tijd nodig. Lundgren zelf gebruikte een aangepaste variant van Masscanom de complete IPv4-range te scannen. Zo vond hij in iets meer dan 24 uur de 59.000 publieke brokers.

Om verbinding te maken met een broker, heb je genoeg aan Nmap of een eigen client alsMQTT.fx. Met een hashtag (#) abonneert de client zich op alle berichten die door de broker worden uitgezonden de zogenaamde topics”. Bij een openbare server als iot.eclipse.org, die overduidelijk niet voor testdoeleinden gebruikt wordt, is dat een onoverzienbare hoeveelheid gegevens.

De oplossing is simpel

Volgens Lundgren is het grootste probleem niet dat de berichtjes simpel zijn mee te lezen, maar dat ze onderweg naar de broker of client gewijzigd kunnen worden, waardoor ook apparaten te manipuleren zijn. Bij een van de kwetsbare automodellen – Lundgren wilde de fabrikant niet noemen – lukte het hem volgens eigen zeggen om het entertainmentsysteem op afstand het commando voor het wisselen van track mee te delen. Of dat ook met de eveneens via MQTT verstuurde waardes voor de positie van het stuur en het rempedaal mogelijk was, kon Lundgren om begrijpelijke redenen niet vertellen.

De oplossing bestaat wederom uit het gebruik van een gebruikersnaam met wachtwoord. Bovendien zouden de brokers niet vrij toegankelijk moeten zijn via internet. En als dat dan het geval is, dan raadt Lundgren aan om IP-whitelisting te gebruiken, zodat er geen commando’s van willekeurige clients geaccepteerd worden. In het ideale geval worden ook het verkeer tussen de client en broker met TLS versleuteld, aangezien dit door MQTT wordt ondersteund. Bijzonder gangbaar lijkt dit echter niet te zijn. In Lundgrens verzameling van 59.000 brokers zaten er precies twee die de communicatie actief versleutelden. Je weet wat je dit weekend te doen hebt …

 

 

Meer over

IoT

Deel dit artikel

Lees ook

Laatste kans: pak jouw magazine moment met c’t

Ben je geïnteresseerd in de nieuwste trends en ontwikkelingen in de IT-wereld? Zoek je betrouwbare, onafhankelijke informatie? Dan is c’t magazine hét...

Ajax – FC Utrecht live kijken doe je met deze gratis livestream

Vanavond om 20:00 uur is het zover: Ajax en FC Utrecht staan tegenover elkaar in een spannende strijd om de tweede plek in de Eredivisie. De nummers t...

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er