Skip to content
KitploitKITPLOIT
ツールブログ
Log in
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
zettelforge — Python製CTI向けエージェントメモリ — STIXナレッジグラフ、脅威アクターのエイリアス解決、オフラインファーストRAG、Claude CodeおよびLangChainエージェント向けMCPサーバー | Kitploit
ツール/GitHubGitHub/threatrecall/zettelforge
OSINT (オープンソースインテリジェンス)偵察脆弱性分析フォレンジック情報収集マルウェア分析脅威インテリジェンス機械学習学習と教育インシデントレスポンスAIセキュリティ
588142ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
GitHub
threatrecall/zettelforge

zettelforge

Python製CTI向けエージェントメモリ — STIXナレッジグラフ、脅威アクターのエイリアス解決、オフラインファーストRAG、Claude CodeおよびLangChainエージェント向けMCPサーバー

リポジトリを見るウェブサイト

ZettelForge

サイバー脅威インテリジェンスのために構築された唯一のエージェンティックメモリシステム。

上級アナリストが去ると、2~3年分のコンテキスト(顧客環境、過去の調査、攻撃者のTTP、誤検知パターン、苦労して得た「あれ、前に見た」という知識)も一緒に去っていきます。ZettelForgeは、そのコンテキストをチーム内に留めておくために構築されたエージェンティックメモリシステムです。

アナリストのメモや脅威レポートからCVE、脅威アクター、IOC、ATT&CKテクニックを抽出し、エイリアスを解決し(APT28 = Fancy Bear = STRONTIUM = Sofacy)、STIX 2.1ナレッジグラフを構築し、過去のすべての調査を自然言語でアナリストや(MCP経由の)Claude Codeに返します。すべてインプロセスで動作。APIキー不要。クラウド不要。データがホストから出ることはありません。

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

Star · pip install zettelforge · Docs · ThreatRecall (hosted) · Changelog

v2.6.2 (2026-04-27): 設定Webエディタに、すべてのenumフィールド(LLM/埋め込みプロバイダ、ログレベル、PIIアクション、合成フォーマット)で動作するドロップダウンと、動作するApplyボタンが含まれました。新しい[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)YesNoNoNo
STIX 2.1オントロジーYesNoNoNo
脅威アクターのエイリアス解決Yes (APT28 = Fancy Bear)NoNoNo
因果トリプルを持つナレッジグラフYesNoYesYes
意図分類型検索(5種類)YesNoNoNo
インプロセス / 外部API不要YesNoNoNo
OCSFスキーマの監査ログYesNoNoNo
MCPサーバー (Claude Code)YesNoNoNo

データパイプライン

ZettelForgeアーキテクチャ -- ニューラルリコールループ: 取り込み、エンリッチ、検索、合成。SQLite + LanceDBをバックエンドに

機能

エンティティ抽出 -- CVE、脅威アクター、IOC(IP、ドメイン、ハッシュ、URL、メール)、MITRE ATT&CKテクニック、キャンペーン、侵入セット、ツール、人物、場所、組織を自動的に識別します。全体を通して正規表現 + LLM NERとSTIX 2.1タイプを使用。

ナレッジグラフ -- エンティティはノードに、共起はエッジになります。LLMが因果トリプル(「APT28 が 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秒のHello World(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、100以上のプロバイダ向けlitellm、テスト用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() が呼ばれるたびに、2つの検索戦略をブレンドします:

  1. ベクトル類似度 -- 埋め込みに対するセマンティック検索
  2. グラフトラバーサル -- ナレッジグラフエッジ上のBFS、ホップ距離でスコアリング
  3. 意図ルーティング -- クエリを事実/時間/関係/因果/探索に分類し、タイプごとに重みを調整
  4. クロスエンコーダー再ランキング -- ms-marco-MiniLMが最終結果を関連性で再順序付け

ZettelForgeを60秒でClaude Desktopで使用

pip install zettelforge

プロジェクトルート(またはグローバルアクセス用に ~/.claude/.claude.json)に .claude.json を作成または編集:

ツールをダウンロード