ShadowBroker – OSINT-Dashboard mit Integration von 15 Echtzeit-Datenfeeds weltweit
(github.com/BigBodyCobain)- Verschiedene Echtzeitdaten wie Flugzeuge, Schiffe, Satelliten, Erdbeben, Konflikte, CCTV und GPS-Störungen werden in einer einzigen geoinformationsbasierten Oberfläche zusammengeführt
- Erstellt mit Next.js, MapLibre GL, FastAPI und Python, sodass Analysten und Forschende globale Aktivitäten auf einem einzigen Bildschirm visualisieren können
- Bietet detaillierte Tracking-Funktionen in sechs Hauptbereichen: Luftfahrt, Seefahrt, Weltraum, Geopolitik, Überwachung und Signalaufklärung; jede Ebene lässt sich einzeln steuern
- Dank einfacher Bereitstellung auf Basis von Docker/Podman und automatisierter API-Integration sind Self-Hosting und die Einrichtung der Entwicklungsumgebung unkompliziert
- Alle Daten werden aus öffentlichen OSINT-Quellen gesammelt, und es wird ausdrücklich darauf hingewiesen, dass die Nutzung nur zu Bildungs- und Forschungszwecken zulässig ist
Überblick
- ShadowBroker ist ein domänenübergreifendes Dashboard für Open-Source-Informationen in Echtzeit (Real-Time OSINT), das Dutzende öffentliche Datenfeeds integriert und in einer einzigen Dark-Map-Oberfläche anzeigt
- Verfolgt in Echtzeit Flugzeuge, Schiffe, Satelliten, Erdbeben, Konfliktgebiete, CCTV-Netzwerke, GPS-Störungen und geopolitische Ereignisse
- Es basiert auf Next.js, MapLibre GL, FastAPI und Python und wurde als Visualisierungstool für Analysten, Forschende und OSINT-Enthusiasten entwickelt
Wichtige Anwendungsfälle
- Verfolgung von Privatjets von Milliardären
- Überwachung von Satellitenüberflügen
- Beobachtung des weltweiten Seeverkehrs
- Erkennung von GPS-Störgebieten
- Echtzeitbeobachtung von Erdbeben und Katastrophen
Funktionsübersicht
🛩️ Flugverfolgung (Aviation Tracking)
- Echtzeit-Positionsanzeige von mehr als etwa 5.000 Verkehrsflugzeugen über das OpenSky Network
- Separate Klassifizierung von Privat- und Militärflugzeugen sowie Verfolgung von Business Jets mit Eigentümerinformationen
- Unterstützt Detailfunktionen wie Akkumulation von Flugrouten, Erkennung von Warteschleifen und Anzeige des Bodenstatus
- Stellt präzise SVG-Symbole für verschiedene Flugzeugtypen bereit
🚢 Schiffsverfolgung (Maritime Tracking)
- Echtzeitdaten von mehr als 25.000 Schiffen über aisstream.io WebSocket
- Farbkodierung nach Schiffstyp (Frachtschiffe, Tanker, Passagierschiffe, Kriegsschiffe usw.)
- OSINT-basierte Positionsschätzung für 11 Flugzeugträger der US Navy und automatisiertes GDELT-News-Scraping
- Unterstützt eigene Layer für Kreuzfahrt- und Passagierschiffe sowie Cluster-Anzeige je nach Zoomstufe
🛰️ Weltraum & Satelliten (Space & Satellites)
- Echtzeit-Orbitalanzeige von mehr als 2.000 Satelliten auf Basis von CelesTrak TLE + SGP4
- Farbkodierung nach Missionstyp: militärische Aufklärung (rot), SAR (türkis), SIGINT (weiß), Navigation (blau), Frühwarnung (magenta), kommerzielle Bildgebung (grün), Raumstationen (gold)
🌍 Geopolitik & Konflikte (Geopolitics & Conflict)
- Erfasst auf Basis von GDELT rund 1.000 Konfliktereignisse aus den letzten 8 Stunden
- Echtzeitdaten zur Front in der Ukraine aus der DeepState Map
- Bietet SIGINT/RISINT-Newsfeeds und ein regionales Informationspanel
- Einschließlich Bevölkerung, Hauptstadt, Sprache, Währung und Fläche eines Landes, Regierungsform, Staatsoberhaupt-Informationen (Wikidata) und Wikipedia-Zusammenfassung
📷 Überwachung (Surveillance)
- Integration von mehr als 2.000 Verkehrs-CCTV-Livestreams
- darunter London (TfL), Austin (TxDOT), New York (NYC DOT) und Singapur (LTA)
- Unterstützt automatische Feed-Erkennung und Rendering sowie zoomabhängige Cluster-Anzeige
📡 Signalaufklärung (Signal Intelligence)
- Erkennung von GPS-Störungen: Visualisierung von Störgebieten durch Analyse von NAC-P-Werten bei Flugzeugen
- Funkabhör-Panel: bietet eine UI im Stil einer Funküberwachung
🌐 Zusätzliche Layer
- Enthält USGS-Erdbebendaten (24 Stunden), Anzeige der Tag-Nacht-Grenze, Echtzeit-Finanzmarktindizes und Werkzeuge zur Distanz- und Richtungsmessung
Systemarchitektur
- Frontend (Next.js): 2D-WebGL-Karte auf Basis von MapLibre GL, SIGINT-Newsfeed, Kontrollpanel, Markt- und Funkmodule
- Backend (FastAPI): periodische Erfassung aus zahlreichen Datenquellen (OpenSky, adsb.lol, CelesTrak, USGS, GDELT, CCTV usw.)
- Über eine REST API werden die Daten im Abstand von 60 bis 120 Sekunden an das Frontend übermittelt
Datenquellen und APIs
| Quelle | Daten | Aktualisierungsintervall | API-Schlüssel |
|---|---|---|---|
| OpenSky Network | Verkehrs- und Privatflugzeuge | ca. 60 Sekunden | optional |
| adsb.lol | Militärflugzeuge | ca. 60 Sekunden | nicht erforderlich |
| aisstream.io | Schiffspositionen | in Echtzeit | erforderlich |
| CelesTrak | Satellitenbahnen | ca. 60 Sekunden | nicht erforderlich |
| USGS | Erdbeben | ca. 60 Sekunden | nicht erforderlich |
| GDELT | Konfliktereignisse | ca. 6 Stunden | nicht erforderlich |
| DeepState Map | Ukraine-Front | ca. 30 Minuten | nicht erforderlich |
| TfL, TxDOT, NYC DOT, LTA | Verkehrs-CCTV | ca. 5 Minuten | teilweise erforderlich |
| RestCountries, Wikidata, Wikipedia | Länder- und Karteninformationen | auf Anfrage | nicht erforderlich |
Installation und Ausführung
Auf Basis von Docker/Podman
- Nach
git cloneautomatische Ausführung mit dem Befehl./compose.sh up -d - Standardports: Frontend
3000, Backend8000 - Ports können über die Umgebungsvariable
NEXT_PUBLIC_API_URLneu gesetzt werden
Entwicklungsumgebung für Codeänderungen
- Erforderlich sind Node.js 18+ und Python 3.10~3.12
- API-Schlüssel für
aisstream.ioist Pflicht, Schlüssel fürOpenSkyundLTAsind optional - Gleichzeitiger Start von Frontend und Backend mit
npm run dev
Steuerung der Daten-Layer
- Alle Layer lassen sich einzeln umschalten, darunter Flugzeuge, Satelliten, Schiffe, Erdbeben, CCTV, Konflikte und GPS-Störungen
- Standardmäßig aktiviert: Verkehrs- und Militärflugzeuge, Satelliten, Flugzeugträger, Erdbeben, Konflikte, GPS-Störungen und Tag-Nacht-Grenze
Performance-Optimierung
- Effiziente Verarbeitung großer Echtzeit-Datenmengen durch Gzip-Komprimierung (92 %), ETag-Caching, Viewport-Culling, Cluster-Rendering und reduzierte Koordinatenpräzision (5 Nachkommastellen)
- Minimierte Rendering-Last durch React.memo und Debounce (300 ms)
Umgebungsvariablen
- Erforderlich:
AIS_API_KEY - Optional:
OPENSKY_CLIENT_ID,OPENSKY_CLIENT_SECRET,LTA_ACCOUNT_KEY
Haftungsausschluss und Lizenz
- Alle Daten basieren auf öffentlichen OSINT-Quellen, ohne Nutzung nicht öffentlicher oder vertraulicher Informationen
- Verbot der Nutzung für militärische oder nachrichtendienstliche Zwecke, beschränkt auf Bildungs- und Forschungszwecke
- Die Nutzungsbedingungen der jeweiligen API-Anbieter müssen eingehalten werden
Projektstruktur
- backend/: FastAPI-App, Scheduler für Datenerfassung, Verarbeitung von CCTV-, Flugzeugträger- und Konfliktdaten
- frontend/: auf Next.js basierende Komponenten für Karte, Panels, Filter, News, Märkte und Funk
- Enthält automatische Deployment-Skripte wie docker-compose.yml und compose.sh
Zusammenfassung
- ShadowBroker ist eine Open-Source-Plattform zur integrierten Visualisierung weltweiter OSINT-Echtzeitdaten
- Ermöglicht die Analyse mehrerer Bereiche wie Luftfahrt, Seefahrt, Weltraum, Geopolitik, Überwachung und Signale auf einer einzigen Karte
- Bietet einfache Bereitstellung auf Docker-Basis, leistungsstarkes Rendering und ausschließliche Nutzung öffentlicher Daten
- Ein nützliches Echtzeit-Intelligence-Tool für Sicherheits- und Informationsanalyse-Forschende sowie Data Engineers in Startups
5 Kommentare
ShadowBroker! Das hat mich nach langer Zeit wieder an Mass Effect 2 erinnert. https://masseffect.fandom.com/wiki/Shadow_Broker_(enemy)
Ich musste bei den Hacker-News-Kommentaren laut lachen.
„Im ersten Commit wurden
./frontend/.env.localund./backend/.envin der ZIP-Datei offengelegt.“„Deshalb heißt es OSINT (Open Source Intelligence). Alles ist öffentlich.“
Ich habe es heruntergeladen, und es ist tatsächlich da.
Haha, das ist schon ein bisschen lustig. :D
Hacker-News-Kommentare
Ich frage mich, ob es wirklich sinnvoll ist, sich auf diese Weise übermäßig vieler Daten bewusst zu sein, bei denen man ohnehin nichts unternehmen kann, oder ob das am Ende nur zu Stress und einem geringeren Gefühl von Selbstwirksamkeit führt
Es war ein wirklich spannendes und fesselndes Projekt, einige GeoJSONs für Live-Tiles zu optimieren
Würde mich interessieren, ob du diese Projekte schon gesehen hast → PMTiles, Martin
Dadurch bekommen wir auf der Karte Bewegungen, die fast auf dem Niveau einer 60-fps-Animation liegen
Wenn wir später Luftfahrt- und AIS-Daten auf PostGIS-Basis archivieren, wäre ein Wechsel zu Martin wahrscheinlich sinnvoll, aber wegen des Echtzeit-Ziels müssten wir den Tile-Cache ständig invalidieren, daher wäre das im Moment übertrieben
Ich habe das früher für ein Landwirtschaftsprojekt eingerichtet und gute Erfahrungen damit gemacht
Dieses Projekt sieht monitor-the-situation.com ähnlich
Die Beschreibung „ShadowBroker is a real-time, full-spectrum geospatial intelligence dashboard“ wirkt etwas übertrieben
Eine Formulierung wie „Air and Space domain awareness“ wäre vermutlich treffender
Geospatial intelligence meint normalerweise informationsgewinnende Arbeit auf Basis von Satellitenbildern, und „spectrum“ bezieht sich oft auf das Lichtspektrum
Im ersten Commit waren in
ShadowBroker_v0.1.zip./frontend/.env.localund./backend/.envgeleaktTolles Projekt. Es erinnert mich an diesen Link
Ich muss es noch fertigstellen, habe aber bisher keine Zeit dafür
Tolle Datenaggregation. Es wäre aber gut, dem Feed-Workflow ein Staleness-Signal hinzuzufügen
Einige Quellen (vor allem Threat-Feeds) werden nicht alle paar Sekunden, sondern nur alle paar Stunden aktualisiert. Wenn man für jede Quelle den Zeitpunkt des letzten Updates anzeigen würde, ließe sich die Aktualität der Daten besser einschätzen
Wirklich großartig. Danke fürs Teilen.
Mich würde interessieren, wie hoch die API-Kosten wären, wenn man das einen Monat lang täglich ein paar Stunden laufen ließe. Ich würde gern wissen, ob das in einem bezahlbaren Rahmen bleibt
Sehr cooles Projekt. Das Konzept, die Feeds und das gesamte Design erinnern allerdings stark an worldmonitor.app
Zur Einordnung: Das ist ebenfalls bereits als Live-Service deployed