基于网络流量异常的僵尸网络受控主机检测研究

2015-12-06 06:11刘成龙
计算机工程 2015年11期
关键词:网络流量僵尸IP地址

白 涛,刘成龙,曲 武,王 震

(1.国网河北省电力公司信息通信分公司,石家庄050021;2.北京启明星辰信息安全技术有限公司核心研究院,北京100193;3.清华大学计算机科学与技术系,北京100084)

基于网络流量异常的僵尸网络受控主机检测研究

白 涛1,刘成龙1,曲 武2,3,王 震1

(1.国网河北省电力公司信息通信分公司,石家庄050021;2.北京启明星辰信息安全技术有限公司核心研究院,北京100193;3.清华大学计算机科学与技术系,北京100084)

大规模僵尸网络已成为当前互联网的主要威胁之一,僵尸网络流量自动检测技术对于互联网服务提供商和大型企业网监控非常重要。为此,提出一种基于网络流量异常的僵尸网络实时检测算法,通过将网络流量组织成主机网络流量图谱和主机关系链,并提取内在命令与控制通信特征检测僵尸网络,同时实现BotScanner检测系统。使用4个主流的僵尸恶意代码家族训练BotScanner,采用模拟网络流量和真实网络流量数据集进行测试。实验结果表明,在无需深度包解析的情况下,BotScanner僵尸网络检测系统能够获得较高的平均检测率和较低的误报率。在数据量较大的交换机上,BotScanner能够有效地进行实时检测,验证了提出算法用于僵尸网络检测方面的可行性。

异常检测;僵尸网络;网络流量;实时检测;恶意代码

1 概述

对抗恶意软件的行为已持续近几十年,新的攻击和防御技术周而复始的互动。在这场攻防战中,僵尸网络是最主要的网络安全威胁之一。在僵尸恶意代码设计中,当前的趋势是利用P2P网络架构进行C&C(Command&Control)通信,并且使用最新的加密和混淆技术,这大大降低了僵尸网络被检测到的可能性。僵尸网络常在控制者指挥下发起大规模网络攻击,如发送大量垃圾邮件、向网站实施分布式拒绝服务攻击(Distributed Denial of Service,DDoS)、偷窃敏感数据、传播恶意代码等。其中,DDoS和发送大量垃圾邮件可以通过对网络流量进行分析,检测相对容易。而对于敏感信息窃取和网络间谍,检测更为困难。

为解决上述问题,本文提出基于Netflow异常的僵尸网络检测方法,并实现了基于该方法的僵尸网络检测系统BotScanner,通过监控网络流量进行僵尸网络受控主机检测。

2 研究目的

BotScanner系统利用C&C通信的观测结论进行检测,即对于特定的僵尸网络家族往往具有一定C&C通信模式。也就是说,同一个家族的僵尸恶意软件会发送相似请求命令流量,同时以一种特别的格式上传受控主机的信息。而且,对于命令和控制结构的重复连接常常遵循一定的时序模式。对于不同的僵尸恶意代码家族,BotScanner可以通过建立多个模型进行检测。最后,在可控的沙箱或虚拟机环境中,执行同属于一个家族的僵尸恶意代码实例并将原始流量存储到Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)中,BotScanner将会从原始流量中提取自定义的Netflow信息。该过程是BotScanner针对企业网设计的,对于互联网服务提供商(Internet Service Provider,ISP)用户,该过程使用的是来自交换机或路由器的标准Netflow信息(自定义的Netflow信息和标准的Netflow信息在本文统称为(UD)Netflow)。下一步,BotScanner将使用(UD)Netflow进行建模。检测模型将被用来分析未知网络流量。当流量匹配该模型时,BotScanner将标记对应该流量的主机IP被僵尸恶意代码感染,与之通信的主机可能是僵尸网络的C&C服务器。

在建模和检测过程中,为了应对大流量的分析要求,BotScanner系统采用的检测算法可以使用交换机吐出的Netflow流量进行检测。基于这种设计,BotScanner系统可以弹性地支持较大的流量。在企业边界部署,可以通过提取自定义的Netflow信息进行检测,在ISP主干网上可以使用交换机或路由器生成的标准Netflow进行检测。此外,BotScanner系统使用了(UD)Netflow信息,并提取了更为显著的特征,这些特征与以往不同,实现了之前设计的目标。在检测阶段,BotScanner系统能够检测个人主机的僵尸软件感染,却无需关联多个主机的行为,但BotSniffer,BotM iner和TAMD等系统则必须要采用关联行为。而且,这些系统依赖噪音行为,例如垃圾邮件和DDoS行为,而这类行为妨碍了偷窃类僵尸恶意软件的检测。尽管当前存在的许多系统都允许检测主机僵尸恶意软件感染,但该类检测方法通常使用的是深度包解析方法。此类方法特征提取阶段时间代价较大,仅适用于企业千兆网络环境,难以应用到万兆企业环境(丢包严重),更难以应用于ISP客户环境。与此相反,BotScanner系统采用以下方式提高检测性能,即使用更高层次的(UD)Netflow信息,根据网络流量情况可选地分析负载流量,而且提取的(UD)Netflow无需深层次分析流量,故对于信道加密并不敏感。为了验证BotScanner系统的检测能力,本文使用4个僵尸网络家族利用BotScanner系统生成检测模型。这些僵尸网络家族在当前网络中是活跃的,BotScanner系统利用了不同僵尸恶意代码家族的传播方式和C&C通信策略。实验结果表明,BotScanner系统能够以较高的精度检测僵尸恶意代码,并能够以较低的误报率产生预期的检测结果。

3 背景和相关工作

僵尸网络本质上是一种新型的攻击方式,其来源通常是传统的恶意代码,例如蠕虫、木马、偷窃工具、间谍工具、后门工具等。第一个具有僵尸网络特性的恶意代码PrettyPark于1999年在互联网上被发现。僵尸网络快速传播并成为互联网最重要的安全隐患之一是从2002年开始的,主要是2种僵尸网络恶意代码的开源,Agobot和SDbot,导致了普通用户也可通过开源的代码从事非法活动。在2005年,文献[1]首次对僵尸网络给出了被一致认可的定义:僵尸网络是可被攻击者远程控制的受控主机所组成的网络。随着僵尸网络的快速发展,许多新的恶意代码技术都被融合到僵尸网络中,包括Rootkit技术、恶意邮件传播技术、加壳和变形技术、蠕虫主动传播技术等,这些技术的融入使得僵尸网络攻击手段更加多样,传播更为隐蔽,检测难度更大。2008年,文献[2]也对僵尸网络给出了定义:僵尸网络是攻击者出于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的网络。该定义将僵尸网络区别于其他攻击方式的基本特性是使用一对多的命令与控制机制。此外,该定义也强调了僵尸网络的恶意性以及具备的网络传播特性。

僵尸网络的核心特性就是其C&C机制,即命令与控制机制。当前,主流的僵尸网络主要使用3种命令与控制机制,即基于3种协议的C&C机制,分别为利用IRC协议的C&C机制,利用HTTP协议的C&C机制,以及利用P2P协议的C&C机制。目前,僵尸网络已经成为互联网最大的安全威胁之一。同时,由于僵尸网络本身的特性,已经成为DDoS、敏感信息偷窃、垃圾邮件发送等攻击的高效手段。为了应对僵尸网络的攻击手段,安全研究人员已经在僵尸网络检测领域展开了深入的研究工作。

在僵尸网络检测领域,基于网络的僵尸主机检测研究主要包括2个主要方向,垂直关联检测和水平关联检测。在垂直关联检测中,为了评估主机受恶意代码感染的情况,通过主机流量分析检测扫描、垃圾邮件和C&C通信等恶意操作。例如,BotHunter系统[3]利用签名检测和异常检测组件对一个典型的感染生命周期进行监测。文献[4-5]分别基于IRC的网络流量中僵尸主机频繁使用的昵称模式进行建模和检测。然而,这些技术仅仅适用于特定的僵尸网络结构,或者依赖于出现一种特定的僵尸恶意程序感染生命周期。而且,大多数检测技术依赖于噪声行为,例如扫描、垃圾邮件或是DDoS攻击流量。文献[6-7]通过自动分析受感染主机的行为,生成检测签名。这些方法的核心思想是,受控主机收到C&C服务器的命令,以一种特定的方式进行回复,该过程能够提取签名。尽管这些方法都表明能够获得较高的检测率和有限的误报率,但其局限性在于它们都要求深度包解析,对于加密的C&C通信无能为力。文献[8]展现了一种方法,该方法主要研究对象是临时访问关系,并提出了目标原子和持久性的概念。目标原子之间使用一种通用的服务或Web地址进行通信,构成了目标原子组。而持久性是对目标原子组的临时规律性进行多重粒度的评估。其核心思想是使用每个主机一段时间的初始化连接进行训练,然后将结果分组到目标原子组。随后,一段时间内固定一致的目标原子组构成了白名单,与白名单相比出现较少的连接将被记为异常,以此识别一个C&C服务器。第2个方向是来自多台主机的网络事件水平关联,这些事件通常被包含在相似的、恶意的通信中。文献[9-12]的工作都是围绕此展开的。除了文献[12]的工作是针对IRC分析的,其他3个系统的检测原理都与僵尸网络结构无关,故对于Pull,Push和P2P僵尸网络也是有效的。然而,不同主机之间的关联行为至少在同一个监控网络中需要存在2台主机,且感染同一种僵尸恶意代码。因此,这些技术对于单个主机的感染无能为力。此外,这些检测技术要求能够观测到一些噪音行为,即根据噪音进行检测。但是,与过去几年相比,低速、低噪音和利益驱动的僵尸网络行为正在增多。另外一种检测P2P僵尸网络的方式是以FoE方法[13-16]、BotSuer检测系统[17]、Botnet在线监控和离线检测方法[18]、基于非监督学习的Botnet检测方法[19]、基于网络行为Botnet检测方法[20]为代表。这种方式利用僵尸网络潜在的通信架构进行检测。BotGrep利用指定的分布式哈希表交互行为进行检测,BotTrack和 BotFinder两个系统都是利用NetFlows数据进行通信异常检测,但是统计方法不同。对于FoE方法,无需进行包深度解析,仅需要进行交互式通信图谱计算检测。然而,除了BotFinder系统,其他系统都是利用蜜罐捕获僵尸恶意样本,然后通过监控僵尸恶意程序之间的通信定位网络中其他的受控主机。该方案要求蜜罐中存在一个活跃的僵尸源,在实际使用中往往受限。BotFinder方法同样需要利用蜜罐捕获僵尸恶意样本。但该方法使用沙箱或虚拟机执行,为其运行行为和通信行为建模作最后检测。文献[21]对Botnet检测的方法和发展趋势进行了综述,并提出了独特的见解。以上这些方案中提到的方法为本文提出的BotScanner系统提供了非常好的借鉴思路。

4 BotScanner系统

通过比较当前流量的(UD)Netflow统计特征与僵尸网络历史流量(UD)Netflow行为特征,BotScanner可以通过流量检测主机感染的僵尸恶意代码。在此过程中,BotScanner包含2个阶段,即训练阶段和检测阶段。在训练过程中,基于机器学习算法,BotScanner学习不同僵尸网络家族的C&C通信特征。然后,BotScanner使用这些特征建立检测模型来识别相似的流量。在检测过程中,这些模型被用来检测网络流量。由于训练过程中充分考虑了加密C&C通信问题,BotScanner能够识别潜在的僵尸程序感染,即使僵尸程序使用了加密的C&C通信方法。

4.1 系统架构

图1描述了训练阶段和检测阶段所包含的步骤:BotScanner需要获取(UD)Netflow作为输入。在训练阶段,BotScanner通过在沙箱或虚拟机中执行僵尸程序样本,捕获这些样本产生的流量,并提取(UD)Neflow特征(或利用路由器、交换机上的Netflow特征)。BotScanner构造主机关系链和主机(UD)Netflow图谱。通过主机关系链构造可信主机关系链特征。此外,根据每个主机(UD)Netflow图谱,提取7个统计特征,分别为主机(UD)Netflow图谱中的2个流之间的平均间隔、平均流持续时长、平均流大小、对于流起始时间的傅里叶变换、IP地址熵、上下行流量比、流量负载熵。最后,BotScanner利用前文提到的8个特征建立模型。在模型建立过程中,BotScanner使用聚类算法处理观测到的特征值集合。由于需要检测多种僵尸网络,而且各类僵尸网络特征相关性难以判别,因此每类特征将分别进行建模。例如,一个僵尸网络家族可能在C&C通信上表现出相似的周期性,但是每个连接却传输了不同大小的流负载。多个特征聚类的联合将形成BotScanner的最终僵尸网络监测模型。

图1 BotScanner系统架构

在检测阶段,BotScanner可以接受不同粒度的数据,即可以选择8类特征的若干种,这些特征既可以来自于标准的Netflow设备,例如交换机、路由器等,也可以来自用户使用自定义的(UD)Netflow特征提取。不同的粒度对应不同的应用场景,也对应不同的检测精度和误报率。使用(UD)Netflow特征的BotScanner多部署在流量相对不大的局域网内,这是由于(UD)Netflow特征提取时间代价较高,流量过大造成丢包严重,导致(UD)Netflow特征不准确。BotScanner使用训练阶段建立的模型进行僵尸网络监测。而使用标准Netflow特征的BotScanner多部署于骨干网,检测精度比(UD)Netflow特征相对低,误报率相对高。值得注意的是,BotScanner可选输入数据粒度的特点,使得BotScanner不依赖于网络流量的负载信息,却可以产生接近的检测精度和误报率。

在训练阶段,僵尸家族样本在沙箱或虚拟机这类可控环境下执行,所有的网络流量都将被捕获和记录。该阶段需要正确地分类僵尸恶意样本,即同一家族的不同样本需要统一分析。在僵尸样本分类过程中,BotScanner使用动态检测和静态检测相结合,选用业界知名的检测和标注系统Anubis和VirusTotal,分别用于动态检测和静态检测。当然,不正确的分类肯定会存在,这可能会影响生成检测模型的质量。但后期的实验结果表明,BotScanner对于训练数据集中的噪音具有一定程度的容错性。

4.2 Netflow监控

如果标准的Netflow数据可用,BotScanner可以直接使用。否则,BotScanner需要将捕获到的网络数据包,按照正确的顺序重组成流。对于每个连接,连接起始时间、结束时间、传输的字节数、数据包数、上下行流量比、流量负载熵等特征将被提取。BotScanner的网络流量重组模块将会输出与Netflow相似的特征,根据用户的需求也可以输出一些额外的特征。对于进一步的处理流程,BotScanner将会处理这些(UD)Netflow数据。

4.3 检测特征提取

4.3.1 主机访问关系链

集中式僵尸网络,主要是具有IRC协议和HTTP协议的僵尸网络为主,为防止单点故障通常采用多个C&C服务器,同时多个C&C服务器的IP地址对应一个域名。受控主机通常使用Heartbeat技术与这些C&C服务器保持连接。分布式僵尸网络,主要以基于P2P协议的C&C为主,没有单点的C&C服务器问题,通常采用发布和订阅方式进行消息通信。僵尸网络控制者发送控制或者命令,受控主机以一定模式向其相邻节点发送心跳信息。此外,受控主机也通常以一定模式连接相邻节点以交换心跳消息。在分布式僵尸网络中,每个受控主机都维护一个相邻节点列表,并以一定模式与名单中的节点进行通信,即不断与同一组节点进行通信。在上述僵尸网络模型中,每个受控主机维护一个相邻节点列表,通过一定模式访问名单中的僵尸节点以获取控制和命令信息。大部分僵尸网络符合上述模型,主机关系链主要描述此类僵尸网络。受控主机连接其邻居名单中前后相邻节点的流总是“相继出现”,即一个流先出现,另一个流紧跟前一个出现,这些流具有前驱后继的特征,BotScanner系统称之为“主机关系链”,如图2所示。

图2 主机关系链

根据关系链中流的个数不同,分为二级和多级关系链。二级关系链指前后2个流的前驱后继关系,多级关系链指前后多个流的前驱后继关系。相比之下,合法用户的网络行为较为随机,几乎不会呈现明显的关系链。因此,BotScanner系统通过提取流间的关系链识别C&C流量,从而检测出僵尸主机。

4.3.2 主机Netflow图谱

主机(UD)Netflow图谱和主机关系链是BotScanner系统最为核心的2个概念,主机关系链在上文已经描述。在BotScanner系统中,Netflow图谱是2个网络节点间(主机&端口)时序的流序列。图3显示了不同形状的Netflow图谱。例如NG-4使用431端口,从主机H1到H4显示了高度的规律行为。这种规律性使得BotScanner能够提取Netflow图谱的统计特征。在Netflow图谱NG-4中,接近常量的流之间时间间隔和持续时间,使用这2个特征能够精确描述整个NG-4图谱。为了获得更为有意义的统计数据,BotScanner需要Netflow图谱包含一定量的连接参数,即min,在BotScanner原型中,30≤min≤70。 Netflow图谱的最小长度是与僵尸网络实际通信一致的,即C&C网络通信通常包含多个主机与C&C服务器之间的连接。在自动分析僵尸恶意样本过程中,最主要的挑战是如何区分恶意C&C通信与正常C&C通信,在训练过程中,正常C&C通信为噪音数据。

图3 主机Netflow图谱

4.3.3 检测特征提取

主机Netflow关系链构建之后,BotScanner提取主机关系链特征,即是否具有二级关系链和多级特征,该特征较为简单,上文已经描述完毕。对于主机Netflow图谱,为了分类图谱中的子序列,BotScanner处理每个图谱抽取统计特征。BotScanner主要聚焦于以下7个统计特征,分别为主机(UD)Netflow图谱中2个流之间的平均间隔、平均流持续时长、平均流大小、流起始时间的傅里叶变换、IP地址熵、上下行流量比、流量负载熵,具体描述如下:

(1)平均间隔:在主机Netflow图谱中,2个流子序列之间起始的时间间隔。僵尸主控节点必须保证其所控节点能够接收到新的控制与命令。通常,从C&C服务器到受控僵尸主机之间的通信采用Push模式是不可能的。其原因是,许多受控僵尸主机是在私有网络中,并处于网络地址转换设备NAT后面,或者是还没有注册到C&C服务器上。假设大部分受控僵尸主机与C&C服务器之间通信都使用一个常量的时间间隔(或者一个固定范围的随机值),这将致使通信中可检测周期性。对于这类通信模式,僵尸主控节点必须平衡僵尸网络的可扩展性、灵活性和C&C服务器连接被检测到的风险。正如前文所提,一些僵尸网络变种为规避特征提取和恶意代码检测系统,开始采用随机和合法连接。其他方法,例如每天定时连接也遭遇到主机时钟不同步的问题。而且,僵尸恶意代码作者可以通过精心设计恶意代码使其不显示周期行为。但是,模仿随机和合法通信是相当困难的,而且也是可检测的。基于对于不同的僵尸恶意代码家族的观察,当前大部分僵尸恶意代码都符合上述假设,同时表现出松散的周期C&C通信特征。

(2)平均持续时长:在主机Netflow图谱中,每个流子序列持续时间的均值。通常情况下,受控僵尸主机没有收到新命令的情况下,大部分通信仅包含简单的握手信息,即受控僵尸主机请求新命令,C&C服务器返回没有新命令。因此,在主机Netflow图谱中,该过程的持续时间是相近的。

(3)平均流大小:在主机Netflow图谱中,平均流大小包含2个子特征,分别为平均源字节数和平均目标字节数。通过使用源和目标字节数切分2个方向的通信,能够将请求信道与命令传输区分开。也就是说,请求更新信息可能总是相同的大小,但来自C&C服务器包含真实数据是可变的。因此,主机Netflow图谱可能包含许多具有相同源字节数的流子序列。相似的判断也可应用到目标字节数,例如,来自C&C服务器的响应具有固定的格式。

(4)流起始时间的快速傅里叶变换[15]:为检测潜在的C&C通信规律,使用快速傅里叶变换(Fast Fourier Transform,FFT)算法处理C&C通信的二进制抽样。在此过程中,对主机Netflow图谱进行抽样,每个子序列起始位置设定为1,子序列中间位置则设定为0。通过这种方式,一个主机Netflow图谱被映射为一个二进制序列。为计算高质量的FFT,使用Netflow图谱中最小时间间隔的1/4作为抽样间隔,避免欠采样问题。尽管如此,若存在2个流子序列之间距离非常小,其他流子序列之间距离非常大,该抽样方法将会产生大量的数据点。在此情况下,需要限制单个Netflow图谱中包含的采样点数为65 536,即216,同时接受轻微欠采样情况。在使用该值的情况下,FFT是最快的,而且实验中仅有少量数据点被欠采样成单一的点。更为精确的描述如下,即对于观测到的C&C图谱,12%显示欠采样,但是仅平均1%的起始时间被抽样到了一个采样点。下一步,为抽取最重要的频率特征,需要计算主机Netflow图谱FFT的功率谱密度(Power Spectral Density,PSD)。FFT的峰值对应时间周期性,并且对于主机Netflow图谱中大跨度的间隔具有耐受性。在实际测试环境中,僵尸网络恶意代码的C&C服务器通信是周期性的,然后会停滞一段时间。在一定的时间窗口内,当恶意代码作者设计可随机变化的C&C通信频率的僵尸代码,这种随机变化将会降低FFT的峰值。然而,FFT的峰值仍然保持可检测和同样的频率,因此可以通过FFT的峰值检测僵尸网络通信。

(5)IP地址熵:同一网络的一定范围内,计算正常流量中(UD)Netflow五元组的IP地址熵,熵值都大致相同。如果出现异常,则异常流量将改变(UD)Netflow的IP地址熵,熵值也将与正常情况下的熵值出现很大差别。不同类型、不同比例的异常流量,熵值也有很大不同。例如,在僵尸网络感染期间,受控的主机会在很短时间内连接到其他许多主机。受控主机建立的开启连接会占多数,熵随之减小。同样,数据流中的目标IP地址会比正常流量中的IP地址随机得多。也就是说,目的IP地址的分布会更分散,导致信息熵较高。在僵尸网络发动DDoS攻击阶段,目的IP地址熵值较小,源IP地址熵值较大,网络扫描探测阶段目的IP地址熵值较大,源IP地址熵值较小。由于正常网络流量具有较为稳定的IP地址熵,异常流量将破坏这种稳定,从而可以从IP地址熵的角度进行僵尸主机检测。

(6)上下行流量比:用户正常访问网络时产生的上行流量比下行流量小。流量异常是指用户访问网络时产生的上行流量比下行流量大得多。主要有2种原因造成:1)使用P2P软件(电驴、迅雷、PPLive、UUSEE等)在外网下载、看视频(如电影、电视)会产生大量的上行流量,为其他使用P2P软件的用户提供自己计算机上的数据。2)感染僵尸病毒,大量向外网发送恶意代码自动收集危害计算机安全的敏感数据。对于正常的P2P软件,可以使用白名单列表方式进行过滤,剩下的为僵尸软件或恶意代码造成的可疑流量。

(7)流量负载熵:近年来,新的僵尸程序将加密和混淆技术用于其C&C通道,以避免IDS、防火墙或其他方式的网络侦听。由于流量负载部分完全是加密或混淆的,基于特征的检测方法难以提取加密通道的特征,故检测僵尸网络难以实现。然而,由于加密算法导致负载中字符出现的随机性大大提高,每个字符出现的概率变小。也就是说,信道流量加密后,其熵值比较高。因此,可以通过熵值判断信道是否加密。然后,结合白名单列表方式过滤掉合法加密流量,剩下流量为僵尸软件或恶意代码造成的可疑流量。

4.4 检测模型的建立

通过聚类主机关系链包含的1个特征和主机(UD)Netflow图谱包含的7个特征构成特征向量V,这些特征分别为关系链、平均间隔、平均流持续时长、平均流大小、流起始时间的傅里叶变换、IP地址熵、上下行流量比、流量负载熵。在实验中,通过对僵尸恶意代码行为进行观测,这8个特征在总体上是无关的,对每个特征分别进行聚类。例如,一个僵尸代码的2个版本可能链接不同版本C&C服务器,传输不同大小的流,IP地址熵不同,流量负载熵不同等。然而,这2个版本的僵尸代码通信的周期模式仍然相同。聚类过程之后,可以明显观测到相当大的聚类簇含可疑的和真实的恶意代码特定行为。此外,一些小的聚类簇包含多样的特征行为,这样的聚类簇往往具有较低的聚类质量,甚至对应的主机访问关系链和Netflow图谱也相当独特。训练结束后,最终的模型将包括8个聚类簇集合,每个集合对应一个特征,集合内包含了该特征的期望值。例如,平均间隔为850 s或2 100 s,目的IP地址到源IP地址传输51 KB,源IP地址到目的IP地址传输140 KB,上下行流量比为2.745∶1,每个流的持续时间为0.2 s或10 s,FFT为0.001 2 Hz或0.04 Hz,IP地址熵值为7.54(该僵尸程序正在发动DDos攻击),流量负载熵值为9.65(该僵尸程序使用的是加密信道),以上这些特征表明该僵尸程序为Rustock变种。

为了聚类主机关系链和(UD)Netflow图谱的特征,本文使用CLUES算法[22],该算法无需聚类参数,并且不需要提前指定聚类簇个数。实验结果表明,完全自动的、无监督的CLUES算法能够获得K-means算法相类似的结果。在某些情况下,甚至CLUES算法能够获得更好的聚类簇结果,这表明CLUES算法能够较好地适应本文的应用场景。

在计算完聚类中心和成员后,使用聚类质量评估函数判断各个聚类簇的质量。聚类评估函数定义如下,。其中,sd为标注方差;c为均值;β为控制因子,默认值为2.53。一般情况下,大的聚类簇具有更高的内部相似性,更为多样的聚类子簇。所有qclu的均值是评估特征向量相似性的指标。高的聚类质量表明,大多数的僵尸恶意代码生成高度相似的(UD)Netflow,抽取的特征向量也相近。如果(UD)Netflow是多样的,则主机关系链和(UD)Netflow图谱也是多样的,就会产生更多低质量的聚类簇。

4.5 受控僵尸主机检测

为检测是否一个给予的特征向量V匹配训练好的模型M,需要将V中的每个特征与模型中的聚类簇进行比较。例如,如果特征向量V中的平均时间间隔特征处于M的一个聚类簇中,检测算法将认定为一次命中,并调高检测得分值γM。检测得分值γM的提升幅度主要依赖于聚类簇的质量和特征向量的质量(即主机关系链和主机(UD)Netflow图谱的质量)。这些质量定义在一定程度上反映了主机关系链和主机(UD)Netflow图谱建立,以及特征提取过程的不确定性。此外,还需要考虑平均时间间隔特征是何值时可以被认为具有周期性。

对于不同的僵尸网络家族,为了能够命中多个模型,需要为每个模型维护一个γM。需要注意的是,在训练过程中引入的人造训练数据(与C&C通信无关的流量),将会造成低质量的聚类簇,这仅仅会导致γM轻微上升。通过这种方式,BotScanner系统隐含着对训练中引入的噪音具有一定程度的免疫能力。最后,将最高的评分γ与BotScanner系统报警阈值α进行比较,若γ>α,则该模型判断为匹配,BotScanner发出告警。为了降低误报率,BotScanner系统不仅仅是依赖单一的特征值进行判别,用户可以根据实际环境情况设定最小的命中特征数h。也就是说,除了每个特征都需要满足γ>α,至少存在h个这样的特征向量,1≤h≤8。这样的约束存在可以降低BotScanner系统由于突发的单一特征匹配导致误报。例如,对于给定特征向量中的平均时间间隔和FFT,满足γ>α。若,设定h=3,BotScanner系统需要满足额外的一个特征才会告警,例如主机关系链、流量负载熵、IP地址熵等。

5 BotScanner系统的训练和实验评估

5.1 模型训练

本文使用4个不同的僵尸恶意代码家族训练BotScanner系统,这4个家族当前在互联网上非常活跃,并且非常有代表性。更确切地讲,为了能够保证BotScanner系统所使用的训练样本是活跃的、相关的,观测了Anubis在2013年5月份的检测样本,并从中选出适合BotScanner系统训练的样本。Anubis每天收到并分析成千上万的样本,在动态检测领域具有权威性。为了捕捉僵尸网络产生的通信流量,基于Xen构建了可控的W indow s XP虚拟机环境。同时,该虚拟机与互联网相连,且包含真实的用户数据。在可控的虚拟机环境下,每个僵尸恶意代码家族平均测试了26.5个变种样本,并捕获了所有的网络流量。在实验中,对垃圾邮件和DDoS攻击进行了限制。用来训练的4个僵尸恶意代码家族描述如下:

(1)Conficker,该僵尸软件在业内也被称为Downup,Downadup或Kido,其最早于2008年11月20日被发现的以微软的W indows操作系统为攻击目标的计算机僵尸病毒。迄今已出现了A,B,C,E 4个版本,目前全球已有超过1 500万台电脑受到感染。Conficker僵尸程序传播主要通过运行W indow s系统的服务器服务的缓冲区漏洞。它使用特定的RPC请求在目标电脑上执行代码。

(2)Banbra,一种特洛伊木马和间谍程序,用来进一步下载和安装恶意代码组件。

(3)Rustock,是全球最大的僵尸网络之一,由僵尸程序Rustock感染的受控主机组成,其主要的非法行为是利用受到恶意软件感染的主机发送垃圾邮件。据研究人员表示,一台受控的Rustock病毒感染的主机,可以在一天之内发送24×104封的垃圾邮件,严重影响了个人电子邮箱,并且耗费了大量的网络带宽。此外,受控的主机可能被窃取敏感信息,并被用来进行DDos攻击。

(4)Black Energy,该僵尸软件是由俄罗斯的黑客开发,而且起初被用来进行DDoS的攻击、垃圾邮件分布和银行诈欺。但最新的用途是通过一系列的举动针对性地攻击政府机构和私人企业。Black Energy僵尸软件最初使用一种基本的加密技术来使其可执行文件不被杀毒软件察觉,并使用Base64编码来扰乱其通信。最新版本的B lack Energy使用了更强大的RC4流加密的一个变种来编码其通信内容。

表1展示了训练过程中恶意代码样本的详细分布和与之相关的主机关系链和主机Netflow图谱。在表中,聚类质量反映了质量评分函数的结果。聚类质量分值越高,表明聚类簇中特征向量越接近,方差越低。同时,验证了本文的核心假设:同一僵尸恶意代码家族的不同变种将会产生类似的C&C通信流量,这类流量可以使用聚类算法进行有效的描述。例如,在Conficker模型中,对于每个特征,最高的聚类簇质量大于0.9。尽管具有较低聚类质量的小聚类簇降低了总体的聚类质量,但大的、高质量的聚类簇仍然能够对Conficker的通信行为给予较好的表述。对于Black Energy,由于其样本通信行为的高可变性,生成的聚类簇也是多样的,导致建立的模型需要综合考虑多个特征。对于聚类方法,本文使用文献[22]提出的CLUES,对于每个僵尸网络家族,每个特征获得平均聚类簇个数为3.14个。

表1 用于训练的恶意代码家族描述

5.2 系统实现和性能测试

为了兼容后续的开发,实现BotScanner系统使用Java语言。对于全包捕获和包重组,BotScanner系统使用开源的IDS,OSSEC。由于OSSEC对于万兆环境的性能问题,实验中产生了严重的丢包问题,不能够满足实时性的需求。因此,BotScanner系统在实际应用中分为2种应用环境,分别为基于包分析的(UD)Netflow和标准Netflow,(UD)Netflow通常用于千兆的环境。标准Netflow既可用于千兆环境,也可以用于万兆环境。在实际环境中,一个8个节点(4路8核3.2 GHz CPU,128 GB内存)的集群被用来部署大数据环境,Clean数据集和ISP-NetFlow数据集存储在HDFS中。

5.3 交叉验证

为了评估BotScanner系统的检测能力,在标注的基准训练数据集和Clean数据集上执行交叉验证。2个数据集都来自同一个网络环境,确保了相似的网络环境。对于每个不同可接受的α值,执行了50次独立的交叉验证,描述如下:

(1)切分基准恶意代码数据集为训练集合Tr和测试集合Te,分别为80%和20%。

(2)假设Clean数据集是完全干净的,并没有受到恶意代码感染。混合测试集合Te与Clean数据集,生成一个合适的数据集,用来检测BotScanner系统的误报率。

(3)使用训练数据集Tr训练BotScanner系统,建立检测模型。

(4)使用Te与Clean数据集混合数据集检测训练好的BotScanner系统。

在实验中,基于已有的僵尸恶意代码样本分析检测结果,如果一个检测特征被正确标识为僵尸恶意代码,则记为准确,否则记为误判。图4显示α∈[0,2]的检测率,h=3。在图4中,低的接收率将会产生高于82%的检测率,但是同时产生了高的误报率。例如,当α≤0.6时,误报率大于1%。

图4 BotScanner系统的检测率和误报率

正如图4(a)所示,当检测率接近线性下降时,误报率成指数级下降。当α∈[1.6,1.8]时,与图4(b)左下角相比,BotScanner系统取得了较好的检测率和合理的误报率。因此,α∈[1.6,1.8]为合适的阈值。对于可接收的阈值α=1.6,系统获得了76.56%的检测率,7×10-4的误报率。对于此参数,表2显示了各个僵尸家族在5交叉验证情况下的检测率。所有的Conficker样本检测正确率高达87%,平均检测正确率高达80%。误判情况仅仅是Conficker和Black Energy存在。

表2 不同僵尸网络家族的检测结果(α=0.6)%

正如上文所见,BotScanner系统对于不同的僵尸家族检测率是比较高的。例如,Conficker家族样本全部显示了高度的周期行为,且非常相似,训练过程中取得了非常高的聚类质量。因此,获得了87%的检测率。Rustock存在相对低的聚类质量(较高的标准方差),但是仍然产生了接近相似的行为,获得了82%的检测率。在恶意代码家族中,Black Energy获得了最低的检测精度,该家族的聚类簇表现了高度的多样性,聚类簇范围大,聚类质量较低,因此,检测精度较低是合理的。而且,聚类簇范围大导致了相对高的误报率,出现了5次误报。

5.4 模型评估

为了评估BotScanner系统,本文在2个真实数据集上做了大量实验。第1个数据集是Clean,一个接近20台机器的安全实验室2.5个月的全包流量数据。根据实验室的管理策略,该环境理论上不存在恶意代码相关的通信流量,可以认为Clean数据集仅包含良性流量。由于实验室采用的是全包捕获策略,因此可以人工验证已报道的感染和入侵情况。第2个数据集是ISP-NetFlow,来自网络服务提供商,包含7天的Netflow数据,数据规模为10 TB,接近17.3 MB/s。对于ISP-NetFlow数据集,由于不能够捕获全流量,检测结果不能够进行准确率比较。本文通过将检测到的IP地址与已知的恶意代码IP黑名单列表进行比较,确认受控主机的聚类簇,从而验证本文提出的BotScanner系统应用到大型网络的可行性。

在建立BotScanner系统原型之后,准备了以下实验:

(1)基于基准训练数据集和Clean数据集的交叉验证实验。简言之,训练数据集首先被切分成训练数据集和检测数据集。然后,检测数据集与不包含恶意流量的Clean数据集混合。BotScanner系统在训练数据集上已经学习到僵尸恶意代码的行为之后,测试程序对准确率和误报率进行分析。由于数据集仅包括僵尸恶意代码的通信流量和Clean数据集流量,准确率和误报率分析过程比较简单。

(2)与相关工作进行比较:在本实例中,相关工作最知名的是基于包检测的BotHunter系统。本文在BotHunter系统上检测了实验(1)的数据。

(3)ISP-NetFlow数据集:使用上文提到的4类僵尸恶意代码的实际流量训练BotScanner系统,并使用ISP-NetFlow数据集进行测试。BotScanner系统的告警结果将与僵尸网络受控主机IP黑名单列表进行比较,实验结果如图5所示。BotScanner总体上优于BotHunter,而且黑名单中的Conficker,Banbra和Rustock在一定程度上验证了本文方法的有效性。由于黑名单列表中不存在Black Energy家族,在图5中并没有显示Black Energy家族的检测结果。

图5 检测到的恶意代码家族数

6 结束语

本文展示了一种新颖的基于Netflow异常的僵尸主机检测方法和系统BotScanner,检测特征是基于网络流量的统计特征。通过对已知的僵尸家族自动的、非监督的训练之后,BotScanner系统基于对C&C流量的聚类簇统计结果建立检测模型。实验结果表明,基于C&C通信具有周期特性的前提下,通过流量模式分析,BotScanner系统能够获得接近80%的检测准确率。而且,BotScanner系统无需IP黑名单和深度包解析的前提下,能够以较高的准确率检测僵尸网络。同时,BotScanner系统对于通信加密或混淆的僵尸恶意代码是有效的。

BotScanner系统可以被看成一个僵尸网络检测的框架原型,可以在多个层面进行改进,进一步的优化如下:(1)沙箱和虚拟机环境需要进一步的改进,更好地对抗僵尸恶意代码作者探测运行环境,停止释放恶意行为。(2)在训练阶段使用非监督的学习方法。据此,选择一种机器学习方法能够获得理想的特征,该特征能够对恶意代码家族进行精确的描述,并在检测步骤赋予合理的权重,也可以尝试使用深度学习方法进行僵尸主机检测。(3)仅使用Netflow数据进行检测是本文的一大特点,但毕竟Netflow数据所含信息量有限,为进一步提高检测精度、降低误报率,可以尝试使用灵活高效的多源数据采集与融合机制,例如引入包解析或关联其他设备的检测结果。(4)在极端网络流量的情况下,例如Netflow流速超过5M eps时,BotScanner不能满足实时检测要求,此时需要牺牲检测精度,对Netflow进行抽样。因此,引入分布式流处理框架,例如Storm,Spark等,进行实时、高精度检测是一个值得研究的方向。

[1] Bacher P,Holz T,Kotter M,et al.Know Your Enemy:Tracking Botnets[EB/OL].(2005-03-14).http:// www.honeynet.org/papers/bots.

[2] 诸葛建伟,韩心慧,周勇林,等.僵尸网络研究[J].软件学报,2008,19(3):702-715.

[3] Gu Guofei,Porras P,Yegneswaran V,et al.BotHunter:Detecting Malware Infection Through IDS-driven Dialog Correlation[C]//Proceedings of the 16th Usenix Security Sym posium.Berlin,Germany:Springer,2007:167-182.

[4] Goebel J,Holz T.Rishi:Identify Bot Contaminated Hosts by IRC Nickname Evaluation[C]//Proceedings of the 1st Conference on Hot Topics in Understanding Botnets.Berlin,Germ any:Springer,2007:1-8.

[5] Binkley JR,Singh S.An Algorithm for Anomaly-based Botnet Detection[C]//Proceedings of USENIX Steps to Reducing Unwanted Traffic on the Internet Workshop. Berlin,Germ any:Springer,2006:43-48.

[6] Wurzinger P,Bilge L,Holz T,et al.Automatically Generating Models for Botnet Detection[C]// Proceedings of the 14th European Symposium on Research in Computing Security.Saint-Malo,France:[s.n.],2009:232-249.

[7] Perdisci R,Lee W,Feamster N.Behavioral Clustering of HTTP-based Malware and Signature Generation Using Malicious Network Traces[C]//Proceedings of Conference on Networked System Design and Implementation.Berlin,Germany:Springer,2010:391-404.

[8] Giroire F,Chandrashekar J,Taft N,et al.Exploiting Temporal Persistence to Detect Covert Botnet Channels[C]// Proceedings of the 12th International Symposium on Book Subtitle.Saint-Malo,France:[s.n.],2009:326-345.

[9] Gu Guofei,Zhang Junjie,Lee W.BotSniffer:Detecting Botnet Command and Control Channels in Network Traffic[C]//Proceedings of the 16th Annual Network& Distributed System Security Symposium.Berlin,Germany:Springer,2008:1-18.

[10] Gu Guofei,Perdisci R,Zhang Junjie,et al.BotM iner:Clustering Analysis of Network Traffic for Protocol-and Structure-independent Botnet Detection[C]//Proceedings of USENIX Security Symposium.[S.l.]:Academic Search Press,2008:139-154.

[11] Yen Tingfang,Reiter M K.Traffic Aggregation for Malw are Detection[M]//Holz T,Bos H.Detection of Intrusions and Malware,and Vulnerability Assessment. Berlin,Germany:Springer,2008:207-227.

[12] Strayer W T,Walsh R,Livadas C,et al.Detecting Botnets with Tight Command and Control[C]// Proceedings of the 31st IEEE Conference on Local Computing Networks.Washington D.C.,USA:IEEE Press,2006:195-202.

[13] Nagaraja S,Mittal P,Hong Chi-Yao,et al.Bot Grep:Finding P2P Bots with Structured Graph Analysis[C]// Proceedings of USENIX Security Symposium.[S.l.]:Academic Search Press,2010:95-110.

[14] François J,Wang Shaonan,Engel T.Bot Track:Tracking Botnets Using Net Flow and Page Rank[C]//Proceedings of the 10th International IFIP TC 6 Networking Conference.Berlin,Germany:Springer,2011:1-14.

[15] Tegeler F,Fu Xiaoming,Vigna G,et al.Botfinder:Finding Bots in Network Traffic Without Deep Packet Inspection[C]//Proceedings of the 8th International Conference on Emerging Networking Experiments and Technologies.New York,USA:ACM Press,2012:349-360.

[16] Coskun B,Dietrich S,Memon N.Friends of an Enemy:Identifying Local Members of Peer-to-Peer Botnets Using Mutual Contacts[C]//Proceedings of the 26th Annual Computing Security Applications Conference. New York,USA:ACM Press,2010:131-140.

[17] Kheir N,Wolley C.BotSuer:Suing Stealthy P2P Bots in Network Traffic Through Netflow Analysis[C]// Proceedings of the 12 th International Conference on Cryptology and Network Security.Berlin,Germany:Springer,2013:162-178.

[18] Fan Yuhui,Xu Ning.A P2P Botnet Detection Method Used On-line Monitoring and Off-line Detection[J]. International Journal of Security and Its Applications,2014,8(3).

[19] Amini P,Azmi R,Araghizadeh M A.Botnet Detection using Net Flow and Clustering[J].International Journal on Advances in Computer Science,2014,3(2):139-149.

[20] Garg S,Sarje A K,Peddoju S K.Improved Detection of P2P Botnets Through Network Behavior Analysis[C]// Proceedings of the 2nd International Conference on Security in Computing Networks and Distributed System s.Berlin,Germany:Springer,2014:334-345.

[21] Vania J,Meniya A,Jethva H B.A Review on Botnet and Detection Technique[J].International Journal of Computing Trends and Technology,2013,4(1):23-29.

[22] Wang Xiaogang,Qiu Weiliang,Zamar R H.CLUES:A Non-parametric Clustering Method Based on Local Shrinking[J].Computational Statistics&Data Analysis,2007,52(1):286-298.

编辑 顾逸斐

Research on Botnet Controlled Host Detection Based on Netflow Abnormity

BA I Tao1,LIU Chenglong1,QU W u2,3,WANG Zhen1
(1.Inform ation&Telecommunication Branch,State Grid Hebei Electric Power Company,Shijiazhuang 050021,China;
2.Core Research Institute,Beijing Venustech Information Security Technology Co.,Ltd.,Beijing 100193,China;
3.Department of Computing Science and Technology,Tsinghua University,Beijing 100084,China)

With extensive botnet arising as one of the major current network security threats,the automatic detection of botnet communication traffic is of high importance for Internet service providers and large corporation network monitoring.To solve the problem,this paper proposes a novel approach for botnet detection,a real-time botnet detection algorithm,where netflow related data is correlated as the host netflow graph structure and the host access chain structure,and a feature extraction method is leveraged for exacting implicit characteristics.Meanwhile,this paper establishes BotScanner detection system,which is a real-time steam processing engine.It trains BotScanner system on the four representative bot families and evaluates BotScanner on simulated network traffic and real-world network traffic. Experimental results show that BotScanner is able to detect bots in network traffic without the need of deep packet inspection,while still achieving high detection rates with very few false positives.W hen the netflow data from the core switch is very large,BotScanner is able to detect botnet in real-time by the efficient algorithm.It proves the feasibility of applying BotScanner system to botnet detection.

abnormity detection;botnet;netflow;real-time detection;malicious code

白 涛,刘成龙,曲 武,等.基于网络流量异常的僵尸网络受控主机检测研究[J].计算机工程,2015,41(11):170-179.

英文引用格式:Bai Tao,Liu Chenglong,Qu Wu,et al.Research on Botnet Controlled Host Detection Based on Netflow Abnormity[J].Computer Engineering,2015,41(11):170-179.

1000-3428(2015)11-0170-10

A

TP309

10.3969/j.issn.1000-3428.2015.11.030

国家自然科学基金资助项目(60875029)。

白 涛(1983-),男,硕士,主研方向:信息网络安全;刘成龙,学士;曲 武,博士、CCF会员;王 震,硕士。

2015-01-12 修回日期:2015-02-28 E-m ail:quwu-ustb@163.com

猜你喜欢
网络流量僵尸IP地址
基于多元高斯分布的网络流量异常识别方法
基于神经网络的P2P流量识别方法
笔记本电脑“僵尸”
铁路远动系统几种组网方式IP地址的申请和设置
你愿意当吸血鬼还是僵尸?
IP地址切换器(IPCFG)
AVB网络流量整形帧模型端到端延迟计算
基于SNMP的IP地址管理系统开发与应用
公安网络中IP地址智能管理的研究与思考
在舌尖上筑牢抵御“僵尸肉”的防火墙