一种软件定义网络的DDoS攻击模拟和攻击检测方法及装置与流程

文档序号:12789620阅读:211来源:国知局
一种软件定义网络的DDoS攻击模拟和攻击检测方法及装置与流程

本发明属于网络安全技术领域,尤其涉及一种软件定义网络的DDoS攻击模拟和攻击检测方法及装置。



背景技术:

近年来以软件定义网络(SDN)为基础架构的网络蓬勃发展,软件定义网络将传统IP网络的路由控制和数据转发进行分离,实现集中控制和分布转发,并通过提供软件可编程的方式简化了网络的管理和配置,然而这也扩大了网络分布式拒绝服务攻击(DDoS)的攻击面。

目前,软件定义网络对DDoS的抑制绝大多数只考虑到控制平面的DDoS攻击的问题。已有研究表明,软件定义网络数据平面的DDoS攻击更容易对软件定义网络造成威胁,并且数据平面DDoS攻击的隐蔽性会刻意地回避多数软件定义网络上的DDoS检测。

在模拟软件定义网络数据平面的DDoS攻击时,相关算法提出的基于流表项超时的隐蔽性DDoS攻击,该算法使用增量模式(Incremental mode)周期性地增加僵尸主机的个数直到目标交换机流表趋近饱和状态,僵尸主机以小于流表项超时的攻击间隔周期性地发送攻击包,从而保持攻击包的流表项常在目标交换机的流表内,使得合法流表项无法安装处理。然而,增量模式无法使得僵尸主机的攻击速率快速地达到“最小攻击速率”(以最小化的攻击速度使目标交换机的流表项保持趋近于流表总大小的饱和状态)。

现有软件定义网络数据平面DDoS攻击的检测算法提出周期性地从目标交换机中获取流表项并检查获取的流表项,通过检查结果判断是否存在隐蔽攻击流当该算法布置在控制器上时,会为软件定义网络的控制平面和数据平面之间的安全通道增加大量的流量负载,当该算法部署在每个目标交换机上时,不符合软件定义网络逻辑集中控制的思想,类似检测算法的升级、网络需要根据检测结果采取缓解措施(如黑名单等的实现)都是复杂的。



技术实现要素:

本发明的目的在于提供一种软件定义网络的DDoS攻击模拟和攻击检测方法及装置,旨在解决由于现有技术中软件定义网络的数据平面隐蔽性DDoS攻击模拟、以及软件定义网络的数据平面DDoS攻击检测的效率较低,软件定义网络的数据平面DDoS攻击检测的实现较为复杂的问题。

一方面,本发明提供了一种软件定义网络的DDoS攻击模拟和攻击检测方法,所述方法包括下述步骤:

通过预设线性递增和增量模式的方式增加僵尸主机,通过所有僵尸主机向软件定义网络中预设的目标交换机发起数据平面的隐蔽性DDoS攻击;

根据所述软件定义网络中所有交换机上流表的更新,对所述软件定义网络的控制器上预先构建的攻击流监控表进行同步更新;

对所述攻击流监控表进行周期性检测,以确定所述攻击流监控表中是否有存在时长超过预设时长阈值的监控表项;

当所述攻击流监控表中有存在时长超过所述时长阈值的监控表项时,确定所述存在时长超过所述预设时长阈值的监控表项所对应的网络流为针对所述软件定义网络数据平面的隐蔽攻击流。

另一方面,本发明提供了一种软件定义网络的DDoS攻击模拟和攻击检测装置,所述装置包括:

攻击模拟模块,用于通过预设线性递增和增量模式的方式增加僵尸主机,通过所有僵尸主机向软件定义网络中预设的目标交换机发起数据平面的隐蔽性DDoS攻击;

表更新模块,用于根据所述软件定义网络中所有交换机上流表的更新,对所述软件定义网络的控制器上预先构建的攻击流监控表进行同步更新;

超时检测模块,用于对所述攻击流监控表进行周期性检测,以确定所述攻击流监控表中是否有存在时长超过预设时长阈值的监控表项;以及

攻击流确定模块,用于当确定所述攻击流监控表中有存在时长超过所述时长阈值的监控表项时,确定所述存在时长超过所述预设时长阈值的监控表项所对应的网络流为针对所述软件定义网络数据平面的隐蔽攻击流。

本发明通过预设的线性递增和增量模式的方式增加僵尸主机,通过所有僵尸主机向软件定义网络中预设的目标交换机发起数据平面的隐蔽性DDoS攻击,根据软件定义网络中所有交换机上流表的更新,对软件定义网络的控制器上预先构建的攻击流监控表进行同步更新,对攻击流监控表进行周期性检测,以确定攻击流监控表中是否有存在时长超过预设时长阈值的监控表项,当确定攻击流监控表中有该监控表项时,确定该监控表项对应的网络流为针对软件定义网络数据平面的隐蔽攻击流,从而通过线性递增与增量模式结合有效地提高了软件定义网络中数据平面隐蔽性DDoS攻击模拟的效率,通过控制器上攻击流监控表的构建、更新和检测实现数据平面隐蔽性DDoS攻击的检测,有效地避免了软件定义网络安全通道额外的通信开销,提高了数据平面隐蔽性DDoS攻击的检测效率。

附图说明

图1是本发明实施例一提供的软件定义网络的DDoS攻击模拟和攻击检测方法的实现流程图;

图2是本发明实施例二提供的软件定义网络的DDoS攻击模拟和攻击检测装置的结构示意图。以及

图3是本发明实施例二提供的软件定义网络的DDoS攻击模拟和攻击检测装置的优选结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

以下结合具体实施例对本发明的具体实现进行详细描述:

实施例一:

图1示出了本发明实施例一提供的软件定义网络的DDoS攻击模拟和攻击检测方法的实现流程,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:

在步骤S101中,通过预设线性递增和增量模式的方式增加僵尸主机,通过所有僵尸主机向软件定义网络中预设的目标交换机发起数据平面的隐蔽性DDoS攻击。

本发明实施例适用于软件定义网络数据平面的隐蔽性DDoS攻击的攻击模拟和攻击检测平台或系统,DDoS攻击即分布式拒绝服务攻击。在攻击模拟者向软件定义网络中的目标交换机发起数据平面的隐蔽性DDoS攻击时,先通过预设的线性递增方式多批次地增加僵尸主机的数量。在通过线性递增方式多批次增加僵尸主机的过程中,通过当前已有的僵尸主机按照软件定义网络的正常流速率向目标交换机发起攻击,在预设的攻击时间间隔后,再增加下一批次的僵尸主机。

在本发明实施例中,在线性递增的同时检测目标交换机的流安装成功率,当流成功率低于预设的第一成功率阈值时,可认为目标交换机的流表即将达到饱和状态,此时停止僵尸主机的线性递增。接着,通过预设的增量模式方式增加僵尸主机数量(即一个一个地增加僵尸主机数量),同时通过这些僵尸主机按照正常流速率向目标交换机发起攻击,当检测到目标交换机的流安装成功率低于预设的第二成功率阈值时,可以认为目标交换机的流表已经达到饱和状态,即僵尸主机发送的网络流产出的流表项填满了流表,导致目标交换机无法为正常的网络流保存流表项进而无法响应正常的流请求,此时所有僵尸主机向目标交换机发起攻击的速率达到了最小攻击速率。

具体地,流安装成功率为目标交换机的流表中成功安装的流表项占所有需要安装流表项的比例。第一成功率为目标交换机的流表中流安装成功率的一个较低阈值,第二成功率为目标交换机流表中流安装成功率的一个最低阈值,第一成功率和第二成功率可根据攻击模拟中对目标交换机流表饱和度的需要进行调整。最小攻击速率为僵尸主机以最小化的攻击速度使目标交换机的流表中的流表项趋近于流表总大小的饱和状态。

作为示例地,在采用线性递增方式时,第一次增加一个僵尸主机,总共1·(1+1)/2个僵尸主机,每个僵尸主机都以软件定义网络的正常流速率向目标交换机发起攻击,在攻击时间间隔过后,第二次增加两个僵尸主机,总共2·(2+1)/2个僵尸主机。每次增加僵尸主机的数目都以线性递增的个数增加。

在本发明实施例中,通过线性递增和增量模式方式有效提高了僵尸主机对目标交换机的攻击速度达到最小攻击速率的效率,满足攻击速度不超过最小攻击速度的DDoS攻击都具有隐蔽性,因此增加僵尸主机时的攻击和僵尸主机增加完毕后的攻击都具有攻击的隐蔽性特征。

在步骤S102中,根据软件定义网络中所有交换机上流表的更新,对软件定义网络的控制器上预先构建的攻击流监控表进行更新同步。

在本发明实施例中,为了避免软件定义网络中控制器(控制平面)和交换机(数据平面)之间的安全通道出现大量的流量负载问题,选择在控制器上进行数据平面隐蔽性DDoS攻击的检测,同时也可以充分利用软件定义网络中控制器的全局拓扑信息和动态编程等特点,因此预先在软件定义网络的控制器上构建攻击流监控表,为了便于区别,将攻击流监控表的表项称为监控表项。监控表的结构可包括交换机标识、流表项序列、流表项匹配域、流表项添加时刻以及流表项存在时长等,交换机标识用来标识流表项所在的交换机,流表项序列用来区别每个监控表项以及监控表项对应的流表项,流表项添加时刻为流表项被添加到流表中的时刻,流表项存在时长即流表项在流表中存在的时长,每个监控表项分别用来监控交换机上流表中对应的一个流表项,其中,交换机标识、流表项序列、流表项匹配域、流表项添加时刻都可通过交换机触发的Packet-in事件获得,流表项存在时长可通过当前时刻减去流表项添加时刻得到。

优选地,为了在保持每个监控表项的唯一性、每个监控表项对应流表项的唯一性、且通过攻击流监控表可以在控制器上快速地检索到特定的网络流,将流表项的cookie字段设置为监控流表项中的流表项序列。

在本发明实施例中,控制器无法在检测前确定出目标交换机,因此通过攻击流监控表监控软件定义网络所有交换机上流表的更新。当软件定义网络中交换机接收到网络流、且交换机的流表中不存在该网络流对应的流表项时,交换机触发Packet-in事件,即发送Packet-in消息给控制器,由控制器做出决策,当控制器决定在交换机的流表中添加该网络流对应的流表项时,在攻击流监控表中添加该流表项对应的监控表项,即该网络流对应的监控表项。当网络流由于超过定时器时间idle_timeout被交换机删除或者交换机接收到删除命令将网络流删除并将该网络流对应的流表项删除时,触发Flow-removed事件,当控制器接收到Flow-removed消息时,将该流表项(或者该网络流)对应的监控表项删除,从而不需要实时或周期性地查询软件定义网络所有交换机上的所有流表,有效地提高了网络流监控的效率。

在步骤S103中,对攻击流监控表进行周期性检测,以确定攻击流监控表中是否有存在时长超过预设时长阈值的监控表项。

在本发明实施例中,对控制器上的攻击流监控表进行周期性地检测,确定攻击流监控表中是否存在流表项存在时长超过预设时长阈值的监控表项,即确定攻击流监控表中是否有存在时长超过该时长阈值的监控表项,也即确定流表中是否有存在时长超过该时长阈值的流表项。具体地,时长阈值可根据实验结果进行设置。

在步骤S104中,当确定攻击流监控表中有存在时长超过时长阈值的监控表项时,确定存在时长超过时长阈值的监控表项所对应的网络流为针对软件定义网络数据平面的隐蔽攻击流。

在本发明实施例中,当确定攻击监控流表中存在超时的监控表项时,可认为该监控表项对应的网络流为针对软件定义网络数据平面的隐蔽攻击流,通过该监控表项查找到该网络流,实现数据平面隐蔽性DDoS攻击的检测。

在本发明实施例中,通过线性递增和增量模式方式增加僵尸主机,在成功模拟数据平面隐蔽性DDoS攻击同时,有效地加快了DDoS攻击速率达到最小攻击速度过程。通过在控制器上构建攻击流监控表实现在控制器上进行DDoS攻击检测,并在攻击检测的过程中通过Packet-in事件和Flow-removed事件更新攻击流监控表,有效地避免攻击检测给交换机和控制器间的安全通道带来额外的通信开销,提高了数据平面隐蔽性DDoS攻击的检测效率。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。

实施例二:

图2示出了本发明实施例二提供的软件定义网络的DDoS攻击模拟和攻击检测装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分,其中包括:

攻击模拟模块21,用于通过预设线性递增和增量模式的方式增加僵尸主机,通过所有僵尸主机向软件定义网络中预设的目标交换机发起数据平面的隐蔽性DDoS攻击;

表更新模块22,用于,根据软件定义网络中所有交换机上流表的更新,对软件定义网络的控制器上预先构建的攻击流监控表进行同步更新;

超时检测模块23,用于对攻击流监控表进行周期性检测,以确定攻击流监控表中是否有存在时长超过预设时长阈值的监控表项;以及

攻击流确定模块24,用于当攻击流监控表中有存在时长超过时长阈值的监控表项时,确定存在时长超过时长阈值的监控表项所对应的网络流为针对软件定义网络数据平面的隐蔽攻击流。

优选地,如图3所示,攻击模拟模块21包括线性递增模块311、增量模式模块312和隐蔽性攻击模块313,其中:

线性递增模块311,用于对僵尸主机的数目进行线性递增,当检测到目标交换机的流安装成功率低于预设第一成功率阈值时,停止对僵尸主机进行线性递增;

增量模式模块312,用于对僵尸主机的数目进行增量递增,当检测到目标交换机的流安装成功率低于预设第二成功率阈值时,停止对僵尸主机进行增量递增;以及

隐蔽性攻击模块313,用于根据所有的僵尸主机和软件定义网络的正常流速率,以最小攻击速率向目标交换机发送网络流。

进一步优选地,线性递增模块311包括递增攻击模块和递增停止模块,其中:

递增攻击模块,用于根据线性递增的方式和预设的攻击时间间隔多批次地增加僵尸主机的数目,每批僵尸主机在出现后以正常流速率向目标交换机发起攻击;以及

递增停止模块,用于通过控制器获取目标交换机的流安装成功率,当检测到流安装成功率低于第一成功率阈值时,确定流表趋于饱和,停止线性递增。

优选地,表更新模块22包括监控表构建模块321、更新确定模块322和监控表更新模块323,其中:

监控表构建模块321,用于预先在控制器上构建攻击流监控表,攻击流监控表的监控表项包括交换机标识、流表项序列、流表项匹配域、流表项添加时刻和流表项存在时长;

更新确定模块322,用于根据所有交换机触发的Packet-in事件和Flow-removed事件,分别确定所有交换机的流表中添加的流表项和删除的流表项;以及

监控表更新模块323,用于在攻击流检测表中添加该添加的流表项对应的监控表项和删除该删除的流表项对应的监控表项。

优选地,超时检测模块23包括检测模块331和超时确定模块332,其中:

检测模块331,用于对攻击流监控表进行周期性检测,以检测攻击流监控表中是否存在流表项存在时长超过时长阈值的监控表项;以及

超时确定模块332,用于当存在流表项存在时长超过时长阈值的监控表项时,确定攻击流监控表中有存在时长超过时长阈值的监控表项。

在本发明实施例中,通过线性递增和增量模式方式增加僵尸主机,在成功模拟数据平面隐蔽性DDoS攻击同时,有效地加快了DDoS攻击速率达到最小攻击速度过程。通过在控制器上构建攻击流监控表实现在控制器上进行DDoS攻击检测,并在攻击检测的过程中通过Packet-in事件和Flow-removed事件更新攻击流监控表,有效地避免攻击检测给交换机和控制器间的安全通道带来额外的通信开销,提高了数据平面隐蔽性DDoS攻击的检测效率。

在本发明实施例中,软件定义网络的DDoS攻击模拟和攻击检测装置的各模块可由相应的硬件或软件模块实现,各模块可以为独立的软、硬件模块,也可以分别集成为软件定义网络的DDoS攻击模拟系统和软件定义网络的系统上的一个软、硬件模块,在此不用以限制本发明。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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