李志峰,高玉琢
(宁夏大学 信息工程学院,宁夏 银川 750000)
网络攻击会给用户带来巨大的损失,其影响范围广、危害大,有些损失和破坏甚至不可恢复,入侵攻击就是其中最主要的网络攻击[1-2]。保护计算机免受攻击的主要方法是利用入侵检测系统进行异常检测和响应(如图1所示),确保网络环境的安全。
图1 入侵检测响应流程
入侵检测数据集数据规模较为庞大,数据的维度也很高,而系统的检测性能很大一部分依赖于数据样本的特征选择。在机器学习中,高维度的数据常常会加大模型计算的复杂度,一些不重要的特征也会干扰模型的准确率,所以在入侵检测的相关技术研究中,很多研究者都对入侵检测的数据特征进行了分析处理。在入侵检测中对特征的处理一般分为两个方向,一是,在原始数据的基础上构建具有代表性的新特征;二是,使用机器学习中常使用到的特征选择方法。其作用是通过特定的算法选择出最优的特征子集,利用该子集构建分类模型,从而使模型能够实现相较于原始模型更好的预测精度,提高模型的计算效率和泛化能力。该种方法在实际的应用中更为广泛,特征选择基本框架如图2所示。
图2 特征选择基本框架
常用的特征选择算法分为过滤式、包裹式和嵌入式。过滤式方法是通过计算直接对所有特征进行筛选,选择出相对较优的特征构建特征子集,然后将特征子集送给后续的模型进行训练。该种方法的特征选择与具体的模型无关,仅关注入侵数据的特征本身。包裹式方法是根据后续模型的分类性能来进行数据特征的选择,需要通过不断的训练进行最优的特征子集构建,选出的特征子集较过滤式更优,缺点是进行特征选择的时候需要反复的训练模型,计算开销较大且模型训练时间较长。同时该方法泛化能力差,一旦更换后续的模型,需要重新进行新的特征子集选择。嵌入式方法是模型在训练过程中自动地进行特征选择。
在实际的应用中,根据所使用的检测模型可以合理地选择不同的特征选择方法和算法,从而有效地提高检测效果。
按照检测方法的不同可以将入侵检测分为异常检测和误用检测。异常检测需根据用户的正常行为特征建立特征数据库,在实际中根据获得的用户行为与数据库中的特征进行比较,如果偏离到阈值范围之外就判定为异常。误用检测是根据存储在特征库的入侵行为来判断获得的用户行为的性质,特征库里包含的攻击特征作为检测的判断依据。
异常检测通过生成异常行为的集合,从中检测真正的攻击行为,但是在实际情况下,检测到的异常行为或者正常行为不一定准确,会出现不是攻击行为但表现出不正常的情况,或者是攻击行为但没有被检测出来被系统误判为正常的情况等。异常检测模型如图3所示。异常检测的优点是一定程度上可以检测出新的入侵类型,因为它的判断依据与入侵流量的特征无关,而缺点就是误检率较高,因为不能准确定义系统中的正常行为模式,同时它不能分辨具体攻击类型,只能检测出是否异常。
图3 异常检测模型
误用检测是根据已知攻击行为具备的相应特征来判断攻击类别。首先对已知的攻击行为进行分析,接着将提取的规则建成一个入侵规则库,对收集的数据进行分析时就将该数据信息与入侵规则库中的规则进行匹配,如果符合就判定为攻击行为[3]。误用检测模型如图4所示。误用检测优点突出,该方法的准确率高,对于已知攻击的检测较为准确,但这种方法检测的效果与数据库是否足够完备密切相关,需要即时更新入侵检测数据库以提高检测率,缺点是这种检测方法无法发现未知的攻击行为。
图4 误用检测模型
网络入侵数据中混杂着多种类型的数据,对数据进行处理分类时,使用单一的分类器很难进行准确的分类,且单一的分类器研究不能在当前数据海量且复杂的入侵攻击环境中起到良好的检测效果,存在较高的误报率。在检测性能方面,当前已有一些较好的研究可以针对特定类型的入侵攻击有较高的检测准确率,但模型难以检测到新的未知类型的攻击,模型缺乏良好的泛化能力。为此,采用混合级联的方法可在一定程度上解决以上问题。
针对入侵检测数据维度高,各特征属性之间存在较大的相关性,数据冗余导致检测效率低,影响算法时空复杂度等问题,可以在特征降维方面进行研究。从特征选择角度出发,采用基于机器学习的特征选择方法,如过滤式方法中的CFS算法、Fisher方法、Relief方法;包裹式方法中的LVW方法、FFSR方法和序列搜索算法等去除与分类效果不相关的冗余特征属性[4],实现特征择优,从而提高检测效率。
针对现有的算法大多不能在检测率和误报率之间找到一个很好的权衡点,算法泛化能力差,对未知类型的攻击检测存在大量漏报,从而导致算法的整体性能下降的问题,可以从多个分类器混合级联的角度出发,将基于异常和基于误用的检测方法采用混合级联的方法应用在入侵检测系统中,从而兼顾这两种检测方法的优点。在实际应用中,首先,采用合适的特征选择方法选出最优的特征子集。然后,考虑采用分类效果较好的分类器进行基于误用的检测,如基于信息增量的随机森林分类方法,将异常的数据初步筛出,但在该部分检测出的正常数据中还存在着未被检测出的异常数据,对此构建混合级联的检测方式,将第一步检测出的认为正常的数据送入级联的分类器中重新检测,确保第一个分类器在分类误报率较高的情况下,通过第二个分类器进行分类后能达到较高的检测准确率以及较低的误报率。最后,结合第一级分类器的部分分类结果,得到最终的全部分类结果。
实验主要采用KDD cup99和UNSW_NB15数据集,实验中一般选取检测准确率(ACC)、精确率(PRE)、召回率(RE)、误报率(FAR)4个评价指标。计算公式如下:
其中,True Positive(TP)为正确识别的正样本数,True Negative(TN)为正确识别的负样本数,False Positive(FP)为错误识别的正样本数,False Negative(FN)为错误识别的负样本数。
此外,还可以通过分析F1值,即精确值和召回率的调和均值来评判所提算法的综合性能,计算公式如下:
采用合适的特征选择算法和级联分类器的方法在一定程度上能够提高算法的检测性能,但也可能会增加检测时间。在实际研究中,可尝试选择AdaBoost等强分类器,也可以从算法优化的角度,对特征选择算法和分类算法进行优化改进,从而实现在保证算法性能的同时缩短时间。