一种基于AFNN的入侵检测方法
2022-01-26中国移动通信有限公司研究院黄静张会娟陈佳何申
◎中国移动通信有限公司研究院 黄静 张会娟 陈佳 何申
一、引言
随着物联网技术不断发展,万物互联时代已经来临[1]。然而,数以亿计的物联网设备接入网络,不断增长的数据维度和繁琐的网络交互行为,使得网络环境日趋复杂,含有各种不确定性,这给维护网络安全带来了巨大的挑战[2]。作为主动防御的第一步,入侵检测已经成为热点课题[3]。
入侵检测是对入侵行为的发觉,它通过收集和分析运行信息,从中发现网络异常行为[4]。如Zaidi 等人基于统计分析技术,通过模拟攻击类型的流氓节点,对网络进行入侵检测评估[5]。实验结果表明,所提出的入侵检测方法能够有效地检测DDOS 攻击。Aldribi 等人使用在线多元统计变化分析来检测异常网络,利用实例的个体和相关行为来提高检测能力[6]。闫等人提出一种基于特征匹配的计算机网络入侵检测系统多模式匹配算法,提高了系统的检测能力[7]。然而,上述方法对已知的攻击行为有效,难以检测不确定和未知攻击,自适应能力较差。
人工智能技术由于其强大的学习能力和自适应能力,已经在入侵检测方面得到广泛应用[8]。例如,芶等人提出了一种基于随机森林算法(Random Forest Algorithm,RFA)的入侵检测模型,该模型能够对大流量攻击进行分布式检测[9]。另外,Devi 等人提出了一种改进型支持向量机(Enhanced Support Vector Machine,ESVM)识别入侵攻击类型[10]。实验结果表明,所提出ESVM 算法的准确性优于传统的SVM 算法。然而,上述方法中,输入特征往往含有大量冗余特征,从而造成了严重的计算成本浪费。
为了解决输入维度冗余,计算成本浪费问题,
Ahmad等人采用卡方特征选择方法进行特征筛选。然后,基于 LPBoost 分类器建立了入侵检测模型[11]。另外,高等人先采用自动编码器降低输入维度,然后基于SVM 分类技术来评估网络状态[12]。结果表明,上述方法有效减少了网络计算负担。然而,上述方法仍存在以下问题:
1、文本变量问题:样本的文本变量每种状况频率有很大的差异,仅简单的标记成整数值,忽略了其在数据集中的重要性,影响最终的特征筛选结果。
2、网络环境不确定问题:在大规模异构复杂网络中,一些不确定性问题是不可避免的,如网络传输中的丢包和时延问题,或者因异构网络环境所带来的平台差异性等不确定性对入侵检测方法提出了巨大的挑战。
3、学习速度慢问题:在上述所提方法中,如何避免算法陷入局部最小值,加快网络学习速度,仍然是一个亟需解决的问题。
针对以上问题,文中提出了一种基于自适应模糊神经网络(Adaptive Fuzzy Neural Network,AFNN)的入侵检测方法。首先,设计了一种协同特征选择算法(Cooperate Feature Selection Algorithm,CFSA),从而更好的筛选入侵检测相关的主要特征,避免了计算成本浪费问题;其次,提出一种AFNN,缓解了网络环境中的不确定问题,提高了网络检测精度;最后,提出一种自适应反向传播(Adaptive Back Propagate,ABP)算法,更新了AFNN 相关参数,提高网络学习性能。为了验证所提方法的有效性,将该方法应用于KDDCup99入侵检测数据库,结果表明该入侵检测方法具有更好的准确性和快速性。
二、协同特征选择算法
为了降低数据样本维度,减少计算量,首先对输入特征变量进行筛选。但变量往往包含多种文本变量。因此,文中提出了CFSA,首先科学量化所有文本特征变量,评估出每个文本在数据集中的重要性,然后,对所有采集的特征变量进行筛选。
在所提的CFSA 算法中,首先采用TF-IDF,对文本特征变量矩阵A 进行处理。对给定第j个样本单词*的TF(*,j)计算公式为:
其中,k*,j 表示第j 个样本单词*出现的次数。n 表示第i个样本表示数据中的单词总数量。IDF 计算公式为:
其中,M 表示样本总数,mi表示所有样本中出现单词*的次数。单词*的量化数值Ξ(*,j)表示为:
然后,基于PLS 方法,进行特征变量的筛选。对自变量P=[P1,P2,...,PN]和因变量Q=(q1,q2,…,qM)T进行标准化处理:
其中,n 表示自变量个数,M 表示样本总数,Pj=[p1j,p2j,...,pMj],pij表示第i 个样本的第j 个自变量值,表示第j个自变量的平均值,表示第j 个自变量的标准差,表示标准化后的第i 个样本的第j 个自变量值,qi 表示第i 个因变量样本,表示因变量的平均值,s 表示因变量的标准差,表示标准化后的第i 个因变量样本。计算相关系数矩阵:
其中,d(0<d≤h+1)表示一个常数,δi,和γi 表示拟合系数,表示取h 个成分回归建模时删除样本点d 后的拟合量,表示基于全部样本点,取h 个成分回归建模时所有样本点d 后的拟合量。当提取过程结束。提取k 个主成分,取系数绝对值,按照大小排序,前k 个拟合系数对应的自变量,作为基于AFNN的入侵检测模型的输入变量。
综上所述,文中所提CFSA 减少了文本数据对特征提取结果的影响,使最终的特征选择结果更加可靠。
三、基于AFNN的入侵检测方法
(一)自适应模糊神经网络(AFNN)
由于网络环境的复杂性和不确定性,当前入侵检测方法识别精度不高。因此,在本文中,改进传统的FNN,通过引入容错误差值,提出了一种基于AFNN的入侵检测方法,更加有效缓解了网络环境的不确定性。如图1所示,AFNN的拓补结构包括:输入层、RBF 层、归一化层、输出层和分类层。
图1 基于AFNN入侵检测方法框架
1、输入层:该层由k 个神经元,其输出为:
其中,k 表示输入特征个数。
2、 RBF 层:该层由r 个神经元组成,每个神经元的输出为:
其中,φj 是RBF 层第j 个神经元的输出,cj=[c1j,c2j,...,crj]为第j 个RBF 层神经元的中心向量,cij 表示第i 个输入神经元对RBF 神经第j 个元的中心值,σj 表示第j 个隐含神经元的宽度。
3、归一化层:该层神经元个数为r,和RBF 层相同,并且每个神经元的输出为:
其中,μj 是归一化层的第j 个神经元的输出。
4、输出层:网络状态入侵检测的输出为:
其中,y 表示神经元输出,ω=[ω1,ω2,…,ωr]表示连接权值向量,ωj 表示归一化层第j 个神经元与输出神经元之间的连接权值。
5、分类层:判定入侵检测类别:
(二)自适应BP 算法
文中采用BP 算法学习AFNN的学习参数,包括:RBF层的中心向量c、宽度σ和输出层的连接权值ω。然而,传统的BP 算法容易陷入局部最小值,收敛速度慢的缺点。因此,为了有效更新AFNN 参数,文中设计一种学习率的自适应策略,提出了一种ABP 算法,其学习过程为:
其中,η(t)表示学习率。在传统BP 算法中,学习率是一个重要的参数。固定的学习率容易使算法陷入局部最小值,造成收敛速度缓慢。因此,在文中提出了一种学习率自适应策略:
定理一:当AFNN的学习参数使用公式(16)-(17)更新时,AFNN 收敛。
证明:FNN的误差为:
定义李雅普诺夫函数:
基于公式(16)-(17),李雅普诺夫的导数为:
其中,
因此,
证毕。
四、仿真实验
为了验证所提检测模型的性能,本文基于KDDCup99入侵检测数据库,实现入侵检测识别。仿真环境为:MATLAB 2015b,CPU 为Intel Corei5-8265U,主频1.80GHz,内存为8GB,操作系统为Windows 10。
(一)特征筛选
基于KDDCup99入侵检测数据库,采用CFAS 筛选出与入侵检测类型相关的特征变量。KDDCup99 的输入特征变量41 个,包括:9 个TCP 数据包连接属性、13 个专家知识属性和19 个时间窗口计算属性。四种入侵类型包括:Dos、Probing、R2L 和U2R。选取3000 个样本并且保证包含了所有入侵类型。该实验独立进行50 次,取50 次实验结果的平均值作为最终结果。为了节约篇幅,文中给出每个特征变量的编号,具体意义参考文献[13]。特征选择结果如图2所示。
图2 CFAS特征筛选结果
(二)入侵检测
文中基于AFNN 建立了入侵检测模型,从而识别不同类型的入侵。为了验证所提入侵检测模型的性能,采用识别精度(Identification Accuracy)、误检率(False)和漏检率(Miss)三个指标进行评估,具体公式如下:
其中,TIA表示识别精度,TF表示误报概率,TM表示漏检概率,NR表示正确的分类数,N 表示样本总数,NF表示误检的样本数,NM表示漏检的样本数。
本实验中,采用的入侵数据样本总量为8000 个。5000个样本用来训练入侵检测模型,3000 个样本用来测试模型性能,每种入侵检测类型的分布情况如表1所示。自适应BP算法中学习率中的常数α 设置为0.02,e为0.2。实验结果如图3-5所示。
图3 表示测试输出结果,图4 表示所提入侵检测模型的误检率和漏检率,图5 为不同的入侵类型的检测精度。基于图3-5 的结果,所设计的AFNN 入侵检测模型能够以一个良好的鲁棒性能,很好地诊断不同的入侵类型。同时,为了评估所提入侵检测模型性能,将其结果与其他算法进行比较:FNN,BP 网络,PCA-SVM[11],AN-SVM[12],ISSDA[14],具体比较情况如表2所示。
图3 测试分类结果
图4 误检率和漏检率
图5 测试精度
由表2 可以看出,文中所提的基于AFNN的入侵检测模型对多种入侵类型的精度分别为99.91%,98.93%,99.05%,93.10%,97.60%,高于其他算法。另外,所提入侵检测模型的误检率和漏检率在所有算法种是最低的。基于以上分析,说明无论网络环境是否存在不确定性和不一致性,基于AFNN的入侵检测模型具有良好的识别性能。
表1.实验样本分布情况
同时,与AN-SVM 和PCA-SVM 比较,文中采用 CFSA进行文本特征的量化,评估出每个文本对数据集的重要性,从而提高了AFNN的分类性能。另外,在实验中AFNN的训练时间为45s,FNN的训练时间为68s,对比二者的精度和训练时间,说明所提的ABP 算法能够加快AFNN的学习速度,有效提高网络学习性能。
表2.不同算法识别性能比较
五、结论
文中提出了一种基于AFNN的入侵检测方法。在该方法中,采用CFSA 筛选出入侵检测相关的主要特征,减少了人为主观造成的偏差,从而更好的筛选出入侵检测相关特征,使得最终的特征选择结果更加可信;设计基于AFNN的入侵检测方法,提高了模型的容错能力和自适应能力,缓解网络环境的不确定性,提高入侵检测效果;提出ABP 算法,更新AFNN 相关参数,加快了网络学习速度,最后,基于 KDDCup99入侵检测结果,证明了所提的入侵检测方法具有更好性能。由于AFNN的结构调整需要人工大量的尝试,因此在后续工作中,将进一步研究AFNN 结构的自组织,提高其泛化能力。