并行化蠕虫对抗仿真系统

2015-10-25 09:27路松松王晓锋
服装学报 2015年5期
关键词:蠕虫网络拓扑路由器

路松松, 王晓锋, 毛 力

(江南大学物联网工程学院,江苏无锡214122)

随着网络的发展和应用的深入,网络蠕虫已经成为危害网络正常运行的一个巨大威胁[1]。传统的安全技术在与网络蠕虫的不断对抗中常常处于劣势。良性蠕虫能够在蠕虫爆发初期,或者蠕虫爆发之前主动修复网络中漏洞主机,从而控制蠕虫疫情的爆发范围[2]。因此,良性蠕虫已经慢慢成为对抗网络蠕虫的一种有效措施。为了与良性蠕虫对应,文中将网络蠕虫称之为恶性蠕虫。

仿真是对蠕虫研究的重要手段之一,然而大规模的蠕虫仿真不仅消耗极大的计算机资源,而且会花费大量的时间。为此,有人提出通过使用更多的处理器仿真网络来增加计算能力,以提高仿真速度和处理数据的能力,即并行离散事件仿真(Parallel Discrete Event Simulation,PDES)[3]机制。庄新妍等人[4]以此为基础提出了一种基于网格的蠕虫行为模拟器,然而该模拟器并没有提供良性蠕虫,脚本生成和界面显示方面也没有具体介绍。

为了解决上述问题,文中以GTNetS[5]作为仿真器设计并实现了一种并行化蠕虫对抗仿真系统。它不仅提供了良性蠕虫,也能够自动生成仿真脚本上传到服务器运行,并将仿真结果在前台界面进行实时展示。

1 系统良性蠕虫与系统设计

1.1 系统良性蠕虫介绍

Frank根据良性蠕虫的扩散方式将良性蠕虫分为:主动型、被动型、混合型和基于IDS共4种类型的良性蠕虫[6]。良性蠕虫的对抗策略分为集中修补型、主动扩散型和监测驱动型。

系统提供的良性蠕虫为主动良性蠕虫:良性蠕虫被释放到网络中,会通过主动扫描或其他方法确定目标主机,并迅速感染,良性蠕虫感染主机后,会修补漏洞和清除恶性蠕虫,之后进入新一轮的传播流程。

系统使用的对抗策略为主动扩散型:良性蠕虫像恶性蠕虫一样在网络中自动寻找漏洞主机,自动进行渗入、修补、传播和查杀一系列工作,传播速度快,防御范围广,可在恶性蠕虫爆发初期或爆发前有效对抗蠕虫,从而将恶性蠕虫疫情控制在最小范围内。

1.2 系统设计

如图1所示,系统主要由5个不可或缺的模块组成。

网络拓扑选择模块提供 NEM[7]和CAIDA[8]两种不同规模的权威性网络拓扑。拓扑任务划分模块采用TPBLE划分方法 ,对仿真任务进行划分以加快仿真的速度。子网间路由配置是为了保证不同仿真服务器上的节点之间能够进行数据传输而所需的路由信息。仿真脚本生成模块将根据用户选择的蠕虫种类和划分后的网络拓扑实现对蠕虫仿真脚本自动生成并投放到仿真服务器中运行。仿真结果展示模块能够实时直观地将实验结果展示出来。

图1 并行蠕虫对抗仿真系统设计框架Fig.1 Design framework ofthe parallelworm warfare simulation system

2 系统实现

如图2所示,系统实现时,存在3个问题需要解决:(1)服务器管理;(2)并行化拓扑生成;(3)仿真结果展示。

图2 并行蠕虫对抗仿真系统实现框架Fig.2 Realization framework of the parallel worm warfare simulation system

2.1 服务器管理

服务器是仿真运行的载体,是系统的核心部分,因此服务器管理是系统的重要基础。它不仅关系到仿真脚本的上传与前端命令的传达,也影响仿真运行时对服务器组仿真结果的处理。

系统在对服务器进行管理,实际上是对服务器的IP地址的管理。为此系统将会开辟一片存储空间来对服务器的IP地址进行保存,存储空间和IP地址采用一对一映射。

服务器的 IP地址集合为 A={IP1,IP2,…,IPn},其中n表示总的服务器数量;存储空间的集合为 B={Space1,Space2,…,Spacen}。集合A 中的任意一个元素在集合B中都有一个其唯一的值与对应。此方法在保证服务器组整体性的同时,保证了服务器的局部性。

2.2 并行化拓扑生成

系统获取并行化拓扑的过程分为两步:获取固定规模拓扑和使用TPBLE划分方法[10]对仿真任务进行划分。

CAIDA是最重要的互联网数据提供者之一。它在不同的链路和交换中心收集了不同种类的网络数据,因此CAIDA提供的信息更具有现实网络的依据。

NEM是一个基于度的拓扑生成器:匹配一定的局部特征(度的分配)比捕获大规模等级结构要更加重要。因此与其他拓扑生成器(基于结构的拓扑生成器)相比,这种基于度量的模型生成大规模拓扑更加精确。使用NEM拓扑生成器,可以很方便地直接生成数千节点的大规模网络拓扑图。

如图3所示,根据CAIDA和NEM不同的特性,系统在获取固定规模拓扑时的方法不同,但对仿真任务划分采用了相同的方法。

图3 CAIDA和NEM拓扑生成Fig.3 Topology generation of CAIDA and NEM

2.2.1 固定规模拓扑 CAIDA的初始拓扑是相当大的,利用数据库的数据处理功能,可以轻松实现对CAIDA数据的梳理。系统采用逐层去除最外层节点的方式来获取小规模的拓扑。此方法不仅简单,而且能保留原始拓扑的核心部分。

使用NEM可以轻松地得到各种规模的拓扑,但是若要将NEM融入系统中又太复杂。为了以CAIDA对应,此系统将NEM生成各种规模的拓扑导入到数据库中;系统会根据用户需要规模的大小,从数据库中查找相应规模的拓扑。

经过上述步骤可以得到CAIDA和NEM的固定规模的拓扑。

2.2.2 TPBLE划分方法 并行网络模拟时,结束时间是按最后运行完模拟任务节点时间计算的,因此,为了减少模拟运行时间,对网络拓扑划分时,需要均衡各模拟节点模拟任务的负载量。在多机模拟环境下对网络拓扑的划分,应以使得网络传输的数据包个数最小为目标。因此,并行网络模拟的效率,与节点负载与链路负载有很大关系。在网络模拟中,除非模拟完成,否则无法准确地知道每个节点和每条链路的负载。因此,必须通过估计的方法来获得节点和链路负载的估计值。文中采用TPBLE划分方法对拓扑进行划分。

TPBLE划分方法由综合负载估计算法和METIS[10]划分工具组成。综合评估算法中使用了Dijkstra算法[11],以求获得任意两个节点之间在一个确定图中的最短路径。

负载估计算法描述如下:

假设网络拓扑中有M条链路,N个路由器,其中终端路由器个数为P,P个终端路由器所连接的主机个数用 Num[P]存储。链路相对负载值用Linkp[M]存储,路由器相对负载值用 Node[N]存储。

1)初始化 Link[M],Node[N];

2)采用Dijkstra算法计算出P个终端路由器间的最短路径 → Path[P][P];

3)计算链路相对负载值与路由器相对负载值;

对 Path[P][P]中每一条最短路径 Path[i][j]

{

对 Path[i][j]中每一条链路 k:

Link[k] =Link[k]+Num[i]*Num[j]

对Path[i][j]中的每一个中间路由器上l:

Node[l] =Node[l]+Num[i]*Num[j]

对起始路由器i:

Node[i] =Node[i]+2*Num[i]*Num[j]

对终止路由器j:

Node[j] =Node[j] +2*Num[i]*Num[j]

}

算法首先计算出各终端路由器间的最短路径,针对每一条最短路径:最短路径中的各条链路与各个路由器相对负载值增加,增加的值与这条最短路径两端路由器所连接的主机节点这个数有关。在划分是忽略了主机节点而只是对路由器拓扑进行划分,主机节点的相对负载由终端路由器代表,因此每一条最短路径的起始路由器与终止路由器的增加值是中间路由器的2倍。

算法最后得到了各链路和路由器相对负载值的估计,这与链路、路由器的核心程度成正比。估计值并不是针对在一次模拟中链路或路由器负载的绝对值,即经过链路或路由器的数据包个数,而是针对在一个模拟中链路与链路间或路由器与路由器间负载的相对比值。

通过上述算法估计负载得到具有点和变权值的拓扑图后,采用METIS对该拓扑图进行划分,使得划分实现各子网负载均衡及子网间通信量的最小化。

对节点间数据流不能事先确定的模拟应用,无法估计路由器与链路的负载绝对值,因此只能采用负载相对值作为权值。对于拓扑图划分工具来说,采用负载相对比值作为链路和节点的权值与采用绝对负载值作为链路和节点的权值所获得的划分效果是一致的。

2.3 仿真结果展示

在并行化仿真时,各服务器只存放自身部分的仿真结果,此需要对服务器的仿真结果进行整合处理以得到整个仿真结果。

整合过程:假设n台服务器分别向前台传输m项的仿真结果,则在缓冲区中将开辟出n*m大的存储空间,每项结果都对应n个存储空间;当结果经Socket传到缓冲区时系统会对结果进行提取,并将其投放到特性的n个存储空间中;当所有服务器的结果到达后,对这特定的n个空间结果进行累加就可以得到该项整体仿真结果;最终将其在前台再显示出来。

3 系统使用实例

为了验证系统的可行性,采用3台服务器对系统进行仿真测试。

在图4,5中,上边的曲线是感染节点总数,下边是蠕虫发包的总数。由此可知,UDP类型的蠕虫发包数与感染节点数成正比,而TCP类型的蠕虫并非如此。出现这种差异的原因在于这两种类型的蠕虫感染原理不同。

图4 UDP恶性蠕虫仿真结果Fig.4 Result of the UDP worm simulation

图5 TCP恶性蠕虫仿真结果Fig.5 Result of the TCP worm simulation

UDP和TCP类型的蠕虫都是通过数据包进行感染的,但UDP类型的蠕虫不需要建立连接便可以发送数据包。也就是,不管目的地址的主机是否存在都进行正常发送,因此UDP类型蠕虫的数据包和感染节点数成正比。TCP类型的蠕虫在感染前需要建立连接,连接成功才会发送数据包。然而,目的IP是随机产生的,并不能保证IP地址真实存在,也并不能保证每次都能建立链接,所以TCP类型蠕虫的发包数与感染节点数不是正比关系。

在图6中,上边的曲线是UDP恶性蠕虫的感染节点数,下边的是UDP良性蠕虫修复的节点数。通过这两条曲线可知,当仿真开始时,因为没有修复的节点数很多,加上UDP恶性蠕虫感染命中率高,导致UDP恶性蠕虫感染节点数增加。在达到一定范围后,可修复的节点数增加,以至于UDP良性蠕虫的命中率增加,修复的节点数开始迅速增加,从而UDP恶性蠕虫的感染速率下降。随后UDP良性蠕虫修复节点数增加到一定数量时,使得UDP恶性蠕虫感染节点数保持稳定。最终UDP恶性蠕虫可感染的节点数减少,修复节点数增加,以至于感染的节点数下降,并最终为0,而在整个过程中UDP良性蠕虫修复的节点数一直处于增长状态。

图6 UCP恶性蠕虫和UDP良性蠕虫运行结果Fig.6 Result of the UDP worm and UDP anti-worm simulation

4 结语

本系统不仅为用户提供了良性蠕虫,而且采用自动生成蠕虫仿真脚本和对仿真结果提供了实时展示的方式,使得蠕虫仿真过程变得简单,仿真效率也有极大提高。然而系统也有自己的缺陷,比如由于蠕虫仿真过程中有大量的数据包转发,虽然系统有少量展示,但是仍然没有达到理想的地步;再有蠕虫仿真的随机性,以至于脚本的仿真时间难以确定,需要提供足够多的时间,以保证蠕虫仿真完全。今后的工作将会在这些方面进行研究并逐步加以改善。

[1]杨昱.网络蠕虫的检测和防治[J].网络安全技术与应用,2013(12):83-84.

YANG Yu.Network worm’s examination and prevention[J].Network Security Technology and Application,2013(12):83-84.(in Chinese)

[2]陈伟,孙志勇,许德武.良性蠕虫的B+地址树扩散策略[J].计算机工程,2012,38(6):135-138.

CHEN Wei,SUN Zhiyong,XU Dewu.B+Address tree diffusion strategy for benign worm[J].Computer Engineering,2013,38(6):135-138.(in Chinese)

[3]Fujimoto R M.Parallel discrete event simulation[J].Communications of the ACM,1990,33(10):30-53.

[4]庄新妍,刘扬,董改芳.基于网格的蠕虫行为模拟器[J].内蒙古农业大学学报:自然科学版,2014(2):151-157.

ZHUANG Xinyan,LIU Yang,DONG Gaifang.Internet worm behavior simulator based on grid[J].Journal of Inner Mongolia University:Natural Science Edition,2014(2):151-157.(in Chinese)

[5]George F Riley.Using the georgia tech network simulation[EB/OL].http://www.ece.gatech.edu/research/labs/MANIACS/GTNets/docs/GTN ets_manual.pdf.

[6]Castaneda F,Sezer E C,XU J.WORM vs.WORM:preliminary study of an active counter-attack mechanism[C]//Proceedings of the 2004 ACM Workshop on Rapid Malcode.Washingtom DC:Association for Computing Machinery,2004:83-93.

[7]Tangmunarunkit H,Govindan R,Jamin S,et al.Network topology generators:degree-based vs.structural[J].Proceedings of Acm Sigcomm Computer Communication Review.Pennsylvania:[s.n.],2002,31(4):147-159.

[8]杨望.CAIDA提供互联网数据共享服务[J].中国教育网络,2008(5):27-28.

YANG Wang.CAIDA provide internet data services sharing[J].China Education Network,2008(5):27-28.(in Chinese)

[9]王晓锋,方滨兴,云晓春,等.并行网络模拟中的一种拓扑划分方法[J].通信学报,2006,27(2):16-21.

WANG Xiaofeng,WANG Binxing,YUN Xiaochun,et al.Approach for topology partitioning in parallel network simulation[J].Journal on Communications,2006,27(2):16-21.(in Chinese)

[10]George K,Kumar V P.METIS-a software package for partitioning unstructured graphs,partitioning meshes,and computing fillreducing orderings of sparse matrices,version 4.0[R].Twin Cities:University of Minnesota,1998.

[11]Dijkstra E W.A note on two problems in connexion with graphs[J].Numerische Mathematik,1959(1):269-271.

猜你喜欢
蠕虫网络拓扑路由器
买千兆路由器看接口参数
基于通联关系的通信网络拓扑发现方法
维持生命
路由器每天都要关
蠕虫状MoS2/C的制备及其在锂离子电池负极材料中的应用
秋季谨防家禽蠕虫病
能量高效的无线传感器网络拓扑控制
无线路由器的保养方法
劳斯莱斯古斯特与魅影网络拓扑图
青海海晏县牛羊寄生蠕虫种调查与防治