DDoS攻击检测方法及装置与流程

文档序号:16381116发布日期:2018-12-22 09:29阅读:663来源:国知局
DDoS攻击检测方法及装置与流程

本发明涉及互联网技术领域,特别涉及一种分布式拒绝服务(distributeddenialofservice,ddos)攻击检测方法及装置。

背景技术

ddos攻击是指攻击者通过有组织、分布式或者远程控制僵尸网络,联合多台计算机设备,向目标系统发送大量连续攻击请求,以增加攻击威力。ddos攻击从多个系统进行恶意攻击,会使得计算机或者网络资源无法为其既定用户提供服务,从而降低网络性能,甚至使网路瘫痪。

目前,对于ddos攻击的检测方法主要分为基于特征的检测方法和基于异常的检测方法。基于特征的检测方法使用公开攻击的“签名或模式”,包括ip数据包中的源ip地址、目的ip地址,端口和数据包有效载荷的关键字等部分的索引,并将传入的流量与存储的模式匹配,以识别攻击实例。这类方法的检测效率较高,可以做到实时检测,但使用这类方法难以准确识别出攻击流;且这类检测方法的准确度普遍不高,存在误报率、漏报率高的问题。基于异常的检测方法采用统计方法、数据挖掘、人工智能(ai)、信息理论、最近邻等各种方法来识别网络流量中的异常,观测到与预期的行为之间的差异超过预定义阈值时,检测系统会产生异常报警来公开攻击。这类检测方法检测准确度也很高、能够追溯攻击源,在一般用户网络中的检测效果很好;然而,由于对大数据环境下网络流量巨大,使用这种方法将耗费大量的时间,且无法保证检测的实时性,存在误报率、漏报率高的问题。

有鉴于此,还需要提供一种能够在大数据环境下使用的、准确率较高的ddos攻击检测方法。



技术实现要素:

本申请的目的在于提供一种ddos攻击检测方法,以提高在大数据环境下的检测准确率,降低误报率和漏报率。

为实现上述目的,本申请一方面提供一种ddos攻击检测方法,包括以下步骤:

采集攻击开始前至攻击结束时的网络流数据信息,所述网络流数据信息包括数据包的时间、源ip地址、目的ip地址及目的端口;

分别从所述网络流数据信息中提取第一特征和第二特征,所述第一特征是网络流的“多对一”与“一对一”部分的源ip地址与目的端口的加权统计量;所述第二特征是网络流中单向流的“多对一”部分的流量统计信息;

将所述第一特征和所述第二特征整合为二元组合特征,并获取所述二元组合特征的时间序列样本;

对所述时间序列样本进行采样,生成特征训练集;

使用所述特征训练集训练随机森林(randomforest,rf)分类器,得到ddos攻击检测模型;

采用所述ddos攻击检测模型进行ddos攻击检测。

进一步地,还包括以下步骤:

采用遗传算法对所述rf的第一参数、第二参数进行参数优化,所述第一参数为子决策树的棵数,所述第二参数为单棵决策树的最大深度。

进一步地,所述采用遗传算法对所述rf的第一参数、第二参数进行参数优化的步骤包括以下步骤:

选择所述rf的初始参数及适应度函数,所述初始参数包括初始种群、进化代数、子决策树的棵数、决策树的最大深度、变异率以及交叉率;

采用所述遗传算法进行种群初始化;

通过所述遗传算法对初始化的种群进行随机搜索,然后按照所述适应度函数计算搜索到的个体的适应度值;

判断所述适应度值是否满足既定标准;

若所述适应度值不能满足既定标准,则继续进行随机搜索和计算;

若所述适应度值满足既定标准值,则结束优化并输出所述适应度值对应的所述子决策树的棵数和所述决策树的最大深度。

进一步地,所述适应度函数的表达公式如下:

式中,fitness表示适应度值,k表示交叉验证的折数,auci即交叉验证中作为测试样本的训练样本检测时计算的roc曲线下的面积值。

进一步地,所述第一特征为地址相关统计特征,计算公式如下:

式中,acsf表示所述地址相关统计特征,rstdi表示所述网络流的“多对一”与“一对一”部分的数据包形成的类,其中,

w(rstdi)=αport(rstdi)+(1-α)packet(rstdi),(0<α<1),port(rstdi)表示类rstdi中不同目的端口的个数,packet(rstdi)表示类rstdi中数据包的个数,α表示加权值。

进一步地,所述第二特征为单向流半交互度,计算公式如下:

式中,ufsif表示单向流半交互度,δt表示采样时间周期,β表示对不同目的端口数量加权的阈值,且β=max(port(sdhii))/δt,i=1,2,...,k。

进一步地,所述二元组合特征为网络流组合相关度,计算公式如下:

ccdf=(w1·acsf,w2·ufsif)

式中,ccdf表示网络流组合相关度,w1,w2均表示权重,表示ccd特征中两种特征统计量所占的比例。

进一步地,采用基尼系数作为单棵决策树分裂的量化评价指标,所述基尼系数的计算公式如下:

式中,d表示包含n个样本、k个类别的样本空间,pi表示类别为i的样本在全部样本中所占的比例。

进一步地,还包括以下步骤:对所述时间序列样本进行采样,还生成测试集,并使用所述测试集对所述ddos攻击检测模型进行模型性能的验证。

为实现上述目的,本申请另一方面还提供一种ddos攻击检测装置,采用所述设备可实现上述ddos攻击检测方法,所述设备包括:

数据采集模块,采集网络流数据信息;

特征提取模块,提取第一特征和第二特征;

特征整合模块,将第一特征和第二特征整合为二元组合特征,并获取所述二元组合特征的时间序列样本;

训练集采集模块,对所述时间序列样本进行采样,生成特征训练集;

检测模型训练模块,通过所述特征训练集训练rf分类器,得到预先训练好的ddos攻击检测模型。

检测模块,通过所述ddos攻击检测模型进行ddos攻击检测,并生成检测结果。

本发明提供的ddos攻击检测方法,定义了用于描述网络流特征的二元组合特征:网络流的“多对一”与“一对一”部分的源ip地址与目的端口的加权统计量和网络流中单向流的“多对一”部分的流量统计信息,即网络流组合相关度(networkflowcombinationcorrelationdegree,ccd),该特征由acs和ufsi二元组给出以反映攻击流的非对称性与半交互性和攻击流引起的正常流状态异常变化特性,通ccd特征序列过rf对进行训练生成检测模型,以提高ddos攻击检测的准确率,降低误报率和漏报率。进一步地,本发明还通过遗传算法优化rf子决策树的最大棵数和决策树的最大深度两个关键参数,进一步得到更高的准确率,更低误报率和漏报率,能有效地检测大数据下ddos攻击。

附图说明

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

图1为本发明实施例的ddos攻击检测方法流程示意图;

图2为本发明实施例的acs与ufsi特征正常流对比示意图;

图3为本发明实施例的acs与ufsi特征攻击流对比示意图;

图4为本发明实施例采用遗传算法对子决策树的最大棵数和决策树的最大深度进行优化的流程示意图;

图5为本发明实施例的正常训练样本数量变化中三种统计特征检测方法的准确率对比结果示意图;

图6为本发明实施例的正常训练样本数量变化中三种统计特征检测方法的误报率和漏报率对比结果示意图;

图7为本发明实施例的攻击训练样本数量变化中三种统计特征检测方法的准确率对比结果示意图;

图8为本发明实施例的攻击训练样本数量变化中三种统计特征检测方法的误报率和漏报率对比结果示意图;

图9为本发明实施例的正常训练样本数量变化中优化与普通模型检测的各评估指标值对比结果示意图;

图10为本发明实施例的攻击训练样本数量变化中优化与普通模型检测的评估指标对比结果;

图11为本发明实施例的ddos攻击检测装置示意图;

图12为本发明实施例的计算机设备的内部结构示意图。

具体实施方式

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

本发明实施例提供一种ddos攻击检测方法,用于检测分布式拒绝服务(ddos)攻击,如ddos匿名流量攻击,其试图通过消耗服务器上的计算资源,以及消耗连接服务器到internet网络的所有带宽来阻止对目标服务器的访问。本发明实施例通过对网络流量进行分析,以ddos攻击的不对称性为基础,提出了一种二元组合特征,并应用构建的rf检测模型对ddos攻击进行准确检测,还利用遗传算法优化rf检测模型的参数,进一步提高检测的准确性。

如图1所示,本发明实施例提供的ddos攻击检测方法的具体步骤如下s101-s106。

s101,采集攻击开始前至攻击结束时的网络流数据信息,网络流数据信息包括数据包的时间、源ip地址、目的ip地址及目的端口。

在本实施例中,宿主服务器为8g内存,i7处理器,且在windows1064bit系统,python3.5.2|anaconda4.2.0(64-bit)环境下进行。攻击大约在21:13开始致使网络负荷增长迅速,几分钟内从约200千位/秒到80兆位/秒,网络流数据信息采集的是20:50:08-21:56:16之间的数据包信息,包括数据包的时间、源ip地址、目的ip地址及目的端口,便于后续特征的提取。

s102,分别从网络流数据信息中提取第一特征和第二特征,第一特征是网络流的“多对一”与“一对一”部分的源ip地址与目的端口的加权统计量;第二特征是网络流中单向流的“多对一”部分的流量统计信息。

在本实施例中,第一特征和第二特征即网络攻击流量特征,其对攻击检测结果存在重要影响,一个有效且稳定地反映攻击的特征对于检测的效果有着重大提升。网络流的源地址与目的地址、源地址与目的端口、目的端口与目的地址均为多对一关系,所以大量的泛洪攻击行为依托僵尸网络对目标主机或网络进行攻击,会致使目标网络或主机工作受限乃至瘫痪,同时,对服务攻击而言,则对目的端口攻击更有针对性,更有甚者,对于系统资源则对多个端口进行攻击,以致多个服务不能进行正常使用。除泛洪攻击外,对于缺乏数据包源ip地址认证或认证能力不强的开放共享资源平台,攻击者采用数据包源ip欺骗的方式进行攻击,利用已有工具,发送大量无用及伪造的ip数据包给目标网络或主机,致使网络服务不正常或瘫痪,而监测点中的大部分正常流会有源到目的地址以及目的到源地址的回复行为,而大量的攻击会严重影响这种交互行为,致使源ip地址不能收到来自目的ip地址的有效回复,即攻击会很大程度上增大网络的非对称性与半交互性。所以采用第一特征,即网络流的“多对一”与“一对一”部分的源ip地址与目的端口的加权统计量,更能反映网络中攻击流与正常流之间的相关性;采用第二特征,即网络流中单向流的“多对一”部分的流量统计信息,能更加明显准确地刻画网络受到ddos攻击时数据包的急剧增加的情况。这两方面统计信息的结合,能够准确描述攻击时攻击流在受害端汇聚并能直接影响正常流量变化的现象,也可以反映部分汇聚的攻击流混杂在大量正常流的现象,从而该特征能够针对ddos攻击中的源地址分布性、目的地址集中性、源-目的ip地址不对称性和高流量突发性,更及时、准确地提供攻击前后网络的相关信息,从而更为完整地区分攻击前后的网络情况。

具体地,第一特征为地址相关统计特征,其特征提取过程如下:

假设某单位时间t内网络流f为<(t1,s1,d1,dp1),(t2,s2,d2,dp2),...,(tn,sn,dn,dpn)>,其中对i=1,2,...,n,ti、si、di、dp2分别表示第i个数据包的时间、源ip地址、目的ip地址、目的端口号。对这n个数据包进行分类执行下面的规则:

将源ip地址与目的ip地址均相同的数据包分在同一类别之中,标记源ip地址为souipm、目的ip地址为desipn的所有数据包形成的类为stdip(souipm,desipn)。对上面形成的这些类,执行下面的删除规则:

若有不同的目的ip地址desipn和desipk使得类stdip(souipm,desipn)和stdip(souipm,desipk)均非空,则删除所有源ip地址为souipm的数据包所在的类。

假设最后剩下的类为rstd1,rstd2,…,rstdm,定义网络流f的地址相关统计特征(addresscorrelationstatistics,acs)为:

式中,acsf表示地址相关统计特征,rstdi表示网络流的“多对一”与“一对一”部分的数据包形成的类,w(rstdi)=αport(rstdi)+(1-α)packet(rstdi),(0<α<1),port(rstdi)表示类rstdi中不同目的端口的个数,packet(rstdi)表示类rstdi中数据包的个数,α表示加权值。在本实施例中,α=0.5。

具体地,所述第二特征为单向流半交互度,其特征提取过程如下:

假设某单位时间t内网络流f为<(t1,s1,d1,dp1),(t2,s2,d2,dp2),...,(tn,sn,dn,dpn)>,其中对i=1,2,...,n,ti、si、di、dp2分别表示第i个数据包的时间、源ip地址、目的ip地址、目的端口号。对这n个数据包进行分类执行下面的规则:

对这n个数据包进行分类,将源ip地址相同和目的ip地址相同的数据包分别分在同一类中,记源ip地址为am的所有数据包形成的类为soipc(am),目的ip地址为an的所有数据包形成的类为deipc(an)。

若类soipc(am)的源ip地址am使得类deipc(am)为空,则称soipc(am)中所有的数据包为一个源半交互流(sourcehalfinteractionflow,shi),记为shi(am),表示shi流具有源半交互性,shi(am)中不同端口号的数量记为port(shi(am))。

根据以上对源半交互的定义,对sipc类分类,得到所有的源半交互流shi,表示为shi1,shi2,…,shis。

对s个shishi流分类,将目的ip地址相同的shi流分在同一类别中,记具有不同源ip地址和相同目的ip地址am的shi流数量为msdnm,显然msdn流具有非对称性;具有相同目的ip地址am的shi流所在的类表示为sdhi(msdnm,am),且m=1,2,...,l,l为shi流中目的ip地址的个数。

假设所有的msdnm≥m(m≥2,m越大,排除正常流干扰的效果越好,为了提高攻击检测的覆盖面,这里,令m=2)的sdhi类为sdhi1,sdhi2,…,sdhik,类sdhii中不同目的端口号的数量表示为port(sdhii),其中i=1,2,...,k。据此,定义网络流f中单向流半交互度(unidirectionalflowsemiinteraction,ufsi)为:

式中,ufsif表示单向流半交互度,δt表示采样时间周期,β表示对不同目的端口数量加权的阈值,且β=max(port(sdhii))/δt,i=1,2,...,k。

s103,将第一特征和第二特征整合为二元组合特征。

本实施例中,将第一特征和第二特征结合,形成二元组合特征,用以描述攻击时攻击流在受害端汇聚并能直接影响正常流量变化的现象,也可以反映部分汇聚的攻击流混杂在大量正常流的现象,从而该特征能够针对ddos攻击中的源ip地址分布性、目的地址集中性、源-目的ip地址不对称性和高流量突发性,更及时、准确地提供攻击前后网络的相关信息,从而更为完整地区分攻击前后的网络情况。

具体地,在采样时间δt内,分别进行两种特征的计算和提取,并进行二元特征构造,形成下列网络流组合相关度(networkflowcombinationcorrelationdegree,ccd):

ccdf=(w1·acsf,w2·ufsif)

式中,ccdf表示网络流组合相关度,w1,w2均表示权重,表示ccd特征中两种特征统计量所占的比例。

s104,获取由二元组合特征与采集网络流数据信息的时间间隔所组成的时间序列样本,并生成特征训练集。

本实施例中,以时间间隔δt进行网络流数据信息采样,并分别计算各采样时间中acs和ufsi的值,并整合为二元组合,n次采样后,获得二元组合特征的时间序列样本,由于按照采样时间顺序提取该特征值,亦可将δt作为一个是时间单位,随着δt时间的累加,则该序列亦为时间长度为n的时间特征序列。

其中,二元组合特征的时间序列样本,即网络流组合相关度ccd时间序列样本,可记作m,m(n,δt)={ccdi,i=1,2,...,n},n为序列长度。

在一实施例中,对时间序列样本进行采样,还生成测试集,并使用测试集对ddos攻击检测模型进行模型性能的验证。

具体地,ccd组合序列样本按照正常样本和攻击样本进行标记,选定特征训练集和测试集,使用特征训练集进行模型生成,使用测试集进行模型性能验证。

更具体地,为了方便计算和处理,设置δt=0.1s作为采样间隔,对ccd特征两个分量中的权重进行了选取,根据经验值,选择w1=w2=1,并将所有的正常样本中提取的特征值对应标记设置为1,将所有攻击样本中提取的特征值对应标记设置为-1。以从ddosattack2007数据集中的“ddostrace.20070804_135436.pcap”中取得正常数据样本,并从“ddostrace.20070804_145436.pcap”中取得攻击数据样本为例,ccd值时间序列样本m如图2和图3所示。

如图2所示,对正常流,acs特征值序列表现出一定的波动性,其值最高能达到80左右,而ufsi特征值序列表现较平稳,其值均在30以下范围内变化。acs特征统计的是“一对一”与“多对一”网络流的特征信息,因正常流中网络拥塞等缘故类似网络流较为普遍,故acs特征值会在一定范围内有所波动,相比usfi特征能更好地反映攻击流引起的正常流状态异常变化。而ufsi特征值统计的是“多对一”的单向流的特征信息,因正常网络中单向流较少,故ufsi特征值较为平稳。

如图3所示,对ddos攻击流,acs特征值与ufsi特征值都随攻击流增大而增大,但在同一时刻ufsi特征值比acs特征数值相对更高,acs最高达到约1000的峰值,而ufsi最高达到约3500的峰值,显然两者中ufsi变化更为明显。由于ddos攻击会引起网络中的“多对一”的单向流迅速增加,acs与ufsi均加权统计了“多对一”的单向流,所以其值都会提高,都能够在一定程度上反映攻击状态。此外,图3中两种特征值表现出的突然降低而后持续增大的情况,是该时刻攻击暂缓等因素导致网络中“多对一”的单向流减少所造成的。由于ufsi不同于acs的加权计算方式,其集中加权统计了“多对一”的单向流的相关信息,所以相比acs特征能更精准地描述攻击流,较好地反映ddos攻击造成的大量网络流半交互的特性。

通过acs和ufsi两种特征组合,即为本发明提出的ccd特征。该特征能够集成两个特征的优势,既能较好地描述攻击流,又能较好地反映攻击流引起的正常流状态异常变化,从而有利于更好地识别攻击。

s105,使用特征训练集训练rf分类器,得到ddos攻击检测模型。

在本实施例中,rf作为一种集成学习分类方法,在训练过程中,可利用重采样技术(bootstrap方法),每次有放回的从原始训练数据集中随机抽取相同个数的样本,组成新的训练数据集,互相独立地生成的多棵决策树;在每棵决策树中,根据信息熵、基尼(gini)系数等量化评价指标,从新的训练数据集中选择最佳测试作为决策点进行分裂测试,进而产生单棵决策树的分类结果;最终的分类决策结果通过计算所有决策树的分类结果的众数来得出,下面给出形式化的说明。

假设整个rf分类器为r(x),其中第i棵决策树记为t(x),r(x)={ti(x),i∈[0,n_estimators]},其中n_estimators表示rf中决策树的棵数,x为输入的待分类的训练样本,sign(x)∈s为x的标记值,其中s为标记类别的集合,ti(x)的输出为s中的某个值,作为单棵决策树对于样本x的估计值,r(x)的输出为{ti(x),i∈[0,n_estimators]}估计值中的众数。在使用rf分类器进行检测时,x为ccd特征训练集利用重采样技术随机生成的新训练数据集中的值;在ddos攻击检测中,只有异常与正常两种标记,因此,这里定义s={-1,1},且sign(x)只能取-1或1两种值分别代表攻击样本标记和正常样本标记。

在一实施例中,采用gini系数作为单棵决策树分裂的量化评价指标,gini系数的表达式如下:

式中,d表示包含n个样本、k个类别的样本空间,pi表示类别为i的样本在全部样本中所占的比例。具体实施例中,d即为用于训练的特征训练集构造的样本空间,其中k=2,n即为训练样本大小。gini系数代表了训练模型的不纯度(impurity),其值越小,则不纯度越低,特征越好。另外,使用gini系数作为rf中决策树的分裂指标的主要原因是,该系数既能反映所有类别样本的比例关系以及不同类别样本的比例变化,还能使各种样本计算的系数值均在(0,1)之间,以便于处理分析。结合以上定义构建rf分类器即建立了基于rf的ddos攻击检测模型(简称rf检测模型)。

在一实施例中,采用遗传算法对所述rf的第一参数、第二参数进行参数优化,所述第一参数为子决策树的棵数,所述第二参数为单棵决策树的最大深度。在构建rf分类器的过程中,森林中的参数,例如产生子决策树的数目、随机属性个数、决策树的最大深度等都会影响最终分类的结果。其中子决策树的数目的选择是否得当对rf的训练结果有着关键的影响,过少的数目会导致训练不足而不能产生较好的结果,过多的数目会导致构建rf的时间长、rf规模过于复杂等问题;单棵决策树的深度对于训练结果以及其训练的时间同样有着很大影响,适当的子树的深度能保证叶子节点有较为合理的分类同时又能减少训练时间。因此,选定子决策树的最大棵数n_estimators和决策树的最大深度max_depth两个关键参数作为待优化参数,采用遗传算法进行优化并得到优化后的参数,生成时间序列样本及特征训练集,结合以上定义构建出基于ccd的遗传算法优化的随机森林(geneticalgorithm-optimizedrandomforest,gaorf)的ddos攻击检测模型(简称gaorf检测模型)。

采用遗传算法对子决策树的最大棵数和决策树的最大深度进行优化的步骤如图4所示:

s501,选择rf的初始参数及适应度函数,初始参数包括初始种群、进化代数、子决策树的棵数、决策树的最大深度、变异率以及交叉率等。具体地,综合构造rf本身的时间、特征样本数量对训练时间影响等的考虑,设置初始种群为30,进化代数50,rf中的子决策树的棵数的范围(2,30),决策树最大深度范围(2,10),变异率,交叉率分别为默认值。

在一实施例中,适应度函数的表达公式如下:

式中,fitness表示适应度值,k表示交叉验证的折数,auci即交叉验证中作为测试样本的训练样本检测时计算的roc曲线下的面积值,该值越大说明适应度越好。

s502,采用遗传算法进行种群初始化。具体地,根据染色体特征采用一般性的二进制编码方式编码,结合精度e=1,在两个参数既定范围中随机选取十进制值(n_estimators,max_depth),并编码为二进制染色体x={n_estimators,max_depth},通过交叉和变异的操作,随机初始化形成初始种群g。这里,以这种方式编码染色体可增加变异及交叉的可能性。

s503,通过遗传算法对初始化的种群进行随机搜索,然后按照适应度函数计算搜索到的个体的适应度值。

s504,判断所述适应度值是否满足既定标准。

s505,若适应度值不能满足既定标准,则继续进行随机搜索和计算。

s506,若适应度值满足既定标准值,则结束优化并输出适应度值对应的子决策树的棵数和决策树的最大深度,即rf的最优参数。

将搜索到的最优n_estimators和max_depth的值作为rf的参数,使用特征训练集训练rf分类器,从而构建出gaorf检测模型。

s106,采用ddos攻击检测模型进行ddos攻击检测。

在一具体实施例中,分别选取了正常流特征值900个、攻击流特征值1200个作为训练样本集。选取1700个特征作为测试样本集,且其中正常样本数约占攻击样本数量的一半。通过以上数据训练rf分类器,利用测试集进行检测,生成检测结果,并分别以准确率(accuracy)、漏报率(missingreportrate,mr)、误报率(falsealarmrate,fr)作为评估指标对检测结果进行评判,结果如图5-图8所示。其中,假设tp为被正确标记的正常样本数量,tn为被正确标记的攻击样本数量,fn为错误标记的攻击样本数量,fp为错误标记的正常样本数量,则:

其中准确率描述的是所有样本中被正确识别的样本比例;误报率描述的是正常样本中判断为攻击的样本比例;漏报率描述的是未能成功识别的攻击样本的样本比例,tn/tn+fn为检测率。

图5即为固定攻击训练样本数量,变化正常训练样本数量所得准确率结果;图6即为固定攻击训练样本数量,变化正常训练样本数量所得误报率与漏报率结果;图7即为固定正常训练样本数量,变化攻击训练样本数量所得准确率结果;图8即为固定正常训练样本数量,变化攻击训练样本数量所得误报率与漏报率结果。

如图5和图6所示,三种特征均能够较好的识别攻击特征,即均有较高的准确率和较低的误报率和漏报率,其中ccd特征表现最好。图5中,随着正常训练样本减小,基于ccd特征检测的准确率(ccd_accuracy)最高,保持在88.5%以上。图6中,从漏报率来看,随着正常训练样本减小,基于ccd特征检测的漏报率(ccd_mr)下降至15%,较基于acs特征检测的漏报率(acs_mr)和基于ufsi特征检测的漏报率(ufsi_mr)低2%左右,且有明显下降趋势;对误报率而言,随着正常训练样本减少,三种检测方法的误报率虽有微弱上升,但均保持在2%左右。由于acs特征统计“多对一”和“一对一”的网络流,其中包含了正常流,故其值会随着正常流的减少而发生相应变化,即acs特征能较好地反映攻击流引起的正常流状态异常变化,因此漏报率较低。因正常流中“多对一”的单向流相对较少,故当正常流减少时ufsi特征值发生细微变化,即ufsi特征能较好地反映攻击产生的“多对一”单向流的非对称性与半交互性,因此误报率较低。由于ccd特征中包含了acs和ufsi特征提供的两方面统计信息,故基于ccd特征的检测的漏报率和误报率都较低,相对acs和ufsi特征,ccd特征能够更好地识别ddos攻击。

通过图7和图8可知,当正常训练样本不变而攻击训练样本增加时,基于ccd特征检测能保持较高准确率、较低的误报率和漏报率,相比于基于acs和ufsi特征的检测具有更好的表现。从准确率来看,在攻击流变化过程中,基于ccd特征与基于acs特征检测的准确率均有类似的波动性,保持了88.3%以上,基于ccd特征检测的准确率能够达到89%,而acs特征检测只能够达到85.6%,至于基于ufsi特征的检测,其准确率整体保持在88.2%左右不变;从漏报率和误报率看,当正常训练样本不变而攻击训练样本增加时,分别基于三种特征的检测方法的误报率和漏报率并没有大幅度改变,且基于ccd与基于acs和ufsi特征的rf检测模型相比保持了约为16%的更低漏报率。分别基于三种特征检测的误报率相差不大,均保持在2%以下。由于正常流中acs和ufsi特征值一般较小,攻击早期攻击流量一般较小且对正常流的影响也较小,故acs和ufsi的特征值在攻击早期变化都较小,较易引起误报和漏报。随着攻击流量增加,当网络中正常流的比例仍占较大而攻击流量变化较小时,虽然acs能较好地识别攻击流引起的正常流状态异常变化,但因acs特征值在攻击早期变化较小而会引起误报。虽然ufsi较好地识别攻击流,相对acs能更有效地降低漏报率,但是由于ufsi特征值在攻击早期变化也较小,因此会产生漏报。ccd特征集成acs和ufsi两种特征优势,能够有效地降低误报率和漏报率,有利于检测早期ddos攻击。

综合以上图5至图8分析结果,ccd特征能更好地地描述了攻击流及其引起的正常流状态异常变化的特性,有利于降低ddos攻击检测的漏报率和误报率。

为了进一步验证所述的gaorf检测模型的有效性,本发明实施例还将gaorf检测模型同rf检测模型进行了对比分析。具体地,选取900个正常流ccd特征值和1800个攻击流ccd特征值作为训练集,选取570个正常流ccd特征值和630攻击流ccd特征值作为测试集。图9为固定正常训练样本数量而改变攻击训练样本数量所得各评估指标值对比结果。图10为固定攻击训练样本数量而改变正常训练样本数量所得各评估指标值对比结果。

由图9可知,当攻击训练样本不变而正常训练样本增加时,rf检测模型和gaorf检测模型的准确率在一定程度上持续提升,且误报率逐渐减小,其中gaorf检测模型的准确率相对高约2%,误报率相对低约4%。由于遗传算法启发式的参数搜索方式能基于ccd包含的acs特征表现出来的正常流与攻击流的相关性为rf分类器找到了较好的训练参数,从而提高了gaorf检测模型的分类性能。由图10可知,当正常训练样本不变并且攻击训练样本增加时,gaorf检测模型比rf检测模型漏报率低约2%,误报率低约3%。因遗传算法能基于ccd包含的ufms特征描述的攻击流的非对称性与半交互性优化gaorf检测模型,从而提高了模型的分类性能。综上所述,利用遗传算法对rf检测模型的参数进行优化能够有效提高检测的准确率,降低检测的误报率。

本发明实施例为进一步验证所述的rf检测模型的有效性,将本发明提出的检测模型同训练好的经典的支持向量机(supportvectormachine,svm)检测模型进行比较分析。在各种改良的svm中,选取分类效果较好的nu-svm,c-svm以及one-class-svm等分类器(参数均使用默认参数)并训练生成相应检测模型与gaorf检测模型进行比较。与前述选取样本数量一致,将提取的ccd特征序列分别带入这四种算法中进行训练及测试,并对比四种算法的各评估指标值,固定正常训练样本数量,变化攻击训练样本数量所得对比结果如表1所示,固定攻击训练样本数量,变化正常训练样本数量所得误报率和漏报率对比结果如表2所示。

表1正常训练样本数量变化中四种算法检测评估指标对比结果

由表1可知,当攻击训练样本不变时,随着正常训练样本的增大,gaorf检测模型的准确率保持在90%以上,误报率保持在0.4%以下,漏报率保持在15.6%以下,一方面rf本身具有良好的稳定的分类性能,能较好地挖掘和利用ccd特征对攻击引起的正常流状态异常变化的特征;另一方面遗传算法通过学习正常训练样本集优化了rf参数,提高了rf分类能力,因此gaorf分类模型的分类效果最好。nu-svm检测模型的漏报率和误报率波动较大,准确率在87.6%以下的大范围内浮动。由于测试集中包含了攻击前期攻击特征值较低的部分数据,这部分特征值与正常流特征值相近,致使nu-svm模型分类超平面难以区分从而影响了检测结果。c-svm检测模型在正常训练样本数量大于500时,准确率和漏报率分别保持在91.6%和16%,但是正常训练样本数量为400时该模型出现误报率为100%的情况。由于该模型中惩罚参数并不会因为训练样本数量过度增加而有所改变,使模型表现出了较好的稳定性;但是当正常样本较少时,该模型难以获得最优分类面,使其出现了误报率骤增的情况。随着正常训练样本的增大,虽然one-class-svm方法保持了较低的漏报率,但比其他方法误报率相当高,使其准确率均在70%以下.其原因为one-class-svm只能训练正常训练样本生成的分类模型致使识别攻击比较困难,因此难以取得较为理想的分类效果。

表2攻击训练样本数量变化中四种算法检测评估指标对比结果

如表2所示,当攻击训练样本增大时,gaorf模型的检测结果比三种svm仍有更好表现,保持了91%以上的准确率,0.4%以下的误报率,约15%的较低漏报率。一方面rf本身具有良好的稳定的分类性能,能较好地挖掘和利用ccd特征对攻击流特性的表征能力;另一方面基于遗传算法优化rf的方法通过学习攻击训练样本集优化了rf参数,提高了rf分类能力,因此四种分类模型中gaorf分类模型的分类效果仍然最好。随着攻击训练样本的增大,nu-svm分类模型的漏报率波动较大,准确率较低.造成这种情况的原因主要是当正常训练样本不变而攻击训练样本增大时会使得超平面有所偏移,使得该模型难以准确识别测试集中部分攻击前期特征值较低的样本。c-svm模型在检测中保持91.6%的准确率,在攻击训练样本数量大于500之后,c-svm模型仍保持了16%以上的较高漏报率,由于c-svm模型在对攻击训练样本充分拟合之后,值较大的攻击样本并未影响超平面,从而降低了c-svm模型的分类能力。one-class-svm检测模型的准确率保持在70%以下,误报率较高。由于该模型只对正常训练样本进行训练,增加攻击训练样本并不能改变其分类模型,因此分类结果未变。

综上可知,针对正常样本和攻击样本的不断变化,gaorf检测模型比各种经典的svm检测模型具有更强的学习分类能力和鲁棒性。尤其在大数据环境下,样本特征维数和数据集规模日益增长,较svm分类模型,rf更能适应大数据的要求。另外,面对遗传算法基于训练集搜寻最优参数过程中的大量不确定因素,以及攻击前期攻击流与正常流区分度不大的情况,gaorf检测模型仍具有较高的检测能力且表现出较强稳定性。因此,根据ga和rf两种算法的自身特点,结合实验结果可知,gaorf检测模型能有效地检测攻击、降低误报率和漏报率,具有较好的鲁棒性,适合在大数据环境下检测ddos攻击。

本发明实施例提供的ddos攻击检测方法,定义了用于描述网络流特征的二元组合特征,即ccd,该特征由acs和ufsi二元组给出以反映攻击流的非对称性与半交互性和攻击流引起的正常流状态异常变化特性,通过ccd特征序列样本对rf进行训练生成检测模型,以提高ddos攻击检测的准确率,降低误报率和漏报率。通过遗传算法优化参数,进一步得到更高的准确率,更低误报率和漏报率,能有效地检测大数据下ddos攻击。

为实现上述ddos攻击检测方法,本发明实施例还提供一种ddos攻击检测装置,如图11所示,该装置包括:数据采集模块、特征提取模块、特征整合模块、训练集采集模块、检测模型训练模块及检测模块。其中:

采集模块,用于采集网络流数据信息;

特征提取模块,用于提取第一特征和第二特征;

特征整合模块,用于将第一特征和第二特征整合为二元组合特征,并获取所述二元组合特征的时间序列样本;

训练集采集模块,用于对所述时间序列样本进行采样,生成特征训练集;

检测模型训练模块,用于通过特征训练集训练随机森林分类器,得到预先训练好的ddos攻击检测模型;

检测模块,用于通过ddos攻击检测模型进行ddos攻击检测,并生成检测结果。

在一个实施例中,该设备还包括遗传算法优化模块,遗传算法优化模块通过遗传算法对ddos攻击检测模型的参数进行优化,即对子决策树的最大棵数和决策树的最大深度两个关键参数进行优化。

在一个实施例中,特征整合模块还生成测试集,测试集用于测试ddos攻击检测模型的检测性能。

关于ddos攻击检测装置的具体限定可以参见上述对于ddos攻击检测方法的限定,在此不再赘述。上述ddos攻击检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一实施例中,提供一计算机设备,该计算机设备可以是服务器,其内部结构图可以如图12所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储特征字段表。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述ddos攻击检测方法。

本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不生成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。

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

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