Googles Keystroke Injection Schutz – Test mit P4wnP1

Google hat ein Tool herausgebracht, das Linux-Systeme vor „USB Keystroke Angriffen“ schützen soll.  Wir haben diese Software auf einem Linux-PC mit Ubuntu Desktop 18.04 installiert und den P4wnP1 für die HID-Angriffe genutzt.

Installation

Die Software können Sie gewohnt bei Github herunterladen. Außerdem finden sich dort einige Anregungen, wie das Tool konfiguriert bzw. angepasst werden kann. Laut Anleitung benötigen man Python3 mit einigen Erweiterungen. Bevor Sie mit der Installation beginnen, sollten Sie die Variablen KEYSTROKE_WINDOW und ABNORMAL_TYPING in der Datei setup.sh anpassen. Die Entwickler haben die Werte auf 5 bzw. 50 000 gesetzt, was aus unserer Sicht sinnvoll erscheint.

Die Variable RUN_MODE ist hier standardmäßig auf MONITOR gesetzt. Sie können diese Einstellung zunächst belassen und sich die jeweiligen Statusmeldungen anschauen. Wer sein System aber schützen möchte, der sollte hier HARDENING wählen.

Wenn Ihr Betriebssystem auf Debian beruht, dann müssen Sie die Variable DEBIAN auf true setzen.

So haben wir die Software in das Verzeichnis /opt installiert:

sudo apt install python3 python3-venv python3-pip
cd /opt
sudo git clone https://github.com/google/ukip.git
cd ukip
sudo chmod +x setup.sh
./setup.sh

Nach einem Neustart ist der installierte Service sofort aktiv. Zunächst sollten Sie prüfen, ob der Dienst auch ordnungsgemäß läuft. Dies lässt sich mit folgendem Befehl erledigen:

sudo systemctl status ukip.service

In unserem Fall hat die Installation geklappt.

P4wnP1 als Testsystem einrichten

Wir nutzen für diesen Test den P4wnP1 vom MaMe82 und das von ihm bereitgestellte Image auf Github.

Wer mit der Funktionsweise noch nicht vertraut ist, der sollte sich zunächst hier informieren. Eine allgemeine Einführung erhalten Sie hier. Wir haben für den Test die Version A.L.O.A gewählt, da mit Hilfe der dort zur Verfügung gestellten Weboberfläche ein HID-Skript sehr leicht erstellt und getestet werden kann.

Unser Skript für einen einfachen Test sieht folgendermaßen aus:

// Set German keyboard
layout("DE")

// slow typing
// typingSpeed(100,200);
// delay(500);

// start an unprivileged Terminal console
press("CTRL ALT T");
delay(500);
type("whoami\n");
delay(5000);
type("Houston, we have a problem! Houston, we have a problem! Houston, we have a problem! Houston, we have a problem!\n>delay(500);
type("Failure is not an option! ;-)\n");
delay(5000);
press("SHIFT CTRL Q");

Den Abschnitt „slow typing“ haben wir zunächst auskommentiert, um damit die normale Funktionsweise von USB Rubber Ducky, Bash Bunny, Malduino oder Digispark zu simulieren.

Das Skript ist einfach gehalten. Zunächst wird auf den Linux-Desktop mit der Tastenkombination CTRL-ALT-T ein Terminalfenster geöffnet und der Befehl whoami ausgeführt.

Danach schreiben wir einen einfachen Text in das Terminal und schließen das Fenster wieder.

Wer mit der Materie vertraut ist, der kann nachvollziehen, dass sich hinter dem einfachen Text auch weitere Befehle verbergen könnten, die durchaus eine Gefahr für den PC darstellen.

Bei unseren Tests wurde zunächst der Befehl whoami ausgeführt aber der lange Text „Houston, we have a problem!“ nicht mehr ausgegeben. In der Statusanzeige fanden wir folgenden Eintrag:

Das Google-Tool scheint also eine gewisse Schutzfunktion zu haben und kann den USB Rubber Ducky und Co. erfolgreich abwehren.

Um die Keystroke-Injection-Angriffe zu erkennen, analysiert das Tool möglicherweise Zeiträume zwischen den Tastenanschlägen, um so ein „menschenunmögliches“ Tippen zu erkennen. Wird ein unnormales Verhalten erkannt, so wird das angesteckte Gerät geblockt.

Wenn wir die Tastatureingaben aber verlangsamen und dieses Verhalten an einen „normalen“ Nutzer anpassen, dann sollte wir diesen Schutz leicht umgehen können.

Für diesen Fall hat der Entwickler des P4wnP1 die Funktion typingSpeed geschaffen. Hiermit lassen sich sowohl die Tippgeschwindigkeit als auch die Länge der Pause zwischen den Tastendrücken verändern. Dabei sind die Zeiten in Millisekunden anzugeben:

typingSpeed(delayMillis, jitterMillis)

Da in unserem Skript diese Option schon vorhanden ist, müssen wir diese nur noch aktivieren indem wir die Kommentarzeichen entfernen.

Bei einem erneuten Start des HID-Skriptes werden die Zeichen nun deutlich langsamer in die Konsole geschrieben. Das Google-Tool erkennt keine schädliche Verhaltensweise und gibt auch den längeren Text ohne Probleme aus.

Fazit

Mit Hilfe von HID-Angriffen können Angreifer in Sekundenschnelle das eigene System lahmlegen bzw. Daten abschöpfen. Es ist verständlich, dass die Entwickler darauf hinarbeiten, einen wirksamen Schutz zur Verfügung zu stellen.

Auch wenn das Google-Tool eigenständig auf heuristischer Basis die Tastatureingaben analysiert, so lässt es sich durch eine einfache Anpassung der Geschwindigkeit in die Irre führen.

Wer bedenkenlos einen USB-Stick oder ein ähnliches Gerät an seinen Linux-PC steckt, der sollte sich über die Folgen im Klaren sein. Auch wenn für die wichtigen Befehle administrative Rechte (und damit ein Passwort) erforderlich sind, so kann eine Unachtsamkeit zu einem üblen Datenverlust führen.

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.