Một lập trình viên đã chia sẻ dự án cá nhân có tên ShadowBroker, một bảng điều khiển OSINT (Open Source Intelligence) thời gian thực có khả năng tổng hợp nhiều nguồn dữ liệu toàn cầu như máy bay, tàu biển, vệ tinh và dữ liệu xung đột trên cùng một bản đồ.
Dự án được giới thiệu trên cộng đồng công nghệ Hacker News và nhanh chóng thu hút sự chú ý của giới lập trình.
Theo tác giả, ý tưởng ra đời vì anh cảm thấy bất tiện khi phải liên tục chuyển qua lại giữa các dịch vụ như:
Mỗi khi có sự kiện lớn trên thế giới, việc theo dõi tình hình thường đòi hỏi mở nhiều trang khác nhau. Vì vậy anh quyết định xây dựng một dashboard duy nhất để hiển thị tất cả dữ liệu này trên một bản đồ trực tiếp.
Dự án được đặt tên là ShadowBroker.
ShadowBroker tổng hợp nhiều nguồn dữ liệu OSINT phổ biến, bao gồm:
Ngoài việc hiển thị vị trí, hệ thống còn có các lớp phân tích dữ liệu nâng cao.
Lớp này phân tích dữ liệu bay để tính toán các khu vực có thể đang xảy ra gây nhiễu GPS.
Cách hoạt động:
Phần khó nhất của dự án không phải là thu thập dữ liệu mà là hiển thị dữ liệu trên trình duyệt.
Ban đầu, khi đổ hơn 30.000 đối tượng GeoJSON động lên bản đồ, trình duyệt gần như bị treo hoàn toàn.
Tác giả phải áp dụng nhiều kỹ thuật tối ưu:
│ │
│ ┌─────────────┐ ┌──────────┐ ┌───────────────┐ │
│ │ MapLibre GL │ │ NewsFeed │ │ Control Panels│ │
│ │ 2D WebGL │ │ SIGINT │ │ Layers/Filters│ │
│ │ Map Render │ │ Intel │ │ Markets/Radio │ │
│ └──────┬──────┘ └────┬─────┘ └───────┬───────┘ │
│ └────────────────┼──────────────────┘ │
│ │ REST API (15s / 60s) │
├──────────────────────────┼─────────────────────────────┤
│ BACKEND (FastAPI) │
│ │ │
│ ┌───────────────────────┼──────────────────────────┐ │
│ │ Data Fetcher (Scheduler) │ │
│ │ │ │
│ │ ┌──────────┬──────────┬──────────┬───────────┐ │ │
│ │ │ OpenSky │ adsb.lol │ N2YO │ USGS │ │ │
│ │ │ Flights │ Military │ Sats │ Quakes │ │ │
│ │ ├──────────┼──────────┼──────────┼───────────┤ │ │
│ │ │ AIS WS │ Carrier │ GDELT │ CCTV │ │ │
│ │ │ Ships │ Tracker │ Conflict │ Cameras │ │ │
│ │ ├──────────┼──────────┼──────────┼───────────┤ │ │
│ │ │ DeepState│ RSS │ Region │ GPS │ │ │
│ │ │ Frontline│ Intel │ Dossier │ Jamming │ │ │
│ │ └──────────┴──────────┴──────────┴───────────┘ │ │
│ └──────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────┘
ShadowBroker được xây dựng bằng stack:
Frontend
Backend
Dữ liệu được stream trực tiếp từ backend đến frontend mỗi 60 giây để giữ chuyển động mượt.
Tác giả cho biết trong tương lai có thể nâng cấp kiến trúc bằng các công nghệ bản đồ như:
Tuy nhiên, đối với dữ liệu thời gian thực, việc dùng vector tile cache có thể gây khó khăn vì:
Một số người dùng thử dự án gặp lỗi:
Tác giả đã cập nhật repository để cải thiện hướng dẫn cài đặt.
Theo tác giả:
Tất cả dữ liệu đều lấy từ các nguồn OSINT miễn phí.
Tuy nhiên người dùng vẫn có thể:
Một số bình luận trên Hacker News cũng nhấn mạnh sự khác biệt giữa các dashboard OSINT cá nhân và hệ thống giám sát thật.
Một cựu kỹ sư từng làm việc cho hệ thống Maritime Domain Awareness của Hải quân Mỹ cho biết:
Một người dùng còn đùa rằng:
Tuy vậy, ShadowBroker vẫn được đánh giá cao vì:
github.com
Dự án được giới thiệu trên cộng đồng công nghệ Hacker News và nhanh chóng thu hút sự chú ý của giới lập trình.
Ý tưởng: gom mọi nguồn dữ liệu theo dõi toàn cầu vào một nơi
Theo tác giả, ý tưởng ra đời vì anh cảm thấy bất tiện khi phải liên tục chuyển qua lại giữa các dịch vụ như:
- Flightradar (theo dõi máy bay)
- MarineTraffic (theo dõi tàu biển)
- Twitter/X (tin tức sự kiện)
- Các nguồn dữ liệu vệ tinh
Mỗi khi có sự kiện lớn trên thế giới, việc theo dõi tình hình thường đòi hỏi mở nhiều trang khác nhau. Vì vậy anh quyết định xây dựng một dashboard duy nhất để hiển thị tất cả dữ liệu này trên một bản đồ trực tiếp.
Dự án được đặt tên là ShadowBroker.
Hệ thống dữ liệu theo dõi thời gian thực
ShadowBroker tổng hợp nhiều nguồn dữ liệu OSINT phổ biến, bao gồm:
- ADS-B: dữ liệu máy bay dân sự và quân sự
- AIS WebSocket stream: dữ liệu vị trí của hơn 25.000 tàu biển
- N2YO: telemetry của vệ tinh
- GDELT: dữ liệu sự kiện toàn cầu
Ngoài việc hiển thị vị trí, hệ thống còn có các lớp phân tích dữ liệu nâng cao.
Tính năng đặc biệt: phát hiện vùng gây nhiễu GPS
Một trong những tính năng thú vị nhất của ShadowBroker là signal layer.Lớp này phân tích dữ liệu bay để tính toán các khu vực có thể đang xảy ra gây nhiễu GPS.
Cách hoạt động:
- Hệ thống phân tích chỉ số NAC-P (Navigation Accuracy Category for Position)
- Khi nhiều máy bay cùng báo hiệu suy giảm độ chính xác định vị
- Dashboard sẽ suy luận khu vực đó có thể đang xảy ra GPS jamming
Thách thức kỹ thuật: hiển thị 30.000 đối tượng trên bản đồ
Phần khó nhất của dự án không phải là thu thập dữ liệu mà là hiển thị dữ liệu trên trình duyệt.
Ban đầu, khi đổ hơn 30.000 đối tượng GeoJSON động lên bản đồ, trình duyệt gần như bị treo hoàn toàn.
Tác giả phải áp dụng nhiều kỹ thuật tối ưu:
- Viewport culling
chỉ render đối tượng nằm trong vùng bản đồ đang xem - Debounce state updates
giảm tần suất cập nhật dữ liệu - Nén dữ liệu FastAPI
giảm payload API khoảng 90%
- CPU Intel i5
- GPU RTX 3050
Công nghệ sử dụng
FRONTEND (Next.js) ││ │
│ ┌─────────────┐ ┌──────────┐ ┌───────────────┐ │
│ │ MapLibre GL │ │ NewsFeed │ │ Control Panels│ │
│ │ 2D WebGL │ │ SIGINT │ │ Layers/Filters│ │
│ │ Map Render │ │ Intel │ │ Markets/Radio │ │
│ └──────┬──────┘ └────┬─────┘ └───────┬───────┘ │
│ └────────────────┼──────────────────┘ │
│ │ REST API (15s / 60s) │
├──────────────────────────┼─────────────────────────────┤
│ BACKEND (FastAPI) │
│ │ │
│ ┌───────────────────────┼──────────────────────────┐ │
│ │ Data Fetcher (Scheduler) │ │
│ │ │ │
│ │ ┌──────────┬──────────┬──────────┬───────────┐ │ │
│ │ │ OpenSky │ adsb.lol │ N2YO │ USGS │ │ │
│ │ │ Flights │ Military │ Sats │ Quakes │ │ │
│ │ ├──────────┼──────────┼──────────┼───────────┤ │ │
│ │ │ AIS WS │ Carrier │ GDELT │ CCTV │ │ │
│ │ │ Ships │ Tracker │ Conflict │ Cameras │ │ │
│ │ ├──────────┼──────────┼──────────┼───────────┤ │ │
│ │ │ DeepState│ RSS │ Region │ GPS │ │ │
│ │ │ Frontline│ Intel │ Dossier │ Jamming │ │ │
│ │ └──────────┴──────────┴──────────┴───────────┘ │ │
│ └──────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────┘
ShadowBroker được xây dựng bằng stack:
Frontend
- Next.js
Backend
- Python
- FastAPI
- MapLibre
Dữ liệu được stream trực tiếp từ backend đến frontend mỗi 60 giây để giữ chuyển động mượt.
Khả năng mở rộng trong tương lai
Tác giả cho biết trong tương lai có thể nâng cấp kiến trúc bằng các công nghệ bản đồ như:
- PMTiles
- Martin (vector tile server)
Tuy nhiên, đối với dữ liệu thời gian thực, việc dùng vector tile cache có thể gây khó khăn vì:
- các đối tượng luôn di chuyển
- cache phải bị invalid liên tục
Các vấn đề ban đầu khi thử nghiệm
Một số người dùng thử dự án gặp lỗi:
- bản đồ không hiển thị dữ liệu
- thiếu API key
- lỗi dependency Python
- thiếu các khóa API như
- AISSTREAM_API_KEY
- N2YO_API_KEY
Tác giả đã cập nhật repository để cải thiện hướng dẫn cài đặt.
Vận hành miễn phí !
Một điểm thú vị là dự án không tốn chi phí API.Theo tác giả:
“Its all free baby lol”
Tất cả dữ liệu đều lấy từ các nguồn OSINT miễn phí.
Có thể chạy trên server không?
Dự án hiện chủ yếu được thiết kế để chạy local trên máy cá nhân.Tuy nhiên người dùng vẫn có thể:
- deploy lên VPS
- chạy bằng Docker
- dùng Cloudflare Tunnel hoặc Ngrok để chia sẻ cho người khác xem
Tranh luận: dự án cá nhân vs hệ thống Dashboard OSINT chuyên nghiệp thực tế.
Một số bình luận trên Hacker News cũng nhấn mạnh sự khác biệt giữa các dashboard OSINT cá nhân và hệ thống giám sát thật.
Một cựu kỹ sư từng làm việc cho hệ thống Maritime Domain Awareness của Hải quân Mỹ cho biết:
- hệ thống thật cần hàng nghìn lập trình viên
- mất hơn 10 năm phát triển
- phải xây dựng mạng lưới cảm biến toàn cầu
Xu hướng dashboard OSINT
Theo nhiều bình luận trên mạng xã hội , thời gian gần đây xuất hiện rất nhiều dashboard OSINT tương tự.Một người dùng còn đùa rằng:
“Tôi cần một dashboard OSINT để theo dõi các dashboard OSINT.”
Tuy vậy, ShadowBroker vẫn được đánh giá cao vì:
- giao diện trực quan
- khả năng tổng hợp nhiều nguồn dữ liệu
- tối ưu hóa tốt cho dữ liệu thời gian thực
GitHub - BigBodyCobain/Shadowbroker: Open-source intelligence for the global theater. Track everything from the corporate/private jets of the wealthy, and spy satellites, to seismic events in one unified interface. The knowledge is available to all b
Open-source intelligence for the global theater. Track everything from the corporate/private jets of the wealthy, and spy satellites, to seismic events in one unified interface. The knowledge is av...
BÀI MỚI ĐANG THẢO LUẬN