SDN控制器、路由/交换设备及网络防御方法与流程

文档序号:13344879阅读:230来源:国知局
SDN控制器、路由/交换设备及网络防御方法与流程
本发明涉及网络通信技术领域,特别是涉及一种SDN控制器、路由/交换设备及网络防御方法。

背景技术:
随着互联网的发展,网络带来方便的同时,网络安全事件也时有发生,网络攻击威慑着网上用户,信息的安全性和保密性受到很大的威胁。拒绝服务攻击(DoS)由于其工具随处可得,容易操作,攻击范围广、隐蔽性强、简单有效等特点,使其发生频率越来越高,极大地影响着网络和业务主机系统的有效服务,尤其是分布式拒绝服务攻击(DDoS)已经被公认为互联网上最难解决的问题之一。TCP(TransmissionControlProtocol传输控制协议)泛洪攻击是DDoS最常见的攻击手段。由于TCP协议连接三次握手的需要,在每个TCP建立连接时,都要发送一个带SYN(synchronous,同步)标记的数据报,如果在服务器端发送应答报后,客户端不发出确认,服务器会等待到数据超时,如果大量的受控制客户发出大量的带SYN标记的TCP请求数据报到服务器端后都没有应答,会使服务器端的TCP资源迅速枯竭,导致正常的连接不能进入,甚至会导致服务器的系统崩溃。对于拒绝服务攻击而言,目前还没有比较完善的解决方案。拒绝服务攻击是与目前使用的网络协议密切相关的,它的彻底解决是极为困难的。拒绝服务攻击的对策主要可以分为三个方面:检测防御、增强容忍性和攻击源追踪。部分网络设备为了防御DDoS攻击采取了随机丢报的方法,这种方法利用了网络设备本身的特性,网络设备常常在流量较大的时候采取丢报的方式来维持其功能的正常。随机丢报是在难于获取有效特征或无其它有效防御措施的情况下所采取的一种方法,要维持网络正常,只好随机地将数据报丢弃,尽量保证能提供服务,当然丢弃的报并不一定就是攻击的数据报。而放行的也并不一定就是正常的报文。主动发送RST也是一种防御SYN攻击的办法,SYN攻击造成危害的原因主要是很多不正常的SYN请求占据了TCB表,从而让新的请求无法得到回应。当服务器接受到RST报的时候,就会将TCB中的相应记录释放。主动发送RST的方法就是利用了这种特点,通过第三方主动发送RST(TCP首部中的6个标志比特之一,表示重置连接、复位连接)报文,让服务器的缓冲区尽快释放。但是,这种办法并未将攻击请求报和正常请求报区别对待。并且,由于现有的网络是分布式控制方式,很难感知报文的转发路径和攻击者位置。所以无法精准地找到离攻击者最近的交换机或路由器做入口过滤。

技术实现要素:
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种SDN控制器、路由/交换设备及网络防御方法,解决现有技术中网络防御手段存在定位攻击者困难、过滤不准确等问题。为实现上述目标及其他相关目标,本发明提供一种SDN控制器,应用于包括客户端、服务器端、及连接所述客户端及服务器端间的路由/交换设备的网络中,所述SDN控制器包括:建立模块,用于建立合法TCP连接表、非法TCP半连接表和非法TCP半连接数目表并送至所述路由/交换设备储存;流表生成模块,用于在所述网络受到攻击时,生成含有过滤动作类型的流表并下发至所述攻击者所在入口路由/交换设备,以控制所述路由/交换设备据以执行对应的过滤策略。可选的,所述过滤策略包括:在所述入口路由/交换设备接收到来自客户端的SYN请求报文时,根据所述SYN请求报文的四元组信息在所述合法TCP连接表中进行匹配,其中,所述四元组信息包括:源IP地址、源TCP端口、目的IP地址和目的TCP端口;若在所述合法TCP连接表中匹配,则转发所述SYN请求报文;若在所屈合法TCP连接表中不能匹配,则将所述四元组信息在所述非法TCP半连接表中匹配;若在所述非法TCP半连接表中匹配,则丢弃该SYN请求报文并更新所述非法TCP半连接表;若在所述非法TCP半连接表中不能匹配,则根据四元组信息中的目的IP地址在所述非法TCP半连接数目表中查找对应的TCP半连接数;判断所述目的IP地址的TCP半连接数是否达到预设阈值;若达到所述预设阈值,则增加所述SYN请求报文对应条目至所述非法TCP半连接表,并将此目的IP地址的TCP半连接数加1,并向所述服务器转发所述SYN请求报文;在入口路由/交换设备收到所述SYN请求报文的ACK报文时,转发所述ACK报文,并将所述增加条目从所述非法TCP半连接表移至合法TCP连接表,并将此目的IP地址的TCP半连接数减1;若未达到所述预设阈值,则丢弃所述SYN请求报文,向所述客户端发送SYN加ACK报文,并检查客户端是否反馈ACK报文;若所述客户端有反馈ACK报文,则增加对应所述SYN请求报文的条目至所述合法TCP连接表,并向所述客户端发送RST报文;若所述客户端未反馈ACK报文,则增加对应所述SYN请求报文的条目至所述非法TCP半连接表,并向所述服务器端发送相关的RST报文。可选的,所述SYN加ACK报文包含根据所述SYN请求报文的四元组信息生成的加密信息;所述反馈ACK是通过解密所述加密信息而生成的,以证明所述客户端合法。可选的,所述非法TCP半连接表中的条目具有老化时间;所述增加对应所述SYN请求报文的条目至所述非法TCP半连接表,并向所述服务器端发送相关的RST报文,包括:在所述非法TCP半连接表中找到最老的条目,产生对应的RST并发送给所述服务器端;生成对应所述SYN请求报文的条目来替换所述最老条目。可选的,所述过滤策略包括:在所述入口路由器收到RST或FIN报文时,根据所述RST或FIN报文的四元组信息在所述合法TCP连接表中进行匹配,其中,所述四元组信息包括:源IP地址、源TCP端口、目的IP地址和目的TCP端口;若在所述合法TCP连接表中匹配,则从所述合法TCP连接表中删除所述RST或FIN报文的相关条目。为实现上述目标及其他相关目标,本发明提供一种路由/交换设备,网络连接于客户端及服务器端间并连接于SDN控制器,所述路由/交换设备包括:储存模块,用于储存合法TCP连接表、非法TCP半连接表和非法TCP半连接数目表;过滤控制模块,用于从所述SDN控制器接收含有过滤动作类型的流表,以控制所述路由/交换设备据以执行对应的过滤策略;其中,所述流表是由所述SDN控制器在所述网络受到攻击时,生成并下发的。为实现上述目标及其他相关目标,本发明提供一种网络防御方法,应用于包括客户端、服务器端、及连接所述客户端及服务器端间的路由/交换设备、及控制各所述路由/交换设备的SDN控制器的网络中,所述方法包括:在所述SDN控制器建立并储存合法TCP连接表、非法TCP半连接表和非法TCP半连接数目表;在所述网络受到攻击时,生成含有过滤动作类型的流表并下发至所述攻击者所在入口路由/交换设备,以控制所述路由/交换设备据以执行对应的过滤策略。可选的,所述过滤策略包括:在所述入口路由/交换设备接收到来自客户端的SYN请求报文时,根据所述SYN请求报文的四元组信息在所述合法TCP连接表中进行匹配,其中,所述四元组信息包括:源IP地址、源TCP端口、目的IP地址和目的TCP端口;若在所述合法TCP连接表中匹配,则转发所述SYN请求报文;若在所屈合法TCP连接表中不能匹配,则将所述四元组信息在所述非法TCP半连接表中匹配;若在所述非法TCP半连接表中匹配,则丢弃该SYN请求报文并更新所述非法TCP半连接表;若在所述非法TCP半连接表中不能匹配,则根据四元组信息中的目的IP地址在所述非法TCP半连接数目表中查找对应的TCP半连接数;判断所述目的IP地址的TCP半连接数是否达到预设阈值;若达到所述预设阈值,则增加所述SYN请求报文对应条目至所述非法TCP半连接表,并将此目的IP地址的TCP半连接数加1,并向所述服务器转发所述SYN请求报文;在入口路由/交换设备收到所述SYN请求报文的ACK报文时,转发所述ACK报文,并将所述增加条目从所述非法TCP半连接表移至合法TCP连接表,并将此目的IP地址的TCP半连接数减1;若未达到所述预设阈值,则丢弃所述SYN请求报文,向所述客户端发送SYN加ACK报文,并检查客户端是否反馈ACK报文;若所述客户端有反馈ACK报文,则增加对应所述SYN请求报文的条目至所述合法TCP连接表,并向所述客户端发送RST报文;若所述客户端未反馈ACK报文,则增加对应所述SYN请求报文的条目至所述非法TCP半连接表,并向所述服务器端发送相关的RST报文。可选的,所述SYN加ACK报文包含根据所述SYN请求报文的四元组信息生成的加密信息;所述反馈ACK是通过解密所述加密信息而生成的,以证明所述客户端合法。可选的,所述非法TCP半连接表中的条目具有老化时间;所述增加对应所述SYN请求报文的条目至所述非法TCP半连接表,并向所述服务器端发送相关的RST报文,包括:在所述非法TCP半连接表中找到最老的条目,产生对应的RST并发送给所述服务器端;生成对应所述SYN请求报文的条目来替换所述最老条目。可选的,所述过滤策略包括:在所述入口路由器收到RST或FIN报文时,根据所述RST或FIN报文的四元组信息在所述合法TCP连接表中进行匹配,其中,所述四元组信息包括:源IP地址、源TCP端口、目的IP地址和目的TCP端口;若在所述合法TCP连接表中匹配,则从所述合法TCP连接表中删除所述RST或FIN报文的相关条目。如上所述,本发明提供一种SDN控制器、路由/交换设备及网络防御方法,应用于包括客户端、服务器端、及连接所述客户端及服务器端间的路由/交换设备的网络中,本发明在所述SDN控制器建立并储存合法TCP连接表、非法TCP半连接表和非法TCP半连接数目表;在所述网络受到攻击时,生成含有过滤动作类型的流表并下发至所述攻击者所在入口路由/交换设备,以控制所述路由/交换设备据以执行对应的过滤策略;本发明采用了SDN架构,能够感知攻击者的位置,并通过下流表到入口路由器的方式动态地实现对攻击报文的入口过滤,并可结合加密的SYN加ACK报文及回复ACK的机制准确确定被归类为攻击的数据报文,解决了未将攻击请求报和正常请求报区别对待的问题,且即使黑客发起TCP泛洪攻击,也不会影响TCP服务器对合法用户的请求处理。附图说明图1显示为本发明一实施例中SDN控制器及所应用网络环境的结构示意图。图2显示为本发明一实施例中过滤策略处理SYN请求报文的流程示意图。图3显示为本发明一实施例中非法TCP半连接表老化功能的流程示意图。图4显示为本发明一实施例中过滤策略处理RST或者FIN报文的流程示意图。图5显示为本发明一实施例中过滤策略中通过非法TCP半连接表处理的流程示意图。图6显示为本发明一实施例中路由/交换设备的结构示意图。图7显示为本发明一实施例中网络防御方法的流程示意图。元件标号说明1SDN控制器11建立模块12流表生成模块2客户端3服务器端4路由/交换设备41储存模块42过滤控制模块S1~S2方法步骤具体实施方式以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明应用于SDN网络架构中,SDN即软件定义网络(SoftwareDefinedNetwork,SDN),是Emulex网络一种新型网络创新架构,其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制。如图1所示,本发明提供一种SDN控制器1,应用于包括客户端2、服务器端3、及连接所述客户端2及服务器端3间的路由/交换设备4(例如交换机或路由器)的SDN网络中,所述SDN控制器1包括:储存模块41、及流表生成模块12。所述建立模块11,用于建立合法TCP连接表、非法TCP半连接表和非法TCP半连接数目表并送至所述路由/交换设备4储存。在一实施例中,所述合法TCP连接表记录合法客户端2的TCP连接,其表明了合法的TCP请求用户,匹配合法TCP连接表的TCPSYN请求报文将被转发到TCP服务器进行处理;在一实施例中,所述合法TCP连接表应包含源IP地址、目的IP地址、源TCP端口及目的TCP端口信息的相关条目以对报文的四元组信息进行匹配,此内容会于后文作详细描述;非法TCP半连接表表明了正在攻击的黑客用户或处于TCP半连接的用户,而所述非法TCP半连接数目表表明各个所述非法TCP半连接的次数,所述非法TCP半连接表应包含源IP地址、目的IP地址、源TCP端口、及目的TCP端口信息的相关条目。在一实施例中,所述合法TCP连接表、非法TCP半连接表和非法TCP半连接数目表是可以流表形式发送并保存于所述路由/交换设备4设备的,当然亦可通过其他方式,仅需便于查找匹配即可,并非以此为限。所述流表生成模块12,用于在所述网络受到攻击(例如为TCP泛洪攻击)时,生成含有过滤动作类型的流表并下发至所述攻击者所在入口路由/交换设备4(例如离攻击者最近的路由器或交换机,即图示路由/交换设备A),以控制所述路由/交换设备4据以执行对应的过滤策略。在一实施例中,例如在SDN控制器1下发交换机或路由器的OpenFlow流表中增加了包含执行过滤的动作类型(ACTION)的流表项,该流表项还可包括用于将需要防范攻击的对象(例如需要防御的服务器端3IP地址)作为对应所述过滤动作类型的匹配字段,在交换机匹配到相关的攻击信息时,可对应执行所述过滤动作。在一实施例中,所述SDN控制器1可通过进行全网的路径分析而了解流量分布,从而定位可能的攻击者,本发明对于同一匹配目的IP的数据流而根据合法TCP连接表、非法TCP半连接表和非法TCP半连接数目表内容,在入口路由器侧实现对攻击报文的入口过滤,具体来说,在一实施例中,如图2所示,所述过滤策略包括:(a)在所述入口路由/交换设备4接收到来自客户端2的SYN请求报文时,根据所述SYN请求报文的四元组信息在所述合法TCP连接表中进行匹配,其中,所述四元组信息包括:源IP地址、源TCP端口、目的IP地址和目的TCP端口;(b)若在所述合法TCP连接表中匹配,则转发所述SYN请求报文;优选的,刷新合法TCP连接表,所述合法TCP连接表可具有硬件老化功能,所述刷新指的是指合法TCP连接表中条目被命中并重新老化;(c)若在所屈合法TCP连接表中不能匹配,则将所述四元组信息在所述非法TCP半连接表中匹配;(d)若在所述非法TCP半连接表中匹配,则丢弃该SYN请求报文并更新所述非法TCP半连接表;(e)若在所述非法TCP半连接表中不能匹配,则根据四元组信息中的目的IP地址在所述非法TCP半连接数目表中查找对应的TCP半连接数;(f)判断所述目的IP地址的TCP半连接数是否达到预设阈值;在一实施例中,所述的达到为大于或等于;(g)若达到所述预设阈值,则增加所述SYN请求报文对应条目至所述非法TCP半连接表,并将此目的IP地址的TCP半连接数加1,并向所述服务器转发所述SYN请求报文;在入口路由/交换设备4收到所述SYN请求报文的ACK报文时,转发所述ACK报文,并将所述增加条目从所述非法TCP半连接表移至合法TCP连接表,并将此目的IP地址的TCP半连接数减1;(h)若未达到所述预设阈值,则丢弃所述SYN请求报文,向所述客户端2发送SYN加ACK报文,并检查客户端2是否反馈ACK报文;(i)若所述客户端2有反馈ACK报文,则增加对应所述SYN请求报文的条目至所述合法TCP连接表,并向所述客户端2发送RST报文;(j)若所述客户端2未反馈ACK报文,则增加对应所述SYN请求报文的条目至所述非法TCP半连接表,并向所述服务器端3发送相关的RST报文。在一实施例中,优选的,SDN网络中的交换机在硬件上需要支持合法TCP连接表、非法TCP半连接表和非法TCP半连接数目表;本发明将SDN网络中的交换机的控制面都上移到SDN控制器1,交换机只保留数据面,而支持扩展的SDN网络内流表(例如SDN控制器1下发流表)和OpenFlow协议;SDN控制器1和交换机还需要支持扩充OpenFlow流表指令集,为支持防御TCP泛洪攻击而新增流表Action类型例如名称为:“OFPAT_ANTI_TCP_FLOODING”;SDN交换机在硬件上支持合法TCP连接表和非法TCP半连接表的新增,删除和老化,并且也可支持非法TCP半连接数目表的动态统计。在一实施例中,所述非法TCP半连接表中的条目具有老化时间即例如硬件老化功能,用户可以根据实际需求修改老化时间,需要注意的是老化时间需要在下个老化周期生效。缺省的老化时间为75秒,和伯克利实现的TCP连接总的超时时间保持一致。所述增加对应所述SYN请求报文的条目至所述非法TCP半连接表,并向所述服务器端3发送相关的RST报文,包括:在所述非法TCP半连接表中找到最老的条目,产生对应的RST并发送给所述服务器端3;生成对应所述SYN请求报文的条目来替换所述最老条目;在一具体实施例中,可参考图3的示例。在一实施例中,当支持SDN的入口路由器收到RST或者FIN报文,并且在合法TCP连接表中匹配到有效条目,系统将从合法TCP连接表中删除相关条目。则所述过滤策略包括:在所述入口路由器收到RST或FIN报文时,根据所述RST或FIN报文的四元组信息在所述合法TCP连接表中进行匹配,其中,所述四元组信息包括:源IP地址、源TCP端口、目的IP地址和目的TCP端口;若在所述合法TCP连接表中匹配,则从所述合法TCP连接表中删除所述RST或FIN报文的相关条目;在一具体实施例中,可参考图4的示例。在一实施例中,所述SYN加ACK报文包含根据所述SYN请求报文的四元组信息生成的加密信息;所述反馈ACK是通过解密所述加密信息而生成的,以证明所述客户端2合法。具体来讲,当TCP的半连接数没有超出指定的阈值,TCPSYN请求报文将会被透传给TCP服务器,否则SDN交换机向客户端2发送一个类似的SYN+ACK消息,在这个消息中,所述加密信息(例如序列号形式)是服务器根据客户端2的IP地址、端口号、服务器的IP地址、端口号以及时间等通过一个加密的函数生成的,所述加密算法可以为现有的加密算法或自定义的加密算法;当接收到从客户端2发来的ACK报文时,针对这个SYN+ACK报文的ACK报文,将表明这是一个合法的TCP客户端2,因为非法的TCP客户端2不可能解密SYN+ACK报文中的加密信息而反馈ACK报文的;路由/交换设备4将向TCP客户端2发送RST报文来忽略第一次SYN请求,同时增加对应的条目到合法TCP连接表;此合法用户的第二次SYN请求由于匹配到合法TCP连接表而被正常处理;如果客户端2并没有响应SDN交换机发送的SYN+ACK消息,此SYN请求报文将被当作攻击报文被丢弃,同时需替换非法TCP半连接表中最老的条目;具体处理流程请参照图5。如图6所示,结合上述内容,本发明所提供的路由/交换设备4,网络连接于客户端2及服务器端3间并连接于SDN控制器1,所述路由/交换设备4包括:储存模块41,用于储存合法TCP连接表、非法TCP半连接表和非法TCP半连接数目表;过滤控制模块42,用于从所述SDN控制器1接收含有过滤动作类型的流表,以控制所述路由/交换设备4据以执行对应的过滤策略;其中,所述流表是由所述SDN控制器1在所述网络受到攻击时,生成并下发的。如图7所示,本发明提供一种网络防御方法,应用于包括客户端、服务器端、及连接所述客户端及服务器端间的路由/交换设备、及控制各所述路由/交换设备的SDN控制器的网络中,所述方法同上述实施例中的技术原理大致相同,因此以下对部分重复的技术细节将不再赘述;所述方法包括:步骤S1:在所述SDN控制器建立并储存合法TCP连接表、非法TCP半连接表和非法TCP半连接数目表;步骤S2:在所述网络受到攻击时,生成含有过滤动作类型的流表并下发至所述攻击者所在入口路由/交换设备,以控制所述路由/交换设备据以执行对应的过滤策略。在一实施例中,所述过滤策略包括:在所述入口路由/交换设备接收到来自客户端的SYN请求报文时,根据所述SYN请求报文的四元组信息在所述合法TCP连接表中进行匹配,其中,所述四元组信息包括:源IP地址、源TCP端口、目的IP地址和目的TCP端口;若在所述合法TCP连接表中匹配,则转发所述SYN请求报文;若在所屈合法TCP连接表中不能匹配,则将所述四元组信息在所述非法TCP半连接表中匹配;若在所述非法TCP半连接表中匹配,则丢弃该SYN请求报文并更新所述非法TCP半连接表;若在所述非法TCP半连接表中不能匹配,则根据四元组信息中的目的IP地址在所述非法TCP半连接数目表中查找对应的TCP半连接数;判断所述目的IP地址的TCP半连接数是否达到预设阈值;若达到所述预设阈值,则增加所述SYN请求报文对应条目至所述非法TCP半连接表,并将此目的IP地址的TCP半连接数加1,并向所述服务器转发所述SYN请求报文;在入口路由/交换设备收到所述SYN请求报文的ACK报文时,转发所述ACK报文,并将所述增加条目从所述非法TCP半连接表移至合法TCP连接表,并将此目的IP地址的TCP半连接数减1;若未达到所述预设阈值,则丢弃所述SYN请求报文,向所述客户端发送SYN加ACK报文,并检查客户端是否反馈ACK报文;若所述客户端有反馈ACK报文,则增加对应所述SYN请求报文的条目至所述合法TCP连接表,并向所述客户端发送RST报文;若所述客户端未反馈ACK报文,则增加对应所述SYN请求报文的条目至所述非法TCP半连接表,并向所述服务器端发送相关的RST报文。在一实施例中,所述SYN加ACK报文包含根据所述SYN请求报文的四元组信息生成的加密信息;所述反馈ACK是通过解密所述加密信息而生成的,以证明所述客户端合法。在一实施例中,所述非法TCP半连接表中的条目具有老化时间;所述增加对应所述SYN请求报文的条目至所述非法TCP半连接表,并向所述服务器端发送相关的RST报文,包括:在所述非法TCP半连接表中找到最老的条目,产生对应的RST并发送给所述服务器端;生成对应所述SYN请求报文的条目来替换所述最老条目。在一实施例中,所述过滤策略包括:在所述入口路由器收到RST或FIN报文时,根据所述RST或FIN报文的四元组信息在所述合法TCP连接表中进行匹配,其中,所述四元组信息包括:源IP地址、源TCP端口、目的IP地址和目的TCP端口;若在所述合法TCP连接表中匹配,则从所述合法TCP连接表中删除所述RST或FIN报文的相关条目。综上所述,本发明提供一种SDN控制器、路由/交换设备及网络防御方法,应用于包括客户端、服务器端、及连接所述客户端及服务器端间的路由/交换设备的网络中,本发明在所述SDN控制器建立并储存合法TCP连接表、非法TCP半连接表和非法TCP半连接数目表;在所述网络受到攻击时,生成含有过滤动作类型的流表并下发至所述攻击者所在入口路由/交换设备,以控制所述路由/交换设备据以执行对应的过滤策略;本发明采用了SDN架构,能够感知攻击者的位置,并通过下流表到入口路由器的方式动态地实现对攻击报文的入口过滤,并可结合加密的SYN加ACK报文及回复ACK的机制准确确定被归类为攻击的数据报文,解决了未将攻击请求报和正常请求报区别对待的问题,且即使黑客发起TCP泛洪攻击,也不会影响TCP服务器对合法用户的请求处理。上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所屈技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1