ATT&CK
简介
本系列旨在介绍网络红蓝对抗领域最好的ATT&CK矩阵模型,以期帮助有意愿深耕在红蓝对抗领域的人员能系统性的掌握红蓝对抗领域的知识和经验。本系列将详细ATT&CK的起源、发展历史,ATT&CK矩阵相对其他High-Level红蓝对抗模型的优势,ATT&CK在红蓝对抗领域的作用,ATT&CK囊括的战术技术的组织逻辑和应用场景,以及需要动手实操学习的ATT&CK最活跃的子项目AtomRedTeam。
网络攻防痛点
现如今大量的APT(A: Advanced Targeted, Coordinated, Purposeful,P: Persistent Month after Month, Year after Year,T: Threat Person(s) with Intent, Opportunity, and Capability)攻击层出不穷,数据泄露事件频发,各类恶意软件大肆横行,企业与机构在这样的态势下越发显得疲于应对。
首先,单一的攻击手段逐渐已经失去了有效性。在实际的生产应用环境中,基本已经很难利用某一基础通用漏洞对重要的业务资产产生影响,大多数企业已经初具安全意识,这当然是一个非常好的发展趋势,但这却在无形中增加了信息安全人才培养的难度。
如何有效的描述网络攻击所使用的技战法,以及为什么会使用这些技战法,是一个非常复杂的问题。但是这个问题如果不描述清楚,则没有很好的输入给到防御方,以便能够比较系统的建设安全防御方案。防御更是一个系统工程,没有模型或者理论指导,很难有效的起到防御的作用。
同时,网络安全作为计算机中的一个特殊分支,学习的内容广而杂,非常容易迷失方向。而传统的基于目标实践的培养方式在过去很好的激发了一代又一代网安人的成长,他们常常利用所学到的为数不多的知识就能发动一次有效的攻击(比如曾经的SQL漏洞满天飞,3389跑远控,MSF打内网),而这对于现阶段的网络环境已经变得不切实际了。因此非常需要这样一个类似于指导方案的框架出现,使学习者能够明白学习目标是什么,所需的知识是什么。
结合这两个痛点,我们开始今天的内容,即为什么要学习ATT&CK矩阵
攻击方视角
- 在实际的生产应用环境中,基本已经很难利用某一基础通用漏洞对重要的业务资产产生影响
- 大多数企业已经初具安全意识,安全对抗是网络攻防的必然工作
- 如何比较系统、成体系训练掌握攻击手段,构建攻击链路比较难
防御方视角
- 如何描述网络攻击手法所使用的技战法,以及为什么会使用这些技战法,是一个非常的复杂的问题
- 这个问题如果不描述清楚,则没有很好的输入给到防御方,以便能够比较系统的建设安全方案
- 防御是一个系统工程,没有模型或者理论指导,很难有效起到防御的作用
High-Level的攻击路径模型
一是网络必须可达,否则网络攻击无从谈起;二是必须有网络攻击手段,包括漏洞、弱口令、现有访问凭据利用、现有功能利用等
这个模型的优点在于从业务层描述网络攻击,上层领导能够快速理解网络攻击,所以能有利于分析重点,例如从攻击者视角,可以分析优先攻击哪些资产,需要准备哪些资源;从防御者视角,可以分析哪些资产是关键的防御对象,追踪恶意攻击溯源时,从哪些点上更大概率会找到痕迹,还原攻击路径
缺点是缺少技术细节,尤其是如何描述复杂多样的技术细节,以及为什么要使用这些技术、而不是哪些技术等等,以及为什么要使用这些攻击手法(战术)
High-Level的杀伤链Cyber-Kill-Chain模型
Cyber-Kill-Chain刚面世的时候,是被称为入侵杀伤链,后续才更名为网络杀伤链。在2011年,为了描述网络攻防,洛克希德·马丁公司的计算机科学家,提出一种"入侵杀伤链(Instrusion Kill Chain)"用于保持计算机网络,入侵杀伤链中提出,攻击可能会分阶段发生,并且可以通过在每个阶段建立的控制来破坏
CKC将攻击共划分为如下7个阶段:
- 侦察Reconnaissance:指通过各种信息来源(如github、空间扫描、社工等)方式,收集可访问的攻击入口
- 武器化Weaponization:指攻击者利用漏洞信息,提前制作攻击武器,以便在攻击过程中能快速完成突破。所谓工欲善其事,必先利其器说的就是这个道理。
- 投递 Delivery:指通过钓鱼邮件、web访问、USB外设等途径,向目标企业网络投递攻击武器。
- 漏洞利用 Exploitation:当武器(恶意软件)触及到目标系统或终端时,会通过漏洞等方式,控制受害者的终端或业务系统服务器。
- 安装 Installation:恶意软件安装一个新的后门或新的木马程序,以提升入侵者的访问权限,能接触到更多系统
- 命令与控制 Command and Control:通过前述各类攻击武器,攻击者可以进行命令控制操作,比如说发起进一步的嗅探、攻击等
- 目标行动Actions on Objective:当攻击者接触到既定攻击目标时,可以对其进行各种既定行动(如盗窃机密数据、破坏/加密数据进行勒索等)
Cyber-Kill-Chain解决了如何描述攻击战术的各个阶段的问题,能让大家更好地理解攻击过程。但是CKC存在如下关键问题:
- 抽象程度较高,不同的攻方、守方针对同一个攻击事件,也会给出不同的描述,缺乏统一的描述机制和原语支撑
- 随着网络世界的复杂化,攻防不对称程度持续深化。针对同一个阶段,攻击方有无数种技术、方法可以使用,而防守方却无法清晰描述和知晓自身的安全防护能力的全景实况,难以持续提升攻防对抗能力。
注:网络世界的复杂化是指,比如说操作系统种类越来越多(windows,mac,linux,android,ios等),开发语言越来越多(c/c++、python/ruby、golang等),中间件越来越多(IIS,apache,nginx等)、服务框架、业务系统数量都越来越多,这些复杂化,会增加大量的漏洞、攻击技术、攻击方法
缺少一个比较通用的模型,可以从High-Level和Low-Level同时描述攻击过程,以便安全防御人员能够快速、直观地理解这个攻击过程,以及所使用的技战术等,从而能够针对性的制定追踪溯源方案、安全防御方案
ATT&CK矩阵
ATT&CK是由MITRE机构开发的攻击模型框架,其全称为Adversarial Tactics, Techniques, and Common Knowledge(对抗性战术,技术以及公共知识库),是一个基于现实世界所观察到的攻击向量所组成的一个公开的对抗性战术和技术知识库,其可被用于私营机构、政府部门、网络安全产品和服务社区作为特定威胁模型和方法的开发基础
战术是攻击者执行某项行动的战术目标。战术提供了各项技术的环境类别,并涵盖了攻击者在攻击时执行活动的标准、高级标记,例如持久化、信息发现、横向移动、文件执行和数据泄露
技术(Techniques)代表攻击者通过执行动作来实现战术目标的“方式”。例如,攻击者可能会转储凭据,以便访问网络中的有用凭据,之后可能会使用这些凭据进行横向移动。技术也可以表示攻击者通过执行一个动作要获取“内容”。这与“发现”战术有明显的区别,因为技术侧重的是攻击者采取特定动作是为了获取什么类型的信息
通过战术、技术,用于描述攻击行动的整个过程,也就是我们常说的攻击链
面对复杂的网络攻击, ATT&CK的出现正有利于这一问题的解决,通过从宏观到微观的角度,使用通用语言对各种攻击环节与行为进行具体描述,方便企业与机构据此对自身资产进行一个完整有效的安全评估,隔绝各种可能的入侵风险,这对于整个信息产业的发展都起着弥足轻重的作用
同时,最近威胁情报这一概念也逐渐进入了人们的视野,ATT&CK通过使用定义结构化语言也为动态情报系统的发展奠定了基础