mapping-mitre-attack-techniques について
SIEMやSigmaの検知ルールをMITRE ATT&CKのテクニックに対応付けるセキュリティ分析スキルです。カバレッジ評価、脅威グループに基づく優先順位付け、Navigatorヒートマップや報告書の作成に使え、リアルタイムのインシデント対応向けではありません。
主な機能
- 01検知ルールをATT&CK IDに対応付け
- 02検知カバレッジと盲点の評価
- 03脅威グループに基づくギャップの優先順位付け
- 04Navigatorヒートマップレイヤーの生成
- 05経営層向けカバレッジ報告の要約
活用シーン
- 01SigmaルールやSIEMユースケースへのタグ付け
- 02ATT&CK検知カバレッジの確認
- 03業界を狙う脅威グループに基づくギャップの優先順位付け
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill mapping-mitre-attack-techniquesインストール後、Claude Code で/mapping-mitre-attack-techniquesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEreferences/api-reference.mdscripts/agent.py詳細
MITRE ATT&CK のテクニックのマッピング
使用するタイミング
次の場合にこのスキルを使用します。
- 検知スタックが対応するテクニックを示す ATT&CK カバレッジヒートマップを生成する
- 既存の SIEM ユースケースや Sigma ルールに ATT&CK テクニック ID を付与し、構造化レポートを作成する
- 自社のセクターを標的とすることが知られている特定の攻撃グループに合わせて、セキュリティプログラムのロードマップを調整する
リアルタイムのインシデントトリアージにはこのスキルを使用しないでください。ATT&CK マッピングは分析作業であり、検知後または脅威ハンティングの計画時に行うのが最適です。
前提条件
- MITRE ATT&CK ナレッジベース(https://attack.mitre.org)またはローカルの ATT&CK STIX データバンドルへのアクセス
- ATT&CK Navigator ウェブアプリまたはローカルインストール(https://mitre-attack.github.io/attack-navigator/)
- 現在のカバレッジを評価するための既存の検知ルール(Sigma、Splunk、Sentinel KQL)の一覧
- ATT&CK Python ライブラリ:
pip install mitreattack-python
ワークフロー
ステップ 1:最新の ATT&CK データを取得する
該当するマトリックス(Enterprise、Mobile、ICS)の最新の ATT&CK STIX バンドルをダウンロードします。
curl -o enterprise-attack.json \
https://raw.githubusercontent.com/mitre/cti/master/enterprise-attack/enterprise-attack.json
mitreattack-python ライブラリを使用して、プログラムからテクニックを照会します。
from mitreattack.stix20 import MitreAttackData
mitre = MitreAttackData("enterprise-attack.json")
techniques = mitre.get_techniques(remove_revoked_deprecated=True)
for t in techniques[:5]:
print(t["external_references"][0]["external_id"], t["name"])
ステップ 2:既存の検知をテクニックにマッピングする
各 SIEM ルールまたは Sigma ファイルに ATT&CK テクニック ID を割り当てます。Sigma ルールは ATT&CK タグ付けをネイティブでサポートしています。
tags:
- attack.execution
- attack.t1059.001 # PowerShell
- attack.t1059.003 # Windows Command Shell
カバレッジマトリックスを作成し、各テクニック ID を列挙して、次のいずれかを記録します。Detected(アラートが発報される)、Logged(データはあるがアラートは発報されない)、Blind(データソースがない)。
ステップ 3:脅威インテリジェンスを使ってカバレッジの不足箇所に優先順位を付ける
カバレッジの不足箇所を、自社のセクターを標的とする攻撃グループと照合します。ATT&CK Groups のデータを使用します。
groups = mitre.get_groups()
apt29 = mitre.get_object_by_attack_id("G0016", "groups")
apt29_techniques = mitre.get_techniques_used_by_group(apt29)
for t in apt29_techniques:
print(t["object"]["external_references"][0]["external_id"])
カバレッジがない高優先度の脅威グループが使用するテクニックの検知追加を優先します。
ステップ 4:Navigator ヒートマップを作成する
カバレッジスコアを ATT&CK Navigator の JSON レイヤーとしてエクスポートします。
import json
layer = {
"name": "SOC Detection Coverage Q1 2025",
"versions": {"attack": "14", "navigator": "4.9", "layer": "4.5"},
"domain": "enterprise-attack",
"techniques": [
{"techniqueID": "T1059.001", "score": 100, "comment": "Splunk rule: PS_Encoded_Command"},
{"techniqueID": "T1071.001", "score": 50, "comment": "Logged only, no alert"},
{"techniqueID": "T1055", "score": 0, "comment": "No coverage — blind spot"}
],
"gradient": {"colors": ["#ff6666", "#ffe766", "#8ec843"], "minValue": 0, "maxValue": 100}
}
with open("coverage_layer.json", "w") as f:
json.dump(layer, f)
レイヤーを ATT&CK Navigator(https://mitre-attack.github.io/attack-navigator/)にインポートして可視化します。
ステップ 5:エグゼクティブ向けカバレッジレポートを作成する
戦術カテゴリ(Initial Access、Execution、Persistence など)ごとに、件数と割合をまとめます。攻撃グループによる使用頻度に基づき、リスク順に並べた死角となっているテクニックの上位 10 件を提示します。データソースの追加を提案します(例:「PowerShell Script Block Logging を有効にして、Execution のサブテクニックの不足箇所 12 件に対応する」)。
主な概念
| 用語 | 定義 |
|---|---|
| ATT&CK Technique | T 番号で識別される具体的な攻撃者の手法(例:T1059 = コマンドおよびスクリプトインタープリター) |
| Sub-technique | テクニックをより細分化したバリエーション(例:T1059.001 = PowerShell、T1059.003 = Windows コマンドシェル) |
| Tactic | ATT&CK における攻撃者の目標カテゴリ:Initial Access、Execution、Persistence、Privilege Escalation、Defense Evasion、Credential Access、Discovery、Lateral Movement、Collection、C&C、Exfiltration、Impact |
| Data Source | ATT&CK v10 以降で、テクニックを検知するために必要なテレメトリを特定するコンポーネント(例:プロセス作成、ネットワークトラフィック) |
| Coverage Score | テクニックに対する検知の完全性を表す数値(0~100):0 = 検知なし、50 = ログのみ、100 = アラートあり |
| MITRE D3FEND | ATT&CK を補完する防御的対策のオントロジー。防御テクニックと、それらが緩和する攻撃テクニックをマッピングします |
ツールとシステム
- ATT&CK Navigator:ATT&CK マトリックスにカバレッジスコアと注釈を重ねて表示する、ブラウザー上で動作するヒートマップ可視化ツール
- mitreattack-python:ATT&CK STIX データ(テクニック、グループ、ソフトウェア、緩和策)にプログラムからアクセスするための、MITRE 公式 Python ライブラリ
- Atomic Red Team:各テクニックの検知を検証するアトミックテストケースを提供する、MITRE に準拠したテストライブラリ
- Sigma:ATT&CK タグ付けをサポートする検知ルール形式。Splunk、Sentinel、QRadar、Elastic 向けに変換できます
- ATT&CK Workbench:独自のテクニック拡張を管理する組織向けの、セルフホスト可能な ATT&CK ナレッジベース
よくある落とし穴
- カバレッジを過大に主張する:データソース(例:プロセス作成イベント)を記録していても、関連する手法が検出されるとは限りません。悪意のあるパターンに対して実際にルールが発火する必要があります。
- 戦術レベルのみでマッピングする:ルールに「attack.execution」というタグを付けても、具体的な手法 ID がなければ、詳細なギャップ分析ができません。
- サブテクニックを無視する:多くの攻撃者は特定のサブテクニックを使用します。T1059(親手法)をカバーしていても、T1059.005(Visual Basic)をカバーしているとは限りません。
- 更新せずに静的なマッピングを使う:ATT&CK は毎年メジャーバージョンをリリースします。手法の追加、改訂、廃止に伴い、カバレッジマップは古くなります。
- 攻撃者グループにマッピングしない:汎用的なカバレッジマップでは、自社の業界を標的とする APT が使う手法と、一般的なマルウェアが使う手法を区別できません。