Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
zettelforge — CTI를 위한 Python 기반 에이전틱 메모리 — STIX 지식 그래프, 위협 행위자 별칭 해결, 오프라인 우선 RAG, Claude Code 및 LangChain 에이전트를 위한 MCP 서버 | Kitploit
도구/GitHubGitHub/threatrecall/zettelforge
OSINT (Open Source Intelligence)ReconnaissanceVulnerability AnalysisForensicsInformation GatheringMalware AnalysisThreat IntelligenceMachine LearningLearning & EducationIncident ResponseAI Security
588152개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
threatrecall/zettelforge

zettelforge

CTI를 위한 Python 기반 에이전틱 메모리 — STIX 지식 그래프, 위협 행위자 별칭 해결, 오프라인 우선 RAG, Claude Code 및 LangChain 에이전트를 위한 MCP 서버

저장소 보기웹사이트

ZettelForge

사이버 위협 인텔리전스를 위해 구축된 유일한 에이전틱 메모리 시스템입니다.

시니어 분석가가 떠나면 2~3년치의 컨텍스트도 함께 사라집니다. 고객 환경, 이전 조사, 위협 행위자 TTP, 오탐 패턴, '아, 이거 전에 봤어' 같은 힘들게 얻은 모든 정보가요. ZettelForge는 이러한 컨텍스트가 팀에 남도록 설계된 에이전틱 메모리 시스템입니다.

분석가 노트와 위협 보고서에서 CVE, 위협 행위자, IOC, ATT&CK 기술을 추출하고, 별칭을 해결하며(APT28 = Fancy Bear = STRONTIUM = Sofacy), STIX 2.1 지식 그래프를 구축하고, 과거 모든 조사 내용을 자연어로 분석가와 Claude Code(MCP를 통해)에 제공합니다. 완전히 프로세스 내에서 실행됩니다. API 키 없음, 클라우드 없음, 데이터가 호스트를 떠나지 않습니다.

PyPI Downloads/month Star History Python 3.10+ License: MIT CI Open Issues Ask DeepWiki

스타 · pip install zettelforge · 문서 · ThreatRecall (호스팅) · 변경 로그

v2.6.2 (2026-04-27): 구성 웹 편집기에 모든 열거형 필드(LLM/임베딩 제공자, 로그 수준, PII 조치, 합성 형식)에 대한 드롭다운이 작동하며, 적용 버튼도 작동합니다. 새로운 [crewai] 추가 기능은 ZettelForge를 CrewAI 도구로 노출합니다 -- pip install zettelforge[crewai]. 전체 변경 로그

ZettelForge 데모 -- CTI 에이전틱 메모리 작동 중

ZettelForge가 귀하가 운영하는 CTI 워크플로에 적합하다면, 스타는 이 카테고리에 계속 투자할 가치가 있다는 가장 빠른 신호입니다.

문제

모든 SOC는 분석가를 잃습니다. 그들이 떠나면 조사 컨텍스트, 위협 행위자 귀속, 환경별 오탐 패턴도 함께 사라집니다. 후임자들은 동일한 티켓을 다시 열고, 동일한 보고서를 다시 읽고, 처음부터 동일한 멘탈 모델을 다시 구축해야 합니다.

일반적인 AI 메모리 시스템은 보안 팀을 위해 이 문제를 해결하지 못합니다. APT28과 Fancy Bear를 구분하지 못하고, CVE-2024-3094가 XZ Utils 백도어인지 모르며, Sigma나 YARA를 파싱할 수 없고, MITRE ATT&CK 기술 ID에 대한 개념도 없습니다. CTI 분석가가 1년 치 인텔리전스 보고서를 주면, 채팅 기록에 대한 모호한 의미 검색 결과만 반환합니다.

ZettelForge는 위협 그래프를 생각하는 분석가를 위해 구축되었습니다. CVE, 위협 행위자, IOC, ATT&CK 기술을 자동으로 추출하고, 명명 규칙 간 별칭을 해결하며, 인과 관계가 포함된 지식 그래프를 구축하고, 의도 인식 혼합 검색을 사용하여 메모리를 검색합니다. 모두 프로세스 내에서, 외부 API 의존성 없이 작동합니다.

메모리 증강은 CTI 작업에서 소규모 모델과 대규모 모델 간의 격차 중 33%를 줄입니다 (CTI-REALM, Microsoft 2026, GPT-4를 대규모 모델 기준으로 사용). 전체 벤치마크 보고서에서 방법론과 비교를 확인하세요.

기능ZettelForgeMem0GraphitiCognee
CTI 엔터티 추출 (CVE, 위협 행위자, IOC)예아니요아니요아니요
STIX 2.1 온톨로지예아니요아니요아니요
위협 행위자 별칭 해결예 (APT28 = Fancy Bear)아니요아니요아니요
인과 삼중항이 포함된 지식 그래프예아니요예예
의도 분류 검색 (5가지 유형)예아니요아니요아니요
프로세스 내 / 외부 API 불필요예아니요아니요아니요
OCSF 스키마의 감사 로그예아니요아니요아니요
MCP 서버 (Claude Code)예아니요아니요아니요

데이터 파이프라인

ZettelForge 아키텍처 -- 신경 회상 루프: 수집, 보강, 검색, 합성, SQLite + LanceDB 기반

기능

엔터티 추출 -- CVE, 위협 행위자, IOC(IP, 도메인, 해시, URL, 이메일), MITRE ATT&CK 기술, 캠페인, 침입 세트, 도구, 사람, 위치, 조직을 자동으로 식별합니다. 정규 표현식 + LLM NER을 사용하며, 모든 유형에 STIX 2.1이 적용됩니다.

지식 그래프 -- 엔터티는 노드가 되고, 동시 발생은 엣지가 됩니다. LLM이 인과 삼중항을 추론합니다("APT28 uses Cobalt Strike"). 시간적 엣지와 대체 관계는 인텔리전스의 진화를 추적합니다.

별칭 해결 -- APT28, Fancy Bear, Sofacy, STRONTIUM이 모두 동일한 위협 행위자 노드로 해결됩니다. 저장 및 검색 시 자동으로 작동합니다.

혼합 검색 -- 벡터 유사도(768차원 fastembed, ONNX) + 그래프 탐색(지식 그래프 엣지에 대한 BFS), 의도 분류에 따라 가중치 조정. 5가지 의도 유형: 사실적, 시간적, 관계적, 탐색적, 인과적.

메모리 진화 -- evolve=True로 설정하면 새로운 인텔리전스가 기존 메모리와 비교됩니다. LLM이 ADD, UPDATE, DELETE 또는 NOOP을 결정합니다. 오래된 인텔리전스는 대체됩니다. 모순은 해결됩니다. 중복은 건너뜁니다.

RAG 합성 -- direct_answer 형식으로 저장된 모든 메모리에서 답변을 합성합니다.

프로세스 내 아키텍처 -- 임베딩용 fastembed(ONNX), 로컬 LLM 추론용 llama-cpp-python(선택 사항), 저장용 SQLite + LanceDB, 기본적으로 localhost의 Ollama 사용. 외부 API 키가 필요하지 않습니다. 임베딩/LLM 모델이 다운로드될 때 첫 실행 시 아웃바운드 네트워크 액세스가 발생할 수 있습니다. 모델이 사전 로드된 후에는 완전히 오프라인(에어갭 호스트 포함)에서 실행할 수 있습니다.

OCSF 스키마의 감사 로깅 -- 모든 작업은 Open Cybersecurity Schema Framework 형식의 구조화된 이벤트를 생성합니다. 로그 스트림(SIEM, WORM 저장소 등)으로 무엇을 할지는 사용자에게 달려 있습니다.

빠른 시작

30초 헬로 월드 (LLM 불필요)

pip install zettelforge
from zettelforge import MemoryManager

mm = MemoryManager()

# CTI 저장 -- 엔터티(CVE, 위협 행위자, ATT&CK ID, IOC)가 정규 표현식으로 추출
mm.remember("APT28 uses Cobalt Strike for lateral movement via T1021")
mm.remember("APT28 (Fancy Bear) targets NATO defense contractors with spear-phishing")
mm.remember("CVE-2024-3094 is the XZ Utils backdoor (CVSS 10.0) affecting sshd")

# 검색은 벡터 + 그래프 검색을 혼합하며, 별칭 해결이 적용됨 (Fancy Bear -> APT28)
for note in mm.recall("What tools does Fancy Bear use?", k=3):
    print(f"[{note.metadata.tier}] {note.content.raw}")

위 코드는 외부 서비스 없이 pip install만으로 작동합니다. 임베딩은 fastembed를 통해 프로세스 내에서 실행됩니다(~80MB ONNX 모델이 첫 호출 시 다운로드됨). MemoryManager()는 기본적으로 ~/.amem/에 기록합니다. ZETTELFORGE_DATA_DIR 또는 구성을 통해 재정의 가능합니다. 실행 가능한 복사본은 examples/quickstart.py에 있습니다.

합성 및 더 풍부한 추출을 위한 LLM 추가

ollama pull qwen3.5:9b && ollama serve
# Ollama가 실행 중이면, synthesize()는 저장된 노트 전체에서 실제 요약을 반환
answer = mm.synthesize("Summarize known APT28 TTPs")
print(answer["synthesis"]["answer"])
# 백그라운드 LLM NER은 저장된 노트에 추가 엔터티를 더 풍부하게 함

ZettelForge는 Ollama를 자동 감지합니다. 다른 제공자(local llama-cpp, litellm 100개 이상 제공자, 테스트용 mock)를 사용하려면 구성을 참조하세요. LLM이 없으면 synthesize()는 여전히 구조화된 응답을 반환하지만 answer 필드는 대체 플레이스홀더입니다. pip 전용 모드에서는 remember와 recall만 유용한 결과를 생성합니다.

메모리 진화

# 새로운 인텔리전스 도착 -- evolve=True는 메모리 진화 활성화:
# LLM이 사실을 추출하고, 기존 노트와 비교하여 ADD/UPDATE/DELETE/NOOP 결정
mm.remember(
    "APT28 has shifted tactics. They dropped DROPBEAR and now exploit edge devices.",
    domain="cti",
    evolve=True,   # 기존 APT28 노트는 대체되고, 중복되지 않음
)

작동 방식

모든 remember() 호출은 다음 파이프라인을 실행합니다:

  1. 엔터티 추출 -- 정규 표현식 + LLM NER이 CVE, 침입 세트, 위협 행위자, 도구, 캠페인, ATT&CK 기술, IOC(IPv4, 도메인, URL, MD5/SHA1/SHA256, 이메일), 사람, 위치, 조직, 이벤트, 활동 및 시간 참조(19가지 유형)를 식별
  2. 지식 그래프 업데이트 -- 엔터티가 노드가 되고, 동시 발생이 엣지가 되며, LLM이 인과 삼중항 추론
  3. 벡터 임베딩 -- 768차원 fastembed(ONNX, 프로세스 내, 7ms/임베드)가 LanceDB에 저장
  4. 대체 확인 -- 엔터티 중복 감지가 오래된 노트를 대체로 표시
  5. 이중 스트림 쓰기 -- 빠른 경로는 ~45ms 내에 반환되며, 인과 보강은 백그라운드 작업자에게 지연

모든 recall() 호출은 두 가지 검색 전략을 혼합합니다:

  1. 벡터 유사도 -- 임베딩에 대한 의미 검색
  2. 그래프 탐색 -- 지식 그래프 엣지에 대한 BFS, 홉 거리로 점수 산정
  3. 의도 라우팅 -- 쿼리가 사실적/시간적/관계적/인과적/탐색적으로 분류되며, 유형별로 가중치 조정
  4. 교차 인코더 재순위화 -- ms-marco-MiniLM이 최종 결과를 관련성에 따라 재정렬

60초 만에 Claude Desktop에서 ZettelForge 사용

도구 다운로드