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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
standalone_tdo — LLMを使用してPDF、DOCX、TXTドキュメントから構造化されたサイバー脅威インテリジェンス(CTI)を抽出します。MITRE ATT&CK攻撃フロー、検出機会、および包括的なエンティティ関係グラフを生成します。 | Kitploit
ツール/GitHubGitHub/blevene/standalone_tdo
脆弱性分析情報収集脅威インテリジェンス機械学習論文と研究学習と教育
GitHubblevene/standalone_tdo

standalone_tdo

LLMを使用してPDF、DOCX、TXTドキュメントから構造化されたサイバー脅威インテリジェンス(CTI)を抽出します。MITRE ATT&CK攻撃フロー、検出機会、および包括的なエンティティ関係グラフを生成します。

リポジトリを見る
438ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

TDO スタンドアロン抽出ツール

大規模言語モデル(LLM)と高度な構造化出力機能を用いて、文書からサイバー脅威インテリジェンス(CTI)を抽出するための、強力なスタンドアロン型コマンドラインツールです。

🚀 特徴

  • マルチフォーマット文書対応: PDF、DOCX、TXT、Markdown ファイル
  • 高度なLLM統合: 構造化出力と自動フォールバック解析を備えた Google Gemini モデル
  • 包括的なCTIスキーマ: 豊富なプロパティを備えた12種類のエンティティタイプと24種類のリレーションシップタイプ
  • 検知機会の生成: エビデンスに裏付けられた実践的な脅威検知ルールを作成
  • 攻撃フロー合成: エビデンスに基づく MITRE ATT&CK フロー図を生成
  • 構造化出力の信頼性: 100% の JSON 解析成功率を実現する Pydantic スキーマ
  • 並列処理: 進捗追跡を備えた複数ファイルの同時処理
  • ポータブル&自己完結型: 環境ベースの設定による最小限の依存関係

📋 クイックスタート

1. インストール

root@kitploit:~
# Clone or download the standalone-tdo folder
cd standalone-tdo

# Create virtual environment (recommended)
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

2. 設定

このツールは、.env ファイルから読み込まれる環境変数を設定に使用します:

root@kitploit:~
# Copy the example configuration
cp env.example .env

# Edit .env with your settings
# Required variables:
GEMINI_API_KEY=your-google-ai-api-key-here
GEMINI_MODEL=gemini-2.5-flash

Gemini APIキーの取得:

  1. Google AI Studio にアクセスします
  2. 新しい API キーを作成します
  3. キーを .env ファイルにコピーします

利用可能なモデル:

  • gemini-2.5-flash-preview-05-20(推奨 - 高速かつ費用対効果が高い)
  • gemini-2.5-pro-preview-06-05(より高性能、低速)

3. 基本的な使い方

root@kitploit:~
# Process a single file with all features
python tdo_bulk.py report.pdf --flow --opps

# Process multiple files
python tdo_bulk.py file1.pdf file2.docx file3.txt

# Process all files in a directory with parallel workers
python tdo_bulk.py reports/ -j 4

# Generate comprehensive analysis with evaluation
python tdo_bulk.py report.pdf --flow --opps --eval-opps

🎯 コマンドラインリファレンス

root@kitploit:~
usage: tdo_bulk.py [options] FILE [FILE ...]

Positional Arguments:
  FILE                  One or more files or directories to process

Core Options:
  -o, --output DIR      Output directory (default: ./extracted_data)
  --csv FILE            Export summary to CSV file
  -j, --jobs N          Number of parallel workers (default: 1)
  --retries N           LLM retry count (default: 2)
  --backoff SEC         Exponential back-off base (default: 1.5)

Analysis Features:
  --flow                Generate Attack-Flow JSON
  --opps                Generate Threat Detection Opportunities
  --eval-opps           Evaluate detection opportunities quality
  --debug-opps          Show debug information for opportunity generation

Output Control:
  -q, --quiet           Minimal console output
  -v, --verbose         Debug-level logging
  -h, --help            Show help message and exit

使用例

root@kitploit:~
# Basic CTI extraction
python tdo_bulk.py threat_report.pdf

# Full analysis with all features
python tdo_bulk.py apt_report.pdf --flow --opps --eval-opps

# Batch processing with parallel workers
python tdo_bulk.py reports_folder/ -j 8 --flow --opps

# Export results to CSV
python tdo_bulk.py *.pdf --csv results.csv

# Quiet mode for automation
python tdo_bulk.py reports/ -q -o /var/soc/cti --opps

📊 出力ファイル

処理された各ファイルについて、このツールは以下を生成します:

主要な出力

  • {filename}_extracted.json: 包括的なスキーマを持つ構造化CTIデータ
  • {filename}_{timestamp}.md: すべての分析を含む人間が読めるマークダウンレポート

オプション出力(フラグ指定時)

  • 攻撃フローJSON: エビデンスに基づく MITRE ATT&CK フロー構造(--flow 指定時)
  • 検知機会: エビデンス付きの実践的な検知ルール(--opps 指定時)

🔍 CTIスキーマ概要

エンティティタイプ(12種類)

エンティティタイプ説明主要プロパティ
ThreatActorサイバー脅威グループaliases, primary_motivation, first_seen
Tool正規のソフトウェアfamily, capabilities, kill_chain_phases
Malware悪意のあるソフトウェアfamily, capabilities, first_seen, last_seen
TechniqueMITRE ATT&CK のテクニックid (T1234), description, kill_chain_phases
TacticMITRE ATT&CK のタクティクid (TA0001), description
InfrastructureIPアドレス、ドメイン、URLtype, tags, first_seen, last_seen
Indicatorファイルハッシュ、パターンvalue, pattern, valid_from, valid_until
VulnerabilityCVEエントリid, cvss_score, affected_software
Campaign名称付きの攻撃キャンペーンobjective, status, first_seen
Identity標的となる組織type, description
CourseOfAction緩和策、パッチtype, description
Source文書の出典情報filename, document_title, file_size_mb

リレーションシップタイプ(24種類)

属性・攻撃者関連のリレーションシップ:

  • USES_TOOL, USES_TECHNIQUE, CONDUCTS, ATTRIBUTED_TO, TARGETS

技術関連のリレーションシップ:

  • TOOL_IMPLEMENTS_TECHNIQUE, HOSTS_ON, COMMUNICATES_WITH, VARIANT_OF
  • DROPS, DOWNLOADS, INDICATES, OBSERVED_ON, EXPLOITS

高度なリレーションシップ:

  • MITIGATES, DETECTS, IS_SUBTECHNIQUE_OF, FLOW_CONTAINS_STEP
  • FLOW_USED_BY_ACTOR, OBSERVES, SOURCED_FROM

すべてのリレーションシップは、confidence、source、first_seen、last_seen などのプロパティをサポートしています。

💡 検知機会

このツールは、エビデンスに基づく検知機会を以下の機能付きで生成します:

コア機能

  • テクニックマッピング: 特定の MITRE ATT&CK テクニックへのリンク
  • 監視可能なアーティファクト: 検知するための具体的な指標
  • 挙動パターン: 監視すべきシーケンスとパターン
  • エビデンスの引用: ソースレポートからの直接引用
  • 信頼度スコア: 信頼性の評価(0.0〜1.0)
  • 品質評価: 判定基準の内訳による自動スコアリング

出力例

root@kitploit:~
{
  "id": "opp-001",
  "name": "Detect PowerShell Process Injection",
  "technique_id": "T1055",
  "artefacts": ["powershell.exe with WriteProcessMemory calls"],
  "behaviours": ["Process injection into legitimate processes"],
  "rationale": "APT groups commonly use PowerShell for process injection",
  "confidence": 0.8,
  "source": "PowerShell used for process injection (T1055)",
  "evidence": [
    "• PowerShell executes WriteProcessMemory calls (line 45)",
    "• Relationship: ThreatActor USES_TECHNIQUE T1055"
  ]
}

🔗 攻撃フロー合成

拡張された攻撃フローは以下を提供します:

  • エビデンスに基づく順序付け: 時間的・因果的なエビデンスに裏付けられたステップ
  • エンティティ参照: 各ステップが抽出されたCTIエンティティを参照
  • 明示的な推論: 引用付きでのステップ順序の根拠
  • 包括的なカバレッジ: 攻撃ライフサイクル全体をカバーする最大25ステップ

攻撃フローの例

root@kitploit:~
{
  "flow": {
    "label": "AttackFlow",
    "pk": "attack-flow--uuid",
    "properties": {
      "name": "APT29 Multi-stage Attack",
      "description": "Sophisticated spear-phishing to data exfiltration flow"
    }
  },
  "steps": [
    {
      "order": 1,
      "entity": {"label": "Technique", "pk": "T1566.001"},
      "description": "Spear-phishing attachment delivery",
      "reason": "Initial access method cited in report section 2.1"
    }
  ]
}

🏗️ アーキテクチャ概要

コアコンポーネント

🎯 メインCLI(tdo_bulk.py)

  • 引数解析と環境検証を備えたエントリポイント
  • python-dotenv を使用して .env 設定を読み込み
  • 進捗追跡付きの一括処理をオーケストレーション

⚙️ 一括ランナー(tdo_bulk_runner.py)

  • ThreadPoolExecutor による並列処理を管理
  • 抽出パイプラインの各ステージを調整
  • 進捗コールバックとエラーリカバリを処理

🧠 CTI抽出器(tdo_core/extractors/report_processor.py)

  • 文書解析: マルチフォーマット対応(PDF、DOCX、TXT、MD)
  • LLM統合: 構造化出力を備えた Google Gemini
  • フォールバック解析: 構造化出力が失敗した場合の手動 JSON 解析
  • トークン管理: 大きな文書の自動チャンク分割
  • スキーマ検証: Pydantic モデルによるデータ整合性の保証

🔍 TDOジェネレーター(tdo_core/detection/opportunity_generator.py)

  • エビデンスに基づく検知機会の作成
  • MITRE ATT&CK テクニックのマッピング
  • スコアリング基準による品質評価
  • 詳細分析のためのデバッグモード

🌊 攻撃フローシンセサイザー(tdo_core/flows/attack_flow_synthesizer.py)

  • エビデンスに裏付けられた LLM ベースのフロー生成
  • 単純なフローのためのルールベースのフォールバック
  • 明示的な推論を伴うステップの順序付け
  • エンティティ関係の分析

📝 レポートジェネレーター(tdo_core/report/md_export.py)

  • 人間が読めるマークダウンレポートの作成
  • 構造化データの提示
  • すべての分析コンポーネントの統合

🎨 プロンプト管理(tdo_core/llm/prompts.py)

  • 集中管理されたプロンプトテンプレート
  • 構造化出力の最適化
  • LLM 対話のベストプラクティス

データフロー

root@kitploit:~
Document Input → Text Extraction → LLM Processing → Structured Output
     ↓              ↓                 ↓               ↓
   PDF/DOCX      Clean Text       Gemini API     JSON + Fallback
     ↓              ↓                 ↓               ↓
 Multi-format   Preprocessing    Pydantic Schema  Validation
     ↓              ↓                 ↓               ↓
File Support   Text Cleaning    Structured Data   CTI Graph
                                      ↓
                              Post-Processing
                                 ↓         ↓
                          Attack Flows  Detection Opps
                                 ↓         ↓
                            Markdown Report Export

🛠️ 詳細設定

環境変数

変数必須説明例
GEMINI_API_KEY✅Google AI API キーAIza...
GEMINI_MODEL✅使用する Gemini モデルgemini-2.5-flash-preview-05-20

モデル選択ガイド

モデル速度品質コストユースケース
gemini-2.5-flash-preview-05-20⚡ 高速🎯 良好💰 低本番環境、一括処理
gemini-2.5-pro-preview-06-05🐌 低速🏆 優秀💸 高複雑な分析、調査

🔧 トラブルシューティング

よくある問題

環境変数の欠落

root@kitploit:~
Error: Required environment variables missing: GEMINI_API_KEY, GEMINI_MODEL

解決策: 両方の必須変数を含む .env ファイルを作成します

サポートされていないファイル形式

root@kitploit:~
Skipping unsupported file: document.rtf

解決策: PDF、DOCX、TXT、MD 形式に変換します

LLM処理エラー

root@kitploit:~
Structured Gemini API error: ...

解決策:

  • API キーの有効性を確認します
  • モデル名のスペルを確認します
  • まず小さな文書で試します
  • 詳細なエラーログには --verbose を使用します

JSON解析の問題

このツールは JSON 解析の問題を以下の方法で自動処理します:

  • 主要な方法としての構造化出力
  • 手動解析のフォールバック
  • 途中で切れたレスポンスの JSON 修復
  • グレースフルなエラーリカバリ

パフォーマンス最適化

  • 並列処理: 複数ファイルには -j フラグを使用します
  • モデル選択: 一括処理には高速なモデルを使用します
  • クワイエットモード: 自動化スクリプトには -q を使用します
  • 出力管理: カスタム出力ディレクトリで整理します

デバッグモード

root@kitploit:~
# Enable verbose logging
python tdo_bulk.py report.pdf -v

# Debug detection opportunities
python tdo_bulk.py report.pdf --opps --debug-opps

# Export detailed logs
python tdo_bulk.py report.pdf -v > processing.log 2>&1

📦 依存関係

このツールには Python 3.9 以降と、以下の主要パッケージが必要です:

  • google-generativeai: 構造化出力を備えた Google AI(Gemini)API クライアント
  • PyMuPDF: 高性能な PDF テキスト抽出
  • python-docx: Microsoft Word 文書の処理
  • pandas: データ操作と CSV エクスポート
  • pydantic: スキーマ検証と構造化出力
  • python-dotenv: 環境変数の管理
  • cleantext: テキスト前処理ユーティリティ

🚧 制限事項

このスタンドアロンバージョンには以下がありません:

  • ナレッジグラフや Neo4j の統合は含まれない
  • 類似検索のためのベクターデータベース機能はサポートしない
  • リアルタイムの検索拡張(RAG)機能はない
  • フルTDOプラットフォームと比較して簡略化されている

ただし、ほとんどのユースケースに必要なコアとなるCTI抽出・分析機能はすべて含まれています。

🔄 最近の拡張機能

  • 環境設定: dotenv による .env ファイル管理に移行
  • 構造化出力: Google Gemini の構造化出力による 100% 信頼性の高い JSON 解析
  • 拡張されたスキーマ: 包括的な12種類のエンティティタイプと24種類のリレーションシップタイプ
  • 検知機会: 評価付きのエビデンスベースの検知ルール生成
  • 攻撃フローの改善: エビデンスの裏付けと明示的な推論で拡張
  • ハードコードされたデフォルトなし: すべての設定は環境変数から取得
  • 堅牢なエラーハンドリング: 自動フォールバック解析とグレースフルなエラーリカバリ

🔒 セキュリティに関する考慮事項

APIキーの保護

  • .env ファイルをコミットしないでください - .gitignore により除外されています
  • 環境変数を使用して GEMINI_API_KEY を安全に保管します
  • API キーを定期的にローテーションします
  • 詳細なセキュリティガイダンスについては、SECURITY.md を確認してください

データプライバシー

  • 文書テキストは処理のために Google の Gemini API に送信されます
  • 機密文書を処理する前に、Google の AI データ使用ポリシーを確認してください
  • 抽出データには機密情報(IOC、組織名、ファイルパス)が含まれる場合があります
  • 組織外で共有する前に出力を確認してください

出力データ

抽出された JSON および Markdown ファイルには以下が含まれる場合があります:

  • IPアドレスとドメイン名(インフラストラクチャ指標)
  • ファイルハッシュと技術的指標
  • 組織および標的に関する情報
  • 詳細な脅威アクターおよびキャンペーンデータ

公開前に必ず出力を確認してください。

セキュリティ問題の報告

セキュリティ脆弱性は責任を持って報告してください。詳細は SECURITY.md を参照してください。

📄 ライセンス

このプロジェクトは MIT ライセンスの下で提供されています。詳細は LICENSE を参照してください。

🤝 コントリビューション

コントリビューションを歓迎します! ガイドラインについては CONTRIBUTING.md をお読みください。


ヘルプが必要ですか? クイックリファレンスとして python tdo_bulk.py --help を実行するか、上記のトラブルシューティングセクションを確認してください。

ツールをダウンロード