Bluehood
Bluetooth Neighborhood – Verfolge BLE-Geräte in deiner Umgebung und analysiere Verkehrsmuster.

WARNUNG: Alpha-Software
Dieses Projekt befindet sich in einer frühen Entwicklungsphase und ist nicht für den Produktiveinsatz geeignet. Funktionen können sich ändern, fehlschlagen oder ohne Vorankündigung entfernt werden. Nutzung auf eigenes Risiko. Gesammelte Daten sollten als experimentell betrachtet werden.
Screenshots
Hauptdashboard mit Geräteliste, Filterung, Suche und Echtzeitstatistiken
Tab-basierte Konfigurationsseite – Alerts, Operations, Groups und Security
Intel-Seite mit Projektinformationen und Funktionsübersicht
Warum?
Dieses Projekt wurde durch die WhisperPair-Schwachstelle (CVE-2025-36911) inspiriert, die Datenschutzrisiken bei Bluetooth-Geräten aufgezeigt hat.
Tausende Bluetooth-Geräte umgeben uns ständig: Telefone, Autos, Fernseher, Kopfhörer, Hörgeräte, Lieferfahrzeuge und mehr. Bluehood demonstriert, wie einfach es ist, diese Geräte passiv zu erkennen und Muster in ihrer Anwesenheit zu beobachten.
Mit genügend Daten könnte man potenziell:
- Verstehen, wann jemand typischerweise mit dem Hund spazieren geht
- Erkennen, wann ein Besucher an einem Haus ankommt
- Muster in täglichen Routinen basierend auf der Geräteanwesenheit identifizieren
Diese Metadaten können überraschend persönliche Informationen preisgeben, ohne dass eine aktive Interaktion mit den Geräten erforderlich ist.
Bluehood ist ein Bildungswerkzeug, um das Bewusstsein für Bluetooth-Datenschutz zu schärfen. Es ist ein Wochenendprojekt, aber die Implikationen sind es wert, darüber nachzudenken.
Was?
Bluehood ist ein Bluetooth-Scanner, der:
- Kontinuierlich scannt nach Bluetooth-Geräten in der Nähe (sowohl BLE als auch Classic)
- Geräte identifiziert nach Hersteller (MAC-Adressen-Lookup) und BLE-Service-UUIDs
- Geräte klassifiziert in Kategorien (Telefone, Audio, Wearables, IoT, Fahrzeuge usw.)
- Anwesenheitsmuster verfolgt über die Zeit mit stündlichen/täglichen Heatmaps
- Rauschen herausfiltert von randomisierten MAC-Adressen (datenschutzrotierte Geräte)
- Gerätekorrelationen analysiert, um Geräte zu finden, die zusammen erscheinen
- Push-Benachrichtigungen sendet, wenn überwachte Geräte ankommen oder gehen
- Ein Web-Dashboard bereitstellt für Überwachung und Analyse
Funktionen
Scannen
- Dual-Modus-Scannen: Bluetooth Low Energy (BLE) und Classic Bluetooth
- MAC-Adressen-Hersteller-Lookup (lokale Datenbank + Online-API-Fallback)
- BLE-Service-UUID-Fingerprinting für präzise Geräteklassifizierung
- Classic-Bluetooth-Geräteklassen-Parsing
- Randomisierte MAC-Filterung (in der Hauptansicht ausgeblendet)
Geräteverwaltung
- Geräte als „Watched" markieren, um persönliche Geräte zu verfolgen
- Geräte in benutzerdefinierte Gruppen organisieren
- Geräten einen benutzerdefinierten Namen geben (der beworbene Name bleibt daneben sichtbar)
- Die erkannte Klassifizierung eines Geräts überschreiben
- Benutzerdefinierte Notizen/Tags zu jedem Gerät hinzufügen
- Gerätetyp-Erkennung (Telefone, Audio, Wearables, IoT, Fahrzeuge usw.)
Analysen
- 30-Tage-Anwesenheits-Timeline-Visualisierung
- Signalstärke (RSSI)-Verlauf-Diagramm mit 7-Tage-Daten
- Stündliche und tägliche Aktivitäts-Heatmaps, die zeigen, wann Geräte aktiv sind
- Musteranalyse („Werktags, abends 17:00–21:00 Uhr")
- Aufenthaltsdauer-Analyse, die die Gesamtzeit zeigt, die Geräte in Reichweite verbringen
- Gerätekorrelations-Erkennung, um Geräte zu finden, die zusammen erscheinen (Ko-Präsenz plus synchronisiertes Ankommen/Verlassen)
- MAC-Rotations-Verknüpfung („Wahrscheinlich dasselbe Gerät") – verknüpft heuristisch randomisierte Identifikatoren, die zeitlich übergeben, eine ähnliche Signalstärke teilen und in ähnlicher Kadenz pingen
- Näherungszonen (unmittelbar, nah, fern, entfernt) basierend auf Signalstärke
- Suche nach MAC, Hersteller oder Name
- Datumsbereichssuche für historische Abfragen
Benachrichtigungen (über ntfy)
- Push-Benachrichtigungen auf dein Telefon/Desktop über ntfy.sh oder einen selbst gehosteten ntfy-Server
- Benachrichtigung, wenn neue Geräte erkannt werden
- Benachrichtigung, wenn überwachte Geräte zurückkehren
- Benachrichtigung, wenn überwachte Geräte gehen
- Konfigurierbare Schwellenwerte für Ankunft/Abgang
Betrieb
- Heartbeat-Check-in – regelmäßiges POSTen des Status an einen Uptime-Überwachungsdienst (z. B. Uptime Kuma, Healthchecks.io)
- Speicherrotation – automatisches Bereinigen von Sichtungen, die älter als eine konfigurierbare Anzahl von Tagen sind; optional Beschränkung der Bereinigung auf ganze veraltete Geräte, die weniger als eine Mindestanzahl von Malen gesehen wurden (überwachte Geräte werden nie bereinigt)
- Beides konfigurierbar über die Web-UI oder über Umgebungsvariablen
Web-Oberfläche
- Kompakt-/Detailansicht-Umschaltung für verschiedene Anzeigepräferenzen
- Screenshot-Modus zum Verschleiern von MACs und Namen für sicheres Teilen
- Tastaturkürzel für Power-User (drücke
? zum Anzeigen)
- CSV-Export detaillierter Gerätedaten (MAC, Hersteller, Identifikator, Typ, BT-Typ, Geräteklasse, Watched/Ignored-Flags, erstmals/zuletzt gesehen, Sichtungen, Gruppe, Service-UUIDs und Notizen) – exportiert das gesamte gefilterte Set, nicht nur die aktuelle Seite
- Gerätegruppen zum Organisieren verwandter Geräte
- Optionale Authentifizierung zum Sichern des Zugriffs
Wie?
Schnellstart mit Docker (Empfohlen)
Voraussetzungen – nur Linux-Hosts
Bluehood kommuniziert mit deinem Bluetooth-Adapter über BlueZ, den Linux-Bluetooth-Stack. BlueZ muss auf dem Host installiert und laufen, bevor der Container gestartet wird – das Docker-Image selbst enthält es nicht.
# Debian / Ubuntu (einschließlich Ubuntu Server)
sudo apt install bluez
sudo systemctl enable --now bluetooth
# Arch Linux
sudo pacman -S bluez bluez-utils
sudo systemctl enable --now bluetooth
Ohne BlueZ auf dem Host siehst du einen Fehler wie:
BLE scan error: [org.freedesktop.DBus.Error.ServiceUnknown] The name org.bluez was not provided by any .service files
# Create a docker-compose.yml or download the one from this repo
# Then start with Docker Compose
docker compose up -d
# View logs
docker compose logs -f
Das Docker-Image ist auf der GitHub Container Registry verfügbar:
ghcr.io/dannymcc/bluehood:latest
Das Web-Dashboard ist unter http://localhost:8080 verfügbar
Docker-Anforderungen
- Docker und Docker Compose
- Linux-Host mit einem BLE-fähigen Bluetooth-Adapter (Bluetooth 4.0+), der die Central-Rolle unterstützt
- BlueZ auf dem Host installiert und laufend (
sudo apt install bluez && sudo systemctl enable --now bluetooth)
Hinweis: Ältere Adapter (Bluetooth 2.x/3.x) unterstützen kein BLE-Scannen. Wenn dein Adapter die BLE-Central-Rolle nicht unterstützt, siehst du: No Bluetooth adapters with BLE 'central' role found.
Hinweis: Docker läuft im privilegierten Modus mit Host-Netzwerk für den Bluetooth-Zugriff. Dies ist für BLE-Scannen erforderlich.
Docker-Umgebungsvariablen