ShadowBroker - panel OSINT que integra 15 fuentes de datos en tiempo real de todo el mundo
(github.com/BigBodyCobain)- Integra diversos datos en tiempo real como aeronaves, barcos, satélites, terremotos, conflictos, CCTV e interferencias GPS en una sola interfaz basada en información geográfica
- Construido con Next.js, MapLibre GL, FastAPI y Python, permite que analistas e investigadores visualicen la actividad global en una sola pantalla
- Ofrece funciones detalladas de seguimiento en 6 áreas principales: aviación, marítimo, espacio, geopolítica, vigilancia e inteligencia de señales, y cada capa puede controlarse por separado
- Con despliegue sencillo basado en Docker/Podman y automatización de integración de API, facilita el self-hosting y la configuración del entorno de desarrollo
- Indica explícitamente que todos los datos se recopilan de fuentes OSINT públicas y que solo pueden usarse con fines educativos y de investigación
Descripción general
- ShadowBroker es un panel de inteligencia de fuentes abiertas en tiempo real (Real-Time OSINT) de múltiples dominios, que integra decenas de fuentes de datos públicas y las muestra en una única interfaz de mapa oscuro
- Permite rastrear en tiempo real aeronaves, barcos, satélites, terremotos, zonas de conflicto, redes de CCTV, interferencias GPS y eventos geopolíticos
- Está desarrollado con Next.js, MapLibre GL, FastAPI y Python, y fue diseñado como una herramienta de visualización para analistas, investigadores y entusiastas de OSINT
Casos de uso principales
- Seguimiento de jets privados de multimillonarios
- Monitoreo de pasos orbitales de satélites
- Vigilancia del tráfico marítimo global
- Detección de zonas con interferencia GPS
- Observación en tiempo real de terremotos y desastres
Resumen de funciones
🛩️ Seguimiento aéreo (Aviation Tracking)
- Muestra la ubicación en tiempo real de más de 5,000 aeronaves comerciales a través de OpenSky Network
- Clasifica por separado aeronaves privadas y militares y rastrea jets ejecutivos con información de sus propietarios
- Incluye funciones como acumulación de trayectorias de vuelo, detección de patrones de espera y estado en tierra
- Proporciona íconos SVG precisos según el tipo de aeronave
🚢 Seguimiento marítimo (Maritime Tracking)
- Datos en tiempo real de unas 25,000 embarcaciones mediante aisstream.io WebSocket
- Diferenciación por color según el tipo de barco (carga, petrolero, pasajeros, buque de guerra, etc.)
- Estimación basada en OSINT de la ubicación de 11 portaaviones de la Marina de EE. UU. y automatización del scraping de noticias de GDELT
- Soporta capa dedicada para cruceros y ferris y visualización agrupada según el nivel de zoom
🛰️ Espacio y satélites (Space & Satellites)
- Visualiza en tiempo real la órbita de más de 2,000 satélites con base en CelesTrak TLE + SGP4
- Diferenciación por color según el tipo de misión: reconocimiento militar (rojo), SAR (cian), SIGINT (blanco), navegación (azul), alerta temprana (magenta), imágenes comerciales (verde), estación espacial (dorado)
🌍 Geopolítica y conflictos (Geopolitics & Conflict)
- Agrupa alrededor de 1,000 incidentes de conflicto ocurridos en las últimas 8 horas con base en GDELT
- Datos en tiempo real del frente en Ucrania desde DeepState Map
- Ofrece feeds de noticias SIGINT/RISINT y panel de información regional
- Incluye población, capital, idioma, moneda, superficie, tipo de gobierno e información del jefe de Estado (Wikidata), además de resúmenes de Wikipedia
📷 Vigilancia (Surveillance)
- Integra transmisiones en tiempo real de más de 2,000 cámaras de tráfico CCTV
- Incluye Londres (TfL), Austin (TxDOT), Nueva York (NYC DOT) y Singapur (LTA), entre otros
- Soporta detección y renderizado automático de feeds y agrupación según el zoom
📡 Inteligencia de señales (Signal Intelligence)
- Detección de interferencias GPS: visualiza zonas de interferencia mediante el análisis de valores NAC-P de aeronaves
- Panel de interceptación de radio: ofrece una interfaz tipo escucha de comunicaciones
🌐 Capas adicionales
- Incluye datos sísmicos de USGS (24 horas), línea divisoria entre día y noche, índices de mercados financieros en tiempo real y herramienta de medición de distancia y rumbo
Arquitectura del sistema
- Frontend (Next.js): mapa WebGL 2D basado en MapLibre GL, feed de noticias SIGINT, panel de control y módulos de mercado y radio
- Backend (FastAPI): recopilación periódica desde múltiples fuentes de datos (OpenSky, adsb.lol, CelesTrak, USGS, GDELT, CCTV, etc.)
- Entrega los datos al frontend mediante API REST en intervalos de 60 a 120 segundos
Fuentes de datos y API
| Fuente | Datos | Frecuencia de actualización | API key |
|---|---|---|---|
| OpenSky Network | Aeronaves comerciales y privadas | ~60 segundos | Opcional |
| adsb.lol | Aeronaves militares | ~60 segundos | No requerida |
| aisstream.io | Posición de embarcaciones | Tiempo real | Requerida |
| CelesTrak | Órbitas satelitales | ~60 segundos | No requerida |
| USGS | Terremotos | ~60 segundos | No requerida |
| GDELT | Incidentes de conflicto | ~6 horas | No requerida |
| DeepState Map | Frente de Ucrania | ~30 minutos | No requerida |
| TfL, TxDOT, NYC DOT, LTA | CCTV de tráfico | ~5 minutos | Algunas requeridas |
| RestCountries, Wikidata, Wikipedia | Información de países y mapas | Bajo demanda | No requerida |
Instalación y ejecución
Basado en Docker/Podman
- Tras hacer
git clone, se ejecuta automáticamente con el comando./compose.sh up -d - Puertos predeterminados: frontend
3000, backend8000 - Es posible reajustar los puertos con la variable de entorno
NEXT_PUBLIC_API_URL
Entorno de desarrollo para modificar código
- Requiere Node.js 18+ y Python 3.10~3.12
- La API key de
aisstream.ioes obligatoria; las deOpenSkyyLTAson opcionales npm run devejecuta frontend y backend al mismo tiempo
Control de capas de datos
- Todas las capas, como aeronaves, satélites, barcos, terremotos, CCTV, conflictos e interferencias GPS, pueden activarse o desactivarse individualmente
- Activadas por defecto: aeronaves comerciales y militares, satélites, portaaviones, terremotos, conflictos, interferencias GPS y línea día/noche
Optimización de rendimiento
- Procesamiento eficiente de grandes volúmenes de datos en tiempo real mediante compresión Gzip (92%), caché ETag, viewport culling, renderizado por clústeres y reducción de precisión de coordenadas (5 decimales)
- Minimiza la carga de renderizado con React.memo y debounce (300 ms)
Variables de entorno
- Obligatoria:
AIS_API_KEY - Opcionales:
OPENSKY_CLIENT_ID,OPENSKY_CLIENT_SECRET,LTA_ACCOUNT_KEY
Descargo de responsabilidad y licencia
- Todos los datos se basan en fuentes OSINT públicas y no se usa información privada ni confidencial
- Prohibido el uso con fines militares o de inteligencia, limitado a fines educativos y de investigación
- Es necesario cumplir los términos de uso de cada proveedor de API
Estructura del proyecto
- backend/: app FastAPI, programador de recolección de datos y procesamiento de datos de CCTV, portaaviones y conflictos
- frontend/: componentes de mapa, paneles, filtros, noticias, mercado y radio basados en Next.js
- Incluye scripts de despliegue automático como docker-compose.yml y compose.sh
Resumen
- ShadowBroker es una plataforma open source que integra y visualiza datos OSINT globales en tiempo real
- Permite analizar en un solo mapa múltiples dominios como aviación, marítimo, espacio, geopolítica, vigilancia y señales
- Ofrece despliegue sencillo con Docker, renderizado de alto rendimiento y uso exclusivo de datos públicos
- Es una herramienta de inteligencia en tiempo real útil para investigadores de seguridad e inteligencia y data engineers de startups
5 comentarios
¡Shadow Broker! Después de mucho tiempo, me hizo recordar Mass Effect 2. https://masseffect.fandom.com/wiki/Shadow_Broker_(enemy)
Viendo los comentarios de Hacker News, me estallé de risa.
"En el primer commit se habían filtrado
./frontend/.env.localy./backend/.envdentro del archivo zip""Por eso se llama OSINT (Open Source Intelligence). Todo está abierto"
Lo descargué y sí, de verdad existe.
jaja, ah, esto sí que da un poco de risa jajaja
Comentarios en Hacker News
Me pregunto si es deseable tener esta conciencia excesiva de datos sobre los que en realidad no se puede tomar ninguna acción, o si solo es un camino hacia el estrés y una menor autoeficacia
Optimizar parte del geojson como tiles en tiempo real fue un proyecto realmente divertido e inmersivo
Me pregunto si has visto estos proyectos → PMTiles, Martin
Por eso estoy logrando un movimiento en el mapa casi tan fluido como una animación a 60fps
Más adelante, si archivo datos de aviación y AIS con base en PostGIS, tendría sentido migrar a Martin, pero por ahora sería una opción excesiva porque, al tratarse de objetivos en tiempo real, habría que invalidar constantemente la caché de tiles
Lo configuré antes para un proyecto agrícola y me funcionó muy bien
Este proyecto se parece a monitor-the-situation.com
La descripción “ShadowBroker is a real-time, full-spectrum geospatial intelligence dashboard” suena un poco exagerada
Creo que algo como “Air and Space domain awareness” sería más preciso
Geospatial intelligence normalmente se refiere a recopilación de información basada en imágenes satelitales, y “spectrum” muchas veces alude al espectro de la luz
En el primer commit se habían filtrado
./frontend/.env.localy./backend/.envdentro deShadowBroker_v0.1.zipQué buen proyecto. Me recordó a este enlace
Tengo que terminarlo, pero todavía no tengo tiempo
Muy buena agregación de datos. Aun así, estaría bien añadir una señal de staleness al pipeline de feeds
Algunas fuentes (sobre todo los feeds de amenazas) no se actualizan cada pocos segundos sino cada varias horas, así que mostrar la hora de la última actualización de cada fuente ayudaría a evaluar la frescura de los datos
Está realmente genial. Gracias por compartirlo.
Me da curiosidad cuánto saldría de costo de API si se ejecuta unas cuantas horas al día durante aproximadamente un mes. Quisiera saber si sigue siendo manejable
Es un proyecto muy bueno. Pero el concepto, los feeds y el diseño en general recuerdan mucho a worldmonitor.app
Como referencia, ellos también ya lo tienen desplegado como servicio en vivo