使用威胁情报调查攻击者

2017-10-18 00:01:00 elknot 先知安全技术社区

Author:elknot@360corpsec

前言

事情是这样的,之前有很多朋友留言和私聊问我你搞威胁情报这么长时间了,有没有什么好用的姿势来让威胁情报真真正正的为企业安全发挥点作用。我个人觉得吧,威胁情报这个东西就目前看来还上升不到决策的程度,仅仅作为安全运营态势感知的一种补充数据,用来减少日常安全数据运营的盲区,尽可能的发现更多看不见的威胁。所以说怎么样运用才是王道,接下来给大家说一下威胁情报如何真正的在安全运营中应用。

啰嗦几句:下文中提供的数据接口皆为免费/开源/可用次数免费,大家可以放心使用。

0x00 威胁情报种类和作用:

按照传统的分法来看,威胁情报分为战术情报、战略情报和运营情报三个部分,详情我在DEFCON GROUP上也分享过威胁情报的分类,有需要的朋友可以去翻翻。在这里我想说的是另一种分类方式。重点说这么几类情报类型:

IP/Domain 信誉类情报
网络通信流量数据
事件分类(Incident Pulse)数据
蜜罐数据
被动流量解析(Passive DNS)数据

我们一个一个来说:

IP/Domain 类信誉类情报:

其实就是所谓的信誉库,国内的360威胁情报中心、微步在线,国外的RiskIQ Community这些都可以查到IP信誉类的数据。IP信誉类的数据可以让我们了解这个IP是不是一个恶意的IP、他是一个怎么样的IP、是不是被人家攻陷了的IP,这类数据可以让我们快速的知道触发IDS/WAF的IP或者是域名是不是一个很危险的域名,可以帮我们去大概了解情况。这对我们来说是个好消息,但是坏消息是,这些数据有可能不准,同一个IP的位置、接入方式、标记很有可能在不同的威胁情报平台上有着不同的结果。

网络流量通信数据:

这里的网络流量指的不是内网的流量数据,而是从大网上采集的数据,比如说下面这张图,这张图就是我前两天在做攻击溯源的时候在SANS Dshield上查到的53(DNS服务)端口的流量图,当然最后在我调查的时候发现这台机器实际上是一个Windows Server跑了个ISCBIND9服务,然后服务器有弱密码被人给入侵。

可以看到这台服务器的53号端口再9月14号的时候存在一个比较大的流量波动,这两天消停多了(不该问的别问),同时我们发现了SANS还将该IP标记为ADM Worm(别太相信这些,后期我的企业安全建设专栏会放蜜罐及养马场的建设)

事件分类(Incident Pulse)情报:

这类情报可以算是目前比较高级的威胁情报了(不能说高级,这样的话就有点太狂了,中等高级吧),这类威胁情报是把一些威胁情报的基础数据进行打包,同时封装成一个个的事件,也就是Incident Pulse,个人认为封装成Incident Pulse的好处在于可以更快的发现事件(事件驱动的CIRT将会成为趋势,CERT可能会被CIRT取代,毕竟Emergency一定是Incident,而Incident就不一定Emergency了),另一个好处可能是出于商业目的——更好地Subscription然后收取订阅费。这两个目前做的比较好的是新版的微步在线、国外的Alienvault OTX、IBM X-Force Exchange,同时订阅服务做的也很到位。之前6月Petya预警的时候我提前了好久就知道样本的md5然后从vt上扒下来开始。。。(也就半个小时吧)。下面就是IBM X-Force Exchange对于某事件的相关资产情报。

蜜罐数据:

这个数据就有点意思了,不同于前面的数据,这个数据你可以去使用前面TI平台提供的,当然也可以选择你自己去设计。蜜罐这个东西其实就是让攻击者上当,这个也就是蜜罐的核心。蜜罐的作用其实有很多,除了收集攻击者使用的各种基础设施之外,更重要的时候可以收集攻击者的行为、进攻路径、产生的数据和攻击目的等等,这些对我们研究黑产和正(bai)规(mao)军(zi)的行(zi)为(shi)是非常有意义的。之前我的蜜罐就被人撸过,当时ssh蜜罐完整的记录下来这个人的行为,最后追回去的时候发现这个人是个白帽子。由于姿势太骚,可以看点不骚的操作,如下图所示(我做测试的)。

被动流量解析数据:

也就是大家说的PDNS(Passsive DNS的缩写),数据,这类数据其实就是去被动的解析域名,然后把解析的结果记录下来,比如Passive DNS,这类数据可以帮我们去识别出来一些攻击者的历史信息,比如说这个域名开始时候谁注册的什么乱七八糟的。上个图吧,比如说百度的PDNS数据。

以上这些就是一些威胁情报的分类,当然要根据情况去使用对应的威胁情报数据可以说是必须的。

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

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

回归正题,威胁情报既然是个辅助手段,那么肯定有一个主要手段,这个主要的手段其实就是针对事件的分析,接下来主要说的是两个分析使用的模型——钻石模型和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的安全防护矩阵,如下图所示:

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

前面我们说了威胁情报的分类和高级威胁分析方法,接下来我们就来说说如何李用威胁情报来调查攻击者。(由于某些众所周知的原因,里面有些数据我就不提了,怕被查水表)

经过前面两部分,我们现在可以得出来攻击者的一些基础设施信息了,所以我们遇到的事件是这个样子的:

我利用一些比较久的数据来做一下sample,现在填充一些数据,于是乎就变成了这个样子:

以上是通过之前对于整个事件的分析我们可以确定的几点,首先从我们针对整个事件分析的结果来看,我们可以得出来几个很明显的数据点:

从IP的地理位置来看,攻击者很有可能在境外
从攻击者使用的基础设施及域名解析来判断的话,资产很有可能是是被其攻击利用的
攻击常用的手段是扫描、SQL注入、暴力破解
攻击者攻击的目标是我方的IDC服务器

OK分析到这里我们可以对攻击者有个大概的了解:

攻击者攻击手段大多都是以探测性质的为主,并没有真正攻击成功。
我们可以使用IDS和WAF来阻断攻击者对我们的攻击
攻击者太菜

其实绝大多数我们碰到的案例都是这样的,但是领导往往会追问:能查出来这是谁搞的么?

0x05 利用威胁情报分析该攻击者:

我们使用威胁情报来调查一下这个攻击者,首先我们从IP和域名入手来分析他的基础设施。通过威胁情报平台来查询这个IP,我们在主流的情报平台上来查询,结果如下。

恩,看上去被标记的地方挺多的,这个时候我们可以认为这个IP是一个恶意的IP(这说的不是废话么!!!),其实这个时候我们分析完基础设施之后应该去看一下这个服务器的大网流量。

这个趋势还可以,不是那么猖狂,峰值差不多10K左右吧,其实Dshield这个数据可以看到套接字信息,这里我就不贴了,我们发现一组套接字数据有点意思:

23.xx.xx.58:80 -> 58.xx.xx.163:4120

这个后面这个IP不停地在访问前面这个IP,而且频率之高,于是我们对这个IP进行了调查,由于前面图贴的挺多的了,我们就贴少点。

呦,厉害了,还有撞库,我们来看一下这个IP到底什么来头,通过开放的DDoSMon可以看到这个IP发起了一些DDoS攻击(打马赛克的IP是被攻击IP,感谢@杨絮)

我们再来看一下这个IP到底在哪儿?

恩,现在基本上清楚了。但是呢,个人还是觉得这个存在一个概率问题,所以结果仅供参考。其实最后溯源出来的完整内容如图所示:

就先写这么多吧,其实我这里没有对这个IP的真实身份进行调查,因为这个是无意义的,因为前面说过,这个攻击者造成的影响其实我们的安全防御体系可以完全抵挡,我们完全没有必要去查到这个人是谁,但是由于要满足领导的好奇心,所以才会去对攻击者进行一个挖掘,最后祝大家多抓黑客,但是一定要在受监管的条件下进行。此篇完结。