Bluehood
Bluetooth Neighborhood - Traccia i dispositivi BLE nella tua area e analizza i pattern di traffico.

ATTENZIONE: Software Alpha
Questo progetto è in fase di sviluppo iniziale e non è pronto per l'uso in produzione. Le funzionalità possono cambiare, rompersi o essere rimosse senza preavviso. Usalo a tuo rischio. I dati raccolti devono essere considerati sperimentali.
Screenshot
Dashboard principale che mostra l'elenco dei dispositivi con filtri, ricerca e statistiche in tempo reale
Pagina di configurazione a schede — Avvisi, Operazioni, Gruppi e Sicurezza
Pagina Intel con informazioni sul progetto e panoramica delle funzionalità
Perché?
Questo progetto è stato ispirato dalla vulnerabilità WhisperPair (CVE-2025-36911), che ha evidenziato i rischi per la privacy nei dispositivi Bluetooth.
Migliaia di dispositivi Bluetooth ci circondano in ogni momento: telefoni, auto, TV, cuffie, apparecchi acustici, veicoli per le consegne e altro ancora. Bluehood dimostra quanto sia semplice rilevare passivamente questi dispositivi e osservare i pattern della loro presenza.
Con dati sufficienti, potresti potenzialmente:
- Capire a che ora qualcuno porta abitualmente a spasso il cane
- Rilevare quando un visitatore arriva a casa
- Identificare pattern nelle routine quotidiane in base alla presenza dei dispositivi
Questi metadati possono rivelare informazioni sorprendentemente personali senza alcuna interazione attiva con i dispositivi.
Bluehood è uno strumento educativo per sensibilizzare sulla privacy Bluetooth. È un progetto da weekend, ma le implicazioni meritano una riflessione.
Cosa?
Bluehood è uno scanner Bluetooth che:
- Scansiona continuamente i dispositivi Bluetooth nelle vicinanze (sia BLE che Classic)
- Identifica i dispositivi per produttore (lookup dell'indirizzo MAC) e UUID dei servizi BLE
- Classifica i dispositivi in categorie (telefoni, audio, indossabili, IoT, veicoli, ecc.)
- Traccia i pattern di presenza nel tempo con mappe di calore orarie/giornaliere
- Filtra il rumore dagli indirizzi MAC randomizzati (dispositivi con rotazione della privacy)
- Analizza le correlazioni tra dispositivi per trovare dispositivi che appaiono insieme
- Invia notifiche push quando i dispositivi monitorati arrivano o partono
- Fornisce una dashboard web per il monitoraggio e l'analisi
Funzionalità
Scansione
- Scansione dual-mode: Bluetooth Low Energy (BLE) e Bluetooth Classic
- Lookup del produttore dall'indirizzo MAC (database locale + fallback su API online)
- Fingerprinting degli UUID dei servizi BLE per una classificazione accurata dei dispositivi
- Parsing della classe dei dispositivi Bluetooth Classic
- Filtro dei MAC randomizzati (nascosti dalla vista principale)
Gestione dei dispositivi
- Contrassegna i dispositivi come "Monitorati" per tracciare i dispositivi personali
- Organizza i dispositivi in gruppi personalizzati
- Assegna un nome personalizzato ai dispositivi (il nome pubblicizzato rimane visibile accanto ad esso)
- Sovrascrivi la classificazione rilevata di qualsiasi dispositivo
- Aggiungi note/tag personalizzati a qualsiasi dispositivo
- Rilevamento del tipo di dispositivo (telefoni, audio, indossabili, IoT, veicoli, ecc.)
Analisi
- Visualizzazione della timeline di presenza a 30 giorni
- Grafico della cronologia dell'intensità del segnale (RSSI) con dati a 7 giorni
- Mappe di calore dell'attività oraria e giornaliera che mostrano quando i dispositivi sono attivi
- Analisi dei pattern ("Giorni feriali, sera 17:00-21:00")
- Analisi del tempo di permanenza che mostra il tempo totale che i dispositivi trascorrono nel raggio d'azione
- Rilevamento della correlazione tra dispositivi per trovare dispositivi che appaiono insieme (co-presenza più arrivo/partenza sincronizzati)
- Collegamento per rotazione MAC ("Probabilmente stesso dispositivo") — collega euristicamente identificatori randomizzati che si alternano nel tempo, condividono un'intensità del segnale simile e trasmettono con una cadenza simile
- Zone di prossimità (immediata, vicina, lontana, remota) in base all'intensità del segnale
- Ricerca per MAC, produttore o nome
- Ricerca per intervallo di date per query storiche
Notifiche (tramite ntfy)
- Notifiche push al tuo telefono/desktop tramite ntfy.sh o un server ntfy self-hosted
- Notifica quando vengono rilevati nuovi dispositivi
- Notifica quando i dispositivi monitorati ritornano
- Notifica quando i dispositivi monitorati partono
- Soglie configurabili per arrivo/partenza
Operazioni
- Check-in heartbeat — invia periodicamente lo stato tramite POST a un servizio di monitoraggio uptime (es. Uptime Kuma, Healthchecks.io)
- Rotazione dello storage — elimina automaticamente gli avvistamenti più vecchi di un numero configurabile di giorni; opzionalmente limita l'eliminazione a interi dispositivi obsoleti visti meno di un numero minimo di volte (i dispositivi monitorati non vengono mai eliminati)
- Entrambi configurabili dalla UI web o tramite variabili d'ambiente
Interfaccia Web
- Alternanza vista Compatta/Dettagliata per diverse preferenze di visualizzazione
- Modalità screenshot per offuscare MAC e nomi per una condivisione sicura
- Scorciatoie da tastiera per utenti esperti (premi
? per visualizzarle)
- Esportazione CSV dei dati dettagliati dei dispositivi (MAC, produttore, identificatore, tipo, tipo BT, classe del dispositivo, flag monitorato/ignorato, primo/ultimo avvistamento, avvistamenti, gruppo, UUID dei servizi e note) — esporta l'intero set filtrato, non solo la pagina corrente
- Gruppi di dispositivi per organizzare dispositivi correlati
- Autenticazione opzionale per proteggere l'accesso
Come?
Avvio Rapido con Docker (Consigliato)
Prerequisiti — solo host Linux
Bluehood comunica con il tuo adattatore Bluetooth tramite BlueZ, lo stack Bluetooth di Linux. BlueZ deve essere installato e in esecuzione sull'host prima di avviare il container — l'immagine Docker stessa non lo include.
# Debian / Ubuntu (incluso Ubuntu Server)
sudo apt install bluez
sudo systemctl enable --now bluetooth
# Arch Linux
sudo pacman -S bluez bluez-utils
sudo systemctl enable --now bluetooth
Senza BlueZ sull'host vedrai un errore come:
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
L'immagine Docker è disponibile su GitHub Container Registry:
ghcr.io/dannymcc/bluehood:latest
La dashboard web sarà disponibile all'indirizzo http://localhost:8080
Requisiti Docker
- Docker e Docker Compose
- Host Linux con un adattatore Bluetooth compatibile BLE (Bluetooth 4.0+) che supporti il ruolo Central
- BlueZ installato e in esecuzione sull'host (
sudo apt install bluez && sudo systemctl enable --now bluetooth)