mcpField
I
implementing-mitre-attack-coverage-mapping

implementing-mitre-attack-coverage-mapping

github.com/mukul975セキュリティ35.2k50 回インストール8 週間前に更新
リポジトリ

implementing-mitre-attack-coverage-mapping について

SOC チーム向けに、検知範囲を MITRE ATT&CK に対応付ける実践ガイドです。ルールの棚卸し、技術の採点、ギャップの優先順位付け、ロードマップ策定を扱います。

主な機能

  1. 01SIEM 検知ルールの棚卸し
  2. 02ATT&CK カバレッジマトリクスの作成
  3. 03データソースとルール品質の採点
  4. 04カバレッジギャップの優先順位付け
  5. 05検知改善ロードマップの策定

活用シーン

  1. 01SOC 検知範囲の評価
  2. 02不足するデータソースとルールの特定
  3. 03検知ルールの開発と検証の計画

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill implementing-mitre-attack-coverage-mapping

インストール後、Claude Code で/implementing-mitre-attack-coverage-mappingを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE
assets/
template.md
references/
api-reference.md
standards.md
workflows.md
scripts/
agent.py
process.py

詳細

MITRE ATT&CK カバレッジマッピングの実装

概要

MITRE ATT&CK カバレッジマッピングは、SOC チームに検知能力を評価するための、構造化された攻撃者視点のレンズを提供します。エンタープライズ SIEM が検知をカバーしている ATT&CK テクニックは平均で 21% にすぎず(2025 年 CardinalOps レポート)、既存ルールの 13% は、データソースの設定ミスにより機能していません。体系的なカバレッジマッピングにより、ギャップを特定し、ルール開発の優先順位を決め、検知成熟度の推移を追跡できます。ATT&CK v18.1(2025 年 12 月)が最新バージョンです。

使用するタイミング

  • 環境において、MITRE ATT&CK カバレッジマッピング機能の導入または設定を行うとき
  • コンプライアンス要件に沿ったセキュリティ統制を確立するとき
  • この分野のセキュリティアーキテクチャを構築または改善するとき
  • この実装を必要とするセキュリティアセスメントを実施するとき

前提条件

  • MITRE ATT&CK Navigator へのアクセス(https://mitre-attack.github.io/attack-navigator/)
  • 有効なすべての SIEM 検知ルールの一覧
  • 各検知ルールの MITRE ATT&CK テクニックへのマッピング
  • データソースの一覧(どのログソースが取り込まれているか)
  • 自組織の業界に関連する攻撃者の脅威プロファイルの理解

カバレッジマッピングのプロセス

ステップ 1: 現在の検知ルールをエクスポートする
# Splunk ES - Export all active correlation searches with MITRE mappings
| rest /services/saved/searches
| search disabled=0 action.correlationsearch.enabled=1
| table title, search, action.notable.param.security_domain,
    action.notable.param.severity, action.correlationsearch.annotations
| eval mitre_techniques=mvfilter(match('action.correlationsearch.annotations', "mitre_attack"))
// Microsoft Sentinel - Export analytics rules with MITRE mapping
SecurityAlert
| summarize count() by AlertName, ProductName
| join kind=inner (
    resources
    | where type == "microsoft.securityinsights/alertrules"
    | extend tactics = properties.tactics
) on $left.AlertName == $right.name
ステップ 2: カバレッジマトリックスを構築する
ATT&CK Navigator レイヤー形式
{
    "name": "SOC Detection Coverage - 2025",
    "versions": {
        "attack": "16",
        "navigator": "5.1",
        "layer": "4.5"
    },
    "domain": "enterprise-attack",
    "description": "Current detection coverage mapping",
    "techniques": [
        {
            "techniqueID": "T1110",
            "tactic": "credential-access",
            "color": "#00ff00",
            "comment": "2 active rules - Brute Force detection via EventCode 4625",
            "score": 75,
            "metadata": [
                {"name": "rule_count", "value": "2"},
                {"name": "data_sources", "value": "Windows Security Log, Linux Auth"},
                {"name": "last_validated", "value": "2025-01-15"}
            ]
        },
        {
            "techniqueID": "T1059.001",
            "tactic": "execution",
            "color": "#00ff00",
            "comment": "3 rules - PowerShell Script Block Logging",
            "score": 85
        },
        {
            "techniqueID": "T1055",
            "tactic": "defense-evasion",
            "color": "#ff0000",
            "comment": "NO DETECTION - Requires Sysmon EventCode 8/10",
            "score": 0
        }
    ],
    "gradient": {
        "colors": ["#ff0000", "#ffff00", "#00ff00"],
        "minValue": 0,
        "maxValue": 100
    }
}
ステップ 3: 各テクニックをスコア付けする
スコア色意味基準
0赤検知なしルールがない、データソースが不足している
25オレンジ最小限ルールは存在するが、検証・テストされていない
50黄部分的ルールは機能するが、カバレッジが限定的
75薄い緑良好良好なデータソースを持つ検証済みルール
100緑優秀複数の検証済みルールがあり、エミュレーションでテスト済み
スコアリング基準の詳細
Score = Data_Source_Score (0-25) + Rule_Quality_Score (0-25) +
        Validation_Score (0-25) + Enrichment_Score (0-25)

Data_Source_Score:
  25: All required data sources ingested and parsed
  15: Primary data source available
  5:  Partial data source coverage
  0:  Required data sources not available

Rule_Quality_Score:
  25: Rule uses CIM-compliant queries with proper thresholds
  15: Rule works but may generate false positives
  5:  Basic rule with no tuning
  0:  No detection rule

Validation_Score:
  25: Validated with adversary emulation (Atomic Red Team)
  15: Tested with synthetic data
  5:  Logic reviewed but not tested
  0:  Not validated

Enrichment_Score:
  25: Context-rich with asset, identity, and TI enrichment
  15: Basic enrichment (asset lookup)
  5:  No enrichment
  0:  N/A (no rule)
ステップ 4: 優先度の高いギャップを特定する
ギャップ優先順位付けのフレームワーク
Priority = Technique_Prevalence x Impact x Feasibility

Technique_Prevalence (0-10):
  - Based on MITRE Top Techniques report
  - Frequency in your industry's threat landscape
  - Observed in recent incidents/breaches

Impact (0-10):
  - Damage potential if technique succeeds
  - Difficulty of recovery
  - Data sensitivity at risk

Feasibility (0-10):
  - Data source availability
  - Rule complexity
  - Engineering effort required
カバーすべき優先度の高いテクニック(2025 年)
テクニックID出現頻度典型的なギャップの理由
Command and Scripting InterpreterT1059非常に高いスクリプトブロックログが必要
PhishingT1566非常に高いメールゲートウェイとの統合
Valid AccountsT1078高いベースラインの挙動が必要
Process InjectionT1055高いSysmon または EDR が必要
Lateral Movement (RDP/SMB)T1021高いネットワークセグメンテーションの可視性
Scheduled Task/JobT1053高いイベントログの収集
Data Encrypted for ImpactT1486高いファイルシステムの監視
Ingress Tool TransferT1105中程度ネットワークトラフィック分析
ステップ 5: 検知ロードマップを構築する
Quarter 1: Close Critical Gaps (Score 0, High Prevalence)
  Week 1-2: Enable missing data sources
  Week 3-4: Build and test rules for top 5 gap techniques
  Week 5-8: Validate with adversary emulation
  Week 9-12: Tune and operationalize

Quarter 2: Improve Partial Coverage (Score 25-50)
  - Upgrade existing rules with enrichment
  - Add secondary detection methods
  - Validate with purple team exercises

Quarter 3: Mature Good Coverage (Score 50-75)
  - Add behavioral analytics
  - Implement detection-as-code pipeline
  - Cross-technique correlation rules

Quarter 4: Excellence (Score 75-100)
  - Continuous testing with BAS tools
  - Automated coverage regression testing
  - Red team validation

自動カバレッジ評価

データソースからテクニックへのマッピング
# Map available data sources to detectable techniques
DATA_SOURCE_TECHNIQUE_MAP = {
    "Windows Security Event Log": [
        "T1110", "T1078", "T1053.005", "T1098", "T1136",
        "T1070.001", "T1021.001", "T1543.003"
    ],
    "Sysmon": [
        "T1055", "T1059", "T1003", "T1547.001", "T1036",
        "T1218", "T1105", "T1071"
    ],
    "Network Traffic (Firewall/IDS)": [
        "T1071", "T1048", "T1105", "T1572", "T1090",
        "T1571", "T1573"
    ],
    "DNS Logs": [
        "T1071.004", "T1568", "T1583.001", "T1048.003"
    ],
    "Email Gateway": [
        "T1566.001", "T1566.002", "T1534"
    ],
    "Cloud Audit Logs": [
        "T1078.004", "T1537", "T1530", "T1580",
        "T1087.004", "T1098.001"
    ],
}

レポートダッシュボードのクエリ

戦術別のカバレッジサマリー
| inputlookup mitre_coverage_lookup
| stats avg(score) as avg_score count(eval(score=0)) as no_coverage
    count(eval(score>0 AND score<50)) as partial
    count(eval(score>=50 AND score<75)) as good
    count(eval(score>=75)) as excellent
    count as total
    by tactic
| eval coverage_pct=round((total - no_coverage) / total * 100, 1)
| sort -coverage_pct

参考資料

コメント