セキュリティ PR

ゼロからわかる MITRE ATT&CK:戦術×手口で“見える化”する実践入門(初心者・資格対策向け)

MITRE ATT&CK入門
記事内に商品プロモーションを含む場合があります

ATT&CKとは?—「戦術」「手口」「具体例」で攻撃を分解して理解する

ATT&CKは、攻撃者のやり口を「目的(戦術)→手段(手口)」の粒度で体系化した知識ベースです。

用語や粒度をそろえることで、攻撃のどこを防ぎ・どこを検知するかを共通言語で議論できます。

フィッシングで侵入(戦術:Initial Access、手口:Phishing/T1566)→PowerShell実行(Execution/T1059.001)→自動起動へ常駐(Persistence/T1547)…のように段階ごとにタグ付けできます。

この“分解とタグ付け”が、防御設計・ログ設計・レポート作成を一気に楽にします。

なぜATT&CKが重要か—防御の“共通言語”になる

部署もツールも違っても会話が通じるからです。

EDR、SIEM、SOAR、脅威情報、監査・報告まで、同じラベル(T番号)でつながります。
例:SOCの検知ルール、レッドチーム演習の手順、CISO向けの報告書まで**「どのTactic/Techniqueをカバー?」**で統一。

属人化を減らし、再現性と改善速度を高めます。

まず全体像を掴む—戦術→手口→対策→検知

“攻撃の目的(戦術)”→“やり方(手口)”→“どう防ぐ(対策)・どう見つける(検知)”の順で整理しましょう。
目的から逆算すると、対策とログ要件がぶれません。
例:

  • 戦術:Initial Access(初期侵入)
  • 手口:T1566 Phishing
  • 対策:メール認証強化、添付マクロ制限、ユーザ教育
  • 検知:不審なPowerShell実行、未知送信者+添付開封後のプロセス生成
    要点:**“目的→手段→防御・検知”**のワンセットで考えるのがコツ。

使い方4ステップ—自社ユースケースに落とす型

① 守るものとユースケースを決める

資産と業務を先に決めると、ATT&CKが一気に実用化します。
クラウンジュエル(例:顧客DB、会計SaaS、開発リポジトリ)ごとに狙われ方が違うため。

例:「GitHub経由のソース流出防止」「リモートワーク端末の初期侵入対策」など具体名にします。

資産×業務×利用者=**観測したいイベント(ログ)**が決まる。

② 脅威シナリオを作り、ATT&CKにマッピング

攻撃ストーリーを段階化し、各段にT番号を振る
段階ごとに防御と検知を当てはめるため。
例:

  • 侵入:T1566 Phishing
  • 実行:T1059.001 PowerShell
  • 常駐:T1547.001 レジストリRunキー
  • 権限昇格:T1068(脆弱性悪用)
  • 横展開:T1021.002(RDP)
    要点:ストーリー=ロードマップ。優先順位が見える。

③ 検知ルールと可視化(SIEM/EDR)へ落とす

T番号→検索クエリやSigmaルールに落とすのが実務。
監視は“動くもの”にしないと価値が出ません。
例:PowerShellの不審実行、LSASSアクセス、認証失敗のスパイク等を可視化。
誤検知を恐れず最小ルール→段階改善が現実的。

④ ギャップ分析と改善ロードマップ

未カバーのT番号=課題リストにします。
抜けが明確になり、投資の優先度が立てやすい。
例:EDR未導入で「横展開(Lateral Movement)」が薄い→EDR導入 or 代替ログ整備をロードマップへ。
Tactic単位で“緑(OK)/黄(部分)/赤(未対応)”を色分けすると合意形成が早い。

実践スニペット—KQL & Sigmaで検知ルールを作ってみる

例1:KQL(Microsoft Sentinel等)—PowerShellの怪しい実行(T1059.001)

DeviceProcessEvents
| where FileName in ("powershell.exe","pwsh.exe")
| where ProcessCommandLine has_any ("-EncodedCommand","-e ","IEX","DownloadString")
| summarize count(), hosts=dcount(DeviceName) by bin(Timestamp, 1h)

ポイント:難読化・DL実行の痕跡に寄せ、ホスト数や時系列で異常を見ます。

例2:Sigma(SIEM共通化ルール)—レジストリRunキー常駐(T1547.001)

title: Persistence via Run Key
id: a1b2c3d4-5678-90ab-cdef-111213141516
status: experimental
logsource:
  product: windows
  category: registry_event
detection:
  selection:
    TargetObject|endswith:
      - '\Software\Microsoft\Windows\CurrentVersion\Run'
      - '\Software\Microsoft\Windows\CurrentVersion\RunOnce'
  condition: selection
fields:
  - EventID
  - Image
  - TargetObject
  - Details
tags:
  - attack.persistence
  - attack.t1547.001
falsepositives:
  - 正常なソフトの自動起動
level: medium

ポイント:攻撃と正当化の両面をコメントに残すと運用が楽です。

運用での活かし方—インシデント、ハンティング、レポートの型

“Tactic/Technique”単位で全工程をつなぐと運用が回ります。
インシデントの時間軸整理、ハンティングの仮説設計、経営報告まで同一の軸で話せるから。
例:

  • インシデント記録:「検知:T1059.001、原因:T1566、影響:T1041(外部送信)」
  • ハンティング:「今週はPersistence系(T1547群)を重点探索」
  • レポート:「今月の新規カバーT番号:7件、誤検知率:-12%」

資格対策での使いどころ—Security+/CySA+/CISSP/情報処理安全確保支援士

ATT&CKを“用語帳”ではなく“設計の物差し”として覚えると点が伸びます。
設問は“知識×適用”を問うことが多いから。
例:

  • Security+:主要戦術名(Initial Access/Execution/Persistence…)を英日対応で覚える。
  • CySA+:SIEMのユースケース設計にT番号を絡めて答える。
  • CISSP:リスク対応・コントロール選定をTactic単位で論理立てる。
  • 情報処理安全確保支援士:記述で攻撃段階→検知→封じ込めをATT&CKで筋道立てる。
    要点:**「どのT番号を、どう防ぎ・どう検知するか」**を書けるように練習。

ミニ演習(面接・試験の口頭対策にも)
「リモート端末がフィッシングで侵入された想定。3つの検知ポイントを、ATT&CK番号つきで答えてください。」
例解:T1566(メール)、T1059.001(PowerShell)、T1547.001(Runキー)など。

よくある誤解と落とし穴

  • Lockheed Martin Kill Chainとどっちが正?
    →補完関係。Kill Chain=フェーズの枠、ATT&CK=具体的やり口の辞書として併用。
  • ATT&CKを全部カバーすべき?
    →現実的ではありません。事業と資産に関係するTactic優先が王道。
  • ルールを一気に作りすぎる
    誤検知で疲弊します。最小ルール→週次見直し→改善のループで。

まとめ—明日から始める最小ステップ

資産を決め、1つの脅威シナリオにT番号を振り、1本の検知クエリを動かす
小さく動くほど、改善の学びが早く蓄積します。
例:まずはInitial Access(T1566)×PowerShell(T1059.001)のラインから。
ATT&CKは“現場で回してナンボ”
。色を塗れるところから前進しましょう!