侯莹,陈文胜,王丹宁,程陈,牛诗川,姬瑶
(中国地震局第二监测中心,西安710054)
随着网络技术的快速发展,如何维护通信网络安全成为人们关注的重点,入侵检测已经成为一种重要手段。入侵检测是一种安全机制,通过检测网络行为,识别网络通信中的异常访问,并及时给予告警响应[1]。目前网络技术和通信设备的广泛应用,导致大量的数据被记录,由于数据信息的高维复杂性,增加了入侵检测的难度。为解决数据的维度灾难问题,许多研究者考虑对数据特征维度进行特征提取,剔除冗余和噪声数据[2-3]。
近年来,基于特征选择技术和分类器集成技术进行入侵检测模型构建方式被广泛研究[4-8]。特征选择技术能够选择出最优特征子集,提高模型的检测性能。由于每种特征选择算法的侧重点不同,各种集成特征选择方法相继被研究[2]。而且集成或者混合检测模型的构建方式能够有效避免单个分类器出现的问题,能够提高检测模型的分类性能[4,9-10]。
本文提出了一种基于集成特征选择的入侵检测模型,首先采用集成方式选择出最佳的特征子集。其次构建多个分类器模型,采用多数加权投票原则确定最终的决策判断。经实验证明,此模型通过集成特征选择方式能提高训练效率和缩短训练时间,并在多个检测评价指标上有所提升,能够有效地提高检测模型的分类性能。
每种特征选择算法的侧重点不尽相同[11],本文提出的集成算法结合了基于相关性特征选择(CFS)算法和基于互信息(MI)两种算法。其中,CFS 算法能全面考虑特征与特征之间的关联程度,而MI 算法考虑特征和类标之间的依赖关系。
本文所提出的集成特征选择方法的工作过程如下:
(1)每种特征选择算法执行后可以得到各自的特征等级序列,按特征重要程度可以划分为三个子集:非常有用、有用和无用的特征。因此,执行CFS 算法可以得到三个等级序列子集:C1、C2 和C3,同理执行MI 算法可以将特征序列分为三部分:M1、M2 和M3。其中C1 和M1 集合的特征包含重要的分类信息,是不能剔除的,否则会影响算法的精度;C2 和M2 集合相比于无用特征对于类型的检测识别来说是比较重要的,应该被选择;C3 和M3 集合特征对于分类检测是没有重大帮助,应该被剔除以提高处理速度和精度。
(2)对六个特征子集进行并或交运算,整合出新的特征子集。首先将C1 和M1 进行合并,得到非常有用的特征子集Union;其次C2 和M2 进行交操作得到有用的特征子集Inter;最后删除C3 和M3 所包括的无用特征,由于这些特征增加了模型训练的时间但并没有提高模型的检测精度。
(3)进一步合并Union 和Inter 两个特征集合,能够选择出多个重要特征,并依此对训练集和测试集数据进行特征筛选。
所提出的入侵检测模型除了对特征选择算法进行研究,还构建了一种多分类方法。基于特征提取后的数据集构建出支持向量机(SVM)、决策树算法(DT)和K-近邻算法(KNN)三个分类器,并采用多数投票算法构建入侵检测模型。其中SVM 分类器的γ值取样本类别数目的倒数。KNN 分类器的k 设定了默认值5,选择欧几里得作为距离判断标准。
本文提出的基于集成特征选择的入侵检测模型流程图如图1 所示,从图中可以看出,模型的工作过程可以划分为四个部分:①对原始数据的预处理过程;②数据特征选择过程,并产生重要特征集合;③集成分类模型的训练;④基于测试数据集进行模型性能检测。
图1 入侵检测模型流程图
UNSW-NB15 数 据 集[12]不同于 KDDCUP99 数据集,是一个基于真实正常行为和人为造成攻击的混合数据集。通过研究可以统计出,NUSW-NB15 的数据样本共有49 个特征,其中标签特征Label 取值0 和1,分别对应正常样本和攻击样本。
用于本文实验的数据集包括:训练集UNSWNB15 Training Set 和测试集 UNSW-NB15 Testing Set,其中训练集有175341 条数据,测试集有82332 条数据。而且数据集满足以下3 点:①训练集和测试集之间没有任何冗余数据;②训练集和测试集的分布基本一致;③训练集中出现的攻击类型均在测试集中包含。
通过分析可知,该数据集中包含了多个不相关和冗余的特征,会在一定程度上降低检测模型的性能,为此在实验时首先进行以下数据预处理操作:
(1)去除多余特征:特征id 只是简单的序号,去除。
(2)名词性特征数值化:NUSW-NB15 数据集中有多个属性为符号性变量:包括特征proto、service、state、attack_cat,对其数值化处理:proto 属性数值化为:0-130;service 数据化为:0-12;state 数值化为:0-6;attack_cat 数值化为:0-9。
(3)采用 z 分数转换,将特征值进行标准化:NUSW-NB15 数据集中有多个属性维度之间差异度较大,会产生难以聚类的问题,包括 sload、stcpb、dtcpb、rate、dbyte、sbyte 等特征。对其进行 z 标准化,统一量纲。
入侵检测模型性能的好坏需要一个定量的评价标准,本文选用了五个评价指标,从不同的角度对所提出的基于集成特征选择的网络入侵检测模型进行性能评价。每个评价指标的计算公式如下:
准确率:
召回率:
精确度:
F 分数(又称调和平均数):
G 平均:
其中,公式(1)-(5)中的 TP 和 TN 分别表示正阳性(表示预测结果和实际样本均为攻击类型的样本个数)和正阴性(表示预测结果和实际样本均为正常类型的样本个数),FP 和FN 分别表示假阳性和假阴性。假阳性是指将正常类型错误识别为攻击类型的样本个数,假阴性是指检测模型将攻击类型错误识别为正常类型的样本个数。
为更加全面的验证所提出的基于集成特征选择的网络入侵检测模型的有效性,本文设计了以下两组实验,从两个不同的角度对模型性能进行验证。
验证集成选择的特征数量对入侵检测模型性能的影响。
本文所提出的模型涉及到特征选择的数量,为展示特征数量与分类准确率之间的关系,通过选择不同的交并参数,产生了从18 到42 不同特征个数,在不同特征数量下检测模型的分类预测性能如图2 所示。在图中用灰色的不同标记展示每种模型的平均指标,从图中可以看出,本文所提出的模型在不同特征子集下的性能均优于其他模型。决策树模型(DT)的曲线变化波动比较大,原因可能是其算法本身选择信息增益为决策准则,选取的特征数量对其影响比较大。
此外,分析每个方法随着特征数量的变化曲线,可以看出进行特征选择之后,每种模型的准确率均有所提升,说明通过使用集成特征选择算法可以提高入侵检测模型的检测性能。
图2 特征数量与准确率关系图
从多个性能指标层面分析模型的性能。
不同算法的指标平均统计结果见表1 所示,每个指标值均是多种特征数量情况下实验的平均值。通过对表1 中数据分析可知,本文所提算法在五个指标上有1%到28%不等的提升,特别是在F 分数和G 平均这两个综合性评价指标上提升比较明显,这说明本文所提出的模型具有良好的性能,能有效地识别异常。
表1 各种算法多性能比较
为了更加直观地展示模型的性能,选用直方图来显示四个检测模型的整体性能,每个算法在每个指标下的指标对比如图3 所示。从图3 中可以看出来,本文所提出的模型(纯灰色区域)的指标值均高于其他算法,进一步说明本文所提出的模型检测性能均优于其他模型。
图3 多算法多性能对比图
本文提出一种基于集成特征选择的入侵检测模型。该模型能有效处理高维、复杂的不平衡数据分类问题,并采用集成的特征选择算法避免了单一方法的局限性,提高了模型的检测性能。在今后的工作中,在特征选择算法的选择上需要进行研究,通过引入二叉树结构设计,对真实网络流量数据进行研究,进一步应用到实际网络异常检测过程中。