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は“現場で回してナンボ”。色を塗れるところから前進しましょう!