자신의 API 키로 실행할 수 있는 오픈 소스 에이전트 기반 OSINT 플랫폼을 구축했습니다
요약
사용자의 API 키를 직접 사용하는 오픈 소스 에이전트 기반 OSINT 플랫폼인 OpenOSINT를 소개합니다. 16개의 도구를 자연어 인터페이스로 통합하며, 클라이언트 측 에이전트 루프와 상태 비저장 백엔드를 통해 데이터 프라이버시를 극대화했습니다.
핵심 포인트
- BYOK(Bring Your Own Key) 방식으로 개인 API 키와 쿼리 보안 유지
- 16개의 OSINT 도구를 하나의 자연어 인터페이스로 오케스트레이션
- 클라이언트 측 에이전트 루프와 상태 비저장 백엔드 아키텍처 채택
- GitHub를 통해 공개된 오픈 소스 프로젝트로 빠른 설치 및 실행 가능
발행 전 — 이 블록을 삭제하세요. dev.to의 GIF에는 Giphy liquid 태그가 없습니다: 직접 https://media.giphy.com/media/<ID>/giphy.gif URL을 가리키는 일반 마크다운 이미지로 임베드하세요 (제한: 프레임당 2,000만 화소). 아래의 모든 은 alt 텍스트가 작성된 플레이스홀더이며 주석에 검색어가 포함되어 있습니다 — Giphy를 열고, Copy link → GIF Link를 클릭한 뒤 붙여넣으세요. 커버 이미지: 1000×420 px, 모든 텍스트는 왼쪽 약 840px 이내에 유지하세요 (소셜 카드는 나머지를 잘라냅니다).
요약 (TL;DR)
- 무엇인가: 오픈 소스, 에이전트 기반 (agentic) OSINT 플랫폼 — 16개의 도구, 하나의 자연어 인터페이스.
- 차별점: BYOK (Bring Your Own LLM Key, 본인의 LLM 키 사용) + 클라이언트 측 에이전트 루프 (client-side agent loop) + 상태 비저장 백엔드 (stateless backend). 귀하의 키와 쿼리는 귀하에게만 머뭅니다.
- 위치: github.com/OpenOSINT/OpenOSINT · 라이브 데모는 demo.openosint.tech에서 확인 가능
- 실행 방법:
git clone,uv sync,uv run openosint repl. 약 2분 소요.
OSINT 도구들은 나쁜 트레이드오프(trade-off)를 강요합니다. 한쪽에는 수동으로 이어 붙여야 하는 연결되지 않은 CLI 스크립트 더미가 있습니다. 다른 한쪽에는 귀하의 조사 데이터를 자신들의 서버에 저장하고 귀하의 카드로 구독료를 결제하려는 세련된 SaaS가 있습니다.
저는 로컬 스크립트의 프라이버시를 유지하면서도 오케스트레이션(orchestration)된 플랫폼의 강력함을 원했습니다 — 그래서 OpenOSINT를 구축했습니다: LLM이 오케스트레이션을 수행하고, 귀하가 직접 API 키를 가져오며, 민감한 정보는 귀하가 제어하지 않는 서버에 전혀 닿지 않습니다.
목차
- 실제로 무엇인지
- 오케스트레이션 (Orchestration) vs 프라이버시
- 중요한 아키텍처: BYOK
- 하나의 코어, 네 개의 프런트엔드
- 엔티티 상관관계 그래프 (Entity Correlation Graph)
- 빠른 시작 (2분)
- Claude (또는 모든 MCP 클라이언트)에 넣기
- BYOK가 핵심인 이유
- 향후 계획
실제로 무엇인지
OpenOSINT는 도구 상자이자 두뇌입니다.
도구 상자: 16가지 OSINT 도구 — 사용자 이름 조회, 이메일/도메인 인텔리전스 (intelligence), IP 지리 위치 (geolocation), 유출 확인 (breach checks), 메타데이터 추출 (metadata extraction) 등. 각 도구는 하나의 작업만을 수행하는 깔끔하고 타입이 지정된 (typed) 함수입니다.
도구 카테고리 보기
- Identity (신원) — 플랫폼 전반에 걸친 사용자 이름 열거 (enumeration), 이메일 유효성 검사 및 평판 (reputation)
- Network (네트워크) — IP 지리 위치 (geolocation), ASN/WHOIS, 역방향 DNS (reverse DNS)
- Domain (도메인) — DNS 레코드, 서브도메인 발견 (subdomain discovery), 인증서 데이터
- Exposure (노출) — 유출/누출 (breach/leak) 확인, 페이스트 (paste) 모니터링
- Artifacts (아티팩트) — 파일 및 이미지 메타데이터 추출
(정확한 도구 목록은 리포지토리(repo)의 README에 있으며, 시간이 지남에 따라 계속 추가됩니다.)
두뇌: 에이전트 루프 (agent loop). 당신이 자연어로 질문하면 — "이 도메인에서 무엇을 찾을 수 있어?" — 모델이 도구를 선택하고, 이를 체이닝 (chaining) 하여, 12개의 가공되지 않은 JSON 블롭 (blobs) 대신 합성된 답변을 전달합니다.
반전 요소: 두뇌는 당신의 키로 실행되며, 루프는 **클라이언트 측 (client-side)**에서 실행됩니다. 백엔드 (backend)는 상태가 없는 디스패처 (stateless dispatcher)입니다.
오케스트레이션 (Orchestration) vs. 개인정보 보호 (privacy)
모든 설정은 선택을 강요합니다. OpenOSINT는 그렇지 않으려 노력합니다.
| 느슨한 스크립트 (Loose scripts) | 호스팅된 SaaS (Hosted SaaS) | OpenOSINT | |
|---|---|---|---|
| 오케스트레이션 (Orchestration) | ❌ 수동 (manual) | ✅ | ✅ |
| ... | |||
중요한 아키텍처: BYOK
한 가지 규칙이 모든 것을 주도합니다: 서버는 가능한 한 적게 알아야 합니다.
┌─────────────────────────────────────┐
│ 당신의 머신 / 브라우저 │
│ ┌──────────────┐ │
...
세 가지 의도적인 선택:
- BYOK (Bring Your Own Key). LLM 추론 (inference)은 여러 제공업체를 위한 어댑터 (adapters)와 함께 클라이언트 측에서 구성됩니다. 당신의 키는 당신의 모델과 통신하며, 백엔드는 이를 절대 볼 수 없습니다.
- 클라이언트 측 에이전트 루프 (Client-side agent loop). 추론 (
동일한 16개의 도구를 네 가지 방식으로 사용하세요 — 이미 작업하고 있는 방식 그대로 OpenOSINT를 활용할 수 있습니다:
- CLI — 스크립팅 및 일회성 조회
- REPL — 터미널에서의 대화형, 상호작용적 조사
- MCP 서버 — Claude 또는 모든 MCP 클라이언트에 연결하세요. 도구들이 어시스턴트에게 직접 제공됩니다.
- Web UI — 시각적 그래프를 제공하는 브라우저 프론트엔드
# CLI: 일회성 실행
openosint lookup username johndoe
...
도구를 한 번만 등록하면 → 어디에서나 나타납니다.
엔티티 상관관계 그래프 (The Entity Correlation Graph)
가공되지 않은 결과는 노이즈에 불과합니다. 조회를 실제 _조사 (investigation)_로 바꾸는 것은 엔티티(entities)가 어떻게 연결되는지 확인하는 것입니다. 즉, 이 사용자 이름이 저 이메일과 연결되고, 그 이메일이 저 도메인으로 해결되며, 그 도메인이 저 IP에서 호스팅되는 과정을 보는 것입니다.
OpenOSINT는 이를 상호작용 가능한 엔티티 상관관계 그래프 (Entity Correlation Graph) (Cytoscape.js)로 렌더링합니다. 노드(nodes)는 엔티티이며, 엣지(edges)는 발견된 관계입니다. 에이전트가 작동함에 따라 드래그하고, 확대하며, 그림이 완성되어 가는 과정을 지켜보세요.
이것은 Palantir Gotham과 같은 플랫폼의 이면에 있는 개념인, 오픈 소스이자 셀프 호스팅 가능한 방식의 제대로 된 온톨로지 (ontology) + 엔티티 해상도 (entity-resolution) 레이어로 조용히 진화하고 있습니다.
빠른 시작 (2분)
Python과 uv를 사용하여:
git clone https://github.com/OpenOSINT/OpenOSINT.git
cd openosint
uv sync
...
자신의 키를 가져오세요:
export OPENOSINT_LLM_PROVIDER=anthropic # 또는 openai 등
export OPENOSINT_API_KEY=sk-...
그런 다음 질문만 하면 됩니다:
> what can you find about the domain example.com?
에이전트가 도구를 선택하고, 실행하고, 출력을 상관 분석하여 답변합니다.
설치하기 전에 먼저 확인하고 싶으신가요? 라이브 데모: demo.openosint.tech.
Claude(또는 모든 MCP 클라이언트)에 바로 넣으세요
OpenOSINT는 MCP 서버를 함께 제공하기 때문에, MCP를 인식하는 어시스턴트가 자신의 추론 과정의 일부로 16개의 도구(tools)를 호출할 수 있습니다. 창 사이를 오가며 복사해서 붙여넣을 필요가 없습니다:
{
"mcpServers": {
"openosint": {
...
BYOK가 핵심인 이유
"Bring your own key (BYOK, 자신의 키 가져오기)"는 마치 비용 절감 기능처럼 들립니다. 하지만 그렇지 않습니다. 이것은 신뢰 (trust) 기능입니다.
OSINT에서 _쿼리(query) 자체_는 민감한 정보입니다. 당신이 프로파일링하고 있는 사용자 이름, 당신이 조사하고 있는 도메인 — 이 모든 것이 당신이 무엇을 작업하고 있는지에 대한 신호가 됩니다. 당신의 LLM 호출을 프록시(proxy)하는 호스팅된 도구는 이 모든 것을 보게 됩니다.
BYOK + 클라이언트 측 루프(client-side loop)를 사용하면:
- 당신의 **프롬프트 (prompts)**는 당신의 기기에서 모델 제공업체로 직접 전달됩니다.
- 당신의 **API 키 (API key)**는 백엔드로 절대 전송되지 않습니다.
- 당신의 **조사 상태 (investigation state)**는 당신의 통제 하에 있습니다.
비공개로 유지하려는 것을 넘겨주지 않고도 오케스트레이션 (Orchestration)을 수행할 수 있습니다.
향후 방향
- 진정한 온톨로지 레이어 (ontology layer) — 라벨이 붙은 덩어리가 아닌, 타입이 지정된 엔티티 (entities)와 관계 (relationships)
- 더 강력한 엔티티 해상도 (entity resolution) ("세 개의 핸들을 사용하는 동일 인물"에 대한 중복 제거)
- 더 많은 도구, 동일한 클라이언트 측, 키 안전 모델 (key-safe model)
MIT 코어는 무료이며 오픈 소스로 유지됩니다. 지향점은 "또 다른 폐쇄적인 SaaS"가 아니라 "자체 호스팅 가능한 Gotham"입니다.
여러분께 질문 하나 드립니다: 어떤 OSINT 소스를 가장 먼저 연결하고 싶으신가요? 댓글로 남겨주세요 — 그것이 실제로 로드맵의 우선순위를 결정하는 방식입니다. 👇
이 내용이 유용했다면, ⭐를 눌러 더 많은 사람에게 전달될 수 있도록 도와주세요:
OpenOSINT / OpenOSINT
대화형 REPL, MCP 서버 및 CLI를 갖춘 AI 기반 OSINT 에이전트. 16개의 도구. Claude, GPT-4 또는 로컬 모델과 함께 작동합니다. 승인된 보안 연구 용도로만 사용하십시오.
mcp-name: io.github.OpenOSINT/openosint
OpenOSINT
보안 연구자 및 분석가를 위한 OSINT 에이전트: 자연어 인터페이스(natural-language interface) 뒤에 18개의 조사 도구가 준비되어 있습니다.
REPL, CLI, MCP 서버 또는 브라우저 Web UI로 사용할 수 있습니다.
AI는 엄격하게 제한된 도구 호출(tool calls)을 수행하며, 사용자의 코드가 실제 바이너리(binary)를 실행합니다 — 환각(hallucination)된 결과가 구조적으로 발생하는 것은 불가능합니다.
브라우저에서 실제 OSINT 조사를 실행해 보세요 — 별도의 가입 없이 본인의 Anthropic / OpenRouter / Ollama 키를 가져와 사용하면 됩니다.
pip install openosint
빠른 시작 (Quick Start)
대화형 AI REPL (기본값)
openosint
웹 인터페이스 (Web interface)
openosint web
직접 도구 사용 (AI 미사용)
openosint email target@example.com
사용법 (Usage)
REPL을 시작하고 어떤 대상이든 조사하십시오 — 에이전트가 어떤 도구를 실행할지 결정하고 조사 결과에 따라 도구들을 체이닝(chaining)합니다:
openosint > investigate target@example.com
-> generate_dorks('target@example.com')
-> search_email('target@example.com')
...
…
공개된 환경에서 단독으로 제작되었습니다. 이슈(Issues)와 PR(Pull Requests)을 환영합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기

