USB-Schnittstellen sind nicht nur in Rechnersystemen verbaut, sondern auch immer mehr in den verschiedensten Arten von Geräten – vom Staubsaugroboter über Alarmanlagen bis hin zu Industrieanlagen. Gleichzeitig sind viele Benutzer sehr vertraut im Umgang mit USB-Geräten, da sie häufig täglich genutzt werden. Dadurch werden sie oft bedenkenlos eingesetzt. Die Sicherheitsforscher Nir Nissim, Ran Yahalom und Yuval Elovici untersuchten in ihrem Artikel „USB-based attacks“ die Angriffsmethoden auf USB und fanden insgesamt mehr als 29 verschiedene Angriffsszenarien.
Der Bereich „Programmable Microcontroller“ basiert auf Hacking Hardware und wird als BadUSB bezeichnet. Dabei wird spezielle Hardware verwendet, die eine USB-Schnittstelle hat und als virtuelles Gerät, wie zum Beispiel eine Tastatur, fungieren kann.
BadUSB
BadUSB hat sich als Sammelbegriff für Angriffe über USB-Schnittstellen etabliert. Dabei geht es immer um die Ausnutzung der Flexibilität von USB und die Simulation einer virtuellen Schnittstelle bzw. einem Gerät – wie z.B. Maus, Tastatur und Netzwerk.
Die ersten derartigen Projekte wurden im Jahr 2010 vorgestellt, basierend auf dem kleinen programmierbaren Entwicklerboard Teensy, der mit den beliebten Arduino-Boards kompatibel ist. Das Board ist mit einem USB-Anschluss ausgestattet, der auch als virtuelle Eingabegeräte (HIDs) fungieren kann. Die erste Version dieser Teensy-Programmierung hieß Programmable HID USB Keystroke Dongle (PHUKD) und beschreibt die Möglichkeiten eines Angriffsszenarios per USB. Das Projekt Kautilya folgte.
In einer weiteren Forschungsarbeit fanden die Sicherheitsforscher von Security Research Lab heraus, dass sich die Firmware von üblichen USB-Sticks manipulieren lassen und darüber BadUSB-Angriffe durchgeführt werden können. Sie veröffentlichten 2014 ihre Arbeit „BadUSB — On accessories that turn evil“ auf der BlackHat Konferenz und prägten damit den Begriff BadUSB. Damit wurde gezeigt, dass potenziell alle USB-Geräte durch Manipulationen der Firmware als Angriffswerkzeuge verwendet werden können.
Funktionsweise
Bei einem BadUSB-Angriff wird ein Microcontroller verwendet, der eine USB-Schnittstelle hat, die als virtuelles Gerät fungieren kann. Am häufigsten wird hier eine virtuelle Tastatur verwendet. Dabei werden Befehle, also die Tastatureingaben, vorab auf dem Controller gespeichert. Sobald dieser dann an einem Rechner angeschlossen wird, werden die Befehle ausgeführt. Dadurch können zum Beispiel beliebige Programme gestartet werden oder die Eingabeaufforderung geöffnet werden und mehrere Befehle eingegeben werden. BadUSB funktioniert aber nicht nur mit Tastatureingaben, sondern jedes beliebige Eingabegerät kann damit simuliert werden.
Zum Teil wurden in der Vergangenheit bereits derartige Controller in anderen unauffälligen Geräten verborgen wie beispielsweise in einem USB-Ventilator. Diese werden dann an entsprechend heißen Tagen von einem Angreifer gezielt an Mitarbeiter einer Zielfirma verschenkt. Sobald diese dann den USB-Ventilator anschließen, werden die Befehle ausgeführt. Für den Benutzer sieht es so aus, als ob sich der Rechner selbstständig macht. Fatal ist diese Art des Cyberangriffes auch auf Geräte, die eine USB-Schnittstelle haben, aber nicht direkt als Computer wahrgenommen werden. Hierbei kann es sich zum Beispiel um Smart TVs, Multifunktionsdrucker, Alarmanlagen oder Produktionssteuerungsanlagen handeln.
Gegenmaßnahmen
Da Eingabegeräte von den Betriebssystemen schnell und ohne weitere Konfiguration eingebunden werden sollten, stehen einem BadUSB-Angriff keine größeren Hürden entgegen. Gleichzeitig befindet sich die Schadsoftware in einem für das Betriebssystem unzugänglichen Bereich auf dem USB-Gerät und kann daher nicht vor der Ausführung erkannt werden.
Fremde USB-Geräte sollten daher nur mit äußerster Vorsicht angeschlossen und auf ungewöhnliches Verhalten (z.B. Meldung und Sound für die Installation einer neuen Hardware) geachtet werden. Fallen Anomalien auf, muss das Gerät möglichst schnell entfernt werden. Sind Geräte mit USB-Schnittstellen in Bereichen mit Publikumsverkehr aufgestellt, sollten diese per Konfiguration deaktiviert oder durch bauliche Maßnahmen geschützt werden.
Es gibt auch USB-Adapter, die über keine Datenverbindungen verfügen und daher nur eine Stromverbindung zulassen. Sie können verwendet werden, um zum Beispiel ein Smartphone sicher an öffentlichen USB-Steckern zu laden. Es gibt zwar auch Adapter, die nur bestimmte USB-Gerätetypen zulassen und alle andere blockieren. Allerdings wird dadurch die verfügbare Bandbreite deutlich eingeschränkt.
Artikelserie
In dieser Artikelserie beschreibe ich verschiedene Arten von Angriffsmethoden über die USB-Schnittstelle, damit diese erkannt und effektive Gegenmaßnahmen getroffen werden können. In der Artikelserie „Angriffe per USB“, die dem Themenschwerpunkt Hacking Hardware angehört, werden die folgenden Artikel erscheinen:
- Rubber Ducky – BadUSB Klassiker
- Digispark – günstiges BadUSB Device
- MalDuino – BadUSB mit Schalter
- Teensy – BadUSB mit Arduino
- DSTIKE WIFI Duck – Keystroke Injection
- Cactus WHID – BadUSB mit WiFi
- USBNinja – getarnter BadUSB
- Bash Bunny – BadUSB Multitool
- P4wnP1 A.L.O.A. – BadUSB Supertool
- USB Killer – Rechner zerstören
- 12.11.2024 (Workshop) Hacking- und Pentest-Hardware Workshop, scheible.it, Böblingen (weitere Infos)