Sparrow-WiFi
Sparrow-WiFi é uma ferramenta de consciência espectral WiFi de 2,4 GHz e 5 GHz e Bluetooth para Linux. Integra varredura WiFi, descoberta Bluetooth Low Energy e Classic, análise de espectro por rádio definido por software (HackRF, Ubertooth), rastreamento GPS, detecção de drones FAA RemoteID, operações remotas montadas em drone/rover e indexação ECS 8.17 no Elasticsearch ou OpenSearch numa única plataforma. Escrita inteiramente em Python 3.
O projeto inclui quatro componentes que funcionam de forma autónoma ou em conjunto:
| Componente | Interface | Finalidade |
|---|
| Sparrow-WiFi | GUI de ambiente de trabalho PyQt5 | Varredura WiFi/BT, análise de espectro, rastreamento de fontes, wardriving |
| Sparrow Agent | Servidor HTTP headless | Varredura remota, implementações em drone/rover, integração de terceiros |
| Sparrow DroneID | Baseado na web (navegador) | Deteção de drones FAA RemoteID via WiFi e Bluetooth LE |
| Sparrow Elastic Bridge | Serviço CLI headless | Indexação ECS 8.17 de observações WiFi/BT no Elasticsearch / OpenSearch |
O Sparrow Agent e o Sparrow DroneID expõem APIs REST JSON que permitem a outras aplicações consultar resultados de varredura, acionar varreduras, obter deteções de drones e integrar a consciência de redes sem fios/drones nos seus próprios fluxos de trabalho. O Elastic Bridge consome a API REST do agente e envia documentos ECS 8.17 com dashboards Kibana incluídos.
Novidades (Abril de 2026)
Esta versão abrange três melhorias significativas em relação à versão anterior:
- Sparrow Agent: coalescência de varredura WiFi single-flight. Quando vários clientes HTTP (a aplicação DroneID, a bridge Elasticsearch, a GUI) acedem simultaneamente a
/wireless/networks/<iface>, o agente anteriormente iniciava N chamadas iw scan redundantes que se serializavam no bloqueio por interface, multiplicando a latência da varredura pelo número de clientes. O primeiro pedido é agora o "líder" que efetivamente realiza a varredura; os pedidos concorrentes aguardam num threading.Event e partilham o resultado do líder. Inclui também a correção TOCTOU na criação de bloqueios e segurança contra exceções nos bloqueios por interface.
- Sparrow DroneID — nova aplicação baseada na web para deteção FAA RemoteID via WiFi (ASTM F3411 NAN, IEs de fornecedor em beacons, protocolo DroneID proprietário da DJI) e Bluetooth LE (publicidade Legacy BT4/BT5). Inclui sobreposições de geozonas, alertas multi-estado com integração Slack, exportação KML, saída Cursor-on-Target, indexação ECS 8.17 opcional para Elasticsearch / OpenSearch (com um namespace personalizado
droneid.*) e uma UI web responsiva multi-dispositivo. Consulte a secção Sparrow DroneID abaixo.
- Bridge Elasticsearch / OpenSearch modernizada — a bridge
sparrow-elastic.py foi reescrita para produzir documentos ECS 8.17 (anteriormente ECS 1.5), agora suporta tanto Elasticsearch 8.x como OpenSearch 2.x, inicializa automaticamente templates de índice composáveis com políticas de ciclo de vida ILM/ISM e aliases de escrita rollover, realiza enriquecimento de fornecedor OUI e classificação de dispositivos baseada em regras (com fingerprinting Fingerbank opcional), e inclui quatro dashboards Kibana incluídos mais seis visualizações preservadas do legado. A bridge ECS 1.5 legada está preservada em legacy/sparrow-elastic.py. Consulte Integração Elasticsearch / OpenSearch.
Sparrow-WiFi (GUI de Ambiente de Trabalho)
A aplicação Sparrow original fornece uma substituição abrangente baseada em GUI para ferramentas como inSSIDer e LinSSID, com capacidades muito além da varredura básica:
- Varredura WiFi — descoberta de SSIDs em 2,4 GHz e 5 GHz, intensidade do sinal, utilização do canal
- Rastreamento de fontes — modo Hunt com altas taxas de amostragem e janelas de telemetria para localizar fontes WiFi e Bluetooth
- Análise de espectro — sobreposições espectrais em tempo real de 2,4/5 GHz via Ubertooth One ou HackRF One
- Bluetooth — varredura de anúncios BLE, detecção/anúncio de iBeacon, modo promíscuo do Ubertooth para classic + LE
- Agente remoto — agente headless (
sparrowwifiagent.py) para varredura distribuída, operações montadas em drone/rover e implantações em Raspberry Pi
- Integração GPS — gpsd, coordenadas estáticas ou MAVLink (GPS de drone)
- Mapeamento — visualização dos resultados de varredura no Google Maps / OpenStreetMap com trilhas GPS
- Importação/Exportação — CSV, JSON e saída bruta de
iw scan
- Elasticsearch / OpenSearch — indexação compatível com ECS 8.17 de dados de varredura WiFi e Bluetooth com gerenciamento de ciclo de vida ILM/ISM, classificação de dispositivos, fingerprinting opcional via Fingerbank e dashboards Kibana incluídos
- Plugin Falcon — integração com Aircrack-ng para testes de penetração (modo monitor, descoberta de SSID oculto, deauth, captura WEP/WPA)
Capturas de tela
Sparrow DroneID (Aplicação Web)
Um sistema autônomo baseado na web para detecção e rastreamento de drones que decodifica transmissões de Identificação Remota (RemoteID) exigidas pela FAA. Executa como um servidor HTTP em Python com uma interface baseada em navegador acessível a partir de qualquer dispositivo na rede.
Capacidades
- Captura WiFi — decodifica quadros de ação NAN ASTM F3411, IEs de fornecedor em beacons e DroneID proprietário da DJI
- Captura Bluetooth LE — decodifica anúncios Legacy BT4/BT5 ASTM F3411 (UUID 0xFFFA)
- Mapa em tempo real — mapa baseado em Leaflet com ícones de quadricóptero, indicadores de direção, marcadores de posição do operador e linhas drone-operador
- Rótulos de relance — ID do operador e altitude AGL exibidos sob cada ícone de drone no mapa
- Popups de detalhes — clique em um drone para ver número de série, ID de registro, ID do operador, tipo, velocidade, direção, altitude, rumo/distância a partir do receptor, status BVLOS
- Sistema de alertas — alertas configuráveis para novos drones, violações de altitude, violações de velocidade e perda de sinal com tons de áudio, toasts visuais, notificações via webhook do Slack e POSTs JSON opcionais com bearer-token para uma API genérica externa de ingestão de alertas (consulte Alertas Baseados em API abaixo)
- Confirmação de alertas — fluxo de trabalho de três estados (Ativo/Confirmado/Resolvido) com identidade do operador, compartilhado entre todos os dispositivos conectados
- Geozonas de aeroportos — download e exibição automáticos de aeroportos próximos (dados do OurAirports) e polígonos de espaço aéreo Proibido/Restrito da FAA, armazenados em cache localmente para operação offline
- GPS — integração com gpsd ou coordenadas estáticas configuráveis
- Histórico e reprodução — histórico de detecções armazenado em SQLite com reprodução de linha do tempo e exportação KML
- TAK / Cursor-on-Target — multicast/broadcast/unicast UDP, TCP ou TLS para TAK Server com registro de certificados e importação de pacote de dados; drones coloridos por disposição, pontos de operador e links, ponto de sensor do receptor
- Multi-dispositivo — a interface web funciona simultaneamente em desktop, tablet e telefone
- Métrico / Imperial — suporte completo a preferências de unidades em toda a interface e nos alertas