사이버 보안 분석가, OSINT 연구원 및 조사관을 위한 현대적인 오픈 소스 그래프 기반 조사 도구. 자동 보강 및 로컬 우선 데이터 저장으로 엔터티(도메인, IP, 이메일, 지갑) 간의 관계를 시각화합니다.
윤리적 사용만: Flowsint는 합법적이고 윤리적인 조사 및 연구 목적으로만 사용해야 합니다. 배포 전 프로젝트의 ETHICS.md를 검토하세요.
# 저장소 복제
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 자동화 워크플로우에 연결 |
대시보드에서 새 조사를 시작합니다. 설명적인 이름과 선택적 태그를 지정합니다.
시작 엔터티(알려진 도메인, 이메일, IP 등)를 그래프 캔버스에 추가합니다.
엔터티를 마우스 오른쪽 버튼으로 클릭하거나 선택하고 관련 보강기를 실행합니다. 새 엔터티와 연결이 자동으로 그래프에 추가됩니다.
시각적 그래프를 사용하여 연결 추적:
- Domain → IP: 호스팅 관계
- Email → Breaches: 침해된 계정
- Domain → Subdomains: 공격 표면 매핑
- Username → Platforms: 디지털 발자국
새로 발견된 엔터티를 선택하고 추가 보강기를 실행하여 조사 그래프를 확장합니다.
| 기능 | 설명 |
|---|
| 그래프 시각화 | 엔터티 관계를 보여주는 대화형 노드-링크 다이어그램 |
| 자동 보강 | 여러 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에서 새 계정 등록 |