[0114] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0115] 本发明提出了一种层级注意力模型(HAGRU)用于恶意流量检测,且该模型基于目前有效、可靠的深度循环神经网络。层级注意力模型与之前所提出的用于恶意流量检测的神经网络相比,具有较高检测的准确率,较低的误报率和相对较好的实时性。恶意流量检测所提出的层级注意力模型的示意图如图1所示。
[0116] 本发明所设计的用于恶意流量检测的层级注意力模型(HAGRU)共分为五个部分,即输入层,特征转换部分、双向门控记忆单元部分,注意力层级部分以及多层感知机输出部分。下面本发明将逐一介绍其中的每一个部分的功能:
[0117] 首先是模型的输入层,输出层接收的是原始流量数据,它的数据来源于抓包工具(例如wireshark),并把抓好的数据包保存为pcap文件格式。
[0118] 接下来就是特征转换部分,该部分用于处理抓取的原始的pcap流量进行特征处理,所用到工具是CICFlowmeter‑V4.0,它能够让pcap数据解析成79个数字特征,即每一个数据包由一个79维度向量构成。但由于网络的数据流量具有时序性,且用于训练的数据包数量有上百万个,考虑到模型训练的硬件限制,把数据进行分段处理,划分每一个数据包段用于模型的训练。
[0119] 数据包段是根据时间的先后顺序,把流量数据按长度l进行分段,图2是一个具体的数据包段Seqi∈{Seq1,Seq2,Seq3,...,SeqI},里面包含有v1,v2,v3,...,vl共计l个数据分段,I为数据包段的总个数,i为1,2,3,……,I;且流量数据包段内含有正常的流量和恶意流量(也叫攻击流量),那么每一次输入到层级注意模型数据形如[l,f],f指数据分段中的特征数量。
[0120] 双向门控记忆单元通过时序处理特征向量,也是在图1标注的连接层,该层采用了双向的GRU,即数据可以从头到尾和从尾到头进行训练,更能够捕获每个数据包段之间的特征信息。
[0121] 剩下两部分是注意力机制和多层感知机输出。注意力机制能够使模型在计算力不变的情况,获得更多模型性能的提升,并且在恶意流量与普通流量之间能够做出更好的识别。本发明不仅使用了注意力机制提取重要特征,还使用最大池化特征进行融合,在原有特征映射提取丰富的特征信息,使得模型具有高的检测精度。而多层感知机把层级融合的特征进行线性变换,最终输出流量的类别。
[0122] 用于恶意流量检测层级注意模型(HAGRU)中的细节内容逐一进行详细的阐释。
[0123] 1.1门控循环单元GRU
[0124] GRU是一种循环神经网络,也是一种门控的神经网络。由Kyunghyun Cho等人于2014年所提出。如果想要明白GRU的工作机制,就需要先了解LSTM网络,它是由Hochreiter&Schmidhuber最早提出的一个特殊的循环神经网络。而GRU网络是根据LSTM网络变种得到的,GRU与LSTM相比由于缺少一个门,因此其参数量比LSTM少。在网络流量检测领域中,网络安全人员希望检测的设备能够快速检测经过的流量,而不希望网络流量在传输中产生比较大的延迟,模型的参数减少势必会使计算力需求下降,从而减少流量通过检测模型的时间,提升流量传输实时性。同时网络传输的流量数据包都有较强时序性,即上一时刻的数据和下一时刻的数据可能具有高度关联,因此模型的需要能够处理时序数据的能力。从本段所讲,流量检测模型需要至少两个特点:①能够尽可能减少参数,②能够处理时序数据。所以采用GRU作为模型的一部分。
[0125] 根据图3所示,展示GRU模型的内部具体一些结构,GRU模型主要由更新门和重置门分别使用zt和rt表示,相比LSTM模型少了一个门控信号,于是GRU的参数量就下降了。
[0126] 更新门数据zt用于控制前一时刻的状态信息被带入到当前状态中的程度,更新门数据的值越大说明前一时刻的状态信息带入越多。
[0127] zt=σ(Wzxt+Uzht‑1) (1)[0128] σ()表示激活函数sigmoid;
[0129] Wz表示更新门的权重;
[0130] xt表示时刻t输入的流量数据;
[0131] Uz表示前一时刻隐藏状态矩阵ht‑1的更新门权重;
[0132] ht‑1表示t‑1时刻隐藏状态矩阵;
[0133] zt表示更新门数据;
[0134] 重置门数据rt控制前一状态有多少信息被写入到当前的候选集 重置门数据越小,前一状态的信息被写入的越少。
[0135] rt=σ(Wrxt+Urht‑1) (2)[0136] σ()表示激活函数sigmoid;
[0137] Wr表示重置门的权重;
[0138] xt表示时刻t输入的流量数据;
[0139] Ur表示前一时刻隐藏状态矩阵ht‑1的重置门权重;
[0140] ht‑1表示t‑1时刻隐藏状态矩阵;
[0141] rt表示重置门数据;
[0142] 当xt插入网络单元时,它乘以自身的权重Wr。同样的,它包含了之前t‑1时刻的信息,并乘以它自身的权重Ur。将这两个结果相加,并应用一个sigmoid激活函数来压缩0到1之间的结果。
[0143] 当前内存内容为:
[0144]
[0145] Wh表示流量数据xt的权重矩阵;
[0146] xt表示时刻t输入的流量数据;
[0147] rt表示重置门;
[0148] ⊙表示按元素点乘;
[0149] U表示候选集的权重;
[0150] ht‑1表示t‑1时刻的隐藏状态矩阵;
[0151] tanh()表示双曲正切函数;
[0152] 表示当前内存内容,即是当前候选集;
[0153] 将输入xt乘以一个权重Wh,ht‑1和一个权重U,计算重置门rt和Uht‑1之间的Hadamard(元素方面的)乘积。
[0154] 在当前时间步长的最后内存内容为:
[0155]
[0156] zt表示更新门;
[0157] ht‑1表示t‑1时刻隐藏状态矩阵;
[0158] 表示当前候选集;
[0159] ht表示当前时刻t步长的最后内存内容,即是t时刻的隐藏状态矩阵;
[0160] 步骤1:应用元素方式的乘法到更新门zt,ht‑1;
[0161] 步骤2:应用元素方式的乘法到更新门(1‑zt),
[0162] 步骤3:对步骤1和2的结果求和。
[0163] 1.2激活函数
[0164] 在神经网络中激活函数主要用于把神经网络单元的数值进行非线性变换,增加神经网络模型的非线性,提升神经网络模型表达能力。公式(5)表示的双曲正切函数,用于在注意力机制的一个激活函数。公式(6)表示ReLU(The Rectified Linear Unit)在网络模型中层之间的激活函数。
[0165] f1(x)=tanh(x) (5)
[0166] f2(x)=max(0,wTx+b) (6)[0167] tanh()表示双曲正切函数;
[0168] max()表示取最大值函数;
[0169] w表示输入数据x的权重向量;
[0170] T表示矩阵的转置;
[0171] b表示输入数据x的偏置;
[0172] 1.3注意力机制
[0173] 在网络中流量检测环境通常部署在防火墙上,而防火墙所承载的硬件平台通常计算资源和存储资源都有限制,超过额定的带宽流量让防火墙成为网络传输链路上瓶颈,不利于网络的传输。特别是有限的计算资源情况下,更应该使流量实时通过防火墙,因此流量检测器必须使用合理的计算机资源。而注意力机制恰好能解决一个难点,注意力机制是解决信息超载问题的主要手段的一种资源分配方案,将计算资源分配给更重要的任务。合理有效的利用计算资源让检测模型集中注意力在恶意流量特征映射上的识别。
[0174] 注意力机制分为软注意力、硬注意力和自注意力。本发明采用软注意力的机制方式,首先模型有一个可以训练的注意力权重矩阵,通过激活函数后把值传输给Softmax函数得到一个权值和为1的K(数据集标签类别)维度权重向量,最后与GRU的隐藏层加权计算得到注意力向量。
[0175] ui=tanh(Wwhi+bw) (7)
[0176]
[0177] Vi=∑lαihi (9)
[0178] tanh()表示双曲正切函数;
[0179] Ww表示隐藏状态矩阵hi的权重矩阵;
[0180] hi表示GRU模型在i时刻输出的隐藏状态矩阵;
[0181] bw表示隐藏状态矩阵hi的偏置;
[0182] ui表示经过一层感知机后计算得到的值;
[0183] T表示矩阵的转置;
[0184] uw表示注意力权重矩阵;
[0185] l表示数据包段中数据分段的个数;
[0186] αi表示权重占比矩阵;
[0187] Vi表示注意力机制加权后注意力向量。
[0188] 此时令i=t;则有:
[0189] ut=tanh(Wwht+bw);
[0190]
[0191] Vt=∑lαtht;
[0192] tanh()表示双曲正切函数;
[0193] Ww表示隐藏状态矩阵ht的权重矩阵;
[0194] ht表示GRU模型在t时刻输出的隐藏状态矩阵;
[0195] bw表示权重矩阵Ww的偏置;
[0196] ut表示经过一层感知机后计算得到的值;
[0197] T表示矩阵的转置;
[0198] uw表示注意力权重矩阵;
[0199] l表示数据包段中数据分段的个数;
[0200] αt表示权重占比矩阵;
[0201] Vt表示注意力机制加权后注意力向量。
[0202] 1.4最大池化
[0203] 最大池化是基于样本的离散化过程,主要用于对隐藏层(循环神经网络)输出或者图像的张量进行下采样,以减少其尺寸。本发明使用最大池化主要使用在第一阶段中,对GRU循环神经网络输出的隐藏层进行下采样,这样得到流量的显著特征,帮助模型减少过拟合。同样,它通过减少学习参数的数量来减少计算成本,并为内部表示提供基本的平移不变形。在本发明使用的一维的最大池化,对隐藏层h={h1,h2,h3,...,ht‑1,ht}最大池化,h1为在1时刻输出的隐藏状态矩阵,h2为在2时刻输出的隐藏状态矩阵,h3为在3时刻输出的隐藏状态矩阵,……ht‑1为在t‑1时刻输出的隐藏状态矩阵,ht为在t时刻输出的隐藏状态矩阵;用Ci,j表示隐藏层h中的每个特征映射值,通过式(10),以滤波器大小为2,计算每个维度最大值
[0204]
[0205] max()表示取最大值函数;
[0206] Ci,j表示隐藏层h矩阵中i行j列的值;
[0207] Ci,j+1表示隐藏层h矩阵中i行j+1列的值;
[0208] 隐藏层h最终通过最大池化结果,得到一维的向量 l表示序列长度(即数据包段中数据分段的个数)。
[0209] 1.5多层感知机
[0210] MLP(Multilayer Perceptron)是一种前向结构的人工神经网络,是映射一组输入向量到输出向量。在每个结点的地方都有一个非线性激活函数单元,如公式(11)表示一个神经网络完成计算后,需要经过激活函数(11),把值传递到下一神经单元。
[0211]
[0212] D=[D1,D2,D3,...,Dl] (12)[0213] H表示下一层有多少个神经单元;
[0214] Wkj表示第j个稠密单元的权重向量;
[0215] xk表示输入的信息;即
[0216] bj表示第j个稠密单元的偏差;
[0217] f()表示激活函数,通常是relu激活函数;l表示数据包段中数据分段的个数;
[0218] 对于每个单元可以得到输出Dj,最后将每个单元的输出连接起来得到稠密结果D。
[0219] 1.6输出Softmax
[0220] Softmax回归是逻辑回归函数的一种,在数据集K类标签下,得到值在(0,1)的K维度的一维向量σ(x),计算该向量公式如(13)所示。
[0221]
[0222] xj表示输入到softmax层的值;
[0223] K表示分类的类别数;
[0224] 在流量分类输出的最后阶段使用Softmax regression能够完成这一个多分类任务。为了建立一个多分类器,MLP输出x到Softmax,需要一个假设函数来估计每个类j的概率P(y=j|x)。也就是说,需要估计每个可能的分类输出的概率。具体来讲,假设函数应该输出一个K维向量(向量元素之和为1)以表示估计的概率。假设函数的公式如(14)所示。
[0225]
[0226] y(i)表示第i个样本的标签值;
[0227] x(i)表示第i个样本的值;
[0228] θ表示模型中被训练的权重;
[0229] K表示分类的类别数;
[0230] T表示矩阵的转置;
[0231] P(|)表示条件概率;
[0232] 式中,假设函数是hθ(x(i)),且θ0,θ1,...,θK是确定的参数, 是归一化的因(i)子。若样本分类概率hθ(x )在预设样本分类阈值范围内,则该样本为正常流量;若样本分(i)
类概率hθ(x )未在预设样本分类阈值范围内,则该样本为恶意流量。此外,如果θ→∞,那么Softmax会变成最大函数。当采取不同的有限值,Softmax可以被认为是一个参数化和最大化的软化功能。
[0233] 在显示屏上显示统计监测到的恶意流量的总数目和恶意流量所对应的时刻,以及展示当天、每个星期、每个月、每个季度、当年之一或者任意组合的恶意流量的攻击次数曲线及其准确率、查准率、检测率、误报率、综合率等性能评价参数。
[0234] 1.7损失函数
[0235] 使用交叉熵损失函数(目标函数),用于计算真值和模型预测值之间的损失值,然后使用损失值,反向传播求导,梯度更新迭代,最后得到模型近似最优解θ。式(15)是交叉熵损失表达式,适用于二分类或者多分类loss函数的计算。
[0236]
[0237] 其中,x(i)表示第i个样本的值,y(i)表示第i个样本的标签值,m为训练样本的数量,(1) (1) (2) (2) (m) (m)模型中被训练的权重θ,训练集{(x ,y ),(x ,y ),...,(x ,y )},训练样本标签有K(i)
类,则y ∈{1,2,...,K}。
[0238] 2实验和分析
[0239] 2.1实验环境
[0240] 本发明提出的模型的超参数:初始化学习率0.01;学习率参数调整方式采用余弦退火;梯度参数优化器Adam,且其中参数betas为0.9和0.99;Epoch为320。
[0241] 实验的硬件环境是处理器CPU是I7‑4790K@4.4GHz,内存是64GB,存储SSD容量为2TB,用于实验的网络模型加速训练设备是NVIDIA RTX‑2080TI。本实验操作系统是Ubuntu18.04 LTS,CUDA 10.1,cuDNN 7.5,网络模型使用PyTorch框架编写。
[0242] 2.1数据集
[0243] 实验的数据集是用来验证本发明所提出的HAGRU模型性能,接下来分析三个数据集(NSL‑KDD、CIC‑IDS2017和CSE‑CIC‑IDS2018)的组成和数据集的一些特征。
[0244] 2.2.1NSL‑KDD
[0245] NSL‑KDD数据集于2009年被生成,然后被广泛用于入侵检测实验。在一些网络安全入侵检测实验中,几乎所有的研究人员都将NSL‑KDD用作基准数据集,NSL‑KDD不仅有效地解决了KDD Cup 1999数据集固有的冗余样本问题,而且合理调整数据集的各类样本的比例,使数据集类别更加的平衡,这样流量分类器模型就不会偏向更频繁的数据样本类别。NSL‑KDD数据集包含训练集(KDDTrain+)和测试接(KDDTest+),它们具有正常流量记录和四种不同类型的攻击流量的记录。如表1所示,统计训练集和测试集包含的流量数据标签类别分别是正常流量和四种攻击流量:Dos(拒绝服务攻击)、R2L(unauthorized access from a remote machine)、U2R(unauthorized access to local superuser(root)privileges)、Probe(surveillance and other probin)。如表2展示每一条流量经过数值特征化后得到一条流量的特征向量,共有41个特征,其中包含基本特征(编号0‑9的特征)、内容特征(编号
10‑21)、通信特征(编号22‑40)。并且在测试集中有一些独特的攻击类型,但是训练集并没有出现,模型在这样测试集上更能够反应模型实际的恶意流量检测的能力。
[0246] 表1 NSL‑KDD数据中标签分类
[0247] Toal Normal Dos Probe R2L U2R+
KDDTrain 125973 67343 45927 11656 995 52
KDDTest+ 22544 9711 7458 2421 2754 200
[0248] 表2 NSL‑KDD数据集特征
[0249] No. Feature Type No. Feature Type0 duration continuous 21 is_guest_login discrete
1 protocol_type discrete 22 count continuous
2 service discrete 23 Srv_count continuous
3 src_bytes continuous 24 serror_rate continuous
4 dst_bytes continuous 25 Srv_serror_rate continuous
5 flag discrete 26 Rerror_rate continuous
6 land discrete 27 Srv_reror_rate continuous
7 wrong_fragment continuous 28 Same_srv_rate continuous
8 urgent continuous 29 Diff_srv_rate continuous
9 hot continuous 30 Srv_diff_host_rate continuous
10 num_failed_logins continuous 31 Dst_host_count continuous
11 logged_in discrete 32 Dst_host_srv_count continuous
12 num_compromised continuous 33 Dst_host_same_srv_rate continuous
13 root_shell discrete 34 Dst_host_diff_srv_rate continuous
14 su_attempted discrete 35 Dst_host_srv_diff_host_rat continuous
15 num_root continuous 36 Dst_host_srv_diff_host_rat continuous
16 num_file_creations continuous 37 Dst_host_serror_rate continuous
17 num_shells continuous 38 Dst_host_srv_serror_rate continuous
18 num_access_files continuous 39 Dst_host_rerror_rate continuous
19 num_outbound_cmds continuous 40 Dst_host_srv_rerror_rate continuous
20 is_hot_login discrete
[0250] 2.2.2 CIC‑IDS2017
[0251] CIC‑IDS2017数据集包含良性和最近的常见攻击流量数据,是在真实的背景流量(正常流量)下展开模拟黑客攻击,并通过监视器收集到网络数据流量。为了解决用于训练的恶意流量检测模型的数据真实有效性,于是CIC‑IDS2017涵盖了非常广泛的流量,例如:具有完整的网络拓扑,包括调制解调器、防火墙、交换机、路由器、以及各类操作系统(Windows,Ubuntu and Mac OS)和多样性的攻击,大约包含基于Web攻击、暴力破解、DoS、DDoS、常见渗透攻击、心脏滴血、僵尸网络、网络扫描。另外根据每个时间段的攻击来标定攻击流量的数据类型,如表3展示CIC‑IDS2017数据集各类攻击样本的分布情况,由于正常的流量比攻击流量样本多,因此需要进行数据平衡,保证模型泛化能力的性能。CIC‑IDS2017数据与CSE‑CIC‑IDS2018一样使用CICFlowmeter‑V4.0把流量数据进行特征处理变成数值向量信息,并且流量特征达到79项,比NSL‑KDD特征数量还多,这样更容易让恶意流量检测模型精度的提高。
[0252] 表3 CIC‑IDS2017数据集攻击类型分布
[0253]Attack Name Frequency Attack Name Frequency
SSH‑Patator 5897 Web Attack&Brute Force 1507
FTP‑Patator 7938 Web Attack&XSS 652
DoS slowloris 5796 Web Attack&Sql Injection 21
DoS GoldenEye 10293 Infiltration 36
Heartbleed 11 Bot 1966
DoS Slowhttptest 5499 PortScan 158930
DoS Hulk 231073 DDoS 128027
[0254] 2.2.3CSE‑CIC‑IDS2018
[0255] CSE‑CIC‑IDS2018数据集由加拿大网络安全研究所(Canadian Cyber Security Research Institute,CIC)和通信安全机构(CSE)创建的数据集,模拟真实的网络通信环境下恶意用户可能发起的网络攻击而收集到的流量数据,该数据集记录了10天网络流量(其中包含合法流量和恶意流量)。数据集收集了七种不同场景的攻击,包括暴力破解,Heartbleed,僵尸网络,DoS,DDoS,Web攻击以及内网络的渗透。
[0256] CSE‑CIC‑IDS2018数据集中包含样本流量类别标签。类别标签分为正常网络流量和具有攻击性的网络活动产生的流量。数据特征信息包含了网络交互的信息)例如,协议名称、时间段、源IP、目标IP,源端口,目的端口等信息)。表4列出具体攻击类型以及相应的样本的数量。
[0257] 表4 CSE‑CIC‑IDS2018中不同攻击类型样本统计
[0258]
[0259]
[0260] CIC团队每天记录原始数据,包括网络流量和事件日志。在从原始数据进行特征提取的过程中,他们使用CICFlowMeter‑V4.0提取了超过了80多个网络流量特征。最后,将这些数据保存为CSV文件方便机器学习方法的研究。
[0261] 2.3数据预处理
[0262] 2.3.1数字化
[0263] 实验使用的三个数据集中当中,只有NSL‑KDD数据集需要数值处理,目的是把字符类型的特征转化成数值特征。在NSL‑KDD数据中有38个数值型特征和3个字符型特征。因为恶意流量检测模型输入必须为数值型特征向量,必须对非数值型特征进行数值化处理,例如“protocol_type”,“service”和“flag”特征。例如特征‘protocol_type’有三种属性,分别是‘tcp’,‘udp’and‘icmp’,将这个特征进行one‑hot编码为(1,0,0),(0,1,0),(0,0,1)向量。同上,‘service’有70种属性,‘flag’有11种属性都需要进行one‑hot编码。
[0264] 2.3.2归一化
[0265] 本论文实验所使用三个数据集都需要数据归一化操作,数据归一化的能够让模型的参数梯度更新每次都朝向正确的方向,同时也能稳定收敛。例如“duration[0,58329]”,“src_bytes[0,1.3×109]”,“dst_bytes[0,1.3×109]”,这些特征值最大和最小值相差较大,需要min‑max标准化,对原始数据进行线性变换,使特征值映射到(0‑1)之间。进行数值归一化使用Min‑Max的方法,公式如(16)。
[0266]
[0267] Min表示数据中的最小值;
[0268] Max表示数据中的最大值;
[0269] xi表示数据中的第i个数据;
[0270] 2.3.3数据缺失值处理
[0271] 流量数据通过CICFlowMeter‑V4.0工具提取到的特征,有少部分样本的存在缺失值,本发明针对缺失值的特征采用平均值法进行处理,利用其他样本未在该特征上未缺失进行加权平均,然后将其补上。
[0272] 另外一个不同于缺失值的情况,在特征上出现“NAN”和“Infinity”的情况,本发明采用了平均值法,将其填充。
[0273] 2.3.4数据采样
[0274] (1)恶意流量频次采样
[0275] 根据攻击对攻击行为的分析,一般情况下,网络攻击基本是连续性的,那么其对应产生的攻击流量会在某一个段时间内频繁出现。为了把训练的数据模拟成真实环境下的攻击请求频率,采用局部攻击数据采样。如图4所示,网络攻击的在时间段上频率,当频率值为0时,即表示此时没有网络攻击流量。
[0276] 根据图4的网络攻击频率在和结合本发明所提出的数据包段方式,如图2,即在数据包段内出现攻击数据包的频次作网络攻击频率。显然当没有出现攻击时数据包段内部并没有攻击数据包,当攻击频次很少时,相对应的在数据包段的攻击数据包也很少,同理当攻击频次非常高时,那数据包段内几乎都是攻击数据包。
[0277] (2)数据样本不平衡
[0278] 在文章中用于实验的三个数据集,其中有CIC‑IDS2017、CSE‑CIC‑IDS2018数据集的样本类别数量不平衡,因为在网络环境中收集的数据大多数是正常的流量,只有少部分是攻击的流量,如果不处理数据平衡问题那么就可能导致训练的模型具有偏向性,导致模型的泛化能力比较差。于是本发明应对正常流量样本比攻击流量多很多情况下,决定使用欠采样,即对正常流量样本抽取部分用于模型的训练,保证数据类别的平衡性。
[0279] 2.4性能评估
[0280] 对于分类问题,可以有二分类和多分类,二分类的结果分为正确或不正确,而多分分类是按标签进行多分类,但是多分类的问题可以拆解为多个二分类的问题,那么所有可能的结果可以分为以下四个情况,如表5所示。
[0281] 表5混淆矩阵
[0282]
[0283] TP(True Positive):实际攻击被归类为攻击;
[0284] TN(True Negative):实际正常记录被分类为正常;
[0285] FP(False Positive):实际的正常记录被归类为攻击;这种情况也称为假警报;
[0286] FN(False Negative):实际攻击被归类为正常记录。
[0287] 接下来使用不同评价指标来评估所提出的模型的性能:
[0288]
[0289] 准确率衡量被正确分类流量样本占总流量样本的比例。
[0290]
[0291] 查准率是衡量恶意流量检测模型把标签为恶意的流量样本预测为恶意流量样本占整个恶意流量样本之比。
[0292]
[0293] 检测率是衡量标签为恶意流量占被模型检测到恶意流量之比,来衡量模型检测恶意流量的能力。
[0294]
[0295] 误报率是衡量正常流量被检测模型分为恶意攻击型流量的概率。
[0296]
[0297] Precision表示查准率;
[0298] F‑score是由查准率和检测率两个因素平衡构成的综合率,这是有效评价一个模型综合检测的有效性度量。式(21)中的β是一个权重因子,通常取值为1。
[0299] 一方面,从模型分类器的角度来看,查准率和检测率是一对相互矛盾的指标。更高的查准率意味着更少的误报,但是更高的检测率也意味着更少的误报。例如,如果将更多可疑攻击归为攻击(那么在极端情况是将所有流量归为攻击流量),则检测率将会提高,但查准率将大大降低,反之亦然。因此,单个高查准率或检测率并没有意义的。另一方面,从入侵检测的角度来看,尤其是在某些严格的环境中(需要高度的安全的网络环境,尤其在电商、银行等网络环境),入侵的容忍度很低,因此单独的检测率也是重要指标。F‑score度量是对查准率和检测率的综合考虑,F‑score是基于查准率和检测率的谐波平均值。F‑score值越高,那么意味着准确率和检测率越高。
[0300] 2.5实验结果
[0301] 本发明提出一种层级注意力的恶意流量检测模型HAGRU,然后用实验证明该模型在NSL‑KDD、CIC‑IDS2017以及CES‑CIC‑IDS2018三个不同数据集上的有效可行性。在实验中进行了数据频率采样和数据不平衡处理,并在每个数据集上进行了训练集和测试集的划分,其比例为8:2。采用了三种机器学习模型和三种深度学习模型与所提出的HAGRU模型进行对比分析。被选择的三个机器学习模型为SVM、XGBoost、Random Forest,三个模型都其具体的代表性,SVM是单一分类器,XGBoost是一种串行流的集成学习算法,而Random Forest是一种并行的集成学习算法。而在深度学习模型方面对比,本发明采用的是经典神经网络作为对比,分别是多层感知机(MLP)、LSTM、GRU。所提出的HAGRU模型是基于GRU模型之上,因此选择与GRU模型进行对比是很有必要的。
[0302] 实验结果均是模型在测试集上的表现。如表6~表8所示,表6~表8的列显示各个数据集内具体样本类型,表6~表8的行显示提出的HAGRU模型和其余6个对比模型。本发明选择了准确率(Acc)、误报率(FPR)、F‑score作为主要的评估指标,而有关本发明所提出HAGRU模型在这三个数据集详细评估指标和混淆矩阵在附录(如图6~图11)展示。评估指标的数均在[0‑1]之间,其中准确率(Acc)评估指标越高。模型的在这类数据上效果越好,同理F‑score也是。但是误报率(FPR)是值越低越好,误报率越小,模型在恶意流量检测越好,可以提高网络安全,减少因误报造成的安全问题。
[0303] 表6数据集NSL‑KDD各模型性能对比,单位是百分数(%)
[0304]
[0305] 表7数据集CIC‑IDS2017各模型性能对比,单位是百分数(%)
[0306]
[0307] 表8数据集CES‑CIC‑IDS2018各模型性能对比,单位是百分数(%)
[0308]
[0309] 接下来分析所提出的HAGRU模型和6个经典模型在各个数据集上评估指标分析。
[0310] 表6中是各个模型在NSL‑KDD数据集上的评估指标。为了便于观察,表格内所有数值均是百分制单位。通过表6可知,本发明所提出HAGRU模型在总样本的准确率和总样本的F‑score比对照的模型稍好。HAGRU模型在NSL‑KDD数据集的Normal、DoS、Probe、R2L类别上并没有在性能指标上领先对比模型,而在最后一个类别U2R上比对比模型性能突出,这样使HAGRU模型在总的样本上评估指标比对照模型的指标要优异一些且达到了准确率为99.74%和F‑score为95.56%。由于NSL‑KDD数据集上存在数据样本类别不平衡,且即使已经进行了数据采样处理,也不能完全解决这一个问题,且在恶意流量检测中所使用数据无法进行数据增强方式来扩充数据多样性。但由于HAGRU模型采用了注意力机制方式,即针对数据量比较少样本的情况也能够做出好的识别,使得HAGRU模型在类别不平衡数据集也取得相对较好的性能。
[0311] 表7中是各个模型在CIC‑IDS2017数据集上的表现。实验中把CIC‑IDS2017重新进行归类采样,原有的数据类别(表3)Web Attack&Brute、Web Attack&XSS、Web Attack&Sql,因为数据量太小,无法满足实验的需求,于是把这个三个类别都重新划分为Web Attack。同理其他类似样本,都按照攻击类型的相似性进行类别划分,于是得到了Bot、DDoS、DoS、Patator、PortScan、Web Attack六种攻击类别。根据表7可知,HAGRU同样在总样本的性能上比对照模型优异一些,准确率和F‑score分别为99.73%、96.10%,但同样得指出并不是在所有类别上每个评估指标都良好,例如Bot类别提出的模型并没有比其他模型表现突出。但从综合的角度来考量所提出的HAGRU模型比其他模型好,尤其在某些类别不平衡的情况下,例如Web Attack类别的F‑score值达到了89.72%,均比其他模型的F‑score值高。在表7中当FPR的值为0时即使误报率为0,这种情况不一定模型表现性能就好,需要进一步查看F‑score的值,例如使用Random Forest模型对Bot分类,虽然FPR为0,但F‑score值为1.51,远小于其他模型的值,这种情况下Random Forest模型对Bot类别分类性能非常槽糕,同理但凡模型出现这种类似的情况都可以认定为模型的性能比较差。而提出的HAGRU模型对CIC‑IDS2017数据各类别流量样本分类比其他模型具有一定的提升。
[0312] 表8中是各类模型在CSE‑CIC‑IDS2018数据集上的表现。根据CSE‑CIC‑IDS2018数据集中各攻击样本统计如表4所示,有些攻击类别非常少,造成与其他样本出现严重的数据集平衡。因此不仅需要做样本不平衡处理,同时也要进行样本重定义标签,本发明依据攻击近似前提下对Brute Force‑Web、Brute Force‑XSS、SQL Injection这个三类合成Web Attack。于是在CSE‑CIC‑IDS2018数据集中一共分为13个类别:Benign、DDoS AttacksLOIC‑HTTP、Bot、DDoS attack‑HOIC、DoS Attack‑Hulk、FTP‑Brute Force、SSH‑Brute Force、Infilteration、DoS Attacks lowHTTPTest、DoS Attacks‑GoldenEye、DoS Attacks‑SlowLoris、DDoS Attack‑LOIC‑UDP、Web‑Attack。本发明提出的HAGRU模型依然能够在总样本情况下取得不错的成绩,准确率和F‑score的值分别是94.87%和93.95%。在每个攻击类别上,HAGRU模型与其他模型相比基本都有一些性能上的提升,并且HAGRU模型在DDoS Attack‑LOIC‑UDP、SSH‑Brute Force、DDoS attack‑HOIC这三类中实现了0误报率,准确度和F‑score都接近100%,表明该模型能够非常好的识别这类攻击。
[0313] 本发明还进行了数据包段长度对HAGRU模型的影响,因此选择数据包段长度为64、128、256、512、1024进行对比。实验结果如图5所示,经过综合指标precision、Detection Rate、FPR、F‑score的考虑,当数据包段长度为384时,HGRU模型性能表现良好。于是在实验中HAGRU模型数据包分段大小都选择384这个值。
[0314] 通过在三个数据集上实验进行分析来看,本发明所提出的HAGRU模型在总的样本分类性能具有一定的优势,且相比NSL‑KDD这种小型数据集,在CIC‑IDS2017和CSE‑CIC‑IDS2018相对较大数据集上,HAGRU模型不仅在总的样本分类取得不错的成绩,同时在多数攻击类别上也取得不错的成绩。因此越大的数据集和越多样本类别来训练提出的HAGRU模型,会使模型的性能越来越好。
[0315] 尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。