mcpField
T
threat-modeling-techniques

threat-modeling-techniques

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

threat-modeling-techniques について

threat-modeling-techniquesは、システム設計に取り組む開発者、アーキテクト、セキュリティチーム向けの脅威モデリングスキルです。STRIDE、攻撃ツリー、DREADによるリスク評価を軸に、脅威の特定から緩和までを体系化します。

主な機能

  1. 015段階の脅威モデリングプロセス
  2. 02STRIDEによる脅威分類
  3. 03攻撃ツリーによる攻撃経路の整理
  4. 04DREADによるリスク評価
  5. 05信頼境界と対策の確認
  6. 06緩和策とセキュリティ要件の計画

活用シーン

  1. 01新システムや機能の脅威特定
  2. 02アーキテクチャと外部連携のレビュー
  3. 03リスクに基づくセキュリティ対策の優先付け
  4. 04セキュリティ判断の記録とテスト計画

インストール

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

$npx skills add https://github.com/nickcrew/claude-cortex --skill threat-modeling-techniques

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

同梱ファイル

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

references/
attack-trees.md
data-flow-diagrams.md
dread-scoring.md
mitigation-strategies.md
stride-disclosure.md
stride-dos.md
stride-elevation.md
stride-repudiation.md
stride-spoofing.md
stride-tampering.md
tools-and-process.md

詳細

脅威モデリングの手法

STRIDE、攻撃ツリー、リスク評価フレームワークなど、実績のある方法論を使用して、システムの設計・アーキテクチャ段階でセキュリティ脅威を特定、分析、軽減するための体系的なフレームワークです。

このスキルを使用する場面

  • セキュリティ要件を伴う新しいシステムや機能を設計するとき
  • セキュリティアーキテクチャレビューを実施するとき
  • 攻撃経路や脅威シナリオを特定するとき
  • 実装前にセキュリティリスクを評価するとき
  • セキュリティ要件や対策を作成するとき
  • サードパーティとの統合によるセキュリティへの影響を評価するとき
  • セキュリティテスト戦略を計画するとき
  • セキュリティ設計の決定事項を文書化するとき
  • チームに先を見越したセキュリティ思考を教育するとき
  • セキュリティコンプライアンスの取り組み(SOC 2、ISO 27001)を支援するとき

中核となるプロセス

5段階の脅威モデリングプロセス:

  1. 定義 - システムを理解し、アーキテクチャ図を作成します
  2. 特定 - 構造化された方法論(STRIDE、攻撃ツリー)を使用して脅威を列挙します
  3. 評価 - リスクの重大度と発生可能性を評価します(DREAD スコアリング)
  4. 軽減 - 対策と防御策を設計します
  5. 検証 - セキュリティ対策をレビューし、テストします

クイックリファレンス

タスクリファレンスを読み込む
STRIDE:なりすましskills/threat-modeling-techniques/references/stride-spoofing.md
STRIDE:データの改ざんskills/threat-modeling-techniques/references/stride-tampering.md
STRIDE:否認skills/threat-modeling-techniques/references/stride-repudiation.md
STRIDE:情報漏えいskills/threat-modeling-techniques/references/stride-disclosure.md
STRIDE:サービス拒否skills/threat-modeling-techniques/references/stride-dos.md
STRIDE:権限昇格skills/threat-modeling-techniques/references/stride-elevation.md
攻撃ツリーskills/threat-modeling-techniques/references/attack-trees.md
データフロー図(DFD)skills/threat-modeling-techniques/references/data-flow-diagrams.md
DREAD リスクスコアリングskills/threat-modeling-techniques/references/dread-scoring.md
軽減策skills/threat-modeling-techniques/references/mitigation-strategies.md
ツールとプロセスskills/threat-modeling-techniques/references/tools-and-process.md

中核となる概念

STRIDE 方法論

STRIDEは脅威を次の6種類に分類します。

  • Spoofing(なりすまし):他者や別のものになりすますこと(認証の回避、認証情報の窃取)
  • Tampering(改ざん):データを悪意を持って変更すること(中間者攻撃、データ破損)
  • Repudiation(否認):証拠なしに行為を否定すること(監査証跡の欠如)
  • Information Disclosure(情報漏えい):機密データを露出させること(データ漏えい、詳細すぎるエラー)
  • Denial of Service(サービス拒否):システムを利用不能にすること(リソース枯渇、DDoS)
  • Elevation of Privilege(権限昇格):許可されていない機能を得ること(権限昇格、IDOR)

STRIDE の適用対象:

  • データフロー図内の各コンポーネント
  • 信頼境界を越えるすべての箇所
  • すべてのデータストアとプロセス
  • 外部との統合および API
攻撃ツリー

目標から手法に至る攻撃経路を示す階層図です。

[Root: Attack Goal]
    |
    +-- [OR] Method 1 (alternative paths)
    |       |
    |       +-- [AND] Required Step 1.1
    |       +-- [AND] Required Step 1.2
    |
    +-- [OR] Method 2 (alternative paths)

攻撃ツリーの用途:

  • 攻撃シナリオを可視化する
  • 最も容易な攻撃経路を特定する
  • 属性(コスト、スキル、検知可能性)を割り当てる
  • リスクの高い経路に対する軽減策の優先順位を決める
DREAD リスクスコアリング

DREADは脅威の重大度を定量化します(各基準を0~10で採点し、その平均をリスクスコアとします)。

  • Damage Potential(潜在的な被害):悪用された場合、どの程度の被害が生じますか?
  • Reproducibility(再現性):どの程度容易に再現できますか?
  • Exploitability(悪用可能性):どの程度容易に悪用できますか?
  • Affected Users(影響を受けるユーザー):何人のユーザーが影響を受けますか?
  • Discoverability(発見可能性):どの程度容易に発見できますか?

リスクレベル:

  • 7.1~10.0:重大(直ちに対応)
  • 5.1~7.0:高(次のスプリントで対応)
  • 3.1~5.0:中(今後のリリースで対応)
  • 0.0~3.0:低(バックログ)
信頼境界

異なる信頼レベルを分ける線です。

  • ネットワーク:インターネット → DMZ → 内部
  • プロセス:ユーザーモード → カーネル、コンテナー → ホスト
  • ユーザー:匿名 → 認証済み → 管理者

各境界で確認する項目:

  • 認証が必要ですか?
  • 認可チェックが適用されていますか?
  • データは暗号化されていますか?
  • 入力は検証されていますか?
  • 操作はログに記録されていますか?

実践的なワークフロー

1. スコープの定義(30 分)
  • 対象範囲に含めるシステムコンポーネントを特定します
  • 信頼境界を定義します
  • 保護が必要な資産をリストアップします
  • コンプライアンス要件を特定します
2. アーキテクチャの分解(1 時間)
  • データフロー図(DFD)を作成します
  • 外部依存関係を文書化します
  • 認証/認可の適用箇所を特定します
  • データの保存場所をマッピングします
3. 脅威の特定(1~2 時間)
  • 各 DFD 要素に STRIDE を適用します
  • 価値の高い資産について攻撃ツリーを作成します
  • チームで脅威シナリオをブレインストーミングします
  • 脅威モデリングツールを使って提案を得ます
4. リスク評価(1 時間)
  • 各脅威に DREAD スコアリングを適用します
  • リスクスコアに基づいて脅威に優先順位を付けます
  • ビジネスコンテキストとコンプライアンスを考慮します
  • 早急に実施できる対策と長期的な取り組みを特定します
5. 緩和計画(1 時間)
  • セキュリティコントロールを設計します(排除、低減、移転、受容)
  • 緩和策を文書化します
  • セキュリティ要件を作成します(SEC-### 形式)
  • 実装の責任者を割り当てます
6. 文書化(30 分)
  • 脅威モデルの図をエクスポートします
  • セキュリティ要件文書を作成します
  • リスク受容に関する判断を文書化します
  • ステークホルダーと共有します

よくある間違い

避けるべきこと:

  • 脅威モデリングを実施するのが遅すぎる(実装完了後に行う)
  • 外部の脅威だけに注目する(内部関係者による脅威を無視する)
  • 静的な脅威モデルを作成する(一度も更新しない)
  • 図を過度に複雑にする(詳細を詰め込みすぎる)
  • 発生可能性は低いが影響の大きい脅威を無視する
  • 前提や判断を文書化しない
  • 緩和策を最後まで実施しない

ベストプラクティス

チームの関与:

  • 開発者:実装の詳細、コードレベルの脅威
  • アーキテクト:システム設計、統合ポイント
  • セキュリティチーム:脅威に関する専門知識、攻撃シナリオ
  • 運用チーム:デプロイ、監視、インシデント対応
  • プロダクトオーナー:ビジネスへの影響、リスク受容に関する判断

プロセスへの統合:

  • 設計フェーズ:実装前に脅威モデルを作成します
  • 開発:コントロールを実装し、セキュリティテストを作成します
  • デプロイ:コントロールを検証し、監視を有効にします
  • 保守:機能が変更されたらモデルを更新します

ツール

Microsoft Threat Modeling Tool:ビジュアル DFD エディター、自動 STRIDE 脅威生成 OWASP Threat Dragon:オープンソース、クロスプラットフォーム、ウェブ版とデスクトップ版 IriusRisk:商用プラットフォーム、DevSecOps 統合、コンプライアンスマッピング ThreatModeler:共同作業に対応、クラウドアーキテクチャをサポート

リソース

コメント