一种软件定义网络中链路洪泛攻击检测响应机制的制作方法

文档序号:18899028发布日期:2019-10-18 21:40阅读:215来源:国知局
一种软件定义网络中链路洪泛攻击检测响应机制的制作方法

本发明涉及链路洪泛攻击检测响应技术领域,具体而言,尤其涉及一种软件定义网络中链路洪泛攻击检测响应机制。



背景技术:

sdn(software-definednetworking,软件定义网络)起源于美国斯坦福大学nickmckeown教授的cleanslate项目。为了利用网络中的大规模真实流量和应用来进行试验,nickmckeown教授等人提出了软件定义网络的架构的概念,并在此基础上,研究如何进行逻辑控制和数据转发的分离,以及提高网络的灵活性、可靠性、效率和网络安全问题。sdn概念的提出使得各科研所、企业、厂商对于下一代网络的研究有了明确的方向。但由于各自发展以及需求不同,每个研究团体对于sdn网络架构加入了自己相应的需求和理解,实现方式多种多样,甚至是参差不齐,这种情况虽然使得sdn有了多样性并且有了多种可能性,但是也造成了标准的难以统一。nickmckeown教授和他的团队在2008年的sigcomm会议上提出openflow:enablinginnovationincampusnetworks[1],从此openflow协议正式进入人们的视线,并于2009年12发布具有里程碑意义的openflow1.0版本。通过一个集中式的控制器,方便地定义基于网络流的安全控制策略,并应用到网络设备中,从而实现对整个网络通信的安全控制和管理。

sdn出现的最初的思想是解放底层设备,让网络设备更加经济、方便管理和规划。从广义层面来看,具有控制层与转发层相分离的网络架构,并且作为控制层核心的控制器通过通信接口对数据层面进行集中控制,应用层利用相应的api接口编写应用来满足自身的需求等条件,这种网络就能被称为一种sdn。

目前许多sdn研究人员和设备制造商以及企业对sdn架构的需求和理解总会根据自己的认知和了解,导致实现方式多种多样,但是sdn的基本架构是一致的。2012年开放网络基金协会(opennetworkingfoundation,onf)[2]提出sdn三层模式,受到了业界的广泛认同,并将之作为标准。onf作为一个非盈利组织,其建立的目的就是对网络架构进行创新,进而推动网络技术发展。sdn架构包括三个层面:数据层(基础设施层)、控制层、应用层和两个通信接口:南向接口和北向接口。整个架构主要由逻辑集中的控制器和分布式的转发设备构成,应用层应用可以根据网络管理者自身的业务需求通过控制器来制定相关策略、下达控制指令并与数据层的转发设备进行交互。其中负责控制器和应用层通信交互的是北向接口协议,负责管理配置数据层和控制层交互的是南向接口协议。

应用层主要是由多个sdn应用组成,通过北向接口也控制器进行通信交互。sdn应用程序通过可编程逻辑来对网络业务进行管理并将之下发给控制器,控制器接受应用层制定的策略并将之转化为自己的逻辑,然后生成控制信息下发到数据层,交换机完成控制器下发的控制命令。通过这样的过程,sdn的网络管理人员通过在应用层的可编程特性来进行网络的实施管理。



技术实现要素:

根据上述提出的技术问题,而提供一种软件定义网络中链路洪泛攻击检测响应机制。本发明主要利用一种软件定义网络中链路洪泛攻击检测响应机制,包括:潜在目标链路识别模块、链路拥塞监控模块、流量工程模块以及恶意主机识别模块,其特征在于,至少包括以下步骤:

步骤s1:所述潜在目标链路识别模块通过sdn控制器通过头部空间分析获取网络拓扑中的流路径,分析识别网络拓扑中攻击者的目标链路;

步骤s2:所述链路拥塞监控模块对识别的所述攻击者的目标链路进行实时监控,通过监控所述潜在目标链路的利用率是否达到预设的阈值来判断链路是否发生拥塞;

步骤s3:所述流量工程模块获知拥塞链路的情况之后通过对网络的链路拓扑信息以及负载分布信息进行收集与分析,对所述拥塞链路的流量从小到大排序,然后将高速率流量进行优先调度进行调度,将所述网络拥塞的态势降低至75%以下;

步骤s4:通过多次重路由所述拥塞链路上流量的源主机信息被记录下来;所述恶意主机识别模块结合所述多次重路由记录的源主机信息和重路由之后恶意主机发送探测路由命令traceroute的行为对潜在的恶意主机进行识别,并将识别出的恶意主机进行丢包限制。

进一步地,所述潜在目标链路识别模块根据获取的网络的拓扑结构信息来构建网络链路的集合linkmap,然后根据所述linkmap规划攻击;通过计算网络中流路径的交集来进行潜在目标链路的识别选择并结合控制器掌控的全局网络视图和头部空间分析网络拓扑感知获取;所述流路径表示一个流量进行过的路径。

更进一步的,所述网络拓扑感知获取首先根据openflow协议,控制器与交换机相互发送hello数据包建立通信连接。

进一步地,当连接建立完成后,所述控制器向所述交换机下发特征请求数据包features_request的数据包获取所述交换机的基本信息,其中包括交换机编号dpid以及交换机的各个端口号port_no,其中所述交换机编号dpid为所述交换机在网络中的唯一标识;所述控制器将携带dpid以及port_no信息的lldp数据包通过packet_out消息向对应交换机的端口发送,交换机接收到lldp数据包后向控制器发送packet_in消息询问控制器如何处理,最后控制器结合packet_in消息报头的交换机编号dpid、交换机的入端口号in_port以及lldp报文中的dpid和port_no得出一条链路信息。

更进一步地,直到控制器与其控制的所有路由器进行通信并获取其相关信息为止,所述控制器获取的网络中的交换机以及相应的终端设备组成的网络拓扑图通过networkx存储成图等待链路拥塞判断模块以及流量工程模块调用。

进一步地,所述链路拥塞监控模块通过ryu控制器掌握的全网视图以及周期性获取网络链路状态来判断潜在目标链路是否发生拥塞。

进一步地,所述流量工程模块引入了第三方包networkx来进行网络拓扑视图的存储,实现最佳转发路径的计算,需要对拥塞链路的流量进行从大到小排序,从而实现高效的缓解拥塞态势。

更进一步地,所述控制器获取全网的拓扑视图的过程为:

为获取网络中潜在目标链路集合,本发明使用头部空间分析hsa来获取网络中的流路径。

在进行头部空间分析时,一个数据包的包头部被看作为一个0和1的序列,包头部空间表示为{0,1}l,其中l表示分组的长度,并且以bit为单位;网络中的转发设备t,通过t来表示交换机的转发过程;

当一个包头部h到达时,转发到交换机的端口p,表示为:

t(h,p)→{(h1,p1),(h2,p2,...)};

按照{switch,rule}的序列来建立一对节点之间的流路径,其中rule表示交换机中数据包的处理规则,则流路径可以表示为:

fpi=(s1,r1)→...→(sn-1,rn-1)→(sn,rn);

这里详细的描述一下sdn网络中获取流路径的详细步骤。首先寻找流路径的起点,利用openflow控制器掌控的全网拓扑,获取网络的路由信息,假设交换机s1为头结点;

读取流表中的数据包的头部信息,并将这些信息转化成二进制向量,并计算头结点的目的ip地址ip_dst(h)和s1的源ip地址ip_src(s1)的交集,其中x表示通配符,z表示位交集的空集;两个包头部的交集是逐次对每一位进行交集,如果任何一位返回z,则所有位的交集都是空集;所述头结点的目的ip地址和s1的源ip地址的交集的结果不是空集,将s1添加到流路径,根据网络拓扑来获取中s1的下一跳交换机,将s1的目的ip地址与其下一跳的源ip,所述交换机s2求交集;倘若不是空集,则将s2添加到流路径。

进一步地,所述控制器结合上一个周期的信息,得到每一个交换机在一个周期t内接收的字节数和转发的字节数,再结合控制器掌握的网络拓扑图,得到潜在目标链路的状态,通过每条链路转发的流量的字节数和周期t的比值求得链路的当前负载为:

其中,bt表示链路t时刻转发的字节数,bt-t表示时刻t-t链路转发的字节数,然后通过链路的当前负载load与链路带宽的比值求得链路利用率为:

其中,b表示链路带宽。

较现有技术相比,本发明具有以下优点:本发明中随着网络规模的逐渐增大,检测响应系统的平均攻击缓解时间基本不变,增幅保持在0.5秒以内。网络规模的增加对本发明提出的检测响应系统的影响较小,本发明提出的链路洪泛攻击的检测响应系统能够适用于各种规模的网络场景。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明攻击模型示意图。

图2为本发明获取流路径过程示意图。

图3为本发明链路洪泛攻击缓解方案流程示意图。

图4为本发明链路洪泛攻击检测响应结构示意图。

图5为本发明实施例链路利用率变化对比示意图。

图6为本发明活跃恶意主机数目变化示意图。

图7为本发明流表项数目变化示意图。

图8为本发明不同网络规模下平均攻击缓解时间对比示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

如图1-图8所示,本发明包含一种软件定义网络中链路洪泛攻击检测响应机制,包括:潜在目标链路识别模块、链路拥塞监控模块、流量工程模块以及恶意主机识别模块,其特征在于,至少包括以下步骤:

步骤s1:所述潜在目标链路识别模块通过sdn控制器通过头部空间分析获取网络拓扑中的流路径,分析识别网络拓扑中攻击者的目标链路;将排序后的链路集合的前σ部分为潜在目标链路,σ为人为设定的比例,视情况而定。

步骤s2:所述链路拥塞监控模块对识别的所述攻击者的目标链路进行实时监控,通过监控所述潜在目标链路的利用率是否达到预设的阈值来判断链路是否发生拥塞;

步骤s3:所述流量工程模块获知拥塞链路的情况之后通过对网络的链路拓扑信息以及负载分布信息进行收集与分析,对所述拥塞链路的流量从小到大排序,然后将高速率流量进行优先调度进行调度,将所述网络拥塞的态势降低至75%以下。在本实施方式中,所述的收集,是指将上述的潜在目标链路的信息以及相关的链路利用率信息进行记录;而分析,是指从上述信息中发现拥塞的链路即链路利用率超过75%的链路为拥塞链路。

步骤s4:通过多次重路由所述拥塞链路上流量的源主机信息被记录下来;所述恶意主机识别模块结合所述多次重路由记录的源主机信息和重路由之后恶意主机发送探测路由命令traceroute的行为对潜在的恶意主机进行识别,并将识别出的恶意主机进行丢包限制。

作为一种优选的实施方式,所述潜在目标链路识别模块根据获取的网络的拓扑结构信息来构建网络链路的集合linkmap,然后根据所述linkmap规划攻击;通过计算网络中流路径的交集来进行潜在目标链路的识别选择并结合控制器掌控的全局网络视图和头部空间分析网络拓扑感知获取;所述流路径表示一个流量进行过的路径。

链路洪泛攻击模拟攻击参数如下:

1.在41个主机中随机抽取20个主机作为恶意主机;

2.预设网络中正常的链路平均带宽为10mbps;

3.每个恶意主机均分配平均0.5mbps的攻击流量。

4.在网络链路中随机选取三个目标链路,分别标记为链路a、链路b、链路c,进行攻击。

图5反映了本发明所提出的链路洪泛攻击检测响应系统缓解链路洪泛攻击过程中链路a、b、c的链路利用率变化趋势。以链路a为例,该链路的链路利用率在0s至140s期间一直处于较低且稳定状态,随后急剧上升至峰值75%后开始下降,最后链路利用率稳定在38.0%左右。这是由于攻击者在200s时刻对目标链路a进行攻击,随后本论文所提出的链路拥塞监控模块监控到目标链路出现异常,链路利用率急剧上升。当链路利用率达到75%时,流量工程模块开始工作,对拥塞链路的流量进行紧急调度以缓解链路的拥塞态势,使其恢复到正常状态。随着攻击者切换目标链路,链路拥塞监控模块始终能够准确监控到目标链路出现异常,流量工程模块始终能够对链路拥塞进行及时缓解。仿真结果验证了本论文所提出的流量工程模块功能的有效性,同时可见流量工程模块与链路拥塞监控模块之间协同工作能够有效地缓解链路洪泛攻击引起的网络链路拥塞,从而维持网络链路的正常通信。

为证明系统性能优越性,以下就上述实验过程中在保持正常主机发送流量时间以及数量保持不变的情况下,对网络中交换机的转发动作流表项的数量变化进行说明。如图7反映了网络中交换机转发动作流表项的数量变化趋势。图中曲线在0s至60s期间急剧上升,随后在200s时刻之后开始不断减少,并在600s时刻后趋于平稳。这是由于随着恶意主机对网络进行攻击,网络中的垃圾流表项数量急剧增加,而后检测响应系统中的恶意主机识别模块开始限制恶意主机发送数据,交换机中转发动作流表项达到硬超时后不断地被删除。仿真结果表明,本发明提出的链路洪泛攻击检测响应系统能够有效的减少恶意主机注入网络的垃圾流量。

在本实施方式中,所述网络拓扑感知获取首先根据openflow协议,控制器与交换机相互发送hello数据包建立通信连接。

作为一种优选的实施方式,当连接建立完成后,所述控制器向所述交换机下发特征请求数据包features_request的数据包获取所述交换机的基本信息,其中包括交换机编号dpid以及交换机的各个端口号port_no,其中所述交换机编号dpid为所述交换机在网络中的唯一标识;所述控制器将携带dpid以及port_no信息的lldp数据包通过packet_out消息向对应交换机的端口发送,交换机接收到lldp数据包后向控制器发送packet_in消息询问控制器如何处理,最后控制器结合packet_in消息报头的交换机编号dpid、交换机的入端口号in_port以及lldp报文中的dpid和port_no得出一条链路信息;

直到控制器与其控制的所有路由器进行通信并获取其相关信息为止,所述控制器获取的网络中的交换机以及相应的终端设备组成的网络拓扑图通过networkx存储成图等待链路拥塞判断模块以及流量工程模块调用。

在本实施方式中,所述链路拥塞监控模块通过ryu控制器掌握的全网视图以及周期性获取网络链路状态来判断潜在目标链路是否发生拥塞。

作为优选的实施方式,所述流量工程模块引入了第三方包networkx来进行网络拓扑视图的存储,实现最佳转发路径的计算,需要对拥塞链路的流量进行从大到小排序,从而实现高效的缓解拥塞态势。

在本实施方式中,所述控制器获取全网的拓扑视图的过程为:

为获取网络中潜在目标链路集合,本发明使用头部空间分析hsa来获取网络中的流路径。

在进行头部空间分析时,一个数据包的包头部被看作为一个0和1的序列,包头部空间表示为{0,1}l,其中l表示分组的长度,并且以bit为单位;网络中的转发设备t,通过t来表示交换机的转发过程;

当一个包头部h到达时,转发到交换机的端口p,表示为:

t(h,p)→{(h1,p1),(h2,p2,...)};

按照{switch,rule}的序列来建立一对节点之间的流路径,其中rule表示交换机中数据包的处理规则,则流路径可以表示为:

fpi=(s1,r1)→...→(sn-1,rn-1)→(sn,rn);

这里详细的描述一下sdn网络中获取流路径的详细步骤。首先寻找流路径的起点,利用openflow控制器掌控的全网拓扑,获取网络的路由信息,假设交换机s1为头结点;

读取流表中的数据包的头部信息,并将这些信息转化成二进制向量,并计算头结点的目的ip地址ip_dst(h)和s1的源ip地址ip_src(s1)的交集,其中x表示通配符,z表示位交集的空集;两个包头部的交集是逐次对每一位进行交集,如果任何一位返回z,则所有位的交集都是空集;所述头结点的目的ip地址和s1的源ip地址的交集的结果不是空集,将s1添加到流路径,根据网络拓扑来获取中s1的下一跳交换机,将s1的目的ip地址与其下一跳的源ip,所述交换机s2求交集;倘若不是空集,则将s2添加到流路径。

作为优选的实施方式,所述控制器结合上一个周期的信息,得到每一个交换机在一个周期t内接收的字节数和转发的字节数,再结合控制器掌握的网络拓扑图,得到潜在目标链路的状态,通过每条链路转发的流量的字节数和周期t的比值求得链路的当前负载为:

其中,bt表示链路t时刻转发的字节数,bt-t表示时刻t-t链路转发的字节数,然后通过链路的当前负载load与链路带宽的比值求得链路利用率为:

其中,b表示链路带宽。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1