BadUSB – der Vortrag

Nun sind also alle Informationen verfügbar: Der Talk ist gehalten und auch schon bei Youtube verfügbar, und auch die Folien sind online. Was wurde gezeigt, und in wieweit deckt sich das mit den Vorab-Infos?

Ähnlich wie beim Vortrag über die SD-Karten wurden die Controller der USB-Geräte mit neuer Firmware ausgestattet. Die Referenten konnten die Firmware bestimmter USB-Controller auslesen und anschließend modifizierte Firmware wieder zurückschreiben. Der betroffene Controllerchip ist laut ihren Aussagen sehr weit verbreitet, man hat also eine gute Chance, ihn „in freier Wildbahn“ anzutreffen.

In den Controllern scheint erstaunlich viel freier Platz zu sein – die gezeigten Demos hatten doch ordentliche Komplexität, und die Referenten mußten ihre Angriffe nicht händisch in Assembler schreiben, sondern konnten sich eines C-Compilers bedienen.

Demonstriert wurden verschiedene Angriffe:

  • Ein normaler Speicherstick wurde um Rubber Ducky-Funktionen erweitert. Nach kurzer Zeit änderte Der Stick sein Verhalten vom Speichermedium zur Tastatur und setzte so ein Kommando für Download und Infektion des Rechners ab. Anhand von Heuristiken wurde das Betriebssystem erkannt, um so den richtigen Infektionspfad zu wählen.
  • Die Infektion erkannte umprogrammierbare USB-Sticks und stattete diese wiederum mit der Infektionsroutine aus – ein USB-Firmware-Virus.
  • Durch Vorgaukeln einer Netzwerkkarte konnte auf Phishing-Seite umgeleitet werden: Auf dem Stick war ein DHCP-Server implementiert, der dem anzugreifenden Rechner via DHCP einen vom Angreifer kontrollierten DNS-Server zuwies. Da das DHCP-Lease kein Default Gateway enthielt, wurde die bisherige Netzverbindung weiter genutzt. Clever.

Weitere Angriffsmöglichkeiten (teils ja so schon vermutet):

  • Ausbruch aus einer VM: Ein USB-Gerät, das in eine VM durchgeschleift ist, kann von dieser mit neuer Firmware ausgestattet werden. Durch ein Reconnect verbindet sich das USB-Gerät anschließend mit dem Host-System. Durch Emulation eines USB-Hubs können auch mehrere Geräte vorgegaukelt werden, eines an der VM, eines am Host – so ist ein Durchtunneln von Daten möglich.
  • Verändern von Dateien während des Zugriffs, z.b. Infektion mit einer Backdoor. Durch Zugriffsheuristiken ist möglicherweise der Zugriff durch einen Virenscanner erkennbar, diesem würde man natürlich ein nicht infiziertes Binary ausliefern.
  • BIOS-Flashen durch Tastaturemulation
  • Angriff auf Treiber durch Enumerieren von Geräten

Das Fatale an dieser Art des Angriffs: Die Geräte sehen nicht auffällig aus oder sind sogar die eigenen USB-Geräte. Ein „Entseuchen“ nach einer Infektion ist nahezu aussichtslos: Die Flash-Routine wird ja ebenfalls von der Firmware kontrolliert, so kann ein infiziertes Gerät sich gegen ein Überschreiben mit korrekter Firmware wehren. Ganz fatal sind in Geräten fest eingebaute USB-Geräte – gerade bei Laptops werden Dinge wie Webcam, Touchpad oder Fingerabdruckscanner gerne über einen internen USB-Bus angeschlossen.

Einzig konsequenter Schutz sind nur USB-Geräte, die ab Werk keine Veränderung der Firmware mehr zulassen. Ein Whitelisting von Geräten ist kein universeller Schutz: Da die Vergabe von Seriennummern bei USB-Geräten optional ist, lassen sich nicht alle Geräte eindeutig erkennen. Gibt man ganze Geräteklassen (z.B. Tastatur) frei, kann über ein solches Gerät eine mögliche Infektion erfolgen.

Zusammenfassend war das meiste so schon in den Vorabinfos zu erahnen; der Punkt mit der Persistenz des Angriffs, insbesondere bei fest verbauten Geräten, ein Punkt, der den Angriff sehr potent macht und der beim ersten Blick möglicherweise vernachlässigt wurde.