
3D 위협 인텔리전스 대시보드로, AbuseIPDB 및 OpenPhish와 같은 OSINT 소스로부터 악성 인프라를 시각화하며, 실시간 위협 피드, 지리적 글로브 핑, 상황 인식을 위한 지표 컨텍스트 카드를 제공합니다.
OSINT 위협 인텔리전스 대시보드: AbuseIPDB 및 OpenPhish 같은 공개 소스의 악성 인프라를 보여주는 3D 지구본과 실시간 피드
https://github.com/user-attachments/assets/e4f6a4fa-6ff4-4ad1-8e5c-5b50ce6ad722
DarkGrid는 전 세계적으로 의심스러운 인터넷 인프라를 시각화합니다:
초점은 개인이 아닌 인프라의 상황 인식에 있습니다.
backend/ – FastAPI + SQLite OSINT API
/api/indicators/latest – 피드용 최신 지표/api/map – 지구본용 국가별 버킷frontend/ – Next.js 16 앱 (DarkGrid UI)
src/app/page.tsx – 메인 대시보드 레이아웃src/components/ThreatGlobeViewer.tsx – 3D 지구본src/hooks/useThreatDataPolling.ts – 위협 API 폴링docker-compose.yml – 로컬 스택 (백엔드 + 프론트엔드)이 디렉토리(docker-compose.yml과 같은 폴더)에 .env 파일을 생성합니다:
copy .env.example .env
.env를 편집하여 다음을 설정:
ABUSEIPDB_API_KEY – https://www.abuseipdb.com/에서 무료 키를 얻으세요.스택을 시작합니다:
docker-compose up -d
또는 로그를 보려면 포그라운드에서 실행:
docker-compose up
UI와 API를 엽니다:
http://localhost:3000http://localhost:8000http://localhost:8000/health코드 변경 후 재빌드:
데이터베이스: SQLite, 백엔드 첫 시작 시 자동 생성됩니다.
/app/data/threat_intel.db의 backend_data 볼륨에 있습니다.backend/data/threat_intel.db에 있습니다.수집기 (시작 시와 15분마다 실행):
AbuseIPDB (ABUSEIPDB_API_KEY 필요):
geo.country와 함께 type=ip, source=abuseipdb 지표를 생성합니다.OpenPhish (키 불필요):
type=url, source=openphish 지표를 생성합니다 (지리 정보 없음).지구본/피드가 비어 있을 때 문제 해결:
.env를 확인하여 가 설정되고 유효한지 확인하세요.요구 사항:
cd backend
python -m venv .venv
.venv\Scripts\activate # on Windows
pip install -r requirements.txt
python main.py # serves on http://localhost:8000
수집을 위해 루트 .env에 ABUSEIPDB_API_KEY가 있는지 확인하세요.
cd frontend
npm install
frontend/.env.local 파일 생성 (로컬 개발 전용):
NEXT_PUBLIC_THREAT_API_URL=http://localhost:8000
그런 다음 실행:
npm run dev
http://localhost:3000을 엽니다.
이 프로젝트는 진행 중인 작업이며 DarkGrid 위협 인텔리전스 대시보드의 대략적인 MVP입니다. 백엔드, 수집기, UI가 개선됨에 따라 파괴적인 변경이 있을 수 있습니다.
계획된 향후 단계는 다음과 같습니다:
docker-compose up -d --build
ABUSEIPDB_API_KEYdocker-compose up -d.