攻撃ツリーとリスクの優先順位付け
脅威を順位付けし、緩和策を選びます。
「攻撃ツリーとリスクの優先順位付け」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
攻撃ツリーとは
攻撃ツリーは、攻撃者が目標を達成する方法をモデル化する図です。目標をルートに置き、そこに到達するために必要なさまざまな経路やサブステップを枝で示します。
STRIDEが脅威の種類を列挙するのに対し、攻撃ツリーでは攻撃者がたどる可能性のある具体的な経路を検討します。特定の価値の高い標的について考えるのに非常に適しています。
ルート目標とサブ目標
ルートノードは、攻撃者の最終的な目的です。たとえば「顧客の決済データを盗む」などです。子ノードは、親ノードを達成するためのサブ目標や方法です。
ツリーは、「攻撃者はこのノードをどのように達成できるか」と繰り返し問いかけて構築します。それぞれの答えが子ノードになり、具体的で実行可能なリーフアクションに到達するまで分解を続けます。
ANDノードとORノード
攻撃ツリーでは、ノードとその子ノードの間に2種類の論理関係を使用します。
- ORノード — 親ノードを達成するには、いずれか1つの子ノードで十分です(代替経路)
- ANDノード — すべての子ノードを同時に達成する必要があります(必須ステップ)
この違いは非常に重要です。ORノードでは攻撃者は最も簡単な経路だけを選べばよい一方、ANDノードではすべてのステップをクリアする必要があります。
攻撃ツリーの例
決済データを盗む場合の攻撃ツリーを、テキストで示します。
GOAL: Steal customer payment data
OR
+-- Compromise the database directly
| AND
| +-- Gain network access to DB
| +-- Obtain DB credentials
+-- Steal data in transit
| +-- Intercept unencrypted traffic
+-- Compromise an admin account
OR
+-- Phish an admin
+-- Brute force weak password属性によるノードの注釈付け
攻撃ツリーは、優先順位付けに役立つ属性をリーフノードに付けることで、より有効になります。
- 攻撃者にとってのコスト
- 難易度や必要なスキル
- 検知可能性(アラームが作動するかどうか)
- 成功する可能性
次に、これらの属性をツリーの上位に伝播させます。ORノードでは、攻撃者は最も安価または簡単な子ノードを選ぶため、自分たちの最も弱い部分が明らかになります。
リスク = 発生可能性 × 影響度
優先順位を決めるには、リスクスコアが必要です。一般的な式では、2つの要素を組み合わせます。
Risk = Likelihood x Impact
Likelihood: how probable is this attack to succeed?
Impact: how bad is the damage if it does?
Example:
High likelihood (3) x High impact (3) = 9 -> top priority
Low likelihood (1) x High impact (3) = 3 -> monitorDREADスコアリングモデル
DREADは、5つの観点から脅威を評価する体系的な方法です。それぞれを評価し、優先度スコアにまとめます。
- Damage(損害) — 影響はどの程度深刻ですか
- Reproducibility(再現性) — どの程度確実に繰り返し実行できますか
- Exploitability(悪用可能性) — 実行するのはどの程度簡単ですか
- Affected users(影響を受けるユーザー) — 何人が影響を受けますか
- Discoverability(発見可能性) — 発見するのはどの程度簡単ですか
DREADには主観的な部分があるため、チーム全体で一貫した評価基準を使用してください。
リスクマトリクスの作成
リスクマトリクスは、発生可能性と影響度を対応させ、優先順位をひと目で確認できるようにします。
Impact
High | Medium | High | Critical |
Med | Low | Medium | High |
Low | Low | Low | Medium |
+--------+--------+----------+
Low Med High
Likelihood
Address Critical and High cells first.緩和策の選択
脅威の順位付けが終わったら、それぞれへの対応を決めます。4つの選択肢は、STRIDEの緩和策と同じです。
- Mitigate(緩和) — 発生可能性や影響度を下げるために対策を追加します
- Eliminate(排除) — リスクのある機能を完全に削除します
- Transfer(移転) — 保険や第三者を通じてリスクを移します
- Accept(受容) — 低いリスクを許容することを正式に文書化します
限られた予算は、最もリスクの高い項目から使ってください。低リスクの脅威に過剰な対策を施す必要はありません。
対策の費用対効果
緩和策は、それによって減らせるリスクに対してコストが正当化される場合にのみ意味があります。保護対象の資産よりもコストが高い対策は、投資として適切ではありません。
候補となる各対策について、次の点を検討してください。
- その対策はリスクをどの程度低減しますか
- 構築と運用にどの程度のコストがかかりますか
- 新たな負担やリスクを生み出しませんか
たとえばMFAは、アカウント乗っ取りにつながる多くの経路を同時に断ちます。このように、複数の攻撃経路を一度に防げる対策を優先してください。
リスクの追跡と見直し
優先順位付けは一度行えば終わる作業ではありません。特定した各脅威を、スコア、選択した対応、担当者、ステータスとともにリスク登録簿で追跡してください。
次の場合は登録簿を見直してください。
- 新しい脅威や脆弱性が発生した場合
- システムやその資産の価値が変化した場合
- 緩和策を実装した場合(残存リスクを再評価してください)
受容したリスクには期限を設定し、受容したまま忘れずに、再度レビューしてください。
クイックチェック
攻撃ツリーとリスクの優先順位付けについての理解度を確認しましょう。
まとめ
脅威の順位付けと緩和策の選択方法を学びました。
- 攻撃ツリーは、攻撃者の目標に至る経路を、AND(すべてが必要)ノードとOR(いずれか1つで十分)ノードを使ってモデル化します
- コスト、難易度、検知可能性をノードに付けて、最も弱い部分を見つけます
- リスク = 発生可能性 × 影響度、DREADスコアリング、リスクマトリクスを使って優先順位を決めます
- コストと効果を比較し、緩和、排除、移転、受容のいずれかを選びます
- すべてをリスク登録簿で追跡し、システムの進化に合わせて見直します
これで「STRIDEによる脅威モデリング」コースは完了です。
よくある質問
「攻撃ツリーとリスクの優先順位付け」レッスンは無料ですか?
はい。「攻撃ツリーとリスクの優先順位付け」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「攻撃ツリーとリスクの優先順位付け」で何を学びますか?
脅威を順位付けし、緩和策を選びます。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「攻撃ツリーとリスクの優先順位付け」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 脅威モデリングが重要な理由
- STRIDEフレームワーク
- データフロー図と信頼境界
- 攻撃ツリーとリスクの優先順位付け