本記事は学習用です。作成には ChatGPT と GitHub Copilot を使用しています。
- 1. 導入:ATT&CKを「攻撃者行動の辞書」ではなく「運用の設計図」として扱います
- 2. ATT&CKの基本構造:まず押さえる最小セット
- 3. 代表ユースケース:ATT&CKをどの業務に差し込むか
- 4. 導入手順:ATT&CKを「自組織のマトリクス」に変換する 7 ステップ
- 5. 具体例:フィッシング(T1566)を起点に「検知と抑止」を組み立てます
- 6. 可視化と共有:ATT&CK Navigatorで「現状」と「優先度」を見える化します
- 7. データ連携:STIX/TAXIIでATT&CKを「自動更新する参照データ」にします
- 8. 注意点・よくある誤り:ATT&CKを使っても成果につながりにくいパターンを避けます
- 9. まとめ:ATT&CKは「共通言語」+「改善サイクル」の部品として効きます
- A. 参考サイト
- 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)
現場では、次の順で作ると運用が破綻しにくくなります。
- 低コスト即応(ルール):悪性添付の既知指標、実行ファイル添付、危険拡張子、マクロ有効化要求
- 振る舞い検知(相関):添付保存 → Office起動 → 子プロセス生成(cmd/powershellなど) → 外部通信
- 高度分析(行動連鎖):ユーザー行動(開封)と端末イベントの時系列結合、クラウド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. 参考サイト
- MITRE ATT&CK(Get Started / 概要)(MITRE ATT&CK)
- Enterprise Matrix(対象プラットフォームとマトリクス)(MITRE ATT&CK)
- ATT&CK Navigator(可視化ツール)(mitre-attack.github.io)
- ATT&CK Data & Tools(STIX/TAXIIの入口)(MITRE ATT&CK)
- IPA「脅威インテリジェンス 導入・運用ガイドライン」(国内・公的資料)(情報処理推進機構)
- (国内解説)Intellilink:MITRE ATT&CKの概要記事(intellilink.co.jp)

コメント