ShadowBroker - Bảng điều khiển OSINT tích hợp 15 luồng dữ liệu thời gian thực trên toàn cầu
(github.com/BigBodyCobain)- Tích hợp nhiều loại dữ liệu thời gian thực như máy bay, tàu thuyền, vệ tinh, động đất, xung đột, CCTV, gây nhiễu GPS vào một giao diện dựa trên thông tin địa lý duy nhất
- Được xây dựng bằng Next.js, MapLibre GL, FastAPI, Python, cho phép nhà phân tích và nhà nghiên cứu trực quan hóa hoạt động trên quy mô toàn cầu trên một màn hình duy nhất
- Cung cấp các tính năng theo dõi chi tiết trong 6 lĩnh vực chính gồm hàng không, hàng hải, không gian, địa chính trị, giám sát, tình báo tín hiệu, và có thể điều khiển từng lớp riêng lẻ
- Triển khai dễ dàng dựa trên Docker/Podman và tự động hóa tích hợp API, giúp đơn giản hóa việc tự host và thiết lập môi trường phát triển
- Nêu rõ rằng toàn bộ dữ liệu được thu thập từ nguồn OSINT công khai và chỉ được phép dùng cho mục đích giáo dục và nghiên cứu
Tổng quan
- ShadowBroker là bảng điều khiển thông tin nguồn mở thời gian thực đa miền (Real-Time OSINT), tích hợp hàng chục luồng dữ liệu công khai và hiển thị chúng trên một giao diện bản đồ tối duy nhất
- Theo dõi theo thời gian thực máy bay, tàu thuyền, vệ tinh, động đất, khu vực xung đột, mạng CCTV, gây nhiễu GPS, các sự kiện địa chính trị, v.v.
- Được cấu thành từ Next.js, MapLibre GL, FastAPI, Python, và được thiết kế như một công cụ trực quan hóa dành cho nhà phân tích, nhà nghiên cứu và người yêu thích OSINT
Các trường hợp sử dụng chính
- Theo dõi máy bay riêng của giới tỷ phú
- Giám sát lượt bay qua quỹ đạo của vệ tinh
- Theo dõi giao thông hàng hải toàn cầu
- Phát hiện khu vực bị gây nhiễu GPS
- Quan sát theo thời gian thực động đất và thảm họa
Tóm tắt tính năng
🛩️ Theo dõi hàng không (Aviation Tracking)
- Hiển thị vị trí thời gian thực của hơn khoảng 5.000 máy bay thương mại thông qua OpenSky Network
- Phân loại riêng máy bay tư nhân và quân sự và theo dõi phi cơ thương gia kèm thông tin chủ sở hữu
- Hỗ trợ các tính năng chi tiết như tích lũy quỹ đạo bay, phát hiện vòng lượn, hiển thị trạng thái mặt đất
- Cung cấp biểu tượng SVG chính xác theo từng loại máy bay
🚢 Theo dõi hàng hải (Maritime Tracking)
- Dữ liệu thời gian thực của hơn 25.000 tàu thuyền qua aisstream.io WebSocket
- Phân màu theo loại tàu (tàu hàng, tàu chở dầu, tàu khách, tàu chiến, v.v.)
- Ước tính vị trí dựa trên OSINT của 11 tàu sân bay Hải quân Mỹ và tự động hóa scraping tin tức GDELT
- Hỗ trợ lớp riêng cho tàu du lịch và tàu khách, hiển thị cụm theo mức zoom
🛰️ Không gian & vệ tinh (Space & Satellites)
- Hiển thị quỹ đạo thời gian thực của hơn 2.000 vệ tinh dựa trên CelesTrak TLE + SGP4
- Phân màu theo loại nhiệm vụ: trinh sát quân sự (đỏ), SAR (xanh ngọc), SIGINT (trắng), dẫn đường (xanh dương), cảnh báo sớm (hồng tím), ảnh thương mại (xanh lá), trạm vũ trụ (vàng kim)
🌍 Địa chính trị & xung đột (Geopolitics & Conflict)
- Tổng hợp khoảng 1.000 sự kiện xung đột trong vòng 8 giờ gần nhất dựa trên GDELT
- Dữ liệu thời gian thực về tiền tuyến Ukraine từ DeepState Map
- Cung cấp luồng tin tức SIGINT/RISINT và bảng thông tin khu vực
- Bao gồm dân số, thủ đô, ngôn ngữ, tiền tệ, diện tích, hình thức chính phủ, thông tin nguyên thủ quốc gia (Wikidata), tóm tắt Wikipedia
📷 Giám sát (Surveillance)
- Tích hợp luồng trực tiếp từ hơn 2.000 camera CCTV giao thông
- London (TfL), Austin (TxDOT), New York (NYC DOT), Singapore (LTA), v.v.
- Hỗ trợ tự động phát hiện và render luồng, hiển thị cụm theo mức zoom
📡 Tình báo tín hiệu (Signal Intelligence)
- Phát hiện gây nhiễu GPS: trực quan hóa khu vực bị can nhiễu bằng cách phân tích giá trị NAC-P của máy bay
- Bảng chặn thu vô tuyến: cung cấp UI kiểu nghe lén liên lạc vô tuyến
🌐 Các lớp bổ sung
- Bao gồm dữ liệu động đất USGS (24 giờ), hiển thị ranh giới ngày/đêm, chỉ số thị trường tài chính thời gian thực, công cụ đo khoảng cách/phương vị
Kiến trúc hệ thống
- Frontend (Next.js): bản đồ WebGL 2D dựa trên MapLibre GL, luồng tin SIGINT, bảng điều khiển, mô-đun thị trường và radio
- Backend (FastAPI): thu thập định kỳ từ nhiều nguồn dữ liệu (OpenSky, adsb.lol, CelesTrak, USGS, GDELT, CCTV, v.v.)
- Truyền dữ liệu tới frontend qua REST API theo chu kỳ 60~120 giây
Nguồn dữ liệu và API
| Nguồn | Dữ liệu | Chu kỳ cập nhật | API key |
|---|---|---|---|
| OpenSky Network | Máy bay thương mại/cá nhân | khoảng 60 giây | Tùy chọn |
| adsb.lol | Máy bay quân sự | khoảng 60 giây | Không cần |
| aisstream.io | Vị trí tàu thuyền | Thời gian thực | Bắt buộc |
| CelesTrak | Quỹ đạo vệ tinh | khoảng 60 giây | Không cần |
| USGS | Động đất | khoảng 60 giây | Không cần |
| GDELT | Sự kiện xung đột | khoảng 6 giờ | Không cần |
| DeepState Map | Tiền tuyến Ukraine | khoảng 30 phút | Không cần |
| TfL, TxDOT, NYC DOT, LTA | CCTV giao thông | khoảng 5 phút | Một phần bắt buộc |
| RestCountries, Wikidata, Wikipedia | Thông tin quốc gia/bản đồ | Khi có yêu cầu | Không cần |
Cài đặt và chạy
Dựa trên Docker/Podman
- Sau
git clone, chạy tự động bằng lệnh./compose.sh up -d - Cổng mặc định: frontend
3000, backend8000 - Có thể đặt lại cổng qua biến môi trường
NEXT_PUBLIC_API_URL
Môi trường phát triển để chỉnh sửa mã
- Cần Node.js 18+, Python 3.10~3.12
- Bắt buộc có API key
aisstream.io, keyOpenSky,LTAlà tùy chọn - Chạy đồng thời frontend và backend bằng
npm run dev
Điều khiển lớp dữ liệu
- Có thể bật/tắt riêng tất cả các lớp như máy bay, vệ tinh, tàu thuyền, động đất, CCTV, xung đột, gây nhiễu GPS, v.v.
- Mặc định bật: máy bay thương mại/quân sự, vệ tinh, tàu sân bay, động đất, xung đột, gây nhiễu GPS, ranh giới ngày/đêm
Tối ưu hiệu năng
- Tối ưu xử lý dữ liệu thời gian thực quy mô lớn bằng nén Gzip (92%), ETag caching, viewport culling, cluster rendering, giảm độ chính xác tọa độ (5 chữ số thập phân)
- Giảm tải render tối đa nhờ áp dụng React.memo và debounce (300ms)
Biến môi trường
- Bắt buộc:
AIS_API_KEY - Tùy chọn:
OPENSKY_CLIENT_ID,OPENSKY_CLIENT_SECRET,LTA_ACCOUNT_KEY
Miễn trừ trách nhiệm và giấy phép
- Toàn bộ dữ liệu đều dựa trên nguồn OSINT công khai, không sử dụng thông tin riêng tư hoặc mật
- Cấm sử dụng cho mục đích quân sự hoặc tình báo, chỉ giới hạn cho giáo dục và nghiên cứu
- Cần tuân thủ điều khoản sử dụng của từng nhà cung cấp API
Cấu trúc dự án
- backend/: ứng dụng FastAPI, scheduler thu thập dữ liệu, xử lý dữ liệu CCTV/tàu sân bay/xung đột
- frontend/: các thành phần bản đồ, bảng điều khiển, bộ lọc, tin tức, thị trường, radio dựa trên Next.js
- Bao gồm script triển khai tự động như docker-compose.yml, compose.sh
Tóm tắt
- ShadowBroker là nền tảng mã nguồn mở trực quan hóa tích hợp dữ liệu OSINT thời gian thực toàn cầu
- Có thể phân tích nhiều lĩnh vực như hàng không, hàng hải, không gian, địa chính trị, giám sát, tín hiệu trên một bản đồ duy nhất
- Triển khai dễ dàng bằng Docker, render hiệu năng cao, chỉ sử dụng dữ liệu công khai
- Là công cụ tình báo thời gian thực hữu ích cho nhà nghiên cứu phân tích an ninh/thông tin và kỹ sư dữ liệu tại startup
5 bình luận
Shadow Broker! Lâu rồi mới lại nhớ đến Mass Effect 2. https://masseffect.fandom.com/wiki/Shadow_Broker_(enemy)
Đọc bình luận trên Hacker News mà cười xỉu luôn.
"Trong commit đầu tiên,
./frontend/.env.localvà./backend/.envbên trong file zip đã bị lộ""Vì thế nên nó mới có tên là OSINT (Open Source Intelligence). Mọi thứ đều được công khai"
Tải về thử thì đúng là có thật.
Haha, cái này hơi buồn cười thật đấy haha
Ý kiến trên Hacker News
Tò mò không biết việc nhận thức quá mức về dữ liệu như thế này, trong khi thực tế không thể thực hiện bất kỳ hành động nào, có thực sự đáng mong muốn hay chỉ là con đường dẫn tới căng thẳng và suy giảm cảm giác hiệu quả bản thân
Việc tối ưu một số geojson thành tile thời gian thực đúng là một dự án rất thú vị và cuốn hút
Không biết bạn đã xem những dự án này chưa → PMTiles, Martin
Nhờ vậy, trên bản đồ có được chuyển động mượt gần như ở mức animation 60fps
Sau này nếu lưu trữ dữ liệu hàng không và AIS dựa trên PostGIS thì chuyển sang Martin sẽ hợp lý hơn, nhưng vì mục tiêu thời gian thực nên hiện tại sẽ phải liên tục vô hiệu hóa tile cache, thành ra là lựa chọn hơi quá mức
Trước đây tôi đã thiết lập nó cho một dự án nông nghiệp và dùng rất ổn
Dự án này trông giống monitor-the-situation.com
Mô tả “ShadowBroker is a real-time, full-spectrum geospatial intelligence dashboard” có vẻ hơi cường điệu
Có lẽ cách diễn đạt như “Air and Space domain awareness” sẽ chính xác hơn
Geospatial intelligence thường mang nghĩa thu thập thông tin dựa trên ảnh vệ tinh, còn “spectrum” trong nhiều trường hợp lại chỉ phổ ánh sáng
Trong
ShadowBroker_v0.1.zipcủa commit đầu tiên,./frontend/.env.localvà./backend/.envđã bị lộDự án này rất ngầu. Nó làm tôi nhớ tới liên kết này
Phải hoàn thiện nó thôi mà vẫn chưa có thời gian
Phần tổng hợp dữ liệu rất tuyệt. Tuy vậy, sẽ tốt hơn nếu thêm tín hiệu độ cũ của dữ liệu vào pipeline của các feed
Một số nguồn (đặc biệt là threat feed) không cập nhật theo giây mà theo hàng giờ, nên nếu hiển thị thời điểm cập nhật cuối cùng của từng nguồn thì sẽ giúp đánh giá độ mới của dữ liệu tốt hơn
Thật sự rất tuyệt. Cảm ơn vì đã chia sẻ.
Tôi tò mò nếu chạy vài giờ mỗi ngày trong khoảng một tháng thì chi phí API sẽ vào khoảng bao nhiêu. Muốn biết liệu có ở mức chấp nhận được không
Dự án rất ấn tượng. Tuy nhiên, xét về tổng thể từ ý tưởng, feed cho tới thiết kế, nó gợi nhớ khá nhiều tới worldmonitor.app
Xin lưu ý là bên đó cũng đã được triển khai thành dịch vụ chạy thật rồi