Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help


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 段階に分解される。

  1. 偵察(Reconnaissance)
    対象組織やシステムに関する情報収集。ドメイン名、公開サービス、メールアドレス、OS 情報などを収集する。
  2. 武器化(Weaponization)
    取得した情報を元に、マルウェアやエクスプロイトコード、フィッシングメールなどの攻撃手段を準備する。
  3. 配送(Delivery)
    メール、Web サイト、USB メディアなどを経由して、攻撃手段を標的に届ける。
  4. 悪用(Exploitation)
    ソフトウェアの脆弱性や設定ミスを突き、ペイロードを実行する。
  5. インストール(Installation)
    バックドアやエージェントを設置し、継続的なアクセスを確立する。
  6. コマンド & コントロール(Command and Control)
    攻撃者が外部から侵入した端末を遠隔操作できるようにする。
  7. 目的達成(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 は設計・スコーピングにおける脅威洗い出しに適し、本書ではこれらをフェーズに応じて組み合わせて扱う。