本发明涉及网络攻击防御技术领域,具体涉及一种分布式拒绝服务攻击检测方法、装置、设备和存储介质。
背景技术:
分布式拒绝服务(distributeddenialofservice,ddos)是指攻击者向被攻击的主机发送大量的虚假报文,最终导致被攻击的主机系统崩溃,无法正常提供服务。
目前,通常利用openflow交换机的流表信息检测ddos攻击。openflow协议是目前最广泛使用的接口协议,openflow交换机使用的流表信息中隐含了交换机的网络流量状况,正常情况和发生攻击时流表信息会有不同程度的区别。可以利用openflow交换机的流表信息中的特征信息计算出熵值,然后将该熵值与定义的阈值相比较,当该熵值小于阈值时,认为受到了ddos攻击。
然而,上述利用openflow交换机的流表信息检测ddos攻击的方法,存在误报率高的问题。
技术实现要素:
因此,本发明要解决的技术问题是提供一种分布式拒绝服务攻击检测方法、装置、设备和存储介质。以解决现有技术中分布式拒绝服务攻击检测误报率高的问题。
本发明实施例的第一方面提供了一种分布式拒绝服务攻击检测方法,包括:每隔预设周期,获取预设覆盖范围内的所有交换机的流表信息;
提取流表信息中的流表特征;流表特征包括每数据流的平均数据包数、每数据流的平均字节数、数据流匹配成功率、端口增长速率、目的ip地址的增长速率和最大交换机流入数交换机;
根据预先获取的交换机的正常流量数据和分布式拒绝服务攻击流量数据,以及所有流表特征,对预设分类器进行训练,得到检测分类器;
基于检测分类器,对交换机的分布式拒绝服务攻击进行检测。
可选的,提取流表信息中的流表特征,包括:
将预设周期内所有流表信息中总的数据包数除以总的数据流数,得到每数据流的平均数据包数;
将预设周期内所有流表信息中总的字节数除以总的数据流数,得到每数据流的平均字节数;
将预设周期内所有流表信息中匹配成功的数据流数除以总的数据流数,得到数据流匹配成功率;
将预设周期内所有流表信息中不同目的端口的增长速率,确定为端口增长速率;
将预设周期内所有流表信息中目的ip地址的增长速率,确定为目的ip地址的增长速率;
根据预设周期内所有流表信息中的源ip地址、目的ip地址、流入交换机的编号和流出交换机的编号,确定最大交换机流入数交换机。
可选的,在提取流表信息中的流表特征之后,方法还包括:
对流表特征进行降维处理,得到降维后的流表特征;
根据预先获取的交换机的正常流量数据和分布式拒绝服务攻击流量数据,以及所有流表特征,对预设分类器进行训练,包括:
根据预先获取的交换机的正常流量数据和分布式拒绝服务攻击流量数据,以及所有降维后的流表特征,对预设分类器进行训练。
可选的,所述预设分类器的输入端连接有反向传播神经网络的输出层;其中,反向传播神经网络的输入层由六个神经元组成;反向传播神经网络的输出层由一个神经元组成;
根据预先获取的交换机的正常流量数据和分布式拒绝服务攻击流量数据,以及所有流表特征,对预设分类器进行训练,得到检测分类器,包括:
基于预先获取的交换机的正常流量数据和分布式拒绝服务攻击流量数据,对反向传播神经网络和预设分类器进行训练;
根据训练完成的反向传播神经网络和预设分类器对流表特征进行检测,并将流表特征标记为正常流量数据的流表特征或分布式拒绝服务攻击流量数据的流表特征;
基于被标记的正常流量数据的流表特征和分布式拒绝服务攻击流量数据的流表特征对反向传播神经网络和预设分类器再次进行训练,得到检测分类器。
可选的,反向传播神经网络的隐含层的激活函数为线性整流函数,反向传播神经网络的输出层的激活函数为s形函数。
可选的,预设分类器为支持向量机分类器。
可选的,在基于检测分类器对交换机的分布式拒绝服务攻击进行检测之后,方法还包括:
显示分布式拒绝服务攻击协同检测结果。
本发明实施例的第二方面提供了一种分布式拒绝服务攻击协同检测装置,包括:
获取模块,用于每隔预设周期,获取预设覆盖范围内的所有交换机的流表信息;
提取模块,用于提取流表信息中的流表特征;流表特征包括每数据流的平均数据包数、每数据流的平均字节数、数据流匹配成功率、端口增长速率、目的ip地址的增长速率和最大交换机流入数交换机;
训练模块,用于根据预先获取的交换机的正常流量数据和分布式拒绝服务攻击流量数据,以及所有流表特征,对预设分类器进行训练,得到检测分类器;
检测模块,用于基于检测分类器,对交换机的分布式拒绝服务攻击进行检测。
可选的,提取模块还用于:
将预设周期内所有流表信息中总的数据包数除以总的数据流数,得到每数据流的平均数据包数;
将预设周期内所有流表信息中总的字节数除以总的数据流数,得到每数据流的平均字节数;
将预设周期内所有流表信息中匹配成功的数据流数除以总的数据流数,得到数据流匹配成功率;
将预设周期内所有流表信息中不同目的端口的增长速率,确定为端口增长速率;
将预设周期内所有流表信息中目的ip地址的增长速率,确定为目的ip地址的增长速率;
根据预设周期内所有流表信息中源ip地址、目的ip地址、流入交换机的编号和流出交换机的编号,确定最大交换机流入数交换机。
可选的,提取模块还用于:
对流表特征进行降维处理,得到降维后的流表特征;
根据预先获取的交换机的正常流量数据和分布式拒绝服务攻击流量数据,以及所有流表特征,对预设分类器进行训练,包括:
根据预先获取的交换机的正常流量数据和分布式拒绝服务攻击流量数据,以及所有降维后的流表特征,对预设分类器进行训练。
可选的,训练模块还用于:
预设分类器的输入端连接有反向传播神经网络的输出层;其中,反向传播神经网络的输入层由六个神经元组成;反向传播神经网络的输出层由一个神经元组成;
根据预先获取的交换机的正常流量数据和分布式拒绝服务攻击流量数据,以及所有流表特征,对预设分类器进行训练,得到检测分类器,包括:
基于预先获取的交换机的正常流量数据和分布式拒绝服务攻击流量数据,对反向传播神经网络和预设分类器进行训练;
根据训练完成的反向传播神经网络和预设分类器对流表特征进行检测,并将流表特征标记为正常流量数据的流表特征或分布式拒绝服务攻击流量数据的流表特征;
基于被标记的正常流量数据的流表特征和分布式拒绝服务攻击流量数据的流表特征对反向传播神经网络和预设分类器再次进行训练,得到检测分类器。
相应的,反向传播神经网络的隐含层的激活函数为线性整流函数,反向传播神经网络的输出层的激活函数为s形函数。
可选的,训练模块中的分类器为支持向量机分类器。
可选的,检测模块还用于:
显示分布式拒绝服务攻击协同检测结果。
本发明实施例的第三方面提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述方法的步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述方法的步骤。
本发明实施例与现有技术相比存在的有益效果是:
在本发明实施例中,由于采用熵值与阈值比较来判断是否受到ddos攻击,误报率较高,而通过openflow交换机中的流表信息中的关联信息可以准确的对交换机进行检测,因此,首先每隔预设周期内,获取覆盖范围内的所有交换机的流表信息,之后,提取流表信息中的流表特征,然后根据预先获取的交换机的正常流量数据和分布式拒绝服务攻击流量数据,以及所有流表特征,对预设分类器进行训练,得到检测分类器。最后,基于检测分类器,对交换机的分布式拒绝服务攻击进行检测。如此,可以无需设定阈值,只需要在流表信息中提取相关流表特征,并将提取的流表特征输入到检测分类器中,即可对交换机的分布式拒绝服务攻击进行检测,从而提高了分布式拒绝服务攻击检测的准确率,降低了分布式拒绝服务攻击的误报率。
此外,上述流表特征不仅可以表征单台交换机的工作状况,还可以表征覆盖范围内的所有交换机之间的关系,可以检测多台交换机之间是否在同一攻击路径上,不仅可以对多台交换机进行协同检测,而且可以进一步地提高检测的准确率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种分布式拒绝服务攻击检测方法的步骤流程图;
图2是本发明实施例提供的一种分布式拒绝服务攻击检测方法的应用场景的示意图;
图3为本发明实施例提供的一种分布式拒绝服务攻击检测装置的示意图;
图4为本发明实施例提供的一种电子设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
目前,利用openflow交换机的流表信息检测ddos攻击的方法,需要先根据不同的ddos攻击,建立相应的规则,其中,阈值的设定对于规则来说至关重要,合适的阈值可以准确区分攻击流量和正常流量。然而,由于网络流量总是存在着随机性和动态波动性,正常流量和攻击流量在数值上没有明确的分界线,难以找到准确区分两种情况的阈值,因此,存在误报率较高的问题。
此外,由于建立的规则数量比较多,需要避免规则之间的相互干扰,这给规则的维护和更新带来很多的困难。
为了解决现有技术问题,本发明实施例提供了一种分布式拒绝服务攻击检测方法、装置、设备和存储介质。下面首先对本发明实施例所提供的分布式拒绝服务攻击协同检测方法进行介绍。
分布式拒绝服务攻击协同检测方法的执行主体,可以是分布式拒绝服务攻击协同检测装置,该分布式拒绝服务攻击协同检测装置可以是具有处理器和存储器的电子设备,例如软件定义网络(softwaredefinednetwork,sdn),软件定义网络作为新一代的网络体系架构,可以与机器学习算法相结合,使得软件定义网络自适应地应对各种攻击,从而解决软件定义网络中的安全问题。
如图1所示,本发明实施例提供的分布式拒绝服务攻击协同检测方法可以包括以下步骤:
步骤s110、每隔预设周期,获取预设覆盖范围内的所有交换机的流表信息。
目前ddos攻击可以分为三种,ip欺骗攻击、慢速连接攻击和泛洪攻击。ip欺骗作为一种广泛使用的ddos攻击手段,被多种攻击方式所采用,例如synflood攻击、icmpflood攻击、udpflood攻击、放大攻击、反射攻击。ip欺骗攻击原理为攻击者向受害者发送ip数据包时,改变了数据包的源ip字段。从而一方面使防火墙误以为来自攻击者的数据包为来自受信任源,另一方面隐藏了攻击者的真实地址,使受害者难以查找攻击者的真正位置。ip欺骗还有一种功能,即把数据包的源ip设置为受害者ip,通过公共dns和ntp等服务实现反射攻击和放大攻击。
慢速连接攻击属于应用层攻击,http慢速连接攻击是一种典型的慢速连接攻击。发生http慢速连接攻击时,攻击者会把一个http包分割成多个部分发往受害者,每个部分都很小,而且之间的时间间隔比较大。
泛洪攻击是常见的ddos攻击手段,网络层有udpflood、synflood攻击等,应用层也有httpflood攻击,其最显著特征为攻击者向受害者发送大量的数据包,造成的攻击流量大,而且网络层的泛洪攻击往往也伴随着ip欺骗。
因此,openflow交换机中的流表信息中可以反映交换机是否受到攻击。经过研究发现,当分布式拒绝服务攻击协同检测方法的执行主体覆盖范围内设有多台交换机时,且每个交换机又需要连接多个主机时,在攻击检测中,如果只考虑单台交换机的流表信息,误报率也会较高,影响检测效果。
步骤s120、提取流表信息中的流表特征。
流表信息包括:流表特征包括每数据流的平均数据包数、每数据流的平均字节数、数据流匹配成功率、端口增长速率、目的ip地址的增长速率和最大交换机流入数交换机。
在一些实施例中,提取流表特征的方法为:
将预设周期内所有流表信息中总的数据包数除以总的数据流数,得到每数据流的平均数据包数。ddos攻击的一个主要特征是源ip欺骗,这使得跟踪攻击源的任务非常困难。源ip欺骗的一个副作用是产生带有少量数据包的数据流,即每个数据流大约有3个数据包。考虑到正常通信通常涉及到更多的数据包,因此,此处计算每数据流的平均数据包数。
将预设周期内所有流表信息中总的字节数除以总的数据流数,得到每数据流的平均字节数。ddos攻击的另一个特点是数据包的有效负载大小,为了提高这类攻击的效率,字节数通常非常小。
将预设周期内所有流表信息中匹配成功的数据流数除以总的数据流数,得到数据流匹配成功率。数据包到达交换机时,都会进行匹配操作,当发生攻击时,会有大量无法匹配的数据包,导致匹配成功率大大降低。
将预设周期内所有流表信息中不同目的端口的增长速率,确定为端口增长速率。当发生ddos攻击时,攻击者会随机生成大量的端口,导致端口增长速率增大。
将预设周期内所有流表信息中目的ip地址的增长速率,确定为目的ip地址的增长速率。当发生ddos攻击时,攻击者会伪造大量目的ip地址,导致目的ip增长很快。
根据预设周期内所有流表信息中源ip地址、目的ip地址、流入交换机的编号和流出交换机的编号,确定最大交换机流入数交换机。当发生ddos攻击时,大多是通过一个交换机对其他交换机进行攻击,此时这个交换机便会发送大量的数据流。根据源ip地址和目的ip地址,即可找到相应的源交换机和目的交换机的编号,从而确定最大交换机流入数交换机。例如:在预设周期内,假设交换机s1为在t时间间隔内数据包的最大流入方,如果s1的主要流入数据包来自相邻的交换机s2,那么可以认为交换机s1和交换机s2之间有一些特殊关系,比如在同一攻击路径上。
步骤s130、根据预先获取的交换机的正常流量数据和分布式拒绝服务攻击流量数据,以及所有流表特征,对预设分类器进行训练,得到检测分类器。
在一些实施例中,在提取流表信息中的流表特征之后,需要对流标特征采用降维处理,得到降维后的流表特征。具体的,可以采用主成分分析算法(kernelprincipalcomponentsanalysis,kpca),一方面降低了原有提取的流表特征的维数,另一方面同时减少了训练时间。kpca将高维输入的流表特征映射到一个新的低维流表特征空间。此外,它还可以从训练数据集中提取主要特征,用于对攻击进行分类。根据预先获取的交换机的正常流量数据和分布式拒绝服务攻击流量数据,以及所有降维后的流表特征,对预设分类器进行训练。
随着网络的持续运行,流表特征的数据量规模将不断增大。依靠人工统计方式寻找规律、设定阈值、维护更新规则,不仅耗时,而且工作量巨大,无法实时检测。
在一些实施例中,预设分类器的输入端连接有反向传播神经网络的输出层。ddos攻击的检测识别本质上是二分类问题,对于提取的一组openflow流表特征数据,需要通过深度学习模型判断这组流表特征属于“正常”还是“异常”。在机器学习领域中,对于二分类问题通常会输出一个[0,1]之间的连续概率值,表示输出属于某一类别的概率。“正常”情况对应值“0”,“异常”情况对应值“1”。
具体的,反向传播神经网络的输入层由六个神经元组成,分别对应流表特征:每数据流的平均数据包数、每数据流的平均字节数、数据流匹配成功率、端口增长速率、目的ip地址的增长速率和最大交换机流入数交换机。反向传播神经网络的输出层由一个神经元组成,输出层的输出端连接预设分类器的输入端。其中预设分类器的输入端的输入值为经过kpca降维后的流表特征。
然后,采用预先获取的交换机的正常流量数据和分布式拒绝服务攻击流量数据,对反向传播神经网络和预设分类器进行训练。之后,采用训练完成的反向传播神经网络和预设分类器对流表特征进行检测,并将流表特征标记为正常流量数据的流表特征或分布式拒绝服务攻击流量数据的流表特征。最后,基于被标记的正常流量数据的流表特征和分布式拒绝服务攻击流量数据的流表特征对反向传播神经网络和预设分类器再次进行训练,得到检测分类器。此处的检测分类器是由反向传播神经网络和预设分类器组成。
具体的,为了提高ddos检测的精度,减少因为深度学习而逐渐降低的梯度,反向传播神经网络的隐含层为线性整流函数(relu)作为激活函数。由于预设分类器最终需要输出值介于[0,1]之间,从而表示当前openflow交换机遭受ddos攻击的概率,因此反向传播神经网络的输出层不能继续使用relu作为激活函数,可以使用sigmoid作为输出层的激活函数。sigmoid激活函数的输出位于(0,1)区间内,考虑到0和1都可以用无限接近的小数代替,因此sigmoid激活函数可以满足反向传播神经网络输出的要求。
可选的,预设分类器可以为支持向量机分类器(svm),用来区分正常流量和异常流量。检测分类器即由反向传播神经网络和支持向量机分类器组成。在支持向量机分类器算法中,最终需要得到的是在能百分百区分正负类的前提下,得到一条拥有最大margin的直线。margin的值就是其中一条边缘到决策边界的距离。svm是large-margin算法,旨在找到一条能够完全区分训练集而且拥有最大margin值的直线。svm的前提就是把训练集无错误的分开。在反向传播神经网络和预设分类器的训练过程中使用径向基函数会产生大量的超平面,需要较长的时间来训练模型。为了解决这一问题,将支持向量机分类器和kpca的核主成分分析相结合,降低了特征的维数,同时减少了训练时间。
步骤s140、基于检测分类器,对交换机的分布式拒绝服务攻击进行检测。
检测时,通过获取到的预设覆盖范围内的所有交换机的流表信息后,提取所有流表信息的流表特征后,将提取到的流表特征输入到训练完成的由反向传播神经网络和预设分类器组成的检测分类器中,即可进行检测。
如图2所示,示出的一种分布式拒绝服务攻击检测方法的应用场景,其中,分布式拒绝服务攻击协同检测方法的执行主体为sdn控制器,sdn控制器下设有三个交换机s1、s2和s3,每个交换机分别控制2台主机,分别为h1、h2、h3、h4、h5、h6。将训练完成的检测分类器,利用生成的udp洪泛攻击流量和正常流量来模拟ddos攻击检测。在udp泛洪攻击中,攻击流量以随机的源ip地址发送到受攻击的主机。scapy是用python编程语言编写的包生成工具。scapy可以处理交互式数据包操纵程序和一些任务,如伪造、跟踪路由、扫描、单元测试、网络发现和生成攻击。在该系统中,scapy用于生成正常和攻击流量。使用python中的scapy创建数据包后,必须将其发送到目标ip地址。
利用脚本发送正常流量和攻击流量后,sdn控制器获取交换机s1、s2和s3的流表信息,并对收集到的流表信息提取其流表特征,将提取到的流表特征输入到由反向传播神经网络和支持向量机分类器组成的检测分类器中,检测分类器进行检测。在该系统中,实验结果可以通过检测率(ac)和误报率(fa)进行衡量。
其中,tp表示被正确分类为攻击流量的攻击流量总数,fn表示被错误分类为正常流量的攻击流量总数。fp表示被错误分类为攻击流量的正常流量总数,tn表示被正确分类为正常流量的总数。
在一些实施例中,对交换机的分布式拒绝服务攻击进行检测后,还包括显示分布式拒绝服务攻击检测结果。
具体的,基于telegraf、influxdb和grafana的轻量级实时检测模块来监控网络的状态。使用telegraf、influxdb和grafana搭建了一个简易的实时监控模块。telegraf负责从受监控的主机上采集流表数据,influxdb负责流表数据的存储,另一个telegraf的数据库用来存储数据流信息。grafana是一个纯html/js的web应用,只要配置好数据源后,即可展示检测结果。
首先,使用telegraf、influxdb来进行流表数据的收集。telegraf实例运行在主机上,负责收集所在主机的流表数据,其输出被存储为本地的一个文件telegraf_data.out,同时在sdn网络中部署运行第二个telegraf实例,其输入即为上面输出的文件telegraf_data.out,输出到sdn控制器中influxdb的数据库中。然后,从influxdb上收集数据后,最后,将检测数据送到grafana上进行流量数据的展示。即可实现实时对分布式拒绝服务攻击检测结果的显示。
在本发明实施例中,由于采用熵值与阈值比较来判断是否受到ddos攻击,误报率较高,而通过openflow交换机中的流表信息中的关联信息可以准确的对交换机进行检测,因此,首先每隔预设周期内,获取覆盖范围内的所有交换机的流表信息,之后提取流表信息中的流表特征,然后根据预先获取的交换机的正常流量数据和分布式拒绝服务攻击流量数据,以及所有流表特征,对预设分类器进行训练,得到检测分类器。最后,基于检测分类器,对交换机的分布式拒绝服务攻击进行检测。由于阈值在不同的情况下会有较大的区别,如此,可以无需设定阈值,只需要在流表信息中提取相关流表特征,并将提取的流表特征输入到检测分类器中,即可对交换机的分布式拒绝服务攻击进行检测,从而提高了分布式拒绝服务攻击检测的准确率,降低了分布式拒绝服务攻击的误报率。
此外,上述流表特征不仅可以表征单台交换机的工作状况,还可以表征覆盖范围内的所有交换机之间的关系,可以检测多台交换机之间是否在同一攻击路径上,从而进一步地提供了检测的准确率。
此外,本发明实施例提供的分布式拒绝服务攻击检测方法,还可以与其它分布式拒绝服务攻击检测防御手段结合使用,进一步提升检测效果。
基于上述实施例提供的分布式拒绝服务攻击检测方法,相应地,本发明还提供了应用于该分布式拒绝服务攻击检测方法的分布式拒绝服务攻击检测装置的具体实现方式。请参见以下实施例。
如图3所示,提供了一种分布式拒绝服务攻击检测装置300,该装置包括:
获取模块310,用于每隔预设周期,获取预设覆盖范围内的所有交换机的流表信息;
提取模块320,用于提取流表信息中的流表特征;流表特征包括每数据流的平均数据包数、每数据流的平均字节数、数据流匹配成功率、端口增长速率、目的ip地址的增长速率和最大交换机流入数交换机;
训练模块330,用于根据预先获取的交换机的正常流量数据和分布式拒绝服务攻击流量数据,以及所有流表特征,对预设分类器进行训练,得到检测分类器;
检测模块340,用于基于检测分类器,对交换机的分布式拒绝服务攻击进行检测。
可选的,提取模块320还用于:
将预设周期内所有流表信息中总的数据包数除以总的数据流数,得到每数据流的平均数据包数;
将预设周期内所有流表信息中总的字节数除以总的数据流数,得到每数据流的平均字节数;
将预设周期内所有流表信息中匹配成功的数据流数除以总的数据流数,得到数据流匹配成功率;
将预设周期内所有流表信息中不同目的端口的增长速率,确定为端口增长速率;
将预设周期内所有流表信息中目的ip地址的增长速率,确定为目的ip地址的增长速率;
根据预设周期内所有流表信息中源ip地址、目的ip地址、流入交换机的编号和流出交换机的编号,确定最大交换机流入数交换机。
可选的,提取模块320还用于:
对流表特征进行降维处理,得到降维后的流表特征;
根据预先获取的交换机的正常流量数据和分布式拒绝服务攻击流量数据,以及所有流表特征,对预设分类器进行训练,包括:
根据预先获取的交换机的正常流量数据和分布式拒绝服务攻击流量数据,以及所有降维后的流表特征,对预设分类器进行训练。
可选的,训练模块330还用于:
预设分类器的输入端连接有反向传播神经网络的输出层;其中,反向传播神经网络的输入层由六个神经元组成;反向传播神经网络的输出层由一个神经元组成;
根据预先获取的交换机的正常流量数据和分布式拒绝服务攻击流量数据,以及所有流表特征,对预设分类器进行训练,得到检测分类器,包括:
基于预先获取的交换机的正常流量数据和分布式拒绝服务攻击流量数据,对反向传播神经网络和预设分类器进行训练;
根据训练完成的反向传播神经网络和预设分类器对流表特征进行检测,并将流表特征标记为正常流量数据的流表特征或分布式拒绝服务攻击流量数据的流表特征;
基于被标记的正常流量数据的流表特征和分布式拒绝服务攻击流量数据的流表特征对反向传播神经网络和预设分类器再次进行训练,得到检测分类器。相应的,反向传播神经网络的隐含层的激活函数为线性整流函数,反向传播神经网络的输出层的激活函数为s形函数。
可选的,训练模块330中的分类器为支持向量机分类器。
可选的,检测模块340还用于:
显示分布式拒绝服务攻击协同检测结果。
图4是本发明一实施例提供的电子设备的示意图。如图4所示,该实施例的电子设备4包括:处理器40、存储器41以及存储在所述存储器41中并可在所述处理器40上运行的计算机程序42。所述处理器40执行所述计算机程序42时实现上述分布式拒绝服务攻击检测方法实施例中的步骤。或者,所述处理器40执行所述计算机程序42时实现上述各装置实施例中各模块/单元的功能。
示例性的,所述计算机程序42可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器41中,并由所述处理器40执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序42在所述电子设备4中的执行过程。例如,所述计算机程序42可以被分割成获取模块310、提取模块320、训练模块330和检测模块340,各模块具体功能如下:
获取模块310,用于每隔预设周期,获取预设覆盖范围内的所有交换机的流表信息;
提取模块320,用于提取流表信息中的流表特征;流表特征包括每数据流的平均数据包数、每数据流的平均字节数、数据流匹配成功率、端口增长速率、目的ip地址的增长速率和最大交换机流入数交换机;
训练模块330,用于根据预先获取的交换机的正常流量数据和分布式拒绝服务攻击流量数据,以及所有流表特征,对预设分类器进行训练,得到检测分类器;
检测模块340,用于基于检测分类器,对交换机的分布式拒绝服务攻击进行检测。
所述电子设备4可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述电子设备可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是电子设备4的示例,并不构成对电子设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器40可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器41可以是所述电子设备4的内部存储单元,例如电子设备4的硬盘或内存。所述存储器41也可以是所述电子设备4的外部存储设备,例如所述电子设备4上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器41还可以既包括所述电子设备4的内部存储单元也包括外部存储设备。所述存储器41用于存储所述计算机程序以及所述电子设备所需的其他程序和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/电子设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/电子设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。