一种基于软件定义的网络安全防御系统及其工作方法转让专利
申请号 : CN201510011590.2
文献号 : CN104539625B
文献日 : 2017-11-14
发明人 : 韩红章 , 严莉 , 李忠 , 张杰
申请人 : 江苏理工学院
摘要 :
本发明公开了一种基于软件定义网络的网络安全防御系统及其工作方法,本网络安全防御系统,包括:SDN控制器、IDS决策服务器和IDS设备;所述IDS设备适于对报文进行抽检,即当IDS设备检测到具有DDoS攻击特征的报文时,即上报至IDS决策服务器;所述IDS决策服务器根据上报信息,制定出与具有DDoS攻击特征的报文对应的处理策略,并将处理策略下发至SDN控制器以进行威胁处理;本发明通过对报文采用抽检的方式进行检测,极大的降低了SDN控制器的负担,并且通过检测与决策分离的方式,进一步降低了服务器的负担,更加适合大流量数据的网络传输。
权利要求 :
1.一种网络安全防御系统,其特征在于包括:SDN控制器、IDS决策服务器和IDS设备;
所述IDS设备适于对报文进行抽检,即当IDS设备检测到具有DDoS攻击特征的报文时,上报至IDS决策服务器;
所述IDS决策服务器根据上报信息以制定出与具有DDoS攻击特征的报文对应的处理策略,并将该处理策略下发至SDN控制器以进行威胁处理;
所述IDS设备包括:
定时模块,设定报文的抽检间隔时间;
欺骗报文检测模块,对链路层和网际层地址的欺骗行为进行检测;
破坏报文检测模块,对网际层和传输层标志位设置的异常行为进行检测;
异常报文检测模块,对应用层和传输层泛洪式攻击行为进行检测;
在各间隔时间内通过所述欺骗报文检测模块、破坏报文检测模块、异常报文检测模块依次对报文进行检测;且若任一检测模块检测出报文存在上述相应行为时,则将该报文转入IDS决策服务器;
所述IDS决策服务器适于当报文具有欺骗行为,且攻击威胁在OpenFlow域中,则通过SDN控制器屏蔽攻击主机;或当攻击威胁不在OpenFlow域中,则通过SDN控制器将该报文所对应的OF交换机接入端口流量重定向至流量清洗中心进行过滤;
所述IDS决策服务器还适于当报文具有异常行为,则通过SDN控制器对攻击程序或攻击主机的流量进行屏蔽;以及当报文具有泛洪式攻击行为,则所述IDS决策服务器适于通过SDN控制器将该报文所对应的OF交换机接入端口流量重定向至流量清洗中心进行过滤;
所述SDN控制器内设一屏蔽计时模块和屏蔽计数器;所述屏蔽计时模块内设有屏蔽时间,该屏蔽时间适于限定屏蔽攻击主机时间;所述屏蔽计数器设有一屏蔽阈值,适于当攻击主机屏蔽次数超过该屏蔽阈值时,永久屏蔽该攻击主机。
说明书 :
一种基于软件定义的网络安全防御系统及其工作方法
技术领域
[0001] 本发明涉及网络安全领域,特别是涉及一种网络安全防御系统及其工作方法。
背景技术
[0002] 当前,互联网规模的膨胀,国家计算机网络应急技术处理协调中心最新发布的报告表明:DDOS攻击事件呈大幅增长趋势,国家、企业的网络安全性面临着严峻挑战。
[0003] 其中,分布式拒绝服务攻击(Distributed Denial of Service,DDoS)仍然是影响互联网运行安全最主要的威胁之一。在过去的几年里,DDoS攻击的数目、大小、类型都大幅上涨。
[0004] 软件定义网络(Software Defined Network,SDN)具有可实时更新路由策略与规则、支持深层次的数据包分析等特性,因而可针对复杂网络环境中的DDoS威胁提供更迅速准确的网络监控及防御功能。
[0005] 但是软件定义网络的技术方案在具体的实施过程中发现SDN控制器在处理攻击时,对硬件要求很高,尤其在大规模DDOS攻击时,容易造成SDN控制器无法响应。
发明内容
[0006] 本发明的目的是提供一种网络安全防御系统及工作方法,以解决在大量DDoS攻击时,能有效的缓解SDN控制器的负担,降低了硬件要求和维护成本。
[0007] 为了解决上述技术问题,本发明提供了一种网络安全防御系统,包括:SDN控制器、IDS决策服务器和IDS设备;所述IDS设备适于对报文进行抽检,即当IDS设备检测到具有DDoS攻击特征的报文时,上报至IDS决策服务器;所述IDS决策服务器根据上报信息,制定出与具有DDoS攻击特征的报文对应的处理策略,并将处理策略下发至SDN控制器以进行威胁处理。
[0008] 优选的,为了在IDS设备中实现对DDoS攻击的抽检,所述IDS设备内包括:定时模块,设定报文的抽检间隔时间;欺骗报文检测模块,对链路层和网际层地址的欺骗行为进行检测;破坏报文检测模块,对网际层和传输层标志位设置的异常行为进行检测;异常报文检测模块,对应用层和传输层泛洪式攻击行为进行检测;在各间隔时间内通过所述欺骗报文检测模块、破坏报文检测模块、异常报文检测模块依次对报文进行检测;且若任一检测模块检测出报文存在上述相应行为时,则将该报文转入IDS决策服务器。
[0009] 优选的,所述IDS决策服务器适于当报文具有欺骗行为,且攻击威胁在OpenFlow域中,则通过SDN控制器屏蔽攻击主机;或当攻击威胁不在OpenFlow域中,则通过SDN控制器将该报文所对应的OF交换机接入端口流量重定向至流量清洗中心进行过滤;所述IDS决策服务器还适于当报文具有异常行为,则通过SDN控制器对攻击程序或攻击主机的流量进行屏蔽;以及当报文具有泛洪式攻击行为,则所述IDS决策服务器适于通过SDN控制器将该报文所对应的OF交换机接入端口流量重定向至流量清洗中心进行过滤。
[0010] 优选的,建立主机“征信机制”,即所述SDN控制器内设一屏蔽计时模块和屏蔽计数器;所述屏蔽计时模块内设有屏蔽时间,该屏蔽时间适于限定屏蔽攻击主机时间;所述屏蔽计数器设有一屏蔽阈值,适于当攻击主机屏蔽次数超过该屏蔽阈值时,永久屏蔽该攻击主机。
[0011] 另一方面,本发明还提供了一种网络安全防御系统的工作方法。
[0012] 本网络安全防御系统的工作方法,包括如下步骤:
[0013] 步骤S100,初始化配置;步骤S200,使IDS设备根据预设的间隔时间进行DDoS威胁抽检;以及步骤S300,根据威胁检测制定相应处理策略下发至SDN控制器以进行威胁处理。
[0014] 优选的,所述步骤S100中初始化配置的步骤如下:步骤S101,将所述网络安全防御系统中的所述IDS决策服务器与IDS设备建立专用的SSL通信信道;步骤S102,所述SDN控制器构建网络设备信息绑定表,并且将网络设备信息绑定表实时更新到IDS设备中;步骤S104,所述SDN控制器下发镜像策略的流表,即将OF交换机所有拖载有主机的端口流量镜像转发给网域内对应的IDS设备;以及步骤S105,所述SDN控制器下发DDoS威胁识别规则给每个网域中对应的IDS设备。
[0015] 优选的,所述步骤S200中使IDS设备根据预设的间隔时间进行DDoS威胁抽检的方法包括:在预设的间隔时间内依次对链路层和网际层地址的欺骗行为,网际层和传输层标志位设置异常行为,以及应用层和传输层的泛洪式攻击行为进行抽检;若上述过程中任一检测判断出报文存在相应行为时,则将该报文转入步骤S300。
[0016] 优选的,对链路层和网际层地址的欺骗行为进行检测的方法包括:通过欺骗报文检测模块对欺骗行为进行检测,即首先,通过欺骗报文检测模块调用网络设备信息绑定表;其次,通过欺骗报文检测模块将封装在Packet-In消息中报文的类型进行解析,以获得相应的源、目的IP地址、MAC地址以及上传此Packet-In消息的OF交换机DPID号和端口号,并将上述各信息分别与网络设备信息绑定表中的相应信息进行比对;若报文中的上述信息匹配,则将报文进行下一检测;若报文中的上述信息不匹配,则将报文转入步骤S300;所述网际层和传输层标志位设置异常行为进行检测的方法包括:通过破坏报文检测模块对标志位设置异常行为进行检测,即对报文的各标志位进行检测,以判断各标志位是否符合TCP/IP协议规范;若报文的各标志位符合,则将报文转入进行下一检测;若报文的各标志位不符合,则将报文转入步骤S300;所述应用层和传输层的泛洪式攻击行为进行抽检的方法包括:通过异常报文检测模块对泛洪式攻击行为进行检测,即在异常报文检测模块构建用于识别泛洪式攻击报文的哈希表,并根据该哈希表中设定的阀值判断报文是否具有泛洪式攻击行为,且将判断结果转入步骤S300。
[0017] 优选的,所述步骤S300根据威胁检测制定相应处理策略下发至SDN控制器以进行威胁处理的方法包括:若报文具有欺骗行为,且攻击威胁在OpenFlow域中,则所述IDS决策服务器适于通过SDN控制器屏蔽攻击主机;以及当攻击威胁不在OpenFlow域中,则通过SDN控制器将该报文所对应的OF交换机接入端口流量重定向至流量清洗中心进行过滤;若报文具有异常行为,则所述IDS决策服务器通过SDN控制器对攻击程序或攻击主机的流量进行屏蔽;若报文具有泛洪式攻击行为,则所述IDS决策服务器通过SDN控制器将该报文所对应的OF交换机接入端口流量重定向至流量清洗中心进行过滤;在屏蔽攻击主机后,设定屏蔽时间和屏蔽阈值,该屏蔽时间适于限定屏蔽攻击主机时间;以及当攻击主机屏蔽次数超过所述屏蔽阈值时,永久屏蔽该攻击主机;和/或根据链路负载系数计算出优化路径,即检测两相邻节点的链路剩余带宽,获得该链路的负载系数,在根据该负载系数和初始化的网络拓扑图获得任意两点的最优路径,所述SDN控制器根据该最优路径得出对应的转发流表并下发各OF交换机。
[0018] 优选的,所述IDS决策服务器屏蔽发送报文的程序和/或攻击主机的方法包括:首先,构建计数用的相应哈希表及设定相应阈值,即单位时间内,所述IDS决策服务器中构建对欺骗行为进行计数的第一哈希表,标志位设置异常行为进行计数的第二哈希表,以及对泛洪式攻击行为进行计数的第三哈希表;同时设定第一、第二、第三哈希表中的第一、第二、第三阀值;其次,屏蔽发送该报文的程序和/或攻击主机,即针对转入IDS决策服务器的报文的行为,利用相应哈希表进行计数,当计数值超过相应阀值时,屏蔽发送该报文的程序和/或攻击主机。
[0019] 本发明的有益效果:(1)本发明通过对报文采用抽检的方式进行检测,极大的降低了SDN控制器的负担,并且通过检测与决策分离的方式,进一步降低了服务器的负担;并且通过欺骗报文检测模块、破坏报文检测模块和异常报文检测模块提高了检测的效率;因此,本发明通过组合的方式,在有效的减轻了SDN控制器负担的同时,提高了检测效率,更加适合大流量数据的网络传输。(2)本发明使得传统网络体系架构下无法对地址伪造DDoS攻击进行识别与溯源的难题从根本上得到了解决;在网络中存在DDoS攻击或正常大流量业务的情况下,SDN控制器可基于对链路剩余带宽等网络参数的实时感知,实现对正常流量的路由优化,大幅提升用户的体验;(3)本发明的处理架构采用可扩展的模块化设计,实现了对DDoS威胁的高效检测和灵活处理;欺骗报文检测模块、破坏报文检测模块和获取数据包信息采用独立的接口设计,降低了模块间的耦合关联性;各模块使用优化的程序数据结构,细致分割各处理子流程,提升了模块的高内聚特性。
附图说明
[0020] 下面结合附图和实施例对本发明进一步说明。
[0021] 图1示出了本发明的网络安全防御系统的结构框图;
[0022] 图2示出了网络安全防御系统的原理框图;
[0023] 图3示出了本发明的网络安全防御系统的工作方法的流程;
[0024] 图4示出了预设间隔时间进行DDoS威胁检测的方法的流程框图。
具体实施方式
[0025] 现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。
[0026] 实施例1
[0027] 图1示出了本发明的网络安全防御系统的结构框图。
[0028] 如图1所示,一种网络安全防御系统,包括:SDN控制器、IDS决策服务器、分布式的IDS设备;所述IDS设备适于对报文进行抽检,即当IDS设备(即入侵检测设备)检测到具有DDoS攻击特征的报文时,上报至IDS决策服务器(也可以通过SSL通信信道上报至IDS决策服务器);所述IDS决策服务器根据上报信息,制定出与具有DDoS攻击特征的报文对应的处理策略,并将处理策略下发至SDN控制器以进行威胁处理。关于处理策略将在下列实施例中进行说明。
[0029] 其中,DDoS攻击特征定义为:对链路层和网际层地址的欺骗行为、对网际层和传输层标志位设置的异常行为,以及对应用层和传输层泛洪式攻击行为。
[0030] 抽检时间的间隔为预设间隔时间,可以根据需要进行设定,例如2秒抽检一次,或3秒,或5秒抽检一次;也可以采用随机时间进行抽检,例如随机时间设定在1-10S内随机进行抽检。
[0031] 本发明通过抽检的方式极大的降低了SDN控制器的负担,特别适合大流量数据的网络传输。
[0032] 图2示出了网络安全防御系统的原理框图。
[0033] 如图2所示,进一步,所述IDS设备内包括:
[0034] 定时模块,设定报文的抽检间隔时间(图2中未画出,定时模块可以通过IDS内部时钟来实现。);该定时模块可以采用时钟模块来实现;欺骗报文检测模块,对链路层和网际层地址的欺骗行为进行检测;破坏报文检测模块,对网际层和传输层标志位设置的异常行为进行检测;异常报文检测模块,对应用层和传输层泛洪式攻击行为进行检测;在各间隔时间内通过所述欺骗报文检测模块、破坏报文检测模块、异常报文检测模块依次对报文进行检测;且若任一检测模块检测出报文存在上述相应行为时,则将该报文转入IDS决策服务器。
[0035] 进一步,所述IDS决策服务器适于当报文具有欺骗行为,且攻击威胁在OpenFlow域中,则通过SDN控制器屏蔽攻击主机;或当攻击威胁不在OpenFlow域中,则通过SDN控制器将该报文所对应的OF交换机接入端口流量重定向至流量清洗中心进行过滤;所述IDS决策服务器还适于当报文具有异常行为,则通过SDN控制器对攻击程序或攻击主机的流量进行屏蔽;以及当报文具有泛洪式攻击行为,则所述IDS决策服务器适于通过SDN控制器将该报文所对应的OF交换机接入端口流量重定向至流量清洗中心进行过滤。
[0036] 本发明采用从欺骗报文检测模块到破坏报文检测模块,再到异常报文检测模块依次检测的顺序,其中,各模块获取数据包信息采用独立的接口设计,降低了模块间的耦合关联性;并且各模块使用优化的程序数据结构,细致分割各处理子流程,提升了模块的高内聚特性。这种检测顺序与抽检的方式在有效的降低了SDN控制器的负担的同时,提高了对报文数据的检测效率,以及降低了漏检率。
[0037] 通过所述欺骗报文检测模块调用网络设备信息绑定表,并在所述IDS决策服务器中构建单位时间内的适于对报文欺骗行为进行计数的第一哈希表,以及设定该第一哈希表中的第一阀值;所述欺骗报文检测模块,将封装在Packet-In消息中的报文的类型进行解析,以获得相应的源、目的IP地址、MAC地址以及上传Packet-In消息的OF交换机DPID号和端口号信息,并将各信息分别与网络设备信息绑定表中的相应信息进行比对;若报文中的上述信息匹配,则将报文转入破坏报文检测模块;若报文中的上述信息不匹配,则转入所述IDS决策服务器,对报文进行丢弃,并同时对欺骗行为进行计数,当该计数值超过第一阀值时,屏蔽发送该报文的程序和/或攻击主机。
[0038] 具体的,所述欺骗报文检测模块用于对报文进行第一次判断,即判断报文是否是IP欺骗攻击报文、端口欺骗攻击报文或MAC欺骗攻击报文。
[0039] 具体步骤包括:首先在以太网帧中解析出源、目的MAC地址和OF交换机入口,然后根据不同的报文类型解析出不同的报文。当报文类型为IP、ARP、RARP时,则解析出相应的源、目的IP地址然后将这些信息对网络设备信息绑定表中的信息进行查表匹配,如果匹配到相应的信息,则交给破坏报文检测模块处理。若不匹配,则将该报文转入IDS决策服务器处理;并同时对欺骗行为进行累加计数,当该计数值超过第一阀值时,屏蔽发送该报文的程序和/或攻击主机。
[0040] Floodlight中有一个设备管理器模块DeviceManagerImpl,当一个设备在网络中移动设备的时候跟踪设备,并且根据新流定义设备。
[0041] 设备管理器从PacketIn请求中得知设备,并从PacketIn报文中获取设备网络参数信息(源、目的IP、MAC、VLAN等信息),通过实体分类器将设备进行区分为OF交换机或攻击主机。默认情况下实体分类器使用MAC地址和/或VLAN表示一个设备,这两个属性可以唯一的标识一个设备。另外一个重要的信息是设备的安装点(OF交换机的DPID号和端口号)(,在一个openflow区域中,一个设备只能有一个安装点,在这里openflow区域指的是和同一个Floodlight实例相连的多个OF交换机的集合。设备管理器也为IP地址、安装点、设备设置了过期时间,最后一次时间戳作为判断它们是否过期的依据。)
[0042] 故网络设备信息绑定表模块里面只需调用DeviceManagerImpl模块提供的IDeviceService即可,同时向该服务添加IDeviceListener的监听接口即可。
[0043] 其中IDeviceListener提供的监听接口有:
[0044]接口名 功能
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改变响应
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改变响应
[0045] 服务提供者:IFloodlightProviderService,IDeviceService
[0046] 依赖接口:IFloodlightModule,IDeviceListener
[0047]
[0048] 表内的记录根据OF交换机的高低电平触发机制(网线拔出触发PortDown的低电平,网线拔入触发Port Up的高电平)可以实时刷新绑定表中的记录。
[0049] 传统的DDoS攻击无法触及、修改Switch DPID和Switch Port的信息,利用此优势,可以更加灵活的检测欺骗攻击。
[0050] 在所述IDS决策服务器中构建单位时间内的适于对报文的标志位设置异常行为进行计数的第二哈希表,以及设定该第二哈希表中的第二阀值;所述破坏报文检测模块对报文的各标志位进行检测,以判断各标志位是否符合TCP/IP协议规范;若报文的各标志位符合,则将报文转入异常报文检测模块;若报文的各标志位不符合,则转入所述IDS决策服务器,对报文进行丢弃,并同时对标志位设置异常行为进行计数,当该计数值超过第二阀值时,屏蔽发送该报文的程序和/或攻击主机。
[0051] 具体的,所述破坏报文检测模块,用于对报文进行第二次判断,即判断报文是否为具有恶意标志位特征的攻击报文。其中,具有恶意标志位特征的攻击报文包括但不限于IP攻击报文、TCP攻击报文。实施步骤包括:对IP攻击报文及其中的TCP/UDP攻击报文实现各个报文的标志位的检测,即识别各标志位是否符合TCP/IP协议规范。如果符合的话,就直接交由异常数报文检测模块处理。若不符合,则判断为攻击报文,转入IDS决策服务器处理。
[0052] 以Tear Drop等典型攻击为列,在IP包头中有一个偏移字段和一个分片标志(MF),若攻击者把偏移字段设置成不正确的值,IP分片报文就会出现重合或断开的情况,目标机系统就会崩溃。
[0053] 在IP报文头中,有一协议字段,该字段指明了该IP报文承载了何种协议。该字段的值是小于100的,如果攻击者向目标机发送大量的带大于100的协议字段的IP报文,目标机系统中的协议栈就会受到破坏,形成攻击。
[0054] 故在破坏报文检测模块中,首先提取出报文的各标志位,然后检查是否正常。
[0055] 如果正常,则交给后续模块处理。
[0056] 如果不正常,则丢弃该数据包,并对相应哈希表计数器计数。如果单位时间内计数器超过设定的所述第二阀值时,则调用IDS决策服务器对相应的程序进行屏蔽和/或直接屏蔽相应的主机。
[0057] 通过欺骗报文检测模块的数据包滤除之后,后续的破坏报文检测模块所处理的数据包中的地址都是真实的。这样,有效的避免了目标机收到了破坏报文,可能直接导致目标机的协议栈崩溃,甚至目标机直接崩溃。
[0058] 破坏报文检测模块的处理功能与欺骗报文检测处理流程大致相似,区别在于破坏报文检测模块解析出的是各个报文的标志位,然后检测各个标志位是否正常。
[0059] 如果正常的话,就直接给后续的异常报文检测模块处理。
[0060] 如果不正常,则丢弃该数据包,并且对主机应用征信机制相应的哈希表内计数器计数。如果超过设定的阀值,则屏蔽相应的攻击程序或者直接屏蔽攻击主机。
[0061] 在所述异常报文检测模块构建用于识别泛洪式攻击报文的哈希表,在所述IDS决策服务器中构建单位时间内的适于对泛洪式攻击行为进行计数的第三哈希表,以及设定该第三哈希表中的第三阀值;所述异常报文检测模块,适于根据所述哈希表中设定的阀值判断所述报文是否具有攻击行为;若无攻击行为,则将数据下发;若具有攻击行为,则转入所述IDS决策服务器,对报文进行丢弃,并同时对攻击行为进行计数,当计数值超过第三阀值时,屏蔽发送该报文的程序和/或攻击主机。
[0062] 具体的,所述异常报文检测模块,用于对报文进行第三次判断,即判断报文是否是泛洪式攻击报文。
[0063] 具体步骤包括:利用对构建的识别泛洪式攻击报文的对哈希表内的相应记录进行累加,并检测是否超过阈值,以判断是否是泛洪式攻击报文。
[0064] 经过上述欺骗报文检测模块、破坏报文检测模块两个模块的滤除,后续模块处理的数据包基本属于正常情况下的数据包。然而,正常情况下,也会有DDoS攻击产生,在现有技术中,一般仅进行欺骗报文检测模块、破坏报文检测模块,而在本技术方案中,为了尽可能的避免DDoS攻击。
[0065] 以下实施例对在进行欺骗报文检测模块、破坏报文检测模块过滤后,再通过异常报文检测模块屏蔽DDoS攻击的具体实施方式。该实施方式以UDP Flooding和ICMP Flooding为例。
[0066] 关于UDP Floodling,利用UDP协议无需建立连接的机制,向目标机发送大量UDP报文。目标机会花费大量的时间处理UDP报文,这些UDP攻击报文不但会使存放UDP报文的缓存溢出,而且也会占用大量的网络带宽,目标机无法(或很少)接收到合法的UDP报文。
[0067] 由于不同的主机向单一主机发送大量UDP数据包,所以肯定会有UDP端口占用的情况,所以本技术方案可以接收到一个ICMP的端口不可达数据包。
[0068] 所以本技术方案可以对所有主机建立一个哈希表,专门用来存放单位时间内收到ICMP端口不可达数据包的次数。如果超过设定的阀值,则直接屏蔽相应的攻击程序。
[0069] 关于ICMP Floodling,对于ICMP Flooding直接进行单位时间内计数。如果超过相应的阀值,则直接对相应主机进行相应屏蔽,该方法虽然简单,但是直接有效。
[0070] 因此,异常报文检测模块,如果检测到的报文类型是异常报文检测类型,则进行相应的计数器检测是否超过阈值,如果没有超过阈值,也可对该数据包通过最优的路由策略下发。如果超过了阈值,则屏蔽相应的攻击程序,或直接对相应主机进行相应屏蔽。
[0071] 所述欺骗报文检测模块、破坏报文检测模块和异常报文检测模块中任一模块判断所述报文为上述攻击报文时,则将该攻击报文转入IDS决策服务器,即,丢弃所述报文,并屏蔽发送该报文的程序和/或攻击主机。
[0072] 当“欺骗报文检测模块”、“破坏报文检测模块”和“异常报文检测模块”需要丢弃数据包或者需要屏蔽威胁主机的时候。直接调用IDS决策服务器进行相应的威胁处理操作。
[0073] 所述IDS决策服务器的具体的实施步骤包括:
[0074] 丢弃所述报文,即丢弃数据包的步骤包括如下:
[0075] OpenFlowOF交换机在未匹配到相应的流表情况下,会将该数据包封装在Packet In消息中,同时OF交换机会将此数据包存在本地的缓存中,数据包存放在缓存中,有一个缓存区ID号,这个ID号也会封装在Packet In消息的buffer_id中,通过Packet out的形式,同时Packet out消息内的buffer_id填写要丢弃的数据包的缓存区ID(对应的Packet In消息中的buffer_id)。
[0076] 屏蔽攻击主机的步骤包括如下:
[0077] OpenFlow协议流表结构如下:
[0078]包头域 计数器 动作
[0079] 其中包头域的结构为:
[0080]
[0081] IDS决策服务器中包括对应用程序进行屏蔽的步骤包括如下:
[0082] 步骤1:在流表的包头域中填写相应匹配字段,并且通过设置Wildcards屏蔽字段,来获取屏蔽攻击程序或攻击主机信息。其中,如需屏蔽攻击程序,则在流表包头域中填写下列匹配字段:IP、MAC、VLAN、Swtich DPID、Swtich Port、协议类型及其端口号等。如需屏蔽攻击主机,则在流表包头域中填写:IP、MAC、VLAN、Swtich DPID、Swtich Port等匹配字段。
[0083] 步骤2:将流表动作列表置空,实现攻击程序/主机的数据包丢弃。
[0084] 步骤3:调用各哈希表中的记录值,计算出流表超时自动删除时间。
[0085] 步骤4:下发流表屏蔽程序或攻击主机。
[0086] 优选的,所述SDN控制器内设一屏蔽计时模块和屏蔽计数器;所述屏蔽计时模块内设有屏蔽时间,该屏蔽时间适于限定屏蔽攻击主机时间;所述屏蔽计数器设有一屏蔽阈值,适于当攻击主机屏蔽次数超过该屏蔽阈值时,永久屏蔽该攻击主机。
[0087] 因此,本技术方案的网络可有效识别并滤除攻击包。
[0088] 可选的,在经过上述各模块之后,将正常报文的实时最优路由策略的下发。
[0089] 最优路由策略的步骤如下:
[0090] 首先进入向SDN控制器的拓扑接口(API)提交获取请求,以获取全网拓扑,再通过获取的全网链路状态计算出全网链路剩余带宽。
[0091] 所述实时最优路径的计算,算法采用经典的Dijkstra算法,算法的权值改为上一步获取的全网链路剩余带宽的倒数,以保证计算出的路径是最通畅,传输时延最小的路径。关于最优路径的具体实施步骤在实施例2中进行了详细论述。
[0092] 最后,将计算出的最优路径转换成由流表组成的实时最优路径策略,下发。
[0093] 步骤S1,使用的是拓扑接口,所述SDN控制器自带的API接口,使用LLDP(链路层发现协议)和广播包发现链路,然后SDN控制器自动计算出网络拓扑。
[0094] 步骤S2,SDN控制器的拓扑接口向“实时最优路径计算模块”的“全网拓扑获取模块”拓扑获取请求的反馈。
[0095] 步骤S3中,“全网链路状态获取模块”向“OF交换机查询接口模块”提出请求,获取全网链路状态。其中,“OF交换机查询接口模块”是在SDN控制器自带的“OF交换机特性查询模块”和“OF交换机状态查询模块”基础上拓展而来,实现了链路剩余带宽的计算及查询功能。
[0096] 然后,“OF交换机查询模块”通过步骤S4向网络中所有OF交换机发送OF交换机特性请求的广播包。再通过步骤S5来接收来自网络中OF交换机特性反馈的报文,解析出报文里面的curr字段,得到每个OF交换机端口当前带宽B。
[0097] 接下来,该模块通过步骤S6向网络中所有OF交换机发送OF交换机状态请求的广播包,包括端口发送包数、端口发送字节数、端口接收字节数、端口接收包数等报文状态。接着,该模块通过步骤S7接收来自网络中OF交换机状态反馈的报文,解析出tx_bytes字段,得到发送字节数N1,获取当前时间t1。
[0098] 接下来,该模块通过步骤S8向网络中所有OF交换机发送OF交换机状态请求的广播包,接着,该模块通过S9接收来自网络中OF交换机状态反馈的报文,计时停止,获取当前时间t2。解析出tx_bytes字段,得到发送字节数N2。
[0099] 则可以计算出当前端口剩余带宽为:B-(N2-N1)/(t2-t1)。
[0100] 然后,再利用获取的网络拓扑进行每条链路的剩余带宽计算:
[0101] 若是OF交换机与OF交换机之间的连接,则获取该条链路两端的OF交换机端口的剩余带宽,该链路的剩余带宽为两个端口剩余带宽中的较小者。
[0102] 如果是主机与OF交换机之间的连接,则获取连接主机的OF交换机端口的剩余带宽,该条链路剩余带宽即为连接该主机的OF交换机端口剩余带宽。
[0103] 步骤S4,SDN控制器以广播的形式向全网所有OF交换机发送Feature Request消息。
[0104] 步骤S5,SDN控制器接收来自网络中OF交换机反馈给SDN控制器的Feature Reply消息。
[0105] 步骤S6,SDN控制器以广播的形式向全网所有OF交换机发送Stats Request消息。
[0106] 步骤S7,SDN控制器接收来自网络中OF交换机反馈给SDN控制器的Stats Reply消息。
[0107] 步骤S8,SDN控制器以广播的形式向全网所有OF交换机发送Stats Request消息。
[0108] 步骤S9,SDN控制器接收来自网络中OF交换机反馈给SDN控制器的Stats Reply消息。
[0109] 步骤S10,OF交换机查询接口将计算出的链路剩余带宽信息反馈给“全网链路状态获取模块”。
[0110] 步骤S11,路由策略下发模块计算出的实时最优路由策略,将计算出的流表通过步骤S12来下发给相关的OF交换机。
[0111] 步骤S12,该接口是SDN控制器自带的API接口,用于下发计算出的最优路由策略。
[0112] 通过所述最优路径策略是在防御DDOS攻击的同时,网络的平均传输延时并没有激增。
[0113] 实施例2
[0114] 在实施例1基础上的一种网络安全防御系统的工作方法,通过抽检和威胁处理分开,有效的减轻了SDN控制器的工作负担,提高了检测效率和数据传输率。
[0115] 图3示出了本发明的网络安全防御系统的工作方法的流程图。
[0116] 如图3所示,本发明的网络安全防御系统的工作方法,包括如下步骤:
[0117] 步骤S100,初始化配置;步骤S200,使IDS设备根据预设的间隔时间进行DDoS威胁抽检;以及步骤S300,根据威胁检测制定相应处理策略下发至SDN控制器以进行威胁处理。
[0118] 本发明采用对抽检的方式实现对DDoS的抽检,极大的降低了SDN控制器的负担。
[0119] 其中,关于预设间隔时间可以参见实施例1的相关论述,这里不再赘述。
[0120] 进一步,所述步骤S100中初始化配置的步骤如下:
[0121] 步骤S101,将所述网络安全防御系统中的IDS决策服务器与IDS设备建立专用的SSL通信信道;步骤S102,所述SDN控制器构建网络设备信息绑定表,并且将网络设备信息绑定表实时更新到IDS设备中;步骤S104,所述SDN控制器下发镜像策略的流表,即将OF交换机所有拖载有主机的端口流量镜像转发给网域内对应的IDS设备;以及步骤S105,所述SDN控制器下发DDoS威胁识别规则给每个网域中对应的IDS设备。
[0122] 所述步骤S200中使IDS设备根据预设的间隔时间进行DDoS威胁抽检的方法包括:在预设的间隔时间内依次对链路层和网际层地址的欺骗行为,网际层和传输层标志位设置异常行为,以及应用层和传输层的泛洪式攻击行为进行抽检;若上述过程中任一检测判断出报文存在相应行为时,则将该报文转入步骤S300。
[0123] 图4示出了预设间隔时间进行DDoS威胁检测的方法的流程框图。
[0124] 如图4所示,具体的实施步骤包括:步骤S210,对链路层和网际层地址的欺骗行为进行检测;步骤S220,对网际层和传输层标志位设置的异常行为进行检测;步骤S230,对应用层和传输层的泛洪式攻击行为进行抽检;步骤S240,若将报文依次通过所述步骤S210、步骤S220、步骤S230后,任一步骤判断出报文存在欺骗、异常、攻击行为时,则将所述报文转入步骤S300。
[0125] 所述步骤S210中对链路层和网际层地址的欺骗行为进行检测的方法包括如下步骤:步骤S211,通过欺骗报文检测模块调用网络设备信息绑定表;步骤S212,通过欺骗报文检测模块将封装在Packet-In消息中报文的类型进行解析,以获得相应的源、目的IP地址、MAC地址以及上传此Packet-In消息的OF交换机DPID号和端口号,并将上述各信息分别与网络设备信息绑定表中的相应信息进行比对;若报文中的上述信息匹配,则将报文转入步骤S220;若报文中的上述信息不匹配,则将报文转入步骤S300。
[0126] 所述步骤S220中对网际层和传输层标志位设置异常行为进行检测的方法包括:对报文的各标志位进行检测,以判断各标志位是否符合TCP/IP协议规范;若报文的各标志位符合,则将报文转入S230;若报文的各标志位不符合,则将报文转入步骤S300。
[0127] 所述步骤S230中对应用层和传输层的泛洪式攻击行为进行抽检的方法包括如下步骤:步骤S231,在异常报文检测模块构建用于识别泛洪式攻击报文的哈希表;步骤S232,通过异常报文检测模块根据所述哈希表中设定的阀值判断所述报文是否为泛洪式攻击报文,且将判断结果转入步骤S300,即若无攻击行为,则将数据正常下发或通过上述最优路径策略下发;若具有攻击行为,则采取相应的屏蔽措施。
[0128] 所述步骤S300中威胁处理和/或路由优化的方法包括:若报文具有欺骗行为,且攻击威胁在OpenFlow域中,则所述IDS决策服务器适于通过SDN控制器屏蔽攻击主机;以及当攻击威胁不在OpenFlow域中,则通过SDN控制器将该报文所对应的OF交换机接入端口流量重定向至流量清洗中心进行过滤;若报文具有异常行为,则所述IDS决策服务器通过SDN控制器对攻击程序或攻击主机的流量进行屏蔽;具体的实施步骤包括:针对破坏报文攻击,由于IDS设备当前处理的报文通过了欺骗报文检测,所以该报文地址是真实的。IDS决策服务器只需通过SDN控制器的北向接口下发动作为Drop的流表将攻击程序或攻击主机的流量屏蔽。但这都只是粗粒度的决策,只适用于攻击包少量的破坏报文攻击;若报文具有泛洪式攻击行为,则所述IDS决策服务器通过SDN控制器将该报文所对应的OF交换机接入端口流量重定向至流量清洗中心进行过滤;可选的,流量清洗中心的安全设备也可以将防护的结果反馈给SDN控制器,调整网络策略,实现SDN网络以及混合有传统网络情况下的多维防护;在屏蔽攻击主机后,设定屏蔽时间和屏蔽阈值,该屏蔽时间适于限定屏蔽攻击主机时间;以及当攻击主机屏蔽次数超过所述屏蔽阈值时,永久屏蔽该攻击主机。
[0129] 作为抽检的另一种优选的实施方式,当判定攻击主机后,在屏蔽时间过后,恢复该攻击主机的数据传输,但是对该主机的数据提高抽检的时间间隔,即加密抽检。
[0130] 进一步,根据链路负载系数计算出优化路径,即检测两相邻节点的链路剩余带宽,获得该链路的负载系数,在根据该负载系数和初始化的网络拓扑图获得任意两点的最优路径,所述SDN控制器根据该最优路径得出对应的转发流表并下发各OF交换机。
[0131] 优化路径的具体算法流程如下:
[0132]
[0133] 所述IDS决策服务器屏蔽发送报文的程序和/或攻击主机的方法包括:
[0134] 首先,构建计数用的相应哈希表及设定相应阈值,即
[0135] 单位时间内,所述IDS决策服务器中构建对欺骗行为进行计数的第一哈希表,标志位设置异常行为进行计数的第二哈希表,以及对泛洪式攻击行为进行计数的第三哈希表;同时设定第一、第二、第三哈希表中的第一、第二、第三阀值;其次,屏蔽发送该报文的程序和/或攻击主机,即针对转入IDS决策服务器的报文的行为,利用相应哈希表进行计数,当计数值超过相应阀值时,屏蔽发送该报文的程序和/或攻击主机。
[0136] 应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
[0137] 以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。