ShadowBroker: quando l’intelligence globale diventa open source

Immaginate di avere sotto gli occhi, su un’unica mappa, tutto quello che si muove nel mondo. Aerei commerciali e militari, navi mercantili e portaerei, satelliti spia e stazioni spaziali, terremoti in tempo reale, telecamere di sorveglianza, scanner della polizia, zone di jamming GPS e persino i jet privati dei miliardari. Non è fantascienza, né un tool della CIA. È ShadowBroker, ed è completamente open source.

Il progetto aggrega più di 60 feed di intelligence pubblici — sì, pubblici — in un’unica interfaccia geospaziale. La premessa è semplice: una quantità sorprendente di dati globali è già disponibile a tutti. Trasmissioni ADS-B degli aerei, segnali AIS delle navi, dati orbitali dei satelliti, sensori sismici, reti radio mesh, feed di scanner della polizia, telemetria delle infrastrutture internet. Il problema? Sono sparsi in decine di API e tool diversi. ShadowBroker li mette tutti sulla stessa mappa. In tempo reale.

Più di una dashboard: un’intelligence platform decentralizzata

La versione 0.9.7 — quella attuale — non è solo un visualizzatore. È diventata una piattaforma di intelligence decentralizzata con tre livelli sovrapposti: l’interfaccia operatore (Next.js + MapLibre), il backend di servizio (FastAPI + Python), e InfoNet, il layer decentralizzato sperimentale.

InfoNet è la parte più interessante. Non è solo una chat obfuscata — anche se c’è pure quella — ma una vera economia di governance decentralizzata. Petizioni firmate, voto su upgrade del protocollo (richiede supermajoranza 80%, quorum 40%), mercati di risoluzione con stake, dispute con evidenze vincolate, e un sistema di ‘gate persona’ basato su chiavi Ed25519. Zero account, zero signup. Pseudonimato tramite gate, ma le azioni di governance sono pubbliche per design.

Attenzione però: è un testnet sperimentale. I messaggi sono obfuscati, non cifrati end-to-end. Le trasmissioni radio Meshtastic e APRS sono pubbliche per natura. Le Dead Drop DM sono il canale più forte al momento, ma non c’è ancora garanzia di privacy. Gli sviluppatori sono chiari: ‘Non trasmettete nulla di sensibile su nessun canale. Trattate tutto come aperto e pubblico per ora’. La crittografia E2E e le primitive di privacy (ring signatures, stealth addresses, Pedersen commitments) sono in roadmap, ma non ancora cablate.

Un agente AI può pilotare l’intera piattaforma

La v0.9.7 introduce un canale di comando agente AI bidirezionale. In pratica: collegate un agente AI compatibile — OpenClaw è il reference, ma funziona con Claude, GPT, LangChain, o qualsiasi client custom — e quello può vedere tutto quello che vedete voi. E può agire sulla mappa.

L’agente interroga tutti i 35+ layer di dati, piazza pin di intelligence colorati sulla mappa dell’operatore, muove la vista verso coordinate specifiche, apre dossier regionali, monitora anomalie di cambio terreno via SAR, partecipa alla mesh InfoNet, e — novità di questa versione — può presentare petizioni, votare su cambiamenti di governance, scommettere su risoluzioni e dispute. Tutto via HMAC-SHA256 firmato, con controllo tier-gated e protezione replay via timestamp + nonce.

Il backend espone POST /api/ai/channel/command per singole chiamate, e POST /api/ai/channel/batch per fino a 20 comandi concorrenti in una richiesta. Taglia la latenza di un ordine di grandezza rispetto alle chiamate sequenziali. L’agente diventa un analista a pieno titolo che può scrivere, non solo leggere.

SAR: vedere attraverso le nuvole

Il rilevamento di cambiamenti al suolo via SAR (Synthetic Aperture Radar) è una delle aggiunte più potenti. Due modalità: Modalità A è gratuita, nessun account richiesto, mostra metadati delle scene Sentinel-1 da Alaska Satellite Facility. Modalità B — anomalie complete in tempo reale — tira da NASA OPERA (DISP, DSWx, DIST-ALERT) e Copernicus EGMS. Serve un account NASA Earthdata gratuito, ma il wizard in-app vi guida in meno di un minuto.

Cosa rileva? Deformazione del terreno (subsidenza millimetrica, frane), cambiamenti di superficie idrica (estensione alluvioni), disturbo vegetazione (deforestazione, cicatrici da incendio, crateri da esplosione), valutazioni danni (UNOSAT / Copernicus EMS verificati), e rilevamento cambio coerenza. Pin colorati sulla mappa: arancione per deformazione, ciano per acqua, verde per vegetazione, rosso per danni, viola per coerenza. Cliccate un pin per popup dettagliato con magnitudine, confidenza, solver, conteggio scene, e link di provenienza.

Potete definire aree di interesse (AOI) direttamente dalla mappa. Click sul bottone ‘EDIT AOIs’ quando il layer SAR è attivo, poi usate il tool a mirino per cliccare e rilasciare un centro AOI sulla mappa. Nome, raggio (1–500 km), categoria. Le AOI appaiono immediatamente. E l’agente AI può ispezionare i dettagli delle anomalie SAR e spostare la mappa su qualsiasi centro AOI — workflow di analisi collaborativo.

Tracciare Air Force One e i jet dei miliardari

Uno dei casi d’uso più popolari: tracciare Air Force One e tutti i velivoli presidenziali/vicepresidenziali dal momento in cui lasciano il suolo. O i jet privati di miliardari e dittatori. Ogni tanker militare, ISR, e fighter che trasmette ADS-B. La piattaforma evidenzia e monitora automaticamente.

La copertura voli richiede ora credenziali OpenSky OAuth2. Senza, il layer voli ricade su copertura solo ADS-B con gap significativi in Africa, Asia e America Latina. La registrazione è gratuita, e la piattaforma lancia un warning critico all’avvio se le credenziali mancano. Gli sviluppatori sono stati chiari: è diventato un requisito ambientale critico.

11.000+ telecamere CCTV in streaming

Layer CCTV mesh: 11.000+ telecamere live da 13 sorgenti in 6 paesi. Londra, NYC, California, Spagna, Singapore. Transport for London JamCams, NYC DOT, TxDOT Austin, 12 distretti Caltrans, Washington State WSDOT, Georgia DOT, Illinois DOT, Michigan DOT, DGT nazionale Spagna (20 città), Madrid City (357 telecamere via KML), Singapore LTA, webcam Windy.

Rendering automatico di feed video, MJPEG, HLS, embed, tile satellitari, e immagini. Dot verdi sulla mappa che si raggruppano con etichette di conteggio a zoom basso, si separano con lo zoom in. Click e guardate il feed. Così, senza fronzoli.

Carrier Strike Group Tracker: dove sono le portaerei USA?

Tutte le 11 portaerei attive della US Navy con posizioni stimate via OSINT. Nessun altro tool aperto fa questo. Scraping automatico di notizie GDELT che analizza report di movimento delle portaerei per stimare posizioni. Oltre 50 mappature regione-geografica-a-coordinate (es. ‘Mediterraneo Orientale’ → lat/lng). Posizioni in cache su disco, auto-refresh alle 00:00 e 12:00 UTC.

Poi AIS stream: 25.000+ navi via WebSocket aisstream.io in tempo reale. Classificazione navi: cargo, tanker, passeggeri, yacht, vessel militari con icone color-coded. Display raggruppato: le navi si raggruppano a zoom basso con etichette di conteggio, si separano con zoom-in. Layer dedicato per navi da crociera e traghetti. Attività di pesca via Global Fishing Watch.

Time Machine: riavvolgere il feed telemetrico

Novità v0.9.7: un transport in stile media player per l’intero feed telemetrico. Trattate la mappa live come una registrazione che può essere scrubbed, messa in pausa, e rigiocata.

Toggle Live ↔ Snapshot: passare a modalità snapshot mette in pausa il loop di polling globale istantaneamente; tornare a Live invalida gli ETag e forza il refresh sia dei tier veloci che lenti così la dashboard si aggiorna senza sfarfallio di frame stantii. Indice orario: ogni snapshot catturato è indicizzato per il suo bucket orario con conteggio, latest_id, latest_ts, e la lista completa snapshot_ids. Saltate a qualsiasi timestamp catturato direttamente dalla timeline scrubber.

Interpolazione frame: entità in movimento (aerei, navi, satelliti, voli militari) interpolano fluidamente tra frame registrati durante il playback così il movimento resta continuo anche quando gli snapshot sono sparsi. Velocità di playback variabile: step, play, fast-forward, e rewind attraverso telemetria salvata a velocità regolabile. Profile-aware: ogni snapshot registra il profilo privacy che era attivo quando è stato catturato, così il playback è fedele a quello che un operatore su quel profilo avrebbe visto. Lato operatore, non lato server: gli snapshot sono memorizzati localmente nel backend; nessuna terza parte vede mai la timeline di playback.

GPS jamming in tempo reale

Zone di jamming GPS derivate da analisi di degradazione NAC-P (Navigation Accuracy Category) dei dati transponder degli aerei. Aggregazione basata su griglia identifica zone di interferenza. Quadrati overlay rossi con etichette di severità ‘GPS JAM XX%’. Quando vedete un aereo che trasmette degradazione di accuratezza, sapete che c’è qualcuno che sta disturbando il segnale GPS in quella zona. Israele, Ucraina, Mar Baltico — zone calde solite.

KiwiSDR e scanner della polizia

500+ ricevitori SDR pubblici plottati in tutto il mondo con marker amber raggruppati. Click su un nodo KiwiSDR per aprire un tuner SDR embedded direttamente nel pannello SIGINT. Nome nodo, posizione, tipo antenna, bande frequenza, utenti attivi. Sintonizzatevi su onde corte live direttamente dalla dashboard.

Pannello Radio Intercept: UI stile scanner con feed scanner polizia/vigili del fuoco OpenMHZ. Click su qualsiasi sistema per ascoltare live. Modalità scansione cicla automaticamente attraverso feed attivi. Eavesdrop-by-click su comunicazioni emergenza reali. Integrazione Meshtastic via MQTT con mappa nodi, integrata in Mesh Chat. Integrazione APRS via feed TCP APRS-IS.

Sentinel-2 on-demand e 5 modalità visive

Click destro ovunque sulla Terra per una briefing intelligence istantanea: profilo paese (popolazione, capitale, lingue, valute, area), capo di stato attuale e tipo di governo (query SPARQL Wikidata live), sommario Wikipedia locale con thumbnail, ultima foto satellitare Sentinel-2 con data di cattura e copertura nuvole (risoluzione 10m). Le foto Sentinel-2 vengono aggiornate ogni ~5 giorni.

Overlay NASA GIBS (MODIS Terra): immagini satellitari daily true-color con slider temporale 30 giorni, animazione play/pause, e controllo opacità (~250m/pixel). High-Res Satellite (Esri): immagini a risoluzione sub-metro via Esri World Imagery — zoomate su edifici e dettaglio terreno (zoom 18+). Sentinel Hub Process API: immagini satellitari Copernicus CDSE con flusso token OAuth2. VIIRS Nightlights: overlay rilevamento cambio luci notturne.

5 modalità visive — toggle l’intera estetica mappa via bottone STYLE: DEFAULT (basemap scura CARTO), SATELLITE (Esri World Imagery sub-metro), FLIR (estetica imaging termico, scala grigi invertita), NVG (fosforo verde night vision), CRT (overlay scanline terminale retro). Perché no?

Architettura e performance

ShadowBroker v0.9.7 è composto da tre piani sovrapposti verticalmente: Operator UI (Next.js + MapLibre), Backend Service Plane (FastAPI + Python scheduler APScheduler con tier veloci/lenti), e Decentralized Layer (InfoNet). Più due bridge cross-cutting: Time Machine e Agentic AI Channel (il protocollo attraverso cui OpenClaw e qualsiasi altro agente compatibile si connette). E un crate Rust Privacy Core che fa da backstop sia per la mesh legacy che per il lavoro futuro shielded coin / DEX.

Performance: compressione Gzip (payload API compressi ~92%: 11.6 MB → 915 KB), caching ETag (risposte 304 Not Modified saltano parsing JSON ridondante), culling viewport (solo feature dentro i confini mappa visibili + buffer 20% vengono renderizzate), aggiornamenti imperativi mappa (layer ad alto volume come voli, satelliti, fuochi bypassano riconciliazione React via chiamate setData() dirette), rendering raggruppato (navi, CCTV, terremoti, data center usano clustering MapLibre per ridurre conteggio feature), aggiornamenti viewport debounced (300ms debounce previene thrash ricostruzione GeoJSON durante pan/zoom; 2s debounce su layer densi come satelliti, fuochi), interpolazione posizione (animazione tick 10s fluida tra refresh dati), React.memo (componenti pesanti wrappati per prevenire re-render non necessari), precisione coordinate (lat/lng arrotondati a 5 decimali ~1m per ridurre dimensione JSON).

Deploy Docker in 3 comandi

Il repo include un docker-compose.yml che tira immagini pre-costruite da GitHub Container Registry. Niente build locale, niente attese.

git clone https://github.com/BigBodyCobain/Shadowbroker.git
cd Shadowbroker
docker compose pull
docker compose up -d

Aprite http://localhost:3000 e vedete la dashboard. Richiede Docker Desktop o Docker Engine. La porta backend 8000 è pubblicata sull’host solo per diagnostica API locale. Se un’altra app usa già 8000, create o editate .env accanto a docker-compose.yml e settate BACKEND_PORT=8001, poi docker compose up -d.

Utenti Podman: Podman funziona, ma podman compose è un wrapper e serve ancora un provider Compose installato. Su Windows/WSL, se vedete ‘looking up compose provider failed’, installate podman-compose e girate podman-compose pull seguito da podman-compose up -d dall’interno della cartella Shadowbroker clonata. Su shell Linux/macOS/WSL potete anche usare ./compose.sh –engine podman pull e ./compose.sh –engine podman up -d.

Schermo bianco dopo diversi minuti su layer news/UAP/basi/wastewater? Controllate restart OOM backend con docker events –since 30m –filter container=shadowbroker-backend –filter event=oom. Il file compose di default dà al backend 4GB; se il vostro host ha meno memoria, riducete i feed abilitati o settate BACKEND_MEMORY_LIMIT=3G e aspettatevi layer più lenti/pesanti che si scaldano più gradualmente.

Deploy standalone (Portainer, Uncloud, NAS)

Non serve clonare il repo. Usate le immagini pre-costruite da GitHub Container Registry. Create un docker-compose.yml con il contenuto dal README e deployatelo direttamente — incollatelo nell’editor stack di Portainer, uncloud deploy, o qualsiasi host Docker. BACKEND_URL è una variabile di ambiente runtime plain (non NEXT_PUBLIC_* build-time), quindi potete cambiarla in Portainer, Uncloud, o qualsiasi editor compose senza rebuild dell’immagine. Settatela all’indirizzo dove il vostro backend è raggiungibile da dentro la rete Docker (es. http://backend:8000, http://192.168.1.50:8000).

Sorgenti dati: 60+ feed pubblici

OpenSky Network (voli commerciali e privati, ~60s, ora richiede API key per copertura globale). adsb.lol (aerei militari, ~60s, no key). aisstream.io (posizioni vessel AIS, WebSocket real-time, richiede key). CelesTrak (posizioni orbitali satelliti TLE + SGP4, ~60s, no key). USGS Earthquake (eventi sismici globali, ~60s, no key). GDELT Project (eventi conflitto globali, ~6h, no key). DeepState Map (frontline Ucraina, ~30min, no key). Shodan (ricerca dispositivi connessi internet, on-demand, richiede key). Amtrak (posizioni treni US, ~60s, no key). DigiTraffic (posizioni rail europee, ~60s, no key). Global Fishing Watch (eventi vessel pesca, ~10min, no key). Transport for London, NYC DOT, TxDOT, Caltrans, WSDOT, GDOT, IDOT, MDOT (telecamere CCTV UK, US, ~10min, no key). Spain DGT, Madrid City (telecamere CCTV Spagna, ~10min, no key). Singapore LTA (telecamere traffico Singapore, ~10min, richiede key). Windy Webcams (webcam globali, ~10min, no key). SatNOGS (stazioni ground satellite amatoriali, ~30min, no key). TinyGS (stazioni ground satellite LoRa, ~30min, no key). Meshtastic MQTT (posizioni nodi radio mesh, real-time, no key). APRS-IS (posizioni radio amatoriali, TCP real-time, no key). KiwiSDR (posizioni ricevitori SDR pubblici, ~30min, no key). OpenMHZ (feed scanner polizia/vigili del fuoco, real-time, no key). Smithsonian GVP (vulcani Olocene worldwide, static cached, no key). OpenAQ (stazioni qualità aria PM2.5, ~120s, no key). NOAA / NWS (avvisi meteo severo e poligoni, ~120s, no key). WRI Global Power Plant DB (35.000+ centrali elettriche, static cached, no key). Dataset basi militari (installazioni militari globali, static cached, no key). NASA FIRMS (hotspot fuoco/termici NOAA-20 VIIRS, ~120s, no key). NOAA SWPC (indice Kp space weather e eventi solari, ~120s, no key). IODA Georgia Tech (avvisi outage internet regionali, ~120s, no key). DC Map GitHub (posizioni data center globali, static cached 7d, no key). NASA GIBS (immagini satellitari MODIS Terra daily, daily 24-48h delay, no key). Esri World Imagery (basemap satellite high-res, static periodically updated, no key). MS Planetary Computer (scene Sentinel-2 L2A right-click, on-demand, no key). Copernicus CDSE (immagini Sentinel Hub Process API, on-demand, richiede key gratuita). VIIRS Nightlights (rilevamento cambio luci notturne, static, no key). RestCountries (dati profilo paese, on-demand cached 24h, no key). Wikidata SPARQL (dati capo di stato, on-demand cached 24h, no key). Wikipedia API (sommari posizione e immagini aerei, on-demand cached, no key). OSM Nominatim (geocoding nomi luoghi barra LOCATE, on-demand, no key). CARTO Basemaps (tile mappa scure, continuous, no key).

Totale layer toggleabili: 37. Tutti indipendentemente attivabili/disattivabili dal pannello sinistro.

Il punto

ShadowBroker non introduce nuove capacità di sorveglianza — aggrega e visualizza dataset pubblici esistenti. È completamente open source così chiunque può auditare esattamente quali dati vengono accessi e come. Nessun dato utente viene raccolto o trasmesso — tutto gira localmente contro un backend self-hosted. Nessuna telemetria, nessuna analytics, nessun account.

La governance decentralizzata Sovereign Shell è ambiziosa: petizioni firmate, voto su hash di upgrade (supermajoranza 80%, quorum 40%, attivazione Heavy-Node 67%), mercati di risoluzione e dispute con stake, sospensione/shutdown gate con appeal, bootstrap eligible-node-one-vote (i primi 100 mercati si risolvono via un-voto-per-nodo-eligible invece di risoluzione pesata per stake; eleggibilità: età identità ≥ 3 giorni, non in set esclusione predictor, Argon2id PoW valido Heavy-Node-only), transizione a risoluzione staked a 1000 nodi. Due-tier state + epoch finality. Eventi Tier 1 propagano stile CRDT per bassa latenza; eventi Tier 2 richiedono finality epoch prima di poter essere agiti. Rotazione identità, penalità progressive, milestone ramp, e invarianti costituzionali enforced via MappingProxyType. Polling adattivo: le view Sovereign Shell polllano ogni 8 secondi durante fasi attive di voto/challenge/attivazione, ogni 30–60 secondi quando idle. Il voto sembra live senza layer websocket. Diagnostiche verbatim: ogni bottone di scrittura mostra la ragione di rifiuto verbatim del backend. Nessun toast ‘denied’ opaco.

Le primitive di privacy — Function Keys (proof cittadinanza anonima: un cittadino prova ‘Sono un cittadino Infonet’ senza rivelare la loro identità Infonet; 5 di 6 pezzi shippati: nullifiers, challenge-response, ricevute commit a due fasi, codici denial enumerati, settlement batched; issuance via blind signatures aspetta decisione primitiva RSA blind sigs vs BBS+ vs U-Prove vs Idemix), Locked Protocol Contracts (interfacce stabili in services/infonet/privacy/contracts.py per ring signatures, stealth addresses, Pedersen commitments, range proofs, e DEX matching; il crate Rust privacy-core è il target di integrazione — nessun caller del modulo privacy deve sapere quale schema è attivo), Sprint 11+ Path (quando lo schema crittografico viene scelto, le primitive si cablano nei Protocols locked senza churn API) — sono scaffolded ma non ancora cablate. Ripeto: testnet sperimentale, nessuna garanzia di privacy. Non mandate nulla di sensibile.

Ma l’ambizione è chiara. E il codice è tutto lì, su GitHub. 35+ layer dati toggleabili, agente AI che può pilotare l’intera piattaforma, governance decentralizzata, Time Machine per playback telemetrico, SAR ground-change detection attraverso copertura nuvole, 11.000+ telecamere live, tracciamento portaerei via scraping GDELT, GPS jamming real-time, KiwiSDR e scanner polizia embedded, Sentinel-2 on-demand a 10m, 5 modalità visive. Deploy Docker in 3 comandi. Gira su Raspberry Pi 5. Multi-arch: linux/amd64 + linux/arm64.

Il mondo produce segnali. ShadowBroker li mette tutti sulla stessa mappa. Quello che ci fate dopo, è affar vostro.