title: “攻撃モデル:Kill Chain / MITRE ATT&CK / STRIDE” part: “Part 1” chapter: “1-1”
攻撃モデルの基礎
Pentest は本質的に、「攻撃者の視点でシステムを評価する活動」である。そのため、攻撃者がどのようなライフサイクルで行動し、どのポイントで検知・阻止しうるかを理解する必要がある。本章では代表的な攻撃モデルとして、Cyber Kill Chain、MITRE ATT&CK、STRIDE を取り上げる。
本章のゴール
- 前提:Part 0 で Pentest の目的とスコープの考え方を把握している。
- 到達目標:Cyber Kill Chain / MITRE ATT&CK / STRIDE の役割と違いを説明し、「設計→実施→報告」の各フェーズでどのモデルを使うか判断できる。
- 対応演習:任意のシステム(演習環境でもよい)を対象に、攻撃チェーンを Kill Chain で分解し、該当する ATT&CK 戦術・技術と STRIDE の脅威カテゴリを対応付けて整理する。
Cyber Kill Chain
Cyber Kill Chain は Lockheed Martin によって提唱された攻撃ライフサイクルモデルであり、典型的には次の 7 段階に分解される。
- 偵察(Reconnaissance)
対象組織やシステムに関する情報収集。ドメイン名、公開サービス、メールアドレス、OS 情報などを収集する。 - 武器化(Weaponization)
取得した情報を元に、マルウェアやエクスプロイトコード、フィッシングメールなどの攻撃手段を準備する。 - 配送(Delivery)
メール、Web サイト、USB メディアなどを経由して、攻撃手段を標的に届ける。 - 悪用(Exploitation)
ソフトウェアの脆弱性や設定ミスを突き、ペイロードを実行する。 - インストール(Installation)
バックドアやエージェントを設置し、継続的なアクセスを確立する。 - コマンド & コントロール(Command and Control)
攻撃者が外部から侵入した端末を遠隔操作できるようにする。 - 目的達成(Actions on Objectives)
情報窃取、ランサムウェアの展開、破壊活動など、本来の攻撃目的を達成する。
Kill Chain の利点は、「どのフェーズで検知・遮断できたか」を可視化し、防御施策をマッピングしやすい点にある。Pentest 報告書においても、「本評価で再現した攻撃が Kill Chain のどの段階に相当するか」を示すことで、セキュリティ担当者が対策を検討しやすくなる。
MITRE ATT&CK
MITRE ATT&CK は、実際の攻撃事例に基づいて整理された「戦術(Tactic)と技術(Technique)のナレッジベース」である。バージョンにより更新されるが、エンタープライズ向けマトリクスには、初期アクセス、実行、持続化、権限昇格、認証情報アクセス、横展開など、多数の戦術が定義されている。
Kill Chain が攻撃の大まかなライフサイクルを示すのに対し、ATT&CK は「各フェーズで具体的にどのような手法が用いられるか」を詳細に分類している点が特徴である。たとえば次のようなマッピングが行える。
- 戦術:Initial Access
- 技術:Phishing、Valid Accounts、Exploit Public-Facing Application など
- 戦術:Privilege Escalation
- 技術:Exploitation for Privilege Escalation、Sudo and Sudo Caching など
Pentest の観点では、次のような用途で活用できる。
- テストシナリオ設計時に、「どの戦術・技術を再現対象とするか」を明確にする
- 評価報告時に、「本評価で再現した手法は ATT&CK の Txxxx に相当する」と示し、チーム間で共通言語化する
- 検知チーム(SOC/CSIRT)と連携し、「どの戦術・技術について検知ルールが存在するか」を確認する
STRIDE
STRIDE は Microsoft が提唱した、脅威モデリングのための分類フレームワークであり、主に設計段階でのリスク洗い出しに利用される。各文字は次の脅威カテゴリを表す。
- S:Spoofing(なりすまし)
- T:Tampering(改ざん)
- R:Repudiation(否認)
- I:Information Disclosure(情報漏えい)
- D:Denial of Service(サービス妨害)
- E:Elevation of Privilege(権限昇格)
STRIDE の有用性は、「どのコンポーネントに対して、どの種類の脅威を検討したか」を体系的に記録できる点にある。たとえば Web アプリケーションのログイン機能を例に取ると、図1-1 のような簡易 DFD を前提に、次のような観点が得られる。
図1-1 は、ユーザ入力、ブラウザ↔Web アプリケーション間の HTTP(S)、Web アプリケーション↔データベース間のクエリ/更新、外部 API / IdP 連携といった主要なデータフローだけに絞って示したものである。STRIDE では、この各コンポーネントとデータフローを起点に、想定すべき脅威カテゴリを系統立てて洗い出す。
図1-1: 典型的な Web アプリケーションの簡易 DFD
flowchart LR
U[ユーザ] --> B[ブラウザ]
B --> W[Web アプリケーション]
W --> DB[(データベース)]
W --> API[外部 API / IdP]
U ---|"入力・操作"| B
B ---|"HTTP(S) リクエスト"| W
W ---|"クエリ・更新"| DB
W ---|"API コール / 認証連携"| API
- Spoofing:他者になりすましてログイン可能か(認証バイパス、パスワードリスト攻撃など)
- Tampering:パラメータを改ざんして不正な操作が可能か
- Repudiation:不正操作を実施したユーザを、後から特定できるか(ログの完全性)
- Information Disclosure:認証エラー時に過度な情報を開示していないか
- Denial of Service:ログイン試行によりサービスが停止しうるか
- Elevation of Privilege:一般ユーザから管理者権限へ昇格可能か
Pentest の前段として STRIDE による脅威モデリングを行うことで、「テスト観点の抜け漏れ」を減らし、診断結果と設計上の想定を結びつけやすくなる。
3 つのモデルの使い分け
本書では、おおむね次のような使い分けを行う。
- 設計段階・スコーピング:STRIDE により脅威を洗い出し、テスト対象の優先度を決める
- テスト設計・実施:MITRE ATT&CK を参照しつつ、実際に再現する戦術・技術を選定する
- 結果整理・報告:Cyber Kill Chain ベースで攻撃チェーンを可視化し、防御施策や検知ポイントを整理する
図1-2 は、これら 3 つのモデルを「設計 → 実施 → 報告」のフェーズに対応付けた概要図である。本文中でモデルが切り替わる箇所では、この対応関係を前提に読み進めるとよい。
図1-2: モデルの使い分け(設計→実施→報告)
flowchart LR
A[設計・スコーピング] --> B[テスト設計・実施] --> C[結果整理・報告]
A --- S[STRIDE]
B --- M[MITRE ATT&CK]
C --- K[Cyber Kill Chain]
これらのモデルを単独で使うのではなく、「設計 → 実施 → 報告」というライフサイクル全体で組み合わせることが、実務での有効な活用方法である。
次に読む章
本章のポイント
Cyber Kill Chainは攻撃ライフサイクルを段階で整理し、防御施策や報告のマッピングに利用できる。MITRE ATT&CKは戦術(Tactic)と技術(Technique)の分類により、テストシナリオ設計と共通言語化に有用である。STRIDEは設計・スコーピングにおける脅威洗い出しに適し、本書ではこれらをフェーズに応じて組み合わせて扱う。