Wanneer de digitale huishoudhulp een spion wordt

Web-enabled apparaten zijn al lang onmisbare metgezellen geworden in veel bedrijven en huishoudens. Slimme spraakassistenten, intelligente bouwtechnologie en digitale communicatiesystemen beloven meer gemak en efficiëntie. De API’s waarmee deze nuttige helpers communiceren vertonen echter vaak ernstige beveiligingsleemten.

Om de slimme functies mogelijk te maken, zijn IoT-apparaten niet alleen uitgerust met een geavanceerd besturingssysteem en vaak tientallen verschillende applicaties, maar zijn ze meestal ook verbonden met een server van de desbetreffende fabrikant. Dit zorgt ervoor dat de gegevens van alle actieve apparaten centraal in cloudtoepassingen worden verzameld en geëvalueerd. Hierdoor krijgen systemen die eigenlijk heel eenvoudig zijn een soort kunstmatige intelligentie die de empirische waarden van alle apparaten gebruikt om individuele werkprocessen te optimaliseren.

Dit is precies wat problemen kan veroorzaken, zoals een actueel geval van het Checkmarx-onderzoeksteam aantoont. De onderzoekers, die in het verleden beveiligingslekken hebben blootgelegd in Amazons Alexa, de camera op Google- en Samsung-smartphones en de LeapPad-kindertablet, hebben nu gedocumenteerd hoe gevaarlijk zogenaamd onschuldige smart home- en smart office-systemen kunnen zijn. Eerder hadden de beveiligingsonderzoekers al IoT-apparaten in huis onderzocht, waaronder de Ironpie M6 robotstofzuiger van Trifo. De app-gestuurde robotstofzuiger heeft een ingebouwde camera waarmee gebruikers op elk moment via de app in hun eigen huis kunnen kijken. Het Checkmarx-team vond ernstige kwetsbaarheden in de application programming interfaces (API’s) tussen het toestel, de Android-app en de verbinding met de backend-server.

De kwetsbaarheden in detail

In het onderzoek vonden de onderzoekers niet alleen meerdere kwetsbaarheden tegelijk, maar documenteerden ze ook onveilige coderingspraktijken. Terwijl sommige kwetsbaarheden in de praktijk slechts een laag risicopotentieel hebben, moeten andere al als aanzienlijk ernstiger worden geclassificeerd. Dit geldt vooral omdat de robotstofzuiger nog steeds op de markt wordt gebracht als een veiligheidsproduct.

Bij het onderzoek werden hiaten gevonden in alle drie de onderdelen van het systeem:

  • in de Android-app
  • in de interactie met het cloudsysteem in de backend
  • in de stofzuiger zelf

Onveilige update

In termen van programmering kan de Android-app van Trifo (Trifo Home) zeker als veilig worden geclassificeerd. Het voldoet aan de huidige richtlijnen en de codering is ook solide uitgevoerd. Volgens de onderzoekers ligt het zwakke punt in de updateprocedure. De update wordt niet uitgevoerd via de Google Play Store, zoals gewoonlijk het geval is, maar via een server van een derde partij die gebruik maakt van HTTP-verzoeken. Aanvallers kunnen het verzoek onderscheppen en misbruiken om kwaadaardige code op de computer van de gebruiker te installeren. De mogelijkheden van een op deze manier gemanipuleerde app zijn dan voor cybercriminelen vrijwel onbeperkt.

MQTT toegang op afstand opent de deur voor hackers

MQTT (Message Queuing Telemetry Transport) is een gegevensbesparend protocol waarmee IoT-apparaten telemetriegegevens kunnen verzenden, zelfs in smalbandnetwerken. In het geval van de robotstofzuiger fungeren de ondersteunende MQTT servers als brug tussen de Trifo stofzuiger, de backend servers en de Trifo Home applicatie. De servers worden gebruikt om gebeurtenissen van de ingezette vacuümrobots te verwerken, die vervolgens worden doorgegeven aan de grafische gebruikersinterface van de bijbehorende Trifo Home-app. Het probleem: het systeem beschikt niet over een voldoende veilig authenticatiemechanisme. Hierdoor kan een aanvaller verbinding maken met de MQTT servers. Daarvoor heeft hij alleen een willekeurige client-ID nodig, die relatief eenvoudig kan worden geëxtrapoleerd uit bestaande gegevens.

Terwijl de Android-app van de fabrikant gebruikmaakt van MQTT via SSL, maakt de robotstofzuiger zelf eerst verbinding met de MQTT-servers via een onversleutelde verbinding en wisselt een aantal pakketten openlijk uit. Pas daarna wordt de eigenlijke MQTT payload versleuteld. Dit is problematisch, want juist hierdoor kunnen aanvallers elke client ID berekenen. Met deze kennis kan hij vervolgens het dataverkeer van de Ironpie monitoren om elk MAC-adres over te nemen en zo gegevens om te leiden naar zijn eigen systemen. Deze gegevens omvatten ook de zogenaamde dev_key, die kan worden gebruikt om al het verkeer te ontcijferen. Met deze informatie kan de hacker zich voordoen als een MQTT-server en volledige controle over de hoover krijgen.

Volledig inzicht

Door middel van MQTT heeft de aanvaller vervolgens volledige toegang tot bijna alle informatie. Dit omvat bijvoorbeeld de SSID van het netwerk waarmee de robotstofzuiger is verbonden, zijn interne IP-adres, zijn MAC-adres en andere gegevens. Hiermee kan een aanvaller een sleutel genereren waarmee hij toegang kan krijgen tot de video feed van alle actieve Ironpie stofzuigers, ongeacht waar ze zich bevinden. Niets staat meer in de weg om hele gebouwen en hun bewoners te bespioneren en plattegronden van andermans huizen te maken.

Hoewel Checkmarx de fabrikant al op de hoogte heeft gebracht van de kwetsbaarheden, zijn ze nog niet verholpen. Providers en fabrikanten moeten zich meer richten op de beveiliging van hun apparaten om gebruikers en hun gegevens op betrouwbare wijze te beschermen.

Conclusie

In de loop van de digitalisering en het IoT neemt het aantal slimme, web-enabled apparaten in privé- en professionele omgevingen snel toe. Om hun producten snel op de markt te kunnen brengen, mogen fabrikanten echter geen compromissen sluiten over de beveiliging van de apparaatsoftware en de interfaces. Om beveiligingslacunes in de code in een vroeg stadium op te sporen en weg te werken, is het van bijzonder belang de OWASP-richtsnoeren voor beste praktijken op het gebied van API-beveiliging na te leven. In kritieke omgevingen met grote hoeveelheden code is het ook raadzaam om een speciaal softwarebeveiligingsplatform te gebruiken dat de code en de geïntegreerde open-sourcecomponenten gedurende de hele SDLC controleert.

Over de auteur: Brad Wolfe is Sales Engineering Manager bij softwarebeveiligingsleverancier Checkmarx.