DDoS攻击建模仿真平台设计与实现
2014-02-09刘小虎张明清
刘小虎,张明清,程 建,范 涛
(信息工程大学,河南郑州450004)
0 引 言
DDoS攻击会对整个网络造成严重影响,目前,尚没有防御该攻击的有效措施[1]。研究DDoS攻击及其防御措施的有效性是研究热点之一。实物环境下进行DDoS攻防研究[2],存在着难以模拟大规模复杂网络、资源消耗大、受实验场所限制等诸多问题。网络仿真为研究DDoS攻击及其防御技术提供了新的手段[3]。文献[4]利用OPNET对SYN flood DDoS攻击进行建模仿真;文献[5]利用NS2建立了DDoS攻防平台,能够实现无地址欺骗DDoS攻击的仿真场景设置和效果模拟;文献[6]基于有色Petri网仿真工具CPN Tools建立了低速率DoS攻击仿真系统。Igor Kotenko[7-9]利用Agent建模方法对DDoS攻击进行了系统建模,并在OMNeT++上进行了仿真实现,但是,只是实现一种DDoS攻击的建模与仿真,并且仿真工具OMNeT++不提供友好的仿真界面。
综合以上分析,可得DDoS攻击建模仿真的研究中存在以下问题:
(1)缺少含多种DDoS攻击的仿真模型。常见的DDoS攻击仿真模型只能仿真某一种DDoS攻击,融合多种DDoS攻击的仿真模型并不多见,无法满足在同一仿真模型上实现多种DDoS攻击仿真的需要。
(2)仿真运行和参数配置等操作较为复杂,不提供友好的仿真界面。OPNET、NS2和OMNeT++等专业网络仿真工具,没有一个友好的参数配置和操作界面,给配置和运行仿真模型造成一定困难,不利于提高仿真效率。
针对以上问题,本文结合Agent建模方法和OMNeT++网络仿真工具,对DDoS攻击机进行了详细的系统建模和仿真建模,并在VC环境下利用MFC界面开发技术对OMNe T++进行二次开发,设计并实现具有简洁性和友好性的仿真界面。该平台可以研究不同DDoS攻击类型、不同DDoS攻击强度下防御措施的有效性,为网络安全仿真研究提供模型和平台支持。
1 DDoS攻击建模仿真平台框架设计
为规范DDoS攻击建模仿真平台的构建过程,从系统分析、仿真程序和仿真界面3个方面设计如图1所示的建模仿真平台框架。
(1)采用基于Agent的系统分析建模方法。DDoS攻击建模与仿真平台中攻击机能够产生多种类型的DDoS攻击,并与其它设备存在着复杂的交互,比较适合采用基于A-gent的建模方法[10]。该部分主要解决建立基于Agent的攻击机模型和网络中其它设备的Agent模型的问题,实现系统分析功能。
(2)采用基于OMNeT++的仿真模型实现手段。DDoS攻击建模与仿真平台要求仿真软件必须具有跨平台、能够仿真大规模网络、支持编写仿真组件、使用免费等特点。此外,为开发出具有简洁性和易用性的仿真界面,还要求仿真软件必须是开源的,为用户提供编程接口,以便于进行二次开发。OMNeT++是一款离散事件仿真器,能够仿真大规模网络系统,具有交互性好、跨平台和开源等诸多优点,故选择其作为仿真软件。该部分主要解决建立基于OMNeT++的攻击机Agent仿真模型和攻击网络仿真模型的问题,实现仿真模型构建功能。
DDoS攻击的建模仿真是一个离散事件建模仿真过程,因此无论是基于Agent的建模还是基于OMNeT++的仿真都要基于离散事件仿真的思想实施。基于Agent对攻击机进行系统建模,实际上是对攻击机生成消息、发送消息和处理消息的过程进行建模分析;而基于OMNeT++对攻击机进行仿真建模,则是要对攻击机仿真模型生成消息、发送消息和处理消息进行编程仿真实现。因此,Agent系统建模是对OMNeT++仿真建模的系统分析,OMNeT++仿真建模是对Agent系统建模的具体实现,可以把两者统一于离散事件仿真的消息之中。
(3)采用VC6.0环境下的MFC界面开发技术。为更高效地配置和运行仿真模型,需要设计并实现一个具有友好交互性的仿真界面。该部分主要解决仿真界面设计、仿真界面与OMNeT++的联结以及在界面中实现仿真模型参数的修改等问题,实现高效仿真功能。
2 基于Agent的DDoS攻击机建模
结合Agent建模理论[11],可建立DDoS攻击机的Agent模型,如图2所示。
图2 基于Agent的DDoS攻击机模型
图2中,DDoS攻击机的Agent模型共有6个模块组成:
(1)用户界面。为用户提供一个设置DDoS攻击类型参数的接口,主要包括攻击开始时间、攻击类型、攻击者源地址、目的地址等多个参数。本仿真平台中,用户可以根据研究需要,设置4种不同类型的DDoS攻击,用以研究防御措施在不同类型的DDoS攻击下的有效性。
所需设置的参数见表1。
表1 DDoS攻击机模型参数
根据表1中参数设置,依据是否存在地址欺骗分类,设计和实现4种攻击类型:
1)无地址欺骗攻击。攻击机在发送DDoS攻击数据包时,将目的地址设为被攻击机地址,源地址设为攻击机的真实地址。
2)随机地址欺骗攻击。攻击机在发送DDoS攻击数据包时,将目的地址设为被攻击机地址,源地址为随机伪造地址。
3)半随机地址欺骗攻击。攻击机在发送DDoS攻击数据包时,将目的地址设为被攻击机地址,源地址在攻击机所在子网的IP地址中随机选取。
4)反射式DDoS攻击(DRDoS)。攻击机在发送DDoS攻击数据包时,将目的地址设为服务器地址,源地址设为被攻击机地址,这样收到请求的服务器会向被攻击机发送大量的回复数据包,形成DDoS攻击。
此外,攻击机在设定的非攻击时间应表现出与普通主机同样的功能,因此,还需设计攻击机的普通数据访问功能。
(2)攻击类型生成模块。通过用户界面读取用户设置的攻击类型生成时间参数,根据时间参数,生成相应的攻击类型。
(3)攻击数据包生成模块。根据攻击类型生成模块所生成的攻击类型,设置攻击数据包的源地址、目的地址和数据包长度等参数,生成相应的攻击数据包。
(4)数据包处理模块。处理攻击机收到的数据包,该平台研究DDoS攻击的影响及防御措施的有效性,因此,攻击机不具备除发送攻击数据包外的其它功能,采用直接删除收到数据包的方式进行数据包处理。
(5)输入模块。完成从环境或者其它Agent获取数据包的功能。
(6)输出模块。完成向环境或者其它Agent发送数据包的功能。
3 基于OMNeT++的DDoS攻击仿真实现
3.1 DDoS攻击机仿真模型设计
根据上节中建立的攻击机Agent模型,结合OMNeT++中模块间的嵌套式设计原则[12],可设计攻击机Agent的仿真模型如图3中窗体3所示。
图3 OMNeT++多窗体环境
攻击机Agent仿真模型是一个复合模块,由3个简单模块组成。其中,简单模块attacker App是攻击机Agent仿真模型的核心部分,它用来完成DDoS攻击类型的选择、攻击数据包的发送以及处理收到的数据包等功能,其中,根据攻击类型生成并发送DDoS攻击数据包是attacker App模块的核心功能;hostfilter简单模块主要完成主机防火墙和数据包的路由功能;queue[sizeof(port)]主要完成向外界发送攻击数据包和接收外界发送给攻击机的数据包时的数据包排队功能。
3.2 攻击数据包仿真建模
DDoS攻击是通过攻击机大量发送攻击数据包实现的,因此,对攻击数据包的建模是整个DDoS建模的重要组成部分。攻击数据包主要涉及3个参数:源地址Src Address、目的地址Des Address和数据包长度Packet Length,这3个参数直接反映了DDoS攻击的类型和强度,此外一个DDoS数据包还需包括数据包名Name,数据包内容Content、数据包序号MessageID等,故可设计DDoS攻击数据包的格式如下:
<攻击数据包>::=
<Name><Content><Src Address><Des Address><Packet Length><MessageID>
攻击机通过对源地址和目的地址的设置实现不同的攻击类型,通过对数据包长度和发送时间间隔的设置实现不同的攻击强度。
3.3 网络背景流量仿真建模
网络环境背景流量主要是由正常客户端HTTPClient访问服务器Server产生,故应在DDoS攻击建模仿真平台中设置正常客户端仿真模型以产生仿真所需的背景流量。正常客户端仿真模型在功能上比DDoS攻击机仿真模型缺少产生攻击流量生成模块和相应的参数设置,但其发送的数据包格式与DDoS攻击数据包格式相同,只是数据包源地址为客户端的真实IP地址。因此,正常客户端仿真模型可以由DDoS攻击机仿真模型简化得到。
3.4 DDoS攻击建模仿真平台仿真界面开发
OMNeT++提供多窗体用户仿真环境,具有较强的功能,能够满足仿真模型从结构设计、编程实现、仿真配置、仿真运行和结果分析等一系列要求,其多窗体用户仿真环境如图3所示。
用户在窗体1中可以完成DDoS攻击类型等参数设置功能;在窗体2中可以完成DDoS攻击仿真网络拓扑的设置功能;在窗体3中可以完成攻击机Agent的模块设计功能;在窗体4中可以完成跟踪和观察攻击机Agent的仿真进程功能;在窗体5中可以设置仿真速度(分为慢速仿真、中速仿真和全速仿真),跟踪观察整个仿真进程。OMNeT++的多窗体机制能够为科研人员提供一个良好的DDoS攻击建模仿真环境,但是,如同其它网络仿真软件一样,其参数配置等操作相对复杂,每运行一次仿真需要在多个窗体中交叉进行不同的操作,不利于提高仿真效率。
文献[13]为了减化OMNeT++中的操作,在VC6.0环境下利用MFC开发技术设计并实现了一个能够修改OMNeT++配置文件omnet.ini中参数、具有较好交互性的可视化仿真界面。但是,其并不能在仿真界面中修改仿真模块文件.ned中参数,不能满足修改攻击机仿真参数、产生多种DDoS攻击类型的需求。
本文在深入分析OMNeT++仿真软件运行原理的基础上,面向用户易于操作使用的需求,在VC6.0环境下运用MFC界面开发技术,对OMNeT++进行二次开发,设计并实现一个界面友好、操作简单的仿真界面。该仿真界面能够实现在一个界面中对仿真进程的全过程控制,减化用户操作,方便地设定攻击类型、配置仿真时间,快捷地进行编译与链接、仿真运行和结果分析等操作,以此提高仿真效率,其界面如图4所示。
图4 DDoS攻击建模仿真界面
仿真界面主要分为3个部分:攻击参数设置部分,可以在界面上直接修改攻击机仿真模型文件attacker.ned中的相关参数,本课题组根据仿真实验需求设置了常用的4种攻击类型开始时间输入栏,此外点击“更多参数配置”按钮,还可以对攻击机仿真模型的其它参数进行配置;仿真参数设置部分,可以在界面上直接修改仿真配置文件omnetpp.ini中的仿真参数,实现对仿真时间和防御场景的选择;仿真控制部分可以通过在界面上点击相应按钮,调用OMNeT++的相关组件,直接控制程序运行,快捷地实现编译与链接、仿真运行、仿真结果分析以及退出程序等功能。此外,用户还可以根据仿真需求对仿真界面做相应修改,以适应不同用户的仿真需求。DDoS攻击建模仿真界面在底层与OMNeT++相联结,其运行过程如图5所示,图5中的终结符内文字的功能分别对应仿真界面中的按钮。
4 平台仿真验证实验及特点分析
为检验所建立的DDoS攻击建模仿真平台的相关功能是否满足设计要求,设计DDoS攻击防御仿真实验,其网络拓扑如图6所示。
4.1 DRDoS攻击验证实验
在仿真界面中设置“反射式攻击开始时间”为147s,设置防御设备均不工作的防御策略。该实验中受害者为Target主机,收集的统计量为Target的请求包速率和回应包速率如图7所示。可见Target在147s后,回应包速率明显高于请求包速率,说明形成了DRDoS攻击。
图5 DDoS攻击建模仿真平台运行
图6 实验网络拓扑
图7 Target的请求包速率和回应包速率
4.2 无地址欺骗DDoS攻击验证实验
在仿真界面中设置“固定攻击开始时间”为147s,设置防火墙在200s时过滤掉数据包源地址为21、22和23的数据包的防御策略。通过设置,实验中攻击机主要有3个,IP地址分别为21、22和23,它们在147s时发动DDoS攻击,实验受害者为Server主机,收集的统计变量为Server的请求包速率,如图8所示。
图8 固定DDoS攻击下Server请求包速率
147s后Server的请求包速率急剧上升,说明发生了DDoS攻击,而200s时过滤掉数据包源地址为21、22和23的数据包,请求包速率回归到正常水平,表明攻击数据包的地址为21、22和23,即为无地址欺骗DDoS攻击。
4.3 半随机地址欺骗DDoS攻击验证实验
在仿真界面中设置“半随机攻击开始时间”为147s,设置防火墙在160s时采取过滤自学习阶段外新IP数据包;180s时采用过滤固定IP地址为21、22和23的数据包;200s时采取过滤发送数据包速率较高的IP地址的防御策略。该实验中受害者为Server,收集Server的请求包速率的变化如图9所示。
图9 半随机DDoS攻击下Server请求包速率
由图9可见,在160s时请求包速率没有变化,在180s时效果不明显,在200s时能够有效过滤攻击数据包。因此,可以判断所产生的攻击是半随机DDoS攻击。
4.4 随机地址欺骗DDoS攻击验证实验
在仿真界面中设置“随机攻击开始时间”为147s,设置防火墙在180s时采取过滤掉IP地址为21、22和23的数据包,在200秒时采用过滤掉自学习阶段(其中自学习时间为100s)没有出现的新的IP地址数据包时的防御策略。该实验中受害者为Server,收集Server的请求包速率的变化,如图10所示。180s时几乎没有效果,说明不是固定DDoS攻击和半随机DDoS攻击;200s时效果明显,说明其是随机DDoS攻击。
图10 随机DDoS攻击下Server的请求包速率
4.5 DDoS攻击建模仿真平台特点分析
(1)功能分析。该建模仿真平台中包括Agent方法,可对攻击机进行较为灵活的系统分析;可以在OMNeT++中完成DDoS攻击机从模型设计到编程仿真实现的全过程,以此完成对DDoS攻击机模型的建立;DDoS攻击实验验证了仿真平台能够有效产生4种类型的DDoS攻击。故在功能方面,该建模仿真平台能够完成DDoS攻击从系统分析、仿真模型建立到仿真运行及结果分析的全过程,达到了功能设计要求。
(2)性能分析。该建模仿真平台提供友好的交互仿真界面,提高了仿真效率。在平台仿真界面中实现DDoS攻击类型的快速配置,而无需进入程序修改参数;用一个按钮实现仿真编译与链接控制、仿真运行控制和结果分析等功能,减化了用户操作,达到了提高仿真效率的目的。
(3)扩展性分析。该建模仿真平台为在OMNeT++上进行二次开发做了有益探索,解决了如何在MFC界面上控制仿真程序运行、修改.ini配置文件的参数和修改仿真模型文件.ned中参数等关键问题。不同仿真用户可以依据上述方法,结合自身仿真需求对仿真平台做相应修改,具有扩展性好、普适性强的特点。
5 结束语
本文从Agent建模方法、OMNeT++仿真工具和MFC界面开发技术3个方面,设计了DDoS攻击建模仿真平台框架,规范了DDoS攻击建模仿真平台设计与实现的整个过程;详细介绍了基于Agent建立攻击机系统模型和基于OMNe T++建立攻击机仿真模型的过程;VC环境下对OMNeT++进行二次开发,设计并实现了具有操作简洁性、界面友好性的仿真界面;通过仿真实验验证了该建模仿真平台能够仿真实现4种类型的DDoS攻击;最后,从功能、性能和可扩展性3个方面对建模仿真平台进行了分析,表明该平台的正确性、有效性和先进性。该建模仿真平台为研究DDoS攻击及其防御策略的有效性提供了平台支持,但是,DDoS攻击的种类有很多,下一步工作是继续在仿真平台中扩充DDoS攻击的类型,丰富攻击类型库。
[1]Astha Keshariya,Noria Foukia.DDoS defense mechanisms:A new taxonomy[G].LNCS 5939:Data Privacy Management and Autonomous Spontaneous Security.Berlin:Springer Berlin Heidelberg,2009:222-236.
[2]ZHANG Lihui,DUAN Haixin,DAI Shidong.Design and impementation of DDoS attack-defense testbed[J].Computer Engineering,2008,(34)13:118-120(in Chinese).[张黎辉,段海新,戴世冬.DDoS攻击防御实验床的设计与实现[J].计算机工程,2008,(34)13:118-120.]
[3]WANG Zeyu,WANG Ning.Application of network simulator tools on network security experiment[J].Network Information Security,2008,8(11):72-75(in Chinese).[王泽玉,王宁.网络模拟工具在网络安全试验中的应用[J].信息网络安全,2008,8(11):72-75.]
[4]ZHANG Mingqing,XIE Jie,ZHANG Min,et al.Modeling and simulation of DDoS attacks using OPNET modeler[J].Journal of System Simulation,2008,20(10):2736-2739(in Chinese).[张明清,谢杰,张敏,等.基于OPNET的拒绝服务攻击建模与仿真[J].系统仿真学报,2008,20(10):2736-2739.]
[5]WANG Wei.Network simulaton of DDoS defense based on NS2[J].Journal of Yangtze University(Nat Sei Edit)Sci&Eng V,2012,9(7):114-116(in Chinese).[王伟.基于NS2网络仿真防御DDoS攻击研究[J].长江大学学报(自然科学版)理工卷,2012,9(7):114-116.]
[6]LIU Tao,HE Yanxiang,XIONG Qi,et al.Simulation and analysis of congestion control adaptation system-targeted LDoS attack[J].Journal of Sysem Simulation,2011,23(5):1026-1031(in Chinese).[刘陶,何炎祥,熊琦,等.自适应拥塞控制系统中LDoS攻击仿真和分析[J].系统仿真学报,2011,23(5):1026-1031.]
[7]Igor Kotenko,Alexey Konovalov,Andrey Shorov.Agentbased simulation of cooperative defense against botnets[J].Concurrency and Computation:Practice and Experience,2012,24(6):573-588.
[8]Igor Kotenko,Alexey Konovalov,Andrey Shorov.Agend-based modeling and simuation of botnets and botnet defense[C]//Conference on Cyber Conflict Proceedings,2010:21-43.
[9]Igor Kotenko,Alexander Ulanov.Multiagent modeling and simulation of agents’competition for network resources availability[C]//Fourth International Conference on Autonomous Agents and Multi-Agent Systems,2009:27-43.
[10]SUN Xiangyang.Research and implementation of a DDoS attacks and defense simulation system based on NS2[D].Changsha:National University of Defense Technology,2008(in Chinese).[孙向阳.基于NS2的DDoS攻击模拟系统研究与实现[D].长沙:国防科技大学,2008.]
[11]Andrew I.Artificial war:Multi-agent based simulation of combat[M].ZHANG Zhixiang,GAO Chunrong,GUO Fuliang,transl.Beijing:Publishing House of Electronics Industry,2010(in Chinese).[安德鲁.人工战争:基于多Agent的作战仿真[M].张志祥,高春蓉,郭福亮,译.北京:电子工业出版社,2010.]
[12]ZHAO Yongli,ZHANG Jie.OMNeT++and network simulation[M].Beijing:Posts &Telecom Press,2012(in Chinese).[赵永利,张杰.OMNeT++与网络仿真[M].北京:人民邮电出版社,2012.]
[13]CAO Min,LI Wenfeng,YUAN Bing.Sensor networks simulation based on OMNET++[D/OL].Sciencepaper Online,[2006-09-12].http://www.paper.deu.cn(in Chinese).[操敏,李文锋,袁兵.基于OMNe T++的传感器网络仿真[D].中国科技论文在线,[2006-09-12].http://www.paper.deu.cn.]