Sparrow-WiFi
Sparrow-WiFi ist ein Werkzeug zur spektralen Erfassung von 2,4-GHz- und 5-GHz-WiFi sowie Bluetooth unter Linux. Es integriert WiFi-Scanning, Bluetooth-Low-Energy- und Classic-Erkennung, Spektrumanalyse mittels softwaredefiniertem Funk (HackRF, Ubertooth), GPS-Tracking, FAA-RemoteID-Drohnenerkennung, Remote-Betrieb auf Drohnen/Rovern und ECS-8.17-Indizierung in Elasticsearch oder OpenSearch in einer einzigen Plattform. Vollständig in Python 3 geschrieben.
Das Projekt umfasst vier Komponenten, die eigenständig oder gemeinsam betrieben werden können:
| Komponente | Schnittstelle | Zweck |
|---|
| Sparrow-WiFi | PyQt5-Desktop-GUI | WiFi/BT-Scanning, Spektrumanalyse, Quellenverfolgung, Wardriving |
| Sparrow Agent | Headless-HTTP-Server | Remote-Scanning, Drohnen-/Rover-Einsätze, Integration durch Dritte |
| Sparrow DroneID | Webbasiert (Browser) | FAA-RemoteID-Drohnenerkennung über WiFi und Bluetooth LE |
| Sparrow Elastic Bridge | Headless-CLI-Dienst | ECS-8.17-Indizierung von WiFi/BT-Beobachtungen in Elasticsearch / OpenSearch |
Der Sparrow Agent und Sparrow DroneID stellen JSON-REST-APIs bereit, die es anderen Anwendungen ermöglichen, Scan-Ergebnisse abzufragen, Scans auszulösen, Drohnenerkennungen abzurufen und Funk-/Drohnenwahrnehmung in ihre eigenen Workflows zu integrieren. Die Elastic Bridge nutzt die REST-API des Agents und überträgt ECS-8.17-Dokumente mit mitgelieferten Kibana-Dashboards.
Neuigkeiten (April 2026)
Diese Version umfasst drei wesentliche Verbesserungen gegenüber der vorherigen Version:
- Sparrow Agent: Zusammenfassung gleichzeitiger WiFi-Scans (Single-Flight). Wenn mehrere HTTP-Clients (die DroneID-App, die Elasticsearch-Bridge, die GUI) gleichzeitig
/wireless/networks/<iface> aufrufen, startete der Agent zuvor N redundante iw scan-Aufrufe, die sich am Lock pro Schnittstelle serialisierten und die Scan-Latenz mit der Anzahl der Clients vervielfachten. Die erste Anfrage ist nun der „Leader", der tatsächlich scannt; gleichzeitige Anfragen warten auf ein threading.Event und teilen sich das Ergebnis des Leaders. Enthält außerdem eine TOCTOU-Korrektur bei der Lock-Erstellung und Ausnahmesicherheit bei Locks pro Schnittstelle.
- Sparrow DroneID — neue webbasierte Anwendung zur FAA-RemoteID-Erkennung über WiFi (ASTM F3411 NAN, Beacon-Vendor-IEs, DJIs proprietäres DroneID-Protokoll) und Bluetooth LE (BT4/BT5 Legacy Advertising). Enthält Geozonen-Overlays, mehrstufige Alarme mit Slack-Integration, KML-Export, Cursor-on-Target-Ausgabe, optionale ECS-8.17-Indizierung in Elasticsearch / OpenSearch (mit einem benutzerdefinierten
droneid.*-Namespace) und eine responsive Web-UI für mehrere Geräte. Siehe den Abschnitt Sparrow DroneID unten.
- Modernisierte Elasticsearch-/OpenSearch-Bridge — die Bridge
sparrow-elastic.py wurde neu geschrieben, um ECS 8.17-Dokumente zu erzeugen (zuvor ECS 1.5), unterstützt nun sowohl Elasticsearch 8.x als auch OpenSearch 2.x, initialisiert automatisch zusammensetzbare Index-Templates mit ILM/ISM-Lifecycle-Richtlinien und Rollover-Schreib-Aliassen, führt OUI-Herstelleranreicherung und regelbasierte Geräteklassifizierung durch (mit optionalem Fingerbank-Fingerprinting) und liefert vier mitgelieferte Kibana-Dashboards sowie sechs aus der Legacy-Version erhaltene Visualisierungen. Die Legacy-ECS-1.5-Bridge bleibt unter legacy/sparrow-elastic.py erhalten. Siehe Elasticsearch / OpenSearch Integration.
Sparrow-WiFi (Desktop-GUI)
Die ursprüngliche Sparrow-Anwendung bietet einen umfassenden GUI-basierten Ersatz für Tools wie inSSIDer und LinSSID, mit Fähigkeiten, die weit über das einfache Scannen hinausgehen:
- WiFi-Scanning — Erkennung von 2,4-GHz- und 5-GHz-SSIDs, Signalstärke, Kanalauslastung
- Quellenverfolgung — Hunt-Modus mit hohen Abtastraten und Telemetriefenstern zur Lokalisierung von WiFi- und Bluetooth-Quellen
- Spektrumanalyse — Echtzeit-Spektrum-Overlays für 2,4/5 GHz über Ubertooth One oder HackRF One
- Bluetooth — BLE-Advertising-Scanning, iBeacon-Erkennung/-Advertising, Ubertooth-Promiscuous-Modus für Classic + LE
- Remote-Agent — Headless-Agent (
sparrowwifiagent.py) für verteiltes Scannen, drohnen-/rovergestützte Einsätze und Raspberry-Pi-Bereitstellungen
- GPS-Integration — gpsd, statische Koordinaten oder MAVLink (Drohnen-GPS)
- Kartierung — Google Maps / OpenStreetMap-Visualisierung der Scanergebnisse mit GPS-Tracks
- Import/Export — CSV, JSON und rohe
iw scan-Ausgabe
- Elasticsearch / OpenSearch — ECS-8.17-konforme Indexierung von WiFi- und Bluetooth-Scandaten mit ILM/ISM-Lifecycle-Management, Geräteklassifizierung, optionalem Fingerbank-Fingerprinting und mitgelieferten Kibana-Dashboards
- Falcon-Plugin — Aircrack-ng-Integration für Penetrationstests (Monitor-Modus, Erkennung versteckter SSIDs, Deauth, WEP/WPA-Capture)
Screenshots
Sparrow DroneID (Webanwendung)
Ein eigenständiges webbasiertes System zur Drohnenerkennung und -verfolgung, das die von der FAA vorgeschriebenen Remote-Identification-Übertragungen (RemoteID) dekodiert. Läuft als Python-HTTP-Server mit einer browserbasierten Benutzeroberfläche, die von jedem Gerät im Netzwerk aus erreichbar ist.
Funktionen
- WiFi-Erfassung — Dekodiert ASTM-F3411-NAN-Action-Frames, Beacon-Vendor-IEs und proprietäres DJI-DroneID
- Bluetooth-LE-Erfassung — Dekodiert ASTM-F3411-BT4/BT5-Legacy-Advertising (UUID 0xFFFA)
- Echtzeitkarte — Leaflet-basierte Karte mit Quadcopter-Symbolen, Richtungsanzeigen, Positionsmarkern der Betreiber und Linien zwischen Drohne und Betreiber
- Labels auf einen Blick — Betreiber-ID und Höhe über Grund (AGL) werden unter jedem Drohnensymbol auf der Karte angezeigt
- Detail-Popups — Klick auf eine Drohne für Seriennummer, Registrierungs-ID, Betreiber-ID, Typ, Geschwindigkeit, Richtung, Höhe, Peilung/Entfernung vom Empfänger, BVLOS-Status
- Alarmsystem — Konfigurierbare Alarme für neue Drohnen, Höhenverstöße, Geschwindigkeitsverstöße und Signalverlust mit Audiotönen, visuellen Toasts, Slack-Webhook-Benachrichtigungen und optionalen Bearer-Token-JSON-POSTs an eine generische externe Alarm-Ingest-API (siehe API-Based Alerting unten)
- Alarmbestätigung — Dreistufiger Workflow (Active/Acknowledged/Resolved) mit Betreiberidentität, gemeinsam genutzt über alle verbundenen Geräte
- Flughafen-Geozonen — Automatischer Download und Anzeige nahegelegener Flughäfen (OurAirports-Daten) und FAA-Polygone für verbotene/eingeschränkte Lufträume, lokal zwischengespeichert für den Offline-Betrieb
- GPS — gpsd-Integration oder konfigurierbare statische Koordinaten
- Verlauf & Wiedergabe — SQLite-gestützter Erkennungsverlauf mit Timeline-Wiedergabe und KML-Export
- TAK / Cursor-on-Target — UDP-Multicast/Broadcast/Unicast, TCP oder TLS zu TAK Server mit Zertifikatsregistrierung und Datenpaket-Import; Drohnen nach Disposition eingefärbt, Betreiberpunkte und -links, Empfänger-Sensorpunkt
- Multi-Device — Die Weboberfläche funktioniert gleichzeitig auf Desktop, Tablet und Smartphone
- Metrisch / Imperial — Vollständige Unterstützung von Einheitenpräferenzen in der gesamten Benutzeroberfläche und bei Alarmen
TAK / Cursor-on-Target