网络入侵检测的机器学习算法评估与比较

摘要:入侵检测传统方法的准确性和有效性已经无法满足大数据时代的需求,机器学习算法日趋成为主流。现主要研究侧重于机器学习算法中的支持向量机,但其也有自身的缺点。因此,引入其他机器学习中的其他优秀分类算法,并使用经典的NSL-KDD数据集对比算法的准确性,分析适用环境,为将来不同场景下的入侵检测分析提供基础。在使用数据集完成模型训练后,使用ROC曲线、准确率等指标对模型进行评估,得出了较好的结果。

正文内容:

0 引 言

这些年来,互联网技术飞速发展。然而,随着新技术的产生,随之而来的网络攻击威胁也越来越大。互联网的主要入侵体现在攻击者可以在没有权限的情况下暴力进入系统。除了DoS攻击外,Probe、virus、rootkit、scanning、cross site scripting、SQL injection以及恶意软件等,都是常见的攻击手段。随着层出不穷的新型网络应用,传统静态网络安全技术的有效性正逐渐下降。同时,由于网络用户体量持续激增,国内缺乏信息安全知识的用户比例不断增大,对整个网络安全环境提出了严峻挑战。因此,可以动态检测网络系统安全性的入侵检测系统应运而生。

虽然网络技术发展已有30余年,但传统的入侵检测技术依然存在很大的局限性。无法分辨误操作还是入侵导致的准确率低下,会给网络管理员增加巨大的工作量;自身安全性不足会导致检测系统被黑客利用。随着分布式技术的不断发展与应用,缺少实时性与主动学习防御能力的不足更是暴露无疑。因此,近年来的入侵检测研究开始引入机器学习方法来弥补传统检测方法的缺点。机器学习算法与传统算法的不同之处在于,它把网络异常行为识别转化为模式识别问题,从网络流量特征、主机的记录数据来区分正常、非正常行为[1]。

现将机器学习算法用于入侵检测的研究多集中于支持向量机算法。支持向量机作为一种较新的分类算法,有着避免局部最优解和防止维数灾难的优点,能很好地克服传统入侵检测算法的不足。但是,它本身依然存在缺点。支持向量机只有在处理小样本的数据集时表现较好,在大数据时代无法真正发挥数据优势,且理论上支持向量机要求数据的特征空间是希尔伯特空间,而实际情况下大部分的数据都是无序的[2]。除了支持向量机之外,机器学习中存在着许多优秀且理论成熟的分类算法,其都有各自的优势。本文将贝叶斯网、id3决策树、感知机、KNN和AdaBoost算法用于实际的网络流量数据集中,并对比不同分类器算法的有效性,给未来入侵检测流量分析研究提供一种新的基础分类模型使用思路。

1 相关工作

1.1 数据采集

本文用来验证算法模型的数据集是NSL-KDD。NSL-KDD数据集是KDD99数据集的改进版,解决了KDD99数据集的许多潜在问题。NSL-KDD数据集没有改变KDD99数据集的基本结构,其中约有4 900 000条网络连接,以行向量表示,每一条向量由41个特征值和一个分类标识组成。NSL-KDD数据集改进的地方在于:(1)去除训练集中的冗余数据;(2)去除测试集中的重复数据;(3)协调数据集中的训练集、测试集的维度数,以更好地适应机器学习建模的需求。

1.2 数据预处理

由于NSL-KDD数据集中的数据无法直接用于机器学习建模,所以本文对其进行了预处理,使其中具有现实意义的特征值转变为数学模型可以使用的特征值[3]。预处理可以分为三步:数据转化、数据归一化和离散化。

1.2.1 数据转化

在NSL-KDD数据集中约有4 900 000行数据,每一行代表着一个网络连接的实例。与之对应的是42列数据,每一列代表一个网络连接中的属性。变化较为频繁的属性包括Duration、Protocol_type、Service、Src_bytes和Dst_bytes等。算法模型的主要变化就来源于实例中的这些属性。42个属性中并不是所有属性都以数值表示,所以无法直接在建模中使用。因此,本文通过数据转化把其中值为字符串的特征转化为数值表示。原始的NSL-KDD数据中的第42列特征值代表的是网络连接是否是一个攻击。若当前链接是一个正常网络链接,则特征值为“normal”;若当前链接是一个有异常的网络链接,则特征值会表明网络攻击的名称。本文把网络连接类型进行二分类,特征值为“normal”的转化为0,其他所有攻击都归为异常,转化为1。本文把“tcp”映射成数值2,“udp”映射成3,“icmp”映射成4等。原网络流量实例与映射转换之后的对比,如图1所示。

1.2.2 数据归一化与离散化

数据集体量十分庞大,因此预先对数据进行归一化,可以进一步加强入侵检测的效率和准确性。入侵检测基于网络流量,而网络流量的产生没有任何规律可以预测,更不符合正态分布模型。因此,对归一化方法的选择可以不用考虑协方差的影响。本文使用min-max方法对数据进行归一化,与其他归一化方法相比较,其具有计算量小的优点。

数据离散化的作用在于将同质的连续值归为一类。本文使用范围离散化对连续型数据进行处理。

本文的数据处理流程图如图2所示。总流程分为数据采集、数据预处理和结论分析三步。数据采集提供数据预处理的输入数据NSL-KDD数据集。数据预处理分为数据转化、数据归一化以及范围离散化三步,其输出再经过分类器进行训练。在结论分析中,对训练完的结果进行ROC分析和分类效率分析。

2 分类算法对比

NSL-KDD数据集分别提供了训练集和测试集,同时也提供了数据集的类别属性。因此,本文使用监督学习算法测试机器学习算法对入侵检测的有效性。通过分析不同的分类算法的优缺点,结合网络流量数据流量的特点,本文共选出了五种不同的机器学习分类算法对数据集进行模型训练。

贝叶斯网络所包含的是数据间的因果信息,是描述数据变量之间依赖关系的图形模型,由网络结构和概率分布组成。它使用最小损失函数作为分类的标准。训练模型时,已经分类完成的数据作为先验概率描述当前模型。在有新的实例数据输入后,模型再通过新的样本修正之前的先验概率分布,并不断迭代得到后验概率分布,以此优化模型[4]。与支持向量机相比,贝叶斯网络的优点在于所需参数少,对缺失数据敏感度较低[5]。

id3算法是决策树的一种,使用香农熵作为判断分裂优劣的标准。决策树是一种归纳方法,可以从一个集合中归纳出一个树形结构来完成分类。对于NSL-KDD数据,id3决策树会从使用贪心归纳学习方法,每次选择41种属性中信息增益最大的属性作为分类属性,并递归使决策树往更深的方向发展[6]。决策树的优点是,能够同时处理数据型和常规型属性。对于极大的数据源,决策树不要求对数据进行预处理,能够极大地提升训练效率。

感知机是二分类的线性分类模型,属于监督学习算法。对于拥有41项特征属性的网络流量数据集,感知机模型在于求出切分不同类数据的超平面。感知机的学习算法具有简单而易于实现的优点,分为原始形式和对偶形式。感知机预测是用学习得到的感知机模型对新的实例进行预测的,属于判别模型。

KNN算法通过测量不同特征值之间的距离进行分类,属于懒散学习方法。由于KNN算法是依靠邻近的有限样本,所以此算法比较适合类域重叠较多的数据集。同时,KNN算法重新训练数据集的开销较低。KNN算法首先统计邻近样本的类别信息,通过最大化后验概率方法,计算测试样本的所在集合,以达到分类目的[7]。

AdaBoost是个自适应分类器。它的自适应在于前一个基本分类器分错的样本会得到加强,加权后的全体样本再次被用来训练下一个基本分类器。其优点在于不用担心过拟合问题、AdaBoost本身只提供一个框架等,其中的弱分类器可以随应用场景的不同而更换,以达到更好的训练效果。

3 测试与评估

本文使用NSL-KDD提供的测试集验证以上各个机器学习算法对网络攻击侦测的效果。NSL-KDD测试集的结构与NSL-KDD训练集一样,包含了22 544行数据,其中每一条代表一条网络链接,每一条网络链接有41个特征和一个分类标识组成。和训练集不同的是,测试集中的网络连接提供了从来未在训练集中出现过的网络攻击,以此模拟真实世界环境中可能会遇到的网络攻击事件。

3.1 ROC曲线图

使用ROC曲线图对算法进行评估。图3表示贝叶斯网,其曲线较为平滑。图4的ID3决策树有明显陡峭的转折处。图5的感知机曲线,同时有凹曲线与凸曲线。图6的KNN曲线,与ID3决策树曲线相似。图7则是AdaBoost曲线,转折点较为圆滑。

受试者工作特征曲线图(ROC)展示了二分类问题中被正确分类的正类样例数量和未被正确分类的负类样例数量之间的关系。真阳率(True Positive Rate)作为纵轴,目的是计算出被正确标识的匹配对的比例。假阳率(False Positive Rate)作为横轴,目的是计算出被误分类为正类的非匹配对的比例。一个评判分类器好坏的重要标准是ROC曲线的AUC(Area Under Curve),即曲线下的覆盖面积。一般来说,面积越大,分类器的效果越好[8]。可以明显得看出,贝叶斯网络ROC曲线图的AUC面积是最大的。随着FPR的不断增大,只有在(0,0.3)内,TPR值相对较小,而在(0.3,1)区间内,TPR值在(0.9,1)浮动。ID3决策树的ROC曲线图与KNN的ROC曲线图较为相似,在(0,0.1)区间内TPR值迅速上升后曲线趋于平缓。不过,与贝叶斯网相比,当FPR增大时,TPR趋于1的速度较慢。从整体来看,它对于网络流量的分类效果不如贝叶斯网络。AdaBoost是一个以决策树为基分类器的一个分类算法,使用了多个弱分类器集合成一个强分类器。从AdaBoost的ROC曲线和id3决策树的ROC曲线对比来看,在(0,0.1)区间内,AdaBoost的TPR值比id3决策树的TPR值高了近0.2。虽然在FPR值接近1时两种分类器的表现接近,但在(0.1,1)的范围内,AdaBoost分类器的整体表现都明显优于单独的id3决策树分类器。感知机分类器的ROC曲线与其他分类器相比更陡峭,在(0.1,0.4)区间内,可以看出TPR值有明显得上身。虽然整体分类器表现不如贝叶斯网络,但如果给定FPT值在特定区间,感知机分类器的表现将较为优异。

3.2 分类器指标

ROC曲线图从分类器表现的是整体性能的优劣程度。此外,机器学习算法的准确率、查准率、查全率和特异率也是重要的判断指标。准确率是算法模型能正确预测正类与反类的概率。查准率是所有被预测为正类的数据中,实际类型是正类的概率,表达的含义是算法模型对正类预测的准确度。查全率是正类数据中被预测正确的概率,其表达的含义是算法模型对于正类预测的覆盖程度。特异率是反类被预测正确的概率,表达的含义是算法模型对反类预测的准确度。

从表1可以看到,所有模型的整体趋势是查准率很高而查全率偏低,这与测试集的挑选紧密相关。由于NSL-KDD提供的数据集中存在训练集中未存在过的攻击,因此训练得出的分类器更倾向于把这些从未见过特征的数据分类到反类,即算作网络攻击。AdaBoost在其中效果最好,在保持一个高查准率的同时也能获得不错的查全率。这是因为它整合了多个弱分类器形成了一个强分类器,但由于使用了多个分类器,与单个分类器相比,所需训练时间更长。对于单个分类器来说,可以从表1格中看到,id3分类器对分类的要求最为严格,因此其查全率是最低的。而感知机分类器对分类的条件相对宽松,查全率是算法中最高的,但查准率是唯一90%以下的。

3.4 评估结果

从本文的实验结果来看,机器学习分类器算法可以很好地应用在网络入侵检测问题上。由于网络流量的复杂性和不确定性,网络产生的相关特征值维度十分庞大,因此对分类器算法的要求较高,训练所需的时间也较长。强分类器可以单独使用,根据具体的查准率、查全率的需求选择对应的分类算法。若是对查准率、查全率要求都较高,那么可以选择使用AdaBoost算法对多个弱分类器进行聚合训练来达到更好的分类效果。

4 结 语

网络异常检测与机器学习技术的结合尚处于不断发展阶段。机器学习算法的普适性可以在网络分析方面得到更深入发展。从网络安全角度来看,可以将机器学习中的分类算法作为安全分析的基石。本文评估机器学习中常用的五种分类算法在网络异常分析中的效果,比较其在不同需求下的优劣,目的在于找出不同需求下的最合适机器学习分类算法。

本文的分类算法的查准率已经能满足大部分情况的需求,但相对的查全率还未达到最理想精度。为了防止有可能存在的网络攻击而导致把正常的网络流量也归入网络攻击,未来的研究重点会是如何在保持查准率在稳定水平的基础上提高查全率。

参考文献:

[1] 尹清波.基于机器学习的入侵检测方法研究[D].哈尔滨:哈尔滨工程大学,2007.

[2] Chand N,Mishra P,Krishna C R,et al.A Comparative Analysis of SVM and Its Stacking with Other Classification Algorithm for Intrusion Detection[C].International Conference on Advances in Computing,Communication,&Automation IEEE,2016:1-6.

[3] 张龙璨,柳斌,李芝棠.机器学习分类下网络流量的特征选取[J].广西大学学报:自然科学版,2011,36(S1):6-10.

[4] 关可卿,李洪心,孔宪丽.基于贝叶斯逐步判别法的入侵检测模型研究[J].数学的实践与认识,2013,43(09):172-180.

[5] 张夏天.统计学习理论和SVM的不足[EB/OL].(2009-08-11)[2017-07-26].http://blog.sciencenet.cn/blog-230547-248821.html.

[6] 刘春燕,翟光群.ID3算法在入侵检测系统中的研究与改进[J].计算机安全,2010(05):41-44.

[7] 钱燕燕,李永忠,余西亚.基于多标记与半监督学习的入侵检测方法研究[J].计算机科学,2015,42(02):134-136.

[8] Skalská H,Freylich V.Web-bootstrap Estimate of Area under ROC Curve[J].Austrian Journal of Statistics,2016,35(02&03):325-330.

[9] 周志华.机器学习[M].北京:清华大学出版社,2016:30-31.

作者:胡臻伟,施 勇,薛 质

单位:上海交通大学,上海 200240

作者简介:胡臻伟,男,硕士,主要研究方向为网络入侵检测;

施 勇,男,博士,讲师,主要研究方向为网络安全、网络攻防;

薛 质,男,博士,教授,主要研究方向为网络安全、网络攻防。

本文刊登在《通信技术》第12期(转载请注明出处,否则禁止转载)

本文来自企鹅号 - 通信技术编辑部媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏专知

【干货】首次使用分层强化学习框架进行视频描述生成,王威廉组最新工作

【导读】加州大学-圣塔芭芭拉计算王威廉组最新工作Video Captioning via Hierarchical Reinforcement Learning...

5424
来自专栏语言、知识与人工智能

基于段落检索的无监督阅读理解介绍

3062
来自专栏AI研习社

不可错过的TensorFlow工具包,内含8大算法,即去即用!

这是来自谷歌的工程师Ashish Agarwal2017 TensorFlow开发者峰会在的演讲,主题是《ML Toolkit》。他认为TensorFlow 是...

3733
来自专栏鸿的学习笔记

一个关于Scikit-Learn的简明介绍:Python机器学习库

如果你是一个Python程序员,或者你正在寻找一个牛逼的库,使你可以应用机器学习到生产系统上,那么你会要认真考虑的库就是scikit-learn。在这篇文章中,...

724
来自专栏PPV课数据科学社区

【推荐】深入探究递归神经网络:大牛级的训练和优化如何修成?

在深度学习领域,传统的前馈神经网络(feed-forward neural net,简称FNN)具有出色的表现,取得了许多成功,它曾在许多不同的任务上—...

2606
来自专栏小小挖掘机

探秘多智能体强化学习-MADDPG算法原理及简单实现

之前接触的强化学习算法都是单个智能体的强化学习算法,但是也有很多重要的应用场景牵涉到多个智能体之间的交互,比如说,多个机器人的控制,语言的交流,多玩家的游戏等等...

2374
来自专栏wym

贪心算法理论概述

  贪心策略是指从问题的初始状态出发,通过若干次贪心选择得出最优值(或较优解)的一种解法

691
来自专栏杨熹的专栏

一个 tflearn 情感分析小例子

学习资料: https://www.youtube.com/watch?v=si8zZHkufRY&list=PL2-dafEMk2A7YdKv4XfKpfb...

3886
来自专栏专知

春节充电系列:李宏毅2017机器学习课程学习笔记23之结构化学习-Structured SVM(part 1)

【导读】我们在上一节的内容中已经为大家介绍了台大李宏毅老师的机器学习课程的Structured learning-linear model,这一节将主要针对讨论...

2964
来自专栏人工智能

网络入侵检测的机器学习算法评估与比较

摘要:入侵检测传统方法的准确性和有效性已经无法满足大数据时代的需求,机器学习算法日趋成为主流。现主要研究侧重于机器学习算法中的支持向量机,但其也有自身的缺点。因...

3237

扫码关注云+社区