ATT&CK相关知识

ATT&CK相关知识

经过数年的知识积累,ATT&CK已经从针对企业内网的、Windows平台的、终端侧的、post-compromise行为分析模型,拓展为多场景(企业内网、移动环境等)、多平台(Windows、Linux、macOS等)、针对多源数据(终端、网络、文件等)、攻击链全生命周期的行为分析模型。兼具丰富的实战效用和可拓展的顶层模型设计,ATT&CK越发得到安全业界的重点关注。关于ATT&CK的介绍已有很多,在此,我们从多个关键词的角度来分析简单分析其特性。

1. MITRE

MITRE是美国的一家非盈利组织,在美国国防部、国土安全部等政府组织的支持下,运营了多个技术研究中心,涉及网络安全等多方面国防高科技领域。MITRE发起或者运营了多个网络安全领域的标准如STIX/TAXII 1.0(STIX/TAXII 2.0目前已由OASIS运营),知识库如CAPEC,MAEC,CWE,CVE,ATT&CK等,针对网络安全领域的威胁建模、攻击分类、威胁情报等多方面研究构建了一个较为完整的安全生态。

2. APT

APT(Advanced Persistent Threat,高级持续性威胁)逐渐成为安全行业谈论的热门话题,而ATT&CK正诞生于对已知APT组织的分析过程中:ATT&CK发起自MITRE的FMX(Fort Meade eXperiment)实验环境,旨在通过攻防对抗数据的采集和分析,提升对APT检测能力。ATT&CK归类的攻击技术大部分源于公开的APT组织活动,其主要的信息来源包括:

  • 威胁情报报告
  • 会议报告、研讨会、社交媒体、博客、开源代码库、恶意软件样本等

可以说,ATT&CK知识库的数据基础决定了其具有更贴近真实攻击者行为的实战效果,同时对APT攻击组织的分析和相关威胁情报的关联有得天独厚的优势。MITRE目前已发起的两轮基于ATT&CK的厂商能力评估中,也是以已知APT(APT3和APT29)作为攻击模拟的范本。

3. 威胁建模和知识库

威胁建模是网络安全威胁分析的一个重要环节,ATT&CK的概念抽象层次,是其区分与其他威胁模型、威胁知识库的关键。MITRE公司对威胁模型和威胁知识库的概念抽象层次进行了粗粒度的划分,如下所示。划分到不同层次的模型、概念没有优劣之分。区别在于不同的抽象层次决定了模型的表达能力和能够覆盖的概念的粒度。较高层抽象可谓高屋建瓴,从宏观的角度给威胁事件定性、给风险评级。较底层的概念更贴近细节,能够给威胁威胁事件更确切实际的解释、指导和评估。
ATT&CK相关知识_第1张图片
TT&CK被划分为中层次模型,相对的,Cyber Kill Chain和STRIDE威胁模型可以划分为高层次模型,可以用来表达和理解高层次的攻击者目标和防护系统风险。这些高层模型抽象层次高,自然难以表达具体的攻击行为和攻击行为关联的具体的数据、防护措施、配置资源等。例如,我们可将某一IOC或攻击行为对应到攻击链的“C&C”阶段,这提醒防御方需要采取必要的措施了,但采取怎样的措施,攻击链模型是难以表达的。而在ATT&CK中,该IOC可能对应到战术 “Command and Control”,同时采用的是“Multi-hop Proxy”的技术手段以达成战术目标,至此,我们可以进一步获取针对该技术手段的一些通用的防护措施。当然,中层次的ATT&CK所描述的仍然是TTP的抽象,具体到实例化的行为描述,仍然需要细粒度的划分。

漏洞库及漏洞利用模型划分为低层次概念。我们可以认为CAPEC、CWE属于这个抽象层次。CAPEC(Common Attack Pattern Enumeration and Classification)关注的是攻击者对网络空间脆弱性的利用,其核心概念是攻击模式Attack Pattern。从攻击机制的角度,CAPEC通过多个抽象层次对攻击进行分类和枚举。其目标是针对已知的应用程序脆弱性的攻击行为进行全面的归类。相对而言,ATT&CK的目标不是对不同攻击战术目标下技术的穷尽枚举,而是通过APT等攻击组织的可观测数据提取共性的战术意图和技术模式。战术意图是CAPEC枚举库难以表达的。从攻击检测的角度来看,只有明确攻击技术的战术意图,才能进一步推测攻击的关联上下文信息,以支持攻击威胁的评估和响应。此外,通过提供攻击组织(group)和软件(software)信息,ATT&CK还能够串联起威胁情报和事件检测数据,打通对威胁事件的理解链路

4. STIX 2.0

Structured Threat Information Expression (STIX)是MITRE发起的威胁情报交换语言和标准。Trusted Automated Exchange of Intelligence Information (TAXII) 则是用于威胁情报安全传输的应用层协议。STIX 2.0目前已转交OASIS的网络威胁情报技术委员会(CTI TC)维护。为了促进威胁情报的共享,STIX 2.0设计了12种域对象(SDOs,STIX Domain Objects)和两类关系对象(SROs,STIX Relationship Objects)。12种SDO如下所示:

为什么说STIX 2.0是ATT&CK的一个关键词呢?首先,ATT&CK本身就是建立在威胁情报的验证与抽象之上,在威胁检测应用中,能够自然打通外部威胁情报与内部的行为分析与检测结果,实现检测告警的上下文扩充。其次,将ATT&CK作为知识库构建知识图,需要通过本体库(实体种类、实体关系、实体属性、关系属性等)的设计,实现兼容性和拓展性。例如,与CAPEC、CWE、CVE等分类模型和枚举库的兼容。STIX 2.0提供了描述网络空间威胁情报的对象构成方案,也同样对安全知识库的本体设计有参考价值。当然,STIX 2.0的对象构成可能难以适应不同的应用场景中实体的描述粒度,不过以其当前的使用范围和接纳程度来看,定制化的知识图架构也最好能够兼容该方案。
ATT&CK相关知识_第2张图片
上图展示了ATT&CK Tactic(战术)、Technique(技术)、Group(组织)及Software(软件)所覆盖的STIX 2.0对象。

下面是它们的对应关系:
  • ATT&CK Technique -> STIX Attack-Pattern
  • ATT&CK Tactic -> STIX Attack-Pattern.Kill-Chain-Phase, STIX Tool.Kill-Chain-Phase, STIX Malware.Kill-Chain-Phase
  • ATT&CK Group -> STIX Intrusion-Set
  • ATT&CK Software -> STIX Malware (OR) STIX Tool
  • ATT&CK Mitigation -> STIX Course-of-Action

对应关系的细节如下:

ATT&CK Technique -> STIX Attack-Pattern

Attack-Pattern.type = “attack-pattern”
Attack-Pattern.id = “attack-pattern-uuid”
Attack-Pattern.created = [date created]
Attack-Pattern.modified = [date modified]
Attack-Pattern.name = Name of ATT&CK Technique
Attack-Pattern.labels = (Hand selected)
Attack-Pattern.description = Taken from ATT&CK page entry - also includes ATT&CK fields for effective permissions, data sources, requires network, supports remote, and detection
Attack-Pattern.external_references = References from ATT&CK
Attack-Pattern.kill_chain_phases = ATT&CK Tactic
Attack-Pattern.x_mitre_contributors (Custom) = ATT&CK Technique.Contributors
Attack-Pattern.x_mitre_data_sources (Custom) = ATT&CK Technique.Data Sources
Attack-Pattern.x-mitre_platforms (Custom) = ATT&CK Technique.Platforms

ATT&CK Tactic -> STIX Attack-Pattern.Kill-Chain-Phase (OR) STIX Tool.Kill-Chain-Phase (OR) STIX Malware.Kill-Chain-Phase

Attack-Pattern.kill_chain_phases = ATT&CK Tactic
Malware.kill_chain_phases = ATT&CK Tactic
Tool.kill_chain_phases = ATT&CK Tactic

ATT&CK Group -> STIX Intrusion-Set

Intrusion-Set.type = “intrusion-set”
Intrusion-Set.id = “intrusion-set-uuid”
Intrusion-Set.created = [date created]
Intrusion-Set.modified = [date modified]
Intrusion-Set.name = Name of ATT&CK Group
Intrusion-Set.aliases = List of ATT&CK Group.aliases
Intrusion-Set.description = Taken from ATT&CK page entry
Intrusion-Set.external_references = References from ATT&CK

ATT&CK Software -> STIX Malware (OR) STIX Tool

Malware.type = “malware”
Malware.id = “malware-uuid”
Malware.created = [date created]
Malware.modified = [date modified]
Malware.name = Name of ATT&CK software
Malware.labels = (hand selected)
Malware.description = Taken from ATT&CK page entry
Malware.external_references = References from ATT&CK
Malware.kill_chain_phases = Taken from ATT&CK page entry: backtracked from technique to tactic
Malware.x_mitre-aliases (custom) = ATT&CK Software.aliases

Tool.type = “tool”
Tool.id = “tool-uuid”
Tool.created = [date created]
Tool.modified = [date modified]
Tool.name = Name of ATT&CK software
Tool.labels = (hand selected)
Tool.description = Taken from ATT&CK page entry
Tool.external_references = References from ATT&CK
Tool.kill_chain_phases = Taken from ATT&CK page entry: backtracked from technique to tactic Tool.x_mitre_aliases (custom) = ATT&CK Software.aliases

ATT&CK Mitigation -> STIX Course-of-Action

Course-of-Action.type = “course-of-action”
Course-of-Action.id = “course-of-action-uuid”
Course-of-Action.created = [date created]
Course-of-Action.modified = [date modified]
Course-of-Action.name = Name of ATT&CK software
Course-of-Action.description = Taken from ATT&CK page entry
Course-of-Action.external_references = References from ATT&CK


目前ATT&CK知识库已可以通过STIX 2.0进行完整的表达。具体的内容可以查阅MITRE官方Github的cti项目。

你可能感兴趣的:(威胁建模,知识图谱)