🎯
概念 #セキュリティ #脅威モデリング #STRIDE #DREAD #設計 📚 セキュリティ

脅威モデリング(Threat Modeling)

脅威モデリングとは

どこを攻撃されうるか」を設計段階で体系的に洗い出し、対策の優先順位を決めるプロセス。

セキュリティ問題は発見が遅れるほどコストが増大する。
コーディング後に気づくより、設計段階で脅威を特定する方が修正コストは数十倍安い(Shift Left の原則)。


なぜ脅威モデリングが必要か

セキュリティテストは「実装済みのコードに穴がないか」を確認する。
脅威モデリングは「そもそも穴の生まれる設計になっていないか」を問う。

両者は補完関係にあり、脅威モデリングなしにセキュリティテストだけ行うと「見えている穴だけ塞ぐ」状態になる。


STRIDE モデル

Microsoft が提唱した脅威の6分類。「どの種類の攻撃か」を特定するための言語として広く使われる。

頭文字脅威攻撃例侵害するCIA
SSpoofing(なりすまし)認証情報の盗用, フィッシング機密性
TTampering(改ざん)DBデータ改ざん, Cookieの書き換え完全性
RRepudiation(否認)ログ削除による証拠隠滅完全性
IInformation Disclosure(情報漏洩)エラーメッセージからのスタックトレース漏洩機密性
DDenial of Service(サービス妨害)DDoS, リソース枯渇攻撃可用性
EElevation of Privilege(権限昇格)一般ユーザーが管理者権限を取得機密性・完全性

DREAD モデル

脅威の深刻度スコアリング手法。各項目を 1〜10 で採点し合計で優先度を決める。
現在は CVSS に押されているが、チーム内のリスク議論を構造化するツールとして依然有効。

頭文字指標問い
DDamage(被害規模)攻撃が成功した場合の被害はどれほどか?
RReproducibility(再現性)攻撃をどれほど簡単に再現できるか?
EExploitability(攻撃容易性)攻撃に必要なスキル・リソースはどれほどか?
AAffected Users(影響ユーザー数)何人のユーザーが影響を受けるか?
DDiscoverability(発見可能性)攻撃者が脆弱性を見つけやすいか?

脅威モデリングの実施プロセス

Adam Shostack(元Microsoft)が提唱する 4ステップ

Step 1: 何を作るか明確にする

システムの構成要素を可視化する。代表的な手法が DFD(データフロー図)

DFDで描く要素:

  • プロセス — データを処理するコンポーネント(円)
  • データストア — データを保存する場所(二重線)
  • 外部エンティティ — システム外のアクター(四角)
  • データフロー — データの流れ(矢印)
  • トラストバウンダリ — セキュリティ境界線(点線)

Step 2: 何が問題か洗い出す

DFDをSTRIDEにあてはめ、境界線を越えるすべてのデータフローに対して6分類を問う。

例:ユーザー → APIサーバー のデータフローに対して
- Spoofing:   本当に正規ユーザーか?(認証はあるか)
- Tampering:  リクエストデータが改ざんされていないか?
- Repudiation: 誰が何をしたか記録されているか?
- Information Disclosure: レスポンスに不要な情報が含まれていないか?
- DoS:        大量リクエストで落ちないか?
- EoP:        一般ユーザーが管理APIを叩けないか?

Step 3: 対策を決める

脅威ごとに対策を対応させる。

STRIDE脅威代表的な対策
Spoofing強固な認証(MFA, OAuth2)
Tamperingデジタル署名, HMAC, 入力バリデーション
Repudiation改ざん不可な監査ログ
Information Disclosure暗号化(TLS, at-rest encryption), 最小権限
Denial of Serviceレートリミット, オートスケール
Elevation of PrivilegeRBAC, 最小権限, 入力バリデーション

Step 4: 十分にやれたか確認する

チェックリスト:

  • DFDのすべてのトラストバウンダリを横断するフローを検討したか
  • 洗い出した脅威それぞれに対策を割り当てたか
  • 対策を実装したか、またはリスク受容の判断を記録したか

脅威モデリングのタイミング

タイミング目的
設計フェーズ最も効果が高い。アーキテクチャ変更のコストが低い段階
コードレビュー新機能やインフラ変更時の追加確認
年次レビューシステム変化に合わせた定期的な再評価

PASTA(参考)

Process for Attack Simulation and Threat Analysis。
ビジネスリスクと技術的脅威を紐付けた7フェーズの手法論。
より大規模・組織的な脅威モデリングに向いている。

  1. ビジネス目標の定義
  2. 技術スコープの定義
  3. アプリケーション分解(DFD作成)
  4. 脅威分析
  5. 脆弱性分析
  6. 攻撃シミュレーション
  7. リスク/影響分析

参考文献

  • Adam Shostack『Threat Modeling: Designing for Security』(Wiley, 2014)— 脅威モデリングの実践書として最も広く参照される
  • Maxie Reynolds『The Art of Attack』(Wiley, 2021)— 攻撃者思考の形成に向けた解説書
  • OWASP Threat Modeling Cheat Sheet — 手法の概要と実践チェックリスト
  • Microsoft SDL(Security Development Lifecycle)— STRIDEとDFDを組み込んだ開発プロセス

出典: Threat Modeling: Designing for Security(Adam Shostack, 2014)/ The Art of Attack(Maxie Reynolds, 2021)/ OWASP Threat Modeling Cheat Sheet