PoisonTap – Raspberry Pi Zero ist der ideale Spion
Dass sich mit einem Computer Unsinn anstellen lässt, ist bekannt. Dass sich mit sehr kleinen Computern genauso viel Blödsinn treiben lässt, ist vielen noch nicht bewusst. Nicht nur das IoT (internet of Things / Internet der Dinge) wird den Security-Experten noch sehr viel Kopfzerbrechen bereiten, sondern auch das immer kleinere Format der Rechner. Beziehungsweise ist es nicht nur das kleine Format, sondern auch die Leistungsfähigkeit der Winzlinge wie einem Raspberry Pi Zero. PoisonTap ist ein selbst gebastelter Spion, der einen schaudern lässt.
Das Gruselige an der Geschichte ist der Preis. Das kostet nur ein paar Euro und im Prinzip kann das jeder mit ausreichend Computerwissen basteln.
Was ist PoisonTap?
PoisonTap ist die kombination eines Raspberry Pi Zero und Node.js. Steckst Du das Konstrukt an einem Rechner (USB oder Thunderbolt) an, dann ist der Hahn offen.
- Der Winzling stiehlt Cookies von mehreren Tausend Domain
- PoisonTap installiert eine persistente Backdoor im Browser, damit er via WebSockets einen C&C Server (Command and Control) über das Internet erreichen kann
- Das Gerät erstellt einen Tunnel zum internen Router, sodass der Angreifer Zugriff darauf hat (Stichwort admin / admin) und somit auch Zugriff auf das interne Netzwerk! Selbst wenn PoisonTap ausgesteckt wird, bleibt der Zugriff zunächst erhalten.
Ein genauerer Blick
Der Vater von PoisonTap, Samy Kamkar, beschreibt in seinem Beitrag sehr genau, was das Gerät macht, sobald es in einem Computer eingesteckt wird. Dieser kann auch gesperrt und mit einem Passwort geschützt sein. PoisonTap
- emuliert ein Ethernet-Gerät über USB (oder Thunderbolt)
- schnappt sich sämtlichen Internet Traffic von der Maschine
- klaut und speichert HTTP-Cookies und Sessions vom Webbrowser und das für die Top-1-Million-Websites, die so auf Alexa gelistet sind.
- exponiert den internen Router. Das funktioniert via WebSocket und DS Rebindung.
- installiert eine Web-basierte Backdoor im HTTP Cache für etliche Domains und populräre JavaScript CDN URLs
- erlaubt es dem Angreifer, von remote HTTP Requests abzufeuern. Die entsprechenden Aktionen (GET / POST) sieht er natürlich
Das Video ist auf Englisch, aber Samy Kamkar spricht sehr langsam und deutlich. Es sollte gut zu verstehen sein.
Kann Security-Mechanismen umgehen
Die Sache wird noch gruseliger, wenn man sich ansieht, welche Security-Mechanismen nicht funktionieren. Dazu gehören:
- Mit einem Passwort gespeerter Bildschirm
- Same-Origin Policy
- X-Frame-Options
- HttpOnly Cookies
- SameSite-Cookie-Attribut
- Two-Factor/Multi-Factor Authentication (2FA/MFA)
- DNS Pinning
- Cross-Origin Resource Sharing (CORS)
- HTTPS Cookie Protection wenn Secure Cookie Flag & HSTS nicht aktiviert sind
BOOOOOOM!!!
Security gegen PoisonTap
Der Hacker lässt uns zum Glück auch wissen, wie Du Dich gegen PoisonTap wehren kannst. Einige Methoden scheinen dabei etwas drastisch. Zunächst einmal spricht Kamkar von Server-seitiger Security.
Wer einen Webserver betreibt, kann sich sehr einfach schützen:
- HTTPS ist Pflicht! Das gilt zumindest für die Authentifizierung
- Bei Cookies sollte das Secure Flag aktiviert sein. Dann können Cookies nicht via HTTP entweichen
- beim Laden von externen JavaScript-Ressourcen solltest Du Subresource Integrity nutzen
- Verwende HSTS, um HTTPS-Downgrade-Angriffe abzuwehren
Desktop Security
Nun lässt sich das Gerät aber sehr einfach transportieren und meist sind Desktop-Geräte einfacher zugänglich als Server. Denke einfach mal an so Firmen-Rechner unter dem Tisch. Kein Mensch prüft da jeden Tag und so ein Ding ist sehr schnell am USB-Port angesteckt.
- USB und Thunderbolt Ports mit Zement / klebstoff / Kitt oder etwas dergleichen zu versiegeln, ist eine recht radikale Methode
- Ein Deaktivieren von USB und Thunderbolt ist eine Methode. Hätte ich eine Firma, würde ich mir das ernsthaft überlegen, auch wenn Ärger damit vorprogrammiert ist.
- Du solltest imm Deinen Browser schließen, wenn Du Dich vom Rechner entfernst. Das ist natürlich nicht sehr praktikabel
Das Sperren des Desktops hilft nicht, auch wenn er mit einem Passwort gesichert ist. Die Netzwerk- und USB-Stacks funktionieren bekanntlich im Hintergrund. Ein verschlüsselter Schlafmodus hingegen sei schon eine Methode. Als Beispiel wird FileVault2 und Deep Sleep genannt.
PoisonTap ist auf GitHub
Der Quellcode liegt bei GitHub und jeder kann sich damit beschäftigen. Dir sollte aber klar sein, dass Du Dich damit sehr schnell auf illegales Terrain begibst. Wer weitere und sehr detaillierte Informationen zu PoisonTap haben möchte, der kann sich den englischen Artikel von Samy Kamkar durchlesen. Dort geht es allerdings ins Eingemachte -> Nerd Alert! … 😉
Die Moral von der Geschicht
… trau keinem mit einem Raspberry Pi Zero! Besitzer dieser Geräte sind zutiefst durchtrieben und haben böse Gedanken. Man sollte umgehend den baldigen US-Präsidenten Trump in Kenntnis setzen, damit er die Waffengesetze nicht ändert, aber das Raspberry Pi Zero umgehend verbietet. Die US-Amerikaner werden ihre Schusswaffen noch brauchen, wenn sie sich gegen PoisonTap wehren wollen. Eine ordentliche 9mm-Kugel hält auch ein Raspberry Pi Zero nicht aus.
Die Leute verwenden ihre USB Anschlüsse, das würd ich sehr schnell merken.
Was ist mit einer SD - WLAN Karte?
[…] Betriebssystem installiert. Dieses geschieht auch bei gesperrten Systemen. Dieser Angriff ist als Poisontap bekannt. In diesem Szenario wird ein USB-Netzwerkadapter vorgegaukelt und das WPAD-Protokoll (Web […]