APP下载

基于时空特性的恶意流量生成方法的研究与实现

2018-06-29朱亚锋程光

网络空间安全 2018年1期

朱亚锋 程光

摘 要:建设网络靶场具有重大战略意义,为了使网络靶场更加逼真地模拟真实环境,需要在其中模拟产生真实网络中必然存在着的恶意流量。论文在对网络恶意流量的空间和时间特征分析的基础之上,提出一种基于时空特性的网络恶意流量生成方法。将用于入侵检测系统的Snort规则库反向解析翻译成脚本,用以构建恶意流量的空间特征。选用泊松模型,模拟恶意流量数据包的到达速率,模拟其时间特征。最后借助Libnet函数库,依据时间特性发送构造好的数据報文,模拟产生网络恶意流量。实验表明,这种方法模拟产生的恶意流量符合真实流量特性,并且可以定制产生特定行为模式的恶意流量。

关键词:网络靶场;恶意流量;Snort;泊松模型

中图分类号:TP393.08 文献标识码:A

A malicious traffic simulation approach based on time and space features

Abstract: It is of great importance in constructing the Cyber Range. To make the Cyber Range more realistic, simulating the inevitable malicious traffic in the real network is very essential. An approach of simulating the malicious traffic based on time and space feathers is brought out in this paper. Snort Rules are reversely used to construct the spatial features and Poisson Model is applied to modeling the temporal characteristics. Finally, the packets are sent by Libnet. Experimental results indicate that the traffic generated by the proposed method satisfies the properties of the real one. Further more, it can be used to generate some specific pattern of traffic.

Key words: cyber Range; malicious traffic; snort; poisson model

1 引言

网络靶场在支撑网络空间安全技术演示和网络攻防对抗演练中起着至关重要的作用[1],越来越受到世界各国的重视。为了更加逼真地模拟现实网络环境,需要对网络靶场中的网络流量进行模拟生成。在真实网络中,恶意流量的存在不容忽视,所以在网络靶场流量模拟中,恶意流量也必须考虑。目前,主要有两种主流的恶意流量产生方式。一是使用攻击代码对目标网络设备发动攻击,采集获得这些攻击流量(如攻击测试数据集DARPA99[2])。虽然这种方法获取的是真实的网络恶意流量,但是也有其缺点。首先,很多网络攻击代码不会公开,获取的可能性极低,即使能够获取也存在滞后性。其次,攻击代码一般是基于不同平台不同语言编写的,对研究人员的素质和能力等方面的要求非常高。最后,若网络攻击不能得到很好的控制,将会造成极大的损失。这些缺点让很多科研人员转向研究另一种恶意流量的产生方法:对网络恶意流量特征进行分析,通过搭建虚拟网络环境,并根据这些特征模拟产生恶意流量。这种方法不需要发动真实攻击就可以生成恶意流量的方法成本低,可行度高,受到学术界的广泛应用。本文基于这一方向,通过分析网络恶意流量的时间和空间特征,提出一种基于时空特性的网络恶意流量产生方法。

2 相关研究

网络应用的多样化使得网络流量呈现出自相似性[3,4],科研人员在研究中提出了不同的基于自相似性的网络流量模型。主要分为单源模型(如Pareto分布)和聚合模型(ON/OFF模型[5]、分形布朗运动FBM模型[6]、小波变换模型[7]、自回归积分滑动模型ARIMA[8]、多分形小波模型MWM[9]等)。从模型驱动方式上看,网络流量生成技术主要分为两类:一类是通过数学方法合成,模拟出这种自相似性;另一种就是根据网络流量数据生成流量,最简单的就是将这些数据按包序列再发一次。但这并不能反映网络的普遍特性,而只能反映某个时刻。更普遍的是获取网络流量,分析其统计特征,构建流量模型,再生成所需流量。从发展历程上看,网络流量生成技术与IDS等的评测技术密不可分。Templeton和Levitt在文献[10]中提出了一套网络攻击建模语言JIGSAW来测试入侵检测性能。文中提到使用JIGSAW生产网络攻击流量的思路,但并未真实实现。Wan和Yang介绍了一种测试入侵检测算法性能的平台[11],该平台通过将入侵事件插入正常网络事件流中,来模拟网络攻击。然而这种模拟的输出结果依旧为入侵事件,而不是真实的攻击数据包。王永杰等人[12]基于有限状态自动机提出一种网络攻击行为建模方法,但其流量产生器仍属实验性质,已建立的网络攻击行为模型还不够丰富。曹龙江等人为了解决网络设备测试软件无法构造含有特定内容的应用层协议流量,提出一种网络应用层流量模拟技术[13],能够构造含有特定内容的网络数据并模拟HTTP、POP3等特定业务流量数据。

3 基于时空特性的网络恶意流量模拟方法

3.1 网络恶意流量分析

虽然网络恶意流量产生原因很多,但是大部分恶意流量表现出异常时,会在时间或空间上呈现出一定的特征。在时间关系上,宏观上主要表现为流量的突发性,直观表现为网络流量波形图中的尖刺形状;在微观上,主要表现为数据包到达的过程以及数据包的发送时间。在空间关系上,主要表现在两方面:节点产生大量流量、报文内容异常或者长度异常等。对于空间特性,可从不同的协议层进行分析。网络层上主要表现为源宿IP地址空间的异常。如发生DDoS攻击时,会出现大量相同宿地址和端口的报文。在传输层上,恶意流量主要表现在流量使用的协议和报文字段上,不同的攻击报文会出现SYN、ACK和FIN等标志位的不同组合。在应用层上,异常流量主要表现为含有特定字段或者包含特定负载的攻击。例如,在Winnti1.0 C&C;服务器通信中,Winnti平台传输的数据流量都会以一个特征码0xdeadface开始。特定流长度或报文长度同样可以使流量在空间上呈现出异常特征,如UDP泛洪攻击,其报文长度一般为固定长度。

3.2 网络恶意流量空间特征构造

Snort规则库[14]是入侵检测系统中的重要组成部分。这些规则正是基于网络恶意流量所表现出的空间特征而设置的。Snort规则由规则头和规则体两部分组成,可以用括号进行区分。规则头部位于括号之前,规则体位于括号之中。规则头定义了规则被触发时的具体动作,同时包含了使用的网络协议、原宿IP及原宿端口等信息。规则体则是真实的特征,主要為Snort规则选项的具体设置信息。下面是一条Snort规则实例,Alert tcp EXTERNAL_NET any->131.163.67.8 23764(msg:"DDoS mstream client to handler";content:">";flags:A+; sid:1497;),含义是目的IP 为131.163.67.8,端口号为23764的TCP连接中,报文字段中含有“>”,并且 TCP标志位中的ACK位置为1时,便向网管发出警报,提示这是一条DDoS僵尸机与控制机的连接报文。

3.2.1预处理模块-规则脚本的生成

Snort规则选项字段有很多,但其最主要的选项可以归纳为三个部分,即报文流向、网络层和传输层的头部字段以及报文的负载内容。其余更为详细的选项则是为了提高检出效率而设置的,而在构造恶意流量报文时只需关注每个字段的取值,因而这部分规则可以忽略。所以,对于Snort规则文件可以添加一步预处理工作,读取一条Snort规则,将关键规则选项翻译成结构体数组中的一个元素,以二进制格式文件单独存储,称为规则脚本文件。一个结构体数组元素就对应着一条Snort规则,存储的是一个攻击报文各字段取值的值域。该结构体的各变量及取值描述如表1所示。然后程序读取结构体,从各变量的值域中选取合适的值填写报文字段,构造一个攻击报文案例。

3.2.2 报文翻译时字段取值策略

翻译程序读取规则脚本文件中具体的结构体,在结构体的每个变量描述的值域中选取一个特定的值,将每个变量进行组合就会构成一个攻击报文案例。值的选择可以采用最简单的随机法。对于IP地址来说,每个报文都拥有此字段,若采用随机法生成,可能会遇到问题:随机生成出的IP地址会生成一些在真实网络环境中不会被路由器采集下来的地址,如私有地址,环回测试地址以及网络地址全0或者主机地址全1的地址等。如表3对这些地址做了统计分析。

从表3的统计可以计算出,若使用纯随机法获取IP地址,则出现非法IP的概率约为13.8%,可以有两种方法解决上述问题。一是在IP的值选取时,依托于真实的网络流量。由于边界路由器抓取的流量,其源宿IP分别为内外网IP,由于内网IP是已知的,所以只需对外网IP地址进行统计,然后根据出现概率的大小选取外网IP地址。二是,对于非常规攻击,受攻击主机都会跟远端的命令与控制服务器(C&C;)进行通信,安全公司对这些C&C;服务器的IP地址进行了整理总结,所以源宿IP的网外地址可以从这些IP中随机选取。

对于IP头部、TCP头部或者UDP头部,除了依据Snort规则填充相应字段外,其余字段的值域都是确定的,因而可以用随机法进行填充。

对于应用层负载来说,每个Snort规则描述的字符串取值的可能性很多,且可能出现同一条规则含有多个特征串选项,即含有多个SignatureStr结构体。使用排列组合方法,如果每个SignatureStr有个取值,共有个数据组合,文中采用随机法依次选择某个规则的某个特征串,用于构建负载内容。这样既可以实现对已知恶意流量的模拟,同时也可以通过组合不同的特征串模拟出某种未知的恶意流量。

3.3 恶意流量时间特性

在上文分析中提到,网络恶意流量的时间特性主要体现在数据包的到达过程或数据包的发送时间。从到达过程考虑,可以近似认为满足三个特点[15]。

(1)在不同的时间段内,数据包的到达相互独立。

(2)在任意小的时间段Δt内,一个数据包到达的概率与起始时间无关。

(3)在任意小的时间段Δt内,到达的数据包个数服从0-1分布。

用λ表示单位时间内到达的数据包概率,吖Pk(t)表示t时间内到达k个数据包。则在任意小的时间Δt内到达一个包的概率为λΔt,将时间t分成n个时间段,则t内到达k个数据包的概率为:

(1)

当n→∞时,推导可知该二项分布近似服从泊松分布,最后得到:

(2)

从公式(2)可知,在t时间内到达k个数据包的概率符合参数为λt的泊松分布。推导可知数据包到达时间间隔服从参数为λ的指数分布。泊松模型假设网络事件只与一个单一的速率参数λ有关。通过给定攻击强度,设置发包时间服从指数分布,即可模拟出泊松到达的数据包。

3.4 网络恶意流量生成

根据上文分析的时空特性,按照如图1所示的网络恶意流量模拟生成流程图模拟生成恶意网络流量。从Snort规则库的选择一条规则,将规则翻译成攻击脚本,生成一个脚本文件文件,从该文件中读取一个结构体,按照需求配置网络恶意流量的报文内容。流量发生器根据指数分布的时间间隔,借助Libnet函数库将构造好的数据报文发送出去,同时使用Libpcap抓取流量存入模拟流量库中。

4 实验分析

实验网络环境如图2所示。其中控制端和接收端是真实主机,使用交换机连接入校园网。其余均为借助VMware搭建出的虚拟机,与主机桥接,整个实验环境可以视为同一局域网。汇集点是一个装有Ubuntu的虚拟机,通过设置net.ipv4.ip_forward=1使其具有路由功能,虚拟机的默认路由均指向该汇集点。控制端运行Snort翻译程序,并将需要构造的攻击流量的脚本发送至各虚拟机。虚拟机读取来自控制端的脚本,根据要求构造出恶意流量报文,根据设置好的时间间隔发送数据包产生流量。汇集点采集这些流量并保存发送至接收端。

对于常规攻击,如DDoS、扫描等,这些攻击基本上没有特定的应用层负载,需要控制的主要是数据包的到达速率,以模拟不同强度的攻击。如图3所示模拟的是攻击强度为3500个/秒的UDP Flood攻击,持续时间为28秒。图中横坐标表示攻击持续的时间,纵坐标表示报文的到达速率。

对于非常规攻击,例如“IXESHE”利用携带恶意附件的电子邮件来破坏受害者的系统。一旦恶意软件被安装,它就开始和三台远程命令与控制服务器通信,服务器通常配置三个端口:80、443和8080。网络通信通过HTTP协议传输,其URL遵循下面的格式:/[ACD][EW]S[Some Numbers].jsp?[Encrypted Base64 Blob]。通信模式是每30秒发送一个跟C&C;服务器的通信报文。如图4所示是实验模拟的具有该特征的网络异常流量。左上角框标记的是按照其通信模式生成的时间戳;右下角框标记的是符合其通信特征的负载;中间箭头标记的是其与服务器的80端口通信。

5 结束语

本文在国家网络靶场研究的大背景下,研究网络恶意流量的生成技术。通过对网络恶意流量特征的分析,提出一种基于时空特性的网络恶意流量生成技术。通过对Snort规则库的解析翻译,分别配置网络恶意流量报文网络层、传输层和应用层的数据内容,以模拟恶意流量的空间特征。利用泊松模型模拟包的到达速率,以刻画网络恶意流量的时间特征。最后,通过Libnet按照计算得出的时间序列,發送构造出的数据包。同时使用Libpcap抓取这些数据包并存储得到模拟的恶意网络流量。实验表明,本文提出的方法可以不依赖于攻击代码模拟产生恶意网络流量。同时由于文中提出的时间和空间特性均可配置,所以本文方法是可以扩展的,只要给定各层报内容特征,并赋予一定的时间序列特性,就可以对未知恶意流量进行模拟生成。

基金项目:

论文获得国家重点研发计划:SDN/NFV与NDN安全研究(项目编号:2017YFB0801703)和国家自然科学基金青年基金:基于网络编码的信息中心网络研究(项目编号:61602114)支持。

参考文献

[1]方滨兴, 贾焰, 李爱平,等.网络空间靶场技术研究[J].信息安全学报, 2016, 1(3):1-9.

[2] 郝震华,矫文成,郝大为,等.基于ON/OFF模型的网络流量产生器的设计与实现[J].科学技术与工程, 2008, 8(12):3219-3223.

[3] 卢颖,裴承艳,陈子辰,等.基于FBM模型的自相似流量建模仿真[J].电子设计工程, 2011, 19(17):101-104.

[4]胡俊,胡玉清,肖中卿.基于小波变换的网络流量预测模型[J].计算机工程, 2008, 34(19):112-114.

[5]崔文亮.基于ARIMA模型的网络流量预测[J].软件, 2012, 33(11):221-223.

[6] 王永杰,鲜明,陈志杰,等.一种网络攻击流量生成器的设计与实现[J].计算机科学, 2007, 34(2):64-67.

[7] 曹龙江,张勖,王锟,等.网络应用流量模拟技术[J].软件, 2015(2):14-19.

[8] 刘华阳.网络系统仿真中的流量模型研究[J].军民两用技术与产品, 2006(2):42-43.