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

WerkzeugVersionZweckDownload
JADX-GUI1.5.3+Java-Dekompilierung von Android-Appsgithub.com/skylot/jadx
apktool2.9.3+APK-Disassemblierung (Smali-Code, Ressourcen)apktool.org
Android StudioAktuellAPK-Extraktion von verbundenen Gerätendeveloper.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.apk

Suche 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_dir

Nützlich für: AndroidManifest.xml, Ressourcen-Strings, native Bibliotheken (.so-Dateien im lib/-Verzeichnis).

Phase 2: Traffic-Capture

WerkzeugVersionZweckDownload
Wireshark4.6.1+Paketanalyse und -filterungwireshark.org
nRF Sniffer Plugin4.1.1+BLE-Capture-Plugin für Wiresharknordicsemi.com
nRF Connect (Mobile)AktuellGATT-Explorer auf dem SmartphoneApp Store / Play Store

Wireshark-Filter Referenz

Diese Filter sind essenziell für die Analyse von BLE-Traffic:

FilterBeschreibung
btle && btattNur ATT-Schicht anzeigen
btatt.opcode == 0x12Write Requests (Steuerbefehle)
btatt.opcode == 0x1bHandle Value Notifications (Sensor-Daten)
btsmpPairing-Protokoll (SMP)
btatt.handle == 0x0015Bestimmten Handle filtern
btatt.opcode == 0x0aRead Requests
btatt.opcode == 0x0bRead Responses
btatt.opcode == 0x52Write 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

WerkzeugVersionZweckDownload
Ghidra11.4.3+Statische Analyse nativer Bibliothekenghidra-sre.org
FindCrypt3.xKrypto-Konstanten-Erkennung in Ghidragithub.com/d3v1l401/FindCrypt-Ghidra
Frida16.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:

  1. Ghidra starten und ein neues Projekt anlegen
  2. .so-Datei importieren (File → Import File)
  3. Auto Analysis durchführen (lassen)
  4. FindCrypt als Script ausführen: Script Manager → FindCrypt.java → Run
  5. Ergebnisse im Console-Fenster prüfen

Phase 4–5: PoC-Entwicklung

WerkzeugVersionZweckInstallation
Python3.7+Scripting-Sprachepython.org
blatann0.5.0+BLE-Bibliothek für nRF52840pip install blatann
PyCryptodome3.20.0+Krypto-Operationen (AES, ECDH)pip install pycryptodome
bleak0.21.1+BLE-Bibliothek (plattformübergreifend)pip install bleak
Scapy2.5.0+Paketmanipulation und -analysepip 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.txt

blatann 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ätKostenEinsatz
nRF52840 Dongle (Nordic Semiconductor)~€15BLE-Sniffer + direktes Senden von BLE-Paketen
2. nRF52840 Dongle (optional)~€15Gleichzeitiges Sniffen und Senden
Android-SmartphoneVorhandenApp-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

  1. Firmware herunterladen: nordicsemi.com/Products/Development-tools/nRF-Sniffer-for-Bluetooth-LE
  2. nRF Connect for Desktop installieren
  3. Programmer öffnen und .hex-Datei auf den Dongle flashen
  4. Wireshark-Plugin installieren (aus dem Sniffer-Paket)
  5. Wireshark öffnen → Interface nRF Sniffer for Bluetooth LE auswä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?