使用威胁情报追踪攻击者——Part 2 高级威胁事件分析与防御矩阵

接Part 1,声明一下,Part 1里面提到的威胁情报数据并不能帮助甲方来预测攻击,但凡听到销售或者售前说威胁情报可以预测攻击这事儿千万不能信。那么有的人可能就会问了,威胁情报不能预测攻击我拿来干什么。接下来再说事件分析之前,我们先来说一下威胁情报在安全运营体系当中的定位。

威胁情报在安全运营体系中的定位是——辅助发现潜在的或正在发起的恶意行为或操作,重点在于辅助两个字,威胁情报严格意义上来说只能有限的感知潜在的威胁,换句话说:如果有人现在瞄准的目标全部都是能源类客户,那么威胁情报就可以提醒没有被攻击的客户可能会遭受到该攻击者的攻击,这个叫做有限的感知潜在的威胁。

回归正题,威胁情报既然是个辅助手段,那么肯定有一个主要手段,这个主要的手段其实就是针对事件的分析,接下来主要说的是两个分析使用的模型——钻石模型和Kill-Chain模型,这两个模型在分析的时候往往需要结合起来使用,尤其是比较大型的针对性的攻击诸如APT攻击。

0x01 Kill-Chain模型:

Kill-Chain模型实际上是一个造飞机的公司提出来的,就是造猛禽的那个公司(Lockheed Martin)。背景什么的我就不再说了,首先先来具体看一下这个模型。

Kill-Chain模型分为7个部分,侦查阶段(Reconnaissance)、武器化阶段(Weaponization)、部署阶段(Delivery)、攻击阶段(Exploitation)、后门植入阶段(Installation)、远程控制阶段(C&C)、后渗透阶段(Actives on Objects),也就是下面这个样子:

每个阶段表示的意思其实根据名字就差不多了解了:

  • 侦查阶段:扫描目标IT资产和信息收集,比如说Google Hacking这些侦查类型的攻击
  • 武器化阶段:将前一阶段发现和扫描到漏洞的信息整合到一起并制作针对性的武器(当然国内的嘛,你懂得)
  • 部署阶段:将这些武器或者是远控RAT部署到对应的Compromised Servers上
  • 攻击阶段:使用这些Compromised Servers和之前做好的武器化工具对目标发起攻击
  • 后门种植阶段:安装远程控制的服务和进程
  • 远控阶段:让目标和C&C通信
  • 后渗透阶段:收割、继续横向渗透入侵

其实Kill-Chain描述的是一个完整的供给链条,有点类似于PTES那个流程,就是下图(源自之前做废的ppt):

0x02 钻石模型分析:

之前说过了一次完整的攻击行为的参考就是上面说到的Kill-Chain,也就是用来描述的攻击者攻击的路线和进行的进度。但是Kill-Chain只能说明攻击的进程和路线,并不能很好地说明造成的影响和目的,钻石模型就很好的针对性的补充了这点。

钻石模型是一个针对单个事件分析的模型,核心就是用来描述攻击者的技战术和目的,具体的钻石模型如下图所示:

这个模型其实就是钻石模型,之前在DEFCON GROUP会议上由于时间等其他原因没有给大家说清楚这个怎么回事。直接看图上,右边其实就是一个钻石分析模型,其实钻石模型由三部分组成:置信度、元数据、社会-政治影响和技战术组合,我们一个一个来说:

社会政治影响:处于钻石模型上下两个顶点,上顶点表示攻击者,下顶点表示受害者也就是目标。攻击者和受害者之间的某种利益冲突或者是社会地位对立则会产生攻击的意图和发起攻击的原因,纵切面表示的就是社会政治影响。说大白话就是根据这俩人去发现攻击的意图。

技战术组合:技战术组合位于整个钻石模型的横切面,横切面的两个顶点分别为基础设施和技术能力,这里的基础设施和技术能力其实都是相对于攻击者而言的。

元数据:这个其实就是左边列出来的,攻击时间、攻击阶段、攻击结果、攻击方向、攻击手段、攻击资源利用。

置信度:也就是以上你分析出结果的可信程度。

钻石模型想要表达的其实就是针对单个安全事件,我们可以得到攻击者为什么想要攻击目标,打算用什么手段去攻击目标。

这里要提醒一点,但凡基于威胁情报做分析的时候一定要牢记以下4点:

  1. 威胁情报分析出来的结果一般不能作为电子证据确定嫌疑人有计算机犯罪行为
  2. 威胁情报分析结果须带有严格的置信度
  3. 威胁情报数据由于技术原因限制不可以做到实时性
  4. 要在相关机构的监管下进行分析

举个简单的例子来说,我们现在收到了一封附件带有远控木马的钓鱼邮件,并且有人打开了附件,结果机器被远控。这么一个事件用钻石模型分析就如下图表示(源自做废了的ppt)。

这样的话就可以化解为一下步骤:

  1. 受害者发现PC、服务器出了问题,感染了恶意的软件或者病毒样本
  2. 逆向分析恶意的软件,发现了该软件包含了恶意的域名
  3. 通过PNDS数据发现C&C域名解析到恶意的Ip地址
  4. 通过相关的日志分析判断攻击者曾与C&C接触过
  5. 通过IP地址查阅相关的威胁情报数据来获得攻击者的更多细节

0x03 Kill-Chain与钻石模型的组合分析:

钻石模型的特点是:可以说明攻击者在单个事件中的攻击目的和所使用的技战术

Kill-Chain模型的特点是:可以说明攻击线路和攻击的进程。

复杂的攻击往往都是有一系列的攻击事件组成的,不同的攻击事件指向的目标和达到的目的可以表示出攻击的进程,那么OK,我们如果把事件按照Kill-Chain进行分类同时使用泳道图进行表示,同时把不同的攻击路线分为不同的攻击线程,那么我们就可以得到一个这样的泳道图。

其实这张图描述的是这么一个事件:

1.攻击者先对目标进行了Google Hacking操作,获得了他们域名解析记录等一些基础的It信息
2.攻击者找到了一个目标新注册的域名,然后用搜索引擎搜索他们的网络管理员的电子邮件信息
3.攻击者使用鱼叉邮件方式对目标的网络管理员发送一封带有木马的邮件
4.目标的网管(我们叫他网管一号)打开了这封邮件的附件然后不幸中枪
5.网管一号的主机因为中了病毒,所以攻击者利用网管一号这台主机发送了一个HTTP Post请求到域控节点,然后域控节点返回了一个HTTP Response
6.我们通过对鱼叉邮件中附件进行逆向分析发现里面有两个IP地址,第二个IP地址作为备份,防止第一个失效
7.通过C&C请求到网管一号的主机,我们的恶意程序打开了一个TCP代理服务
8.通过网管一号主机上的代理服务,攻击者继续去Google上搜索其他的目标
9.攻击者检查网管一号邮件的通信录列表去寻找是否拥有目标二号的通讯方式,结果发现了目标二号的首席科学家的联系方式
10.攻击者使用攻陷的网管一号的邮箱对目标二号的首席科学家的邮箱发起鱼叉邮件攻击,工具使用和之前一样的
11.此时又来了一个攻击者,我们称他为攻击者二号,攻击者一号扫描了目标三号的web服务器
12.使用同样的漏洞利用工具攻击发现目标三号主机上的相同的漏洞
13.被攻陷的目标三号主机返回一个shell会话给攻击者三号
14.目标三号的所有数据被攻击者三号窃取

这样的话使用Kill-Chain和钻石模型分析可以同时get到攻击者的点和想要攻击的目标,同时还知道了他的攻击路径,也就是说这时候我们对攻击者了如指掌了。

0x04 基于Kill-Chain的安全防护矩阵:

其实按照Kill-Chain,我们完全可以设计一个基于Kill-Chain的安全防护矩阵,如下图所示:

当然啦,这个仅供参考,=-=。

Part 2结束,Part 3还没想好要写啥,等想好了再写吧。

相关的PPT:slideshare.net/JeremyLi

编辑于 2017-10-16