一种SDN中基于信任值的自适应启动的ddos防御方法和系统技术方案

技术编号:15334752 阅读:77 留言:0更新日期:2017-05-16 21:50
本发明专利技术公开了一种SDN中基于信任值自适应启动的ddos防御方法,交换机接收到一个无法匹配的包,发送packet_in数据包至控制器;在SDN控制器中部署一个计数器,该计数器预先设定packet_in数量值,每当到达的packet_in数量等于该设定值时,计算此时间段packet_in的到达速率;然后判断packe_in到达速率是否异常;利用反向神经网络分类器对packet_in对应的交换机上的流量进行精确检测,建立一个中间层为50*50的神经网络,计算出六个特征值,将上述六个特征值作为分类器的输入,进行训练,若神经网络输出值介于0.5和1之间,则判定该流量为ddos攻击。本发明专利技术该充分利用SDN的特性:数据层的流表信息,控制层控制器对整个网络的控制等,有效防御SDN中ddos攻击。

【技术实现步骤摘要】
一种SDN中基于信任值的自适应启动的ddos防御方法和系统
本专利技术属于下一代网络安全
,涉及一种SDN中基于信任值的自适应启动的ddos防御方法和系统。
技术介绍
作为影响检测效率和系统性能的重要因素,针对防御系统的启动机制研究的很少。目前,大多数的ddos防御系统采用的是基于周期性检查流表项的机制去启动ddos的检测。大多数方法中,控制器对流表项的收集周期性收集。周期性的缺点很明显,周期过长,会导致检测ddos不及时,周期过短,会导致控制器负荷增大。不同于以上方法,本专利技术提出了一种基于packet_in到达速率的自适应启动机制。目前,大多数的研究集中在ddos攻击的检测方面。主要有两种,一种是基于包的检测,另一种是基于流表的检测。通过比较基于包的检测和基于流表的检测,我们发现基于流表的检测更好。因为基于包的检测会在没有ddos攻击发生的情况下,依然收集包的信息去判断此包是否为ddos攻击包,这样会使控制器花费很多的时间和资源去处理大量的正常的信息。作为对比,基于流表的ddos检测如果设计一个合适的启动机制,当没有ddos攻击时,检测机制就不会启动,所以可以极大的减少控制器的负荷。另外,本专利技术采用的是神经网络的分类检测方法,神经网络算法的特点是有一定的理论保证、适用性强且是一种无模型的计算机学习方法。将神经网络应用于ddos检测,可以提升检测的准确性,另外,改变训练数据,可以检测出不同种类的ddos攻击。现今,国内外主要的恢复方法是改变流表的处理指令,或者是添加一个新的流表。例如将ip地址和端口号匹配成功的包的流表项处理指令被设置为丢弃或者采用一个速率限制和黑名单的方式,本专利技术在以上方法的基础上提出了基于信任值的队列管理的方案,可以灵活的处理ddos攻击。
技术实现思路
本专利技术目的在于提供一种基于信任值自适应启动的ddos检测与防御方法,该方法利用人工神经网络作为异常流量的分类检测方法,在保障检测的准确性的前提下,确保不占用控制器大量的资源,采用一种自适应的启动机制。首先,控制器终端计数器计算packet_in的到达速率,根据其到达速率,决定是否启用人工神经网络检测流量。当检测完成后,控制器根据其信任值修改packet_in在队列中的位置,从而达到防御ddos,提升服务质量的目的。为达到上述目的,本专利技术采用的技术方案是一种SDN中基于信任值自适应启动的ddos防御方法,包括如下步骤:步骤1:交换机接收到一个无法匹配的包,发送packet_in数据包至控制器;步骤2:在SDN控制器中部署一个计数器,该计数器预先设定packet_in数量值,每当到达的packet_in数量等于该设定值时,计算此时间段packet_in的到达速率;步骤3:判断packe_in到达速率是否异常,具体做法如下:建立一种数据结构,将步骤1发来的packet_in到达速率作为一个节点顺序存储在该数据结构中,每个节点设立生存周期范围为10-20秒,若两个节点的速率值差小于一个值,则这两个节点互为相近节点,对于每一个新到的节点,更新其前向相近节点数量;相对的,也要更新之前到达节点的后继相近节点数量,若一个节点的前向相近节点数量与后继相近节点数量之和小于一个值,即该节点相近节点数量低于正常值,则判断该节点可疑,执行步骤4;否则,执行步骤5;步骤4:利用反向神经网络分类器对packet_in对应的交换机上的流量进行精确检测,建立一个中间层为50*50的神经网络,首先,利用网络上的ddos攻击数据对该分类器进行训练,提取攻击数据流表的头域信息,计算出六个特征值:apf即每个流的平均包的数量、abf即每个流的平均比特量、adf即每个流的平均持续时间、ppf即每个流成对包的比例、gsf即每个流单一包的增长率、gdp即每个流不同端口的增长率,将上述六个特征值作为分类器的输入,进行训练,然后利用训练完成的神经网络,将步骤3中可疑packet_in对应交换机上的流量的六个特征作为输入值,若神经网络输出值介于0.5和1之间,则判定该流量为ddos攻击;步骤5:建立用户信任值数据库,用来存储每个用户的信任值,若精确检测模块检测出是ddos攻击,则减小用户信任值,若检测出不是ddos攻击,则查看控制器状态,若控制器正在遭受攻击也减小其信任值;否则增加其信任值,最后,根据信任值,重新排列packet_in在队列中的位置。进一步,上述步骤2中,根据packet_in包到达速率,自适应地启动ddos精确检测,具体做法如下:2-1:在控制器上部署一个计数器,用于计算packet_in的到达数量;2-2:packet_in计数器的所述设定值为2000,每2000个packet_in包到达时,则计算此时间段packet_in的到达速率。上述步骤3中,判断packet_in到达速率可疑的具体步骤如下:3-1:设步骤2计算出的packet_in到达速率为velocity,对于每个新到velocity,建立一个新的节点ncurrent.obj,将该节点与数据库中的每个节点进行比较,若两节点的速率之差小于150,则将该新到节点的前向相近节点数量加1,同时,将对应的前向相近节点的后继相近节点数量加1,并将ncurrent.obj存储至数据库;3-2:每隔一段时间,范围为5-20秒检查一次数据库中的节点,对于数据库中的每一个节点,prec_neighs为该节点前向相近节点的数量,succ_neighs为该节点后继相近节点的数量,若(prec_neighs+succ_neighs)<25,则判定该节点可疑。又进一步,上述步骤3-2中所述一段时间优选为10秒。上述步骤4中,所述神经网络一共四层,输入层为第0层,50*50的中间层为第1、2两层,输出层为第3层,输出神经元为第2层神经元输出的算数平均值,即第2层到第3层权值都为1且处理函数为求平均函数,第l层第n个神经元的输出为中间层神经元处理函数,即每一个神经元的输出都要经过此函数的处理,保证输出在0到1之间,为从第l-1层第k个神经元到第l层第n个神经元的权值,为第l-1层第k个神经元的输入,神经网络可以准确的检测出ddos攻击,具体步骤如下:步骤4-1:训练阶段:首先给出神经网络训练的初始数据,学习速率参数η=0.5、目标值tn=0.75,接着运行一次神经网络获得各层的输出,根据实际输出值和目标输出值的比较,得出输出误差,然后判断该误差是否达到了预期误差,如果在预期误差之内,则退出训练;否则继续调整学习速率和权值,继续运行神经网络进行训练,直到误差小于预期的误差,具体做法如下:步骤4-1-1:根据网络上数据库中的攻击流量,提取六个流表特征X1X2X3X4X5X6,作为神经网络的输入,所述六个特征值的计算方法如下:apf计算方法:将所有的流按每个流所含包的数量升序排列其中函数f(x)为第x个流的包的数量,n为所有流的数量,abf计算方法:与1式相同,但是此时的f(x)代表每个包的比特量,adf计算方法:与1式相同,但是此时的f(x)代表每个流的持续时间,ppf计算方法:其中若两个流的源ip相同,目的ip相同且两个流的通信协议相同,则成这两个流为一对pairflow,num_pairflows为所有流中pairf本文档来自技高网
...
一种SDN中基于信任值的自适应启动的ddos防御方法和系统

【技术保护点】
一种SDN中基于信任值自适应启动的ddos防御方法,其特征在于包括如下步骤:步骤1:交换机接收到一个无法匹配的包,发送packet_in数据包至控制器;步骤2:在SDN控制器中部署一个计数器,该计数器预先设定packet_in数量值,每当到达的packet_in数量等于该设定值时,计算此时间段packet_in的到达速率;步骤3:判断packe_in到达速率是否异常,具体做法如下:建立一种数据结构,将步骤1发来的packet_in到达速率作为一个节点顺序存储在该数据结构中,每个节点设立生存周期范围为10‑20秒,若两个节点的速率值差小于一个值,则这两个节点互为相近节点,对于每一个新到的节点,更新其前向相近节点数量;相对的,也要更新之前到达节点的后继相近节点数量,若一个节点的前向相近节点数量与后继相近节点数量之和小于一个值,即该节点相近节点数量低于正常值,则判断该节点可疑,执行步骤4;否则,执行步骤5;步骤4:利用反向神经网络分类器对packet_in对应的交换机上的流量进行精确检测,建立一个中间层为50*50的神经网络,首先,利用网络上的ddos攻击数据对该分类器进行训练,提取攻击数据流表的头域信息,计算出六个特征值:apf即每个流的平均包的数量、abf即每个流的平均比特量、adf即每个流的平均持续时间、ppf即每个流成对包的比例、gsf即每个流单一包的增长率、gdp即每个流不同端口的增长率,将上述六个特征值作为分类器的输入,进行训练,然后利用训练完成的神经网络,将步骤3中可疑packet_in对应交换机上的流量的六个特征作为输入值,若神经网络输出值介于0.5和1之间,则判定该流量为ddos攻击;步骤5:建立用户信任值数据库,用来存储每个用户的信任值,若精确检测模块检测出是ddos攻击,则减小用户信任值,若检测出不是ddos攻击,则查看控制器状态,若控制器正在遭受攻击也减小其信任值;否则增加其信任值,最后,根据信任值,重新排列packet_in在队列中的位置。...

【技术特征摘要】
1.一种SDN中基于信任值自适应启动的ddos防御方法,其特征在于包括如下步骤:步骤1:交换机接收到一个无法匹配的包,发送packet_in数据包至控制器;步骤2:在SDN控制器中部署一个计数器,该计数器预先设定packet_in数量值,每当到达的packet_in数量等于该设定值时,计算此时间段packet_in的到达速率;步骤3:判断packe_in到达速率是否异常,具体做法如下:建立一种数据结构,将步骤1发来的packet_in到达速率作为一个节点顺序存储在该数据结构中,每个节点设立生存周期范围为10-20秒,若两个节点的速率值差小于一个值,则这两个节点互为相近节点,对于每一个新到的节点,更新其前向相近节点数量;相对的,也要更新之前到达节点的后继相近节点数量,若一个节点的前向相近节点数量与后继相近节点数量之和小于一个值,即该节点相近节点数量低于正常值,则判断该节点可疑,执行步骤4;否则,执行步骤5;步骤4:利用反向神经网络分类器对packet_in对应的交换机上的流量进行精确检测,建立一个中间层为50*50的神经网络,首先,利用网络上的ddos攻击数据对该分类器进行训练,提取攻击数据流表的头域信息,计算出六个特征值:apf即每个流的平均包的数量、abf即每个流的平均比特量、adf即每个流的平均持续时间、ppf即每个流成对包的比例、gsf即每个流单一包的增长率、gdp即每个流不同端口的增长率,将上述六个特征值作为分类器的输入,进行训练,然后利用训练完成的神经网络,将步骤3中可疑packet_in对应交换机上的流量的六个特征作为输入值,若神经网络输出值介于0.5和1之间,则判定该流量为ddos攻击;步骤5:建立用户信任值数据库,用来存储每个用户的信任值,若精确检测模块检测出是ddos攻击,则减小用户信任值,若检测出不是ddos攻击,则查看控制器状态,若控制器正在遭受攻击也减小其信任值;否则增加其信任值,最后,根据信任值,重新排列packet_in在队列中的位置。2.根据权利要求1所述的一种SDN中基于信任值自适应启动的ddos防御方法,其特征在于,所述步骤2中,根据packet_in包到达速率,自适应地启动ddos精确检测,具体做法如下:2-1:在控制器上部署一个计数器,用于计算packet_in的到达数量;2-2:packet_in计数器的所述设定值为2000,每2000个packet_in包到达时,则计算此时间段packet_in的到达速率。3.根据权利要求1所述的一种SDN中基于信任值自适应启动的ddos防御方法,其特征在于,所述步骤3中判断packet_in到达速率可疑的具体步骤如下:3-1:设步骤2计算出的packet_in到达速率为velocity,对于每个新到velocity,建立一个新的节点ncurrent.obj,将该节点与数据库中的每个节点进行比较,若两节点的速率之差小于150,则将该新到节点的前向相近节点数量加1,同时,将对应的前向相近节点的后继相近节点数量加1,并将ncurrent.obj存储至数据库;3-2:每隔一段时间,范围为5-20秒检查一次数据库中的节点,对于数据库中的每一个节点,prec_neighs为该节点前向相近节点的数量,succ_neighs为该节点后继相近节点的数量,若(prec_neighs+succ_neighs)<25,则判定该节点可疑。4.根据权利要求3所述的一种SDN中基于信任值自适应启动的ddos防御方法,其特征在于步骤3-2中所述一段时间为10秒。5.根据权利要求1所述的一种SDN中基于信任值自适应启动的ddos防御方法,其特征在于,步骤4中所述神经网络一共四层,输入层为第0层,50*50的中间层为第1、2两层,输出层为第3层,输出神经元为第2层神经元输出的算数平均值,即第2层到第3层权值都为1且处理函数为求平均函数,第l层第n个神经元的输出为中间层神经元处理函数,即每一个神经元的输出都要经过此函数的处理,保证输出在0到1之间,为从第l-1层第k个神经元到第l层第n个神经元的权值,为第l-1层第k个神经元的输入,神经网络可以准确的检测出ddos攻击,具体步骤如下:步骤4-1:训练阶段:首先给出神经网络训练的初始数据,学习速率参数η=0.5、目标值tn=0.75,接着运行一次神经网络获得各层的输出,根...

【专利技术属性】
技术研发人员:袁云飞王玉峰
申请(专利权)人:南京邮电大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1