Flowsint - 그래프 기반 OSINT 조사 플랫폼 치트시트
사이버 보안 분석가, OSINT 연구원 및 조사관을 위한 현대적인 오픈 소스 그래프 기반 조사 도구. 자동 보강 및 로컬 우선 데이터 저장으로 엔터티(도메인, IP, 이메일, 지갑) 간의 관계를 시각화합니다.
윤리적 사용만: Flowsint는 합법적이고 윤리적인 조사 및 연구 목적으로만 사용해야 합니다. 배포 전 프로젝트의 ETHICS.md를 검토하세요.
설치
빠른 설정 (Docker)
# 저장소 복제
git clone https://github.com/reconurge/flowsint.git
cd flowsint
# 프로덕션 배포
make prod
# 개발 배포
make dev
필수 조건: Docker 및 Make
접근
| 모드 | URL |
|---|
| 개발 | http://localhost:5173 |
| 프로덕션 | http://localhost:5173/register (먼저 계정 생성) |
아키텍처 개요
Flowsint는 5개의 핵심 구성 요소를 가진 모듈식 플랫폼입니다:
| 모듈 | 용도 |
|---|
flowsint-app | 프론트엔드 인터페이스 (그래프 시각화) |
flowsint-api | 인증이 있는 FastAPI 백엔드 |
flowsint-core | 데이터베이스, 유틸리티, 작업 오케스트레이션 |
flowsint-enrichers | 데이터 보강 모듈 |
flowsint-types | Pydantic 데이터 모델 |
엔터티 유형
Flowsint는 그래프에 추가할 수 있는 다양한 조사 엔터티와 함께 작동합니다:
| 엔터티 | 설명 |
|---|
| Domain | 웹사이트 도메인 이름 |
| IP Address | IPv4/IPv6 주소 |
| Email | 이메일 주소 |
| Phone Number | 전화번호 |
| Username | 소셜 미디어 / 서비스 사용자 이름 |
| Organization | 회사 및 조직 |
| ASN | 자율 시스템 번호 |
| CIDR | IP 주소 범위 |
| Cryptocurrency Wallet | Bitcoin, Ethereum 등 주소 |
| URL | 특정 웹 페이지 |
사용 가능한 보강기
네트워크 인텔리전스
| 보강기 | 수행 작업 |
|---|
| DNS Resolution | 도메인을 IP 주소로 해석 |
| Reverse DNS | IP를 가리키는 도메인 찾기 |
| Subdomain Enumeration | 도메인의 하위 도메인 검색 |
| WHOIS Lookup | 도메인 등록 정보 |
| IP Geolocation | IP 주소의 물리적 위치 |
| ASN Mapping | 네트워크 소유권 식별 |
| CIDR Expansion | IP 범위를 개별 주소로 확장 |
디지털 신원
| 보강기 | 수행 작업 |
|---|
| Email Breach Check | 알려진 침해에 이메일이 나타나는지 확인 |
| Gravatar Discovery | 이메일에 연결된 Gravatar 프로필 찾기 |
| Phone Breach Check | 침해 데이터베이스에서 전화번호 확인 |
| Username Search (Maigret) | 소셜 플랫폼에서 사용자 이름 검색 |
조직 연구
| 보강기 | 수행 작업 |
|---|
| ASN Ownership | ASN 뒤의 조직 식별 |
| Domain Portfolio | 동일한 엔터티가 소유한 다른 도메인 찾기 |
| Company Details | 회사 등록 정보 검색 |
웹 분석
| 보강기 | 수행 작업 |
|---|
| Website Crawling | 사이트 구조 매핑 및 페이지 검색 |
| Link Extraction | 웹 페이지에서 모든 링크 추출 |
| Tracking Scripts | 분석 및 추적 코드 식별 |
| Text Harvesting | 페이지에서 텍스트 콘텐츠 추출 |
암호화폐
| 보강기 | 수행 작업 |
|---|
| Wallet Transactions | 주소의 거래 기록 보기 |
| NFT Ownership | 지갑 주소의 NFT 보유 추적 |
통합
| 통합 | 수행 작업 |
|---|
| N8n Workflows | N8n 자동화 워크플로우에 연결 |
조사 워크플로우
1. 조사 생성
대시보드에서 새 조사를 시작합니다. 설명적인 이름과 선택적 태그를 지정합니다.
2. 시드 엔터티 추가
시작 엔터티(알려진 도메인, 이메일, IP 등)를 그래프 캔버스에 추가합니다.
3. 보강기 실행
엔터티를 마우스 오른쪽 버튼으로 클릭하거나 선택하고 관련 보강기를 실행합니다. 새 엔터티와 연결이 자동으로 그래프에 추가됩니다.
4. 관계 분석
시각적 그래프를 사용하여 연결 추적:
- Domain → IP: 호스팅 관계
- Email → Breaches: 침해된 계정
- Domain → Subdomains: 공격 표면 매핑
- Username → Platforms: 디지털 발자국
5. 확장 및 피벗
새로 발견된 엔터티를 선택하고 추가 보강기를 실행하여 조사 그래프를 확장합니다.
주요 기능
| 기능 | 설명 |
|---|
| 그래프 시각화 | 엔터티 관계를 보여주는 대화형 노드-링크 다이어그램 |
| 자동 보강 | 여러 OSINT 소스에서 원클릭 데이터 수집 |
| 로컬 저장소 | 모든 데이터는 기계에 유지 — 설계상 프라이버시 |
| 다중 사용자 | 팀 조사를 위한 인증 시스템 |
| 모듈식 아키텍처 | 플러그인 시스템을 통해 사용자 정의 보강기 추가 |
| 내보내기 | 보고를 위한 조사 데이터 내보내기 |
테스트 실행
# 개별 모듈 테스트
cd flowsint-core
poetry run pytest
cd flowsint-api
poetry run pytest
cd flowsint-enrichers
poetry run pytest
일반적인 조사 시나리오
도메인 조사
- 대상 도메인을 엔터티로 추가
- DNS Resolution 실행 → IP 검색
- Subdomain Enumeration 실행 → 공격 표면 매핑
- WHOIS 실행 → 등록자 정보 찾기
- Website Crawling 실행 → 사이트 구조 매핑
- 검색된 IP로 피벗 → Reverse DNS 실행
이메일 조사
- 대상 이메일을 엔터티로 추가
- Breach Check 실행 → 침해된 데이터베이스 찾기
- Gravatar Discovery 실행 → 연결된 프로필 찾기
- 사용자 이름 추출 → 플랫폼 전체에서 Username Search 실행
인프라 매핑
- 알려진 IP 또는 ASN 추가
- ASN Ownership 실행 → 조직 식별
- CIDR Expansion 실행 → IP 범위 매핑
- IP에서 Reverse DNS 실행 → 도메인 검색
- 그래프에서 전체 인프라 시각화
문제 해결
| 문제 | 해결 방법 |
|---|
| Docker 빌드 실패 | Docker 및 Make가 설치되고 실행 중인지 확인 |
| 5173 포트 충돌 | docker-compose.yml에서 포트 매핑 변경 |
| 보강기 타임아웃 | 네트워크 연결 확인; 일부 보강기는 인터넷 필요 |
| 빈 결과 | 엔터티 형식이 올바른지 확인 (유효한 도메인, IP 등) |
| 인증 오류 | /register에서 새 계정 등록 |
리소스