Xiaomi Mi Robot stofzuiger gehackt

februari 7, 2019

Het verhaal van het Internet of Things mag dan ongelukkig lijken, maar het is niet per definitie hopeloos. Hoewel veiligheidsonderzoekers Dennis Giese en Daniel Wegemer uiteindelijk erin slaagden om de Xiaomi Mi Robot stofzuiger te hacken, lieten de onderzoeken zien dat het apparaat veiliger is dan de meeste andere smart-apparaten.

In hun presentatie op het Chaos Communication Congress 34, recentelijk gehouden in Leipzig, legden de onderzoekers uit hoe de software van het apparaat werkt en welke kwetsbaarheden ze moesten gebruiken om uiteindelijk de beveiliging te kraken.

De Mi Robot hacken met aluminiumfolie

Toen ze hun onderzoek begonnen, vonden Geise en Wegemer vol verbazing dat de stofzuiger een krachtigere hardware heeft dan veel smartphones: Het heeft drie ARM-processors, waarvan één quad-core. Klinkt veelbelovend, toch? Dus om mee te beginnen, kozen Giese en Wegemer verschillende voor de hand liggende aanvalsvectoren om het systeem te hacken.

Allereerst bestudeerden zij een exemplaar om te zien of er een manier was om in de micro USB-poort van de stofzuiger te komen. Die weg liep dood: Xiaomi had deze verbinding beveiligd met een vorm van authenticatie. Daarna namen de onderzoekers de Mi Robot apart en probeerden ze een seriële poort te vinden op het moederbord. Ook deze poging was tevergeefs.

Hun tweede methode was netwerk-gebaseerd. De onderzoekers trachtten de netwerkpoorten van het apparaat te scannen, maar deze waren allemaal gesloten. Het snuffelen aan netwerkverkeer hielp ook niet; de communicaties van de robot waren geëncrypteerd. Op dit moment ben ik al redelijk onder de indruk: De meeste andere IoT-apparaten zouden op dit punt al gehackt zijn, omdat de makers normaalgesproken niet zo ver gaan wat betreft veiligheid. Ons recente onderzoek over hoe onveilig aangesloten apparaten zijn, geeft hier een goed beeld van.

Laten we teruggaan naar de Xiaomi Mi Robot. De volgende poging van de onderzoekers was een aanval op de hardware van de stofzuiger. Hier slaagden ze er uiteindelijk in – om door het gebruikt van aluminiumfolie bepaalde kleine verbindingen tussen processor en moederbord te laten kortsluiten, waardoor de processor in een speciale modus kwam die het lezen en overschrijven van het flashgeheugen toeliet, direct via de USB-verbinding.

Op die manier kregen Giese en Wegemer het uiteindelijk voor elkaar om Mi Robot firmware te verkrijgen, om hier reverse-engineering op toe te passen, het uiteindelijk te wijzigen en naar de stofzuiger te uploaden, waarbij de volledige controle over het apparaat werd verkregen.

De Mi Robot draadloos hacken

Maar dingen openbreken en hardware hacken is niet zo cool als niet-invasief hacken. Na het toepassen van reverse-engineering op de firmware van apparaat, vonden de onderzoekers een manier om het te hacken met slechts Wi-Fi – en een aantal gebreken in het update-mechanisme van de firmware.

Xiaomi heeft een nogal goede firmware-update procedure geïmplementeerd: Nieuwe software komt via een geëncrypteerde verbinding binnen en de firmware package is ook geëncrypteerd. Om update packages echter te kunnen encrypteren, gebruikt Xiaomi een statisch wachtwoord – “rockrobo” (gebruik geen zwakke wachtwoorden, kinderen). Hiermee konden de onderzoekers een degelijk geëncrypteerde package met hun eigen op poten gezette firmware maken.

Daarna gebruikten ze de veiligheids-key van de Xiaomi smartphone-app om een verzoek te sturen naar de stofzuiger om nieuwe firmware te downloaden en te installeren – niet van de Xiaomi-cloud maar van hun eigen server. En zo konden ze het apparaat opnieuw hacken, dit keer draadloos.

In de Mi Robot firmware

Na het bestuderen van de firmware zagen Giese en Wegemer een aantal interessante dingen over de Xiaomi smart-apparaten. Allereerst dat de Mi Robot firmware in feite Ubuntu Linux is, die regelmatig en snel gepatcht wordt. Ten tweede gebruikt het een supergebruikerswachtwoord voor ieder apparaat; er is geen masterwachtwoord dat gebruikt kan worden om een massa-hack uit te voeren van stofzuigers. En ten derde, het systeem runt een firewall die alle poorten blokkeert die door hackers gebruikt kunnen worden. Opnieuw, petje af voor Xiaomi: Naar IoT-maatstaven is er een verrassend goede beveiliging.

De onderzoekers zagen echter ook iets teleurstellends over Mi Robot. Het apparaat verzamelt en laadt een heleboel data op naar de Xiaomi cloud – enkele megabytes per dag. Samen met aanvaardbare zaken, zoals werkingstelemetrie van het apparaat, en dit bevat de namen en wachtwoorden van de Wi-Fi netwerken waar het apparaat aan verbindt en de kaarten die het maakt met de ingebouwde lidar-sensor. Nóg verontrustender is dat deze data voor altijd in het systeem blijven, zelfs na een herstel van de fabrieksinstellingen. Dus als iemand een gebruikte Xiaomi stofzuiger koopt op eBay en deze root, kan deze informatie makkelijk verkregen worden.

Tot slot is het goed om te benadrukken dat beide technieken van Giese en Wegemer slechts werkte op hun eigen apparaten. De eerste vereiste fysieke toegang tot de stofzuiger en voor de tweede moesten ze de veiligheids-key verkrijgen op een update-verzoek te doen, en die keys worden gegenereerd als het apparaat verbonden is aan de mobiele app. De veiligheids-keys zijn uniek en het is niet zo makkelijk om ze te verkrijgen als je geen toegang hebt tot de smartphone waaraan het Xiaomi-apparaat gelinkt is.

Kortom, het onderzoek toont aan dat Xiaomi meer aandacht aan veiligheid besteedt dan andere fabrikanten van smart-apparaten, en dat is een hoopvol teken voor onze draadloze toekomst. Bijna alles kan gehackt worden, maar als iets veel moeite kost om te hacken, dan is het minder waarschijnlijk dat criminelen deze moeite nemen – zij gaan normaalgesproken achter snel geld aan.