mcpField
T
threat-modeling

threat-modeling

github.com/hardw00tセキュリティ10758 回インストール28 週間前に更新
リポジトリ

threat-modeling について

設計段階で脅威を洗い出し、緩和策を計画するセキュリティスキルです。STRIDE、PASTA、LINDDUN、攻撃ツリーに加え、ワークフロー、事例、管理策カタログを参照します。

主な機能

  1. 01STRIDEなどの手法に対応
  2. 02OpenAPIとアーキテクチャ分析
  3. 03データフロー図と攻撃ツリーの指針
  4. 04脅威のスコアリングと優先順位付け
  5. 05緩和策と管理策の対応付け
  6. 06構造化されたJSONL出力

活用シーン

  1. 01新しいシステム構成のレビュー
  2. 02API仕様に対する脅威分析
  3. 03データ処理のプライバシーリスク評価
  4. 04緩和策とセキュリティ管理策の対応付け

インストール

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

$npx skills add https://github.com/hardw00t/ai-security-arsenal --skill threat-modeling

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

同梱ファイル

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

examples/
attack_tree_banking.md
bounty_patterns_2024_2026.md
mermaid_dfd_templates.md
stride_threat_library.md
methodology/
attack_trees.md
dread.md
linddun.md
octave.md
pasta.md
stride.md
references/
control_catalogs.md
framework_comparison.md
trust_boundary_patterns.md
schemas/
finding.json
templates/
stride_table.md
threat_model_report.md
workflows/
attack_tree_from_threat.md
dfd_creation.md
stride_from_arch_docs.md
stride_from_openapi.md
threat_to_mitigation.md

詳細

脅威モデリング

設計時に実施する敵対的分析です。システムに対する脅威を列挙し、緩和策を定めます。このスキルでは、手法に関するファイル、ワークフローの手順書、事例ライブラリ、管理策カタログの参考資料を案内します。敵対的な推論を深く行うことが、このスキルの中核的な価値です。脅威の列挙に思考リソースを割いてください。

使用する場面

  • 新しいシステムや大規模なアーキテクチャ変更について、セキュリティレビューが必要な場合。
  • OpenAPI / AsyncAPI の仕様があり、インタラクションごとの STRIDE 分析を自動的に行いたい場合。
  • アーキテクチャのドキュメントや図の脅威分析が必要な場合。
  • 影響の大きい特定の脅威について、攻撃ツリーを用いた詳細分析が必要な場合。
  • プライバシーや個人データの取り扱いについて、脅威分析が必要な場合(LINDDUN)。
  • 緩和策を NIST CSF / NIST 800-53 / CIS / OWASP ASVS に対応付ける必要がある場合。
  • ステークホルダーや監査担当者向けに脅威モデルのレポートを作成する場合。
  • 既存の脅威リストをリスクスコアで優先順位付けする場合。

トリガーフレーズ

  • 「このアプリケーション/サービス/APIの脅威モデルを作成して」
  • 「STRIDE / PASTA / LINDDUN を使って脅威を特定して」
  • 「データフロー図 / DFD を作成して」
  • 「攻撃対象領域を分析して」
  • 「X の攻撃ツリーを作成して」
  • 「これらの脅威を NIST / ASVS / CIS の管理策に対応付けて」

このスキルを使用しない場面

  • 稼働中のエンドポイントに対する実行時 API テスト/悪用 → api-security を使用してください(このスキルは脅威を特定し、api-security は悪用可能性を確認します)。
  • リポジトリ内のコードレベルの脆弱性発見(SAST/DAST/SCA)→ sast-orchestration を使用してください。
  • コンテナイメージの CVE スキャン → container-security を使用してください。
  • クラウド構成の誤り → iac-security / cloud-security スキルを使用してください。
  • 進行中の侵入に対するインシデント対応 → これは設計時の分析です。代わりに IR プレイブックを使用してください。
  • 脅威の列挙を伴わないコンプライアンスギャップ分析のみ → コンプライアンススキルを使用し、設計変更に反映するため、分析結果をここに戻してください。

意思決定ツリー

1. Have an OpenAPI / AsyncAPI spec?
   → workflows/stride_from_openapi.md         (highest-leverage entry point)

2. Have architecture docs or diagrams (or diagram images)?
   → workflows/stride_from_arch_docs.md
     (if diagrams only, first workflows/dfd_creation.md)

3. Need a DFD from scratch?
   → workflows/dfd_creation.md  (emit Mermaid)

4. Already have a high-level threat; need deep path analysis?
   → workflows/attack_tree_from_threat.md

5. Have threats; need mitigations + catalog mappings?
   → workflows/threat_to_mitigation.md

6. Privacy-specific modeling?
   → methodology/linddun.md

7. Enterprise-wide risk?
   → methodology/octave.md

8. Unsure which methodology?
   → references/framework_comparison.md

並列化のヒント

並列化可能:

  • 要素ごとの STRIDE 分析:DFD 全体の各要素にサブエージェントを 1 つずつ割り当てます。
  • カテゴリーごとの STRIDE 分析:システム全体を対象に、STRIDE の各文字(S、T、R、I、D、E)ごとにサブエージェントを 1 つずつ割り当てます。
  • 攻撃ツリーのサブブランチ:最上位の各 OR 分岐を個別に分析できます。
  • 信頼境界の詳細分析:境界ごとにサブエージェントを 1 つずつ割り当てます。
  • OpenAPI オペレーション分析:オペレーションをサブエージェントに分担させます(例:タグごと)。
  • 管理策カタログへの対応付け:検出事項ごとに行います。

逐次実行(並列化しない):

  • DFD の作成 → 脅威の列挙(最初に DFD が必要です)。
  • 脅威の列挙 → 優先順位付け(順位付けには脅威の完全なリストが必要です)。
  • 緩和策の設計 → 残留リスクの評価。
  • 主要な脅威の選定 → 攻撃ツリーの作成。

サブエージェントへの委任

推奨パターン:

パターンサブエージェント使用する場面
STRIDE カテゴリーごと6(S、T、R、I、D、E)システム全体を網羅的に列挙する場合。各サブエージェントは、すべての要素について 1 つのカテゴリーに絞って敵対的な推論を行います。
信頼境界ごと境界ごとに 1 つ複数ゾーンから成るシステムの詳細分析。各サブエージェントは、担当する境界をまたぐ脅威を分析します。
サブシステムごとサービス/コンポーネントごとに 1 つマイクロサービスアーキテクチャ。各サブエージェントが担当サービスの脅威モデルを作成し、その後の統合ステップで重複を排除します。
攻撃ツリーの分岐ごと最上位の OR 子ノードごとに 1 つツリーの展開を並列化する場合。
OpenAPI タググループごとタグごとに 1 つ大規模な仕様で、タグごとにオペレーションを分割する場合。

検出事項の重複(複数のサブエージェントが同じ脅威を特定した場合)を排除し、食い違うリスクスコアを調整する統合エージェントを必ず定義してください。

推論バジェット

拡張思考こそ、このスキルの要です。 脅威の特定は、敵対的な創造性を要する作業です。モデルは拡張思考なしで実行すると、脅威を見落としがちです。

拡張思考を有効にする項目:

  • 初期の脅威の列挙(要素ごと、および相互作用ごと)
  • 信頼境界を越える際の分析
  • 攻撃ツリーの分岐の生成(workflows/attack_tree_from_threat.md のステップ 2)
  • リーフへの注釈付け — 確率とコストの正確な推定
  • ドキュメントに記載されていない新たな悪用事例の発見
  • アーキテクチャが曖昧か、断定可能かの判断

拡張思考を無効にする項目:

  • 調査結果の schemas/finding.json への整形
  • 既知の DFD 構造からの Mermaid の出力
  • コントロール ID の検索(references/control_catalogs.md は決定論的です)
  • テンプレートからのレポートの組み立て

予算の目安:拡張思考のトークンの約 70% を列挙、約 20% を攻撃ツリーの深掘り、約 10% を優先順位付けとコントロールギャップ分析に割り当てます。

マルチモーダルフック

  • 図を入力 → Mermaid を出力:アーキテクチャ図の画像が提供された場合、分析の前に Mermaid として再出力します(曖昧さを検出し、再利用可能な成果物を作成できます)。
  • DFD を出力 → Mermaid:デフォルトの描画形式です。多くのチャット画面でインライン表示されます。
  • 複雑な図(デプロイメントビュー、多数のコンポーネント):PlantUML(@startuml)または Graphviz DOT を使用します。
  • 攻撃ツリー:Graphviz または Mermaid の flowchart TD を使用します。
  • テンプレートギャラリー:すぐにカスタマイズできる図については、examples/mermaid_dfd_templates.md を参照してください。

構造化出力

すべての脅威は schemas/finding.json に準拠します。主なフィールド:

  • threat_id、title、description
  • stride_category(6 つの列挙値の配列)
  • element(名前、種類、テクノロジー)
  • trust_boundary
  • attack_vector、attacker_profile
  • likelihood、impact、risk_score
  • dread_score(D/R/E/A/D と平均値を含むオブジェクト)
  • cwe、capec、mitre_attack
  • mitigations(コントロール/種類/ステータスを含む配列)
  • control_mappings(NIST/CIS/ASVS/ISO/PCI へのマッピング配列)
  • residual_risk、status

一括調査結果は JSONL として出力し、人によるレビュー用の調査結果はレポートテンプレートに出力します。

ワークフロー一覧

ワークフロー目的
workflows/dfd_creation.mdMermaid としてレベル 0/レベル 1 の DFD を作成し、信頼境界を特定します。
workflows/stride_from_openapi.md主要なワークフロー。 OpenAPI/AsyncAPI 仕様 → STRIDE による相互作用ごとの表。
workflows/stride_from_arch_docs.mdアーキテクチャドキュメント(任意の図の画像を含む)→ 完全な脅威モデル。
workflows/attack_tree_from_threat.md高レベルの脅威 → 具体的な攻撃ツリー、最小コスト経路の分析。
workflows/threat_to_mitigation.md調査結果 → 緩和策 + NIST/CIS/ASVS コントロール ID。

手法一覧

ファイル使用場面
methodology/stride.mdデフォルト。要素ごと、および相互作用ごとに分析します。
methodology/pasta.md規制対象/ビジネス整合型。7 段階です。
methodology/attack_trees.md単一目標の詳細分析。AND/OR 分解を行います。
methodology/dread.md迅速なスコアリング。批判と代替手法を含みます。
methodology/linddun.mdプライバシー重視(GDPR/CCPA/HIPAA)。
methodology/octave.mdエンタープライズ全体を対象とした、アセット主導型です。

参照資料一覧

ファイル内容
references/control_catalogs.mdNIST CSF 2.0、800-53 Rev 5、CIS v8、OWASP ASVS v5、ISO 27001、PCI DSS v4。
references/trust_boundary_patterns.md12 種類の一般的な境界パターンと弱点。
references/framework_comparison.md手法を選ぶための意思決定マトリックス。

例の一覧

ファイル内容
examples/mermaid_dfd_templates.mdすぐに調整して使える DFD テンプレート 6 件以上。
examples/stride_threat_library.mdSTRIDE × 要素タイプ別の事前作成済み脅威。
examples/attack_tree_banking.md不正な送金を題材にした、詳細な攻撃ツリー。
examples/bounty_patterns_2024_2026.md2023 年以降に公開されたバグバウンティのパターン 38 件をまとめた、STRIDE の要素別補足資料。

テンプレートの一覧

ファイル内容
templates/threat_model_report.mdレポート全体のひな型。
templates/stride_table.mdSTRIDE の要素別およびインタラクション別の表。

ツール

ツール目的インストール
OWASP Threat DragonDFD + STRIDE の自動提案npm install -g owasp-threat-dragon
Microsoft Threat Modeling ToolWindows ネイティブの STRIDE + DFDMS からダウンロード
Threagileコードとしての脅威モデリング(YAML)Docker イメージ threagile/threagile
draw.io / diagrams.netDFD の手動編集ウェブアプリまたはデスクトップ
Mermaid CLI (mmdc)Mermaid を SVG/PNG にレンダリングnpm install -g @mermaid-js/mermaid-cli
Graphviz攻撃ツリー、DOT のレンダリングapt install graphviz / brew install graphviz
PlantUML複雑な図apt install plantuml

最終検証日

2026-04。参照カタログ:NIST CSF 2.0、NIST 800-53 Rev 5、CIS Controls v8、OWASP ASVS v5、PCI DSS v4.0、ISO/IEC 27001:2022。

コメント