发明内容
本发明的目的是提供一种SDN网络架构,以解决现有网络中大量DDoS攻击所造成的网络安全问题,以实现快速、高效、全面地识别与防御DDoS攻击。
为了解决上述技术问题,本发明提供了一种SDN网络架构,包括:应用平面、数据平面和控制平面;其中
数据平面,当位于数据平面中任一IDS设备检测到攻击威胁时,通知应用平面进入到攻击类型分析流程;
应用平面,用于对攻击类型进行分析,并根据攻击类型定制相应的攻击威胁处理策略;
控制平面,为应用平面提供攻击威胁处理接口,并为数据平面提供最优路径计算和/或攻击威胁识别接口。
本发明的有益效果:本发明将DDoS威胁监测、威胁防护、路由优化等业务功能模块分别部署于数据平面、控制平面和应用平面。可使网络在遭受大规模DDoS威胁时,能够根据链路的实时状况实现路由优化的流量转发,同时迅速准确的进行DDoS威胁识别和处理响应,全面保障网络通信质量。
又一方面,本发明还提供了一种SDN系统,以解决防御DDoS攻击的技术问题。
为了解决上述技术问题,本发明提供了一种SDN系统,包括:控制器、IDS决策服务器、分布式的IDS设备和流量清洗中心;当任一IDS设备检测到具有DDoS攻击特征的报文时,即通过SSL通信信道上报至IDS决策服务器;所述IDS决策服务器根据上报信息,制定出与具有DDoS攻击特征的报文对应的处理策略,然后将该报文通过控制器屏蔽或者将该报文所对应的交换机接入端口流量重定向到流量清洗中心进行过滤。
优选的,为了在IDS设备中实现DDoS检测,所述IDS设备内包括:欺骗报文检测模块,对链路层和网际层地址的欺骗行为进行检测;破坏报文检测模块,对网际层和传输层标志位设置的异常行为进行检测;异常报文检测模块,对应用层和传输层泛洪式攻击行为进行检测;通过所述欺骗报文检测模块、破坏报文检测模块、异常报文检测模块依次对报文进行检测;且若任一检测模块检测出报文存在上述相应行为时,则将该报文转入IDS决策服务器。
优选的,所述IDS决策服务器适于当报文具有欺骗行为,且攻击威胁在OpenFlow域中,则通过控制器屏蔽主机;或当攻击威胁不在OpenFlow域中,则通过控制器将该报文所对应的交换机接入端口流量重定向至流量清洗中心进行过滤;所述IDS决策服务器还适于当报文具有异常行为,则通过控制器对攻击程序或攻击主机的流量进行屏蔽;以及当报文具有泛洪式攻击行为,则所述IDS决策服务器适于通过控制器将该报文所对应的交换机接入端口流量重定向至流量清洗中心进行过滤。
第三方面,本发明还提供了一种融合DDoS威胁过滤与路由优化的SDN系统的工作方法,以解决对DDoS攻击的分布式监测,在制定相应威胁处理策略的技术问题。
为了解决上述技术问题,本发明还提供了一种融合DDoS威胁过滤与路由优化的SDN系统的工作方法,包括如下步骤:
步骤S100,网络初始化;步骤S200,分布式DDoS威胁监测;以及步骤S300,威胁处理和/或路由优化。
优选的,为了更好的实现网络配置,所述步骤S100中网络初始化所涉及的装置包括:控制器、IDS决策服务器和分布式的IDS设备;
网络初始化的步骤如下:
步骤S101,所述IDS决策服务器与各IDS设备建立专用的SSL通信信道;
步骤S102,所述控制器构建网络设备信息绑定表,并且将网络设备信息绑定表实时更新到各IDS设备中;
步骤S104,所述控制器下发镜像策略的流表,即将OF交换机所有拖载有主机的端口流量镜像转发给网域内对应的IDS设备;以及
步骤S105,所述控制器下发DDoS威胁识别规则给每个网域中对应的各IDS设备。
优选的,所述步骤S200中分布式DDoS威胁监测的方法包括:
依次对链路层和网际层地址的欺骗行为,网际层和传输层标志位设置异常行为,以及
应用层和传输层的泛洪式攻击行为进行检测;
若上述过程中任一检测判断出报文存在相应行为时,则将该报文转入步骤S300。
优选的,对链路层和网际层地址的欺骗行为进行检测的方法包括:
通过欺骗报文检测模块对欺骗行为进行检测,即
首先,通过欺骗报文检测模块调用网络设备信息绑定表;
其次,通过欺骗报文检测模块将封装在Packet-In消息中报文的类型进行解析,以获得相应的源、目的IP地址、MAC地址以及上传此Packet-In消息的交换机DPID号和端口号,并将上述各信息分别与网络设备信息绑定表中的相应信息进行比对;
若报文中的上述信息匹配,则将报文进行下一检测;
若报文中的上述信息不匹配,则将报文转入步骤S300;
所述网际层和传输层标志位设置异常行为进行检测的方法包括:
通过破坏报文检测模块对标志位设置异常行为进行检测,即
对报文的各标志位进行检测,以判断各标志位是否符合TCP/IP协议规范;
若报文的各标志位符合,则将报文转入进行下一检测;
若报文的各标志位不符合,则将报文转入步骤S300;
所述应用层和传输层的泛洪式攻击行为进行检测的方法包括:
通过异常报文检测模块对泛洪式攻击行为进行检测,即
在异常报文检测模块构建用于识别泛洪式攻击报文的哈希表,并根据该哈希表中设定的阀值判断报文是否具有泛洪式攻击行为,且将判断结果转入步骤S300。
优选的,所述步骤S300中威胁处理和/或路由优化的方法包括:
若报文具有欺骗行为,且攻击威胁在OpenFlow域中,则所述IDS决策服务器适于通过控制器屏蔽主机;以及当攻击威胁不在OpenFlow域中,则通过控制器将该报文所对应的交换机接入端口流量重定向至流量清洗中心进行过滤;
若报文具有异常行为,则所述IDS决策服务器通过控制器对攻击程序或攻击主机的流量进行屏蔽;
若报文具有泛洪式攻击行为,则所述IDS决策服务器通过控制器将该报文所对应的交换机接入端口流量重定向至流量清洗中心进行过滤;和/或
根据链路负载系数计算出优化路径,即检测两相邻节点的链路剩余带宽,获得该链路的负载系数,在根据该负载系数和初始化的网络拓扑图获得任意两点的最优路径,所述控制器根据该最优路径得出对应的转发流表并下发各交换机。
优选的,所述IDS决策服务器屏蔽发送报文的程序和/或主机的方法包括:
首先,构建计数用的相应哈希表及设定相应阈值,即
单位时间内,所述IDS决策服务器中构建对欺骗行为进行计数的第一哈希表,标志位设置异常行为进行计数的第二哈希表,以及对泛洪式攻击行为进行计数的第三哈希表;
同时设定第一、第二、第三哈希表中的第一、第二、第三阀值;
其次,屏蔽发送该报文的程序和/或主机,即
针对转入IDS决策服务器的报文的行为,利用相应哈希表进行计数,当计数值超过相应阀值时,屏蔽发送该报文的程序和/或主机。
本发明的有益效果:(1)本发明将DDoS威胁过滤技术与路由优化技术融合,在进行监测、屏蔽DDOS攻击时,并不会造成数据的拥堵,并且通过将监测和威胁处理分开,有效的减轻了控制层面的负担,保证了网络更安全、高校的运行;(2)本发明使得传统网络体系架构下无法对地址伪造DDoS攻击进行识别与溯源的难题从根本上得到了解决。在网络中存在DDoS攻击或正常大流量业务的情况下,控制器可基于对链路剩余带宽等网络参数的实时感知,实现对正常流量的路由优化,大幅提升用户的体验;(3)本发明的处理架构采用可扩展的模块化设计,实现了对DDoS威胁的高效检测和灵活处理;(4)各模块获取数据包信息采用独立的接口设计,降低了模块间的耦合关联性;(5)各模块使用优化的程序数据结构,细致分割各处理子流程,提升了模块的高内聚特性。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
图1示出了软件定义网络中数据层的原理框图。
如图1所示,在软件定义网络(Software Defined Network,SDN)架构中,当一个报文(Packet)到达交换机的时候,首先对交换机中所带的流表进行匹配。如果匹配成功,就按照流表指定的动作执行转发规则。如果匹配失败,则交换机将该报文封装在Packet In消息中,发送给控制器,并且交换机将此报文存在本地缓存中。等待控制器作出决策,如何处理此报文。
网络中有很多主机,则需要建立一张针对网络中所有主机为键的哈希表,称之为“违规次数哈希表组”,其包括:适于对欺骗报文进行计数的第一哈希表,适于对破坏报文进行计数的第二哈希表,适于对泛洪式攻击进行计数的第三哈希表。记录对应主机的违规次数,也就是主机的诚信度。
网络中的数据包是实时的,所以需要建立一种单位时间内的威胁报文计数的哈希表,并且每个主机对应一个哈希表中的一个键,对应的键值是记录的单位时间内对应键的主机发送的威胁数据包的个数。此类哈希表在单位时间“时间片”开始时候必须将哈希表内所有键对应的键值置0;且每种检测的报文都需要有这样的一张表,就比如说检测了100种报文,就需要有100个此类的哈希表。
而且,每个哈希表必须有一个对应的阈值。哈希表中只要一有主机在相应值中累加计数。计数后检查该值是否超过设定的阈值。如果超过相应的阈值,则在违规次数哈希表对应记录中的键值计数。
并且,每个哈希表的阈值,哈希表时间片长度等参数都是可以通过接口调节的。
例如:主机的哈希表为:
单位时间欺骗报文计数哈希表
单位时间破坏报文计数哈希表
单位时间SYN计数哈希表
单位时间UDP Flood计数哈希表
单位时间ICMP Flood计数哈希表
……
以上所有的哈希表都是单位时间计数表,时间片计数开始会将所有对应键值置0;
违规次数哈希表
在上述发明原理的基础上,本实施例的具体实施过程如下。
实施例1
本实施例1提供了一种SDN网络架构,包括:应用平面、数据平面和控制平面;其中数据平面,当位于数据平面中任一IDS设备(即入侵检测设备)检测到攻击威胁时,通知应用平面进入到攻击类型分析流程;应用平面,用于对攻击类型进行分析,并根据攻击类型定制相应的攻击威胁处理策略;控制平面,为应用平面提供攻击威胁处理接口,并为数据平面提供最优路径计算和/或攻击威胁识别接口。
所述攻击威胁包括但不限于:DDOS攻击威胁。
应用平面的关于攻击类型分析、攻击威胁处理策略,数据平面的攻击行为监测、攻击威胁屏蔽和路由优化,以及控制平面的攻击威胁处理、攻击威胁识别和最优路径计算将在下面的实施例中展开。
其中,应用平面可以通过IDS决策服务器来实现,控制平面通过控制器来实现。
实施例2
实施例2提供了一种SDN系统,包括:控制器、IDS决策服务器、分布式的IDS设备和流量清洗中心;当任一IDS设备检测到具有DDoS攻击特征的报文时,即通过SSL通信信道上报至IDS决策服务器;所述IDS决策服务器根据上报信息,制定出与具有DDoS攻击特征的报文对应的处理策略,然后将该报文通过控制器屏蔽或者将该报文所对应的交换机接入端口流量重定向到流量清洗中心进行过滤。
其中,DDoS攻击特征定义为:对链路层和网际层地址的欺骗行为、对网际层和传输层标志位设置的异常行为,以及对应用层和传输层泛洪式攻击行为。
图2示出了基于SDN架构的DDoS攻击识别与防护系统的原理框图。
如图2所示,进一步,所述IDS设备内包括:
欺骗报文检测模块,对链路层和网际层地址的欺骗行为进行检测;
破坏报文检测模块,对网际层和传输层标志位设置的异常行为进行检测;
异常报文检测模块,对应用层和传输层泛洪式攻击行为进行检测;
通过所述欺骗报文检测模块、破坏报文检测模块、异常报文检测模块依次对报文进行检测;且若任一检测模块检测出报文存在上述相应行为时,则将该报文转入IDS决策服务器。
进一步,所述IDS决策服务器适于当报文具有欺骗行为,且攻击威胁在OpenFlow域中,则通过控制器屏蔽主机;或当攻击威胁不在OpenFlow域中,则通过控制器将该报文所对应的交换机接入端口流量重定向至流量清洗中心进行过滤;所述IDS决策服务器还适于当报文具有异常行为,则通过控制器对攻击程序或攻击主机的流量进行屏蔽;以及当报文具有泛洪式攻击行为,则所述IDS决策服务器适于通过控制器将该报文所对应的交换机接入端口流量重定向至流量清洗中心进行过滤。
本发明采用从欺骗报文检测模块到破坏报文检测模块,再到异常报文检测模块依次检测的顺序,其中,各模块获取数据包信息采用独立的接口设计,降低了模块间的耦合关联性;并且各模块使用优化的程序数据结构,细致分割各处理子流程,提升了模块的高内聚特性。这种检测顺序提高了对报文数据的检测效率,以及降低了漏检率。
图3示出了欺骗报文检测模块的工作流程图。
如图3所示,通过所述欺骗报文检测模块调用网络设备信息绑定表,并在所述IDS决策服务器中构建单位时间内的适于对报文欺骗行为进行计数的第一哈希表,以及设定该第一哈希表中的第一阀值;所述欺骗报文检测模块,将封装在Packet-In消息中的报文的类型进行解析,以获得相应的源、目的IP地址、MAC地址以及上传Packet-In消息的交换机DPID号和端口号信息,并将各信息分别与网络设备信息绑定表中的相应信息进行比对;若报文中的上述信息匹配,则将报文转入破坏报文检测模块;若报文中的上述信息不匹配,则转入所述IDS决策服务器,对报文进行丢弃,并同时对欺骗行为进行计数,当该计数值超过第一阀值时,屏蔽发送该报文的程序和/或主机。
具体的,所述欺骗报文检测模块用于对报文进行第一次判断,即判断报文是否是IP欺骗攻击报文、端口欺骗攻击报文或MAC欺骗攻击报文。
具体步骤包括:首先在以太网帧中解析出源、目的MAC地址和交换机入口,然后根据不同的报文类型解析出不同的报文。当报文类型为IP、ARP、RARP时,则解析出相应的源、目的IP地址然后将这些信息对网络设备信息绑定表中的信息进行查表匹配,如果匹配到相应的信息,则交给破坏报文检测模块处理。若不匹配,则将该报文转入IDS决策服务器处理;并同时对欺骗行为进行累加计数,当该计数值超过第一阀值时,屏蔽发送该报文的程序和/或主机。
Floodlight中有一个设备管理器模块DeviceManagerImpl,当一个设备在网络中移动设备的时候跟踪设备,并且根据新流定义设备。
设备管理器从PacketIn请求中得知设备,并从PacketIn报文中获取设备网络参数信息(源、目的IP、MAC、VLAN等信息),通过实体分类器将设备进行区分为交换机或主机。默认情况下实体分类器使用MAC地址和/或VLAN表示一个设备,这两个属性可以唯一的标识一个设备。另外一个重要的信息是设备的安装点(交换机的DPID号和端口号)(,在一个openflow区域中,一个设备只能有一个安装点,在这里openflow区域指的是和同一个Floodlight实例相连的多个交换机的集合。设备管理器也为IP地址、安装点、设备设置了过期时间,最后一次时间戳作为判断它们是否过期的依据。)
故网络设备信息绑定表模块里面只需调用DeviceManagerImpl模块提供的IDeviceService即可,同时向该服务添加IDeviceListener的监听接口即可。
其中IDeviceListener提供的监听接口有:
接口名 |
功能 |
public void deviceAdded(IDevice device) |
主机添加响应 |
public void deviceRemoved(IDevice device) |
主机移除响应 |
public void deviceMoved(IDevice device) |
主机移动响应 |
public void deviceIPV4AddrChanged(IDevice device) |
主机IP地址改变响应 |
public void deviceVlanChanged(IDevice device) |
主机VLAN改变响应 |
服务提供者:IFloodlightProviderService,IDeviceService
依赖接口:IFloodlightModule,IDeviceListener
表内的记录根据交换机的高低电平触发机制(网线拔出触发Port Down的低电平,网线拔入触发Port Up的高电平)可以实时刷新绑定表中的记录。
传统的DDoS攻击无法触及、修改Switch DPID和Switch Port的信息,利用此优势,可以更加灵活的检测欺骗攻击。
图4示出了破坏报文检测模块的工作流程图。
如图4所示,在所述IDS决策服务器中构建单位时间内的适于对报文的标志位设置异常行为进行计数的第二哈希表,以及设定该第二哈希表中的第二阀值;所述破坏报文检测模块对报文的各标志位进行检测,以判断各标志位是否符合TCP/IP协议规范;若报文的各标志位符合,则将报文转入异常报文检测模块;若报文的各标志位不符合,则转入所述IDS决策服务器,对报文进行丢弃,并同时对标志位设置异常行为进行计数,当该计数值超过第二阀值时,屏蔽发送该报文的程序和/或主机。
具体的,所述破坏报文检测模块,用于对报文进行第二次判断,即判断报文是否为具有恶意标志位特征的攻击报文。其中,具有恶意标志位特征的攻击报文包括但不限于IP攻击报文、TCP攻击报文。实施步骤包括:对IP攻击报文及其中的TCP/UDP攻击报文实现各个报文的标志位的检测,即识别各标志位是否符合TCP/IP协议规范。如果符合的话,就直接交由异常数报文检测模块处理。若不符合,则判断为攻击报文,转入IDS决策服务器处理。
以Tear Drop等典型攻击为列,在IP包头中有一个偏移字段和一个分片标志(MF),若攻击者把偏移字段设置成不正确的值,IP分片报文就会出现重合或断开的情况,目标机系统就会崩溃。
在IP报文头中,有一协议字段,该字段指明了该IP报文承载了何种协议。该字段的值是小于100的,如果攻击者向目标机发送大量的带大于100的协议字段的IP报文,目标机系统中的协议栈就会受到破坏,形成攻击。
故在破坏报文检测模块中,首先提取出报文的各标志位,然后检查是否正常。
如果正常,则交给后续模块处理。
如果不正常,则丢弃该数据包,并对相应哈希表计数器计数。如果单位时间内计数器超过设定的所述第二阀值时,则调用IDS决策服务器对相应的程序进行屏蔽和/或直接屏蔽相应的主机。
通过欺骗报文检测模块的数据包滤除之后,后续的破坏报文检测模块所处理的数据包中的地址都是真实的。这样,有效的避免了目标机收到了破坏报文,可能直接导致目标机的协议栈崩溃,甚至目标机直接崩溃。
破坏报文检测模块的处理功能与欺骗报文检测处理流程大致相似,区别在于破坏报文检测模块解析出的是各个报文的标志位,然后检测各个标志位是否正常。
如果正常的话,就直接给后续的异常报文检测模块处理。
如果不正常,则丢弃该数据包,并且对主机应用征信机制相应的哈希表内计数器计数。如果超过设定的阀值,则屏蔽相应的攻击程序或者直接屏蔽攻击主机。
在所述异常报文检测模块构建用于识别泛洪式攻击报文的哈希表,在所述IDS决策服务器中构建单位时间内的适于对泛洪式攻击行为进行计数的第三哈希表,以及设定该第三哈希表中的第三阀值;所述异常报文检测模块,适于根据所述哈希表中设定的阀值判断所述报文是否具有攻击行为;若无攻击行为,则将数据下发;若具有攻击行为,则转入所述IDS决策服务器,对报文进行丢弃,并同时对攻击行为进行计数,当计数值超过第三阀值时,屏蔽发送该报文的程序和/或主机。
具体的,所述异常报文检测模块,用于对报文进行第三次判断,即判断报文是否是泛洪式攻击报文。
具体步骤包括:利用对构建的识别泛洪式攻击报文的对哈希表内的相应记录进行累加,并检测是否超过阈值,以判断是否是泛洪式攻击报文。
经过上述欺骗报文检测模块、破坏报文检测模块两个模块的滤除,后续模块处理的数据包基本属于正常情况下的数据包。然而,正常情况下,也会有DDoS攻击产生,在现有技术中,一般仅进行欺骗报文检测模块、破坏报文检测模块,而在本技术方案中,为了尽可能的避免DDoS攻击。
以下实施例对在进行欺骗报文检测模块、破坏报文检测模块过滤后,再通过异常报文检测模块屏蔽DDoS攻击的具体实施方式。该实施方式以UDP Flooding和ICMPFlooding为例。
图5示出了UDP Floodling的检测流程图。
关于UDP Floodling,如图5所示,利用UDP协议无需建立连接的机制,向目标机发送大量UDP报文。目标机会花费大量的时间处理UDP报文,这些UDP攻击报文不但会使存放UDP报文的缓存溢出,而且也会占用大量的网络带宽,目标机无法(或很少)接收到合法的UDP报文。
由于不同的主机向单一主机发送大量UDP数据包,所以肯定会有UDP端口占用的情况,所以本技术方案可以接收到一个ICMP的端口不可达包。
所以本技术方案可以对所有主机建立一个哈希表,专门用来存放单位时间内收到ICMP端口不可达包的次数。如果超过设定的阀值,则直接屏蔽相应的攻击程序。
图6示出了ICMP Floodling的检测流程图。
关于ICMP Floodling,如图6所示,对于ICMP Flooding直接进行单位时间内计数。如果超过相应的阀值,则直接对相应主机进行相应屏蔽,该方法虽然简单,但是直接有效。
因此,异常报文检测模块,如果检测到的报文类型是异常报文检测类型,则进行相应的计数器检测是否超过阈值,如果没有超过阈值,也可对该数据包通过最优的路由策略下发。如果超过了阈值,则屏蔽相应的攻击程序,或直接对相应主机进行相应屏蔽。
所述欺骗报文检测模块、破坏报文检测模块和异常报文检测模块中任一模块判断所述报文为上述攻击报文时,则将该攻击报文转入IDS决策服务器,即,丢弃所述报文,并屏蔽发送该报文的程序和/或主机。
当“欺骗报文检测模块”、“破坏报文检测模块”和“异常报文检测模块”需要丢弃数据包或者需要屏蔽威胁主机的时候。直接调用IDS决策服务器进行相应的威胁处理操作。
所述IDS决策服务器的具体的实施步骤包括:
丢弃所述报文,即丢弃数据包的步骤包括如下:
OpenFlow交换机在未匹配到相应的流表情况下,会将该数据包封装在Packet In消息中,同时交换机会将此数据包存在本地的缓存中,数据包存放在缓存中,有一个缓存区ID号,这个ID号也会封装在Packet In消息的buffer_id中,通过Packet out的形式,同时Packet out消息内的buffer_id填写要丢弃的数据包的缓存区ID(对应的Packet In消息中的buffer_id)。
屏蔽主机的步骤包括如下:
OpenFlow协议流表结构如下:
其中包头域的结构为:
IDS决策服务器中包括对应用程序进行屏蔽的步骤包括如下:
步骤1:在流表的包头域中填写相应匹配字段,并且通过设置Wildcards屏蔽字段,来获取屏蔽攻击程序或主机信息。其中,如需屏蔽攻击程序,则在流表包头域中填写下列匹配字段:IP、MAC、VLAN、Swtich DPID、Swtich Port、协议类型及其端口号等。如需屏蔽主机,则在流表包头域中填写:IP、MAC、VLAN、Swtich DPID、Swtich Port等匹配字段。
步骤2:将流表动作列表置空,实现攻击程序/主机的数据包丢弃。
步骤3:调用各哈希表中的记录值,计算出流表超时自动删除时间。
步骤4:下发流表屏蔽程序或主机。
因此,本技术方案的网络可有效识别并滤除攻击包。
可选的,在经过上述各模块之后,将正常报文的实时最优路由策略的下发。
具体步骤如下:
首先进入步骤S1来向控制器的拓扑接口(API)提交获取请求,然后通过步骤S2来获取全网拓扑。
然后,通过进行全网链路状态的获取。首先进入步骤S3,然后通过步骤S10来获取全网链路状态,然后计算出全网链路剩余带宽。
然后就是实时最优路径的计算,算法采用经典的Dijkstra算法,算法的权值改为上一步获取的全网链路剩余带宽的倒数,这样就能保证计算出的路径是最通畅,传输时延最小的路径。(最优路径的具体算法参见实施例3中相关内容)
最后,将计算出的最优路径转换成由流表组成的实时最优路径策略,通过步骤S11下发。
步骤S1使用的是拓扑接口,一种控制器自带的API接口,使用LLDP(链路层发现协议)和广播包发现链路,然后控制器自动计算出网络拓扑。
步骤S2控制器的拓扑接口向“实时最优路径计算模块”的“全网拓扑获取模块”拓扑获取请求的反馈。
步骤S3中,“全网链路状态获取模块”向“交换机查询接口模块”提出请求,获取全网链路状态。其中,“交换机查询接口模块”是在控制器自带的“交换机特性查询模块”和“交换机状态查询模块”基础上拓展而来,实现了链路剩余带宽的计算及查询功能。
然后,“交换机查询模块”通过步骤S4向网络中所有交换机发送交换机特性请求的广播包。再通过步骤S5来接收来自网络中交换机特性反馈的报文,解析出报文里面的curr字段,得到每个交换机端口当前带宽B。
接下来,该模块通过步骤S6向网络中所有交换机发送交换机状态请求的广播包,包括端口发送包数、端口发送字节数、端口接收字节数、端口接收包数等报文状态。接着,该模块通过步骤S7接收来自网络中交换机状态反馈的报文,解析出tx_bytes字段,得到发送字节数N1,获取当前时间t1。
接下来,该模块通过步骤S8向网络中所有交换机发送交换机状态请求的广播包,接着,该模块通过S9接收来自网络中交换机状态反馈的报文,计时停止,获取当前时间t2。解析出tx_bytes字段,得到发送字节数N2。
则可以计算出当前端口剩余带宽为:B-(N2-N1)/(t2-t1)。
然后,再利用获取的网络拓扑进行每条链路的剩余带宽计算:
若是交换机与交换机之间的连接,则获取该条链路两端的交换机端口的剩余带宽,该链路的剩余带宽为两个端口剩余带宽中的较小者。
如果是主机与交换机之间的连接,则获取连接主机的交换机端口的剩余带宽,该条链路剩余带宽即为连接该主机的交换机端口剩余带宽。
步骤S4控制器以广播的形式向全网所有交换机发送Feature Request消息。
步骤S5控制器接收来自网络中交换机反馈给控制器的Feature Reply消息。
步骤S6控制器以广播的形式向全网所有交换机发送Stats Request消息。
步骤S7控制器接收来自网络中交换机反馈给控制器的Stats Reply消息。
步骤S8控制器以广播的形式向全网所有交换机发送Stats Request消息。
步骤S9控制器接收来自网络中交换机反馈给控制器的Stats Reply消息。
步骤S10交换机查询接口将计算出的链路剩余带宽信息反馈给“全网链路状态获取模块”。
步骤S11路由策略下发模块计算出的实时最优路由策略,将计算出的流表通过步骤S12来下发给相关的交换机。
步骤S12该接口是控制器自带的API接口,用于下发计算出的最优路由策略。
通过所述最优路径策略是在防御DDOS攻击的同时,网络的平均传输延时并没有激增。
实施例3
在实施例1和实施例2基础上的一种融合DDoS威胁过滤与路由优化的SDN系统的工作方法,以通过分布式的检测和集中式的处理,有效的减轻了控制器的工作负担,提高了检测效率和数据传输率。
本发明的融合DDoS威胁过滤与路由优化的SDN系统的工作方法,包括如下步骤:
步骤S100,网络初始化;步骤S200,分布式DDoS威胁监测;以及步骤S300,威胁处理和/或路由优化。
进一步,所述步骤S100中网络初始化所涉及的装置包括:控制器、IDS决策服务器和分布式的IDS设备;
网络初始化的步骤如下:
步骤S101,所述IDS决策服务器与各IDS设备建立专用的SSL通信信道;步骤S102,所述控制器构建网络设备信息绑定表,并且将网络设备信息绑定表实时更新到各IDS设备中;步骤S104,所述控制器下发镜像策略的流表,即将OF交换机所有拖载有主机的端口流量镜像转发给网域内对应的IDS设备;以及步骤S105,所述控制器下发DDoS威胁识别规则给每个网域中对应的各IDS设备。
所述步骤S200中分布式DDoS威胁监测的方法包括:依次对链路层和网际层地址的欺骗行为,网际层和传输层标志位设置异常行为,以及应用层和传输层的泛洪式攻击行为进行检测;若上述过程中任一检测判断出报文存在相应行为时,则将该报文转入步骤S300。
具体的实施步骤包括:
步骤S210,对链路层和网际层地址的欺骗行为进行检测。
步骤S220,对网际层和传输层标志位设置的异常行为进行检测。
步骤S230,对应用层和传输层的泛洪式攻击行为进行检测。
步骤S240,若将报文依次通过所述步骤S210、步骤S220、步骤S230后,任一步骤判断出报文存在欺骗、异常、攻击行为时,则将所述报文转入步骤S300。
所述步骤S210中对链路层和网际层地址的欺骗行为进行检测的方法包括如下步骤:步骤S211,通过欺骗报文检测模块调用网络设备信息绑定表;步骤S212,通过欺骗报文检测模块将封装在Packet-In消息中报文的类型进行解析,以获得相应的源、目的IP地址、MAC地址以及上传此Packet-In消息的交换机DPID号和端口号,并将上述各信息分别与网络设备信息绑定表中的相应信息进行比对;若报文中的上述信息匹配,则将报文转入步骤S220;若报文中的上述信息不匹配,则将报文转入步骤S300。
所述步骤S220中对网际层和传输层标志位设置异常行为进行检测的方法包括:对报文的各标志位进行检测,以判断各标志位是否符合TCP/IP协议规范;若报文的各标志位符合,则将报文转入S230;若报文的各标志位不符合,则将报文转入步骤S300。
所述步骤S230中对应用层和传输层的泛洪式攻击行为进行检测的方法包括如下步骤:步骤S231,在异常报文检测模块构建用于识别泛洪式攻击报文的哈希表;步骤S232,通过异常报文检测模块根据所述哈希表中设定的阀值判断所述报文是否为泛洪式攻击报文,且将判断结果转入步骤S300,即若无攻击行为,则将数据正常下发或通过上述最优路径策略下发;若具有攻击行为,则采取相应的屏蔽措施。
所述步骤S300中威胁处理和/或路由优化的方法包括:
若报文具有欺骗行为,且攻击威胁在OpenFlow域中,则所述IDS决策服务器适于通过控制器屏蔽主机;以及当攻击威胁不在OpenFlow域中,则通过控制器将该报文所对应的交换机接入端口流量重定向至流量清洗中心进行过滤;
若报文具有异常行为,则所述IDS决策服务器通过控制器对攻击程序或攻击主机的流量进行屏蔽;具体的实施步骤包括:针对破坏报文攻击,由于IDS设备当前处理的报文通过了欺骗报文检测,所以该报文地址是真实的。IDS决策服务器只需通过控制器的北向接口下发动作为Drop的流表将攻击程序或攻击主机的流量屏蔽。但这都只是粗粒度的决策,只适用于攻击包少量的破坏报文攻击。
若报文具有泛洪式攻击行为,则所述IDS决策服务器通过控制器将该报文所对应的交换机接入端口流量重定向至流量清洗中心进行过滤;可选的,流量清洗中心的安全设备也可以将防护的结果反馈给控制器,调整网络策略,实现SDN网络以及混合有传统网络情况下的多维防护。
进一步,根据链路负载系数计算出优化路径,即检测两相邻节点的链路剩余带宽,获得该链路的负载系数,在根据该负载系数和初始化的网络拓扑图获得任意两点的最优路径,所述控制器根据该最优路径得出对应的转发流表并下发各交换机。
优化路径的具体算法流程如下:
设rn,(n+1)为两相邻节点的链路剩余带宽,则其链路负载系数为:
U(a,b)为任意两点间的负载系数和:
设初始网络拓扑图为G0,计算任意两点间的最优路径,
所述IDS决策服务器屏蔽发送报文的程序和/或主机的方法包括:
首先,构建计数用的相应哈希表及设定相应阈值,即
单位时间内,所述IDS决策服务器中构建对欺骗行为进行计数的第一哈希表,标志位设置异常行为进行计数的第二哈希表,以及对泛洪式攻击行为进行计数的第三哈希表;
同时设定第一、第二、第三哈希表中的第一、第二、第三阀值;
其次,屏蔽发送该报文的程序和/或主机,即
针对转入IDS决策服务器的报文的行为,利用相应哈希表进行计数,当计数值超过相应阀值时,屏蔽发送该报文的程序和/或主机。
实施例4
本发明的SDN架构和系统可以定义SDNQA(SDN Communication QualityAssurance Strategy)即SDN通信质量保障策略。
目标设计与场景部署相关测试。
本发明已进行了部署和测试,主要测试环境和测试内容如下:
(1)基于OpenFlow 1.3协议,测试装有DDoS威胁过滤与通信质量保障组件的Floodlight控制器、OF交换机、IDS设备以及IDS决策服务器之间的通信。
(2)测试IDS设备是否能够实时监测网络中的异常攻击流量,并且通过SSL通信信道上报IDS决策服务器。
(3)测试IDS决策服务器是否能够根据IDS设备上报的信息,制定出处理对应攻击威胁的策略,并通过控制器的北向接口下发。
(4)测试控制器是否能够根据网络实时状况,生成并下发实时优化的转发路径,提升用户体验。
实验场景的具体部署,中间为基础网络区域,有两个虚网。其中虚网A部署了本SDNQA系统,而虚网B尚未部署,并且各虚网中都存在若干DDoS攻击傀儡机。右侧为实验效果对比区域,包括一台Web服务器和两台用户主机,其中Web服务器上运行Tomcat对外提供Web服务,用户主机A、B分别是接入虚网A、B的主机。左侧为攻击模拟区域,有一台DDoS攻击机,攻击机将作为主控机控制虚网A和虚网B中的傀儡机对Web服务器发起混合式的DDoS攻击。
基于上述实验环境,从两方面对SDNQA架构的性能进行验证:(1)对比混合式的DDoS攻击下Web服务器端所承受的攻击频率;(2)对比泛洪式攻击所造成的网络平均传输延迟。
首先,对Web服务器端流量流入情况进行分析。攻击机控制各虚网中的傀儡机同时对Web服务器发起混合式的DDoS攻击,其最高频率为55Hz,攻击时长为100秒。截取Web服务器所有的数据包序列,并分离出各虚网的请求序列,分别得出虚网A和虚网B所流入服务器的请求序列,Web服务器所承受的攻击频率对比如图7中图(a)和图(b)所示。
可以看出,SDNQA系统在0s~5s时间段内快速识别了典型的DDoS攻击,并在0s~40s的时间段内采取了过滤防护措施。在40s之后,网络流量趋于正常,测试用户主机A一直可正常得到网页请求响应。而未部署SDNQA系统的虚网B中一直有大量的攻击流量流入,测试用户主机B无法得到网页请求响应。
其次,我们从之前截取的数据包序列中提取出测试用户主机A和测试用户主机B的请求序列,从各请求序列中统计数据包的平均传输的延迟时间,得出两个虚网的平均传输延时对比。
可以看出,经过路由优化,虚网A的平均传输延迟没有随着数据量的增大而激增。由此可见,SDNQA架构能够基于对网络实时状况的感知,对流转发路径进行优化,从而在网络中存在DDoS攻击或正常大流量业务的情况下保证最佳用户体验。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。