PR

MITRE ATT&CKの使い方:攻撃者行動を「共通言語」にして検知・対策を前に進める

この記事は約13分で読めます。

本記事は学習用です。作成には ChatGPT と GitHub Copilot を使用しています。

  1. 1. 導入:ATT&CKを「攻撃者行動の辞書」ではなく「運用の設計図」として扱います
  2. 2. ATT&CKの基本構造:まず押さえる最小セット
    1. 図:ATT&CKを運用に落とすときの「位置づけ」
  3. 3. 代表ユースケース:ATT&CKをどの業務に差し込むか
    1. 3.1 検知設計(Detection Engineering)
    2. 3.2 インシデント対応(IR)と事後分析(Postmortem)
    3. 3.3 脅威ハンティング(Threat Hunting)
    4. 3.4 レッド/パープルチーム(Adversary Emulation)
  4. 4. 導入手順:ATT&CKを「自組織のマトリクス」に変換する 7 ステップ
    1. ステップ1:対象範囲(スコープ)
    2. ステップ2:守る資産(Asset)と優先業務
    3. ステップ3:脅威仮説(想定アクター/侵入口)
    4. ステップ4:テクニック抽出(自組織サブセット)
    5. ステップ5:データ取得可否の棚卸し(ログ/テレメトリ)
    6. ステップ6:検知(Analytics)と抑止(Mitigations)
    7. ステップ7:カバレッジ可視化と継続改善
  5. 5. 具体例:フィッシング(T1566)を起点に「検知と抑止」を組み立てます
    1. 5.1 目的を分解する(攻撃者のゴール)
    2. 5.2 収集ポイントを決める(最低限)
    3. 5.3 検知ロジックを「段階」で設計する
    4. 5.4 抑止(Mitigation)を「入口」と「実行」に分けて当てる
  6. 6. 可視化と共有:ATT&CK Navigatorで「現状」と「優先度」を見える化します
    1. 6.1 カバレッジ(Coverage)レイヤー
    2. 6.2 事案(Incident)レイヤー
  7. 7. データ連携:STIX/TAXIIでATT&CKを「自動更新する参照データ」にします
    1. 7.1 STIXデータ(GitHub)を使う
    2. 7.2 TAXIIサーバでAPI取得する
    3. 7.3 Pythonで扱う場合の現実解
  8. 8. 注意点・よくある誤り:ATT&CKを使っても成果につながりにくいパターンを避けます
    1. 8.1 テクニックの「名前当て」で終わる
    2. 8.2 スコープが広すぎて破綻する
    3. 8.3 「検知できない」の原因を放置する
    4. 8.4 更新追従を人力でやろうとする
  9. 9. まとめ:ATT&CKは「共通言語」+「改善サイクル」の部品として効きます
  10. A. 参考サイト
  11. B. 関連書籍

1. 導入:ATT&CKを「攻撃者行動の辞書」ではなく「運用の設計図」として扱います

MITRE ATT&CK(Adversarial Tactics, Techniques, and Common Knowledge)は、実観測に基づく攻撃者の行動(振る舞い)を体系化したナレッジベースです。(MITRE ATT&CK)

ATT&CKでは「攻撃がどのように進むか」を、戦術(Tactic)とテクニック(Technique)の組み合わせで整理します。

次の3点を、チーム内で再現性のある形に落とすために活用します。

  • 会話の統一:アラートやインシデントを「T1566(Phishing)」のような共通IDで共有します(属人化を減らしやすくなります)
  • 抜け漏れの可視化:検知・抑止のカバレッジをマトリクス上で確認します
  • 優先度付け:脅威(想定アクター/業界/資産)に対して投資順を決めます

本稿では、ATT&CKの構造を押さえたうえで、検知・運用に落とし込む手順と、データ連携(Navigator / STIX / TAXII)までを一続きで整理します。

2. ATT&CKの基本構造:まず押さえる最小セット

ATT&CKの最小単位は以下です。用語を最初に固定しておくと、読み方と使い方が安定します。

要素定義(初出時に固定しておく意味)
Tactic(戦術)「なぜやるか」。攻撃者の目的(ゴール)Initial Access(初期侵入)(MITRE ATT&CK)
Technique(テクニック)「何をやるか」。目的達成の手段のカテゴリT1566 Phishing(フィッシング)(MITRE ATT&CK)
Sub-technique(サブテクニック)「どうやるか」の具体化。Techniqueの下位分類T1566.001 Spearphishing Attachment 等(MITRE ATT&CK)
Procedure(手順例)実際のグループ/キャンペーンがどう実行したかの例T1566ページのProcedure Examples(MITRE ATT&CK)
Mitigation(緩和策)成功を阻止/難化する対策の概念・技術クラスMitigations定義(MITRE ATT&CK)
Detection / Analytics(検知)テクニックを検出する分析観点・ロジックGetting Started(Detections and Analytics)(MITRE ATT&CK)

「ATT&CKマトリクス」は、Tactic(列)× Technique(行)で全体像を一覧できます。
Enterprise Matrixでは、対象プラットフォーム(Windows/macOS/Linux/SaaS/IaaS/Network Devices/Containers/ESXiなど)も明示されています。(MITRE ATT&CK)

また、ATT&CKは更新されます。現時点では ATT&CK v18 のリリースが告知されています(テクニックページ上部に表示されます)。(MITRE ATT&CK)

図:ATT&CKを運用に落とすときの「位置づけ」

(資産・業務・脅威仮説)
        ↓
 ATT&CK(共通言語:戦術/テクニック)
        ↓
 検知(SIEM/EDR/クラウド監査ログ)
 抑止(設定/権限/分離/制御)
 対応(IR手順・プレイブック)
        ↓
 カバレッジ可視化(Navigator等)
        ↓
 ギャップの優先度付け → 改善

3. 代表ユースケース:ATT&CKをどの業務に差し込むか

3.1 検知設計(Detection Engineering)

MITREは、ATT&CKを検知と分析(Detections and Analytics)に使う手順を段階別に説明しています。(MITRE ATT&CK)
ここで重要なのは「TTP(攻撃者の手口。Tactics/Techniques/Procedures の略)→ 収集ログ → 分析ロジック」の接続を一貫させることです。

  • 例:T1059 Command and Scripting Interpreter(コマンド/スクリプト実行)を観測するには、プロセス生成、コマンドライン、スクリプト実行痕跡などのデータが必要になります(対象プラットフォームもATT&CK上に明示されます)。(MITRE ATT&CK)

3.2 インシデント対応(IR)と事後分析(Postmortem)

インシデントで観測した事実(ログ・端末痕跡・クラウド監査)を、ATT&CKのテクニックへマッピングすると、次を進めやすくなります。

  • 影響範囲の整理(どの戦術まで進んだか)
  • 取り逃しの推定(この戦術に来るまでに起きたはずの前段)
  • 再発防止の設計(MitigationとDetectionの両面で穴埋め)

3.3 脅威ハンティング(Threat Hunting)

「既に侵入されている前提」で、ATT&CKを探索仮説にします。
たとえば「Initial Accessが疑わしい場合は、Execution/Persistenceまでの代表的な分岐を先に確認する」など、探索の起点を作れます。

3.4 レッド/パープルチーム(Adversary Emulation)

ATT&CKに基づいて攻撃シナリオを組むと、机上の演習を「再現可能なテスト」として扱いやすくなります。
結果もテクニック単位で残せます。

※攻撃手順の具体化は、組織のルール・法務・環境に依存します。

4. 導入手順:ATT&CKを「自組織のマトリクス」に変換する 7 ステップ

ステップ1:対象範囲(スコープ)

  • 対象:Enterprise / Mobile / ICS のどれか(多くの組織ではEnterpriseから開始します)
  • プラットフォーム:Windows中心か、SaaS/IaaSも含めるか(Enterprise Matrixは対象プラットフォームを列挙しています)。(MITRE ATT&CK)

ステップ2:守る資産(Asset)と優先業務

例:ID基盤、決済、顧客データ、ソースコード、クラウド管理権限。

ステップ3:脅威仮説(想定アクター/侵入口)

「フィッシングが主要」「VPN/ID侵害が多い」など、過去事例や業界情報から仮説を置きます。仮説は後で差し替える前提でも問題ありません。

ステップ4:テクニック抽出(自組織サブセット)

例:侵入口がフィッシングの場合は、Initial AccessにあるT1566 Phishingを起点にします。T1566にはサブテクニック(添付、リンク、サービス経由、音声)が定義されています。(MITRE ATT&CK)

ステップ5:データ取得可否の棚卸し(ログ/テレメトリ)

各テクニックを「観測できるか」に分解します。観測できない場合は、検知の前に収集設計が必要になります。

ステップ6:検知(Analytics)と抑止(Mitigations)

Mitigationは「成功を防ぐ技術クラス」を提示します。検知だけに寄せると、攻撃者側の試行コストが下がりやすくなります。MITREはMitigationをそのように定義しています。(MITRE ATT&CK)

ステップ7:カバレッジ可視化と継続改善

ここでNavigatorを使うと、Excelでの色塗りを脱却しやすくなります。
NavigatorはATT&CKマトリクスを注釈・可視化するWebツールです。(mitre-attack.github.io)

5. 具体例:フィッシング(T1566)を起点に「検知と抑止」を組み立てます

T1566 PhishingはInitial Access(初期侵入)に属し、メール添付・リンクなどのサブテクニックを持ちます。(MITRE ATT&CK)

5.1 目的を分解する(攻撃者のゴール)

  • ゴール:ユーザーにファイルを開かせ、実行(Execution)につなげる
  • 典型的な次段:T1059 Command and Scripting Interpreter(PowerShell など)による実行や、永続化(Persistence)へ進む可能性が高いです。(MITRE ATT&CK)

5.2 収集ポイントを決める(最低限)

観測面具体例(一般的)実装先の例
メール添付ファイル情報、URL、送信元ドメイン、認証結果(SPF/DKIM/DMARC)メールゲートウェイ、SaaS監査
端末ファイル作成、プロセス生成、コマンドライン、スクリプト実行EDR、OS監査ログ
ネットワーク外部通信、DNS、TLS指標プロキシ/DNSログ

※ログ項目の名称や取得可否は製品・OSで変わります。環境依存のため、実装時は各製品ドキュメントで確認します。

5.3 検知ロジックを「段階」で設計する

MITREの検知ガイドは、成熟度に応じた始め方を提示しています。(MITRE ATT&CK)
現場では、次の順で作ると運用が破綻しにくくなります。

  1. 低コスト即応(ルール):悪性添付の既知指標、実行ファイル添付、危険拡張子、マクロ有効化要求
  2. 振る舞い検知(相関):添付保存 → Office起動 → 子プロセス生成(cmd/powershellなど) → 外部通信
  3. 高度分析(行動連鎖):ユーザー行動(開封)と端末イベントの時系列結合、クラウドIDの異常兆候まで連鎖

5.4 抑止(Mitigation)を「入口」と「実行」に分けて当てる

Mitigationは、テクニックの成功を防ぐ概念・技術クラスです。(MITRE ATT&CK)
フィッシング起点の場合は、少なくとも次をセットで考えます。

  • 入口:メール認証・隔離・URL防御・ユーザー教育(運用統制)
  • 実行:マクロ制御、スクリプト実行制御、権限最小化、アプリ制御

※教育は「Mitigationの一部」として扱うより、統制(ガバナンス)として別枠でKPIを持つ方が運用が安定する場合があります(教育のみで改善を狙うと、効果測定が曖昧になりやすくなります)。

6. 可視化と共有:ATT&CK Navigatorで「現状」と「優先度」を見える化します

ATT&CK Navigatorは、マトリクスに色付け・注釈を付けて共有するためのWebベースツールです。(mitre-attack.github.io)
運用での使い方は、次の2パターンに分けると扱いやすくなります。

6.1 カバレッジ(Coverage)レイヤー

  • 技術ごとに「検知済 / 一部 / 未対応」で色分けします
  • スコア(例:0〜5)で成熟度を表します
  • コメントに「ログソース」「担当」「次アクション」を入れます

6.2 事案(Incident)レイヤー

  • 実際のインシデントで観測したテクニックだけを色分けします
  • 時系列(いつ、どの戦術へ進んだか)をコメントで残します
  • 次回プレイブックの改善点へ直結させます

例:Navigatorレイヤーの最小イメージ(概念例)

以下は「こういう情報を持たせる」という概念例です(実際のスキーマはNavigatorのバージョンで変わる可能性があるため、投入前に公式仕様で確認します)。(GitHub)

{
  "name": "Coverage - Email to Execution",
  "domain": "enterprise-attack",
  "techniques": [
    { "techniqueID": "T1566", "score": 2, "comment": "メール側は一部検知、端末相関は未整備" },
    { "techniqueID": "T1059", "score": 1, "comment": "PowerShell監視を強化予定" }
  ]
}

7. データ連携:STIX/TAXIIでATT&CKを「自動更新する参照データ」にします

人手でマトリクスを更新し続ける運用は現実的ではありません。
ATT&CKはデータとして配布されており、STIX(Structured Threat Information eXpression)とTAXII(Trusted Automated Exchange of Intelligence Information)で機械取得できます。

7.1 STIXデータ(GitHub)を使う

MITREはATT&CKのデータをSTIX 2.1 JSONコレクションとして公開しています(attack-stix-data)。(GitHub)
また、STIX 2.0形式のデータはmitre/ctiでも提供されています。(GitHub)

実務上は次の使い分けが多いです。

  • 参照・差分:STIXファイルを定期取得 → 差分を自動比較 → 影響(追加/廃止/移動)を通知します
  • 内部DB化:テクニック/サブテクニック/関連関係をDB化 → 検知ルールや事案情報とJOINします

7.2 TAXIIサーバでAPI取得する

MITREは公式のATT&CK TAXIIサーバを提供し、ATT&CK STIX知識ベースへのAPIアクセスを可能にしています。(MITRE ATT&CK)
TAXII 2.1 APIは https://attack-taxii.mitre.org で提供され、API root は /api/v21/ とされています。(GitHub)

例:TAXIIで「collectionsを列挙→取得」の流れ(概念)

# 1) API rootからコレクション一覧を取得(概念)
curl -s https://attack-taxii.mitre.org/api/v21/collections/ | jq .

# 2) 特定collectionのobjectsを取得(概念)
curl -s "https://attack-taxii.mitre.org/api/v21/collections/<collection-id>/objects/" | jq .

※TAXIIのレスポンス、ページング、フィルタ条件(added_after など)の扱いは、実装時に仕様確認が必要です。

7.3 Pythonで扱う場合の現実解

STIXをPythonで扱うためのライブラリとして、stix2のドキュメントが公開されています。(stix2.readthedocs.io)
また、ATT&CKコンテンツを扱うPythonユーティリティ(mitreattack-python)も公開されています。(PyPI)

運用で堅い構成は次のとおりです。

  • 取得:TAXIIまたはGitHub STIXを定期取り込み
  • 整形:必要なオブジェクト(technique、relationship等)だけ抽出
  • 供給:内部DB/APIでSOCや検知基盤へ配る(「参照データの単一ソース」にします)

8. 注意点・よくある誤り:ATT&CKを使っても成果につながりにくいパターンを避けます

8.1 テクニックの「名前当て」で終わる

「この攻撃は Txxxx です」で満足すると、検知・抑止につながりにくくなります。最低でも以下をセットにします。

  • 観測ログ(どのデータで見るか)
  • 検知の粒度(単発/相関/行動連鎖)
  • 対策(Mitigation)との役割分担

8.2 スコープが広すぎて破綻する

Enterprise Matrixは広いです。(MITRE ATT&CK)
最初から全戦術・全テクニックを埋めようとすると、棚卸しだけで止まりやすくなります。入口(Initial Access)と実行(Execution)など、侵入経路に直結する範囲から始めます。

8.3 「検知できない」の原因を放置する

検知ギャップの原因は、多くが以下です。

  • ログ未取得(収集設計の欠陥)
  • 正規運用ノイズが多い(正規挙動の理解不足)
  • 相関の設計がない(単発ルール乱立)

ATT&CKは「何を見るべきか」を整理するのに役立ちますが、ログ基盤・権限・運用の設計は別途必要になります。

8.4 更新追従を人力でやろうとする

ATT&CKは更新されます(例:v18 リリースの告知)。(MITRE ATT&CK)
人力更新は遅延と抜け漏れを生みやすいため、STIX/TAXIIで参照データを自動更新する前提で設計します。(GitHub)

9. まとめ:ATT&CKは「共通言語」+「改善サイクル」の部品として効きます

  • ATT&CKは、実観測に基づく攻撃者行動の知識ベースであり、戦術(なぜ)とテクニック(なに)で表現します。(MITRE ATT&CK)
  • 成果を出すには、ATT&CKを「自組織のサブセット」に落とし込み、ログ収集→検知→抑止→可視化→改善のループに組み込みます。
  • 可視化はNavigator、データ連携はSTIX/TAXIIを使うと運用を持続しやすくなります。(mitre-attack.github.io)

A. 参考サイト

B. 関連書籍

コメント