mcpField
C
cti-domain-research

cti-domain-research

github.com/security-phoenix-demoセキュリティ8147 回インストール7 週間前に更新
リポジトリ

cti-domain-research について

cti-domain-researchは、数百の厳選されたセキュリティドメインを検索する脅威インテリジェンス調査スキルです。クエリに応じて情報源を選び、IOC、TTP、CVEを抽出し、NotebookLMへの取り込みにも対応します。

主な機能

  1. 01クエリ種別に応じたドメイン選択
  2. 02新しさと権威性による結果の順位付け
  3. 03IOC、TTP、CVEの抽出
  4. 04表、詳細レポート、JSONで出力
  5. 05NotebookLMへの任意取り込み

活用シーン

  1. 01CVEやベンダー勧告の調査
  2. 02脅威アクターやマルウェアの追跡
  3. 03エクスプロイトやセキュリティニュースの把握

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/security-phoenix-demo/security-skills-claude-code --skill cti-domain-research

インストール後、Claude Code で/cti-domain-researchを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
domains.txt
tier-map.json
scripts/
cti-search.md
install.sh

詳細

CTI ドメイン調査

300 以上の厳選されたセキュリティドメインを対象とする、構造化された脅威インテリジェンス検索です。NotebookLM への取り込みにも対応しています。


カスタマイズ

CTI 調査ワークフローをカスタマイズするには、以下の設定を行います。すべて任意です。スキルは適切なデフォルト設定ですぐに利用できます。

設定説明デフォルト設定方法
検索プロバイダー使用する検索 APIBrave Search.env で SEARCH_PROVIDER=brave
Brave API キーお使いの Brave Search API キー—(必須).env で BRAVE_SEARCH_API_KEY=...
SerpAPI キー代替の検索プロバイダー—.env で SERPAPI_KEY=...
Google CSE キー + ID代替の検索プロバイダー—.env で GOOGLE_CSE_KEY=... + GOOGLE_CSE_ID=...
NotebookLM ノートブック ID--notebooklm フラグの対象ノートブック—.env で NOTEBOOKLM_NOTEBOOK_ID=... または --notebook-id フラグ
デフォルトの結果数ティアごとの結果数10クエリごとに --count N フラグを指定
デフォルトの期間検索対象とする期間90 日クエリごとに --since DAYS フラグを指定
カスタムドメイン独自のセキュリティ情報源を追加組み込みで 595 件data/domains.txt と data/tier-map.json を編集

セットアップ手順:

  1. プラグインディレクトリで .env.example を .env にコピーします
  2. 検索 API キーを追加します(Brave を推奨。月 2,000 件のリクエストが無料です)
  3. 必要に応じて NotebookLM ノートブック ID を設定します
  4. Claude Code を再起動します
cd ${CLAUDE_PLUGIN_ROOT}
cp .env.example .env
# Edit .env with your API keys

カスタムドメインの追加:

# Add a domain (one per line)
echo "your-security-blog.com" >> data/domains.txt

# Add tier mapping
# Edit data/tier-map.json and add:
# "your-security-blog.com": { "tier": 3, "authority": 70 }

ワークフロー

1. Parse query + flags
2. Select domain tier(s) based on query type
3. Execute scoped web searches (site: operator per domain batch)
4. Deduplicate + rank results by recency and source authority
5. Extract: title, source, date, summary, key IOCs/TTPs/CVEs mentioned
6. [Optional] Push findings to NotebookLM via connector plugin
7. Return structured CTI brief

クエリの解析

自由形式のクエリを受け付けます。以下の情報を抽出します。

  • 対象:CVE ID、アクター名、マルウェアファミリー、手法(MITRE ATT&CK)、製品名
  • 期間フィルター:デフォルトは過去 90 日間です。「先週/先月/昨年」と指定された場合はそれに従います
  • 深さ:デフォルトは上位 10 件です。--count N で上書きできます
  • 出力形式:デフォルトは簡潔な表 + 箇条書きです。--full は詳細なブリーフ、--json は未加工の JSON を返します
  • NotebookLM への送信:--notebooklm フラグを指定するとコネクターが実行されます(下記の NotebookLM セクションを参照)

ドメインティア

references/domains.txt からドメイン一覧全体を読み込み、以下のティアに振り分けます。

ティア使用する場面例
ティア 1 — 権威ある情報源CVE、アドバイザリー、政府の警告cisa.gov, nvd.nist.gov, msrc.microsoft.com, access.redhat.com, support.apple.com, cert.europa.eu, ncsc.gov.uk
ティア 2 — ベンダーの調査情報詳細な技術分析unit42.paloaltonetworks.com, blog.talosintelligence.com, securelist.com, research.checkpoint.com, thedfirreport.com, blog.google, mandiant.com, secureworks.com, sentinelone.com, crowdstrike.com
ティア 3 — ニュース + コミュニティ状況把握bleepingcomputer.com, krebsonsecurity.com, therecord.media, thehackernews.com, arstechnica.com, reddit.com/r/cybersecurity, news.ycombinator.com
ティア 4 — 専門情報源マルウェア、PoC、OSINTany.run, otx.alienvault.com, vulncheck.com, attackerkb.com, greynoise.io, hunt.io, packetstormsecurity.com

振り分けロジック:

  • CVE クエリ → まずティア 1、次にティア 2
  • 脅威アクター/マルウェア → まずティア 2、次にティア 4
  • 状況把握/ニュース → まずティア 3、次にティア 2
  • PoC/エクスプロイト → ティア 4 + ティア 2
  • 一般的なクエリ → すべてのティアを対象に、権威性スコア順に並べます

検索の実行

site: で範囲を指定してウェブ検索ツールを使用します。1 回の検索で網羅できる範囲を最大化するため、ドメインをまとめます。

# Example batch query construction
query = f'"{subject}" site:bleepingcomputer.com OR site:krebsonsecurity.com OR site:therecord.media'

# For CVEs, always include NVD and MSRC
query = f'{cve_id} site:nvd.nist.gov OR site:msrc.microsoft.com OR site:cisa.gov'

--full が指定された場合は、複数の検索を並列で実行します。

  1. ティア 1 のグループ
  2. ティア 2 のグループ
  3. ティア 3 + 4 のグループ

結果スキーマ

各結果から以下を抽出します。

{
  "title": "...",
  "source": "domain.com",
  "url": "https://...",
  "published": "YYYY-MM-DD",
  "authority_tier": 1,
  "summary": "1-2 sentence distillation",
  "tags": ["CVE-XXXX", "ransomware", "RCE", "MITRE:T1190"],
  "iocs": ["hash", "IP", "domain"],
  "severity": "Critical|High|Medium|Low|Info"
}

出力形式

デフォルト — CTI ブリーフ(表 + 箇条書き)
## CTI Brief: <query> — <date>

### Key Findings
- [Critical] <1-line finding> — <source> (<date>)
- [High] ...

### Source Table
| Source | Title | Date | Tags |
|--------|-------|------|------|
| bleepingcomputer.com | ... | ... | ransomware, RCE |

### IOC Summary
IPs: ...  Hashes: ...  Domains: ...

### Next Steps
- Patch priority: ...
- Detection: MITRE T-IDs to hunt
- Intel gaps: ...
--full — 詳細ブリーフ

追加内容:エグゼクティブサマリー、情報源ごとの分析段落、MITRE ATT&CK 対応表、推奨される検出ルール(Sigma ヘッダースタブ)。

--json

結果オブジェクトの未加工の JSON 配列を返します(上記のスキーマを使用)。


NotebookLM との連携

--notebooklm フラグが設定されている場合、NotebookLM コネクタープラグインを使用して調査結果を取り込みます。

プラグインの場所(Claude Code): ~/.claude/plugins/notebooklm-connector/
プラグインのリポジトリ: https://github.com/Security-Phoenix-demo/security-skills-claude-code/tree/main/plugins/notebooklm-connector

コネクターのフロー:
1. Collect all result URLs from the search phase
2. Format as source list per plugin spec
3. Call connector to add sources to target NotebookLM notebook
4. Report: N sources added, notebook URL
プラグインの呼び出しパターン(Claude Code):
# Check connector is installed
ls ~/.claude/plugins/notebooklm-connector/

# Call connector with source list
node ~/.claude/plugins/notebooklm-connector/index.js \
  --notebook-id "$NOTEBOOKLM_NOTEBOOK_ID" \
  --sources "$(echo $URLS | jq -R -s 'split("\n")')" \
  --title "CTI: $QUERY — $(date +%Y-%m-%d)"
必須の環境変数:
export NOTEBOOKLM_NOTEBOOK_ID="<your-notebook-id>"
# Or pass via --notebook-id flag at query time
フォールバック(Claude.ai — プラグインのランタイムなし):

Claude.ai(bash なし)で実行している場合は、ユーザーが手動で NotebookLM に追加できるよう、書式を整えたソース一覧を提示します。ノートブックの ID がわかっている場合は、直接リンクも提示します。


スラッシュコマンド(Claude Code)

~/.claude/commands/cti-search.md を作成してインストールします:

---
description: "Search 300+ security domains for CTI on any topic, CVE, actor, or malware"
argument-hint: "<query> [--count N] [--full] [--json] [--notebooklm] [--notebook-id ID]"
allowed-tools: WebSearch, Bash
---

Search curated security domains for threat intelligence on: $ARGUMENTS

Follow the CTI Domain Research skill (cti-domain-research) exactly.
Domain list: ~/.claude/commands/cti-domains.txt

Flags:
- --count N        : Return N results (default 10)
- --full           : Long-form brief with MITRE mapping
- --json           : Raw JSON output
- --notebooklm     : Push sources to NotebookLM after search
- --notebook-id ID : Target notebook ID (overrides env var)
- --tier 1|2|3|4   : Restrict to specific domain tier
- --since DAYS     : Limit to last N days (default 90)

インストールスクリプト

scripts/install.sh を実行して、次の操作を行います:

  1. スラッシュコマンドを ~/.claude/commands/ にコピーする
  2. ドメイン一覧を ~/.claude/commands/cti-domains.txt にコピーする
  3. NotebookLM コネクタープラグインが存在することを確認する
  4. セットアップ完了を表示する

詳しくは scripts/install.sh を参照してください。


エラー処理

条件動作
ドメインのバッチで結果がないその階層をスキップして次を試す。すべての階層で結果がない場合は警告する
NotebookLM コネクタープラグインがインストールされていない警告し、手動のソース一覧にフォールバックする
検索でレート制限に達した2 秒待機して一度再試行し、部分的な結果を提示する
クエリの範囲が広すぎる(潜在的な結果が 1000 件を超える)自動的に Tier 1 と Tier 2 のみに絞り込み、条件の絞り込みを提案する
CVE がまだ NVD に登録されていない「CVE は NVD 登録前の可能性があります。ベンダーのアドバイザリーを直接確認してください」と注記する

参照ファイル

  • references/domains.txt — 厳選されたドメインの完全な一覧(300 件以上のソース、1 行につき 1 件)
  • references/tier-map.json — ドメインから階層および信頼性スコアへのマッピング
  • scripts/install.sh — Claude Code のスラッシュコマンドを一括でインストールするスクリプト

コメント