Menü

USB-Tastatur kapert Linux-Kern

Lesezeit: 1 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 119 Beiträge
Von

ChromeOS-Entwickler Kees Cook hat beim Experimentieren mit USB-Endgeräten zwölf Schwachstellen im Code des Linux Kernels entdeckt, der für die Interaktion mit HIDs (Human Interface Devices) zuständig ist. Der gravierendste Fehler kann dabei eine Speicherverletzung auslösen, wenn das USB-Gerät mehr "Report ID" Felder generiert, als der Kernel erwartet. Einen entsprechenden Patch, der das Problem behebt, hat Cook ebenfalls vorgelegt.

Schließt der Benutzer ein HID-Endgerät per USB an das System an, schickt das Gerät dem Kernel in regelmäßigen Abständen Berichte über Ereignisse, die vom Betriebssystem verarbeitet werden sollen; bei einer USB-Tastatur passiert dies zum Beispiel, wenn Tasten betätigt werden. Der Kernel begrenzt die Anzahl der Datenfelder für entsprechende Berichte dabei auf maximal 256 Einträge. Definiert das Endgerät also mehr als 255 dieser sogenannten "Report IDs", führt dies zu einer Speicherverletzung im Kernel. Angreifer könnten diese Schwachstelle dazu nutzen, den Systemspeicher zu überschreiben und so eventuell Schadcode auszuführen.

Cook entdeckte dieses Problem bei der Benutzung des Facedancer-Entwicklungsboards. Dieses Gerät reicht USB-Befehle in Echtzeit an ein Ziel-System weiter; die Steuerung erledigt ein Python-Skript. Das könnte somit fast beliebige Daten in den Speicher des auf Linux laufenden Zielsystems schreiben. Andere Entwicklungsboards wie der Teensy-Microcontroller bringen ähnliche Funktionen sogar auf USB-Stick-Größe. Damit genügt es dann, quasi im Vorbeigehen einen solchen USB-Stick anzustecken, um ein System zu kapern.

Zumindest Debian (Wheezy) und Red Hat (Fedora 19, Enterprise Linux 6) sind anfällig. Die Fedora- und Debian-Entwickler arbeiten momentan daran, den Patch zu integrieren, die Ubuntu-Entwickler untersuchen noch, ob ihre Distribution betroffen ist. (fab)