一种基于软件定义网络的网络异常流量检测防御系统转让专利

申请号 : CN201610567063.4

文献号 : CN106131027B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘静张世轩庄俊玺赖英旭

申请人 : 北京工业大学

摘要 :

本发明公开一种基于软件定义网络的网络异常流量检测防御系统,包括:IP地址防伪模块,位于软件定义网络中OpenFlow控制器中,用于对通过DHCP与静态配置IP两种类型的用户实现IP地址的动态绑定,实现源IP防伪;攻击检测模块,位于客户端,利用sFlow‑rt提取网络信息,建立正常流量模型,利用TCPReplay重放数据集建立正常与异常网络特征信息模型,基于客户端的SVM分类算法检测异常,将网络状态的改变信息发送给服务端;攻击阻断模块,位于服务端,用于根据所述网络状态的改变信息与阈值信息,对特定IP相关流表项进行提取计算访问速度,且与预设阈值进行比较,下发阻断流表项,实现异常流量的防御。采用本发明的技术方案,可以实现DDoS攻击的检测与防御。

权利要求 :

1.一种基于软件定义网络的网络异常流量检测防御系统,其特征在于,包括:IP地址防伪模块,位于软件定义网络中OpenFlow控制器中,用于对通过DHCP与静态配置IP两种类型的用户实现IP地址的动态绑定,实现源IP防伪;

攻击检测模块,位于客户端,利用sFlow-rt提取网络信息,建立正常流量模型,利用TCPReplay重放数据集建立正常与异常网络特征信息模型,基于客户端的SVM分类算法检测异常,将网络状态的改变信息发送给服务端;

攻击阻断模块,位于服务端,用于根据所述网络状态的改变信息,对特定IP相关流表项进行提取计算访问速度,且与预设阈值进行比较,下发阻断流表项,实现异常流量的防御;

攻击阻断模块在检测-防御C/S模型中扮演Server端,其需要连接多个Client并执行防御程序,其逻辑如下:进程1:监听端口等待新的Client连接;当有新连接成功时,开启子进程2;

进程2:接受Client端发送的消息,收到受攻击消息时启动子进程3,收到攻击解除消息时终止子进程3;

进程3:执行异常流量阻断;

通过控制器提供的南向接口与北向接口,上层应用得到所有向受害Client发送数据的主机,然后将这些主机向受害Client发送数据速率与受害Client设置的阈值进行比较,若超出阈值,则阻断此主机向受害Client发送数据。

2.如权利要求1所述基于软件定义网络的网络异常流量检测防御系统,其特征在于,所述IP地址防伪模块具体过程如下:动态绑定时每个交换机接入接口都会在两个状态中转换:

状态1:数据包会发送给控制器;

状态2:此端口已经完成绑定;

在控制器启动时向交换机各端口插入将数据发往控制器的流表项,以保证对其监控,进入状态1,然后分别处理两种获取IP的方式;

DHCP:当服务器向客户端发送DHCP ACK时,将其获取到的IP地址记为S,删除状态1中发往控制器流表项,同时下发交换机目标端口仅允许S源地址通过的流表项,进入状态2;

静态IP:当数据包从某一接入端口发送到控制器进行解析时,分析得到其源地址为S,删除状态1中发往控制器流表项,并下发此端口仅允许S源地址通过的流表项,进入状态2;

当客户端发送DHCP Release或交换机端口失去连接时,需要删除防伪流表项;重新插入此端口发往控制器的流表项,恢复到初始监控状态1。

3.如权利要求1所述基于软件定义网络的网络异常流量检测防御系统,其特征在于,所述网络信息包含:网络流量信息与源IP熵信息。

4.如权利要求1所述基于软件定义网络的网络异常流量检测防御系统,其特征在于,攻击检测模块的SVM分类算法对已经标注为正常或异常的网络信息进行学习;在得到新的未标注的数据后依据学习得到的模型进行分类,以确定网络信息是正常还是异常。

说明书 :

一种基于软件定义网络的网络异常流量检测防御系统

技术领域

[0001] 本发明属于网络检测的技术领域,尤其涉及一种基于软件定义网络的网络异常流量检测防御系统。

背景技术

[0002] 针对网络架构,目前已经提出了大量的DDoS攻击检测方法,而基于OpenFlow的软件定义网络技术主要是基于流规则进行数据转发,目前已有部分基于软件定义网络的攻击检测防御方法;但设计多是在目的端使用数学算法检测异常,只有少量算法提供了流量的清洗功能。
[0003] 肖佩瑶等人提出基于路由的检测方法,但当随机流发出时,控制器为每个流做出转发路径分析,下发流表项,这样做严重影响了控制器的性能,会造成软件定义网络中对控制器的DDoS攻击,其也反映了单单从攻击目的端检测攻击的弊端。
[0004] Q.Yan在论文中深入分析了软件定义网络与DDoS的关系,提出了在目的端检测攻击,在源端防御攻击的想法,但没有实际的工作,一切停留在理论阶段。
[0005] 综上所述,目前问题难以解决的根源是设计单一,不能从整体上防御攻击,同时实践不足,理论不能形成直接技术。

发明内容

[0006] 本发明要解决的技术问题是,提供一种基于软件定义网络的网络异常流量检测防御系统。
[0007] 为解决上述问题,本发明采用如下技术方案:
[0008] 一种基于软件定义网络的网络异常流量检测防御系统包括:
[0009] IP地址防伪模块,位于软件定义网络中OpenFlow控制器中,用于对通过DHCP与静态配置IP两种类型的用户实现IP地址的动态绑定,实现源IP防伪;
[0010] 攻击检测模块,位于客户端,利用sFlow-rt提取网络信息,建立正常流量模型,利用TCPReplay重放数据集建立正常与异常网络特征信息模型,基于客户端的SVM分类算法检测异常,将网络状态的改变信息发送给服务端;
[0011] 攻击阻断模块,位于服务端,用于根据所述网络状态的改变信息,对特定IP相关流表项进行提取计算访问速度,且与预设阈值进行比较,下发阻断流表项,实现异常流量的防御。
[0012] 作为优选,所述IP地址防伪模块具体过程如下:
[0013] 动态绑定时每个交换机接入接口都会在两个状态中转换:
[0014] 状态1:数据包会发送给控制器。
[0015] 状态2:此端口已经完成绑定。
[0016] 在控制器启动时向交换机各端口插入将数据发往控制器的流表项,以保证对其监控,进入状态1,然后分别处理两种获取IP的方式;
[0017] DHCP:当服务器向客户端发送DHCP ACK时,将其获取到的IP地址记为S,删除状态1中发往控制器流表项,同时下发交换机目标端口仅允许S源地址通过的流表项,进入状态2。
[0018] 静态IP:当数据包从某一接入端口发送到控制器进行解析时,分析得到其源地址为S,删除状态1中发往控制器流表项,并下发此端口仅允许S源地址通过的流表项,进入状态2。
[0019] 当客户端发送DHCP Release或交换机端口失去连接时,需要删除上述防伪流表项;重新插入此端口发往控制器的流表项,恢复到初始监控状态1。
[0020] 作为优选,所述网络信息包含:网络流量信息与源IP熵信息。
[0021] 作为优选,攻击检测模块的SVM分类算法对已经标注为正常或异常的网络信息进行学习;在得到新的未标注的数据后依据学习得到的模型进行分类,已确定网络信息是正常还是异常。
[0022] 本发明利用SDN网络构架实现目的端的检测和源端的防御,以解决DDoS攻击问题。源IP地址的伪造是DDoS攻击无法有效追踪攻击源的主要原因,利用SDN集中控制的优势,结合RFC 2827所用思想,实现了全自动化的源IP地址动态绑定,实现了源IP的防伪,使多种放大攻击失去效果。利用sFlow-rt提取网络信息,利用TCPReplay重放数据集建立正常与异常网络特征信息模型。使用SVM分类算法在被保护的目的端学习建立的模型,以检测攻击,每个被保护服务器可以设定不同的阈值。同时模块化的设计对于针对不同类型服务器替换特定的算法提供了可能。攻击阻断使用多进程设计,可同时连接多个攻击检测端。由上而下的下发阻断流表项,更好的贯彻了SDN中网络资源池化的思想。

附图说明

[0023] 图1为基于软件定义网络的网络异常流量检测防御系统的结构示意图。

具体实施方式

[0024] 下面结合附图和实施例对本发明进一步说明,应指出的是,所描述的实例仅旨在便于对本发明的理解,而对其不起任何限定作用。
[0025] 本发明实施例提供的一种基于软件定义网络的网络异常流量检测防御系统,在OpenFlow控制器中内建源IP地址防伪模块,对通过DHCP与静态配置IP两种类型的用户实现IP地址的动态绑定,实现源IP防伪。利用sFlow-rt提取网络信息,建立正常流量模型,在正常流量的基础上附加攻击数据集以得到异常流量模型。由客户端的SVM分类算法检测异常,发送消息给服务端。服务端通过控制器的流表信息提取API计算超过客户端规定的访问阈值的主机进行阻断。三方面整体实现异常流量的检测与防御。
[0026] 如图1所示,一种基于软件定义网络的网络异常流量检测防御系统包括:IP地址防伪模块、攻击检测模块以及攻击阻断模块,其中,
[0027] 所述IP地址防伪模块,位于软件定义网络中OpenFlow控制器中,用于对通过DHCP与静态配置IP两种类型的用户实现IP地址的动态绑定,实现源IP防伪,具体为:
[0028] 动态绑定时每个交换机接入接口都会在两个状态中转换:
[0029] 状态①:数据包会发送给控制器。
[0030] 状态②:此端口已经完成绑定。
[0031] 获取IP地址的途径有两种:使用DHCP服务或配置静态IP。首先在控制器启动时向交换机各端口插入将数据发往控制器的流表项,以保证对其监控,进入状态①,然后分别处理两种获取IP的方式。
[0032] DHCP:当服务器向客户端发送DHCP ACK时,将其获取到的IP地址记为S,删除状态①中发往控制器流表项,同时下发交换机目标端口仅允许S源地址通过的流表项,进入状态②。
[0033] 静态IP:当数据包从某一接入端口发送到控制器进行解析时,分析得到其源地址为S,删除状态①中发往控制器流表项,并下发此端口仅允许S源地址通过的流表项,进入状态②。
[0034] 当客户端发送DHCP Release或交换机端口失去连接时,需要删除上述防伪流表项;重新插入此端口发往控制器的流表项,恢复到初始监控状态①。
[0035] 所述攻击检测模块,位于客户端,利用sFlow-rt提取网络信息,建立正常流量模型,利用TCPReplay重放数据集建立正常与异常网络特征信息模型,基于客户端的SVM分类算法检测异常,将网络状态的改变信息发送给服务端。
[0036] 所述网络信息包含:网络流量信息与源IP熵信息。
[0037] SVM分类算法主要工作方式是对已经标注为正常或异常的网络信息进行学习;在得到新的未标注的数据后依据学习得到的模型进行分类,已确定网络信息是正常还是异常。
[0038] 攻击检测模块与攻击阻断模块构成C/S模型,其中攻击检测模块为Client端,攻击阻断模块运行后可以连接多个Client,接收多个目标服务器发出的消息。同时,本发明检测方法是一种通用的检测算法,针对不同的服务器可以应用更适合的检测方法。
[0039] 基于信息熵的方法在正确率与误报率上有突出的优势。在DDoS攻击发生时,网络特征的明显变化是流量增加,源IP地址增多。所以使用源IP的熵与流量结合作为SVM算法学习与分类的基础数据。
[0040] 要达到使用SVM分类算法对流量是否异常进行分类,自然要有学习样本。一部分正常样本,一部分异常样本。对网站正常时的流量与源IP熵记录,可以简单的得到正常样本。同时将正常流量搭载异常流量数据集,可以模拟出攻击发生时的异常样本。
[0041] 所述攻击阻断模块,位于服务端,用于根据所述网络状态的改变信息,对特定IP相关流表项进行提取计算访问速度,且与预设阈值进行比较,下发阻断流表项,实现异常流量的防御。
[0042] 攻击阻断模块在检测-防御C/S模型中扮演Server端,与Client端不同,其需要连接多个Client并执行防御程序。其逻辑如下。
[0043] 进程1:监听端口等待新的Client连接;当有新连接成功时,开启子进程2。
[0044] 进程2:接受Client端发送的消息,收到受攻击消息时启动子进程3,收到攻击解除消息时终止子进程3。
[0045] 进程3:执行异常流量阻断。
[0046] 通过控制器提供的南向接口与北向接口,上层应用可以得到所有向受害Client发送数据的主机。然后将这些主机向受害Client发送数据速率与受害Client设置的阈值进行比较,若超出阈值,则阻断此主机向受害Client发送数据。
[0047] 本发明基于软件定义网络的网络异常流量检测防御系统的工作过程包括以下步骤:
[0048] 步骤一:启动控制器,此时源IP防伪模块即开始工作,为通过DHCP服务与配置静态IP接入网络的用户进行动态IP绑定。
[0049] 步骤二:启动sFlow-rt,设置需要提取信息的OpenFlow交换机与需要的信息。
[0050] 步骤三:启动服务端,否则客户端会发生连接失败。设置控制器IP地址、服务端的IP地址与服务端口号。
[0051] 步骤四:启动客户端,设置保护服务器的IP地址、服务端IP地址与服务端口号,同时设置阈值。每经过一个检测周期客户端检测算法会判断是否出现了网络异常,若发现异常则会向服务端发送阻断消息。服务端依据消息内容执行阻断程序。
[0052] 以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。