reconurge/flowsint

A modern platform for visual, flexible, and extensible graph-based investigations. For cybersecurity analysts and investigators.

GitHub에서 열기 ↗ investigationosintpythonrecon
7,236
GitHub 스타
901
포크
TypeScript
언어
Apache-2.0
라이선스
2026.07.01
최근 푸시
2026.06.03
별표한 날

AI 분석

설치 난이도: 쉬움
큐레이터 노트
OSINT 조사 도구가 필요하거나 그래프 기반 분석을 원하는 사이버 보안 분석가, 연구원, 법 집행 기관에 적합합니다. 특히 모듈식 구조로 커스터마이징이 용이하여 팀 단위로 사용하기 좋습니다.

강점

  • 그래프 기반 시각화로 엔터티 간 관계를 직관적으로 탐색 가능
  • 다양한 인리처(도메인, IP, 소셜 미디어, 암호화폐 등)를 내장하여 OSINT 조사에 특화
  • Docker 기반으로 설치가 간편하며 로컬 및 네트워크 배포를 모두 지원
  • 모듈식 아키텍처로 확장성과 유지보수성이 뛰어남

약점

  • 아직 초기 개발 단계로 테스트 스위트가 불완전함
  • Windows에서 Make를 지원하지 않아 수동 설정이 필요함
  • 기본 시크릿을 변경하지 않으면 보안에 취약할 수 있음

주의사항

  • 네트워크에 노출하기 전에 .env의 기본 시크릿을 반드시 변경해야 함
  • Host-header 허용 목록을 업데이트하지 않으면 DNS 리바인딩 공격에 취약할 수 있음
  • 윤리적 사용을 강조하며, 불법적인 용도로 사용하지 않도록 주의해야 함

시작 가이드

  • README의 설치 가이드에 따라 로컬 환경에 Flowsint를 설치하고 첫 로그인을 진행하세요.
  • ETHICS.md를 읽고 윤리적 사용 지침을 숙지하세요.
  • 제공된 인리처 목록을 확인하고 관심 있는 데이터 소스에 대한 테스트를 수행하세요.
  • 네트워크 배포가 필요하다면 .env 시크릿 변경 및 nginx.conf 호스트 설정을 진행하세요.

README 한국어 번역

이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.

Flowsint

Flowsint는 윤리적 조사, 투명성 및 검증을 위해 설계된 오픈소스 OSINT 그래프 탐색 도구입니다.

윤리: 책임 있는 사용 지침은 ETHICS.md를 읽어주세요.

기여하기

Flowsint는 아직 초기 개발 단계에 있으며 커뮤니티의 도움이 절실히 필요합니다! 자유롭게 이슈를 제기하고 기능을 제안해주세요.

시작하기

읽기 싫으신가요? 알겠습니다. 설치 방법은 다음과 같습니다.

Linux / macOS

1. 사전 요구 사항 설치

  • Docker
  • Make

2. 설치 명령 실행

git clone https://github.com/reconurge/flowsint.git
cd flowsint
make prod

Windows

Make가 필요 없습니다. 명령 프롬프트(cmd)PowerShell 모두에서 작동합니다.

1. 사전 요구 사항 설치

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 32
  • MASTERVAULTKEY_V1 — 저장된 API 키 암호화. 생성: python3 -c "import os, base64; print('base64:' + base64.b64encode(os.urandom(32)).decode())"
  • NEO4J_PASSWORD — Neo4j 데이터베이스 비밀번호.

또한 flowsint-app/nginx.conf의 Host-header 허용 목록에 서버 호스트명/IP를 추가하세요 (map $httphost $isflowsint_host 부분을 찾으세요). 기본 허용 목록은 localhost / 127.0.0.1 / [::1]만 허용하므로 단일 사용자 설치를 DNS 리바인딩으로부터 보호합니다. LAN 및 공개 배포는 자체 호스트명을 옵트인해야 합니다. 동일한 map 블록에 주석 처리된 두 개의 템플릿 라인이 형식을 보여줍니다.

포트 5173만 네트워크에 노출됩니다. PostgreSQL, Redis, Neo4j 및 API는 서버의 127.0.0.1에 바인딩되며 프론트엔드 프록시를 통해서만 접근 가능합니다.

latest 대신 특정 버전을 고정하려면 .env에서 FLOWSINTVERSION을 설정하세요 (예: FLOWSINTVERSION=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(오픈 소스 인텔리전스)에 중점을 둔 그래프 기반 조사 도구입니다. 시각적 그래프 인터페이스와 자동화된 인리처를 통해 엔터티 간의 관계를 탐색할 수 있습니다.

사용 가능한 인리처

  • 역방향 DNS 확인 - IP를 가리키는 도메인 찾기
  • DNS 확인 - 도메인을 IP 주소로 확인
  • 서브도메인 검색 - 서브도메인 열거
  • WHOIS 조회 - 도메인 등록 정보 가져오기
  • 도메인을 웹사이트로 - 도메인을 웹사이트 엔터티로 변환
  • 도메인을 루트 도메인으로 - 루트 도메인 추출
  • 도메인을 ASN으로 - 도메인과 연결된 ASN 찾기
  • 도메인 기록 - 과거 도메인 데이터 검색

도메인 인리처

  • IP 정보 - 지리적 위치 및 네트워크 세부 정보 가져오기
  • IP를 ASN으로 - IP에 대한 ASN 찾기

IP 인리처

  • ASN을 CIDR로 - ASN에 대한 IP 범위 가져오기

ASN 인리처

  • CIDR을 IP로 - 범위 내 IP 열거

CIDR 인리처

  • 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

프론트엔드 애플리케이션.

  • 현대적이고 UI 친화적인 인터페이스
  • 성능을 위해 구축됨 (수천 개의 노드에서도 지연 없음)

개발 워크플로우

  1. 새 타입 추가: flowsint-types 모듈에 추가
  2. 새 인리처 추가: flowsint-enrichers 모듈에 추가
  3. 새 API 엔드포인트 추가: flowsint-api 모듈에 추가
  4. 새 유틸리티 추가: flowsint-core 모듈에 추가

테스트

각 모듈에는 자체 (불완전한) 테스트 스위트가 있습니다:

# core 모듈 테스트
cd flowsint-core
uv run pytest

# types 모듈 테스트
cd../flowsint-types
uv run pytest

# enrichers 모듈 테스트
cd../flowsint-enrichers
uv run pytest

# API 모듈 테스트
cd../flowsint-api
uv run pytest

기여하기

  1. 모듈 구조를 따르세요
  2. 의존성 관리를 위해 Poetry를 사용하세요
  3. 새 기능에 대한 테스트를 작성하세요
  4. 필요에 따라 문서를 업데이트하세요

⚖️ 법적 및 윤리적 사용

윤리: 책임 있는 사용 지침은 ETHICS.md를 읽어주세요.

Flowsint는 엄격히 합법적이고 윤리적인 조사 및 연구 목적으로 설계되었습니다.

  • 사이버 보안 연구원 및 분석가
  • 저널리스트 및 OSINT 조사관
  • 법 집행 기관 또는 사기 조사 팀
  • 내부 위협 인텔리전스 또는 디지털 위험 분석을 수행하는 조직

다음을 지원하기 위해 만들어졌습니다:

  • 무단 침입, 감시 또는 데이터 수집
  • 괴롭힘, 독싱 또는 개인 표적화
  • 정치적 조작, 허위 정보 또는 개인정보 보호법 위반

Flowsint는 다음 용도로 사용해서는 안 됩니다:

이 소프트웨어의 오용은 엄격히 금지되며 ETHICS.md에 정의된 윤리 원칙에 위배됩니다.

❤️ 지원

원본 저장소: reconurge/flowsint

라이선스: Apache-2.0

게재 제외를 원하시면 삭제 요청을 보내주세요.