인터페이스는 현지화되어 있으며, Skill 소개와 설명 문서는 선택한 언어로 AI가 자동 번역합니다. 코드·명령어·경로·전문 용어는 원문을 유지하며 원작자 문서가 우선합니다.
Skills 둘러보기
생산성 및 협업 · SKILL.md

implementing-mitre-attack-coverage-mapping

implementing-mitre-attack-coverage-mapping

实施 MITRE ATT&CK 覆盖率映射,以识别检测空白、优先排序规则开发,并衡量 SOC 检测成熟度与对手技术的匹配程度。

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill 문서

GitHub

name: implementing-mitre-attack-coverage-mapping description: 实施 MITRE ATT&CK 覆盖率映射,以识别检测空白、优先排序规则开发,并衡量 SOC 检测成熟度与对手技术的匹配程度。 domain: cybersecurity subdomain: soc-operations tags: [mitre-attack, detection-coverage, gap-analysis, attack-navigator, soc, detection-engineering] version: "1.0" author: mahipal license: Apache-2.0

实施 MITRE ATT&CK 覆盖率映射

概述

MITRE ATT&CK 覆盖率映射为安全运营中心(Security Operations Center,SOC)团队提供了一个结构化的、以对手为中心的视角来评估检测能力。根据 2025 年 CardinalOps 报告,企业 SIEM 平均只对 21% 的 ATT&CK 技术具有检测覆盖,且由于数据源配置错误,13% 的现有规则无法正常工作。系统化的覆盖率映射可识别空白、优先排序规则开发,并随时间跟踪检测成熟度。ATT&CK v18.1(2025 年 12 月)是最新版本。

前置条件

  • 访问 MITRE ATT&CK Navigator(https://mitre-attack.github.io/attack-navigator/)
  • 所有活跃 SIEM 检测规则的清单
  • 每条检测规则的 MITRE ATT&CK 技术映射
  • 数据源清单(已接入哪些日志源)
  • 了解与所在行业相关的对手威胁画像

覆盖率映射流程

步骤 1:导出当前检测规则

# Splunk ES - 导出所有带 MITRE 映射的活跃关联搜索
| 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 - 导出带 MITRE 映射的分析规则
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绿色优秀多条已验证规则,经仿真测试

评分标准详解

分数 = 数据源得分(0-25)+ 规则质量得分(0-25)+
       验证得分(0-25)+ 富化得分(0-25)

数据源得分:
  25:所有必需数据源已接入并解析
  15:主要数据源可用
  5: 数据源覆盖不完整
  0: 所需数据源不可用

规则质量得分:
  25:规则使用 CIM 合规查询并设置适当阈值
  15:规则有效但可能产生误报
  5: 基础规则未经调优
  0: 无检测规则

验证得分:
  25:通过对手仿真(Atomic Red Team)验证
  15:使用合成数据测试
  5: 逻辑已审查但未测试
  0: 未验证

富化得分:
  25:包含资产、身份和威胁情报富化的丰富上下文
  15:基础富化(资产查询)
  5: 无富化
  0: 不适用(无规则)

步骤 4:识别优先空白

空白优先级框架

优先级 = 技术流行度 × 影响程度 × 可行性

技术流行度(0-10):
  - 基于 MITRE Top Techniques 报告
  - 在所在行业威胁态势中的频率
  - 在近期事件/数据泄露中的观察情况

影响程度(0-10):
  - 技术成功时的破坏潜力
  - 恢复难度
  - 面临风险的数据敏感性

可行性(0-10):
  - 数据源可用性
  - 规则复杂度
  - 所需工程投入

2025 年需优先覆盖的顶级技术

技术ID流行度典型空白原因
命令和脚本解释器T1059极高需要脚本块日志记录
钓鱼(Phishing)T1566极高邮件网关集成
有效账户T1078高需要行为基线
进程注入(Process Injection)T1055高需要 Sysmon 或 EDR
横向移动(RDP/SMB)T1021高网络分段可见性
计划任务/作业T1053高事件日志采集
数据加密影响T1486高文件系统监控
入侵工具传输T1105中网络流量分析

步骤 5:制定检测路线图

第一季度:弥补关键空白(评分 0,高流行度)
  第 1-2 周:启用缺失数据源
  第 3-4 周:为前 5 个空白技术构建并测试规则
  第 5-8 周:通过对手仿真验证
  第 9-12 周:调优并投入运营

第二季度:提升部分覆盖(评分 25-50)
  - 为现有规则添加富化
  - 添加辅助检测方法
  - 通过紫队演练验证

第三季度:完善良好覆盖(评分 50-75)
  - 添加行为分析
  - 实施检测即代码流水线
  - 跨技术关联规则

第四季度:卓越状态(评分 75-100)
  - 使用 BAS 工具持续测试
  - 自动化覆盖率回归测试
  - 红队验证

自动化覆盖率评估

数据源到技术的映射

# 将可用数据源映射到可检测的技术
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

参考资料

저장한 Skills