Sparrow-WiFi
Sparrow-WiFi est un outil de conscience spectrale WiFi et Bluetooth en 2,4 GHz et 5 GHz pour Linux. Il intègre le scan WiFi, la découverte Bluetooth Low Energy et Classic, l'analyse spectrale par radio logicielle (HackRF, Ubertooth), le suivi GPS, la détection de drones FAA RemoteID, les opérations à distance montées sur drone/rover, et l'indexation ECS 8.17 dans Elasticsearch ou OpenSearch en une seule plateforme. Écrit entièrement en Python 3.
Le projet comprend quatre composants qui fonctionnent seuls ou ensemble :
| Composant | Interface | Objectif |
|---|
| Sparrow-WiFi | Interface graphique PyQt5 | Scan WiFi/BT, analyse spectrale, suivi de source, wardriving |
| Sparrow Agent | Serveur HTTP sans tête | Scan à distance, déploiements drone/rover, intégration tierce |
| Sparrow DroneID | Basé sur navigateur | Détection de drones FAA RemoteID via WiFi et Bluetooth LE |
| Sparrow Elastic Bridge | Service CLI sans tête | Indexation ECS 8.17 des observations WiFi/BT dans Elasticsearch / OpenSearch |
Le Sparrow Agent et Sparrow DroneID exposent des API REST JSON qui permettent à d'autres applications d'interroger les résultats de scan, de déclencher des scans, de récupérer les détections de drones, et d'intégrer la conscience sans fil/drone dans leurs propres flux de travail. Le Elastic Bridge consomme l'API REST de l'agent et expédie des documents ECS 8.17 avec des tableaux de bord Kibana inclus.
Nouveautés (Avril 2026)
Cette version couvre trois améliorations significatives par rapport à la version précédente :
- Sparrow Agent : coalescence de scans WiFi en un seul vol. Lorsque plusieurs clients HTTP (l'application DroneID, le pont Elasticsearch, l'interface graphique) accèdent simultanément à
/wireless/networks/<iface>, l'agent lançait auparavant N appels iw scan redondants qui se sérialisaient sur le verrou par interface, multipliant la latence du scan par le nombre de clients. La première requête devient désormais « leader » qui effectue réellement le scan ; les requêtes concurrentes attendent sur un threading.Event et partagent le résultat du leader. Inclut également une correction TOCTOU lors de la création de verrous et une sécurité contre les exceptions sur les verrous par interface.
- Sparrow DroneID — nouvelle application web pour la détection FAA RemoteID via WiFi (ASTM F3411 NAN, IE de fournisseur de balise, protocole propriétaire DroneID de DJI) et Bluetooth LE (publicité BT4/BT5 Legacy). Inclut les superpositions de géozones, les alertes multi-états avec intégration Slack, l'export KML, la sortie Cursor-on-Target, l'indexation optionnelle ECS 8.17 vers Elasticsearch / OpenSearch (avec un espace de noms personnalisé
droneid.*), et une interface web responsive multi-appareils. Voir la section Sparrow DroneID ci-dessous.
- Pont Elasticsearch / OpenSearch modernisé — le pont
sparrow-elastic.py a été réécrit pour produire des documents ECS 8.17 (était ECS 1.5), prend désormais en charge à la fois Elasticsearch 8.x et OpenSearch 2.x, initialise automatiquement les modèles d'index composables avec des politiques de cycle de vie ILM/ISM et des alias d'écriture rollover, effectue un enrichissement des fournisseurs OUI et une classification d'appareils basée sur des règles (avec empreinte digitale optionnelle via Fingerbank), et livre quatre tableaux de bord Kibana inclus plus six visualisations héritées préservées. Le pont ECS 1.5 hérité est conservé dans legacy/sparrow-elastic.py. Voir Intégration Elasticsearch / OpenSearch.
Sparrow-WiFi (Interface graphique de bureau)
L'application originale Sparrow fournit un remplacement complet basé sur une interface graphique pour des outils comme inSSIDer et LinSSID, avec des capacités bien au-delà du scan de base :
- Scan WiFi — Découverte des SSID en 2,4 GHz et 5 GHz, intensité du signal, utilisation des canaux
- Suivi de source — Mode de chasse avec des taux d'échantillonnage élevés et des fenêtres de télémétrie pour localiser les sources WiFi et Bluetooth
- Analyse spectrale — Superpositions spectrales en temps réel en 2,4/5 GHz via Ubertooth One ou HackRF One
- Bluetooth — Scan des publicités BLE, détection/publicité iBeacon, mode promiscuité Ubertooth pour Classic + LE
- Agent à distance — Agent sans tête (
sparrowwifiagent.py) pour le scan distribué, les opérations montées sur drone/rover, et les déploiements sur Raspberry Pi
- Intégration GPS — gpsd, coordonnées statiques, ou MAVLink (GPS drone)
- Cartographie — Visualisation des résultats de scan sur Google Maps / OpenStreetMap avec traces GPS
- Import/Export — CSV, JSON, et sortie brute de
iw scan
- Elasticsearch / OpenSearch — Indexation conforme ECS 8.17 des données de scan WiFi et Bluetooth avec gestion du cycle de vie ILM/ISM, classification des appareils, empreinte digitale optionnelle Fingerbank, et tableaux de bord Kibana inclus
- Plugin Falcon — Intégration Aircrack-ng pour les tests de pénétration (mode moniteur, découverte de SSID cachés, déauthentification, capture WEP/WPA)
Captures d'écran
Sparrow DroneID (Application Web)
Un système autonome de détection et de suivi de drones basé sur le web qui décode les diffusions d'identification à distance (RemoteID) mandatées par la FAA. Fonctionne comme un serveur HTTP Python avec une interface utilisateur accessible depuis n'importe quel appareil sur le réseau.
Capacités
- Capture WiFi — Décode les trames d'action ASTM F3411 NAN, les IE de fournisseur de balise, et le DroneID propriétaire DJI
- Capture Bluetooth LE — Décode la publicité BT4/BT5 Legacy ASTM F3411 (UUID 0xFFFA)
- Carte en temps réel — Carte basée sur Leaflet avec icônes de quadcoptère, indicateurs de cap, marqueurs de position de l'opérateur, et lignes drone-opérateur
- Étiquettes en un coup d'œil — ID opérateur et altitude AGL affichés sous chaque icône de drone sur la carte
- Fenêtres contextuelles de détail — Cliquez sur un drone pour voir le numéro de série, l'ID d'enregistrement, l'ID opérateur, le type, la vitesse, le cap, l'altitude, le relèvement/distance par rapport au récepteur, le statut BVLOS
- Système d'alerte — Alertes configurables pour nouveaux drones, violations d'altitude, violations de vitesse, et perte de signal avec tonalités audio, notifications visuelles, notifications webhook Slack, et POST JSON optionnels avec jeton porteur vers une API générique d'ingestion d'alertes externe (voir Alertes basées sur API ci-dessous)
- Accusé de réception d'alerte — Workflow à trois états (Actif/Accusé/Résolu) avec identité de l'opérateur, partagé sur tous les appareils connectés
- Géozones d'aéroport — Téléchargement et affichage automatiques des aéroports à proximité (données OurAirports) et des polygones d'espace aérien interdit/restreint FAA, mis en cache localement pour fonctionnement hors ligne
- GPS — Intégration gpsd ou coordonnées statiques configurables
- Historique et relecture — Historique des détections avec base SQLite, relecture chronologique et export KML
- Cursor-on-Target (CoT) — Sortie CoT multicast pour intégration SA
- Multi-appareils — L'interface web fonctionne simultanément sur ordinateur de bureau, tablette et téléphone
- Métrique / Impérial — Support complet des préférences d'unité dans toute l'interface et les alertes