流量劫持技术2
全流量威胁分析方案,是针对目前APT分析发现困难的问题。运用大数据处理的相关技术,提供对较长时间跨度的海量网络流量数据进行挖掘分析的能力;结合机器学习、规则检测、沙箱检测、情报分析等多种威胁检测手段,依据攻击链模型对威胁行为进行关联,构建出一套较为完善的APT检测体系,使得较大时间跨度的APT攻击检测成为可能。
全流量分析的架构与过程
这是我们的全流量分析方案整体架构,流量威胁的分析过程如下:首先对于网络做监测,监测完了以后把所有的流量输入规则引擎,一个是规则,还有一个是沙箱,这两个是应用比较多的方式。中间有个很重要的环节就是说流量的原数据,相当于把流量的原数据包括流量的一些包头等等都截取出来,中间有一些关于占流量的内容除掉以后,把包头和原数据存下来,存下来以后再结合攻击链的行为,通过我们的大数据分析平台,做相应的一些运算,获得整个攻击的回溯或者是往后的推测。
在这个方案里面,我们通过规则引擎和沙箱进行流量解析和未知威胁检测后,把流量汇聚到我们大数据分析的平台。另外这个平台也可以接入威胁情报。通过这些方式整合进我们的大数据分析平台里面,来获取这种异常的分析,并且能够做到相应的接入内容的检索。我们可以通过这种流量的原数据做回溯,比如以前发生过什么,以及对我现在的主机造成了哪些影响。通过这种方式,对我们之前的基于规则方式的安全防护是一个很好的补充。
基于DNS数据实现僵尸网络发现
现在有一种非常流行的僵尸网络——Domain Flux类型僵尸网络,通过DGA算法根据一个种子不断自动生成新的域名,域名的生命周期通常很短,当攻击者要发动攻击时,提前为C&C主机注册域名,等待肉鸡连接。而我们如果是通过以前的规则的方式,很难快速形成一些规则去监测这些内容。但是如果推动机器学习的方式,我们通过流量数据的抓取以后,把这种僵尸网络的特性做一些相应的总结。比如说域名奇葩、不好发音、长度不合理等等。我们有了这些表现的特性以后,形成刚才所说的机器学习里面很重要的特征内容。根据这些特征内容,机器学习可以根据相应的算法去匹配,来挖掘出僵尸网络。
机器学习发现蠕虫传播行为
我们也是通过这种方式发现了蠕虫的传播行为。现在蠕虫的一般行为也很简单,无外乎就是随机端口扫描,扫描完了以后发现你开了相应的端口,然后就去植入相应的一些后门等等。这是蠕虫的方式。
但是针对这种蠕虫的方式,原来只能应用一些专门的规则,针对某一类特定的蠕虫的一些规则。而通过机器学习的方法,我们首先可以形成一些特性,像刚才说的蠕虫传播的特性,比如说放射性的传播,特定的端口、相同的一些发送的数据包。把这些也做相应的特征提取,最后再由些迭代式的算法,来发现这种僵尸网络的传播。
机器学习发现隐蔽信道
有一些经常用DNS来做隐蔽通道的传播。因为大家知道DNS的数据我们一般不做控制。所以通过DNS数据你就可以传播很多信息。所以对攻击者来说,DNS是一个很好的方式,DNS的递归解析体系保证了信道的稳定和传输的可靠性,且防火墙基本不拦截DNS数据包。
我们来做相应的解析以后,发现随机注册的域名,包括随机域名传输的一些数据等等。这些信息也就形成了相应的一些检测特性。包括域名的长度,TTL的时长。根据这些检测特征性就能够很好地检测出这一种隐蔽行道。采用这种方式,是开始基于流量抓取的一些特征所实现不了的。而采用机器学习的方法就能够很容易的实现。
利用机器学习在日志分析方面的实践
传统的日志基本上都是单点的。比如IDS日志、漏扫设备日志、防火墙日志以及其他网络设备在数据传输过程中形成的一些日志。出现问题只能一个一个单点排查,效率极低。如今通过机器学习,可在日志分析方面进行更为高级的分析形式。
基于攻击链的安全分析
刚才我们看到各种分析的方法,或者是一些安全事件的点。不管是侦查阶段、工具准备阶段还是攻击利用、安装后门等等阶段,我们看到的都是一个一个事件的点。而通过这种攻击链分析的方法,通过以下七步,可以对一些事件做一个归类。通过这种归类以后,能够形成一些特性。
攻击链为黑客攻击行为的分析,提供了有效的理论支撑。
事件理解模型
攻击链方法可能能够对我们做安全事件的分析产生一个比较有意义的方式。但是这里面有一个很重要的技术点,就是在于对事件的理解。现在各类厂商,不管是绿盟,或者其他友商,都会有事件爆发出来。事件爆发出来以后,就会对日志的分析产生非常大的困难。这个困难在于我们如何理解这些事件,只有理解这些事件才能进行刚才说的下一步推理。
而关于事件的理解,我们这里做了一个事件理解模型,分成了三步。
- 第一,基于时间窗口老化合并。在一个固定的时间周期内,把产生的安全事件做一个基于时间的归并,这叫一个时间窗口的老化。
- 第二,基于情报的事件可信度分析。基于情报对这些归并的事件进行分析,产生事件的可信度。
- 第三,基于事件知识库的事件理解。
时序关联分析
有了这个事件的理解以后,接下来一步很关键,是关于时序关联。所谓时序关联,我们举个很简单的例子。早上6点,小明在操场,一般来说早上6点在操场不是跑步,就是锻炼。再说复杂一点,比如说中午或者是下午3点,小明在办公室,这又是干嘛?在办公室,那肯定是上班。比如说周末3点在家,在家干嘛呢?那在家可能是在看电视,也可能在休息等等。而这种时候,就产生了一个推理的过程。我们可以根据时间、天气、爱好等等,推理出几种行为,这就是时序分析。
在这种时序分析下,我们如何进行安全数据特征化呢?比如说我有了一些攻击的特征和一些日志、一些事件。然后我再通过一些场景,比如说时间的约束,如A事件只能在B事件之后发生,把这种时序产生出一些安全场景,来描述某一个拓扑攻击的过程,这就是安全的时序。
基于这些分析形式 展开机器学习在日志分析方面的实践
- 攻击过程归纳 。通过安全时序的方式,我们可以形成攻击过程的归类。所谓攻击过程的归类,就是按照七步的方法。先是侦查行动,比如攻击前先要做一些扫描,做一些探测的行为。接着,如果发现漏洞,就需要POC工具,或者是改造一些恶意文件。接着就需要植入一些木马,然后再利用漏洞等等。相当于基于攻击时序形成一系列的方法。通过这种时序方法来对安全事件进行安全告警,形成一些规避方案,或者是对有效的攻击事件画出一个攻击行为来。
- 攻击过程分析 。具体事件的分析方法:比如说某一天我收到了一堆的攻击日志,有前天的、昨天的、今天的,形成一些告警的事件。然后通过攻击链七步法,对每一个行为做匹配。例如,5月3号做了一个端口扫描,它是属于侦查的。5月6号做了破解,把这些行为画出一个攻击时序。
- 实际安全场景分析 。有了时序以后,就可以形成一个攻击场景。黑客什么时候入侵,然后他做了一些什么事,比如扫描、暴力破解、提权、植入木马等等。植入了木马以后,后面产生了一些恶意攻击事件,不管是僵尸网络或者是DDoS的攻击等等。
- 攻防场景预警及回溯 。然后基于机器学习,对于某一时间点发生的事件,我们就可以对未来可能发生的事件进行预警。另外一个比较重要的实践是回溯。找到某一些事件究竟对我产生了哪些影响,从而能对未来的事件作出更好的预警。
威胁预警与智能“反”攻击链
未来,能够实现基于攻击场景的推理,预测未来的安全事件。此外,基于事件处置库进行智能拆解,对应到不同设备,下发对应策略,全方位进行防护处置。