Sparrow-WiFi
Sparrow-WiFi — это инструмент для анализа спектра 2,4 ГГц и 5 ГГц WiFi и Bluetooth для Linux. Он объединяет в себе сканирование WiFi, обнаружение Bluetooth Low Energy и Classic, анализ спектра с помощью программно-определяемого радио (HackRF, Ubertooth), GPS-трекинг, обнаружение дронов FAA RemoteID, удаленное управление с дронов/роверов и индексацию ECS 8.17 в Elasticsearch или OpenSearch — все в одной платформе. Полностью написан на Python 3.
Проект включает четыре компонента, которые могут работать как отдельно, так и вместе:
| Компонент | Интерфейс | Назначение |
|---|
| Sparrow-WiFi | Графический интерфейс PyQt5 | Сканирование WiFi/BT, анализ спектра, отслеживание источников, вардрайвинг |
| Sparrow Agent | Headless HTTP-сервер | Удаленное сканирование, развертывание на дронах/роверах, интеграция со сторонними приложениями |
| Sparrow DroneID | Веб-интерфейс (браузер) | Обнаружение дронов FAA RemoteID через WiFi и Bluetooth LE |
| Sparrow Elastic Bridge | Headless CLI-сервис | Индексация наблюдений WiFi/BT в формате ECS 8.17 в Elasticsearch / OpenSearch |
Sparrow Agent и Sparrow DroneID предоставляют JSON REST API, позволяющие другим приложениям запрашивать результаты сканирования, запускать сканирование, получать обнаружения дронов и интегрировать функции беспроводного/дронного мониторинга в свои рабочие процессы. Elastic Bridge потребляет REST API агента и отправляет документы ECS 8.17 с встроенными панелями Kibana.
Что нового (апрель 2026)
Этот выпуск включает три значительных улучшения по сравнению с предыдущей версией:
- Sparrow Agent: объединение однопоточных WiFi-сканирований. Когда несколько HTTP-клиентов (приложение DroneID, мост Elasticsearch, графический интерфейс) одновременно обращаются к
/wireless/networks/<iface>, агент ранее запускал N избыточных вызовов iw scan, которые сериализовались на блокировке интерфейса, умножая задержку сканирования на количество клиентов. Теперь первый запрос становится «лидером», который фактически выполняет сканирование; параллельные запросы ожидают на threading.Event и используют результат лидера. Также исправлена ошибка TOCTOU при создании блокировок и обеспечена безопасность исключений для блокировок интерфейсов.
- Sparrow DroneID — новое веб-приложение для обнаружения FAA RemoteID через WiFi (ASTM F3411 NAN, вендорские IE маяков, собственный протокол DroneID от DJI) и Bluetooth LE (рекламные пакеты BT4/BT5 Legacy). Включает наложение геозон, многоуровневые оповещения с интеграцией Slack, экспорт KML, вывод Cursor-on-Target, опциональную индексацию ECS 8.17 в Elasticsearch / OpenSearch (с пользовательским пространством имен
droneid.*) и адаптивный веб-интерфейс для нескольких устройств. См. раздел Sparrow DroneID ниже.
- Модернизированный мост Elasticsearch / OpenSearch — мост
sparrow-elastic.py переписан для создания документов ECS 8.17 (ранее ECS 1.5), теперь поддерживает как Elasticsearch 8.x, так и OpenSearch 2.x, автоматически создает компонуемые индексные шаблоны с политиками жизненного цикла ILM/ISM и псевдонимами для перезаписи, выполняет обогащение данных WIF-вендорами и классификацию устройств на основе правил (с опциональным Fingerbank), а также поставляет четыре встроенные панели Kibana и шесть сохраненных визуализаций из предыдущей версии. Устаревший мост ECS 1.5 сохранен в legacy/sparrow-elastic.py. См. Интеграция с Elasticsearch / OpenSearch.
Sparrow-WiFi (Графический интерфейс)
Оригинальное приложение Sparrow предоставляет комплексный графический интерфейс, заменяющий такие инструменты, как inSSIDer и LinSSID, с возможностями, далеко выходящими за рамки базового сканирования:
- Сканирование WiFi — обнаружение SSID в диапазонах 2,4 ГГц и 5 ГГц, уровень сигнала, загрузка канала
- Отслеживание источников — Режим охоты с высокой частотой выборки и телеметрическими окнами для локализации источников WiFi и Bluetooth
- Анализ спектра — Наложение спектра в реальном времени для диапазонов 2,4/5 ГГц через Ubertooth One или HackRF One
- Bluetooth — Сканирование BLE-рекламы, обнаружение/передача iBeacon, неразборчивый режим Ubertooth для Classic + LE
- Удаленный агент — Headless-агент (
sparrowwifiagent.py) для распределенного сканирования, работы с дронов/роверов и развертывания на Raspberry Pi
- Интеграция GPS — gpsd, статические координаты или MAVLink (GPS дрона)
- Картография — Визуализация результатов сканирования с GPS-треками на Google Maps / OpenStreetMap
- Импорт/Экспорт — CSV, JSON и сырой вывод
iw scan
- Elasticsearch / OpenSearch — Индексация данных сканирования WiFi и Bluetooth в формате ECS 8.17 с управлением жизненным циклом ILM/ISM, классификацией устройств, опциональным Fingerbank и встроенными панелями Kibana
- Плагин Falcon — Интеграция с Aircrack-ng для тестирования на проникновение (режим монитора, обнаружение скрытых SSID, deauth, захват WEP/WPA)
Скриншоты
Sparrow DroneID (Веб-приложение)
Автономная веб-система обнаружения и отслеживания дронов, декодирующая обязательную согласно FAA удаленную идентификацию (Remote Identification, RemoteID). Запускается как HTTP-сервер на Python с браузерным интерфейсом, доступным с любого устройства в сети.
Возможности
- Захват WiFi — Декодирует кадры действий ASTM F3411 NAN, вендорские IE маяков и собственный DroneID от DJI
- Захват Bluetooth LE — Декодирует рекламные пакеты ASTM F3411 BT4/BT5 Legacy (UUID 0xFFFA)
- Карта в реальном времени — Карта на основе Leaflet с иконками квадрокоптеров, указателями направления, метками местоположения оператора и линиями "дрон-оператор"
- Метки с первого взгляда — ID оператора и высота над уровнем земли отображаются под каждой иконкой дрона на карте
- Всплывающие окна с деталями — Нажатие на дрон показывает серийный номер, регистрационный ID, ID оператора, тип, скорость, направление, высоту, пеленг/расстояние от приемника, статус BVLOS
- Система оповещений — Настраиваемые оповещения о новых дронах, нарушениях высоты, превышении скорости и потере сигнала с звуковыми сигналами, визуальными всплывающими уведомлениями, уведомлениями через Slack и опциональными JSON POST-запросами с токеном носителя к внешнему API приема оповещений (см. API-оповещения ниже)
- Подтверждение оповещений — Трехстадийный рабочий процесс (Активно/Подтверждено/Решено) с идентификацией оператора, общий для всех подключенных устройств
- Геозоны аэропортов — Автоматическая загрузка и отображение ближайших аэропортов (данные OurAirports) и полигонов запретных/ограниченных зон FAA, кэшируемых локально для работы в офлайн-режиме
- GPS — Интеграция gpsd или настраиваемые статические координаты
- История и воспроизведение — Хранение истории обнаружений в SQLite с возможностью воспроизведения временной шкалы и экспорта в KML
- Cursor-on-Target (CoT) — Многоадресный вывод CoT для интеграции с SA
- Многопользовательский режим — Веб-интерфейс одновременно работает на настольных ПК, планшетах и телефонах
- Метрическая / имперская система — Полная поддержка выбора единиц измерения во всем интерфейсе и в оповещениях
После запуска веб-интерфейс доступен по адресу http://localhost:8097. Инструкции по настройке см. в разделе Установка, а программный доступ — в справочнике API.
API-оповещения