技术领域
[0001] 本
发明涉及一种检测和防护SDN控制器盲DDoS攻击的方法及系统,属于
计算机网络安全领域。
背景技术
[0002] 传统网络设备上把设备控制和数据转发耦合在一起,从而使得路由器、交换机等的管理非常复杂,缺少灵活性和扩展性,阻碍了网络的进一步飞速发展。因此在这种背景下,出现了SDN的概念及其相关技术。
[0003]
软件定义网络(software-defined networking,简称SDN)技术分离了网络的控制平面和数据平面,为研发网络新应用和未来互联网技术提供了一种新的解决方案。其中Openflow技术是目前SDN概念的最成功的一种实现方法。采用OpenFlow技术,将控制功能从网络设备中分离出来,在网络设备上维护流表(flow table)结构,数据分组按照流表进行转发,而流表的生成、维护、配置则由中央控制器来管理。OpenFlow的流表结构将网络处理层次扁平化,使得网络数据的处理满足细粒度的处理要求。在这种控制转发分离架构下,网络的逻辑控制功能和高层策略可以通过中央控制器灵活地进行动态管理和配置,可在不影响传统网络正常流量的情况下,在现有的网络中实现和部署新型网络架构。基于OpenFlow的SDN技术,通过软件平台来打造弹性化的可控互联网,在给网络的发展带来巨大冲击的同时,也为未来互联网的发展提供了一种新的解决思路。
[0004] OpenFlow的控制器,不仅仅是一个控制平面的集中。OpenFlow的控制器与交换机之间,有多种控制指令、应答、状态查询、状态上报、甚至是网络流中的初始数据包、无法响应的数据包、错误数据包以及一些统计信息等,都会实时发给控制器。OpenFlow存在很多安全威胁,首要
风险还是集中控制器(Controller)的脆弱性。其中,盲攻击将成为针对Controller的一种新DDoS变种威胁。在OpenFlow协议设计中,网络流量的首个报文,或对于流表(Flow table)中无法处理的异常数据包,交换机都会发给控制器。如果黑客利用这一特性:交换机会自动去找它们的Controller,不需要通过扫描明确Controller的IP、
位置等信息,然后攻击者往SDN网络中发送特定恶意的数据包,所有的OpenFlow交换机自动会把这些数据包发送给Controller,使得Controller瘫痪,达到一种盲DDoS攻击。
[0005] 盲DDoS攻击
时针对SDN网络的一种新型攻击威胁,传统的网络抗DDoS方法及设备不能解决SDN控制器的盲DDoS攻击问题。
发明内容
[0006] 有鉴于此,本发明公开了一种SDN控制器盲DDoS攻击防护方法及系统,解决了传统的网络抗DDoS方法不能够解决的盲DDoS攻击问题,能够检测和防护针对SDN网络控制器(Controller)的盲DDoS攻击。
[0007] 本发明的技术方案如下一种SDN控制器盲DDoS攻击防护方法,其步骤包括:
[0008] 1)采用不少于一个控制器组成控制器资源池,并由资源池监控器维护控制器状态列表,同时控制器获取所述控制器状态列表并下发到SDN交换机;
[0009] 2)SDN交换机根据所述控制器状态列表随机选择通信数据发往的控制器;
[0010] 3)
对流入SDN网络的通信数据流进行检测,当检测到盲DDoS攻击流时,根据发生盲DDoS攻击时的攻击流量大小,动态调节控制器的数量;
[0011] 4)提取该盲DDoS攻击流中的信息,进行攻击特征识别,生成对应的SDN交换机防护流表规则,根据控制器上SDN交换机上传的攻击首包记录,识别攻击来源信息,得到SDN交换机防护位置权重;
[0012] 5)将所述SDN交换机防护位置权重和SDN交换机防护流表规则结合得到防护策略,下发到相应交换机进行攻击拦截。
[0013] 更进一步,所述控制器状态分为:已工作状态Son、待工作状态Sready、和未工作状态Soff,按照如下方法维护控制器状态列表:
[0014] 将负载未饱和的可工作状态的控制器和待工作状态的控制器,定期生成可用控制器列表{Son,IPon}和/或{Sready,IPready},定期同步到各控制器和交换机中。
[0015] 更进一步,所述SDN交换机首次接入控制器时,在非盲DDoS攻击状态下,交换机优先选择标注已工作状态控制器{Son,IPon}进行通信;当发生盲DDoS攻击时,交换机优先随机选择待工作状态控制器{Sready,IPready}进行通信;当盲DDoS攻击停止时,交换机重新切换成从{Son,IPon}中选择控制器。
[0016] 更进一步,当发生盲DDoS攻击时,所述SDN交换机根据如下步骤选择控制器:
[0017] 1)对{Son,IPon}中任意单控制器的流量进行
阈值Hs匹配,判断当前工作的任意单控制器{Son,IPon}中盲DDoS数据流量是否超过性能预警线;
[0018] 2)对{Son,IPon}所有控制器的全部流量进行阈值Hall匹配,判断当前工作的所有控制器{Son,IPon}中盲DDoS数据流量是否超过性能预警线;
[0019] 3)若所述任意步骤1)、2)中数据流量超过性能预警线则现有控制器无法承受攻击流量,交换机进入随机选择多控制器模式;
[0020] 4)SDN交换机优先随机选择待工作状态控制器{Sready,IPready}进行通信增加控制器数量。
[0021] 更进一步,对流量超过性能预警线的盲DDoS攻击数据流中的数据包进行如下分析:
[0022] 如果大量首包为空目的IP数据包或者虚假目的IP首包,则检测为攻击进行攻击特提取;
[0023] 对于首包目的IP正常的数据包,如果数据包协议字段异常,则检测为攻击进行攻击特提取;
[0024] 对于目的IP和协议字段正常的数据包,则采用特征挖掘
算法,进行攻击识别。
[0025] 更进一步,手动设置和调整交换机的防护位置权重Psip,所述防护位置权重Psip取值范围为0~1之间的小数,权重越高,越接近攻击源头,其值越接近于1。
[0026] 更进一步,当检测到攻击停止时,设置一延迟时间Tcon通知控制器下发控制指令,撤销相应交换机上的防护策略。
[0027] 更进一步,所述交SDN换机随机选择通信数据发往的控制器的方法为:选择散列hash算法或者采用随机数生成算法与控制器ID取值范围内映射得到。
[0028] 本发明还提出一种SDN控制器盲DDoS攻击防护系统,包括:SDN控制器资源池监控器、部署在SDN交换机上的控制器列表动态切换模
块以及与控制器通过数据
接口进行数据交互攻击检测应用模块;
[0029] 所述SDN控制器资源池监控器,在由独立的控制器资源池监控
服务器上维护多个物理机和/或
虚拟机控制器的创建、数据同步、IP地址分配以及状态列表下发交换机;
[0030] 所述控制器列表动态切换模块根据下发的控制器列表,随机选择通信数据发往的控制器;
[0031] 所述攻击检测应用模块,统计分析控制器上收到的攻击流数据,将所述交换机防护位置权重和SDN交换机防护流表规则结合得到防护策略,下发防护规则到交换机流表进行攻击拦截;
[0032] 所述攻击检测应用模块对流入SDN网络的通信数据流进行检测,当检测到盲DDoS攻击流时,所述SDN控制器资源池监控器根据发生盲DDoS攻击时的攻击流量大小,动态调节控制器的数量;
[0033] 所述控制器列表动态切换模块根据所述SDN控制器状态列表在SDN交换机中随机选择通信数据发往的控制器。
[0034] 更进一步,所述控制器资源池监控模块和/或攻击检测应用模块与交换机进行隔离,且控制器资源池监控模块和/或攻击检测应用模块所在的服务器IP地址对交换机隐藏,不接收交换机发送数据。
[0035] 本发明的积极效果为:
[0036] 本发明公布的一种SDN控制器盲DDoS攻击防护方法及系统,针对SDN控制器所面临的特殊拒绝服务攻击(盲DDoS攻击)的特点,采用多控制器资源池,可以随攻击流量大小动态增加控制器数量,检测并防御异常目标攻击流,有效防护针对控制器的盲DDoS攻击,保障SDN网络的可用性。如果不是分散了多个控制器,则所有攻击流量都会发送给控制器,这样就比发明方案中很少的攻击流量危害要大。在本发明中采用多控制器后,每个控制器上,只有很少一部分攻击流量。
附图说明
[0037] 图1为本发明SDN控制器盲DDoS攻击防护系统组成结构示意图。
[0038] 图2为本发明SDN控制器盲DDoS攻击防护方法的一
实施例中攻击时随机选择控制器的
流程图。
[0039] 图3为本发明SDN控制器盲DDoS攻击防护方法一实施例中盲DDoS攻击检测流程图。
具体实施方式
[0040] 下面结合附图和实施例对本发明作进一步描述。
[0041] 本发明的系统包含一个SDN控制器资源池监控器,控制器列表动态切换模块以及攻击检测应用模块。
[0042] 由资源池监控器负责维护控制器的创建、数据同步、IP地址分配以及状态列表,并根据监控的盲DDoS流量大小,动态增加备用控制器数量;
[0043] SDN交换机上的控制器列表动态切换模块根据SDN控制器下发过来的控制器列表,随机选择通信数据发往的控制器;
[0044] 攻击检测应用模块在攻击检测
应用服务器上,是控制器的上层应用,与控制器通过北向接口进行数据交互。攻击检测应用模块统计分析控制器上收到的攻击流数据,产生防护规则,由控制器下发防护规则到交换机流表进行攻击拦截。
[0045] 本发明采用多控制器资源池,可以随攻击流量大小动态增加控制器数量,能够有效防护针对控制器的盲DDoS攻击,保障SDN网络的可用性。
[0046] 由多个控制器构成了控制器资源池,由资源池监控器统一监控、维护。控制器资源池可以随时加入新的控制器,控制器资源池监控器动态更新可用控制器列表,标记控制器的状态为已工作状态Son、待工作状态Sready、和未工作状态Soff。控制器资源池监控器将负载未饱和的可工作状态的控制器和待工作状态的控制器,定期生成可用控制器列表{Son,IPon}、{Sready,IPready},定期同步到各控制器中,由控制器下发并更新到各个SDN交换机中。
[0047] 在本发明一实施例中加入到控制器资源池中的控制器,可以是物理机,也可以是虚拟机。
[0048] 在本发明一实施例中交换机随机选择控制器的方法,采用散列hash算法;也可以选择随机数生成算法与控制器ID取值范围内映射得到。
[0049] 同时,控制器资源池监控模块与交换机进行隔离,其IP对交换机隐藏,不接收任何交换机发送的数据,不直接与任何交换机通信,不受盲DDoS攻击数据流影响。
[0050] 控制器列表动态切换模块部署在SDN交换机中,负责选择与之通信的控制器。控制器列表动态切换模块使得SDN交换机可以根据SDN控制器资源池监控器下发过来的控制器列表,随机选择通信数据发往的控制器。当SDN交换机在首次接入一个控制器时,控制器从资源池监控器中获取最新的控制器列表下发到交换机,在非盲DDoS攻击状态下,交换机优先选择一个标注已工作状态控制器{Son,IPon}进行通信;当发生盲DDoS攻击时,交换机将优先随机选择待工作状态控制器{Sready,IPready}进行通信;当盲DDoS攻击停止是,交换机重新切换成从{Son,IPon}中选择控制器。
[0051] 攻击检测应用模块,实时收集控制器资源池中各个控制器中的数据,对这些数据比对阈值,做攻击检测分析。与所有{Son,IPon}、{Sready,IPready}状态的控制器进行通信,当控制器资源池中控制器发生变更时,控制器资源池监控模块将控制器列表同步到攻击检测应用模块。攻击检测应用模块对统计分析控制器上收到的攻击流数据,产生防护规则,下发防护规则到特定交换机的流表,进行攻击拦截。
[0052] 进一步而言,攻击检测应用模块分析盲DDoS攻击的方法,按照如下步骤进行:
[0053] 步骤1:监控统计{Son,IPon}中任意一个单控制器的流量,与阈值Hs进行匹配;若超过性能预警线,则进入步骤3。
[0054] 步骤2:监控统计{Son,IPon}中所有控制器的共同的流量,与阈值Hall匹配;若超过性能预警线,则进入步骤3。
[0055] 步骤3:对超过性能预警线的数据流,进行数据包分析,如果大量首包为空目的IP数据包,或虚假目的IP首包,则检测为攻击;反之,如果首包目的IP正常,进入步骤4。
[0056] 步骤4:对于目的IP正常的数据包,分析数据包协议字段是否异常,如果异常,则检测为攻击;如果协议字段正常,则进入步骤5。
[0057] 步骤5:对于目的IP和协议字段正常的数据包,用特征挖掘算法,进行攻击识别。
[0058] 步骤6:从控制器上查找交换机上报的攻击首包记录,识别攻击来源信息,计算与交换机的防护位置权重Psip,取值范围为0~1之间的小数,权重越高,越接近攻击源头,其值越接近于1。
[0059] 步骤7:将攻击防护特征和交换机防护位置权重结合,形成防护策略,从攻击检测应用模块分发给工作状态的控制器,由控制器下发到相应交换机。
[0060] 攻击检测应用模块还可以按照如下的方式进行优化:
[0061] 攻击检测应用模块中可以手动设置和调整交换机的防护位置权重Psip。
[0062] 交换机对生效的盲DDoS攻击防护策略进行实时监控和反馈给控制器,当监测到攻击停止时,则攻击检测应用模块等待一段Tcon延迟时间后,通知控制器下发控制指令,将交换机上的防护策略撤销。同样的,攻击检测应用模块与交换机进行隔离,其IP对交换机隐藏,不接收任何交换机发送的数据,不直接与任何交换机通信,不受盲DDoS攻击数据流影响。
[0063] 如图1所示本发明SDN控制器盲DDoS攻击防护系统组成结构示意图,包含一个SDN控制器资源池监控器,控制器列表动态切换模块,攻击检测应用模块;其中,
[0064] 所述SDN控制器资源池监控器负责维护控制器的创建、数据同步、IP地址分配以及状态列表,并根据监控的盲DDoS流量大小,动态增加备用控制器数量;多个控制器构成了控制器资源池,由资源池监控器统一监控、维护。控制器资源池可以随时加入新的控制器,控制器资源池监控器动态更新可用控制器列表,标记控制器的状态为已工作状态Son、待工作状态Sready、和未工作状态Soff。控制器资源池监控器将负载未饱和的可工作状态的控制器和待工作状态的控制器,定期生成可用控制器列表{Son,IPon}、{Sready,IPready},定期同步到各控制器中,由控制器下发并更新到各个SDN交换机中。加入到控制器资源池中的控制器,可以是物理机,也可以是虚拟机。
[0065] 所述控制器列表动态切换模块(Lc切换模块)使得SDN交换机可以根据SDN控制器资源池监控器下发过来的控制器列表,随机选择通信数据发往的控制器;控制器列表动态切换模块部署在SDN交换机中,负责选择与之通信的控制器。SDN交换机在首次接入一个控制器时,控制器从资源池监控器中获取最新的控制器列表下发到交换机,在非盲DDoS攻击状态下,交换机优先选择一个标注已工作状态控制器{Son,IPon}进行通信;当发生盲DDoS攻击时,交换机将优先随机选择待工作状态控制器{Sready,IPready}进行通信;当盲DDoS攻击停止时,交换机重新切换成从{Son,IPon}中选择控制器。
[0066] 如图2所示是本发明SDN控制器盲DDoS攻击防护方法的一实施例中攻击时随机选择控制器的流程图,在发生盲DDoS攻击时,交换机根据SDN控制器资源池下发的控制器列表随机选择控制器,其流程为:
[0067] 步骤1:攻击检测应用模块监控针对控制器的DDoS攻击,如果是针对控制的盲DDoS攻击,则进入步骤3;非盲DDoS攻击,则进入步骤2。
[0068] 步骤2:启动非盲DDoS攻击的检测防护处理,进入步骤6。
[0069] 步骤3:判断当前工作的单控制器{Son,IPon}的盲DDoS流量是否超过预警线,如果未超过,则进入步骤5;如果超过,则进入步骤4。单个控制器不能承受大流量攻击时,才进入步骤4)。步骤4)是启动多个控制器,先使得每个控制器上的攻击流量变的很少,然后再去步骤5)检测盲DDoS攻击,防止在攻击还没拦截时,单控制器已经被攻击瘫痪了。
[0070] 步骤4:控制器通知交换机启动多控制器策略,增加了控制器的数量,单个控制器无法承受攻击流量时,启动多个控制器,减少每个控制器上分担的流量。交换机将优先随机选择待工作状态控制器{Sready,IPready}进行通信,其中交换机随机选择控制器的算法,采用散列hash算法,也可以选择随机数生成算法与控制器ID取值范围内映射得到。控制器资源池监控器将维护控制器列表{Son,IPon}、{Sready,IPready},并根据负载情况,调整控制器资源池中可用控制器数量;当控制器资源池中{Son,IPon}、{Sready,IPready}状态的控制器发生变更时,控制器资源池监控模块将控制器列表同步到攻击检测应用模块。
[0071] 步骤5:攻击检测应用模块从工作的控制器中采集攻击数据,启动盲DDoS攻击检测和防御流程,生成防护规则和防护策略,下发交换机进行攻击拦截。
[0072] 步骤6:监测攻击是否停止:如果未停止,则返回步骤1;否则,进入步骤7。
[0073] 步骤7:攻击结束,通知交换机,重新选择{Son,IPon}状态的控制器,退出随机选择控制器模式。
[0074] 攻击检测应用模块对统计分析控制器上收到的攻击流数据,产生防护规则,下发防护规则到特定交换机的流表,进行攻击拦截。如图3所示是本发明SDN控制器盲DDoS攻击防护方法一实施例中盲DDoS攻击检测流程图。攻击检测应用模块,实时收集控制器资源池中各个控制器中的数据,对这些数据比对阈值,做攻击检测分析。攻击检测应用模块分析盲DDoS攻击的方法,按照如下步骤进行:
[0075] 步骤1:对超过性能预警线的盲DDoS攻击数据流,进行数据包分析,如果大量首包为空目的IP数据包,或虚假目的IP首包,进入步骤2;反之,如果首包目的IP(IP头)正常,进入步骤3。
[0076] 步骤2:对于大量首包为空目的IP数据包,或虚假目的IP首包,提取攻击特征(其中特征为IP包头中能够标识攻击IP的字段,如源IP、源端口、TTL、长度等),进入步骤5。
[0077] 步骤3:对于目的IP正常的数据包,分析数据包协议字段是否异常,如果异常,则进入步骤4;如果协议字段正常,则进入步骤5;
[0078] 步骤4:参照控制器全局流表,对于协议字段异常的数据包,提取攻击特征,进入步骤5;
[0079] 步骤5:对于目的IP和协议字段正常的数据包,用特征挖掘算法,进行攻击识别;
[0080] 步骤6:汇总攻击特征,生成与之对应的交换机攻击防护流表规则,能对攻击数据流进行丢弃、拦截、阻断。
[0081] 步骤7:对识别的攻击源信息,计算与交换机的防护位置权重Psip,权重越高,越接近攻击源头;所述攻击源信息就是攻击流最先从哪个交换机传递的,每个最新的攻击数据到达SDN网络时,SDN交换机都会上报首包到控制器,所以从控制器上可以查到攻击来源信息。攻击源信息能够帮助计算SDN交换机的防护位置权重。
[0082] 步骤8:将攻击防护流表规则和交换机防护位置权重结合,形成防护策略,从攻击检测应用模块分发给工作状态的控制器,由控制器下发到相应交换机,以最接近攻击源头的位置进行攻击防御。
[0083] 以上所述本发明的具体实施方式目的是为了更好地理解本发明的使用,并不构成对本发明保护范围的限定。任何在本发明的精神和原则实质之内所做的
修改、
变形和等同替换等,都应属于本发明的
权利要求的保护范围之内。