基于信息熵与LSTM的ICMPv6 DDoS攻击检测方法

2021-11-12 15:07丘远东郑浩城
计算机工程与应用 2021年21期
关键词:误报率信息熵数据包

江 魁,丘远东,郑浩城

1.深圳大学 信息中心,广东 深圳518000

2.深圳大学 电子与信息工程学院,广东 深圳518000

随着IPv4地址的耗尽,IPv6将取代IPv4,成为建设下一代互联网的基础。虽然IPv6相较于IPv4在很多方面都有所改进,但仍存在多种网络安全问题,例如信道安全问题[1]、非法入侵、信息泄露、分布式拒绝服务攻击(Distribute Denial of Service,DDoS)等等[2],DDos攻击对业务破坏性大、影响面广、威胁程度高。近年来,DDoS攻击在网络安全事件中的占比越来越高,甚至发展成完整的攻击产业链,IPv6 DDoS攻击防御对于保障未来的网络安全十分重要[3]。

ICMPv6(Internet Control Management Protocol version 6),即互联网控制信息协议版本六,是为了与IPv6配套使用而开发的互联网控制信息协议[4]。与ICMPv4是IPv4的可选协议不同,在IPv6网络中,ICMPv6是强制性协议,每个启动IPv6的节点必须完全实现ICMPv6协议才能在网络中正常工作。由于ICMPv6的不可或缺性,利用其协议漏洞来实施DDoS攻击是最普遍的IPv6攻击之一[5]。

ICMPv6 DDoS攻击的主要类型[6]如图1所示,包括:(1)ICMPv6泛洪攻击,攻击者可以向受害者注入大量的ICMPv6数据包来进行攻击;(2)ICMPv6放大攻击,如基于ICMPv6多播地址的rSmurf攻击,攻击者通过将ECHO请求数据包发送到具有欺骗性源地址(指向受害者地址)的多播地址来执行DDoS攻击;(3)基于利用ICMPv6协议规范的攻击,如通过发送ICMPv6路由器通告(RA)数据包冒充其他路由器来执行MITM攻击。此外还有利用路由器请求(RS)、邻居通告(NA)、邻居请求(NS)、重定向消息数据包等其他DDoS攻击方式[7]。

图1 基于ICMPv6的DDoS攻击类型Fig.1 Types of DDoS attacks based on ICMPv6

IPv4网络中,网络管理员为了避免潜在的攻击,可以通过丢弃所有的ICMPv4数据包来阻止ICMPv4 DDoS攻击。但在IPv6网络中,由于ICMPv6与IPv6节点的高度相关性,网络管理员无法使用该机制抵御DDoS攻击[8]。因此,避免此问题的唯一方法是在网络中部署检测系统,通过对异常流量的快速检测来及时进行治理。

对异常流量的检测,当前业界主流做法是采用基于统计学或基于机器学习的方法,前者检测速度快,不需考虑过多的特征值,但是检测准确率低,误报率高。而基于机器学习的检测方法准确率较高,误报率较低,但需要手动构建较多的特征值、参数等,检测速度慢。针对机器学习的局限性,深度学习通过学习数据样本的内在规律和表示层次,对此有一定程度上的解决[9]。但是基于深度学习的检测会消耗较大的系统资源[10],面对DDos这类流量巨大的网络攻击,无法做到检测的实时性。因此,寻找一个高准确率、低误报率,同时又具有更高效率的检测方法,成为ICMPv6 DDos攻击检测的难点。

长短期记忆网络(Long Short-Term Memory,LSTM)是深度学习算法的一种,依靠独特的隐藏层循环结构能够很好地捕捉数据间的时间相关性,使得一个学习系统能够不依赖人工的特征选择,而学习到复杂的表达函数。本文在LSTM的基础上构建了单向3层LSTM堆叠神经网络模型LSTM3,提出了一种基于信息熵与LSTM3结合的双重检测方法,该方法结合了信息熵与LSTM3的优点,与现有检测方法相比,具有更高的准确率和更低的误报率,同时减少了检测时间,具有更好的性能。

1 研究现状

查阅近几年的相关研究,Saad等人[11]利用反向传播神经网络(Back Propagation Neural Network,BPNN)来检测ICMPv6 DDos攻击,在应用BPNN之前,作者首先使用信息增益比(Information Gain Ratio,IGR)和主成分分析(Principal Component Analysis,PCA)进行了测试,最终获得了98.3%的检测精度,但是作者使用的数据集仅包含“ICMPv6 ECHO Request”泛洪这一种攻击,攻击数据类型单一,不具备广泛的检测效果。Zulkiflee等人[12]使用了支持向量机(Support Vector Machine,SVM)来检测多种IPv6攻击。这项研究主要集中在选择与目标攻击相关的一组特征上,这些攻击包括了“ICMPv6 RA”泛洪这一种DDoS攻击。作者选择了时间间隔,Src IP,Src端口,Dst端口和协议作为特征值,取得了较高的检测精度,但无法检测其他类型的DDoS攻击。Praptodiyono等人[13]提出一种基于主动技术的检测方法来检测基于NA和NS的DDoS攻击,提出两种算法分别用于处理NS和NA数据包、提取相关IPv6-MAC地址信息,缺点是无法检测来自真实地址对(IP-MAC)的攻击,而且检测方法对资源的消耗较大。以上方法尽管在检测准确率上有了较高精度,但存在检测时间较长、检测攻击类型单一、检测消耗资源较大等问题。

因此,在ICMPv6 DDoS攻击检测上,结合以上的研究学习,本文提出了一种基于信息熵与LSTM的双重检测方法,该方法利用信息熵来对流量进行初步检测,如果检测到可疑流量,再以改进的LSTM作为深度检测来判断可疑流量是否为DDoS攻击流量。该方法结合了信息熵与LSTM的优点,与现有检测方法相比,既提高了准确率、又降低了误报率,同时具有更好的性能。

2 基于信息熵与神经网络的双重检测方法

总体架构如图2所示,本检测方法包括2个步骤,分别是基于信息熵的初步检测和基于LSTM3的深度检测。初步检测首先对导入的数据进行初步分析,提取用于计算熵值的特征,随后计算固定时间间隔内特征的熵值,并与设定好的阈值进行比较,如果熵值不在阈值范围内,则认为流量异常,同时将异常流量导入基于LSTM3的深度检测,经深度检测判断可疑流量是否为DDoS攻击流量,最后再进行下一步的处理,下面分别对这两部分进行说明。

图2 检测模型的总体架构Fig.2 Overall architecture of detection model

2.1 基于信息熵的异常流量检测

信息熵的概念是由数学家香农提出来的,它是衡量样本集合离散程度的指标之一[14]。一般来说,正常的网络行为是较为随机的,所产生的数据比较离散,而且从长时间上看,正常行为产生的信息熵大体会趋于一个稳定的范围,所以当网络发生异常时,异常行为所产生的信息熵会偏离这个稳定的范围,通过计算信息熵能够很快发现异常行为。用香农公式计算信息熵:

H(x)表示的是数据样本x的熵值表示的是x中的某个样本值i发生的概率,ni表示的是i发生了ni次,W表示的是样本的总数量,由公式(1)可知,当所有的样本值都相同时,H(x)=0,此时熵值最小,当所有的样本值都不一样时,H(x)=lbW,此时熵值最大。

因此,在样本数量相同的情况下,熵值大小只与样本序列的异同情况有关。通过选取数据集中最能反应当前网络状态的某些特征序列来作为数据样本x计算其熵值。另外,W的大小也会改变样本特征熵值在短时间内的变化情况,如果W值过大,会导致熵值变化不明显,从而降低检测的准确度。因此,将数据集分为若干个合适的W,然后依次计算每个W的信息熵值,最终得到一个基于信息熵异常流量的分析指标。通过对选取的特征序列计算得到熵值,与预先设定的阈值T进行比较,当指标中的信息熵不在正常阈值范围内时,则认为网络中产生了异常,并开始启动基于LSTM3的深度检测。单纯基于熵值的检测方法有较高的局限性,比如阈值如何设定会影响整个算法的准确率、误报率等。所以与其他基于熵值的检测方法不同的是,不将这个作为判断是否发生ICMPv6 DDoS攻击的标准,只是将初步检测的功能设为对可疑流量的排查,所以阈值T的设定本着尽量将异常流量排查出来的原则,将其设定为一个较为宽泛的范围,以达到较高的识别率,同时可以接受高误报率。

2.2 基于LSTM3的深度检测

通过LSTM来进行深度检测。LSTM是由Hochreiter和Schmidhuber在1997年提出的一种改进的循环神经网络(Recurrent Neural Network,RNN),由于RNN有梯度消失的问题,因此只有短期记忆,无法处理长时间序列。LSTM则有效地解决了梯度消失的问题,它能通过“门”的结构决定过去的状态是保留还是遗忘[15]。LSTM在每个单元中包括三个门:遗忘门、输入门和输出门。LSTM的结构如图3所示。

图3 LSTM结构图Fig.3 LSTM structure diagram

遗忘门ft:决定单元状态Ct-1的丢弃程度。

输入门it:决定当前时刻网络的输入xt有多少保存到单元状态Ct。

输出门ot:决定了控制单元状态Ct有多少输出到LSTM的当前输出值ht。

式中,Wf,Wi,WC,Wo是输入的加权矩阵;bf,bi,bC,bo是偏置项;σ为Sigmoid激活函数;tanh为双曲正切激活函数[16]。

为更好地适用ICMPv6 DDoS攻击检测,在LSTM的基础上构建了单向3层LSTM堆叠神经网络,即LSTM3网络模型。如图4所示,该模型是由三个LSTM层堆叠而成,其中,LSTM0、LSTM1、LSTM2分别表示第1层、第2层、第3层LSTM结构,{x0,x1,…,xN}为经过预处理后的输入数据。最终的输出分类器为采用了Softmax函数的分类网络。Softmax函数本质上是一种神经元输出的概率分布形式,最后一个输出层的节点个数与分类任务的目标数相等。最终的输出数据用一维数组[0,1]和[1,0]来表示攻击流量和正常流量,在实际预测中,使用一维数组中最大值的下标来表示预测结果,例如,[0.013 487 1,0.987 580 1]表示攻击流量,[0.996 568 5,0.003 112 3]表示正常流量。

图4 LSTM3网络模型Fig.4 Model of LSTM3

网络容量的增加很容易导致模型的过拟合,为防止过拟合,提高模型的泛化性能,在训练过程中采用了循环Dropout正则化来降低过拟合,即将某一层的输入单元以一定的概率随机设为0,目的是打破该层训练数据中的偶然相关性。

在模型的输入数据上,通过对导入的数据集进行特征提取以及预处理,将数据集转化为模型需要的输入数据形式,如图5所示,每块长条为一个包含N个特征值的数据(input-size),批处理batch-size为60,时间步长time-step为100。

图5 模型的输入数据Fig.5 Input data of model

3 实验与结果分析

3.1 实验环境与实验数据

实验中所使用的硬件环境是通用X86架构的物理主机,配置为Inter®Xeon®CUP双核+8 GB内存,软件环境为Windows操作系统和基于Tensorflow框架开发的深度检测模块。使用的数据集是由马来西亚理科大学(USM)计算机科学学院发布的基于流的ICMPv6 DDoS攻击的公开数据集[17],该数据集涵盖了22种基于ICMPv6的DDoS攻击流量。数据集分为训练集和测试集两部分,分别有10万条左右的数据流,从该数据集中选取11种基于流的特征参与神经网络学习,表1是具体的基于流的特征及其描述。

表1 基于流的特征及其描述Table 1 Flow-based features and description

3.2 基于信息熵的异常流量检测实验结果分析

初步检测的目的是将网络中的异常流量识别出来,所以非常适合将识别率(detection rate)和误报率(false alarm rate)作为评估它的性能指标。

ICMPv6协议具有多种消息类型,正常的用户访问基于不同的目的和内容,产生的ICMPv6数据类型在整体看是随机的,而攻击者使用命令发送恶意数据包,该命令会在短时间内从相同的ICMPv6类型生成大量的数据包。另外,攻击行为和人类访问行为的另一个主要区别在于访问的频率上[18]。因此选取了最符合以上描述的几个特征——ICMPv6 Type、Packets Number、Transferred Bytes作为候选特征,通过多次实验,发现ICMPv6 Type、Transferred Bytes的正常流量与攻击流量之间的熵值分离度更高,区分程度更好,所以选择这两个作为计算熵值的特征,如表2所示。

表2 基于信息熵的异常流量分析指标Table 2 Abnormal traffic analysis index based on information entropy

分别计算正常流量与异常流量在每个窗口W内的信息熵值,并将该信息熵与阈值进行比较来判断网络是否发生异常。原则上,W的选择与实际的网络负载相关,结合实验所使用的数据集与测量分析,发现W=60是一个很好的选择,也就是60条数据流为一个计算间隔,每条数据流是通过固定的时间间隔t=5 s构造的,实验的结果如图6、7所示。

图6 正常流量与异常流量H(IT)的比较Fig.6 Comparison of H(IT)between normal flow and abnormal flow

图7 正常流量与异常流量H(TB)的比较Fig.7 Comparison of H(TB)between normal flow and abnormal flow

由图6、7可以看出,有一部分正常流量和异常流量的熵值交织在一起,说明了单一的基于信息熵的检测对于某些DDoS攻击是无效的,初步检测的目的是识别出异常流量,所以一定要有很高的识别率,同时由于还有深度检测步骤,所以能接受较高的误报率。根据以上原则,分析实验数据,得到当H(IT)的熵值设定为1.687时,异常流量的识别率为99.89%,误报率为42.36%,当H(TB)的熵值设定为1.819时,识别率为99.89%,误报率为31.18%。当2个熵值的其中一个小于规定的阈值时,就认为网络中可能发生了ICMPv6 DDOS攻击。

为了验证阈值的效果,使用了测试集来进行测试,实验结果如表3所示。

表3 基于信息熵异常检测算法的识别率和误报率Table 3 Recognition rate and false alarm rate based on information entropy anomaly detection algorithm

由实验结果可知,基于信息熵的异常流量检测具有极高的识别率,虽然有较高的误报率,但是不影响其作为初步检测的作用,证明该方法能够有效地识别ICMPv6 DDoS攻击流量。

3.3 基于LSTM3的深度检测实验结果分析

本文将准确率(accuracy rate)、损失率(loss rate)和偏差率(deviation rate)作为评估深度检测的性能指标。

LSTM3检测模型中除了隐藏层的层数确定为3层外,各层RNN unit的个数、时间步长、学习率,Dropout系数等关键参数的确定会对模型的预测结果有较大影响。本实验通过网格搜索优化算法结合交叉验证法可以得到模型参数的最优解。经搜索优化,确定LSTM3各层的RNN unit个数为64,时间步长为100,初始的学习率设为lE−3,Dropout系数为0.1。

实验过程:首先对数据集进行预处理,第一步先进行标准化。标准化后将训练集中的数据分为20份子数据集(大小为S),依次进行读取,目的是防止一次性读取数据过多导致服务器存储填满,将滑动窗口(K)设置为100,每份子数据集组合成S-K个数据包集合,每个数据包有K条数据流,批处理大小(B)设置为60,这样每个子数据集的迭代次数为(S-K)/B+1,然后将这些数据包传输到模型中进行训练。

训练完后,再从测试集中选取出5 000条数据进行网络攻击预测。一共进行10次实验,取结果的平均值作为最终的实验结果。

为验证LSTM3模型的检测效果,又分别搭建了LSTM1(单层LSTM)、LSTM2(双层LSTM)以及LSTM4(四层LSTM)模型来与LSTM3模型进行实验比较,表4显示了四个模型的测试结果对比。

表4 不同层数LSTM模型的对比Table 4 Comparison of LSTM models with different layers

由表4可知,当LSTM的层数为3时,模型在准确率、损失率以及偏差率上的表现都要更好。同时发现过多的层数会造成检测指标的下降以及训练时间的增加,所以结合实验数据,LSTM3作为深度检测的模型最为合适。

另外,使用相同数据集进行相关研究的还有文献[19],作者使用了K近邻算法(K-Nearest Neighbor,KNN)、支持向量机(SVM)、朴素贝叶斯算法(Naive Bayesian Algorithm,NBA)和随机森林算法(Random Forest,RF)等模型,同时,本文还引入了近几年较为流行的深度学习算法中的卷积神经网络(Convolutional Neural Networks,CNN)和门控循环单元(Gated Recurrent Unit,GRU)来与LSTM3模型一同进行比较,由于文献[19]仅使用了准确率和误报率作为评价模型的指标,所以将比较它们的准确率和误报率的情况。

从表5可以看出,LSTM3神经网络模型在准确率和误报率上均好于以上所比较的算法。由结果可知,在检测ICMPv6 DDoS攻击上,基于LSTM3的深度检测要优于大部分机器学习算法。

表5 不同算法模型的对比Table 5 Comparison of different algorithm models %

虽然LSTM3模型检测效果最好,但是该模型在本实验物理主机上对数据的处理时间是最长的,一方面是因为实验物理主机的性能限制,另一方面是LSTM3神经网络面对大量数据需要的计算量非常大。先通过基于信息熵的检测,可以减少处理时间,用相同的数据对基于LSTM3的深度检测模型和基于信息熵与LSTM3的双重检测模型进行了测试实验,结果如表6所示。

表6 双重模型与单一模型的对比Table 6 Comparison of dual model and single model

从结果来看,两者在准确率上基本一样,都具有较高的检测精度,但是双重检测模型的处理时间比前者减少了一半以上。这是因为信息熵的计算属于轻量级计算,对主机资源占用不高。而且,初步检测阶段已将大部分的正常流量排除掉,极大地减少了对主机资源占用较高的深度检测所需要处理的数据量。

综上所述,通过选择合适的特征、调整LSTM层数、调整神经网络参数等手段,得到了适用于检测ICMPv6 DDoS攻击的深度检测模型,在此基础上通过添加基于信息熵的初步检测后再进行比较,仿真实验证明,该方法具有更好的性能指标及更高的检测效率。

4 结束语

本文在对现有ICMPv6 DDoS攻击检测方法研究基础上,提出了基于信息熵与LSTM3相结合的双重检测方法,该方法通过基于信息熵的初步检测能够有效识别出异常流量,再进一步基于LSTM3的神经网络的深度检测对异常流量进行确认。理论分析及仿真实验表明,该方法可以准确高效地检测出ICMPv6 DDos攻击,可实际应用于下一代互联网威胁感知类系统(如蜜罐、入侵检测、高级持续性威胁发现等),并为今后该方面研究提供借鉴。

猜你喜欢
误报率信息熵数据包
基于信息熵可信度的测试点选择方法研究
原始数据动态观察窗法在火灾特征信号融合提取中的应用研究
家用燃气报警器误报原因及降低误报率的方法
钻杆管体超声波探伤误报分析及措施
SmartSniff
一种基于信息熵的雷达动态自适应选择跟踪方法
基于信息熵的IITFN多属性决策方法
神经网络技术在网络入侵检测模型及系统中的应用
泊松分布信息熵的性质和数值计算
视觉注意的数据包优先级排序策略研究