Es gibt so einige Wege unter Linux, sein System vor unberechtigten Zugriff, bzw. kompromittierten USB-Datenträgern zu schützen. Eine Möglichkeit wurde bereits in diesem Beitrag dargestellt.
Wir befassen uns heute mit USB-Guard für Linux – es reglementiert die Nutzung von USB-Geräten. Dieses Tool – von Red Hat entwickelt – kann Ihren Linux-PC vor BadUSB-Angriffen schützen – also vor USB-Geräten, deren Firmware insoweit verändert wurde, um gezielt einen Schadcode einzuschleusen.

Zum Einsatz kommt dabei das im Linux-Kernel integrierte USB-Authorization-Feature. Mit Hilfe von White- & Blacklisting lassen sich Anweisungen erstellen, USB-Geräte zuzulassen oder eben zu sperren.

Installation

USB-Guard ist in den meisten Distribution im Repository verfügbar und wird unter Debian, Ubuntu und Linux Mint mit dem Befehl im Terminal:

sudo apt install usbguard

installiert.

Konfiguration

Den Standard-Regelsatz von USB-Guard erweitern wir Schritt für Schritt mit folgenden Einstellungen in der Datei /etc/usbguard/usbguard-daemon.conf.
Dazu öffnen wir ein Terminal und fügen den Befehl:

sudo nano /etc/usbguard/usbguard-daemon.conf

ein.

Mit der Pfeil-Taste (nach unten) bewegen wir uns ans Ende der Config-Datei


… und fügen hier folgende Zeilen ein:

PresentDevicePolicy=apply-policy
PresentControllerPolicy=apply-policy


Diese zwei Parameter stellen sicher, dass alle Regeln auch für USB-Geräte angewendet werden, die vor dem Booten angeschlossen wurden.

Alle USB-Geräte, die keiner Regel zugewiesen sind, werden beim Starten von USBGuard mit folgendem – weiteren – Parameter blockiert:

ImplicitPolicyTarget=block


Speichern Sie jetzt diese Ergänzungen mit der Tastenkombi [Strg + O], bestätigen mit [Enter] und verlassen den Nano-Editor mit [Strg + X].

Initialen Regelsatz (Policy) generieren:

Nach diesen Konfigurationsschritten wird ein initialer Regelsatz (Policy) erzeugt, der die integrierten sowie angeschlossenen USB-Geräte freigibt.
Schließen Sie alle häufig benötigten USB-Geräte an, die später regelmäßig benutzt werden.
Das ist zum einem sinnvoll, da sonst Tastatur und Maus nicht mehr korrekt arbeiten.

Wir erstellen also mit folgenden Befehl die initiale Konfiguration :

sudo usbguard generate-policy > rules.conf

Diese wird nun in das Konfigurationsverzeichnis „/etc/usbguard“ kopiert:

sudo cp rules.conf /etc/usbguard/rules.conf

…und die entsprechenden Rechte gesetzt:

sudo chmod 0600 /etc/usbguard/rules.conf

Nach der Initialisierung des Relgelsatzes wird der USBGuard Service mit folgendem Befehl neu gestartet:

systemctl restart usbguard.service

Damit der USB-Guard Service beim Booten automatisch startet:

systemctl enable usbguard.service

Die mehrfach aufpoppenden Passwort-Abfragen bestätigen Sie bitte jeweils mit der entsprechenden Eingabe.

USB-Geräte auflisten:

Um sich alle angeschlossenen USB-Geräte auflisten zu lassen, benutzt man den den Befehlusbguard” mit der Option “list-devices”:

usbguard list-devices

Im Ausgabe-Beispiel ist erkennbar, dass jedes USB-Gerät eine eindeutige ID hat, über die es angesprochen werden kann.
Alle laut Regelsatz festgelegten USB-Geräte sind freigegeben (allow ID 11 – 20) – ein nachträglich angeschlossener „fremder“ USB-Stick mit der Kennung 21 ist hingegen blockiert.

USB-Geräte freigeben und blockieren:

Um den blockierten USB-Stick freizugeben, nutzen wir folgenden Befehl:

usbguard allow-device 21

Der „fremde“ USB-Stick wurde nun zur Verwendung freigegeben.

Standardmäßig ist die Freigabe eines USB-Gerätes nur vorübergehend gültig. Nach dem Aus- und erneuten Einstecken des USB-Sticks wird dieser wieder blockiert. Durch den Parameter -p wird es dauerhaft erlaubt:

usbguard allow-device 21 -p

Folgender Befehl macht die Freigabe dauerhaft rückgängig:

usbguard block-device 21 -p

Die Eingabe von „21“ bezieht sich hier natürlich auf das Beispiel. Verwenden Sie die ID Ihres gesperrten USB-Gerätes.

Verwendung des USB-Guard-Notifier

Für USB-Guard ist ein sogenannter Notifier – also Benachrichtigungsdienst verfügbar. Wird ein unbekanntes USB-Gerät angeschlossen, öffnet sich ein Popup-Fenster, das per Mausklick das Mounten gestattet.
Die Verwendung widerspricht eigentlich dem Sicherheitsgedanken hinter USB-Guard.
Hat ein Angreifer unbemerkt Zugang zum PC, könnte er seinen infizierten USB-Stick anschließen und mit einem Mausklick problemlos freigeben – sofern der Bildschirm nicht gesperrt ist.
Zudem verleitet der Dienst dem Anwender einfach immer auf „Allow“ zu klicken, sobald das Fenster erscheint. Diese Bequemlichkeit hat eine verringerte Sicherheit zur Folge.

Möchten Sie diesen Dienst trotzdem nutzen, muss das Tool USBGuard-Notifier nachträglich mit folgenden Befehl:

sudo apt install usbguard-notifier

installiert werden.

Achtung – Die Installation von USBGuard-Notifier sollte erst nach Abschluß der Einrichtung von USB-Guard erfolgen. Andernfalls laufen Sie Gefahr, Maus und Tastatur nicht mehr bedienen zu können!

Starten Sie den PC neu. Schließen Sie nun einen „fremden“ USB-Stick an, erhalten Sie ein Hinweis-Fenster – mit Klick auf Allow wird das USB-Gerät freigegeben…

…und erhalten anschließend eine Bestätigung…

Nota

Für den privaten PC zuhause, i.d.R. ein Einzelarbeitsplatz – an dem lediglich eigene USB-Geräte angeschlossen werden – ist die Nutzung einer USB-Sperre abzuwägen.
Bei Laptops, die auch unterwegs zum Einsatz kommen, ist diese Methode eine sinnvolle Ergänzung zum verschlüsselten Linux-System.

Categories:

Schreibe einen Kommentar

3 Reaktionen

  1. Danke, zebolon, für diese klare und klärende Darstellung. Der Grundgedanke lautet: zunächst zu allem nein sage, dann die regulären Ausnahmen definieren.
    Eine Frage habe ich noch für die Situation, dass ich einen dem Rechner unbekannten USB-Stick anstecke: Erinnert mich der USB-Guard-Service daran, dass es ihn gibt und ich ihm sagen muss, dass das Gerät koscher ist?
    Grüßle, Bostaurus

    • Hallo @Bostaurus,
      auf Wunsch auch eines weiteren Lesers habe ich den Beitrag mit der Nutzung des USB-Guard-Notifiers ergänzt.
      Wie bereits erwähnt, widerspricht dieser Dienst den Sicherheitsgedanken hinter USB-Guard. Im Vorfeld habe ich nicht zuletzt deshalb darauf verzichtet.
      Grüße
      zebolon

Neue Themen im Forum
Frage zu GrubDanke @juhu, das war für mich eine reine Verständnisfrage allge … Weiterlesen
Brother Drucker unter LinuxMit der Suche nach „Linux Brother HL-2030“ fand ich zur Seite htt … Weiterlesen
DebianJetzt klappt's! Das Problem war das Erstellen einer EFI-Sy … Weiterlesen
Kategorien im Wiki
WIKI-Beiträge des Monates

Die Beiträge des Monates finden Sie im Kalender unter den blau markierten Tageszahlen.

Juli 2024
M D M D F S S
1234567
891011121314
15161718192021
22232425262728
293031  
Archive