一种基于协同理论的DDoS攻击防御系统及方法与流程

文档序号:12809617阅读:248来源:国知局
一种基于协同理论的DDoS攻击防御系统及方法与流程
本发明涉及网络安全领域,更具体地,涉及一种基于协同理论的ddos攻击防御系统及方法。
背景技术
:随着计算机科学技术的迅猛发展和深度应用,网络空间中的变革正在不断改变和影响着人们的生活方式。由于人们对互联网的依赖性越来越高,在互联网上涉及到许多关于企业、个人、甚至国家的保密信息,因此网络安全性问题一直是技术发展过程中的重要课题。目前在互联网存在的诸多网络攻击方法中,分布式拒绝服务攻击(distributeddenialofserviceattack,简称ddos)是最常见、破坏力很强的攻击方法。分布式拒绝服务攻击大多来自僵尸网络,彼此协同对一个或多个目标发动拒绝服务攻击。由于ddos攻击方法简单,隐蔽性强,使得到目前为止,还没有任何手段可以完全防御这种攻击。软件定义网络(sdn)是一种新型的网络创新架构,通过将控制层和数据层解耦,提供了对网络的集中性控制。由于在sdn网络中,所有网络依赖于单一控制器,该控制器很容易成为ddos攻击的目标,使得该新型网络面临着新的网络安全性问题。由于控制器具有网络全局管控能力、快速部署能力以及智能调度能力,能够实现异常流量的快速监测以及有效清洗,因此对防御ddos攻击提供了一种很好的方法。目前国内外提出的基于sdn网络架构的ddos攻击防御方法,大多应用于sdn控制器上,利用数理统计或者神经网络等方法进行入侵检测。在检测到异常时,利用回溯算法或者标记等方法来确定攻击源,控制器通过下发流表的方式来阻断攻击源。这类防御方法的特点是将入侵检测和攻击防御集中于sdn控制器上,使得入侵检测的准确性依赖于控制器上算法的准确性,整个防御系统的稳健性也依赖于控制器自身的安全性。因此,如何充分利用控制器而又不过分依赖于控制器,如何提升整个防御系统的稳健性是设计ddos攻击防御系统需要关注的问题之一。技术实现要素:本发明提出一种基于协同理论的ddos攻击防御系统,该系统将防御过程中的监测和决策功能分离开来,控制器负责监测,清洗设备群负责决策。使整个防御系统不过分依赖于控制器,在能够充分利用控制器资源的同时,提升整个防御系统的稳健性。为实现以上发明目的,采用的技术方案是:一种基于协同理论的ddos攻击防御系统,具体应用于sdn网络,包括控制器和设置在交换机上的清洗设备,所述控制器用于对全网交换机的端口进行监测,然后将监测到的交换机异常端口的网络流量牵引到清洗设备;所述清洗设备用于对接收到的网络流量进行分析及清洗,并基于分析的结果向控制器提供安全防御策略;控制器基于安全防御策略配置交换机,从而对攻击进行缓解。优选地,所述控制器包括位于控制层的入包统计模块、流量统计模块、流表配置模块和设备管理模块,以及位于应用层的防御策略配置模块、交互管理模块和日志记录模块;其中入包统计模块用于对发往控制器的packet-in包进行统计分析,并基于分析的结果确定受到虚假ip地址ddos攻击和针对控制器的ddos攻击的交换机异常端口;所述流量统计模块用于对sdn网络中各个交换机的端口流量进行实时监测,然后基于监测的结果确定受到僵尸网络发起的ddos攻击的交换机异常端口;流表配置模块用于下发流表到指定交换机中,实现异常端口网络流量牵引到清洗设备;设备管理模块用于管理sdn网络中的清洗设备,记录清洗设备的状态信息;所述防御策略配置模块用于与清洗设备进行交互,接收来自清洗设备的安全防御策略,然后基于安全防御策略配置交换机;所述交互管理模块用于提供可视化界面供管理员使用;所述日志记录模块用于将防御系统产生的日志信息上传到数据库。优选地,所述清洗设备包括流量收集模块、流量分类模块、流量处理模块和策略配置模块;其中流量收集模块用于监控清洗设备的网络端口,对发往清洗设备的网络流量数据包进行缓存;所述流量分类模块用于周期性地对缓存的网络流量进行分类检测,得到其攻击类型;所述流量处理模块用于根据攻击类型剔除网络流量中的异常流量,然后将正常流量回流到网络中;策略配置模块用于对攻击类型和异常流量的统计分布情况进行综合分析后得出安全防御策略,并发往控制器的防御策略配置模块。优选地,所述入包统计模块在确定受到虚假ip地址ddos攻击的交换机异常端口时,首先使用基于目的ip地址的熵值统计方法对发往控制器的packet-in包进行统计,当检测到熵值低于预设阈值时,选取提供最大贡献率的交换机中占比率最大的端口作为异常端口;所述入包统计模块在确定受到针对控制器的ddos攻击的交换机异常端口时,通过检测各交换机端口的mac-ip绑定表的更新速率来确定异常端口,当某个交换机的端口的更新速率超过预设速率时,则将其确定为异常端口。优选的,所述流量统计模块通过检测交换机各个端口的流量带宽来确定异常端口,当交换机端口的流量带宽超过了设定的阈值,并且在设定的预警时长内未能降低到预设阈值以下,则将该端口确定为异常端口。优选地,所述流表配置模块通过下发流表的方式实现异常端口网络流量的牵引;当清洗设备和异常端口属于同一台交换机时,流表配置模块直接向该交换机下发flow_mod消息进行本地端口转发;当清洗设备和异常端口分属不同交换机时,流表配置模块根据拓扑信息基于dijkstra算法得到从异常端口到清洗设备的最优路径;在得到最优路径后,流表配置模块通过openflow1.1协议支持的qinq技术,在异常端口处给网络流量添加vlantag;在最优路径涉及的交换机上转发匹配该vlantag的网络流量,最后在清洗设备端口处将该vlantag移除,实现流量牵引。优选地,所述流量分类模块周期性地从缓存中提取网络流量数据包进行特征分析,得到特征元组,将特征元组输入到经过训练的bp神经网络中进行分类,得出ddos攻击类型。优选地,所述策略配置模块通过ssl信道将安全防御策略发送至控制器的防御策略配置模块。同时,本发明还提供了一种应用于以上系统的方法,其具体方案如下:步骤1:控制器通过入包统计模块和流量统计模块对全网交换机的端口进行实时监测,搜寻并确认受到ddos攻击的异常端口;步骤2:确认异常端口后,控制器通过流表配置模块和设备管理模块,将异常端口的网络流量牵引到清洗设备;步骤3:清洗设备通过流量收集模块接收来自异常端口的网络流量;步骤4:清洗设备通过流量分类模块周期性地从流量收集模块中获取网络流量,并经过分类检测后得到ddos攻击类型;步骤5:根据攻击类型,清洗设备中的流量处理模块将符合该攻击类型的流量剔除,而将其余的正常流量回流到网络中;步骤6:清洗设备的策略配置模块结合攻击类型和异常流量的统计分布情况进行分析,得出安全防御策略并发往控制器的防御策略配置模块;步骤7:防御策略配置模块接受到清洗设备提供的安全防御策略后根据安全防御策略配置交换机,同时清除交换机中牵引到清洗设备的相关流表项,并上传日志到数据库;步骤8:清洗设备根据安全防御策略对后续缓存的网络流量进行清洗,直至所有流量处理完毕,之后通知控制器更新设备管理模块。与现有技术相比,本发明的有益效果是:1.本发明提供的防御系统,能够充分利用控制器的资源,并且有效地减轻控制器的负担。该系统通过控制器和清洗设备群的协同合作来实现对ddos攻击的防御,核心是将防御过程中的监测和决策功能分离开来,在控制器上使用数理统计的方法对交换机的端口进行监测,而对网络流量细粒度更小的检测以及安全防御策略决策则交由清洗设备完成。这种方式使得控制器集中服务于监测功能,而无需为决策功能消耗资源。2.本发明提供的防御系统,具有更强的安全性和稳健性。安全性体现在控制器与清洗设备的协同合作,由于清洗设备可以确保正常流量的回流,因此可以降低控制器的误警率,使整个系统安全性不会过分依赖于控制器上检测算法的精确度。稳健性体现在本发明提出的防御方法里,控制器首要确保自身能够正常稳定工作,配合清洗设备群,保证自身不会因为大规模ddos攻击而奔溃。附图说明图1为控制器的示意图。图2为清洗设备的示意图。图3为sdn网络的拓扑图。图4为方法的流程图。具体实施方式附图仅用于示例性说明,不能理解为对本专利的限制;以下结合附图和实施例对本发明做进一步的阐述。实施例1本发明提供了一种基于协同理论的ddos攻击防御系统,该系统架构主要由两部分组成:sdn控制器以及清洗设备群。如图1所示,sdn控制器包含位于控制层的模块,以及使用控制器提供的restapi接口位于应用层的模块。其中位于控制层的模块主要包括:入包统计模块、流量统计模块、流表配置模块和设备管理模块。而位于应用层的模块主要包括:防御策略配置模块、交互管理模块和日志记录模块。在sdn控制器控制层,其中入包统计模块用于对发往控制器的packet-in包进行统计分析,并基于分析的结果确定受到虚假ip地址ddos攻击和针对控制器的ddos攻击的交换机异常端口;流量统计模块用于对sdn网络中各个交换机的端口流量进行实时监测,然后基于监测的结果确定受到僵尸网络发起的ddos攻击的交换机异常端口;流表配置模块用于下发流表到指定交换机中,实现异常端口网络流量牵引到清洗设备,以及阻断攻击源的功能;设备管理模块用于管理网络中的所有清洗设备,记录所有清洗设备的状态信息。在sdn控制器应用层,防御策略配置模块用于与清洗设备进行交互,接收来自清洗设备的安全防御策略,然后基于安全防御策略配置交换机;交互管理模块用于提供可视化界面供管理员使用;日志记录模块用于将防御系统产生的日志信息上传到数据库。如图2所示,清洗设备群中单一清洗设备主要包括:流量收集模块、流量分类模块、流量处理模块和策略配置模块。其中流量收集模块用于监控清洗设备的网络端口,对发往清洗设备的网络流量数据包进行缓存;流量分类模块用于周期性地对缓存的网络流量进行分类检测,得到其攻击类型;流量处理模块用于根据攻击类型剔除网络流量中的异常流量,然后将正常流量回流到网络中;策略配置模块用于对攻击类型和异常流量的统计分布情况进行综合分析后得出安全防御策略,并发往控制器的防御策略配置模块。在技术实现层面,本发明提供的系统主要涉及流量监测、流量牵引和异常流量分类,具体来说:1)流量监测:sdn控制器通过入包统计模块和流量统计模块对局域网中交换机的端口流量进行实时监测。主要用于防御三种ddos攻击:使用虚假ip地址的ddos攻击、针对控制器的ddos攻击和僵尸网络发起的ddos攻击。sdn控制器通过入包统计模块来防御使用虚假ip地址的ddos攻击。由于该类ddos攻击使用的虚假ip地址大多是随机生成的,因此在交换机中很容易匹配不到相应的流表项,这时交换机会通过packet-in包将该数据包发往控制器。入包统计模块利用这一特点,使用基于目的ip地址的熵值统计方法对发往控制器的packet-in包进行统计分析。对于窗口宽度为w的数据包集合,其熵值计算公式表示如下:其中,n为数据包集合中不同目的ip地址的个数,pi为同一目的ip地址的数据包总数占所有数据包总数的比率。当入包统计模块检测到熵值低于预设阈值时,可以得到占比重最大的目的ip地址,记作ipmax。通过计算各交换机端口的贡献率来锁定异常流量端口,对于同一台交换机,其贡献率计算公式如下:其中,i为交换机端口号,pi为该端口发送的所有数据包中目的ip地址为ipmax的数据包所占比率。在检测到异常时,入包统计模块一般选取提供最大贡献率的交换机中占比率最大的端口号作为异常流量端口,并通知流表配置模块将该端口流量牵引到清洗设备。sdn控制器通过入包统计模块来防御针对控制器的ddos攻击。由于该类ddos攻击目的旨在增加控制器的负担,因此会制造大量虚假数据包迫使交换机匹配不到流表项,从而发送大量packet-in包给控制器。这类packet-in包目的和源ip地址几乎是随机产生的,因此入包统计模块不对packet-in包直接进行分析,而是通过检测各交换机端口的mac-ip绑定表的更新速率来判断是否发生攻击。mac-ip绑定表中每个条目包含了交换机的dpid、交换机端口号port、主机mac地址以及主机的ip地址,具体格式为:{dpid:port:macaddress:ipaddress}。mac-ip绑定表的更新速率表示为:v=vchange+vadd其中vchange为特定时间t内某交换机端口ip地址更换速度,vadd为特定时间t内新的mac-ip项生成速度。当某个交换机端口更新速率超过预设速率时,优选的,将该端口流量牵引到清洗设备,可选的,屏蔽该端口或者限制该端口带宽。sdn控制器通过流量统计模块来防御僵尸网络发起的ddos攻击。由于僵尸网络中大多是正常用户在不知情或者志愿的情况下被攻击者控制而成为傀儡机,在短时间内形成大规模流量发往攻击目标。因此流量统计模块通过控制器对各个交换机中的流表进行统计分析,计算交换机上各个端口流量带宽,具体计算公式如下:其中,δt为控制器设定的每次获取交换机流表的时间间隔,ct为交换机某一端口在时刻t发送的数据包字节数。当控制器监测到网络中某个交换机端口在时间间隔δt内流量带宽超过了设定的阈值,为了防止错误预警,在设定的预警时长talarm内,如果流量带宽未能降低到预设阈值以下,则将该端口判定为异常流量端口,并通知流表配置模块将该端口流量牵引到清洗设备。2)流量牵引:sdn控制器上流表配置模块通过下发流表的方式实现异常流量牵引。当清洗设备和异常流量端口所属同一台交换机时,控制器直接向该交换机下发flow_mod消息进行本地端口转发;当清洗设备和异常流量端口分属不同交换机时,流表配置模块根据拓扑信息,基于dijkstra算法得到从异常流量端口到清洗设备的最优路径。在得到最优路径后,控制器通过openflow1.1协议支持的qinq技术,在异常流量端口处给网络流量添加vlantag,在最优路径涉及的交换机上转发匹配该vlantag的网络流量,最后在清洗设备端口处将该vlantag移除,实现流量牵引。3)异常流量分类:清洗设备中流量分类模块通过bp神经网络对网络流量进行分类检测。在进行分类检测之前,需要对bp神经网络模型进行学习训练,训练样本主要来自于实际网络中大量的网络流量数据(包括正常网络流量和异常网络流量)。训练完成之后,流量分类模块会周期性地从缓存中提取数据包进行特征分析,得到特征元组,该特征元组是一组根据需要检测的ddos攻击类型而选举的具有代表性的特征值,之后将特征元组输入到bp神经网络,输出结果即为网络流量的攻击类型。如图3所示,本发明实施例的网络拓扑图。图中所示是一个sdn网络,其中c是sdn控制器;s1、s2、s3、s4、s5是支持openflow1.1协议的交换机;q1、q2、q3是部署在网络中的清洗设备。如图4所示,本发明提供的一种基于协同理论的ddos攻击防御方法,结合实施例可具体分为以下8个步骤:步骤1:攻击者发起ddos攻击,sdn控制器通过入包统计模块和流量统计模块对局域网中交换机的端口流量进行实时监测,搜寻并确认ddos攻击行为的异常流量来源。根据攻击者发起ddos攻击的目标和手段不同,sdn控制器采用不同的监测方式:1)攻击者使用虚假ip地址对目标h发起ddos攻击。当网络流量到达交换机s3时,由于该类攻击使用的虚假ip地址大多是随机产生的,因此在交换机s3中很容易匹配不到相应的流表项。这种情况下,交换机s3会以packet-in包的形式发送给控制器。由于这些packet-in包的目的ip地址过于集中,因此控制器入包统计模块检测到熵值会低于预设阈值。这种情况下,根据目的ip地址,控制器可以得知交换机s3具有最大贡献率,在交换机s3中,1号端口所占比重最大,因此控制器将交换机s3的1号端口作为异常流量端口。2)攻击者针对控制器c发起ddos攻击。由于该类ddos攻击目的旨在增加控制器的负担,因此会制造大量虚假数据包迫使交换机匹配不到流表项,从而发送大量packet-in包给控制器。由于这些虚假数据包中mac-ip地址对都是随机产生的,对于控制器来说,会认为是新加入的主机而进行学习。这种情况下,控制器入包统计模块会检测到交换机s3的1号端口的mac-ip绑定表更新速率超过了预设速率,因此控制器将其作为异常流量端口。3)攻击者通过僵尸网络对目标h发起ddos攻击。由于傀儡网络会在短时间内形成大量流量流向攻击目标,因此控制器的流量统计模块会检测到交换机s3的1号端口流量出现激增的现象。为了防止错误预警,控制器等待一小段时间后再次进行检测,流量带宽未恢复到正常水平,因此控制器将交换机s3的1号端口作为异常流量端口。步骤2:确认异常流量来源后,sdn控制器上流表配置模块通过下发流表的方式实现异常流量牵引。在控制器的设备管理模块中保存着网络中所有清洗设备的状态信息,在本实施例中,初始状态信息为:dpidportstate00:00:00:00:00:00:00:01(s1)3none00:00:00:00:00:00:00:03(s3)4none00:00:00:00:00:00:00:04(s4)4none控制器检测到交换机s3的1号端口为异常流量端口后,控制器通过设备管理模块可以得知在交换机s3的4号端口有处于空闲状态的清洗设备,即q1。因此,控制器直接向交换机s3下发flow_mod消息直接进行端口转发,具体flow_mod消息格式如下:{“switch”:”00:00:00:00:00:00:00:03”,“cookie”:”0”,“in_port”:”1”,“active”:”true”,“actions”:”output=4”}此时,设备管理模块中清洗设备状态信息表更新为:dpidportstate00:00:00:00:00:00:00:01(s1)3none00:00:00:00:00:00:00:03(s3)4{″00:00:00:00:00:00:00:03″:″1″}00:00:00:00:00:00:00:04(s4)4none如果清洗设备q1不处于空闲状态,则控制器根据拓扑信息和设备管理模块中清洗设备状态信息表,基于dijkstra算法得到从异常流量端口到清洗设备的最优路径。在本实施例中,该最优路径为s3(1)->s3(3)->s4(1)->s4(4)。在得到最优路径后,控制器通过openflow1.1协议支持的qinq技术,向路径上涉及的交换机发送flow_mod消息,将异常流量牵引到清洗设备。具体flow_mod消息格式如下:配置s3:{“switch”:”00:00:00:00:00:00:00:03”,“cookie”:”0”,“in_port”:”1”,“active”:”true”,“actions”:”push_vlan=123,output=3”}配置s4:{“switch”:”00:00:00:00:00:00:00:03”,“cookie”:”0”,“eth_vlan_vid”:”123”,“active”:”true”,“actions”:”pop_vlan,output=4”}步骤3:清洗设备q1通过流量收集模块接收来自交换机s3的1号端口的网络流量;步骤4:清洗设备q1中流量分类模块周期性地从缓存中提取数据包进行特征分析,将得到的特征元组输入到已经经过训练的bp神经网络中,得出ddos攻击类型;步骤5:根据攻击类型,清洗设备中流量处理模块会将符合该攻击类型的流量剔除,其余正常流量回流到网络中。在本实施例中,清洗设备q1将会把正常流量从交换机s3的4号端口回流到网络中。步骤6:清洗设备中策略配置模块会结合攻击类型和异常流量的统计分布情况,分析得出安全防御策略。安全防御策略包含了清洗设备所在交换机dpid,交换机端口号,攻击类型,防御方式和防御对象,具体格式为{dpid:port:type:way:object},本实施例中一个可能的安全防御策略样式如下:{”00:00:00:00:00:00:00:03”:“4“:synflood:drop_ip:{“172.18.216.23”,”172.18.216.45”}}表示位于交换机s3的4号端口的清洗设备检测到攻击类型为syn洪泛攻击,建议交换机将ip地址为172.18.216.23和172.18.216.45的数据包丢弃。清洗设备通过ssl信道将安全防御策略发往控制器应用层上的防御策略配置模块;步骤7:控制器接受到清洗设备提供的安全策略之后,根据设备管理模块,可以知道清洗设备q1正在处理交换机s3的1号端口流量。因此会根据安全策略来配置交换机s3,根据步骤6中提供的安全防御策略样式,控制器向交换机s3下发流表阻断攻击源,具体flow_mod消息格式如下:{“switch”:”00:00:00:00:00:00:00:03”,“cookie”:”0”,“in_port”:”1”,“ipv4_src”:”172.18.216.23”,“active”:”true”,“actions”:”drop”}{“switch”:”00:00:00:00:00:00:00:03”,“cookie”:”0”,“in_port”:”1”,“ipv4_src”:”172.18.216.45”,“active”:”true”,“actions”:”drop”}同时清除交换机中牵引到清洗设备的相关流表项,并上传日志到数据库。步骤8:由于已经知道了攻击类型,清洗设备将会根据安全防御策略对后续缓存流量进行清洗,直至所有流量处理完毕。所有流量处理完毕之后,清洗设备使用与安全防御策略同样的格式向控制器发送work_done指令。在本实施例中具体样式如下:{”00:00:00:00:00:00:00:03”:“4“:work_done:none:none}控制器在收到该指令后更新设备管理模块,将清洗设备q1的状态设置为空闲。显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1