一种基于公开网络数据集的异常分析系统
2020-06-08张永杰刘才铭张雁唐喻倪康惠
张永杰 刘才铭 张雁 唐喻 倪康惠
摘 要:异常分析技术对于优化网络管理和维护网络安全具有積极的作用,为了将机器学习算法应用到网络数据异常分析中,采用网络数据集KDD CUP99作为分析对象,构建了从网络数据集中选择数据的方法,根据网络连接的数据特征设置了数据属性,采用经典的机器学习方法对网络数据进行了分析和验证。编程实现了以上的异常分析流程,并形成了具有实际功能的软件系统,该系统能够针对公开数据集进行有效的异常分析。
关键词:异常分析;公开网络数据集;数据选择;数据属性;数据验证
Abstract:Anomaly analysis technology plays an active role in optimizing network management and maintaining network security. In order to apply machine learning algorithm to network data anomaly analysis,the network dataset KDD CUP99 is used as the analysis object,a method of selecting data from the network data set is constructed. The data attributes are set according to the data characteristics of network connections. A classical machine learning method is used to analyze and validate the network data. The above abnormal analysis process is realized by programming,and a software system with practical functions is formed,which can carry out effective abnormal analysis for the public data set.
Keywords:anomaly analysis;public network data set;data selection;data attribute;data validation
0 引 言
网络数据异常分析旨在将网络数据中的异常数据从大量的正常数据中识别出来,达到识别网络异常的目的,从而为主动的网络管理提供科学的依据。常见的网络数据异常分析方法主要采用数据分类的方法,它们主要将网络数据分类为正常数据和异常数据,还可以将异常数据按类别进行细分,例如采用决策树分类方法进行网络数据异常分析[1]。基于分类方法的网络数据异常分析,从根本上讲是一个分类器,常见的分类器有:基于贝叶斯的分类器、基于决策树的分类器、基于神经网络的分类器、基于支持向量机的分类器等。
决策树被广泛地用于分类问题中[2]。它采用监督学习方法,学习的结果表现为树形结构。在分类问题中,构建决策树表示基于特征对实例进行分类的过程,决策树的分支可以认为是if-then的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。决策树的构造过程一般分为三个部分,分别是特征选择、决策树生成和决策树剪枝。常见的决策树算法有C4.5、ID3等算法[3],其中,C4.5算法采用信息增益率计算方法构造决策树,它对ID3算法进行了优化,通过剪枝降低分类模型的复杂度,产生的分类规则易于理解,且采用其分类的准确率高,已经被应用到许多实际的分类应用系统中。
为了将决策树C4.5算法应用到网络数据异常分析中,乐山师范学院人工智能学院国家大学生创新创业训练计划项目团队在国家大学生创新创业训练计划项目、乐山市科技计划项目、互联网自然语言智能处理四川省高等学校重点实验室项目的资助下,采用网络数据集KDD CUP99作为分析对象,利用决策树C4.5算法分析公开网络数据集中包含的异常数据,设计和实现了一种基于公开网络数据集KDD CUP99的异常分析系统,该系统针对KDD CUP99的网络数据,用Java源代码实现了具体的C4.5算法,并具有完整的图形用户使用界面。
1 公开网络数据集KDD CUP99KDD CUP99[4-6]是一种公开网络入侵检测数据集,来自于麻省理工学院林肯实验室的DARPAR98数据集。林肯实验室的研究人员构建真实网络环境,仿真实现了针对各种用户类型、各种访问形式的网络流量和攻击手段,同时通过TCPDump技术采集了大量的网络数据,并通过文件形式进行保存。
哥伦比亚大学的Stolfo教授和北卡罗来纳州立大学的Lee教授采用数据挖掘等技术对DARPAR98数据集进行特征分析和数据预处理,形成了采用纯文本字符表示的KDD CUP99数据集[7]。KDD CUP99数据集拥有训练数据集和测试数据集,研究人员还对后者进行了网络数据连接分类的标注,明确了某一条网络连接记录的类型,即正常或攻击类型。由于以上特性,KDD CUP99数据集被大量网络安全领域的研究人员用于仿真实验,以验证新型入侵检测或异常分析技术的有效性。
KDD CUP99数据集中的每条网络连接用41个特征来描述,这些特征表达了该条网络连接的具体信息。对于测试数据集,研究人员在41个特征后,加上了一个标注特征,以表明该条网络连接属于哪种类型,所以,测试数据集的网络连接记录一共有42个特征。KDD CUP99数据集中网络连接记录的41项特征分为4种类型:TCP连接基本特征、TCP连接的内容特征、基于时间的网络流量统计特征和基于主机的网络流量统计特征。在KDD CUP99的测试数据集中,每条网络连接被标注为正常或异常,异常类型被分为4大类异常:拒绝服务攻击(DOS)、远程主机未授权访问(R2L)、未授权的本地超级用户特权访问(U2R)、端口监视或扫描(PROBING)。
2 系统设计
本文采用决策树C4.5算法,設计一种基于公开网络数据集KDD CUP99的异常分析系统,构建了该系统的系统结构、网络数据表示方法和异常分析流程。
2.1 系统结构
本文设计的系统结构如图1所示,主要功能模块有:数据选择、数据显示、数据统计、属性设置、验证计算、验证结果,其中,属性设置模块包含特征数目统计、标记属性统计、更新数据类型等子模块,验证计算包含简单交叉验证、K折交叉验证等子模块,验证结果模块通过混淆矩阵显示分析结果数据,并可通过该模块查看历史结果。
为了提高异常分析的准确性,本系统将网络连接记录的protocol_type、service、flag三个特征设置为离散型,其余特征为连续型,将特征值设置为相应的数据类型可以使得验证结果更科学。本系统可以手动选择训练数据集与测试数据集,在异常分析过程中,首先通过计算训练集特征属性的条件熵、信息熵,从而构造异常类型决策树;再利用测试集对决策树进行不同方式的验证,以便得到混淆矩阵,从而显示真实归属类别与预测归属类别;最后根据真实值与预测值得到最终异常分析结果。
2.2 网络数据表示
本系统根据手动选择结果,划分出训练集与测试集,采用Java语言的ArrayList数据结构存储训练集中不同特征样本值、特征样本数量。本文检测网络连接数据的分类标签是否相同,如果相同则定义为叶子结点,如果不相同则寻找信息增益率最大的特征进行划分,并进行决策树的分裂,生成左右子树。以上过程直到决策树中数据标签全部区分开才完成,这也表示结束决策树的构造。
在训练数据集中,每条网络连接记录包含38个连续类型的特征属性和3个离散类型的特征属性。本系统读取数据后,将数据类型默认设置为空。在属性设置模块中,选择待验证的特征进行属性更新,设置不同类型的特征值,用以计算各类熵值,从而得到更准确的信息增益率,使得分析结果更加接近真实结果。
2.3 异常分析流程
本系统的异常分析流程如图2所示,整个分析流程分为三个阶段:数据选择阶段、训练阶段、测试阶段。
在异常分析数据的选择阶段,本系统首先读取KDD CUP99的数据集文件,再由用户手动选择用于训练集和测试集的比例,最后本系统确定用于分析的具体训练和测试数据。在训练阶段,本系统统计训练集中每种网络异常的样本数量,计算各类特征的信息增益率,并以此为依据构造出一颗完整的决策树。在测试阶段,本系统将测试集中的每一条网络连接特征在构造好的决策树中进行遍历,每完成一次遍历就得到一条网络连接的分析结果,从而判断出该条网络连接是否正常,或者是何种异常类型。
3 系统实现
3.1 数据读取
本系统数据读取界面如图3所示。通过读取数据集文件中的所有网络连接记录,获取用于分析的网络数据。本系统采用缓冲区读取每一条网络连接数据,将每一条网络连接的不同特征值存储到ArrayList中,通过重复上述操作处理所有网络连接记录的特征值。同时,本系统将每一种网络数据(含正常类型或网络异常类型)的属性类型设置为空类型,通过DataController将数据传到数据面板中。
3.2 数据属性设置
本系统数据属性设置如图4所示。数据集中属性值分为连续型与离散型两种数据类型,读取数据后默认设置为空类型,更改数值类型后进行决策树构造,通过不同属性类型采用不同方式进行信息增益率的计算。在C4.5算法中,连续型变量的分析包含两条分支,确定分支阈值的核心思想为:将连续型变量升序排列后,选取任意两个属性值中点,通过计算相关的熵值得出信息增益率,再选取信息增益率最大的作为分裂属性。
3.3 决策树的构造
本文采用经典的决策树构造方法,生成树的节点node,判断训练集中样本是否为同一类别C,若为相同类别,则将节点标记为C类叶子节点。样本不属于类别C时,当属性列表为空时,标记node为叶子节点,其类别为训练集中样本数最多的类别。属性列表不为空时,计算属性类别中属性的信息增益率,选择信息增益率最高的属性标记节点node作为分裂节点。重复执行上述步骤,当节点中属性全属于同一类别时,决策树构造完成。
3.4 计算混淆矩阵
混淆矩阵的每一列代表了预测类别,每一列的总数表示预测为该类别的数据的数目。每一行代表了数据的真实归属类别,每一行的数据总数表示该类别的数据实例的数目。将测试集中每条网络连接的特征属性值在决策树中进行遍历,通过混淆矩阵记录每次遍历结果,再将遍历结果与真实数据进行比较得到计算结果。
4 结 论
本文设计并实现了一种用于网络公开数据集KDD CUP99的异常分析系统,通过对数据集进行特征获取和数据划分,确立训练数据和测试数据,通过分析训练集数据构造决策树,再通过遍历决策树,对测试数据的类型进行判断,从而实现了对公开网络数据集中异常数据的有效分析。本系统通过决策树的构造与混淆矩阵的计算,实现从数据集中区分出异常数据的功能。
参考文献:
[1] 李强,严承华,朱瑶.基于决策树的网络流量异常分析与检测 [J].计算机工程,2012,38(5):92-95.
[2] 王熙照,孙娟,杨宏伟,等.模糊决策树算法与清晰决策树算法的比较研究 [J].计算机工程与应用,2003(21):72-75+99.
[3] 冯帆,徐俊刚.C4.5决策树改进算法研究 [J].电子技术,2012,39(6):1-4.
[4] 张新有,曾华燊,贾磊.入侵检测数据集KDD CUP99研究 [J].计算机工程与设计,2010,31(22):4809-4812+4816.
[5] 吴建胜,张文鹏,马垣.KDDCUP99数据集的数据分析研究 [J].计算机应用与软件,2014,31(11):321-325.
[6] 郭成华.基于KDDCUP99数据集的入侵检测系统的设计与实现 [J].网络安全技术与应用,2017(12):57-60.
[7] STOLFO S J,FAN W,LEE W,et al. Cost-based Modeling for Fraud and Intrusion Detection:Results from the JAM Project [C]// Darpa Information Survivability Conference & Exposition. IEEE,2000.
作者简介:张永杰(1998—),男,汉族,四川乐山人,本科在读,研究方向:网络安全;刘才铭(1979—),男,汉族,四川武胜人,教授,博士,研究方向:网络安全;通讯作者:张雁(1979—),女,汉族,四川万源人,副教授,硕士,研究方向:网络安全。