BadUSB-Angriffe verhindern
BadUSB-Angriffe sind mit dem Bash Bunny oder dem Malduino einfach umzusetzen, das macht sie besonders perfide. Einen Schutz sehen die meisten Betriebssysteme von Hause aus nicht vor, doch es gibt verschiedene Tools, die die Angriffe zu unterbinden versuchen.
Die Idee ist dabei meist die gleiche: Wird eine neue USB-Tastatur oder ein neues USB-Gerät angeschlossen, wird es blockiert, bis der Nutzer das Gerät erlaubt. Dabei besteht allerdings die Gefahr, dass sich der Nutzer selbst aussperrt, wenn er seine Tastatur beschädigt oder verbietet.
Nur das Google-Betriebssystem Chrome OS hat bereits einen BadUSB-Schutz integriert, der über die Systemeinstellungen aktiviert werden kann. Für die Schutzfunktion setzt Google auf das bereits seit einigen Jahren in allen gängigen Linux-Distributionen verfügbare Tool USBGuard und unterstützt seit kurzem gemeinsam mit dem Linux-Distributor Red Hat dessen Entwicklung.
Gnome entwickelt USB-Schutz
Auch die Desktop-Umgebung Gnome, die von den Linux-Distributionen Ubuntu und Fedora standardmäßig eingesetzt wird, arbeitet an einem Schutz vor bösartigen USB-Geräten. Dieser soll in der kommenden Gnome-Version 3.38 verfügbar sein, kann aber bereits jetzt getestet werden. Auch die Gnome-Implementierung greift auf die Software USBGuard zurück, die entsprechend installiert sein muss. Das erledigen wir in der aktuellen Ubuntu-Version 20.04 und aktivieren Gnomes USB-Schutz mit folgendem Kommandozeilenbefehl:
gsettings set org.gnome.desktop.privacy usb-protection true
Mit "false" statt "true" lässt sich der Schutz wieder deaktivieren. In Zukunft soll die Option in den Systemeinstellungen zu finden sein.
Den Schutz gibt es in zwei Modi: Im "On Lockscreen"-Modus werden neue USB-Geräte grundsätzlich erlaubt, nur wenn der Rechner gesperrt ist, werden sie blockiert. Das gilt jedoch nicht für Tastaturen, die auch im Sperrbildschirm nicht blockiert werden. Stecken wir Malduino oder Bash Bunny in den gesperrten Rechner und lassen ihn unseren Angriff alle paar Minuten ausführen, hacken wir den Rechner, wenn der Nutzer ihn wieder entsperrt hat. Ist der Rechner nicht gesperrt, können wir ihn ohnehin angreifen.
"On Lockscreen" ist die Standardeinstellung. Alternativ können die Nutzer "Always" aktivieren. Wie der Name nahelegt, werden alle neuen USB-Geräte blockiert, ob der Rechner gesperrt ist oder nicht. Wird eine Tastatur angeschlossen, soll der Rechner automatisch gesperrt werden und der Nutzer muss sich neu anmelden, um das neue Gerät zu autorisieren. Diesen Modus sehen die Gnome-Entwickler derzeit noch als experimentell an; ein Bug verhindert, dass wir ihn unter Ubuntu 20.04 testen können. Allerdings sollen auch in diesem Modus Tastaturen im Sperrbildschirm erlaubt werden, damit sich der Nutzer nicht aussperren kann – entsprechend funktioniert unser Angriff von oben weiterhin. Hier sollte Gnome nachbessern und den Nutzer erlaubte Tastaturen speichern oder mit einem Code autorisieren lassen.
Gnomes USB-Schutz hilft bisher weniger gegen Tastaturen als gegen gefälschte Netzwerkkarten oder USB-Sticks mit Schadcode. Ziel ist es, den Nutzer möglichst wenig mit der Sicherheitsfunktion zu belästigen, aber dennoch einen Basisschutz zu bieten. Ein Problem dabei ist jedoch, dass USBGuard alle bei der Installation angeschlossenen Geräte erlaubt, später hinzugekommene Geräte beim Start des Betriebssystems jedoch verbietet. Ein neuer USB-Stick oder eine neue Tastatur, die bereits beim Bootvorgang eingesteckt war, kann dann auch von Gnome nicht mehr verwendet werden. Der Gnome-Entwickler Tobias Mueller empfiehlt daher, mit einer USBGuard-Option alle bereits beim Start des Rechners eingesteckten USB-Geräte standardmäßig zu erlauben. Dafür muss die Option PresentDevicePolicy von apply-policy auf allow abgeändert werden.
sudo nano /etc/usbguard/usbguard-daemon.conf [...] PresentDevicePolicy=allow [...]
Mit USBGuard die USB-Geräte verwalten
Alternativ zu der Gnome-Implementierung kann auch das Kommandozeilentool USBGuard selbst verwendet werden. Das Tool ist nicht besonders kompliziert zu bedienen, birgt aber die Gefahr, einen Rechner komplett unbenutzbar zu machen, wenn man beim Einrichten nicht aufpasst.
Unter Ubuntu 20.04 ist der USBGuard direkt nach der Installation aktiv und hat bereits alle während der Installation angeschlossenen USB-Geräte erlaubt. Die angeschlossenen Geräte und ihren Status (erlaubt/blockiert) kann sich der Nutzer mit folgendem Befehl anzeigen lassen. Mit der Option -b lassen sich nur die blockierten Geräte anzeigen.
sudo usbguard list-devices
Den angezeigten Gerätesignaturen wird eine Nummer vorangestellt. Über diese können sie identifiziert und erlaubt werden:
sudo usbguard allow-device [nummer]
Mit der Option --permanent oder alternativ -p kann ein Gerät nicht nur für die Session, sondern dauerhaft erlaubt werden.
Mit diesen beiden Basisbefehlen lässt sich die Software schon weitestgehend steuern. Es empfiehlt sich, bereits zu Beginn eine weitere Tastatur zu erlauben, damit der Nutzer nicht auf Gedeih und Verderb seiner Tastatur ausgeliefert ist. Detailliertere Anleitungen zu USBGuard gibt es im Privacy Handbuch und bei Red Hat.
USBGuard – gewöhnungsbedürftig, aber sicher!
Mit USBGuard lassen sich zuverlässig alle BadUSB-Angriffe blockieren, da die Geräte erst einzeln erlaubt werden müssen. So werden nicht nur unsere Testgeräte oder Tastaturen blockiert, sondern auch alle anderen schädlichen Geräte. Denn das Bash Bunny kann sich zum Beispiel auch als Netzwerkkarte ausgeben. Auch ein erlaubter USB-Stick, der per BadUSB zur Tastatur wird, ändert dadurch seine Signatur und wird blockiert.
Einen Hinweis auf die blockierten Geräte bekommen wir jedoch nur nach einer Abfrage per Kommandozeile – im Alltag vergessen wir anfangs immer wieder, dass der Schutz aktiv ist und wundern uns, warum die neu eingesteckten USB-Geräte nicht funktionieren. Das vergeht aber mit der Zeit. Sind die häufig genutzten Geräte permanent erlaubt, muss kaum noch mit der Software interagiert werden.
Einen anderen Ansatz verfolgt ein kürzlich von Google veröffentlichtes Tool, das Tastaturen ab einer bestimmten Tippgeschwindigkeit blockiert. So lassen sich die meisten automatisierten BadUSB-Angriffe blockieren. Da sich jedoch problemlos auch Scripte oder Programme schreiben lassen, die langsam tippen, bietet der Ansatz keinen hundertprozentigen Schutz.
Alle oben vorgestellten Programme haben übrigens eine Gemeinsamkeit: Sie funktionieren nicht unter Windows. Wir haben uns deswegen zudem kostenlose und teure BadUSB-Schutzprogramme unter Windows angesehen.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
BadUSB-Angriffe auf Windows, Linux und MacOS | BadbUSB-Schutz für Windows von G Data und Kaspersky |
Wenn unser IT Manager mit der Idee käme wäre meine Frage "Wir sollen nicht mehr...
soweit ich das verstehe, berechnen die verschiedenen Lösungen alle auf Basis...
Das siehst Du genau richtig. Mit etwas KnowHow kann man das für wenige Cent nachbauen...
die nächste Stufe ist dann ein Gerät das sich als USB Hub mit Tastatur und USB...