34C3 stellt Hack des Xiaomi Mi Vacuum Robot vor

Hack des Xiaomi Mi Vacuum Robot gewährt brisante Einblicke

Zwei Konferenzteilnehmer überraschen anlässlich des viertägigen, alljährlichen, 34. Chaos-Communication-Congress auf dem Leipziger Messegelände mit Hack des Xiaomi Mi Vacuum Robot sowie brisanten Daten.

Dass sensiblen Daten wie Haushaltsgröße, Reinigungszeiten, Position, Anzahl und Art der Einrichtung, Bewegungsprofile menschlicher und tierischer Bewohner eines Haushalts, Nutzungszeiten und sonstige anfallende Daten, welche durch einen Serviceroboter wie den Xiaomi Mi Vacuum Robot tagtäglich erhoben und gespeichert werden, auf chinesischen Servern landen, ist bereits seit Monaten bekannt. Den ein oder anderen Journalisten verleitete diese Erkenntnis dazu, jedem bzw. jeder Xiaomi-Robot-NutzerIn einen Gastzugang ans Herz zu legen sowie auf die Steuerung und Konfiguration mittels eines unlängst aussortierten Smartphones oder Tablets zu verweisen, einschließlich einer Wegwerf-Email-Adresse. Ganz so leicht scheint man sich vor dem Export derlei fragiler Daten nicht schützen zu können. Denn einiges scheint nach der Präsentation des ehemaligen SEEMOO-Studenten der TU Darmstadt Dennis Giese als auch des  wissenschaftlichen Mitarbeiters und Absolventen der TU Darmstadt Daniel Wegemer nunmehr viel klarer.

  • Xiaomi legt Protokolle, sogenannte Log-Dateien der verschiedenen Sensoren- (LiDAR, Ultraschallsensor, Kompass, Kreiselinstrument, Beschleunigungssensor) und Systemdaten sowie Karten an, welche auf dem Roboter gespeichert werden.
  • Der Roboter speichert  zudem die Zugangsdaten zum WLAN-Netzwerk (SSiD und WLAN-Schlüssel).
  • Daten zum Netzwerk, Karten und Log-Dateien bleiben selbst nach einem Hard-Reset in den Werkszustand weiterhin verfüg- und auslesbar, werden nicht gelöscht.
  • Die gespeicherten Informationen können jederzeit seitens Xiaomi abgerufen werden.
  • Tagtäglich fallen zudem Dutzende Megabyte an Datenpaketen zwischen dem Roboter und Xiaomis Serverfarmen an. Log-Dateien, Reinigungskarten sind Teil dieser per HTTPS gesicherten Übermittlung.

Potente Hardware, Ubuntu Linux

Xiaomis Mi Vacuum Robot scheint relativ leistungsstark, so lassen allein die Daten zur verbauten Hardware vermuten (ARM Quadcore Prozessor mit 1,5 GHZ pro Kern, 512 MB RAM, 4 GB eMMC-Flash, ARM Cortex M3 STM32 MCU zur Steuerung der Sensoren). Der Roboter kommuniziert per Cloud-Protokoll ausschließlich über das Internet mit der Mi-Home Anwendung, nicht über das lokale Netzwerk. Xiaomi verschlüsselt zwar den Datenverkehr zwischen Roboter und Firmen-Servern mittels HTTPS-Protokoll, in welcher Form die Daten jedoch in Xiaomis Datenbanken gesichert sind und inwieweit diese vor dem Speichern anonymisiert wurden, bleibt weiterhin unklar. Möglicherweise ist bei Abgreifen der Daten ein Abgleich mit Benutzerprofilen, Klarnamen und Email-Adressen durchführbar und liefert auf einfachem Wege relevante Daten über Lage, Ausstattung und Aufenthaltszeiten der NutzerInnen eines Haushalts. Auch die Firmware des Geräts selbst ist mit einem Passwort geschützt, dieses ist jedoch nach dem Herstellen eines Root-Zugangs auslesbar. Den uneingeschränkten Zugriff auf die im eMMC-Flash des Roboters abgelegten Daten erlangten die beiden Forscher nach dem erfolgreichen Rooten ihrer insgesamt 9 Testgeräte. Indem sie mit Hilfe einer einfachen Lage Aluminiumfolie nach dem Freilegen des Mainboards einzelne Leiterbahnen des ARM R16 Prozessors überbrückten und den Roboter somit in den FEL Fallback Modus versetzten, war der erste Schritt geatn. Nach diesem Vorgang musste lediglich ein simples Dump-Tool über den USB-Port des Roboters hochgeladen werden, um an die installierte Firmware des Herstellers zu kommen, diese herunter zu laden, anschließend nach Bedarf zu modifizieren und schließlich einzuspielen.  Den Informationen Gieses und Wegemers zufolge kann der Roboter je nach Anwendungsszenario konfiguriert werden, installiert ist ein handelsübliches Linux (Ubuntu 14.04.03 LTS, größtenteils im Original unmodifiziert) . Täglich tauscht der Roboter mit den Xiaomi-Servern mehrere Megabyte an Daten aus. Im Falle einer Reinigung erhöht sich die Menge an übermittelter Daten weiter. Der für die Verschlüsselung bei Übertragung per HTTPS genutzte Cloudkey ist statisch, mit 16 Byte Größe zwar ausreichend, jedoch ermittelbar. Somit lässt sich ein künftiges Firmware-Update beeinflussen.

Infiltration mittels modifizierter Firmware

Sobald der Cloudkey ermittelt wurde, lassen sich spezifisch angepasste Firmware-Versionen von einem x-beliebigen Server auf den Roboter aufspielen. Der Befehl zum Update wird bei normaler Funktion durch den Xiaomi-Server übermittelt, gleichfalls die Information, von welcher Quelle geladen werden soll sowie die MD5-Information, welche die Beschaffenheit des Firmware-Pakets beschreibt.  Aufgrund der Beschaffenheit des Aktualisierungsprozesses ließe sich über einen externen Webserver sehr einfach eine angepasste Firmware-Version mit Schadsoftware auf einem Xiaomi Mi Vacuum Robot einspielen, beschreibt Giese. Das Passwort des Firmware-Updates zur Entschlüsselung des Pakets lautet rockrobo, gleichlautend mit dem Firmennamen des Startups, welches unter Xiaomi firmiert. Das letztendliche Präparieren der Firmware erfolge durch das Hinzufügen bzw. Abändern relevanter Sicherheitsmechanismen (Codes zur Authorisierung, Anpassung der Firewall) wie bei einem gewöhnlichen Linux. Durch Senden des Befehls zur Aktualisierung auf die angepasste Firmware-Version, welche auf einem Nicht-Xiaomi-Server liegt, könne ein Angreifer mit geringem Aufwand Roboter entsprechend modifizieren. Alle hierfür notwendigen Daten liefere entweder die Firmware selbst oder aber die Mi-Home Anwendung (Token des Roboters). Auf diese Weise ließen sich nicht nur Programme installieren, es werde auch ein direkter Zugriff auf die Sensoren des Roboters möglich, auch aus der Ferne.

Die für den Hack benötigten Informationen können Interessierte der folgenden Website dontvacuum.me entnehmen, welche durch Griese und Wegemer hierfür noch am Veranstaltungstag eingerichtet wurde. Im zugehörigen GitHub-Repository werden Schritt für Schritt alle für ein Rooten des Xiaomi Mi Vacuum Robot benötigten Anleitungen, Dateien und anderweitigen Materialien bereit gestellt. Dieses ist unter folgendem Link erreichbar:

Gefahren bei Kauf und Verkauf

Auf den ersten Blick liest sich die Vorgangsbeschreibung, welche eindrücklich mit anschaulichen Folien während des Vortrags, welcher unter folgendem Link einzusehen ist, visualisiert wurde, kompliziert. Giese sieht jedoch – abseits aller geäußerten Bedenken zur Erhebung sensibler Daten durch den Hersteller – weniger die Gefährdung der Intimität und Privatsphäre von KäuferInnen eines Neugeräts als problematisch. Vielmehr warnt er einerseits vor dem Verkauf des eigenen, bereits genutzten und somit höchstwahrscheinlich mit fragilen Daten bestückten Geräts an Dritte, zweitens vor dem Erwerb eines gebrauchten Geräts von Unbekannten, welche die Firmware im Vorhinein möglicherweise angepasst hätten. Weiterhin mahnt er jedoch an, dass dies gleichermaßen für Geräte anderer Hersteller gelte. Schlussendlich müsse man davon ausgehen, dass WLAN-Zugangsdaten des häuslichen Netzwerks einsehbar seien, gleichfalls die Gefahr bestehe, dass man durch Fremde ausspioniert werde. Jene, die angesichts dieser Erkenntnisse in Erwägung zögen, den Roboter gar nicht erst in ein bestehendes WLAN einzubinden und stattdessen völlig autark zu betreiben, rät er davon ab. Ohne Konfiguration der WLAN-Einstellungen des Xiaomi Mi Vacuum Robots und zumindest einmalige Einbindung in ein bestehendes Netzwerk liefe das Gerät faktisch im Auslieferungszustand. Problematisch hieran sei insbesondere die Tatsache, dass in diesem Fall ein unbenutzter, nicht konfigurierter offener WLAN-Hotspot seitens des Roboters bestehen bliebe, welcher durch Externe einfach übernommen werden könne. Zwar ließen sich hierdurch die weiter oben erwähnten Anpassungen nicht vornehmen, dennoch sei es möglich, den kompletten Daten-Verkehr des Mi mit den Xiaomi-Servern abzugreifen. Demzufolge gelängen äußerst sicherheitssensible Daten über die im Haushalt lebenden Personen an Unbeteiligte, gerieten möglicherweise in falsche Hände.

Empfohlene Maßnahmen

Angesichts der Äußerungen und Erkenntnisse von Giese und Wegemer bleiben mehrere Wege, um sich selbst vor Datendiebstahl, potentieller Spionage und dem Verlust an Intimität und Privatsphäre zu schützen. Giese schlägt am Ende der lehrreichen Präsentation vor, das implementierte Cloud-Interface Miio-Client des Roboters, welches über das Internet beständig Kontakt mit den Xiaomi-Servern hält, durch einen Cloud Client zu ersetzen, welcher einmal hinzugefügt bspw. mit einem bereits vorhanden, lokalen Host (Computer, NAS, Fritz!Box, Raspberry Pi usw.) kommuniziert (Mi-Home App-Nutzung nicht möglich), auf welchem FHEM (Serverprogramm zur Hausautomatisierung) installiert ist. Des Weiteren bestehe die Möglichkeit, mittels eines eigens für diesen Zweck entwickelten Tools namens Dustcloud über eine Proxy-Verbindung per HTTPS-Protokoll mit den Servern des Herstellers ohne Gefahr der Freigabe sensibler Daten in Kontakt zu treten oder aber ausschließlich lokal Datenpakete, selbst Firmware-Updates mit dem Roboter auszutauschen. .

Nicht jeder wird sich derart tiefgreifende Eingriffe in das System des Roboters zutrauen, selbst wenn hierfür gar nicht zwingend das Zerlegen des Mi notwendig ist und der Vorgang bspw. über den WLAN-Hotspot des Roboters möglich wäre. Für weniger mutige scheint es in erster Linie sinnvoll, den Roboter bei Ersteinrichtung oder nachfolgend überhaupt in ein WLAN aufzunehmen, welches im Idealfall extra für den Roboter eingerichtet wurde (Gast-Zugang bzw. Gast-Netzwerk) und von anderen Netzwerkgeräten vollständig abgeschottet ist. Die Einrichtung eines Gastzugangs oder Gast-Netzwerks empfiehlt sich bei solchen Geräten ohnehin. Hinreichende Erläuterungen zu Bedenken hinsichtlich des Umgangs mit empfindlichen Kundendaten seitens der Hersteller von Servicerobotern wurden im folgenden Artikel bereits näher erläutert. Hiernach kann jederzeit der Zugriff des Roboters auf die Cloud bzw. das Internet reglementiert, bei Bedarf vollständig unterbunden werden, bspw. durch einfache Änderung des WLAN-Passworts des Gast-Zugangs im Menü des Routers. Werden im Vorhinein alle wichtigen Einstellungen wie Timer, Gebläsestufe und Updates vorgenommen, operiert der Roboter nach Ausschluss aus dem Netzwerk fortan sicher und eigenständig. Einzig Fehlermeldungen, Karteneinsicht und Überblick über Nutzungsdauer, Quadratmeterleistung und Verschleiß der Bürsten sowie des Filters wären nur nach erneuter Wiederaufnahme des Roboters in das Netzwerk bzw. Abänderung des WLAN-Schlüssels zur ursprünglichen Version möglich. Wem dies recht und billig ist, der kann den Xiaomi Mi Vacuum Robot Staubsaugerroboter ohne größere Sicherheitsbedenken im häuslichen Umfeld betreiben und muss nicht um seine Daten fürchten. Bei ca. 50 Millionen Mi-Geräten seitens Xiaomi Anfang des Jahres 2017 – mittlerweile dürfte die Zahl maßgeblich gewachsen sein – welche weitweit im Einsatz sind, fallen jedenfalls enorme Datenmengen an, welche zumindest laut den Nutzungsbedingungen der Mi-Home Anwendung ausschließlich zur Optimierung der hauseigenen Produkte genutzt werden. Xiaomi zuliebe wollen wir hoffen, dass dem so ist.

Update – 27.12.2017

Laut Aussage Gieses funktioniert das Rooten des Xiaomi Mi auch ohne Überbrückung der Leiterbahnen auf der Platine des Roboters über die WLAN-Hotspot-Funktion.

Apparently i did not stress enough, that you do not have to open the vacuum cleaner to root it. You can root it directly if you take it out of the package. Also the warranty stickers are not tampered.

Somit wäre ein Öffnen des Staubsaugers überhaupt nicht nötig und vereinfache den Prozess des Zugriffs weiter. Die benötigte Software für den Infiltrationsvorgang findet seit ca. einer Stunde Schritt für Schritt in den GitHub-Bereich. Dennis Giese sicherte zu, alsbald alle benötigten Materialien zum Erlangen der Root-Rechte bereit zu stellen, sodass Interessierte zeitnah damit beginnen könnten, ihr eigenes Gerät zu rooten.

Update – 28.12.2017

Nun ist auf der Github-Verzeichnis auch eine detaillierte Anleitung samt aller benötigten Python-Skripte verfügbar, welche Giese dankenswerterweise allen Interessierten kostenlos zur Verfügung stellt. Der Angriff erfolgt wie weiter oben geschildert über die WLAN-Hotspot-Funktion des Roboters, indem dem Roboter erst eine IP zugewiesen wird, um ihm anschließend eine angepasste Firmware-Version mit Hilfe eines eigenen SSH-Schlüsselpaars (öffentlich und privat), ersterer hinterlegt in einer zugehörigen, anwenderspezifischem authorized_key-Datei zur Authentisierung über SSH unterzujubeln. Hiernach installiert der Mi die modifizierte Firmware-Version und bietet nach dem Neustart Minuten später über die vergebene IP-Adresse für den ersten Zugriff mit Root-Rechten bereit. Nach Abschluss des Prozesses sind viele Möglichkeiten vorstellbar, beispielsweise ein Zugriff auf die gespeicherten Log-Dateien, direkter Zugriff auf die Daten der LiDAR-Einheit oder die Implementierung eines eigenen Cloud Clients, welcher den Datenaustausch mit den Xiaomi-Servern unterbindet.

  1. Pingback: Ausführlicher Testbericht des Xiaomi Roborock Sweep One

  2. Pingback: Deutsche Sprachpakete für den Xiaomi Mi Vacuum Robot | kaeni.de

  3. Pingback: Deutsche Sprachpakete für den Roborock Sweep One | kaeni.de

  4. Pingback: Testbericht des Neato Botvac Connected | kaeni.de

Kommentar verfassen

This site uses Akismet to reduce spam. Learn how your comment data is processed.