본문으로 건너뛰기

Flowsint를 띄워 보고 알게 된 것 — OSINT 도구와 개인정보보호법

docker compose 한 줄로 30초면 뜬다. transform 48개 중 36개는 API 키가 필요 없다. 그런데 로컬 저장이 법적 안전을 뜻하지는 않는다.

보안 점검이나 사기 조사에서 도메인과 IP, 계정을 엮어 보는 작업은 늘 손으로 했다. Maltego 같은 상용 도구가 있지만 라이선스와 transform 비용이 걸린다.

Flowsint는 그 자리를 노리는 오픈소스다. Apache-2.0, 스타 8,952개, 최신 릴리스는 2026년 8월 26일 v1.2.12다. 직접 띄워서 확인했다.

30초면 뜬다

docker compose로 올린다. npm이 아니다. 컨테이너 여섯 개가 뜬다. 프런트(React), API(FastAPI), Celery 워커, PostgreSQL, Redis, Neo4j다.

git clone https://github.com/reconurge/flowsint.git
cp .env.example .env      # AUTH_SECRET, MASTER_VAULT_KEY_V1, NEO4J_PASSWORD 새로 생성
make prod                  # = docker compose -f docker-compose.prod.yml up -d

이미지를 내려받는 데 4분 정도 걸렸고(API 이미지 하나가 1GB가 넘는다), 컨테이너 전부가 정상 상태가 되는 데는 30초였다. 접속은 localhost:5173. 기본 계정이 없어서 /register로 먼저 가입한다.

arm64와 amd64 이미지를 둘 다 제공한다. 애플 실리콘에서 에뮬레이션 없이 돌았다.

transform 48개 중 36개는 키가 필요 없다

Flowsint에서 transform은 "enricher"라고 부른다. 입력 타입 하나를 받아 새 노드와 엣지를 만드는 파이썬 클래스다. API로 목록을 조회해 보니 48개가 있었고, 그중 36개는 외부 API 키 없이 바로 돈다.

키가 필요 없는 것들: DNS 조회, IP 변환, WHOIS, TLS 인증서, 서브도메인 열거, 포트 스캔, 기술 스택 탐지, 웹 크롤러, Maigret·Sherlock 기반 계정 탐색, Gravatar, 전화번호 통신사 조회.

키가 필요한 12개는 ASN 조회(PDCP), WHOIS 이력(Whoxy·WhoisXML), 유출 자격증명(HIBP), 암호화폐 지갑 거래·NFT(Etherscan)다.

OSINT 도구 대부분이 키를 여러 개 발급받아야 첫 화면을 넘어간다. 여기서는 그 과정이 없어도 절반 이상이 동작한다. 실제 진입 장벽이 낮은 게 이 도구의 강점이다.

테스트는 예약 도메인으로만

실제 사람이나 기업을 조회하지 않았다. example.com은 RFC 2606이 문서·테스트 용도로 예약한 도메인이라 조회해도 누구의 권리도 건드리지 않는다.

조사 케이스를 만들고 스케치(그래프 캔버스)에 도메인 노드를 넣은 다음 enricher 네 개를 돌렸다. DNS, IP, WHOIS, TLS다. 네 건 모두 완료로 끝났고 그래프에 노드 4개와 엣지 2개가 생겼다.

Flowsint 그래프 캔버스 — example.com 조회 결과 노드 4개
실제 화면. example.com 에서 IP 172.66.147.243 과 whois 노드가 파생됐다. 오른쪽 Entities 패널에 노드 목록이 뜬다. 2026-09-18, v1.2.12.

작은 문제 하나를 봤다. 손으로 추가한 노드는 타입이 Domain(대문자)인데 enricher가 만든 노드는 domain(소문자)이라 같은 도메인이 노드 두 개로 남는다. 자동 병합은 되지 않고 수동 병합 API만 있다.

ETHICS.md를 읽을 필요가 있다

이 저장소에는 윤리 문서가 따로 있다. Hippocratic License 원칙을 채택했고, 소프트웨어가 기본적 인권을 침해하는 방식으로 쓰여서는 안 된다고 적는다.

명시적으로 금지하는 것: 무단 침입과 감시, 무단 데이터 수집, 괴롭힘과 신상털기, 협박, 개인 표적화, 정치적 조작, 허위정보 유포다. 별도 면책 문서는 정찰이나 보안 테스트 전에 적법한 권한을 먼저 확보하라고 못 박는다.

라이선스 이력도 눈에 띈다. 원래 AGPL-3.0이었는데 2026년 1월 25일부터 Apache-2.0으로 바뀌었다. 기여자 전원의 서면 동의를 받아 재라이선싱했다고 NOTICE에 적혀 있다. 라이선스는 느슨하게 풀고 윤리는 문서로 조이는 조합이다.

로컬 저장이 법적 안전을 뜻하지 않는다

이 부분이 국내에서 쓸 때 가장 중요하다.

README는 모든 데이터가 내 기기에 저장된다고 강조한다. 사실이다. 그래프는 Neo4j, 케이스 메타데이터는 PostgreSQL, 작업 큐는 Redis에 들어가고 전부 내 디스크의 도커 볼륨이다. 국외 이전 쟁점을 피하는 데는 유리하다.

그런데 수집 단계의 적법 근거와 파기 의무는 그대로 사용자에게 남는다.

Flowsint가 다루는 도메인, IP, 이메일, 전화번호, 사용자명은 다른 정보와 결합하면 특정 개인을 알아볼 수 있다. 그러면 개인정보보호법상 개인정보에 해당할 소지가 크고, "공개된 정보를 모았다"는 이유만으로 면책되지 않는다. 동의 없는 수집은 제15조 제1항의 근거 중 하나에 들어가야 하는데, 민간 조사에서 현실적으로 기댈 곳은 제6호의 "정당한 이익"이다. 이건 정당한 이익과의 상당한 관련성, 그리고 합리적 범위를 넘지 않을 것을 함께 요구해서 적용 범위가 좁다.

특히 유출 자격증명 조회나 계정 프로파일링 enricher는 결과물이 사실상 개인 신상 프로파일이다. 목적 달성에 필요한 최소한을 넘기 쉽고, 유출 정보에는 민감정보가 섞일 수 있다.

실무적으로는 이렇게 쓰는 게 안전하다.

  1. 자사 자산이나 계약으로 위임받은 범위로 대상을 한정한다. 침투테스트 동의서, 사기조사 위임장
  2. 사람 단위 프로파일링 enricher는 기본으로 끈다
  3. 케이스별로 목적, 법적 근거, 보유 기간, 파기 시점을 기록한다
  4. Neo4j와 PostgreSQL 볼륨이 곧 개인정보 파일이다. 디스크 암호화와 접근 통제를 걸고 기간이 지나면 파기한다

법률 자문은 아니다. 구체 사안은 검토를 받아야 한다. 다만 도구를 켜기 전에 이 네 가지를 정해 두지 않으면, 로컬 저장이라는 설계가 주는 안전감이 오히려 위험하다.

누가 쓰면 좋을까

자사 인프라 노출면을 정리하는 보안 담당자에게 실용적이다. 도메인 하나에서 서브도메인, 포트, 기술 스택, TLS 만료를 한 화면에 모으는 데 키가 필요 없다.

사기 조사나 위협 인텔리전스 팀이라면 케이스 관리와 협업자 초대 기능까지 쓸 만하다. 반대로 사람을 추적하는 용도로 쓸 거라면 법적 근거를 먼저 만들어야 한다.

저장소: reconurge/flowsint · 공식: flowsint.io · 2026-09-18에 v1.2.12를 직접 설치해 확인했다. 조회 대상은 RFC 2606 예약 도메인뿐이었다.

15초 요약

인스타그램 릴스로도 올린 영상입니다. HeyGen HyperFrames 로 이 글에서 바로 렌더했습니다.

CONTACT

컨설팅 · 강의 문의

회사 메일로 남겨 주시면 구성과 비용을 안내드립니다.

gmail·naver 같은 개인 메일은 받지 않습니다.