一种基于二次特征筛选的拒绝服务攻击随机森林检测方法与流程

文档序号:27379652发布日期:2021-11-15 19:32阅读:303来源:国知局
一种基于二次特征筛选的拒绝服务攻击随机森林检测方法与流程

1.本发明涉及监测系统的技术领域,尤其涉及一种基于二次特征筛选的拒绝服务攻击随机森林检测方法。


背景技术:

2.分布式拒绝服务(distributed denial of service,ddos)攻击的目的是使得目标网络或主机无法及时接受并处理外界请求,它通过占用网络上的流量导致带宽过载,从而导致网络或者目标计算机无法提供正常的服务。ddos攻击对网络危害巨大,此类攻击具有破坏性强、涉及面广、实施方便、难以追踪和防范等特点,对网络安全构成了重大威胁,与其他网络攻击不同,ddos攻击只需要大量的僵尸和少量的网络安全知识就可以发起有效的攻击。
3.现有的ddos检测方式主要分为基于攻击流和基于正常数据流的检测,chen zhaomin等人根据ddos攻击产生的高流量来计算正常流量和攻击流量间的偏差来确定是否受到攻击,但此方法不能准确区分ddos攻击和大流量访问,且误报率较高;kotenko根据ddos攻击过程中多对一的攻击特点,分别采用源ip地址数量、目的端口数量、流密度等三种特征来描述攻击行为的特性,但其只用了较少的报文信息,即大多只用到了源ip地址和目的端口的信息,且不能确定具体的攻击类型,从而使得检测率不高。
4.针对以上ddos攻击检测方法普遍存在检测漏报率和误报率高,准确度低等特点,本发明提出了一种基于二次特征筛选的拒绝服务攻击随机森林检测方法,该检测方法适用于在高采样率的情况下,同时可检测到高、慢速攻击,是一种有效的检测方法。


技术实现要素:

5.本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本技术的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
6.鉴于上述现有存在的问题,提出了本发明。
7.因此,本发明解决的技术问题是:传统ddos攻击检测方法普遍存在检测漏报率和误报率高,准确度低的问题。
8.为解决上述技术问题,本发明提供如下技术方案:实时采集网络通信中的流量数据,归一化处理所述流量数据,得到特征数据集;利用随机森林特征重要度准则,计算出所述特征数据集的变量重要性评分和累积重要性,完成一次最佳特征的提取;根据一次提取的最佳特征对分类模型进行训练得到二次最佳特征,二次采用所述随机森林特征重要度准则,得出一组新的重要特征并将其定义为分类模型的最终变量;基于所述最终变量训练所述分类模型得到优化模型集,选出频率最高的模型组作为网络流量的分类检测模型。
9.作为本发明所述的基于二次特征筛选的拒绝服务攻击随机森林检测方法的一种优选方案,其中:计算所述特征数据集的变量重要性评分和累积重要性过程包括,设有特征
x1,x2,x3,

,x
m
,计算每个特征x
j
的gini指数评分其中,vim表示特征重要性评分,gi表示gini指数,则gini指数的计算公式为:
[0010][0011]
其中,k表示有k个类别,p
mk
表示节点m中类别k所占的比例,即从节点中任意抽取两个样本类别标记不相同的概率;
[0012]
特征x
j
在所述节点的重要性为:
[0013][0014]
其中,gi
l
和gi
r
分别表示分枝前后两个新节点的gini指数;
[0015]
作为本发明所述的基于二次特征筛选的拒绝服务攻击随机森林检测方法的一种优选方案,其中:还包括,将所求得的重要性评分统一做归一化处理:
[0016][0017]
其中,表示所有特征的增益之和,表示特征x
j
的基尼指数;
[0018]
再将每个特征所得的vim值进行累加,得到特征的累积重要性。
[0019]
作为本发明所述的基于二次特征筛选的拒绝服务攻击随机森林检测方法的一种优选方案,其中:所述分类模型的构建包括,在所述vim值的基础上计算每个特征的重要性之和;若所计算的值小于可变重要性阈值,则舍去该特征;若所计算的值大于可变重要性阈值,则保留该特征,从而构建出特征分类模型,实现原始数据的特征压缩与基本划分;二次利用所述随机森林特征重要度准则对一次分类模型进行再训练,并计算精度,根据预设精度阈值筛选出二次分类模型。
[0020]
作为本发明所述的基于二次特征筛选的拒绝服务攻击随机森林检测方法的一种优选方案,其中:所述分类检测模型的构建包括,用筛选出的最终特征作为当前变量训练分类模型;对训练好的分类模型计算检测精度;将符合精度阈值的分类模型添加到优化模型集合中,得到优化检测模型,即最终的分类检测模型。
[0021]
作为本发明所述的基于二次特征筛选的拒绝服务攻击随机森林检测方法的一种优选方案,其中:对所述特征数据集进行特征提取包括一次特征提取和二次特征提取。
[0022]
作为本发明所述的基于二次特征筛选的拒绝服务攻击随机森林检测方法的一种优选方案,其中:对所述训练好的分类模型进行检验,计算其检测精度prec包括,
[0023][0024]
其中,tp表示真阳性,为正确预测的攻击流量,fp表示假阳性,为错误预测的正常流量;
[0025]
若所述prec的值小于预设阈值,则舍弃该分类模型;若所述prec的值大于预设阈
值,则将当前分类模型添加到优化模型集合中。
[0026]
作为本发明所述的基于二次特征筛选的拒绝服务攻击随机森林检测方法的一种优选方案,其中:所述流量数据采集的过程包括,利用抓包软件实时获取所有数据包的包头信息;以预设时间间隔t为标准,计算每个时间段t内通过的数据包的统计特征并将所有的数据包存储在一个流量表中;对于获取的每一个数据包,根据src_ip、dst_ip、src_port、dst_port和transport_protocol的5元组计算出一个标识符;如果所述标识符是唯一标识符则将此数据流存放至数据缓冲区中;否则将其与缓冲区中现有的流表数据合并,合并后,若流表的长度t大于或等于最大参考值,则对其进行分类检测;对所述分类检测的结果进行标记;若所述数据缓冲区中超过系统过期时间的数据流,则检查其长度,数据流长度t是否大于或等于最小参考值;若数据流长度t满足判断条件,则继续使用3元组(src_ip、dst_ip和transport_protocol)来为其计算新的标识符。
[0027]
本发明的有益效果:本发明具有较高的实时性和准确度,可以有效去除异常点的影响,避免局部最优,实现对正常流量以及各种ddos攻击流量的精准分类,是一种适用于大数据下的有效的ddos攻击检测技术。
附图说明
[0028]
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。其中:
[0029]
图1为本发明一个实施例提供的一种基于二次特征筛选的拒绝服务攻击随机森林检测方法的基本流程示意图;
[0030]
图2为本发明一个实施例提供的一种基于二次特征筛选的拒绝服务攻击随机森林检测方法的特征提取流程示意图;
[0031]
图3为本发明一个实施例提供的一种基于二次特征筛选的拒绝服务攻击随机森林检测方法的数据预处理中的具体拓展变量示意图;
[0032]
图4为本发明一个实施例提供的一种基于二次特征筛选的拒绝服务攻击随机森林检测方法的流量采集流程示意图;
[0033]
图5为本发明一个实施例提供的一种基于二次特征筛选的拒绝服务攻击随机森林检测方法的传统rf攻击检测算法的变量与模型数量示意图;
[0034]
图6为本发明一个实施例提供的一种基于二次特征筛选的拒绝服务攻击随机森林检测方法的传统rf攻击检测算法的变量选择示意图;
[0035]
图7为本发明一个实施例提供的一种基于二次特征筛选的拒绝服务攻击随机森林检测方法的传统rf攻击检测算法的模型评价指标示意图;
[0036]
图8为本发明一个实施例提供的一种基于二次特征筛选的拒绝服务攻击随机森林检测方法的本发明方法变量与模型数量示意图;
[0037]
图9为本发明一个实施例提供的一种基于二次特征筛选的拒绝服务攻击随机森林检测方法的本发明方法变量选择示意图;
[0038]
图10为本发明一个实施例提供的一种基于二次特征筛选的拒绝服务攻击随机森
林检测方法的本发明方法模型评价指标示意图。
具体实施方式
[0039]
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明,显然所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护的范围。
[0040]
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
[0041]
其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。
[0042]
本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示器件结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。
[0043]
同时在本发明的描述中,需要说明的是,术语中的“上、下、内和外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一、第二或第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0044]
本发明中除非另有明确的规定和限定,术语“安装、相连、连接”应做广义理解,例如:可以是固定连接、可拆卸连接或一体式连接;同样可以是机械连接、电连接或直接连接,也可以通过中间媒介间接相连,也可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0045]
实施例1
[0046]
参照图1~4,为本发明的一个实施例,提供了一种基于二次特征筛选的拒绝服务攻击随机森林检测方法,包括:
[0047]
s1:实时采集网络通信中的流量数据,归一化处理流量数据,得到特征数据集;需要说明的是,
[0048]
如图4所示,流量数据采集的过程包括:对网络中的传输数据进行实时在线采样并以pcap文件格式进行分析,包括攻击源、攻击目的、攻击类型和攻击持续时间等;具体包括:
[0049]
利用抓包软件,如wireshark等,实时获取所有数据包的包头信息;
[0050]
以预设时间间隔t为标准,计算每个时间段t内通过的数据包的统计特征并将所有的数据包存储在一个流量表中;
[0051]
对于获取的每一个数据包,根据src_ip、dst_ip、src_port、dst_port和transport_protocol的5元组计算出一个标识符;
[0052]
如果此标识符是唯一标识符则将此数据流存放至数据缓冲区中;
[0053]
否则将其与缓冲区中现有的流表数据合并,合并后,若流表的长度t大于或等于最
大参考值t(max),则对其进行分类检测;
[0054]
对分类检测的结果进行标记;
[0055]
若数据缓冲区中超过系统过期时间e(t)的数据流,则检查其长度,数据流长度t是否大于或等于最小参考值t(min);
[0056]
若数据流长度t满足前一步的判断条件,则继续使用3元组(src_ip、dst_ip和transport_protocol)来为其计算新的标识符;
[0057]
对所获取的数据流量提取正常流量和ddos攻击流量并标记和存储在数据库中。
[0058]
进一步的,从捕获文件中提取原始网络流量,然后对数据包进行分组,对于每个会话,计算一个包含图3中列出的所有变量的特征数据库。如图3所示,为数据预处理中的具体扩展变量,该部分根据流量监测协议主要使用的5个变量(src_ip,dst_ip,src_port,dst_port,transport_protocol),拓展出29个变量作为随机森林特征提取的当前变量,包括平均值、方差、标准差以及熵等参数。
[0059]
其中,名为protocol的变量为从数据包报头中提取的协议字段的简单规范形式:
[0060][0061]
变量的熵为:
[0062][0063]
其中,x为相关变量;
[0064]
变化系数为:
[0065][0066]
其中,sd(x)是估计的标准差,mean(x)是估计的平均值;
[0067]
分位系数为:
[0068][0069]
其中,是样本p的分位数且
[0070]
变化率为:
[0071][0072]
其中,u
x
为单个数,s
x
为总体数。
[0073]
s2:利用随机森林特征重要度准则,计算出特征数据集的变量重要性评分(variable importance measures,vim)和累积重要性,完成一次最佳特征的提取;
[0074]
s3:根据一次提取的最佳特征对分类模型进行训练得到二次最佳特征,二次采用随机森林特征重要度准则,得出一组新的重要特征并将其定义为分类模型的最终变量;需要说明的是,
[0075]
s2~s3步骤具体包括:
[0076]
利用随机森林特征重要度准则,计算出特征的变量重要性评分(variable importance measures,vim)和累积重要性,由此完成一次最佳特征的提取;接着对分类模
型进行训练,二次使用随机森林特征重要度准则,得出一组新的重要特征并将其定义为分类模型的最终变量;即,通常采用基尼指数(gini index)或者袋外数据(oob)的错误率作为评价指标来衡量。计算特征数据集的变量重要性评分和累积重要性过程包括:
[0077]
设有特征x1,x2,x3,

,x
m
,计算每个特征x
j
的gini指数评分其中,vim表示特征重要性评分,gi表示gini指数,则gini指数的计算公式为:
[0078][0079]
其中,k表示有k个类别,p
mk
表示节点m中类别k所占的比例,即从节点中任意抽取两个样本类别标记不相同的概率;
[0080]
特征x
j
在节点的重要性为:
[0081][0082]
其中,gi
l
和gi
r
分别表示分枝前后两个新节点的gini指数;
[0083]
将所求得的重要性评分统一做归一化处理:
[0084][0085]
其中,表示所有特征的增益之和,表示特征x
j
的基尼指数;
[0086]
再将每个特征所得的vim值进行累加,得到特征的累积重要性。
[0087]
二次随机森林特征提取算法的第一步在于对步骤s1中获得的特征数据集进行特征重要性排序,经筛选后得出一次最佳特征;二次随机森林特征提取算法的第二步在于对一次最佳特征进行模型训练,并二次计算累积重要性,
[0088]
s4:基于最终变量训练分类模型得到优化模型集,选出频率最高的模型组作为网络流量的分类检测模型;需要说明的是,
[0089]
步骤s2~s3中计算出的特征累积重要性根据预设可变重要性阈值进行筛选,其中对累积重要性的定义为:在vim值的基础上计算每个特征的重要性之和;若所计算的值小于预设的可变重要性阈值,则舍去该特征;若所计算的值大于预设的可变重要性阈值,则保留该特征,从而构建出特征分类模型,实现原始数据的特征压缩与基本划分;
[0090]
二次利用随机森林特征重要度准则对一次分类模型进行再训练,并计算精度,根据预设精度阈值筛选出二次分类模型。
[0091]
进一步的,根据二次分类模型,即最终分类模型识别是否遭受拒绝服务攻击,具体包括:
[0092]
用筛选出的最终特征作为当前变量训练分类模型;
[0093]
对训练好的分类模型计算检测精度,使用预设精度值阈值ψ筛选出优化分类模型集;具体包括:
[0094]
计算其检测精度prec:
[0095][0096]
其中,tp表示真阳性,为正确预测的攻击流量,fp表示假阳性,为错误预测的正常流量;
[0097]
若prec的值小于预设阈值,则舍弃该分类模型;若prec的值大于预设阈值,则将当前分类模型添加到优化模型集合中;
[0098]
将符合精度阈值的分类模型添加到优化模型集合中,按照变量个数对模型进行分组,并从模型中剔除异常值,选择频率最高的一组模型及其特征,以作为最终的优化检测模型实现对正常流量与ddos攻击流量的精准识别。
[0099]
更加具体的,如图2,基于随机森林特征重要度二次筛选的算法步骤如下:
[0100]
设置自定义参数:可变重要性阈值imp_threshold,精度阈值precision_threshold,创建空的优化模型并将特征数据集中所有的特征定义为当前变量;
[0101]
将特征数据集按比列分割为训练集和测试集,并使用训练数据创建和训练模型;
[0102]
利用随机森林重要度准则对特征排序并计算训练模型中特征的累积重要性;
[0103]
如果特征的累积重要性最大值小于预设可变重要性阈值,就退出特征提取环节;
[0104]
否则使用筛选出的最重要变量训练并测试模型且计算出模型的准确度;
[0105]
利用随机森林重要度准则再次对特征排序并计算累积重要性;
[0106]
如果max(cumulative_importances)<imp_threshold,就退出特征提取环节;
[0107]
否则将再次使用筛选出的最重要变量训练模型且计算出模型的准确度,找出累积重要性大于或等于可变重要性阈值的特征并提取;
[0108]
如果训练模型的精度大于预设精度阈值,则将当前模型添加到优化模型集。
[0109]
本发明方法在线实时采集网络通信中的数据流量作为检测数据,之后作为输入的特征数据集进行归一化处理,再使用两步随机森林特征提取算法获得最佳分类模型;首先对原始数据进行预处理,再利用随机森林重要度准则,对特征按照vim值进行排序;然后在此基础上,本方法对特征计算累积重要性,通过设置阈值筛选出一次最佳特征;之后通过模型训练并进行二次特征提取以获得最终的最佳特征,并将得出的新重要特征定义为当前变量,经过再次训练获得优化的分类检测模型,从而实现有效去除异常点,避免局部最优以及精准识别不同类型的ddos攻击。
[0110]
实施例2
[0111]
参照图5~10为本发明另一个实施例,为对本方法中采用的技术效果加以验证说明,本实施例采用传统技术方案与本发明方法进行对比测试,以科学论证的手段对比试验结果,以验证本方法所具有的真实效果。
[0112]
传统的技术方案:传统随机森林算法中分类模型虽然在预测准确度、精确度均达到99.95%,但算法对异常点较为敏感,每个指标的训练和测试结果间的误差也较大。为验证本方法相对传统方法具有较高的准确率与精确率以及更小的预测误差,本实施例中将采用传统的随机森林ddos攻击检测算法和本方法分别对ddos攻击检测的精度、误差等方面进行实时测量对比。
[0113]
测试环境:在基于传统的随机森林的特征选择算法的基础上进行了特征选择优化,实现在一次重要特征提取的基础上进行二次筛选,即从训练模型中选择最重要的特征
并计算出累积重要性(cumulative_importances),根据所设阈值i(imp_threshold)来判定是否提取特征并以此作为当前变量再次训练模型,进而二次通过重要度准则、计算累积重要性,从而选择出最终的最佳特征,实现有效去除异常点的效果。采用isc

xids2012数据集中具有正常活动行为的数据流以及在实验室环境中,使用诸如hping3、hulk、goldeneye和slow httptest等工具获得具有dos攻击行为的数据流量组成的数据集作为测试样本,分别利用传统方法和改进方法进行测试并获得测试结果数据。本实施例采用pycharm以及anaconda软件实现仿真测试,根据实验结果得到仿真结果数据,每种方法各计算出ddos攻击检测的预测精度(prec)、准确度(accu)召回率(rec)和f

度量(f1)等指标与改进算法进行对比。
[0114]
算法均使用以下输入参数执行:1000轮,99%的可变重要性,95%的全局精度,85%的每类精度(ne=1000,i=0.99,p=0.95,pc=0.85)。结果如图5~10以及表1所示。
[0115]
表1:算法结果对比表。
[0116]
algorithmbest modelsbest variablesaccuracyprecision传统方法191599.95%99.95%本方法202099.97%99.97%
[0117]
结合本发明方法与传统方法的变量与模型数量图可以看出,本发明方法在模型数量达到最多4020个时,其对应的使用变量个数为20个,相比传统方法在模型数量在达到最多4123个时其对应的使用变量个数为19个,本发明方法仅增加了一个特征变量,表示本发明方法的复杂度并未增加。结合本发明方法与传统方法的变量选择图对比来看,本发明方法特征筛选的最终结果与传统方法一次特征选择的结果相比,重要度大于0.01的重要特征在本发明方法二次筛选之后均提升至0.05以上,同时所选的最佳变量也从15个增加到20个;从本发明方法与传统方法的模型评价指标图对比来看,传统方法的准确度、精确度虽高,但算法对异常点(见图中圆点)较为敏感,每个指标的训练和测试结果间的误差也较大(实线、虚线分别表示训练值和测试值)。而本发明方法则在精确度与准确度从99.95%提升至99.97%的同时,也消除了传统方法中异常点的影响。并且基于二次特征筛选的拒绝服务攻击随机森林检测方法,不仅检测的准确度和精确度较高,还适用于大数据下的实时在线ddos攻击检测。
[0118]
应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1