Tobias Scheible Cyber Security & IT-Forensik Dozent

Spionage von Bluetooth-Verbindungen

Bluetooth hat sich zum dominierenden Standard für Funkverbindungen im Nahbereich entwickelt. Das Sicherheitskonzept ist sehr umfangreich, trotzdem werden immer mehr Angriffsvektoren bekannt. Gerade Geräte die Bluetooth Low Energy verwenden, können mit der passenden Hardware belauscht werden.

Freitag, 12. Juni 2020
0 Kommentare

Bluetooth ist ein drahtloser Technologiestandard, der für den Datenaustausch zwischen zwei Geräten über kurze Entfernungen verwendet wird. Bluetooth ist in erster Linie für einen geringen Stromverbrauch mit einer kurzen Reichweite ausgelegt. Mit der Verbreitung von Smartphones hat sich Bluetooth im Alltag durchgesetzt und wird von sehr vielen unterschiedlichen Geräteklassen eingesetzt. Das reicht von einfachen Bluetooth-Schaltern oder Brustgurten zur Pulsmessung über den drahtlosen Datenaustausch zwischen zwei Smartphones bis hin zur Übertragung von Musik auf Lautsprecher und Kopfhörer.

Die Reichweite ist abhängig von der Variante und wird in Klassen unterteilt, aber die effektiven Reichweiten variieren in der Praxis. Bluetooth-Geräte der Klasse 3 haben eine Reichweite von bis zu einem Meter, die Klasse 2, die am häufigsten in mobilen Geräten zu finden ist, zehn Meter, und die Klasse 1, hauptsächlich für industrielle Anwendungsfälle, hundert Meter. Die tatsächliche Reichweite, die durch eine bestimmte Verbindung erreicht wird, hängt von den Eigenschaften der Geräte an beiden Enden der Verbindung sowie von den Luftbedingungen dazwischen und anderen Faktoren ab.

Versionen

Das Bluetooth-Protokoll wurde 1999 ins Leben gerufen und seitdem kontinuierlich weiterentwickelt. So wurden auch moderne Features wie Mesh und IPv6 realisiert und verschiedene Energiesparmodi. Aktuell ist die Version 5.2, die am 6. Januar 2020 vorgestellt wurde. Aktuelle Geräte verwenden die Version 5.1.

Angriffsarten

Grundsätzlich ist das Sicherheitsniveau bei Bluetooth hoch, obwohl es immer wieder bekannte Sicherheitslücken gibt, die häufig aber eher theoretischer Natur sind. Allerdings werden immer wieder Sicherheitsfunktionen von Herstellern deaktiviert, wodurch sich bereits bekannte Angriffsszenarien realisieren lassen. Die energiesparende Variante Bluetooth LE (low energy) verzichtet dabei häufig auf Schutzmaßnahmen und kann verhältnismäßig einfach getrackt werden. Zum Beispiel können Bluetooth-Verbindungen mit der Hardware Bluefruit LE Sniffer oder Ubertooth One analysiert und zum Teil mitgeschnitten werden.

Bluefruit LE Sniffer

Der Bluefruit LE Sniffer ist mit einem speziellen Firmware-Image programmiert, das den Bluetooth Chip in einen einfach zu bedienenden Bluetooth Low Energy Sniffer verwandelt. Der Datenaustausch zwischen zwei BLE-Geräten kann passiv erfasst und die Daten in Wireshark analysiert werden. Eine Anleitung wird von Adafruite bereitgestellt. Das Gerät kann nur Bluetooth Low Energy Verbindungen analysieren, es funktioniert nicht mit klassischen Bluetooth Geräten.

Bluefruit LE Sniffer
Bluefruit LE Sniffer – Kompakter und einfach zu bedienender Bluetooth LE Sniffer
Bluefruit LE Sniffer Bluefruit LE Sniffer – Kompakter und einfach zu bedienender Bluetooth LE Sniffer

Ubertooth One

Der Ubertooth One ist eine Open Source 2,4 GHz drahtlose Entwicklungsplattform, die sich für Bluetooth-Experimente eignet. Kommerzielle Bluetooth-Monitoring-Geräte werden zum Teil sehr teuer angeboten, daher wurde der Ubertooth als kostengünstige Plattform für die Überwachung und Entwicklung neuer drahtloser Technologien konzipiert. Der Ubertooth One wurde von Mike Ossmann bei Great Scott Gadgets im Jahr 2011 entwickelt, als er erkannte, dass es keinen handelsüblichen Bluetooth-Adapter gab, der die erforderlichen Funktionen bot. Der Ubertooth One ist eine Open-Source-Hardware. Alle Hardwarespezifikationen, Designdateien und Zusatzinformationen finden Sie auf GitHub.

Das Gerät wurde in erster Linie als fortschrittlicher Bluetooth-Empfänger konzipiert und bietet Funktionen, die über die herkömmlichen Adapter hinausgehen, so dass es als Bluetooth-Signalaufzeichnungs- und Überwachungsplattform verwendet werden kann. Obwohl die Gerätehardware die Signalübertragung unterstützt, unterstützt die Firmware derzeit nur den Empfang und minimale Übertragungen für Werbekanäle. Der Ubertooth One basiert auf dem ARM Cortex-M3 Mikrocontroller und ist in der Lage, Signale im 2,4 GHz ISM-Band mit einer schmalen Bandbreite von nur 1 MHz zu erfassen und zu demodulieren. Hinweis: Die Antenne muss immer angeschlossen sein, wenn der Ubertooth One mit dem Rechner verbunden wird.

Ubertooth One
Der Ubertooth One wird zur Analyse von Bluetooth verwendet
Ubertooth One Der Ubertooth One wird zur Analyse von Bluetooth verwendet
Voraussetzungen

Es gibt einige Voraussetzungen, die vor der Erstellung von libbtbbb und den Ubertooth-Tools installiert werden müssen. Daher müssen als Erstes die folgenden Pakete installiert werden:

root@kali:~# apt install cmake libusb-1.0-0-dev make gcc g++ libbluetooth-dev pkg-config libpcap-dev python-numpy python-qt4

Jetzt erstellen wir uns noch einen Arbeitsordner:

root@kali:~# mkdir uebertooth
root@kali:~# cd uebertooth
libbtbb

Als Nächstes muss die Bluetooth-Basisbandbibliothek (libbtbb) für die Ubertooth-Tools zum Dekodieren von Bluetooth-Paketen erstellt werden:

root@kali:~/uebertooth# wget https://github.com/greatscottgadgets/libbtbb/archive/2018-12-R1.tar.gz -O libbtbb-2018-12-R1.tar.gz
root@kali:~/uebertooth# tar -xf libbtbb-2018-12-R1.tar.gz
root@kali:~/uebertooth# cd libbtbb-2018-12-R1
root@kali:~/uebertooth/libbtbb-2018-12-R1# mkdir build
root@kali:~/uebertooth/libbtbb-2018-12-R1# cd build
root@kali:~/uebertooth/libbtbb-2018-12-R1/build# cmake ..
root@kali:~/uebertooth/libbtbb-2018-12-R1/build# make
root@kali:~/uebertooth/libbtbb-2018-12-R1/build# sudo make install
root@kali:~/uebertooth/libbtbb-2018-12-R1/build# ldconfig
Ubertooth tools

Das Ubertooth-Repository enthält Hostcode zum Schnüffeln von Bluetooth-Paketen, zur Konfiguration des Ubertooth und zum Aktualisieren der Firmware. Alle drei werden standardmäßig mit der folgenden Methode erstellt und installiert:

root@kali:~/uebertooth# wget https://github.com/greatscottgadgets/ubertooth/releases/download/2018-12-R1/ubertooth-2018-12-R1.tar.xz
root@kali:~/uebertooth# tar xf ubertooth-2018-12-R1.tar.xz
root@kali:~/uebertooth# cd ubertooth-2018-12-R1/host
root@kali:~/uebertooth/ubertooth-2018-12-R1/host# mkdir build
root@kali:~/uebertooth/ubertooth-2018-12-R1/host# cd build
root@kali:~/uebertooth/ubertooth-2018-12-R1/host/build# cmake ..
root@kali:~/uebertooth/ubertooth-2018-12-R1/host/build# make
root@kali:~/uebertooth/ubertooth-2018-12-R1/host/build# sudo make install
root@kali:~/uebertooth/ubertooth-2018-12-R1/host/build# ldconfig
Firmware

Nachdem alle notwendigen Installationen durchgeführt worden sind, kann der Ubertooth One angeschlossen werden. Als Erstes sollte überprüft werden, ob die aktuelle Firmware installiert ist.

root@kali:~/uebertooth# ubertooth-util -v

Sollte nicht die aktuelle Firmware installiert sein, muss ein Update durchgeführt werden.

root@kali:~/uebertooth/# ubertooth-dfu -d ubertooth-2018-12-R1/ubertooth-one-firmware-bin/bluetooth_rxtx.dfu -r
root@kali:~/uebertooth/# ubertooth-util -r
Bluetooth Scan

Als Einstieg verschaffen wir uns ein Überblick, welche Bluetooth Geräte in Reichweite sind. Dazu wird das integrierte Bluetooth-Modul genutzt und nicht der Ubertooth One, da dieser vom System nicht als Standardschnittstelle interpretiert wird. Als Erstes muss überprüft werden, ob ein Bluetooth-Modul vom System erkannt worden ist:

root@kali:~# hciconfig -a
hci0:   Type: BR/EDR  Bus: USB
        BD Address: 00:03:C9:80:08:0B  ACL MTU: 377:10  SCO MTU: 16:0
        DOWN 
        RX bytes:2752 acl:0 sco:0 events:80 errors:0
        TX bytes:320 acl:0 sco:0 commands:80 errors:0
        Features: 0xff 0xff 0x0d 0x00 0x00 0x00 0x00 0x00
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
        Link policy: 
        Link mode: SLAVE ACCEPT

Das Gerät hci0 kann mit dem folgenden Befehl aktiviert werden:

root@kali:~# hciconfig  hci0 up

Nun kann der eigentliche Scan durchgeführt werden. Mehrere Pakete werden aufgezeichnet und nach kurzer Zeit wird eine Übersicht der aktiven Geräte ausgegeben.

root@kali:~# ubertooth-scan
Spektralanalyse

Mittels einer grafischen Übersicht kann angezeigt werden, wie das Bluetooth-Spektrum genutzt wird. Dazu muss die Python-Bibliothek pyside2 installiert werden.

root@kali:~# pip install pyside2

Sollte pip nicht verfügbar sein, kann die Funktion einfach installiert werden:

root@kali:~# curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
root@kali:~# python get-pip.py 
root@kali:~# pip install -U pip

Die Analyse wird mit dem folgenden Befehl gestartet:

root@kali:~# ubertooth-specan-ui
Ubertooth Spectrum Analyzer
Graphische Ausgabe der Spektralanalyse
Ubertooth Spectrum Analyzer Graphische Ausgabe der Spektralanalyse
Sniffing

Der aufgefangene Traffic kann mit dem folgenden Befehl angezeigt werden:

root@kali:~# ubertooth-rx

Gegenmaßnahmen

Da ein Angreifer in unmittelbarer Nähe sein muss, spielen vor allem gezielte Angriffe eine große Rolle. Werden Geräte mit Bluetooth entwickelt, sollten alle vom Standard vorgesehenen Sicherheitsfeatures implementiert werden. Als Endkunde hilft es nur, die Bluetooth-Verbindung bei Bedarf zu deaktivieren.

Artikelserie

Dieser Blogartikel ist Teil der Artikelserie Netzwerk Spionage, in der ich verschiedene Arten von Angriffsmethoden über die Netzwerkschnittstellen beschreibe, damit diese erkannt und effektive Gegenmaßnahmen getroffen werden können. In der Artikelserie, die dem Themenschwerpunkt Hacking Hardware angehört, werden die folgenden Artikel erscheinen:

Über Tobias Scheible

Tobias Scheible

Hallo, mein Name ist Tobias Scheible. Ich bin begeisterter Informatiker und Sicherheitsforscher mit den Schwerpunkten Cyber Security und IT-Forensik. Mein Wissen teile ich gerne anhand von Fachartikeln hier in meinem Blog. Als Referent halte ich Vorträge und Workshops für Verbände und Unternehmen u. a. auch offene Veranstaltungen für den VDI und die IHK.

Kommentare

Es wurde noch kein Kommentar abgegeben.

Schreibe einen Kommentar!

Hilfe zum Kommentieren

Um kommentieren zu können, geben sie bitte mindestens ihren Namen und ihre E-Mail-Adresse an. Bitte nutzen Sie die Kommentarfunktion nicht dazu, andere zu beleidigen oder Spam zu verbreiten. Trolle und Spammer sind hier unerwünscht! Unangemessene Kommentare, die zum Beispiel gegen geltendes Recht verstoßen oder eine Gefährdung anderer Besucher darstellen, werden gelöscht oder angepasst.

Name: Ihr Name, der oberhalb des Kommentars steht, gerne auch Ihren echten Namen, das erleichtert die Kommunikation für alle. Sollte ein Spam-Keyword als Name verwendet werden, kann dieses entfernt oder korrigiert werden.

E-Mail: Ihre E-Mail Adresse dient zur Identifizierung weiterer Kommentare und sie haben die Möglichkeit, ein Avatar-Bild zu verwenden. Dazu müssen Sie mit Ihrer E-Mail Adresse bei Gravatar angemeldet sein. Die E-Mail Adresse wird natürlich nicht veröffentlicht und nicht weitergegeben.

Website: Hier können Sie ihren eigenen Blog bzw. ihre eigene Website eintragen, dadurch wird Ihr Name und Ihr Avatar-Bild verlinkt. Werden rein kommerzielle Angebote offensichtlich beworben, setze ich den Link auf nofollow und unangemessene werden einfach entfernt.

Erlaubte HTML-Tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <hr> <big> <small> <sub> <sup> <u>

Ihre E-Mailadresse wird nicht veröffentlicht. Mit dem Absenden anerkennen Sie die Datenschutzhinweis des Blogs.