论文部分内容阅读
随着当今互联网的快速发展,网络安全事故越来越频繁地发生,网络攻击行为的检测也得到了研究人员的越来越多的关注,其中机器学习的相关技术为网络攻击流量的检测提供有力的支持。根据机器学习算法对训练集标签的需求,可将其分为无监督学习、有监督学习和半监督学习算法,由于不同的算法间对于训练数据集的要求不同,各个算法会在分类的任务中有着不同的表现。其中仅采用无监督训练的算法不依赖训练集的标签,能够在最低数据成本的条件下达到较好的二分类效果,但由于缺乏有标签训练集的引导,会导致模型检测性能较差,并且难以对具体的网络攻击类型进行分类;而采用有监督学习的算法往往会有着最好的分类效果,但其算法流程过于依赖训练集的标签数据,使得人工标注成本过高,当缺少有标签训练数据集时,会严重影响检测模型对网络攻击流量检测的性能;而基于半监督学习的算法可以利用少量标签数据集建立初始分类模型,然后利用大量的无标签数据集进一步强化初始模型的分类效果。本文提出了一种基于半监督学习的网络攻击流量检测算法,目标是解决单纯依靠无监督或者有监督学习带来的检测缺陷以及标签数据集的成本问题。算法基于提升方法原理(Boosting)的集成学习算法,通过自训练的方式结合模糊值判定实现半监督分类模型的训练。并基于此算法设计并实现了一套实时网络攻击流量检测系统,包含流量数据包采集、攻击流量检测、可视化管理这三个功能模块。流量数据包采集模块基于DPDK(Data Plane Development Kit,数据平面开发套件),保证了流量数据的高效获取;攻击流量检测模块基于本文所提出的算法,采用少量标签数据集与大量无标签数据集进行训练,降低了算法应用时的数据集获取成本。算法的测试采用NSL-KDD数据集,实验结果表明,本文的多分类检测模型的准确率在KDDTest+和KDDTest-21测试集上分别达到95%和91%,达到了攻击流量检测准确率达到90%以上的目标。本文的流量检测系统已在某医疗机构的机房中部署试运行,运行期间系统对攻击流量的通报及时准确,且系统所有的模块运行平稳,给医疗系统的数据安全提供了有力的保障。