threat-model について
システム設計者やセキュリティレビュー担当者向けの、構造化された脅威モデリングスキルです。STRIDE、DREAD、PASTA、攻撃ツリーを用いて、脅威カタログ、リスクマトリクス、優先度付き緩和ロードマップを作成します。
主な機能
- 01STRIDEによる脅威特定
- 02DREADによるリスク評価
- 03PASTAによるプロセス分析
- 04攻撃ツリーによる分解
- 05MITRE ATT&CKへのマッピング
- 06高リスク向け緩和ロードマップ
活用シーン
- 01システム設計時のリスク特定
- 02セキュリティ監査やコンプライアンス審査の準備
- 03大規模なアーキテクチャ変更後の攻撃対象領域の再評価
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ woohyun212/ security-skill --skill threat-modelインストール後、Claude Code で/threat-modelを入力して読み込まれたか確認します。
同梱ファイルREFERENCE.md
詳細
このスキルでできること
業界標準のフレームワークであるSTRIDE(脅威の分類)、DREAD(リスクのスコアリング)、PASTA(プロセス主導の方法論)、アタックツリー(攻撃の分解)を使用して、対象システムの構造化された脅威モデリング演習をガイドします。MITRE ATT&CKとの対応付けを含む脅威カタログ、リスクマトリックス、優先順位付けされた緩和策のロードマップを作成します。
使用するタイミング
- システム設計やアーキテクチャレビューの際に、実装前にセキュリティリスクを特定するとき
- 文書化された脅威分析が求められるセキュリティ監査やコンプライアンス評価に備えるとき
- 新しいシステムをセキュリティプログラムに導入し、ベースラインとなる脅威の網羅性が必要なとき
- 重要な機能やインフラストラクチャの変更に伴い、攻撃対象領域の再評価が必要なとき
前提条件
- 外部ツールは不要です(方法論/チェックリストに基づきます)
- システムアーキテクチャ図、データフロー図(DFD)、または同等のドキュメントにアクセスできること
- システムの技術スタック、信頼境界、データの機密性レベルに関する知識があること
- (任意)MITRE ATT&CKのリファレンス:https://attack.mitre.org
入力
| 項目 | 説明 | 例 |
|---|---|---|
SYSTEM_NAME | レビュー対象システムの名前 | Payment API v3 |
SYSTEM_TYPE | システムの種類 | web-app / api / microservice / infrastructure |
TECH_STACK | 技術スタック | Node.js, PostgreSQL, Redis, AWS ECS |
DATA_SENSITIVITY | 対象範囲内で最も高いデータ分類 | PII / PCI / internal / public |
REVIEW_SCOPE | レビューの範囲 | All external-facing endpoints and auth flows |
ワークフロー
ステップ 1:システムの分解
脅威を特定する前に、保護が必要な対象を特定します。対象システムに関する以下の情報を収集します。
リファレンス:資産一覧、信頼境界、エントリーポイントのMarkdownテンプレートについては、REFERENCE.mdを参照してください。
データフロー図(DFD)の概要
視覚的なDFDがない場合は、主要なデータフローを番号付きリストで記述します。
## Key Data Flows
1. User submits credentials → Web tier → Auth service → Credentials DB → JWT issued
2. Authenticated user submits payment → Web tier → Payment service → Payment processor (external) → Transaction DB
3. Admin queries reports → Admin UI → Reporting service → Read replica DB
ステップ 2:脅威の特定(STRIDE)
各DFD要素(プロセス、データストア、データフロー、外部エンティティ)と、信頼境界を越える箇所にSTRIDEモデルを適用します。特定した脅威ごとに、T-NNN形式を使用してカタログ項目を作成します。
リファレンス:STRIDEカテゴリの参照表と脅威カタログ項目のテンプレートについては、REFERENCE.mdを参照してください。
すべてのSTRIDEカテゴリとDFD要素を対象に特定した脅威すべてについて、脅威カタログのテンプレートを繰り返し使用します。
ステップ 3:脅威の優先順位付け(DREADスコアリング)
カタログ内の各脅威をDREADモデルでスコアリングします。各評価項目は1~10で採点し、DREADスコアの合計は平均値を小数第1位に丸めた値とします。
リファレンス:DREADの評価項目、スコアリング表のテンプレート、リスクレベルのしきい値については、REFERENCE.mdを参照してください。
CVSSへのマッピング(任意)
正式なCVE形式のスコアリングが必要な脅威については、NVDの計算ツールを使用してDREADと並行してCVSS v3.1の基本スコアを算出します:https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator
ステップ 4:緩和策の設計
HIGHおよびCRITICALの脅威ごとに、多層防御の原則を適用した具体的な緩和策を設計します。
リファレンス:緩和策ロードマップのテンプレートと5x5リスクマトリックスのテンプレートについては、REFERENCE.mdを参照してください。
完了条件
- システムの分解が完了している:資産、信頼境界、エントリーポイント、データフローが文書化されている
- すべてのDFD要素と信頼境界にSTRIDE分析が適用されている
- 特定されたすべての脅威について、STRIDEカテゴリ、攻撃ベクトル、影響、MITRE ATT&CKとの対応付け、既存の対策および推奨対策を含むT-NNN形式のカタログ項目がある
- すべての脅威にDREADスコアとリスクレベルが割り当てられている
- すべてのHIGHおよびCRITICALの脅威を対象とする緩和策ロードマップがある
- 脅威ポートフォリオ全体をまとめたリスクマトリックスがある
- 残存リスクが明示的に認識されている
失敗パターン
| 問題 | 原因 | 解決策 |
|---|---|---|
| 資産一覧が不完全 | システムのドキュメントが欠落している、または古くなっている | システム所有者に聞き取りを行う。ネットワーク図やソースコードからリバースエンジニアリングする |
| STRIDEで脅威が見つからない | 分析の粒度が粗すぎる | システム全体だけでなく、個々のデータフローにSTRIDEを適用する |
| レビュアー間でDREADスコアにばらつきがある | スコアリングが主観的 | 基準となる脅威で調整する(例:新たな脅威を採点する前に、既知のCVEを採点する) |
| 緩和策のロードマップが実行可能でない | 対策が抽象的すぎる | 各対策に、具体的なテクノロジー、設定、またはコード変更を明記する |
| MITRE ATT&CKへのマッピングが不明確 | フレームワークに不慣れ | https://mitre-attack.github.io/attack-navigator/ のATT&CK Navigatorを使用して、テクニックを検索する |
注記
- このスキルでは、最も一般的な4つの脅威モデリングフレームワークを扱います。新しいシステムでは、STRIDE + DREADから始めてください。完全なプロセス追跡が必要となる規制要件に配慮した状況(PCI DSS、HIPAA)では、PASTAを追加します。
- 脅威モデルは継続的に更新されるドキュメントです。アーキテクチャの大幅な変更、新たな外部連携の追加、またはデータ分類の変更後に、このスキルを再実行してください。
- 攻撃ツリーは、価値の高い特定の脅威(例:「攻撃者が管理者アクセス権を取得する」)に最適です。攻撃者の目的をルートに置き、リーフノードが具体的で検証可能な攻撃手順になるまで、AND/ORのサブゴールに分解してツリーを構築します。
- より広範なカバレッジを得るには、Webアプリケーション向けの
owasp-checkと、サプライチェーンの脅威向けのdependency-auditをこのスキルと組み合わせてください。 - MITRE ATT&CK Enterpriseマトリックスのリファレンス:https://attack.mitre.org/matrices/enterprise/