陈文迪 刘桂华 刘慕娴
摘 要:为了提高网络安全水平,及时对网络攻击进行检测,该文提出了一种基于烟火算法优化支持向量机(SVM)的入侵检测模型。该模型选用SVM作为入侵检测算法的核心分类器对网络数据进行判别,但是由于存在SVM中最优核函数参数和惩罚因子确定较慢的问题,该文利用烟花算法加快SVM最优核函数参数和惩罚因子的确定。为了验证该模型在实际应用中的效果,通过KDD CUP 99数据集进行实验测试,与SVM、KNN和DNN算法相比,该模型能更好地对入侵检测数据进行分类和判别。
关键词:支持向量机 烟花算法 入侵检测
中图分类号:TP18 文献标识码:A 文章编号:1672-3791(2019)12(b)-0018-03
随着网络在人们的生产生活中所占比重越来越高,网络攻击活动所带来的危害也日益严重。为了应对这类问题,从各角度出发的防御手段也应运而生,截至目前,保障互聯网安全手段已经覆盖入侵检测、用户权限鉴定、身份认证、防火墙等方面[1]。其中,随着人工智能领域的发展,新的统计学习算法层出不穷,结合统计学习算法与入侵检测技术是互联网安全领域的重要研究方向。
随着入侵检测领域研究的逐渐深入,研究人员发现在海量网络数据上提取特征并应用统计学习的方法能够有效地在忽略攻击方法内在特点的情况下有效地构建入侵检测系统[2]。目前,主要有利用随机森林(RF,Random Forest)[3]、BP神经网络(BPNN,BP Neural Network)[4]、遗传算法(GA,Genetic Algorithm)[5]、人工免疫算法(AI,Artificial Immune Algorithm)[6]、向量机(SVM,Support Vector Machine)[7]、K近邻算法(KNN ,k-Nearest Neighbor)[8]、深度神经网络(DNN, Deep Neural Network)[9]等算法来统计学习入侵检测的特征。该文选用SVM作为入侵检测算法的核心分类器对网络数据进行判别,同时利用烟花算法加快SVM最优核函数参数和惩罚因子的确定,提出一个基于优化后SVM的入侵检测模型来对网络入侵进行检测。在做实验对比时,我们选取比较有代表性的SVM、KNN和DNN进行准确性上的比较。
1 相关工作
1.1 支持向量机(SVM)
该文将使用SVM作为入侵检测模型的核心分类器以获得最优的入侵检测效果。支持向量机的提出在前期是为了解决二维平面内比较简单的线性可分问题,即求解最优超平面。假设给出样本集为,,,支持向量机的目的就是求出能将该集合T划分为正负的最优超平面,其中ω是可调的权值向量,b是偏移量,表示ω和x的内积。求解超平面的过程可以简写为以下公式:
(1)
但是,在实际的分类问题当中,由于特征多,存在噪声等原因,输入集合通常是线性不可分的。求解线性不可分问题时与求解线性可分问题类似,假设在公式(1)中添加一个参数(为求解最优分类超平面过程当中的松弛变量),且≥0,则公式(1)转化为以下公式:
(2)
这时,解决线性可分问题中求解最小值问题变为求解最小值问题。其中C(C>0)为惩罚因子,其值大小决定分类器经验风险的大小。惩罚因子设置的越大对样本中分类错误的情况容忍度越高。
在实际运算中,SVM为有效避免出现“维度灾难”,通常采用核函数K(x,y)代替公式(1)中的点乘运算,这里采用的是RBF核函数,其中g>0。这种函数通过任意两个样本构造向量并将其作为其自变量,通过向量的欧式距离计算得出相应的标量,参数g是提前定义影响函数作用范围的参数。
1.2 烟花算法
烟花算法的目的是要求解的问题可以抽象为在D维的可行域Ω内找到一点x,使得对应于适应度函数f(x),该点的适应值为最大或最小,这里以要求解适应度最小的解为例,烟花算法的具体步骤如下。
步骤1:在可行域Ω内随机生成N个个体位置坐标xi作为烟花算法的初始烟花,其中每一个烟花代表带求解问题的一个解。
步骤2:根据问题的适应度函数计算解空间中每个烟花的适应度值,这些烟花将利用求解出来的各自适应度值作为爆炸依据引爆产生火花。
步骤3:从步骤2爆炸得到的火花当中任意选择z个维度作为集合DS,,其中round函数是取整函数,rand函数为区间随机取值函数。
步骤4:为增加算法随机性,烟花算法在每次迭代时还将产生G个高斯变异火花,从解空间任意选择z个维度进行高斯变异。
步骤5:利用上一代烟花、爆炸得到的爆炸火花以及高斯变异火花构造下次迭代的候选者集合并从中选择N个个体进行下一轮的烟花迭代操作。
步骤6:判断当前状态是否达到烟花算法停止迭代的条件,迭代停止的条件通常为迭代达到设定的次数或者适应度值小于预先设定值。
2 基于烟花算法优化SVM的入侵检测模型
该模型主要分为三大模块:数据预处理模块、参数优化模块和SVM模块。首先是对测试数据集进行预处理,包括字符样本数值化、归一化操作。参数优化模块的最终目标是利用改进的烟花算法快速求得SVM的最优参数C、g的组合,具体步骤如下。
步骤1:将输入的测试训练样本分成五等份。
步骤2:设置要寻优的SVM核函数参数g及惩罚因子C的寻优范围和计算精度,同时对烟花算法进行初始化。
步骤3:对于每个位置上的烟花,利用它对应的参数组合构造SVM,并利用5-折交叉验证法计算该参数组合下 SVM的泛化能力,即分类成功率。
步骤4:引爆烟花,并从爆炸产生的火花中随机选择z个维度并进行边界处理,将处理后的结果保存在爆炸火花种群中。
步骤5:在解空间产生G个高斯变异火花添加到火花种群中。
步骤6:烟花,爆炸火花和高斯变异火花组成的集合中挑选下一代烟花种群。
步骤7:判断当前的迭代次数是否达到设定的烟花算法终止条件:若达到,输出烟花算法搜寻到的最优误差惩罚参数C和核函数参数g的组合;若未达到,算法回到步骤3继续进行迭代.
最后,将最优的SVM参数组合带入到SVM模型当中,得到最优SVM预测模型,并对入侵样本进行预测。
3 實验结果比较与分析
在此次实验中,我们的算法将与与SVM[7]、KNN[8]和 DNN[9]算法相比较,分别在基于这些算法的入侵检测模型上运行同样的测试用例。其中测试用例选取了部分KDD CUP 99数据集作为该实验的测试和训练数据。对于评价标准,我们采用如下公式:
(10)
其中,TP表示入侵行为被正确检测,FP代表正常行为被误判为入侵行为。我们将数据随机分成5组数据,每一组数据互相独立,来更直观地比较准确度,如表1所示。
从表1中可以看出,该文优化后SVM的入侵检测模型的精准度比普通SVM模型要略高,产生此现象的原因可能是SVM未完整覆盖解空间,导致算法在迭代后期可能未找到全局最优解,而在样本数量比较少的情况下,由于K-means和DNN的特征较多,容易陷入“维数灾难”,产生过拟合现象,导致精准度略低于该文模型。
4 结语
该文为了提高网络安全水平,能够对网络入侵进行精准检测,提出一种基于烟火算法优化SVM的入侵检测模型。该模型主要使用支持向量机来分类网络攻击,针对存在支持向量机中最优核函数参数和惩罚因子确定较慢的问题,利用烟火算法加快SVM最优核函数参数和惩罚因子的确定。与SVM、BPNN和DNN算法相比,该模型能更好地对入侵检测数据进行分类和判别。
参考文献
[1] 卿斯汉,蒋建春,马恒太,等.入侵检测技术研究综述[J].通信学报,2004,25(7):19-29.
[2] 杜红乐,樊景博.基于半监督模糊聚类的入侵检测[J].计算机工程与应用,2016,52(3):96-99.
[3] 任晓芳,赵德群,秦健勇.基于随机森林和加权K均值聚类的网络入侵检测系统[J].微型电脑应用,2016,32(7):21-24.
[4] 陈万志,徐东升,张静.工业控制网络入侵检测的BP神经网络优化方法[J].辽宁工程技术大学学报:自然科学版,2019,38(1):82-87.
[5] 熊云龙.基于改进遗传算法的网络疑似入侵最优数据选取[J].现代电子技术,2018,41(22):163-169.
[6] 朱传华.人工免疫算法在网络入侵检测中的应用[J].吉林省教育学院学报,2019,35(7):74-77.
[7] 钱亚冠,卢红波,纪守领,等.一种针对基于SVM入侵检测系统的毒性攻击方法[J].电子学报,2019,47(1):59-65.
[8] 冯莹莹,余世干,刘辉.KNN-IPSO选择特征的网络入侵检测[J].计算机工程与应用,2014,50(17):95-99.
[9] 杨印根,王忠洋.基于深度神经网络的入侵检测技术[J].网络安全技术与应用,2019(4):37-41.