本文是一篇计算机论文范文,本文使用的数据集是 CIC-IDS-2018,实验结果表明,经过集成特征选择之后,最优特征子集包含 11 个特征,数据量减少了 76.93%(数据量减少了 1097MB),在三种分类器中运行时间平均减少了 25.70%,在基于 Stacking 的流量分类中,对比三种分类器结果,准确率平均有 2.04%的提高,对比单个特征选择算法,准确率平均 20.02%的提升,对比标准的 Stacking 算法,可以在一定程度上防止数据过拟合。因此,本文提出的基于集成学习的网络异常流量检测框架能够有效的减少数据的特征,且对网络异常流量检测有不错的效果。
第1章 绪论
1.1 研究背景和目的
近年来,互联网技术飞速发展,已经改变了人们生活方式,互联网变得非常重要,带动了全球经济的发展,且随着互联网用户增加,网络流量规模持续扩张。思科的预测报告指出[1],在 2017 年时,全球的互联网用户已经达到了 34 亿,IP(Internet Protocol,IP)流量达到 1.5 泽字节(ZettaByte,ZB);在 2022 年将达到48 亿用户,与此同时全球 IP 流量的规模也将到达 4.8ZB。然而,由于缺乏网络安全意识,且随着网络攻击技术的不断发展,很多网络应用存在各种网络安全威胁,随时可能被攻击。例如,域名系统提供商 Dyn 公司于 2016 年遭受的网络流量攻击[2],黑客恶意操控数以百万计的 IP 地址要求域名服务器进行大量域名系统协议(DomainNameSystem,DNS)解析从而导致数以万计的用户无法连接网络;2018 年 GitHub 公司遭到最高峰值为 1.35 太比特率(Tbps)的分布式拒绝服务(DistributedDenialofService,DDoS) 攻击[3],断线至少 5 分钟,给公司造成了巨大损失。网络异常流量检测能够有效检测网络攻击,避免用户遭受损失,因此,网络流量异常检测成为网络安全研究的热点。
在传统的网络异常流量检测方法中,主要的方法是基于端口和基于深度包检测(Deep Packet Inspection,DPI)[4]。基于端口的方法主要是根据应用程序注册的端口来识别流量,这些端口由互联网数字分配机构[5](Internet Assigned NumbersAuthority,IANA)指定,由于应用程序未注册或随机产生端口,导致这种方法不可靠。基于 DPI 的检测方法是根据是否匹配数据包的有效载荷和数据包的存储签名对网络流量分类,但当数据包内容不被允许访问或数据包本身被加密时,该方法就会失效。为了解决上述问题,近年来机器学习算法越来越多地被用来解决网络异常流量检测问题,因为机器学习不需要获取数据包内容,只需要根据数据流的特征做出判断,并且可以快速地检测异常流量数据。
.....................
1.2 国内外研究现状分析
机器学习成为当今越来越热门的研究话题,应用于各个领域且取得了很好的效果,机器学习大体分为两类[7],一类是有监督学习,一类是无监督学习。有监督学习方法将每一条数据打上标签,学习模型根据输入和输出之间的联系构建关系,去预测新数据的输出。无监督学习方法没有实现给定的标签数据,而是根据输入数据之间的聚类关系进行分类或分群。由于有监督学习方法根据自变量和因变量之间关系构建模型,效果一般来说比较好,而无监督学习方法由于特征之间的聚合很难预测,效果也很难预测。国内外很多学者将机器学习方法应用在网络异常流量检测中,在异常流量检测中最主要的问题是如何选取特征,以及如何选择分类算法。
1.2.1 特征选择研究现状
在机器学习中,特征选择是一个关键的问题[8],国内外很多学者提出很多特征选择方法,常见的特征选择方法包括过滤法和嵌入法,过滤法是计算单个特征和目标变量的相关性的方法,在嵌入法的流程中,首先进行机器学习训练模型,机器学习算法可根据需求选择,最后根据模型反馈得到每一个特征的权重系数。Osanaiye[9]等人提出一种集成特征选择算法,在该算法中分别使用了信息增益、信息增益率、ReliefF 和卡方,利用这四种过滤方法进行特征选择,在特征选择后选取包含在这四种方法中的都存在的特征,最后采用决策树作为分类器评估模型。但是这种方案没有考虑特征与特征之间的联系,且该方法只使用单个算法评估模型,导致模型的稳定性较弱。Hoque[10]等人在上述方法的基础上加入了对称不确定性方法,该方法也属于过滤法,选用了 21 种数据集,最后用决策树、随机森林、K近邻(K-NearestNeighbor,KNN)和支持向量机(SupportVectorMachine,SVM)评估模型。但是这种方案只是增加了多个算法评估模型,并没有增加其他种类的特征选择方法,也没有解决特征与特征之间没有联系的问题。Singh[11]等人提出一种集成特征选择算法包含以上五种方法,另外加入了相关系数和 SVM,相关系数属于过滤法,SVM 属于嵌入法,根据每个方法产生的特征权重筛选特征,最后用多层感知机作为二分类器评估模型。但是该方案过滤法和嵌入法的比例失调,过滤法有 6 种,嵌入法只有 1 种,导致模型存在偏向性,该方案采用的是二分类模型,即按照正常流量和异常流量进行分类,无法确定异常流量具体类型,且该方案也只使用单算法评估模型。
..............................
第2章 相关理论知识
2.1 网络数据集选取
2.1.1 网络流量说明
在网络中传输的数据量,一般称为网络流量,在网络传输中,数据传输的是比特流,在网络的物理层接收的是一段 0 和 1 组成的,人无法理解其中的意义,所以网络流量一般指网络中的数据包。一个个数据包从网络中发出来,形成了网络流,大量的网络流中有很多统计数据,分析网络流的特性,根据实际应用,提取网络流量特征。
网络流的特征信息一般会反映网络流量的不同特性,因此可以根据网络异常流量的不同特性,判断网络攻击的类型。在网络流的特征提取中,有很多不同的特征提取方式,本文选取的网络数据集是 CIC-IDS-2018,该数据集由加拿大网络安全研究所采集,在本次采集中,所用的特征提取工具是 CICFlowMeter-V3[18],提取了 76 种特征。在这 76 种特征中,可能存在冗余和不相关的特征,因此对数据的特征选择很有必要。如表 2-1 所示是部分特征以及说明,我们获取的每一个数据就是一个网络数据流,这个数据流由五元组确定,五元组包括源 IP 地址、源端口、目的 IP 地址、目的端口和网络协议。在一个网络数据流中,包含了很多统计特征,比如传输的数据包的个数、大小等信息,统计这些特征是因为网络攻击中可能有自己独特的攻击模式[19],那么其中的某些统计特征可能反映该网络攻击的特性,通过机器学习训练数据,能够找到出这些特性,从而检测出异常流量攻击类型,但是可能某些特征对于机器学习的训练是无用的,甚至影响模型的准确率,所以选择网络流量中的特征也是异常流量检测中不可忽视的问题。
............................
2.2 集成学习算法原理
特征选择的解释是根据数据的属性做出选择,在分类任务中,特征选择需要找到和标签类高度相关的属性子集[23]。在高维度数据中,如果不经过特征选择,模型太过于复杂,计算机的大量资源被消耗,相应的模型的运行时间也很长,因此,对数据进行特征选择很有必要。近年来,集成特征选择的快速发展借鉴了集成学习的思想,与单个特征选择方法不同(仅寻求单个最佳特征子集),集成特征选择的目标是获得多个最佳特征子集,根据多个最佳特征子集的结果做进一步处理。当处理高维数据时,对比单个特征选择算法,集成特征选择算法具有更好稳定性和鲁棒性[24]。
集成学习就是将多个单一的学习器进行组合,最后形成一个强学习器,之所以组合多个学习器是因为有时候单一的学习效果不够理想,多个学习器可以弥补各自的缺点,从而更好的完成任务。图 2-1 显示了集成学习示意图。
..............................
第 3 章 基于投票机制的集成特征选择..............................22
3.1 算法框架.............................. 22
3.2 特征选择算法概述 ............................. 23
第 4 章 基于 Stacking 的异常流量分类..............................31
4.1 算法框架........................ 31
4.2 分类器概述 ............................ 32
第 5 章 实验结果与分析 .......................41
5.1 实验平台..................................... 41
5.2 实验数据集及数据预处理........................ 41
第5章 实验结果与分析
5.1实验数据集及数据预处理
5.1.1 CIC-IDS-2018 数据集
本文使用的数据集为 CIC-IDS-2018 数据集,异常检测一直是研究人员关注的重点,真实标记网络轨迹是理想的测试和评估方法,然而数据的可用性极为罕见,因为很多数据集是内部的,不对外开放,另一方面很多数据集被大量匿名化,无法反映当前情况。为了解决这些问题,通信安全机构(CSE)和加拿大网络安全研究所(CIC)的合作生成了 CIC-IDS-2018 数据集。在该数据集中,为了产生正常用户流量,用脚本设计提取了人