Bluehood
Bluetooth Neighborhood - Rastreie dispositivos BLE na sua área e analise padrões de tráfego.

AVISO: Software Alpha
Este projeto está em desenvolvimento inicial e não está pronto para uso em produção. Funcionalidades podem mudar, quebrar ou ser removidas sem aviso prévio. Use por sua conta e risco. Os dados coletados devem ser tratados como experimentais.
Capturas de Tela
Painel principal mostrando a lista de dispositivos com filtragem, busca e estatísticas em tempo real
Página de configuração com abas — Alertas, Operações, Grupos e Segurança
Página de informações com detalhes do projeto e visão geral das capacidades
Por quê?
Este projeto foi inspirado na vulnerabilidade WhisperPair (CVE-2025-36911), que destacou riscos à privacidade em dispositivos Bluetooth.
Milhares de dispositivos Bluetooth nos cercam o tempo todo: celulares, carros, TVs, fones de ouvido, aparelhos auditivos, veículos de entrega e muito mais. O Bluehood demonstra como é simples detectar passivamente esses dispositivos e observar padrões em sua presença.
Com dados suficientes, você poderia potencialmente:
- Entender a que horas alguém costuma passear com o cachorro
- Detectar quando um visitante chega a uma casa
- Identificar padrões em rotinas diárias com base na presença de dispositivos
Esses metadados podem revelar informações surpreendentemente pessoais sem qualquer interação ativa com os dispositivos.
O Bluehood é uma ferramenta educacional para conscientizar sobre a privacidade no Bluetooth. É um projeto de fim de semana, mas as implicações valem a pena ser consideradas.
O quê?
O Bluehood é um scanner de Bluetooth que:
- Escaneia continuamente dispositivos Bluetooth próximos (tanto BLE quanto Classic)
- Identifica dispositivos por fabricante (consulta de endereço MAC) e UUIDs de serviço BLE
- Classifica dispositivos em categorias (celulares, áudio, vestíveis, IoT, veículos, etc.)
- Rastreia padrões de presença ao longo do tempo com mapas de calor por hora/dia
- Filtra ruído de endereços MAC aleatorizados (dispositivos com rotação de privacidade)
- Analisa correlações entre dispositivos para encontrar dispositivos que aparecem juntos
- Envia notificações push quando dispositivos monitorados chegam ou saem
- Fornece um painel web para monitoramento e análise
Funcionalidades
Escaneamento
- Escaneamento em modo duplo: Bluetooth Low Energy (BLE) e Bluetooth Classic
- Consulta de fabricante por endereço MAC (banco de dados local + fallback para API online)
- Fingerprinting de UUID de serviço BLE para classificação precisa de dispositivos
- Análise de classe de dispositivo Bluetooth Classic
- Filtragem de MAC aleatorizado (oculto da visualização principal)
Gerenciamento de Dispositivos
- Marcar dispositivos como "Monitorados" para rastrear dispositivos pessoais
- Organizar dispositivos em grupos personalizados
- Dar um nome personalizado aos dispositivos (o nome anunciado permanece visível ao lado dele)
- Substituir a classificação detectada de qualquer dispositivo
- Adicionar notas/tags personalizadas a qualquer dispositivo
- Detecção de tipo de dispositivo (celulares, áudio, vestíveis, IoT, veículos, etc.)
Análises
- Visualização de linha do tempo de presença de 30 dias
- Gráfico de histórico de intensidade de sinal (RSSI) com dados de 7 dias
- Mapas de calor de atividade por hora e por dia mostrando quando os dispositivos estão ativos
- Análise de padrões ("Dias úteis, noites 17h-21h")
- Análise de tempo de permanência mostrando o tempo total que os dispositivos passam no alcance
- Detecção de correlação entre dispositivos para encontrar dispositivos que aparecem juntos (co-presença mais chegada/saída sincronizada)
- Vinculação por rotação de MAC ("Provavelmente o mesmo dispositivo") — vincula heuristicamente identificadores aleatorizados que se alternam no tempo, compartilham intensidade de sinal semelhante e pingam em cadência similar
- Zonas de proximidade (imediata, próxima, distante, remota) com base na intensidade do sinal
- Busca por MAC, fabricante ou nome
- Busca por intervalo de datas para consultas históricas
Notificações (via ntfy)
- Notificações push para seu celular/desktop através do ntfy.sh ou de um servidor ntfy auto-hospedado
- Notificar quando novos dispositivos são detectados
- Notificar quando dispositivos monitorados retornam
- Notificar quando dispositivos monitorados saem
- Limiares configuráveis para chegada/saída
Operações
- Check-in de heartbeat — POST periódico de status para um serviço de monitoramento de uptime (ex.: Uptime Kuma, Healthchecks.io)
- Rotação de armazenamento — remove automaticamente avistamentos mais antigos que um número configurável de dias; opcionalmente restringe a remoção a dispositivos obsoletos inteiros vistos menos que um número mínimo de vezes (dispositivos monitorados nunca são removidos)
- Ambos configuráveis pela interface web ou via variáveis de ambiente
Interface Web
- Alternância entre visualização Compacta/Detalhada para diferentes preferências de exibição
- Modo captura de tela para ofuscar MACs e nomes para compartilhamento seguro
- Atalhos de teclado para usuários avançados (pressione
? para visualizar)
- Exportação CSV de dados detalhados dos dispositivos (MAC, fabricante, identificador, tipo, tipo BT, classe de dispositivo, flags de monitorado/ignorado, primeira/última vez visto, avistamentos, grupo, UUIDs de serviço e notas) — exporta todo o conjunto filtrado, não apenas a página atual
- Grupos de dispositivos para organizar dispositivos relacionados
- Autenticação opcional para proteger o acesso
Como?
Pré-requisitos — apenas hosts Linux
O Bluehood se comunica com seu adaptador Bluetooth via BlueZ, a pilha Bluetooth do Linux. O BlueZ deve estar instalado e em execução no host antes de iniciar o contêiner — a imagem Docker em si não o inclui.
# Debian / Ubuntu (incluindo Ubuntu Server)
sudo apt install bluez
sudo systemctl enable --now bluetooth
# Arch Linux
sudo pacman -S bluez bluez-utils
sudo systemctl enable --now bluetooth
Sem o BlueZ no host, você verá um erro como:
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
A imagem Docker está disponível no GitHub Container Registry:
ghcr.io/dannymcc/bluehood:latest
O painel web estará disponível em http://localhost:8080
Requisitos do Docker
- Docker e Docker Compose
- Host Linux com um adaptador Bluetooth compatível com BLE (Bluetooth 4.0+) que suporte a função Central
- BlueZ instalado e em execução no host (
sudo apt install bluez && sudo systemctl enable --now bluetooth)
Nota: Adaptadores mais antigos (Bluetooth 2.x/3.x) não suportam escaneamento BLE. Se seu adaptador não tiver suporte à função BLE 'central', você verá: No Bluetooth adapters with BLE 'central' role found.