Bluehood
Bluetooth Neighborhood — отслеживайте BLE-устройства поблизости и анализируйте шаблоны трафика.

ВНИМАНИЕ: Альфа-версия ПО
Этот проект находится на ранней стадии разработки и не готов к использованию в production. Функции могут меняться, ломаться или удаляться без предупреждения. Используйте на свой риск. Собранные данные следует считать экспериментальными.
Скриншоты
Главная панель со списком устройств, фильтрацией, поиском и статистикой в реальном времени
Страница конфигурации с вкладками — Alerts, Operations, Groups и Security
Страница Intel с информацией о проекте и обзором возможностей
Зачем?
Этот проект был вдохновлён уязвимостью WhisperPair (CVE-2025-36911), которая высветила риски для приватности в Bluetooth-устройствах.
Тысячи Bluetooth-устройств окружают нас постоянно: телефоны, автомобили, телевизоры, наушники, слуховые аппараты, машины доставки и многое другое. Bluehood демонстрирует, насколько просто пассивно обнаруживать эти устройства и наблюдать закономерности их присутствия.
Имея достаточно данных, вы потенциально можете:
- Понять, в какое время кто-то обычно выгуливает собаку
- Определить, когда посетитель приходит в дом
- Выявить закономерности в повседневных routines на основе присутствия устройств
Эти метаданные могут раскрыть на удивление личную информацию без какого-либо активного взаимодействия с устройствами.
Bluehood — это образовательный инструмент для повышения осведомлённости о приватности Bluetooth. Это проект на выходные, но его последствия стоит обдумать.
Что это?
Bluehood — это Bluetooth-сканер, который:
- Непрерывно сканирует ближайшие Bluetooth-устройства (как BLE, так и Classic)
- Идентифицирует устройства по производителю (поиск по MAC-адресу) и UUID сервисов BLE
- Классифицирует устройства по категориям (телефоны, аудио, носимые устройства, IoT, транспорт и т.д.)
- Отслеживает шаблоны присутствия во времени с почасовыми/дневными тепловыми картами
- Отфильтровывает шум от рандомизированных MAC-адресов (устройства с ротацией приватности)
- Анализирует корреляции устройств, чтобы находить устройства, появляющиеся вместе
- Отправляет push-уведомления, когда отслеживаемые устройства появляются или уходят
- Предоставляет веб-панель для мониторинга и анализа
Возможности
Сканирование
- Двухрежимное сканирование: Bluetooth Low Energy (BLE) и Classic Bluetooth
- Поиск производителя по MAC-адресу (локальная база данных + онлайн API как fallback)
- Фингерпринтинг UUID сервисов BLE для точной классификации устройств
- Разбор класса Classic Bluetooth-устройств
- Фильтрация рандомизированных MAC (скрыты из основного представления)
Управление устройствами
- Отмечайте устройства как «Отслеживаемые» для отслеживания личных устройств
- Организуйте устройства в пользовательские группы
- Давайте устройствам пользовательские имена (рекламируемое имя остаётся видимым рядом)
- Переопределяйте обнаруженную классификацию любого устройства
- Добавляйте пользовательские заметки/теги к любому устройству
- Определение типа устройства (телефоны, аудио, носимые устройства, IoT, транспорт и т.д.)
Аналитика
- Визуализация 30-дневной временной шкалы присутствия
- График истории силы сигнала (RSSI) с данными за 7 дней
- Почасовые и дневные тепловые карты активности, показывающие, когда устройства активны
- Анализ шаблонов («Будни, вечера 17:00–21:00»)
- Анализ времени пребывания, показывающий общее время нахождения устройств в зоне действия
- Обнаружение корреляции устройств для поиска устройств, появляющихся вместе (совместное присутствие плюс синхронизированное прибытие/уход)
- Связывание по ротации MAC («Вероятно, одно и то же устройство») — эвристически связывает рандомизированные идентификаторы, которые сменяют друг друга во времени, имеют схожую силу сигнала и пингуются с похожей периодичностью
- Зоны близости (immediate, near, far, remote) на основе силы сигнала
- Поиск по MAC, производителю или имени
- Поиск по диапазону дат для исторических запросов
Уведомления (через ntfy)
- Push-уведомления на телефон/десктоп через ntfy.sh или самостоятельно размещённый сервер ntfy
- Уведомление при обнаружении новых устройств
- Уведомление при возвращении отслеживаемых устройств
- Уведомление при уходе отслеживаемых устройств
- Настраиваемые пороги для прибытия/ухода
Операции
- Heartbeat check-in — периодически отправляет POST-статус в сервис мониторинга доступности (например, Uptime Kuma, Healthchecks.io)
- Ротация хранилища — автоматически удаляет наблюдения старше настраиваемого количества дней; опционально ограничивает очистку целыми устаревшими устройствами, замеченными меньше минимального числа раз (отслеживаемые устройства никогда не удаляются)
- Оба параметра настраиваются из веб-интерфейса или через переменные окружения
Веб-интерфейс
- Переключение компактного/детального вида для разных предпочтений отображения
- Режим скриншота для обфускации MAC-адресов и имён для безопасного обмена
- Горячие клавиши для опытных пользователей (нажмите
? для просмотра)
- Экспорт CSV детальных данных устройств (MAC, производитель, идентификатор, тип, тип BT, класс устройства, флаги watched/ignored, первое/последнее появление, наблюдения, группа, UUID сервисов и заметки) — экспортирует весь отфильтрованный набор, а не только текущую страницу
- Группы устройств для организации связанных устройств
- Опциональная аутентификация для защиты доступа
Как?
Быстрый старт с Docker (рекомендуется)
Предварительные требования — только для Linux-хостов
Bluehood взаимодействует с вашим Bluetooth-адаптером через BlueZ, стек Bluetooth для Linux. BlueZ должен быть установлен и запущен на хосте перед запуском контейнера — сам Docker-образ его не включает.
# Debian / Ubuntu (включая Ubuntu Server)
sudo apt install bluez
sudo systemctl enable --now bluetooth
# Arch Linux
sudo pacman -S bluez bluez-utils
sudo systemctl enable --now bluetooth
Без BlueZ на хосте вы увидите ошибку вида:
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
Docker-образ доступен в GitHub Container Registry:
ghcr.io/dannymcc/bluehood:latest
Веб-панель будет доступна по адресу http://localhost:8080
Требования Docker
- Docker и Docker Compose
- Linux-хост с BLE-совместимым Bluetooth-адаптером (Bluetooth 4.0+), поддерживающим роль Central
- BlueZ, установленный и запущенный на хосте (
sudo apt install bluez && sudo systemctl enable --now bluetooth)
Примечание: Старые адаптеры (Bluetooth 2.x/3.x) не поддерживают BLE-сканирование. Если ваш адаптер не поддерживает роль BLE Central, вы увидите: No Bluetooth adapters with BLE 'central' role found.
Примечание: Docker работает в привилегированном режиме с host networking для доступа к Bluetooth. Это необходимо для BLE-сканирования.
Переменные окружения Docker