실시간 OSINT 대시보드 ShadowBroker – 전 세계 15개 실시간 데이터 피드를 통합한 오픈소스 정보 플랫폼

2 weeks ago 9

  • 항공기, 선박, 위성, 지진, 분쟁, CCTV, GPS 교란 등 다양한 실시간 데이터를 하나의 지리정보 기반 인터페이스로 통합
  • Next.js, MapLibre GL, FastAPI, Python으로 구축되어 분석가와 연구자가 전 지구적 활동을 단일 화면에서 시각화 가능
  • 항공·해상·우주·지정학·감시·신호 정보 등 6개 주요 영역의 세부 추적 기능을 제공하며, 각 레이어는 개별적으로 제어 가능
  • Docker/Podman 기반의 손쉬운 배포와 API 연동 자동화로 자가 호스팅 및 개발 환경 설정이 간단
  • 모든 데이터는 공개 OSINT 소스에서 수집되며, 교육 및 연구 목적으로만 사용 가능함을 명시

개요

  • ShadowBroker는 다중 도메인 실시간 오픈소스 정보(Real-Time OSINT) 대시보드로, 수십 개의 공개 데이터 피드를 통합하여 단일 다크맵 인터페이스에 표시
    • 항공기, 선박, 위성, 지진, 분쟁 지역, CCTV 네트워크, GPS 교란, 지정학적 사건 등을 실시간으로 추적
  • Next.js, MapLibre GL, FastAPI, Python으로 구성되어 있으며, 분석가·연구자·OSINT 애호가를 위한 시각화 도구로 설계

주요 활용 사례

  • 억만장자 개인 제트기 추적
  • 위성 궤도 통과 모니터링
  • 전 세계 해상 교통 감시
  • GPS 교란 지역 탐지
  • 지진 및 재난 실시간 관측

기능 요약

🛩️ 항공 추적 (Aviation Tracking)

  • OpenSky Network를 통한 약 5,000대 이상의 상업 항공 실시간 위치 표시
  • 개인·군용 항공기 별도 분류 및 소유자 정보 포함 비즈니스 제트기 추적
  • 비행 궤적 누적, 선회 탐지, 지상 상태 표시 등 세부 기능 지원
  • 항공기 종류별 정확한 SVG 아이콘 제공

🚢 해상 추적 (Maritime Tracking)

  • aisstream.io WebSocket을 통한 25,000여 척의 선박 실시간 데이터
  • 선박 유형별 색상 구분(화물, 유조선, 여객선, 군함 등)
  • 미 해군 항모 11척의 OSINT 기반 위치 추정 및 GDELT 뉴스 스크래핑 자동화
  • 크루즈·여객선 전용 레이어, 줌 레벨별 클러스터 표시 지원

🛰️ 우주·위성 (Space & Satellites)

  • CelesTrak TLE + SGP4 기반 2,000개 이상 위성의 실시간 궤도 표시
  • 임무 유형별 색상 구분: 군사정찰(적색), SAR(청록), SIGINT(백색), 항법(청색), 조기경보(자홍), 상업영상(녹색), 우주정거장(금색)

🌍 지정학·분쟁 (Geopolitics & Conflict)

  • GDELT 기반 최근 8시간 내 약 1,000건의 분쟁 사건 집계
  • DeepState Map의 우크라이나 전선 실시간 데이터
  • SIGINT/RISINT 뉴스 피드지역 정보 패널 제공
    • 국가 인구·수도·언어·통화·면적, 정부 형태, 국가 수반 정보(Wikidata), Wikipedia 요약 포함

📷 감시 (Surveillance)

  • 2,000개 이상 교통 CCTV 실시간 스트림 통합
    • 런던(TfL), 오스틴(TxDOT), 뉴욕(NYC DOT), 싱가포르(LTA) 등
  • 자동 피드 감지 및 렌더링, 줌 기반 클러스터 표시 지원

📡 신호 정보 (Signal Intelligence)

  • GPS 교란 탐지: 항공기 NAC-P 값 분석을 통한 간섭 지역 시각화
  • 라디오 인터셉트 패널: 무전 감청형 UI 제공

🌐 추가 레이어

  • USGS 지진 데이터(24시간), 일·야 경계선 표시, 실시간 금융시장 지수, 거리·방위 측정 도구 포함

시스템 구조

  • Frontend (Next.js): MapLibre GL 기반 2D WebGL 지도, SIGINT 뉴스 피드, 제어 패널, 시장·라디오 모듈
  • Backend (FastAPI): 다수의 데이터 소스(OpenSky, adsb.lol, CelesTrak, USGS, GDELT, CCTV 등)에서 주기적 수집
  • REST API를 통해 60~120초 간격으로 프론트엔드에 데이터 전달

데이터 소스 및 API

출처 데이터 갱신 주기 API 키
OpenSky Network 상업·개인 항공기 약 60초 선택
adsb.lol 군용 항공기 약 60초 불필요
aisstream.io 선박 위치 실시간 필요
CelesTrak 위성 궤도 약 60초 불필요
USGS 지진 약 60초 불필요
GDELT 분쟁 사건 약 6시간 불필요
DeepState Map 우크라이나 전선 약 30분 불필요
TfL, TxDOT, NYC DOT, LTA 교통 CCTV 약 5분 일부 필요
RestCountries, Wikidata, Wikipedia 국가·지도 정보 요청 시 불필요

설치 및 실행

Docker/Podman 기반

  • git clone 후 ./compose.sh up -d 명령으로 자동 실행
  • 기본 포트: 프론트엔드 3000, 백엔드 8000
  • 환경 변수 NEXT_PUBLIC_API_URL로 포트 재설정 가능

코드 수정용 개발 환경

  • Node.js 18+, Python 3.10~3.12 필요
  • aisstream.io API 키 필수, OpenSky, LTA 키 선택
  • npm run dev로 프론트·백엔드 동시 실행

데이터 레이어 제어

  • 항공기, 위성, 선박, 지진, CCTV, 분쟁, GPS 교란 등 모든 레이어 개별 토글 가능
  • 기본 활성화: 상업·군용 항공기, 위성, 항모, 지진, 분쟁, GPS 교란, 일·야 경계

성능 최적화

  • Gzip 압축(92%), ETag 캐싱, 뷰포트 컬링, 클러스터 렌더링, 좌표 정밀도 축소(소수점 5자리) 등으로 대규모 실시간 데이터 처리 효율화
  • React.memo디바운스(300ms) 적용으로 렌더링 부하 최소화

환경 변수

  • 필수: AIS_API_KEY
  • 선택: OPENSKY_CLIENT_ID, OPENSKY_CLIENT_SECRET, LTA_ACCOUNT_KEY

면책 및 라이선스

  • 모든 데이터는 공개 OSINT 소스 기반이며, 비공개·기밀 정보 사용 없음
  • 군사·정보 목적 사용 금지, 교육·연구용 한정
  • 각 API 제공자의 이용 약관 준수 필요

프로젝트 구조

  • backend/: FastAPI 앱, 데이터 수집 스케줄러, CCTV·항모·분쟁 데이터 처리
  • frontend/: Next.js 기반 지도·패널·필터·뉴스·시장·라디오 컴포넌트 구성
  • docker-compose.yml, compose.sh 등 자동 배포 스크립트 포함

요약

  • ShadowBroker는 전 세계 실시간 OSINT 데이터를 통합 시각화하는 오픈소스 플랫폼
  • 항공·해상·우주·지정학·감시·신호 등 다중 영역을 하나의 지도에서 분석 가능
  • Docker 기반 손쉬운 배포, 고성능 렌더링, 공개 데이터만 사용
  • 보안·정보 분석 연구자 및 스타트업 데이터 엔지니어에게 유용한 실시간 인텔리전스 도구

Read Entire Article