Pukan - stock.adobe.com
Bluetooth-Sicherheit: Security-Audits mit Open Source
Professionelle Bluetooth-Sicherheitsanalysen erfordern tiefe Einblicke in Funkprotokolle. BlueZ und Kali Linux ermöglichen die Identifikation sowie Manipulation von Endgeräten.
Bluetooth bleibt in vielen Sicherheitsprüfungen unterrepräsentiert, obwohl die Schnittstelle direkten Zugriff auf Endgeräte, industrielle Steuerungen und mobile Systeme erlaubt. Die Systeme akzeptieren Verbindungen auf Protokollebene ohne klassische Netzsegmentierung. Geräte senden regelmäßig Identifikationsdaten und Serviceinformationen, selbst ohne aktive Kopplung. Daraus ergeben sich Szenarien für Tracking, Profiling und Geräteimitation. Eine umfassende Analyse sollte daher nicht nur IP-basierte Kommunikation, sondern auch Funkprotokolle wie Bluetooth umfassen.
Grundlage aller Werkzeuge bildet der Stack BlueZ. Dieser implementiert die vollständige Bluetooth-Protokollkette im Linux-Kernel und stellt Schnittstellen für Diagnose, Kommunikation und Manipulation bereit. Kali Linux integriert diese Komponenten vollständig, allerdings ist der Dienst in vielen Installationen initial deaktiviert, da eine aktive Bluetooth-Schnittstelle zusätzliche Angriffsfläche erzeugt.
Aktivierung, Initialisierung und typische Fehlerbilder
Die Installation der benötigten Komponenten erfolgt über die Paketverwaltung. Der Befehl
sudo apt install bluetooth bluez bluez-tools rfkill
installiert sowohl den Kernel-Stack als auch Werkzeuge zur Steuerung und Diagnose. Das Paket bluetooth stellt den Dienst bereit, bluez implementiert die Protokollschicht und bluez-tools ergänzt Kommandozeilenfunktionen. rfkill dient zur Verwaltung von Hardwareblockaden auf Funkinterfaces.
Nach der Installation wird der Dienst über
sudo systemctl enable bluetooth.service
für den Systemstart registriert und mit
sudo systemctl start bluetooth.service
sofort aktiviert. Der Befehl
systemctl status bluetooth.service
zeigt, ob der Dienst läuft und ob Fehler auftreten.
In der Praxis tritt häufig die Situation auf, dass kein Adapter erkannt wird. Die Meldung No default controller available weist darauf hin, dass kein HCI-Interface initialisiert wurde. Eine erste Diagnose erfolgt mit
lsusb | grep -i bluetooth
wodurch USB-basierte Adapter sichtbar werden. Fehlt ein Eintrag, liegt das Problem auf Hardware- oder Firmware-Ebene. Das Werkzeug hciconfig zeigt vorhandene Interfaces und deren Zustand. Ein Eintrag wie hci0 mit Status DOWN bedeutet, dass die Schnittstelle existiert, jedoch nicht aktiv ist. Die Aktivierung erfolgt über
sudo hciconfig hci0 up
wobei der Parameter up das Interface initialisiert und in den Betriebszustand versetzt. Erst danach stehen Scan- und Analysefunktionen zur Verfügung.
Erfassung der Bluetooth-Umgebung und Geräteidentifikation
Die erste Phase einer Analyse besteht in der Identifikation erreichbarer Geräte. Der Befehl
hcitool scan
führt eine klassische Inquiry durch und listet alle Geräte im Discoverable-Modus auf. Dabei liefert das Tool die Bluetooth-Adresse und den Namen des Geräts. Für Low Energy Geräte nutzt
hcitool lescan
einen anderen Scanmodus, da BLE-Geräte regelmäßig Broadcast-Pakete senden und nicht zwingend sichtbar geschaltet sein müssen.
Das Tool bluetoothctl erweitert diese Funktionalität durch eine interaktive Steuerung. Nach Start mit
bluetoothctl
aktiviert der Befehl scan on eine kontinuierliche Suche. Geräte erscheinen in Echtzeit. Mit info <MAC-Adresse> lassen sich Detailinformationen wie unterstützte Profile oder Signalstärke abrufen. Diese interaktive Arbeitsweise eignet sich für gezielte Untersuchungen einzelner Geräte.
Für langfristige Überwachung bietet sich bluelog an. Der Aufruf
bluelog -nmtc
startet eine kontinuierliche Erfassung im Hintergrund. Die Parameter definieren, welche Informationen protokolliert werden. Der Parameter n speichert Gerätenamen, m ergänzt Herstellerinformationen, t fügt Zeitstempel hinzu und c erfasst die Geräteklasse. Dadurch entsteht ein fortlaufendes Log, das Bewegungsmuster und wiederkehrende Geräte sichtbar macht.
Tiefgehende Analyse ohne Kopplung mit btscanner
Das Werkzeug btscanner geht über einfache Discovery hinaus und greift direkt auf HCI- und SDP-Daten zu. Nach Installation über
sudo apt install btscanner
wird es mit
btscanner
gestartet. Die ncurses-Oberfläche ermöglicht eine strukturierte Analyse. Mit der Eingabe von i wird ein Inquiry-Scan ausgelöst. Gefundene Geräte erscheinen in einer Liste, aus der sich einzelne Einträge auswählen lassen.
Im Gegensatz zu einfachen Scan-Tools hält btscanner eine Verbindung zum Zielgerät aufrecht. Dadurch lassen sich Parameter wie RSSI und Linkqualität kontinuierlich auswerten. Zusätzlich extrahiert das Tool Serviceinformationen über das SDP-Protokoll. Diese Kombination erlaubt Rückschlüsse auf Gerätetyp, Entfernung und unterstützte Funktionen, ohne dass eine Kopplung erforderlich ist.
Analyse des Datenverkehrs auf Protokollebene
Für die Untersuchung des eigentlichen Datenverkehrs wird btmon eingesetzt. Dieses Werkzeug arbeitet direkt auf der HCI-Schnittstelle und zeichnet die Kommunikation zwischen Betriebssystem und Bluetooth-Controller auf. Der Befehl
btmon -i hci0 -w bttraffic.log
startet die Aufzeichnung. Der Parameter -i legt die zu überwachende Schnittstelle fest. -w definiert eine Datei im btsnoop-Format, in der alle Pakete gespeichert werden. Die gespeicherten Daten lassen sich später mit
btmon -r bttraffic.log
auslesen. Der Parameter -r weist btmon an, eine bestehende Datei zu analysieren. Ergänzend liefern -t und -T Zeitinformationen, wodurch sich Paketabfolgen zeitlich einordnen lassen. Die Option -a führt eine Analyse der Datei durch und gruppiert Pakete nach Typ, was die Interpretation erleichtert.
Für eine grafische Auswertung wird Wireshark eingesetzt. Die zuvor erzeugte Datei enthält sämtliche Protokollebenen und ermöglicht eine detaillierte Analyse von L2CAP, RFCOMM oder SDP-Kommunikation.
Interaktion mit BLE-Geräten über GATT
BLE-Geräte arbeiten im Modus Bluetooth Low Energy und sind auf kurze Datenübertragungen mit geringer Energieaufnahme ausgelegt. In vielen Umgebungen senden solche Geräte regelmäßig Statusinformationen oder Sensordaten, ohne dass eine klassische Kopplung erforderlich ist. Dazu zählen Sensoren, Steuerkomponenten, mobile Geräte und Peripherie, die über Bluetooth konfiguriert oder überwacht werden. Für Sicherheitsanalysen spielt dieser Gerätetyp eine zentrale Rolle, da sich Funktionen und Zustände direkt über die Funkverbindung auslesen oder beeinflussen lassen.
Die interne Struktur dieser Geräte folgt dem GATT-Protokoll. Funktionen sind dort in Services organisiert, die wiederum einzelne Attribute enthalten. Ein Attribut repräsentiert einen konkreten Wert, etwa einen Messwert, einen Status oder eine Konfiguration. Diese Struktur lässt sich gezielt ansprechen.
Der Zugriff erfolgt mit dem Tool gatttool. Der Befehl
sudo gatttool -I -i hci0 -b AA:BB:CC:DD:EE:FF
stellt eine Verbindung zu einem BLE-Gerät her und öffnet eine interaktive Sitzung. Die Option -I aktiviert die Kommandooberfläche, -i legt das lokale Interface fest und -b definiert die Zieladresse, die zuvor durch Scan-Tools ermittelt wurde.
Nach Aufbau der Verbindung über den Befehl connect bleibt die Sitzung aktiv. Über die bekannten Handles (eindeutige Adresse oder Kennnummer für ein bestimmtes Datenelement) lassen sich einzelne Attribute adressieren. Mit
char-read-hnd <handle>
wird der aktuelle Wert eines Attributs ausgelesen. Der Handle dient als eindeutige Referenz innerhalb der GATT-Struktur. Mit
char-write-req <handle> <wert>
lassen sich Werte setzen und damit Gerätezustände verändern. Dieser Zugriff erfolgt direkt auf Protokollebene und ermöglicht die Analyse oder Manipulation von Funktionen, sofern das Zielgerät entsprechende Rechte zulässt.
Manipulation der Geräteidentität mit Spooftooph
Ein zentrales Werkzeug für aktive Tests ist Spooftooph. Es ermöglicht die vollständige Veränderung der Geräteidentität. Nach Installation über
sudo apt install spooftooph
kann ein Adapter mit neuen Parametern konfiguriert werden.
Der Befehl
sudo spooftooph -i hci0 -n LabSpeaker -a 00:11:22:33:44:55 -c 0x1c010c
setzt Name, Adresse und Geräteklasse neu. Der Parameter -i definiert das Interface. -n überschreibt den Gerätenamen, -a setzt die Bluetooth-Adresse und -c legt die Geräteklasse fest.
Mit
sudo spooftooph -i hci0 -s -w devices.csv
wird ein Scan durchgeführt und in einer CSV-Datei gespeichert. Der Parameter -s aktiviert die Suche, -w schreibt die Ergebnisse in eine Datei. Diese enthält vollständige Geräteprofile.
Die Wiederverwendung erfolgt über
sudo spooftooph -i hci0 -r devices.csv
wobei -r gespeicherte Profile einliest. Dadurch lässt sich ein reales Gerät exakt imitieren. Alternativ erzeugt
sudo spooftooph -i hci0 -R
zufällige Identitäten.
Kombinierter Einsatz im Analyseablauf
Ein durchgängiger Analyseprozess kombiniert mehrere Werkzeuge. Nach Aktivierung des Interfaces über hciconfig beginnt die Erfassung der Umgebung mit hcitool und bluelog. Parallel zeichnet btmon den Datenverkehr auf. btscanner liefert zusätzliche Detailinformationen und ermöglicht die Bewertung einzelner Geräte. Die gewonnenen Daten fließen anschließend in spooftooph ein, um Geräteprofile zu reproduzieren. Ergänzend erlaubt gatttool direkte Interaktion mit BLE-Geräten.
Diese Kombination führt zu einer vollständigen Abdeckung von Discovery, Analyse und Manipulation. Bluetooth zeigt sich damit als eigenständiger Angriffsvektor mit direktem Zugriff auf Systeme außerhalb klassischer Netzwerkgrenzen.