
flowsint v1.2.12
시각적이고 유연하며 확장 가능한 그래프 기반 조사를 위한 현대적인 플랫폼입니다. 사이버 보안 분석가 및 조사관을 위한 것입니다.
Flowsint
Flowsint은 윤리적 조사, 투명성, 검증을 위해 설계된 오픈소스 OSINT 그래프 탐색 도구입니다.
윤리: 책임 있는 사용 지침은 ETHICS.md를 읽어주세요.
https://github.com/user-attachments/assets/eaabfa81-d7b3-414d-8cf7-f69b4e37bab6
https://github.com/user-attachments/assets/7457d94a-cf1d-4a97-949f-f9b1d8d92644
https://github.com/user-attachments/assets/65c3f26e-7132-4853-be45-21b8933688bd
기여하기
Flowsint은 아직 초기 개발 단계에 있으며 커뮤니티의 도움이 절실히 필요합니다! 이슈를 제기하거나 기능을 제안하는 등 자유롭게 참여해주세요.
시작하기
읽기 싫으신가요? 알겠습니다. 설치 지침은 다음과 같습니다:
Linux / macOS
1. 사전 요구사항 설치
- Docker
- Make
2. 설치 명령 실행
git clone https://github.com/reconurge/flowsint.git
cd flowsint
make prod
Windows
Make가 필요 없습니다. 명령 프롬프트(cmd) 와 PowerShell 모두에서 작동합니다.
1. 사전 요구사항 설치
- Docker Desktop (다음 단계 전에 실행 중인지 확인하세요)
- Git
2. 클론 및 환경 파일 설정
git clone https://github.com/reconurge/flowsint.git
cd flowsint
copy .env.example .env
copy .env.example flowsint-api\.env
copy .env.example flowsint-core\.env
copy .env.example flowsint-app\.env
3. 시작
docker compose -f docker-compose.prod.yml up -d
이 명령은 GitHub Container Registry에서 사전 빌드된 이미지를 가져옵니다 — 로컬 빌드가 필요 없습니다.
첫 로그인
그런 다음 http://localhost:5173/register로 이동하여 계정을 만드세요. 기본적으로 제공되는 자격 증명이나 계정은 없습니다.
✅ OSINT 조사는 높은 수준의 프라이버시가 필요합니다. 모든 데이터는 사용자 머신에 저장됩니다.
네트워크에 배포 (팀 / 서버)
동일한 설정이 서버에서도 바로 작동합니다: 프론트엔드가 UI를 제공하고 모든 API 호출을 내부적으로 프록시하므로 클라이언트에 대한 추가 구성이 필요 없습니다.
git clone https://github.com/reconurge/flowsint.git
cd flowsint
cp .env.example .env
# .env 편집 — 아래 "네트워크에 노출하기 전에" 참조
docker compose -f docker-compose.prod.yml up -d
네트워크의 모든 사용자는 http://<server-ip>:5173에서 Flowsint에 접근할 수 있습니다.
네트워크에 노출하기 전에 .env의 기본 비밀값을 변경하세요:
AUTH_SECRET— 인증 토큰에 서명합니다. 생성:openssl rand -hex 32MASTER_VAULT_KEY_V1— 저장된 API 키를 암호화합니다. 생성:python3 -c "import os, base64; print('base64:' + base64.b64encode(os.urandom(32)).decode())"NEO4J_PASSWORD— Neo4j 데이터베이스 비밀번호.
또한 flowsint-app/nginx.conf의 Host 헤더 허용 목록에 서버 호스트 이름/IP를 추가하세요 (map $http_host $is_flowsint_host를 찾으세요). 기본 허용 목록은 localhost / 127.0.0.1 / [::1]만 허용하며, 이는 단일 사용자 설치를 DNS 리바인딩으로부터 보호합니다. LAN 및 공개 배포는 자체 호스트 이름을 명시적으로 추가해야 합니다. 동일한 map 블록에 주석 처리된 두 개의 템플릿 라인이 형식을 보여줍니다.
포트 5173만 네트워크에 노출됩니다. PostgreSQL, Redis, Neo4j 및 API는 서버의 127.0.0.1에 바인딩되어 있으며 프론트엔드 프록시를 통해서만 접근할 수 있습니다.
latest 대신 특정 버전을 고정하려면 .env에서 FLOWSINT_VERSION을 설정하세요 (예: FLOWSINT_VERSION=1.2.10).
HTTPS (신뢰할 수 있는 LAN 외부에서는 권장): 포트 5173 앞에 리버스 프록시를 배치하세요. Caddy 예시:
flowsint.example.com {
reverse_proxy 127.0.0.1:5173
}
리버스 프록시를 사용할 때는 docker-compose.prod.yml에서 앱 포트도 localhost에 바인딩하세요 ("127.0.0.1:5173:8080") — 그래야 클라이언트가 HTTPS를 통해서만 접근할 수 있습니다.
무엇인가요?
Flowsint은 정찰 및 OSINT(오픈소스 인텔리전스)에 중점을 둔 그래프 기반 조사 도구입니다. 시각적 그래프 인터페이스와 자동화된 인리처(enricher)를 통해 엔티티 간의 관계를 탐색할 수 있습니다.
사용 가능한 인리처
도메인 인리처
- 역방향 DNS 조회 - IP를 가리키는 도메인 찾기
- DNS 조회 - 도메인을 IP 주소로 변환
- 서브도메인 발견 - 서브도메인 열거
- WHOIS 조회 - 도메인 등록 정보 가져오기
- 도메인 → 웹사이트 - 도메인을 웹사이트 엔티티로 변환
- 도메인 → 루트 도메인 - 루트 도메인 추출
- 도메인 → ASN - 도메인과 연결된 ASN 찾기
- 도메인 기록 - 과거 도메인 데이터 검색
IP 인리처
- IP 정보 - 지리적 위치 및 네트워크 세부 정보 가져오기
- IP → ASN - IP에 대한 ASN 찾기
ASN 인리처
- ASN → CIDR - ASN에 대한 IP 범위 가져오기
CIDR 인리처
- CIDR → IP - 범위 내 IP 열거
소셜 미디어 인리처
- Maigret - 소셜 플랫폼에서 사용자 이름 검색
조직 인리처
- 조직 → ASN - 조직이 소유한 ASN 찾기
- 조직 정보 - 회사 세부 정보 가져오기
- 조직 → 도메인 - 조직이 소유한 도메인 찾기
암호화폐 인리처
- 지갑 → 거래 - 거래 내역 가져오기
- 지갑 → NFT - 지갑이 소유한 NFT 찾기
웹사이트 인리처
- 웹사이트 크롤러 - 웹사이트 구조 크롤링 및 매핑
- 웹사이트 → 링크 - 모든 링크 추출
- 웹사이트 → 도메인 - URL에서 도메인 추출
- 웹사이트 → 웹트래커 - 추적 스크립트 식별
- 웹사이트 → 텍스트 - 텍스트 콘텐츠 추출
이메일 인리처
- 이메일 → Gravatar - Gravatar 프로필 찾기
- 이메일 → 유출 - 데이터 유출 데이터베이스 확인
- 이메일 → 도메인 - 연결된 도메인 찾기
전화 인리처
- 전화 → 유출 - 유출 데이터에서 전화번호 확인
개인 인리처
- 개인 → 조직 - 조직 소속 찾기
- 개인 → 도메인 - 개인과 연결된 도메인 찾기
통합 인리처
- N8n 커넥터 - N8n 워크플로우에 연결
프로젝트 구조
프로젝트는 자율 모듈로 구성됩니다:
핵심 모듈
- flowsint-core: 핵심 유틸리티, 오케스트레이터, 볼트, celery 작업 및 기본 클래스
- flowsint-types: Pydantic 모델 및 타입 정의
- flowsint-enrichers: 인리처 모듈, 스캐닝 로직 및 도구
- flowsint-api: FastAPI 서버, API 라우트 및 스키마만 포함
- flowsint-app: 프론트엔드 애플리케이션
모듈 의존성
flowsint-app (프론트엔드)
↓
flowsint-api (API 서버)
↓
flowsint-core (오케스트레이터, 작업, 볼트)
↓
flowsint-enrichers (인리처 및 도구)
↓
flowsint-types (타입)
개발 환경 설정
사전 요구사항
- Docker
실행
Linux / macOS (Make 필요):
make dev
Windows (cmd 또는 PowerShell, Make 불필요 — 먼저 .env 파일을 생성하세요, 시작하기 참조):
docker compose -f docker-compose.dev.yml up -d --build
docker compose -f docker-compose.dev.yml logs -f
개발
앱은 http://localhost:5173에서 접근할 수 있습니다.
모듈 세부 정보
flowsint-core
다른 모든 모듈에서 사용하는 핵심 유틸리티 및 기본 클래스:
- 데이터베이스 연결 (PostgreSQL, Neo4j)
- 인증 및 권한 부여
- 로깅 및 이벤트 처리
- 구성 관리
- 인리처 및 도구용 기본 클래스
- 유틸리티 함수
flowsint-types
모든 데이터 타입에 대한 Pydantic 모델:
- 도메인, IP, ASN, CIDR
- 개인, 조직, 이메일, 전화
- 웹사이트, 소셜 프로필, 자격 증명
- 암호화폐 지갑, 거래, NFT
- 그 외 다수...
flowsint-enrichers
데이터를 처리하는 인리처 모듈:
- 도메인 인리처 (서브도메인, WHOIS, 조회)
- IP 인리처 (지리적 위치, ASN 조회)
- 소셜 미디어 인리처 (Maigret, Sherlock)
- 이메일 인리처 (유출, Gravatar)
- 암호화폐 인리처 (거래, NFT)
- 그 외 다수...
flowsint-api
다음을 제공하는 FastAPI 서버:
- REST API 엔드포인트
- 인증 및 사용자 관리
- 그래프 데이터베이스 통합
- 실시간 이벤트 스트리밍
flowsint-app
프론트엔드 애플리케이션.
- 현대적이고 사용자 친화적인 인터페이스
- 성능에 최적화됨 (수천 개의 노드에서도 지연 없음)
개발 워크플로우
- 새 타입 추가:
flowsint-types모듈에 추가 - 새 인리처 추가:
flowsint-enrichers모듈에 추가 - 새 API 엔드포인트 추가:
flowsint-api모듈에 추가 - 새 유틸리티 추가:
flowsint-core모듈에 추가
테스트
각 모듈에는 자체 (불완전한) 테스트 스위트가 있습니다:
# 코어 모듈 테스트
cd flowsint-core
uv run pytest
# 타입 모듈 테스트
cd ../flowsint-types
uv run pytest
# 인리처 모듈 테스트
cd ../flowsint-enrichers
uv run pytest
# API 모듈 테스트
cd ../flowsint-api
uv run pytest
기여하기
- 모듈 구조를 따르세요
- 의존성 관리를 위해 uv를 사용하세요
- 새 기능에 대한 테스트를 작성하세요
- 필요에 따라 문서를 업데이트하세요
- 커밋 전 실행할 검사는 CONTRIBUTING.md를 참조하세요
⚖️ 법적 및 윤리적 사용
윤리: 책임 있는 사용 지침은 ETHICS.md를 읽어주세요.
Flowsint은 엄격히 합법적이고 윤리적인 조사 및 연구 목적으로만 설계되었습니다.
다음을 지원하기 위해 만들어졌습니다:
- 사이버보안 연구원 및 분석가
- 저널리스트 및 OSINT 조사관
- 법 집행 또는 사기 조사 팀
- 내부 위협 인텔리전스 또는 디지털 위험 분석을 수행하는 조직
Flowsint은 다음 용도로 사용해서는 안 됩니다:
- 무단 침입, 감시 또는 데이터 수집
- 개인에 대한 괴롭힘, 독싱(doxxing) 또는 표적화
- 정치적 조작, 허위 정보 또는 개인정보 보호법 위반
이 소프트웨어의 오용은 엄격히 금지되며 ETHICS.md에 정의된 윤리적 원칙에 위배됩니다.