Security: Embedded Devices mit eingebetteten Sicherheitslücken
Wer Embedded Devices öffnen will, muss kein Experte sein. Entwickler von Spielekonsolen, Fernsehern und Media-Centern begehen immer wieder typische Fehler. Hacker haben es damit leicht und Benutzer erlangen uneingeschränkte Kontrolle über ihre eigenen Geräte.

Wer als Hacker berühmt werden wolle, der solle in Embedded Devices einbrechen, scherzte Sven Peter von der Gruppe fail0verflow auf der Sigint 2013 in Köln. Seinen Vortrag hatte er zwar mit Embedded Devices Security Nightmares betitelt. Ein Albtraum ist die Sicherheit von Embedded Devices jedoch nur für die Hersteller, für den Hacker hingegen traumhaft: Die Einstiegshürden seien überraschend gering, denn die meisten Embedded-Programmierer hätten keine Ahnung von Sicherheitskonzepten, sagte Peter.
Es gibt, grob gesagt, zwei Arten von Embedded-Systemen: Firmware Marke Eigenbau und Linux-Systeme. Überraschenderweise sind Letztere laut Peter einfacher zu knacken. Denn hier nutzen Entwickler das beliebte Open-Source-System teilweise ohne genaueres Verständnis und sichern es nur unzureichend ab. Hinzu kämen veraltete Versionen des Kernels oder anderer Software. Sicherheit stehe oft nur am Ende des Entwicklungsprozesses. Selbstentwickelte Systeme seien dagegen besser abgesichert, da hier oft Sicherheit von Anfang an in die Konzeption des Systems einfließe. Als Beispiel für Linux-Unkenntnis nannte Peter einen Angriff per Symlinks. Die Dateimanager erlauben zwar nur Zugriffe auf bestimmte Verzeichnisse - etwa den Medienordner -, lesen aber auch Daten von Speicherkarten. Formatiert man diese mit Ext2 und legt an entsprechender Stelle einen Symlink auf das Wurzelverzeichnis, kann man das gesamte Dateisystem inklusive Firmware-Code auslesen. Ein Entwickler, der nur mit Fat32 arbeitet, erahnt kaum einen solchen Angriff.
Seriell in die Root-Shell
Bevor man versuche, mit Exploits ein Embedded Device anzugreifen, sollte zunächst die Platine aufmerksam begutachtet werden, empfahl Peter. Mit etwas Glück finde man einen seriellen Anschluss, der während der Entwicklung fürs Debugging verwendet wurde. Meist vergessen laut Peter die Entwickler, diesen Debugging-Zugang in der endgültigen Version zu deaktivieren. Der serielle Anschluss führt nicht selten zu einer Root-Shell ohne jegliche Authentifizierung - und wenn doch, dann mit einfachen Zugangsdaten wie root:root. Auch sonst riet Peter dazu, banale Angriffe nicht auszuschließen. Statt mühsam per Fuzzing nach Angriffsmöglichkeiten zu suchen, sollte man gründlich die einzelnen Syscalls durchgehen. Dort finden sich regelmäßig haarsträubende Fehler, die freien Eintritt verschaffen.
Mittlerweile überprüfen viele Geräte mittels Signatur die Bootloader und ausführbaren Code. Doch oft geschieht das nur einmalig, so bleibt ausreichend Zeit, später den eigenen Programmcode unterzujubeln. Peter berichtete von einem Update, das vor dem Einspielen ordentlich verifiziert wurde. Leider wurden die Dateien ins temporäre Verzeichnis (/tmp) entpackt, worauf jeder User Zugriff hat. Stattdessen hätte nur ein nicht offen lesbares Verzeichnis zum Zwischenspeichern verwendet werden müssen.
Kryptographie und Drogenkonsum
Für Sven Peter sind selbstentwickelte Kryptographieverfahren so gefährlich wie selbstgekochtes Crystal Meth. Ein Verschlüsselungssystem mit einer Stromchiffre konnte angegriffen werden, indem lauter Nullen in den Speicher geschrieben wurden. Durch das verwendete XOR offenbarte es den geheimen Schlüssel. Grund: Die Entwickler hatten beim Erzeugen der Stromchiffre für das Nonce stets den gleichen Wert verwendet. Dabei sagt bereits der Name Number used only once, dass dies eine schlechte Idee ist. Peter gab den Tipp, auf Verdacht zwei unterschiedliche Updatedateien gegeneinander per XOR zu verknüpfen, um so eventuell an den Schlüssel zu kommen. Er machte mangelnde Kryptographiekenntnisse für solche Fehler verantwortlich.
Aber auch, wer bewährte Kryptographiealgorithmen einsetzt, ist nicht vor Fehlern gefeit. Nintendo implementierte einst RSA so unzulänglich, dass die Verschlüsselung untypisch einfach zu knacken war. Daher empfiehlt Peter, immer den Code zu durchwühlen, sonst würde man einiges verpassen.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Im Artikel wurde zwar die serielle Schnittstelle/root shell angesprochen, aber nach...
Außer dir scheint niemand zu verstehen, was du meinst. Ergo hast du nicht verstanden...
:-D
Wenn man den Unterschied zwischen einem Treiber und einem Datasheet nicht kennt sollte...