Werkzeuge
Vollständige Toolchain-Referenz für BLE-Sicherheitsanalysen
Lernziel
Nach dieser Seite kennst du alle Werkzeuge, die für eine vollständige BLE-Sicherheitsanalyse benötigt werden, weißt, wo du sie findest, und verstehst, wofür jedes eingesetzt wird.
Überblick
Eine BLE-Sicherheitsanalyse gliedert sich in fünf Phasen. Jede Phase hat ihre eigenen Werkzeuge. Die folgende Tabelle zeigt die empfohlene Toolchain:
Gesamtkosten der Hardware
Die einzige Hardware, die du kaufen musst, ist ein nRF52840-Dongle (€15) und optional ein zweiter für das direkte Senden (€15). Alles andere ist Software — und größtenteils kostenlos und Open Source. Gesamtkosten Hardware: ca. €50.
Phase 1: APK-Analyse
| Werkzeug | Version | Zweck | Download |
|---|---|---|---|
| JADX-GUI | 1.5.3+ | Java-Dekompilierung von Android-Apps | github.com/skylot/jadx |
| apktool | 2.9.3+ | APK-Disassemblierung (Smali-Code, Ressourcen) | apktool.org |
| Android Studio | Aktuell | APK-Extraktion von verbundenen Geräten | developer.android.com |
JADX-GUI verwenden
JADX konvertiert den kompilierten Java-Bytecode einer Android-App zurück in lesbaren Java-Quellcode. Starte es und öffne eine APK-Datei:
# JADX aus dem Terminal starten
jadx-gui app.apkSuche nach Schlüsselwörtern wie AES, encrypt, key, BLE, BluetoothGatt.
apktool verwenden
apktool dekompiliert die APK in Smali-Assembly-Code und extrahiert Ressourcen:
apktool d app.apk -o output_dirNützlich für: AndroidManifest.xml, Ressourcen-Strings, native Bibliotheken (.so-Dateien im lib/-Verzeichnis).
Phase 2: Traffic-Capture
| Werkzeug | Version | Zweck | Download |
|---|---|---|---|
| Wireshark | 4.6.1+ | Paketanalyse und -filterung | wireshark.org |
| nRF Sniffer Plugin | 4.1.1+ | BLE-Capture-Plugin für Wireshark | nordicsemi.com |
| nRF Connect (Mobile) | Aktuell | GATT-Explorer auf dem Smartphone | App Store / Play Store |
Wireshark-Filter Referenz
Diese Filter sind essenziell für die Analyse von BLE-Traffic:
| Filter | Beschreibung |
|---|---|
btle && btatt | Nur ATT-Schicht anzeigen |
btatt.opcode == 0x12 | Write Requests (Steuerbefehle) |
btatt.opcode == 0x1b | Handle Value Notifications (Sensor-Daten) |
btsmp | Pairing-Protokoll (SMP) |
btatt.handle == 0x0015 | Bestimmten Handle filtern |
btatt.opcode == 0x0a | Read Requests |
btatt.opcode == 0x0b | Read Responses |
btatt.opcode == 0x52 | Write Command (Write Without Response) |
Wireshark Farb-Tipp
Richte in Wireshark Coloring Rules ein: Blau für Write Requests, Grün für Notifications. Das macht Muster im Traffic sofort sichtbar: Befehle (blau) und Antworten/Daten (grün) wechseln sich ab.
Phase 3: Reverse Engineering
| Werkzeug | Version | Zweck | Download |
|---|---|---|---|
| Ghidra | 11.4.3+ | Statische Analyse nativer Bibliotheken | ghidra-sre.org |
| FindCrypt | 3.x | Krypto-Konstanten-Erkennung in Ghidra | github.com/d3v1l401/FindCrypt-Ghidra |
| Frida | 16.x+ | Dynamische Instrumentierung (Laufzeitanalyse) | frida.re |
Ghidra: FindCrypt installieren
FindCrypt sucht automatisch nach bekannten kryptografischen Konstanten (AES S-Box, DES, RC4) in binären Dateien:
- Ghidra starten und ein neues Projekt anlegen
.so-Datei importieren (File → Import File)- Auto Analysis durchführen (lassen)
- FindCrypt als Script ausführen: Script Manager → FindCrypt.java → Run
- Ergebnisse im Console-Fenster prüfen
Phase 4–5: PoC-Entwicklung
| Werkzeug | Version | Zweck | Installation |
|---|---|---|---|
| Python | 3.7+ | Scripting-Sprache | python.org |
| blatann | 0.5.0+ | BLE-Bibliothek für nRF52840 | pip install blatann |
| PyCryptodome | 3.20.0+ | Krypto-Operationen (AES, ECDH) | pip install pycryptodome |
| bleak | 0.21.1+ | BLE-Bibliothek (plattformübergreifend) | pip install bleak |
| Scapy | 2.5.0+ | Paketmanipulation und -analyse | pip install scapy |
Python-Abhängigkeiten (requirements.txt)
blatann>=0.5.0
pycryptodome>=3.20.0
bleak>=0.21.1
scapy>=2.5.0
Installieren mit:
pip install -r requirements.txtblatann vs. bleak
blatann erfordert einen nRF52840-Dongle und gibt dir volle Kontrolle über BLE-Parameter (z. B. ohne Verschlüsselung verbinden, beliebige Handles schreiben). bleak läuft auf dem integrierten Bluetooth-Adapter deines Computers, hat aber weniger Low-Level-Kontrolle. Für PoC-Entwicklung mit besonderen Anforderungen: blatann bevorzugen.
Hardware
| Gerät | Kosten | Einsatz |
|---|---|---|
| nRF52840 Dongle (Nordic Semiconductor) | ~€15 | BLE-Sniffer + direktes Senden von BLE-Paketen |
| 2. nRF52840 Dongle (optional) | ~€15 | Gleichzeitiges Sniffen und Senden |
| Android-Smartphone | Vorhanden | App-Analyse, nRF Connect |
Gesamtkosten Hardware: ~€15–50
Der nRF52840 ist unverzichtbar, weil er mit der offiziellen Nordic-Firmware als Sniffer arbeitet und gleichzeitig mit blatann als vollständig steuerbarer BLE-Adapter programmiert werden kann.
nRF52840-Dongle einrichten
- Firmware herunterladen: nordicsemi.com/Products/Development-tools/nRF-Sniffer-for-Bluetooth-LE
- nRF Connect for Desktop installieren
- Programmer öffnen und
.hex-Datei auf den Dongle flashen - Wireshark-Plugin installieren (aus dem Sniffer-Paket)
- Wireshark öffnen → Interface
nRF Sniffer for Bluetooth LEauswählen
Zusammenfassung
- Phase 1 (APK): JADX-GUI für Java-Dekompilierung, apktool für Ressourcen
- Phase 2 (Traffic): Wireshark + nRF Sniffer Plugin für PCAP-Aufzeichnung
- Phase 3 (RE): Ghidra + FindCrypt für native Bibliotheken
- Phasen 4–5 (PoC): Python + blatann + PyCryptodome
- Gesamtkosten: ~€15–50 für Hardware, alles andere ist kostenlos
Welches Werkzeug wird für die Analyse nativer Android-Bibliotheken (.so-Dateien) eingesetzt?