APT 分析及 TTPs 提取

百般思念 提交于 2021-02-14 09:32:33

https://paper.seebug.org/1132/


作者:PIanet
招高级安全分析 反APT研究 威胁情报 hongyu1@360.cn
原文链接:https://projectsharp.org/2020/02/23/APT%20%E5%88%86%E6%9E%90%E5%8F%8A%20TTPs%20%E6%8F%90%E5%8F%96/?from=groupmessage&isappinstalled=0

Abstract

本文对 APT 分析及 TTPs 提取进行讨论,总结出一套适用于安全分析、安全研究及企业应急响应人员的分析方法。

文章由六部分组成,引用了杀伤链模型,钻石分析模型,ATT&CK 等内容,介绍了攻击事件、APT 攻击的一些概念,简单概括了 “通过攻击者能力切入” 和 “通过基础设施切入” 的两种 APT 事件分析的方法。着重探讨了 TTP 的提取、使用、应用、落地及归因判断。提出了 “特征矩阵” 和 “事件链图”,设计了描述模型,同时进行了简单的可行性论证。

内容适用于具有一定经验的安全分析师,病毒分析师,威胁情报分析师等安全人员。

0x00 攻击事件

什么是攻击事件?

个人理解,攻击事件是在未授权情况下,对计算机系统或计算机资源进行访问、使用、更改、破坏的活动。根据事件烈度和影响范围,可以分为以下几类:

  • 常规攻击
  • Botnet
  • 恶意软件
  • APT

0x00-01 攻击事件甄别

对攻击事件,可以从烈度、影响、指向以及特点等维度进行甄别。

  • 常规攻击

常规攻击一般事件复杂度低,杂音少,线性且可直接推测出攻击目的。其中包括非定向钓鱼,端口,服务扫描,SQL 注入,拒绝服务攻击,会话劫持和中间人攻击,凭证重放等。此类型事件,影响少,危害可控且可在短时间内进行排查修复。

  • Botnet

僵尸网络的特点就是大规模攻击,数据说话,涉及到RAT。比如 Necurs、Gafgyt、Mirai 僵尸网络上的垃圾邮件、DDoS 等。

  • 恶意软件

恶意软件指一些勒索、挖矿以及病毒木马。涉及钱包、矿池;目的不同,会包含 RAT;不同的入口,也会出现标志性的工具和利用。比如 WannaCry、Bad Rabbit、大量 MikroTik 路由器被感染进行恶意挖矿等。

  • APT

APT 攻击时间复杂度高,多个行为,多个指纹身份;有 loader、有Downloader、有 RAT、有 Malware。在所有攻击事件中是最难分析的一类。知名的 APT 组织:海莲花、摩诃草、APT28、Lazarus Group 等。APT 的目标通常是监视网络活动并窃取数据,而不是破坏网络或系统。

0x00-02 攻击事件的核心元素

借用钻石模型中的概念,每一起攻击事件(Event)都包含四个核心元素:攻击者(Adversary)、受害者(Victim)、能力(Capability)和基础设施(Infrastructure)。

  • 攻击者:攻击事件的直接执行者 在一些大型的攻击事件中,攻击组织有完善的人员体系结构,这里所说的攻击者,是事件的直接操作者。

  • 受害者:攻击者的目标 不同类型的的攻击事件中受害者表现也不同,可能是一台主机、一个企业或者一个机构。

  • 能力:使用的工具或者技术

能力是事件中攻击者所使用技术或者工具。从探查到最终目的达到,“技术”存在攻击过程的每一个阶段。

  • 基础设施:攻击者维持权限控制的通道或者载体。 基础设施可以理解为攻击的 C2 通道,可以分为三类:① 攻击者购买拥有 ② 攻击者攻陷的 ③ 使用的第三方平台或者服务。

每一起攻击事件,都有一个攻击者通过基础设施上的能力对受害者产生影响,进而达成某种目的。所有攻击事件都是围绕这四者进行展开的。

在这四核心元素之上,又可以衍生出 “技术”,“社会” 维度,指导安全分析。在此不再展开,之后会单独做一个专题,使用钻石模型进行事件分析。

0x01 APT

APT (Advanced Persistent Threat),翻译为高级持续威胁。这类攻击报告,最早可以追溯到 2005 年 6 月,英国国家基础设施安全协调中心 (UK-NISCC) 和美国计算机应急响应小组 (US-CERT) 发布了技术警报公告,其中描述了有针对性的社交工程电子邮件,这些电子邮件包含特洛伊木马进行窃密。(LM White Paper Intel DrivenDefense)

这个概念炒了好几年,不同身份角色,站在不同角度都有自己的理解,就不过多解读。文章以下内容,限定在国家及组织对抗的 APT 攻击场景。

0x01-00 APT 攻击的特点

国家及组织对抗的 APT 有以下几个特点:

  • 攻击目的性强,为了达到目的不择手段。

  • 雄厚的支持

分析中发现有大量漏洞利用和定制化工具使用,这反应出 APT 攻击需要耗费巨大的人力、物力。攻击者往往有政府或财团支持。

  • 目标价值高

与投入相匹配,APT 攻击的目标价值往往也十分高,其攻击领域有:政府部门、军事部门、基础设施、金融机构、教育科研机构和大型企业等。

  • 时间复杂度高

APT 攻击的另一个特点就是,时间复杂度高,持续时间长。即使有报告对 APT 组织进行披露,导致之前的攻击手段失效,但只要目标的价值还在,那么攻击还会发生。

0x01-01 APT 入侵的方式

APT 攻击入侵的方式主要有:鱼叉式钓鱼、IM、水坑攻击、钓鱼网站、1/N day 漏洞、0 day 漏洞和物理接触。入侵包括载荷投递和突破防御两个阶段,各种入侵方式的成本如下图:

入侵方式金字塔,从下到上,入侵成本和危害程度逐层递增。

处于金字塔最底层的是鱼叉式钓鱼邮件和即时通讯软件,它是最常见、入侵成本最低的攻击方式。攻击者常常以鱼叉邮件做为攻击入口,精心构造邮件标题、正文和附件。用来投递恶意网址、伪装文件或者含有漏洞利用的文档。IM 与鱼叉邮件钓鱼类似。水坑攻击和钓鱼网站也是常见 APT 攻击入侵方法。侵入网站,加入恶意 JS 伪装更新;或者通过推特、fb、论坛上面通过发布、评论、转发等方式进行社交平台的水坑攻击。还可以制作钓鱼网站,通过邮件、IM、水坑等方式投递给受害者,窃取账号密码、收集主机信息或者诱惑下载恶意软件。这两种入侵方式的成本也不高。

防御边界的渗透攻击,针对的是受害系统、业务的防御边界,进行常规的渗透攻击,例如常见的 SQL 注入,文件上传,跨站脚本攻击、跨站请求伪造等。此类入侵方式较常规网络攻击并无不同,入侵的目的是突破防御边界,找到稳定且隐蔽的入口,渗透攻击在 APT 攻击中也是比较常见的。

再往上,就是漏洞利用。漏洞利用的目的有两点:未授权安装、运行代码和规避杀软检测。其中 0 day 漏洞危害和成本要远大于 1/N day 漏洞。各种 APT 攻击中,出现过许多操作系统漏洞、路由器或交换机网络设备漏洞,以及 office,Flash,PDF 等应用漏洞。此种攻击往往搭配其他手法,组合进行入侵。例如容器漏洞在渗透攻击中的利用,以及 Office 漏洞在钓鱼中的利用。

漏洞入侵之上是供应链攻击,典型的例子如 XSHELL 、CCleaner、华硕软件更新劫持等攻击事件。在突破上游供应商后,在极短的时间内进行资产摸排、更改、下发、劫持。又同时可以顺利筛选、控制下游目标。整套流程下来,及其考验攻击组织的技术能力,协调能力,后勤能力及储备和信息收集能力。

最顶层是物理接触,典型的攻击事件:“震网”。这种比较少见,不多说。

APT 攻击是否成功,取决于攻击者的目的和所具有的入侵能力,与目标防御强弱无关。防御强弱和目标的价值决定了入侵的方式。漏洞利用,特别是 0 day 漏洞都是针对高价值,特定目标,考虑到入侵成本,APT 攻击更倾向于其他的入侵方式。

0x02 APT 事件分析

在事件分析的初期,我们拿到的线索是破碎零散的,这些线索只是攻击者为了达成目的采取的手段,我们做安全分析,其实是对攻击手段上下文的描述。

事件有四个核心元素,攻击者、受害者、基础设施和能力。我们分析 APT,可以从受害者、基础设施和能力三个角度进行切入。具体方法分为两种。

0x02-00 APT 两种分析方法

通过攻击者“能力”切入分析:

基于能力的分析方法,对应的是样本分析。样本分析要关注样本的行为及上下文关系。

样本行为包括样本的恶意行为、驻留、子进程创建,释放文件、网络请求等。其中要注意样本中携带的信息和加解密、攻击技术、对抗技术方面的特征。这些携带的信息和特征有助于关联匹配到其他样本。

入侵过程中往往有 fake (Downloader),有 Dropper,有 backdoor;各个阶段还会包含伪装、漏洞利用。初期拿到的样本通常只是其中一个。样本分析是事件分析的基础,只有弄清样本的上下文关系,才能理顺攻击手段。

样本分析同学以恶意软件为起点,针对技术(加解密、攻击技术、对抗技术),C2 结构和恶意软件上下文进行分析。根据恶意软件的特征匹配其他样本,扩大分析面。期望分析得到的结果:

  • 受害者的信息
  • 基础设施列表
  • 使用的技术
  • 样本的一些特征
  • 匹配到其他样本

各大厂商的 APT 报告都是以攻击者能力切入,所以看到大量篇幅都是恶意软件技术报告。

通过攻击者“基础设施”切入分析

基于基础设施的分析方法是 C2 关联分析。是描述事件上下文最有效的方法。

样本中多少会暴露一些基础设施信息;或是 IP,或是域名。通过 WHOIS 信息来发现统一注册者的不同域名。进一步研究可以得到针对不同攻击者的恶意软件信息(相似/相同的基础设施)。期望分析得到的结果:

  • 与该基础设施有联系的受害者
  • 该基础设施下发\上传、命令控制等行为
  • 关联到其他基础设施

分析过程中要注意一点,样本分析和关联分析并不是独立进行的。

对恶意软件进行分析,得到其中的 C2 基础设施。通过对 C2 的关联分析,找到了同一基础设施下发的其他样本。之后再对样本进行分析……由此形成了一个循环。最后的效果,差不多是这样的:

举一个简单的例子:我们拿到初始样本 A,进行恶意软件分析,得到其中的 C2:域名 A 和域名 B,对 C2 基础设施关联分析,发现具有相同基础设施的样本 B。通过对样本 B 逆向分析,得到新的 C2 域名 C。这仅仅是一个循环,分支上就已经可以关联到许多信息。这个循环越多,找到的线索越多,最后事件分析的完整度就越高。

0x02-01 IoC 层级

IoC (Indicators of Compromise) 在取证领域被定义为计算机安全性被破坏的证据。在 APT 领域作用就是描述攻击者得恶意活动。分析人员对 IoC 进行识别和关联,来寻找恶意活动背后得事件和潜在得威胁。APT 分析工作都是围绕 IoC 进行的。

分析过程中遇到的 IoC 有以下几种:

  • hash
  • IP
  • 域名
  • 网络
  • 主机特征
  • 工具
  • TTPs

这些 IoC 的地位并不是相同的,其中一些指标远比其他指标更有价值。David Bianco提出了 Pyramid of Pain,描述了 IoC 之间的层级关系。

img

  • hash:

指样本文件的哈希值。通常用于提供对特定恶意软件样本或涉及入侵的文件的唯一标识。hash 值是分析人员最容易拿到的 IoC,但是哈希值很容易改变,文件中更改一个字节,都会影响文件哈希。很多情况下不值得跟踪。

  • IP: 绝大多数恶意软件都有网络行为,其中一定会涉及 IP,但是如果攻击者使用匿名代理或者 Tor,IP 十分容易改变。

  • 域名: 域名和 IP 类似,但是域名需要注册,要付出一定的费用。因为 DNS 解析需要时间,即使使用 DNS 服务商提供的免费域名服务,但是还会有时间成本。所以,域名稍比 IP 稳定一点。

  • 网络特征: 指 C2 上,比较有区分度得特征。比如,恶意软件请求 C2 上指定路径的资源文件,如:GET xxx[.]com/AWDA/a.exeGET xxx[.]com/AWDA/get.php?fun=xx&ad=xx,或者向指定位置上传文件:POSTxxx[.]com/AWDA/img.php等,AWDA/a.exeAWDA/get.php?fun=xx&ad=xxAWDA/img.php 这些就是网络特征。攻击者可能会架设多个 C2,多渠道撒布大量恶意软件。只要 C2 指令结构不变,网络特征很难改变。

  • 主机特征: 指恶意样本中,携带的攻击者主机的一些特征。这些特征不容易发现。但是对匹配其他样本、定位攻击者意义重大。后面有章节详细介绍。

  • 工具: APT 攻击中,为了达到某种目的,攻击者往往会使用、研发、定制一些工具。比如 APT 28 使用的 DealersChoice、Xagent。攻击者定制、自研一些工具,肯定要花费一定的成本。如果对攻击套件进行准确识别,攻击者只能放弃目前所使用的工具,这样无疑加大了下次攻击的成本。

  • TTP: Tactics, Techniques, and Procedures (战术、技术、过程)。是对攻击者攻击行为,战略战术层次的描述。I /域名可以更改,网络主机特征也容易消除、工具可以重新开发。但是攻击的战略战术往往很难改变,如果能识别出 TTP 特征,攻击者要么放弃攻击,要么指定新的战术。这对 actor 将是致命的打击。在 IoC 的层次结构中,由下到上获取难度依次增高,同时改变的难度和价值也是增长的。处于最顶端的是 TTP,这是最有价值和最难获取的 IoC。下面聊一聊 TTPs 提取。

0x03 TTPs 提取

TTP 是什么?

TTP: Tactics, Techniques, and Procedures (战术、技术、过程)

  • 战术:攻击者从信息收集开始到目的达成的攻击策略。攻击的目标、攻击目的、前期信息收集方式、对目标攻击的入口点、载荷投递方式等等都可以划分在战术指标里面。
  • 技术:为了达成攻击目的,Actor 通常在具体事件中使用各种技术。这些技术旨在突破防御,维护 C2,横向移动,获得信息、数据等。
  • 过程:要进行成功的攻击,仅仅拥有良好的战术和技术是不够的。还需要一组精心策划的战术动作来执行才可以。

0x03-00 TTP 提取的难点

战术、技术、过程三个词过于抽象,目前没有很好的方案对 TTP 进行实体描述。

再者就是,相关的资料过于匮乏。国外技术封锁、而国内做 APT 研究的能力性安全厂商寥寥无几。 曾从事过一段时间 APT 分析,结合钻石分析模型、Kill chain,摸索出一种描述 TTP 的方法:特征矩阵和事件链图。

不管是 IoC、IoA、SITX 还是 ATT&CK ,目前市面上都没有成熟的方案对 TTP 进行描述,特别是 ATT&CK ,因为过度炒作,目前已经有点妖魔化。本篇不对 ATT&CK 过多探讨,可以参考阅读《安全分析中的威胁情报(二):ATT&CK》《关于ATT&CK/APT/归因的讨论》以示正听。ATT&CK 对 TTP 提取的帮助,后文会进行讨论。

0x03-01 特征矩阵

特征矩阵是对特征的事件分析过程中,攻击者能力,基础设施,战略等方面的特征总述。

整体分为三个部分,基础设施特征、技术特征、战略特征。

  • 基础设施特征中包含 C2 列表、网络特征和样本中携带的主机特征。
  • 技术特征包含加解密技术、攻击技术和对抗技术。
  • 战略特征包含目标群体、攻击入口和载荷投递。

大体的框架如图所示,一些指标要根据实际情况进行调整:

img

  • 战略/战术: 包含目标群体、攻击入口和载荷投递方式和释放流程。攻击入口、载荷投递方式和释放流程可以在样本分析中进行总结。

事件四个核心元素,攻击者、受害者、能力、基础设施。上面所讲了通过能力和基础设施切入进行事件分析。此外,还可以通过受害者进行切入分析,得到攻击者的一些战略信息。例如,攻击者为了提高成功率,会贴合受害者定制一些攻击邮件或者文件,通过其中精心构造的邮件名、正文、附件内容,可以反推受害者群体,以此揣摩攻击者的战略目的。

  • 基础设施: 基础设施分为 C2、网络特征、主机特征。因为会有基础设施重用的情况,C2 列表一定要有;再者就是 URL 上面的网络特征以及样本中携带的主机特征。主机特征有很多,例如样本生成的开发/打包工具语言、配置,PDB 调试文件路径、源码路径可以看出攻击者的一些习惯;样本、签名证书的生成时间推断攻击者所在地区、如果数据量大的话,还能根据节假日、休息日推断所在国家。如果有文档类样本,还会有文档所有者、修改者这些攻击者个人信息。

  • 技术: 技术特征分为加解密、攻击技术、对抗技术、C2 技术。技术特征太多了,加密算法、使用的工具、持续部署的方案、漏洞利用、C2 通信方式、反杀软、行为隐藏……工具使用,代码重用这些情况都可能导致技术上的重叠。

以上的特征分析方法对应:

  • 战略战术 -> 受害者分析
  • 基础设施 -> 样本分析 + 关联分析
  • 技术特征 -> 样本分析

TTP 是 Tactics, Techniques, and Procedures。得到的特征矩阵,更多的是在能力和基础设施方面上的特征,Procedures 上面的体现很弱。为了弥补这一点,推出事件链图来表示攻击事件的上下文,体现战术特征。

0x03-02 事件链图

在说事件链图时,先补充几个概念。

KILL CHAIN

入侵的本质:攻击者开发有效的载荷突破防御,在可信赖的环境中实现驻留,以便接下来的行动。这种行动可能是横向移动、窃密、破坏完整性或可用性等。

洛克希德马丁公司,在 2011 年发布的一篇论文《Intelligence-Driven Computer Network Defense Informed byAnalysis of Adversary Campaigns and Intrusion Kill Chains 》中描述了一种名为 Kill Chain 的入侵分析模型。通过对入侵的理解,杀伤链将攻击定义为7个阶段:

  • Reconnaissance (侦察)
  • Weaponization (武器构建)
  • Delivery (载荷投递)
  • Exploitation (漏洞利用)
  • Installation (驻留)
  • C2 (命令控制)
  • Actions on Objectives (采取行动)

前面的六个阶段都是为最后采取行动做铺垫。当入侵成功实现驻留之后,恶意软件将会通过 C2 命令执行一些横向移动、窃密、破坏、勒索等一些恶意行为。介绍 Kill Chain 的文章已经很多,不再赘述。

攻击总是线性的

攻击者不可能隔空,也不可能不借助外有资源和能力达成攻击目的。

举一个简单的例子:

攻击者投递含有 cve-2017-11882 的钓鱼邮件,受害者打开了钓鱼文件,漏洞利用成功,文档从远程拉取执行了后门。

将描述的实体抽离出来,就是这个样子:

outlook ->
Explorer ->
office ->
EQNEDT32 ->
[NET] ->
Explorer ->
Payload

简单梳理一下, 此描述的攻击动作,其中将使用到的行为主体有 outlook,资源管理器,office,公式编辑器,网络和最终的 payload。每一个步骤都是首尾相连,且没有中断的。

攻击在观测空间内的动作一定是呈线性关系的。操作的对象、攻击的动作一定是有明确的目的和明显的前后关系。

APT 分析单位

在此规定一下,事件为 APT 分析的最小单位,而不是样本。

样本分析 ∈ 事件分析

事件分析 ∈ 攻击战术分析

一次完整的分析要包含完整独立攻击上下文。当然,事件之间是关联的。比如,攻击者发送钓鱼邮件,其中包含钓鱼网站链接,受害者接收钓鱼邮件并且点开钓鱼链接下载并运行了恶意软件。这是三个独立事件:邮件钓鱼、钓鱼网站、恶意软件执行。

因为在杀伤链模型中,邮件钓鱼、钓鱼网站、恶意软件有各不相同入侵过程。虽然整个攻击是连贯的,还是要将各个步骤拆解出来,单独进行事件分析。

为了表述事件链图。指定以下场景:

APT 组织对某机构进行攻击:
攻击者通过 google hacking 搜寻到所属该单位的某雇员,通过社交平台找到其 163 邮箱。
对该员工发送钓鱼邮件,其中包含 163 邮箱钓鱼网站。
雇员查看钓鱼网站,泄漏了自己 163 邮箱密码。
攻击者登陆邮箱,查看往来信件,锁定高价值目标。
向高价值目标发送钓鱼邮件,其中包含有漏洞利用的文档。
文档被打开,主机被感染,窃取到机密文件。

以上整个攻击,用事件链图描绘出来:

img

入侵的上下文用实线连接,事件之间的上下文用虚线连接。就构成了基于杀伤链的事件链图。

但是 APT 攻击手法是多样的,设立的场景中,钓鱼邮件进行恶意文档投递,水坑攻击不行么?最终后门是通过利用文档漏洞进行恶意代码执行,使用浏览器漏洞是不是更高效?所以我们将链图再进一步抽象,就得到最后成品:

攻击的入口和方法很多,但是攻击事件的上下文基本上是类似的。

img

因为场景十分简单,实际的 APT 攻击,制作出来的链图要比这一个丰富的多。

0x04 TTPs 的使用及归因判断

首先是特征矩阵,特征矩阵着重对 APT 活动技术上面进行描述。

img

两个活动 A 和 B,将特征矩阵由 A 到 B 进行映射,相同颜色部分标识相同特征。区域的颜色标识特征的置信度。当置信度达到一定阈值后。我们就可以将两个活动关联起来,认为是同一攻击组织所为。 之前 IoC 层级中提到,不同的 IoC 他的更改难易程度不同,所以各种 IoC 的价值也不同。在这里也是适用的。

在特征矩阵映中,映射到的部分权重也而不相同。参照 Pyramid of Pain,制作一个 Pyramid of Features:

img

自下而上,一共七层。最底层是样本中硬编码的字符串和样本中携带的主机特征、这些是最容易改变且经常用来迷惑分析人员的指标。往上是 C2 上面的特征,这些也很容易改变,但是同批样本,同一活动的 C2 结构基本相同。在往上是样本中的一些攻击技术和对抗技术。处于顶层的时加密方式、密钥、使用的攻击,漏洞利用技术、C2 和独特的算法。

加密方式和密钥以上在关联分析中的置信度已经很高了,特别是非对称加密的密钥,但是生存时间短,经常用过几次后就被弃用。再一个是使用的工具和漏洞利用技术,在 Pyramid of Pain 也提到了,工具的开发需要大量的人力金钱成本,这些特征不容易改变。

APT 组织,有基础设施重用的情况,如果看到相同的 C2,基本就确定活动关联,但是要注意 C2 生命的连续性,如果域名 1 月份注册到期,过了保护期,6 月份时再次活跃,是不是同一攻击者还需思量。独特的算法包括加密算法、有特点的攻击技术、对抗技术。

金字塔上的特征有下到上,特征的改变难度越高、价值越高,使得在分析时,权重和置信度也越高。

如果特征上,置信度叠加不高,就可以在事件链图中进行匹配:

img

A 是所掌握的某组织的事件链图,B 是独立攻击的事件链图。

红色部分为匹配到的相同特征,如果特征置信度达不到一定阈值。可以观察 A 攻击的上下文,与所掌握 B 的信息是否相符。如果上下文重合度高。可以增加 B∈A 的可能性。

TTP 是有生命周期的。APT 攻击在对抗中升级,技术、战术特征会在一段时间后变的面目全非。

归因判断不仅仅可以通过特征矩阵进行特征匹配,还可以通过事件链图攻击上下文进行佐证。

0x05 TTPs 落地的思考

一个东西提出后,首先要思考的是它产生的背景,自身的价值,适用的范围,解决的问题,存在的不足以及可行的落地场景和具体方案。

TTP 的意义在于可以对一起攻击事件、一个攻击组织高度的总结。可以帮助我们对攻击进行及时的感知和阻断。此外,TTP 另一个用处就是归因判断。

0x05-01 实体抽取

不管用作防御的感知和阻断,还是在研究领域的归因判断。落地前需要解决的第一个问题就是人类语言向机器语言的转变,也就是行为实体抽取和可机读。

前文提出了一个观点:攻击是线性的,且不可能隔空进行操作。将操作对象视为原点,操作视为方向,其构成的向量即代表本次的攻击动作,向量的顶点即表示下一个操作对象。这些一个个的攻击动作首尾相连构成攻击行为,最终指向的便是攻击目的。

img

进行 TTP 提取的前提是,梳理出完整的攻击流程和操作对象。而图中所示的操作对象,便是需要抽取的实体。“操作对象” 具有以下特点:

  • 攻击过程中的支撑点
  • 攻击过程中更改、操作及运行的对象。
  • 操作的载体
  • 攻击中所需要的资源(运算、网络)

还是那个例子:

攻击者投递含有 cve-2017-11882 的钓鱼邮件,受害者打开了钓鱼文件,漏洞利用成功,文档从远程拉取执行了后门。

outlook,资源管理器,office,公式编辑器,网络和最终的 payload 这些都都是操作对象。他们直接或间接的受控于攻击者。

0x05-02 关系描述

“事件链图” 是描述 TTP 的重要方法,它着重强调了攻击的上下文关系,以及操作对象之间的关联关系。在事件链图描述中,每一个方块实际就是操作对象。除此之外另外一个维度就是关联关系,也就是 “操作”,对应事件链图中连接方块的边。

操作可以理解为攻击动作。人类知识转变为机器语言是困难的,将攻击动作进行可机读的表述需要借助一个东西:ATT&CK。

ATT&CK 对 TTP 提取的帮助

ATT&CK 的价值在于统一了行为标记和描述的标准。它对攻击性操作进行细分和分类,有了这种完善的参照,极大减少了 “行为抽象” 的成本。

进行 TTP 描述,需要对攻击的动作进行一种标准化描述。我们所要描述的 “关系”,其实是表达 “攻击者借助何种基础设施,采用何种方法对受害者产生影响的过程”,这是一种带有明显方向性的特征。就像标量不能描述矢量一样,狭义的 IOC 是不能描述 TTP 和攻击上下文的。

MITRE 提出了 STIX (Structured Threat Information eXpression), CrowdStrike 提出了 IOA (Indicator of Attack),他们都意识到 IOC 是不足以描述丰富多变的网络安全环境,也不能描述复杂的上下文关系。STIX 通过 Observables (可观察对象)、Indicators (上下文关联)、Incidents (上下文实例)、TTP、Exploit Target (弱点)、Campaign (意图)、ThreatActors (恶意行为特征)、Courses Of Action (反应措施) 描述攻击;而 IOA 主要表达攻击者必须采取的什么行动才能达成目的。

不管是何种方式,IOA、SITX 都是在尝试去描述攻击过程这一 ”矢量“,而 ATT&CK 的出现就像胶水一样,很好的将 ”部件“进行粘合。丰富且适用的字典可以帮助描述操作对象的上下文关系,进而帮助对 TTP 进行抽象描述。

ATT&CK 让攻击描述可以聚焦于更加抽象的过程总结,而不必纠结这个攻击的实际步骤。并且采用统一的描述方法,实现了可机读,以及可以更好的进行信息交换,降低数据转入转出成本,提高信息适用性和可拓展性。

使用 ATT&CK 进行关系映射

使用 ATT&CK 关系映射分为两种:人工映射以及自动化匹配。

人工映射无非就是打标签,分析人员在分析过程中,通过自身知识的总结攻击活动,人工到 ATT&CK 矩阵中去匹配。自动化映射是指,机器去理解攻击的上下文关系,通过一些算法,将攻击过程去 ATT&CK 矩阵中去匹配。

人工映射十分准确,既然是人,肯定有自己擅长的领域以及知识盲区,“人” 对非擅长领域的信息是很难进行判断的;同时,人的精力是有限的,面对海量信息显得有些乏力。为了解决人工映射的弊端,业内有自动化映射的研究,不可否认,自动化映射更符合真实环境需求。受限于当前机器学习发展的瓶颈,很难有一个算法可以全自动地进行 ATT&CK 映射。

结合 “事件链图”,使用 ATT&CK 映射关联关系可以从四个角度入手:

  • 环境:动作所处的环境,例如操作系统,执行环境(内存、命令行、SQL 等)
  • 实现:进行了何种操作,例如文件释放,网络请求,数据修改等
  • 操作对象:如释放的文件类型,注册表等
  • 特征:有一些攻击动作,需要特定的条件,比如 T1170,T1156,T1086 等,这种,检测到相关特征,便可进行直接映射。

自动化映射需要结合自身系统的设计和需求,因人制宜,不过多的讨论。

0x05-03 完整的描述模型

经过优化, 可以将 “事件链图” 描述为:

img

方块表示操作对象,边表示操作对象之间的操作,也就是 ATT&CK 所描述的那部分。每两个实体和边看作一个最小分析单位,如图中红框所示。其构成的最小元组表达为:

(Node1 {Labels:'xxx'})-[:Relationships {Labels:'xxx'}]->(Node2)

每一个操作对象、实体表达为(Node)。关联关系表达为[:Relationships]。实体和关联关系都具有属性信息。

Node 的属性信息,可以是资源路径,捕获时附带的信息,带有的命令行参数等等。一切和操作对象实体有关的信息都可以放在里面。Relationships 描述攻击过程和实体之间的关系,可以基于 ATT&CK 进行描述,属性信息包含攻击击过程的环境,实现,特征或者其他一切信息。总的说,关注的是4种内容:

  • 实体
  • 实体的属性
  • 关联关系
  • 关联关系的属性

基于此种描述模型,可以延伸出两种 TTP 描述方法:

  • 关注实体的 TTP 描述方法(特征矩阵)
  • 关注关联的 TTP 描述方法(事件链图)

特征矩阵中的信息,大多可以映射到实体属性上。关注实体的 TTP 描述方法更多的是在能力和基础设施方面的特征。关注关联的 TTP 描述方法,着重上下文关系,更能体现体现战术特征。当然也可以将两者进行融合,只不过我将其归为第二类。因为描述上下文时,也需要操作对象(实体)的属性信息。

那么如何设计数据结构呢?可以使用 json 嵌套,也可以使用 STIX ,当然也可以自己设计标准。此处留一点想象空间。??

0x06 参考链接

鸣谢

主要内容成文于两年前,感谢当时 Redrain、cyg07 对我教导和帮助。


Paper 本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/1132/

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!