ti-ingest について
ti-ingestは、脅威インテリジェンスのシグナルを、後続の悪用可能性検証に渡すスコープ行へ変換するスキルです。アナリストによる実行や定期ポーリングに対応し、NVD情報の付加と重複排除を行いますが、PoCは実行しません。
主な機能
- 01シグナルデータの読み込みと検証
- 02CVEへのNVD情報付加
- 03アセットとCVEの重複排除
- 04検証用スコープ行の作成
- 05監査用の生データ保存
活用シーン
- 01アナリストのシグナルを検証キューに登録
- 02シグナルファイルの定期処理
- 03同一アセットとCVEの重複登録防止
- 04インベントリにないアセットの識別
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ transilienceai/ communitytools --skill ti-ingestインストール後、Claude Code で/ti-ingestを入力して読み込まれたか確認します。
同梱ファイルreference/ingest-schema.md
詳細
脅威インテリジェンスシグナルの取り込み
脅威インテリジェンスシグナルを、Exploitability Validation Run(クラウドエージェントのタスク #3)が処理する、キューに登録されたエンゲージメントスコープの行に変換します。
トリガー
2 つのモードがあります。
- プロンプト起動:アナリストが手元の
signal.jsonに対してスキルを実行します。 - 定期ポーリング:クラウドエージェントのランタイムが cron(デフォルトでは 15 分ごと)で
{OUTPUT_DIR}/inbox/をポーリングし、新しいシグナルファイルを見つけると処理します。
ワークフロー
- ペイロードを読み取る —
tools/ti-ingest.py --in <path-or-stdin>。 - スキーマを検証する — 必須キー:
signal_id、cve(1 つ以上)、assets(1 つ以上)、claim。任意:confidence、source、references。 - NVD でエンリッチする — ペイロード内の各 CVE について、
tools/nvd-lookup.py <CVE>を実行し、{score, severity, cwe}を行に追加します。 - 重複を排除する —
(asset, cve)のペアがqueue/scope-*.jsonにすでに存在する行はスキップします。以前の行のステータスがREJECTEDであり、かつ TI シグナルのconfidenceが前回の試行より高い場合にのみ、再度キューに登録します。 - キュー行を書き込む —
(asset, cve)のペアごとに、queue/scope-{ts}-{asset_id}-{cve}.jsonという JSON ファイルを 1 つ作成します。Validation Run タスクがこれらを取得します。
出力
{OUTPUT_DIR}/
inbox/
signal-{ts}.json # raw payload, kept for audit
queue/
scope-{ts}-{asset}-{cve}.json
スコープ行ごと:
{
"scope_id": "scope-20260513-asset42-CVE-2024-12345",
"signal_id": "ti-2026-0042",
"asset": {"id": "asset42", "url": "https://app.example.com", "tier": "revenue"},
"cve": "CVE-2024-12345",
"nvd": {"score": 9.8, "severity": "CRITICAL", "cwe": "CWE-79"},
"claim": "Reflected XSS via search parameter",
"confidence": "high",
"source": "vendor-advisory",
"references": ["https://..."],
"queued_at": "2026-05-13T10:00:00Z",
"status": "queued"
}
ルール
- 冪等であること。 同じペイロードに対して再実行しても、キュー行が重複して作成されてはなりません。
- 実行しないこと。 取り込み処理では PoC を実行しません。後続タスク用にスコープをキューに登録するだけです。
- 監査証跡。 変換を行う前に、必ず生のペイロードを
inbox/にコピーします。 - NVD のエラーは処理を妨げないこと。
nvd-lookupでエラーが発生した場合は、nvd: nullおよびnvd_error: "..."を設定して行を書き込み、シグナルを破棄しないでください。 - アセットがインベントリに含まれていること。
asset.idをartifacts/org-surface.json(Org Recon Refresh タスクが生成)と照合します。不明なアセットについても行を作成しますが、unknown_asset: trueのフラグを付け、バリデーターがスキップできるようにします。
参照
reference/ingest-schema.md— 入力/出力の完全な JSON スキーマ。
コメント
Markdown 対応