基于KNN离群点检测和随机森林的多层入侵检测方法

任家东1,2 刘新倩1,2 王 倩1,2 何海涛1,2 赵小林3,4

1(燕山大学信息科学与工程学院 河北秦皇岛 066001)2(河北省软件工程重点实验室(燕山大学) 河北秦皇岛 066001)3(北京理工大学软件学院 北京 100081)4 (软件安全工程技术北京市重点实验室(北京理工大学) 北京 100081) (jdren@ysu.edu.cn)

入侵检测系统能够有效地检测网络中异常的攻击行为,对网络安全至关重要.目前,许多入侵检测方法对攻击行为Probe(probing),U2R(user to root),R2L(remote to local)的检测率比较低.基于这一问题,提出一种新的混合多层次入侵检测模型,检测正常和异常的网络行为.该模型首先应用KNN(K nearest neighbors)离群点检测算法来检测并删除离群数据,从而得到一个小规模和高质量的训练数据集;接下来,结合网络流量的相似性,提出一种类别检测划分方法,该方法避免了异常行为在检测过程中的相互干扰,尤其是对小流量攻击行为的检测;结合这种划分方法,构建多层次的随机森林模型来检测网络异常行为,提高了网络攻击行为的检测效果.流行的数据集KDD(knowledge discovery and data mining) Cup 1999被用来评估所提出的模型.通过与其他算法进行对比,该方法的准确率和检测率要明显优于其他算法,并且能有效地检测Probe,U2R,R2L这3种攻击类型.

关键词 网络安全;入侵检测系统;KNN离群点检测;随机森林模型;多层次

随着计算机和网络服务的不断发展,计算机和网络的安全已经成为一个重要的问题.网络中异常行为的检测已经成为网络安全领域重要的研究内容.入侵检测系统用来检测和分析网络数据,标识异常的网络行为.通常来讲,入侵检测系统主要分为2类:基于误用的入侵检测系统和基于异常的入侵检测系统[1].基于误用的入侵检测系统可以有效地检测出已知的攻击类型,例如Snort入侵检测系统[2].这种类型的入侵检测系统误报率较低,但是不能很好地识别网络中新的攻击类型.基于异常的入侵检测系统能够根据正常的网络行为建立检测模型,识别出正常行为的偏差值,从而识别网络异常行为[3].这种类型的入侵检测系统能够检测出新的或未知的攻击类型,但又有较高的误报率.

为了降低基于异常的入侵检测系统的误报率,许多数据挖掘和机器学习方法,例如支持向量机(support vector machine, SVM)和神经网络,被应用到入侵检测系统中.目前的许多研究将特征选择或特征提取的方法与一些机器学习的方法相结合,来提高入侵检测系统的准确性,同时降低算法的运行时间.Raman等人[4]提出将超图、遗传算法和支持向量机相结合来实现入侵检测系统.超图和遗传算法用于实现支持向量机模型的参数估计和特征选择,支持向量机用来对特征选择后网络数据进行异常检测,证明了特征选择方法和支持向量机结合可以提高数据识别的准确率.Khammassi等人[5]采用遗传算法和逻辑回归算法进行特征选择,选取最优的特征子集.通过不同的决策树算法证明本方法选取的特征子集对于入侵检测是有效的.Aljawarneh等人[6]采用信息增益来选取重要特征,并提出一种混合投票模型,结合J48,Meta Paging,Random Tree等方法来识别异常数据,该方法能够提高检测的准确性,降低误报率.George[7]选择支持向量机和主成分分析来执行网络数据的异常检测,与贝叶斯分类算法和信息增益降维方法的分类效果进行比较,并证明主成分分析和信息增益降维方法都能改善贝叶斯分类算法的效果,但会降低支持向量机的分类效果[8].

除了上述方法外,一些方法还侧重于研究数据集中数据项的选取,通过采用聚类方法或抽样方法来选取部分有代表性的训练数据.该训练数据与机器学习算法相结合,可以显著降低分类器的训练时间并提高分类的准确率.程晓旭等人[9]采用改进的K-means算法得到全局的最优的聚类划分,降低了异常检测的时间复杂度.Alyaseen等人[10-12]将改进的K-means方法与机器学习方法相结合来构建入侵检测模型.改进的K-means方法能发现数据之间相似的结构或模型,从而能够降低数据集的长度,得到一个高质量的数据集.将改进的K-means与C4.5结合来构造入侵检测模型的分类器,大大降低了入侵检测系统的运行时间[10];与支持向量机算法相结合有效的提高了异常数据类型DoS(denial of service),R2L(remote to local),U2R(user to root)的检测率[11];与支持向量机和极限学习机(extreme learning machine, ELM)的混合模型相结合来提高入侵检测系统的准确性和效率[12].Roshan等人[13]提出一种自适应的入侵检测系统结合聚类和极限学习机模型,该方法能够以较小的代价检测出已知的和新型的攻击.Enamul等人[14]采用抽样技术与最小二乘支持向量机(least square support vector machine, LS-SVM)的混合模型,抽样技术选择最有代表性的训练数据集,最小二乘支持向量机对网络数据进行分类,标识异常数据类型.

尽管对于网络异常行为检测的研究很多,但仍然存在着某些异常行为(例如Probe(probing),U2R,R2L)的检测率较低以及各类别检测不均衡的问题.本文主要针对这一问题,提出一个新的混合模型,结合KNN(K nearest neighbors)离群点检测算法和多层随机森林算法来建立入侵检测模型.采用KNN离群点检测算法获取一个小规模、高质量的训练数据集.在此训练数据集上,结合类别检测划分方法,构建多层次的随机森林模型,检测网络异常行为.基准数据集KDD(knowledge discovery and data mining) Cup 1999用来评估本文算法的正确性和检测性能,并在不同大小的测试数据集上验证本文算法的扩展性.

Fig. 1 The entire flow of the proposed method
图1 本文算法的整体流程图

1 基于KNN离群点检测和随机森林的多层入侵检测方法

本节描述提出的方法结合数据选取和多层随机森林算法来进行入侵检测.该方法主要包括4个阶段:1)对训练数据集和测试数据集进行预处理;2)数据选取阶段,得到一个新的规模小、质量高的训练数据集;3)采用新的训练数据集训练多层的随机森林分类器;4)测试校准测试数据集.最终得到测试数据集中正常行为和异常行为的检测结果.本文算法的整体流程如图1所示:

在基准数据集KDD Cup 1999中,10%的训练数据集具有数据量大和数据类别不平衡的问题,该数据集被完全用于分类器时,存在许多引人注意的问题.首先是训练器的训练时间会非常长,可能会因为内存溢出而导致训练失败.其次,因为数据之间的不平衡,导致训练器在分类性能上更偏向于数量较多的类别,使得类别Probe,U2R,R2L的分类准确性偏低.因此本文对训练数据集进行数据抽取,从而降低数据集的大小,并得到新的高质量的训练数据集.

1.1 基于KNN离群点检测的数据选择方法

该部分采用KNN离群点检测算法对数据进行选择.KNN离群点检测算法是一种基于距离的离群点检测算法,最早由Knorr等人在1998年提出.该方法是在KNN的基础上发展而来的,是一种比较简单且易于应用的离群点检测算法.KNN离群点检测算法的基本思想是通过计算数据集D中每个数据与数据集D中其他数据的K近邻平均距离,并对每个点的K近邻平均距离进行降序排序,距离最大的前N个点被认为是离群点.在本文中,离群点被认为是分布稀疏且离高密度的群体较远的点.在数据选择时,删除数据集D中的N个离群点,得到新的数据集D′,新数据集的大小为M=|L-N|,L为原数据集D的大小.

在采用KNN离群点检测算法进行数据选择之前,先将训练数据集分为5类:Normal,Probe,DoS,U2R,R2L,在每一类数据集上执行KNN离群点检测算法,得到一个新的规模小、质量高的训练数据集,该数据集可以有效地改善多层随机森林分类器的训练时间和性能.在网络流量中,由于攻击行为U2R和R2L的样本数量的所占比例非常少,在分类效果上处于劣势,因此U2R和R2L类型不执行离群点删除操作.在Normal,Probe,DoS这3个类别上执行离群点检测算法,每个类别的离群点检测算法设置不同的参数MK.在本文中通过多次实验获得每个类别中最优的参数MK,从而得到最优的网络异常行为的检测率.算法1展示了根据KNN离群点检测算法选取新的训练数据集的详细步骤.

算法1. 基于KNN离群点检测的数据选择算法.

输入:10%的训练数据集TD、参数KNormal,MNormal,KProbe,MProbe,KDoS,MDoS;

输出:新的数据集

DNormal,DProbe,DDoS=∅; *存储不同类别的数据集合*

② for each d in TD

③ if (d.label==1) then DNormal.add(d);

*数据dlabel为1,表示该数据的类别为Normal;label为2,表示该数据是Probe类别;label为3,表示该数据是DoS类型*

④ else if (d.label==2) then DProbe.add(d);

⑤ else (d.label==3) then DDos.add(d);

⑥ end if

⑦ end for

produce KOD(D,K,M)

L=D.length; *数据集D的大小*

Avg[L],Index=∅; *Avg中存储每条数据的K近邻平均距离,Index中存储前M个数据的索引值*

d[L]=∅; *存储数据之间的欧氏距离*

④ for (i=0;i<L;i++)

⑤ for (j=0;j<L;j++)

⑥ 计算数据D(i)和D(j)之间的欧氏距离d[j];

⑦ end for

⑧ 对d进行升序排序;

⑨ 计算d中的前K个数据的平均值Avg[i];

⑩ end for

Avg进行升序排序;

得到前M个数据的索引Index;

根据Index得到新的数据集D′.

1.2 多层随机森林模型

随机森林(random forests, RF)最早是由Leo[15]作为一个分类算法提出的,广泛应用于入侵检测和计算生物学等方面.该算法的优势在于:该算法是一种集成学习方法,对于任何类型的数据集,随机森林算法的分类效果和聚类效果要优于大多数算法,并且能够有效处理高维度的数据集.该算法对于参数的设置并不敏感,可以很容易地找到一个合适的随机森林模型.随机森林算法是一个组合分类器,以决策树为基础分类器.该模型的基本思想是:一个森林包含多个决策树,每棵决策树是由有放回的随机抽样样本构造的,也就是说在总的训练集中的有些样本可能多次出现在1棵树的训练集中,也可能从未出现在1棵树的训练集中,并使每棵决策树进行充分生长,不进行任何剪枝,最终的输出结果就是所有决策树进行多数投票的结果.

本文提出以随机森林模型作为基础分类器来构建多层的异常检测分类器.为了更有效地检测异常行为,提出一种新的类别检测划分方法,该方法与多个的随机森林分类器相结合来构建多层的异常检测分类器.新的划分方法和多层随机模型结构如图2所示.该模型包含4个随机森林分类器,第1个分类器(RF1)将数据分为2组:Group1和Group2,Group1包括DoS和Probe,Group2包括Normal,U2R,R2L;第2个分类器(RF2)区分DoS和Probe;第3个分类器(RF3)检测R2L;第4个分类器(RF4)是检测U2R和Normal.根据经验将随机森林模型中树的数量设置为150.

Fig. 2 Multi-level random forests model
图2 多层随机森林模型

根据网络流量的相似性,本文提出一种新的类别检测划分方法.该划分方法首先将网络数据划分为2组.对于第1组来说,DoS和Probe在流量特征上更相似,同时与其他的类别有更少的相似性,因此将这2个类别的数据分为1组.对于第2组来说,当发生U2R和R2L攻击时,此时的流量特征与正常的连接区别很小,Normal,U2R,R2L在流量特征上更相似[16],因此将这3种类别分为1组.这种划分尽可能避免了异常行为在检测时的相互干扰,尤其是异常行为Probe,U2R,R2L的检测.在网络数据中,攻击类型的数目要远小于正常连接的数目,其中Probe,U2R,R2L类别的数据所占的比例非常小,这就使得异常行为检测算法需要在检测率与误报率之间寻找一个平衡,尽可能多得检测出攻击行为,同时避免将正常行为误检为攻击行为.DoS属于大流量的攻击行为,检测相对更容易一些.U2R和R2L属于明显的小流量攻击,并且造成的危害更大,其中U2R被认为是网络中最危险的行为[17].Probe是对网络的扫描和检测,被认为是多种严重攻击的前提行为.因此对Probe,U2R,R2L的检测是至关重要的.与其他算法相比,本文提出的划分方法和多层的随机森林模型能有效地检测出Probe,U2R,R2L,并在所有类别的检测间取得一个平衡,因此,本文提出的划分法和检测模型是合理和有效的.

2 实验结果

本节评估本文提出的算法的性能,所有的实验均在Windows 7 PC,Inter® Pentium® CPU G2020 @2.90 GHz,4.00 GB RAM环境中实现.采用MATLAB 7.8.0实现本文的算法.

2.1 训练集与测试集

KDD Cup 1999数据集是入侵检测领域的基准数据集,被广泛用于入侵检测系统的研究中.该数据集一共包括41个属性和1个类别标签(正常或其他的攻击类型),其中7个属性(属性2,3,4,7,12,14,22)是离散属性,其他属性是连续属性.在离散属性中属性2,3,4是符号属性,其他是数值属性.这41个属性可以分为4类:TCP连接基本特征、TCP连接内容特征、基于时间的网络流量统计特征和基于主机的网络流量统计特征,如表1所示.数据集中异常数据类型分为4类:DoS,Probe,U2R,R2L.KDD Cup 1999数据集提供了训练和测试数据集.10% KDD训练数据集包括22种攻击类型,测试数据集中还包括额外的17种攻击类型.KDD Cup 1999训练数据集和测试数据集的详细信息如表2所示.

Table 1 Attributes of KDD Cup 1999 Dataset
表1 KDD Cup 1999数据集的属性

ClassAttribute NameBasic Featuresduration,protocol_type,service,flag,src_bytes,dst_bytes,land,wrong_fragment,urgentContent Featureshot,num_failed_logins,logged_in,num_compromised,root_shell,su_attempted,num_root,num_file_creations,num_shells,num_access_files,num_outbound_cmds,is_hot_login,is_guest_loginTime BasedTraffic Featurescount,srv_count,serror_rate,srv_serror_rate,rerror_rate,srv_rerror_rate,same_srv_rate,diff_srv_rate,srv_diff_host_rateHost BasedTraffic FeaturesDst_host_count,dst_host_srv_count,dst_host_same_srv_rate,dst_host_diff_srv_rate,dst_host_same_src_port_rate,dst_host_srv_diff_host_rate,dst_host_serror_rate,dst_host_srv_serror_rate,dst_host_rerror_rate,dst_host_srv_rerror_rate

Table 2 Details of Training Dataset and Testing Dataset in KDD Cup 1999
表2 KDD Cup 1999训练数据集和测试数据集中不同类别数据的详细信息

Category10% KDD Dataset Training DatasetCorrected Dataset Testing DatasetCategoryNumber of Each Category in Training DatasetKnown CategoryNumber of Each Known Category in Testing DatasetUnknown CategoryNumber of Each Unknown Category in Testing DatasetNormalnormal97278Normal60593ProbeDoSU2RIpsweep1247Ipsweep306Mscan1053Nmap231Nmap84Saint736Portsweep1040Portsweep354Satan1589Satan1633Back2203Back1098Apache2794Land21Land9Mailbomb5000Neptune107201Neptune58001Processtable759Pod264Pod87Udpstorm2Smurf280790Smurf164091Teardrop979Teardrop12Buffer_overflow30Buffer_overflow22Httptunnel158Loadmodule9Loadmodule2Ps16Perl3Perl2Sqlattack2Rootkit10Rootkit13Xterm13

Continued (Table 2)

Category10% KDD Dataset Training DatasetCorrected Dataset Testing DatasetCategoryNumber of Each Category in Training DatasetKnown CategoryNumber of Each Known Category in Testing DatasetUnknown CategoryNumber of Each Unknown Category in Testing DatasetR2LFtp_write8Ftp_write3Named 17Guess_passwd53Guess_passwd4367Sendmail17Imap12Imap1Worm2Multihop7Multihop18Xlock9Phf4Phf2Xsnoop4Spy2Warezmaster1602Snmpgetattack7741Warezclient1020Snmpguess2406Warezmaster20

10%的训练数据集和校准测试数据集在应用到入侵检测方法之前,首先需要进行数据预处理.数据预处理过程共包括5个步骤:1)由于训练数据集中包含重复的数据,首先对训练数据集进行去重处理,将训练数据集由494 021条数据降低为145 586条数据.2)由于训练数据集中属性列num_outbound_cmds,is_hot_login的所有数值均为0,对数据的分类没有任何影响,因此将训练数据集和测试数据集中的属性列num_outbound_cmds,is_hot_login删除.3)将训练集和测试集中的符号属性protocol_type,service,flag转化为数值属性.以属性protocol_type为例,该属性共包括3种:TCP,UDP,ICMP,将这3种类别用数值表示,即1表示TCP,2表示UDP以及3表示ICMP.4)将类别标签转化为数值表示,其中1表示Normal类别,2表示Probe类别,3表示DoS类别,4表示U2R类别以及5表示R2L类别.5)将训练数据集和测试数据集进行[0,1]标准化处理.采用min-max标准化方法对训练集和测试集进行标准化[12]

(1)

其中,v是第i个属性列的一个值,是第i个属性列的最小值,是第i个属性列的最大值.

2.2 实验评估指标

入侵检测系统中存在许多可利用的评估指标.其中准确性Acc(accuracy)、检测率DR(detection rate)和误报率FAR(false alarm rate)是入侵检测系统中主要的评估指标[4].

(2)

(3)

(4)

其中,TP(true positive)是指将异常样本正确分类为异常样本的数量,TN(true negative)是指将正常样本正确分类为正常样本的数量,FP(false positive)是指将正常样本错误分类为异常样本的数量,FN(false negative)是指将异常样本错误分类为正常样本的数量.

2.3 实验分析

第1个实验用来评估KNN离群点算法检测的性能.KNN离群点检测算法的目标是用来提高多层随机模型分类器的性能.该实验通过比较KNN离群点检测算法和多层随机森林算法构成的混合模型与单一的多层随机森林模型的检测效果,来说明KNN离群点检测算法能改善分类器的性能.为了这一目的,首先选取KNN的离群点检测算法中最优的参数KM.参数的选取分为3个部分,Probe类别的参数、DoS类别的参数和Normal类别的参数.首先选取Probe类别的参数,将KProbe分为5个层次10,20,30,40,50,在每个层次下选择不同的MProbe来进行实验,实验结果显示在表3中.当KProbe值一定,MProbe增加时,Probe的检测率DRProbe不断上升.当MProbe一定,KProbe增加时,Probe的检测率有稍微的增加.根据表3分析,当MProbe=2 000时,检测率是最高的,在KProbe=40和50,Probe类别的检测率相同.随着KProbe不断增大,Probe的检测率基本上保持不变.因此Probe的参数设置为KProbe=40,MProbe=2 000.

Table 3 Detection Rate of Probe in Different Parameters
表3 Probe在不同的参数下的检测率

MK102030405015000.87270.86740.87970.89240.887716000.87990.88650.90030.88510.903417000.86960.89440.90690.89420.909118000.90610.90120.90850.91290.930919000.92480.93360.94590.94350.948620000.94020.95230.95460.95470.9547

Fig. 3 The performance comparison between the hybrid model and the single model
图3 混合模型和单一模型的性能比较

采用与Probe参数选择类似的方法,通过多次实验,选择DoS和Normal类别的参数.对于DoS类别来说,DoS类别的数据量将会影响RF2分类器检测DoS的检测率,因此由DoS的检测率DRDoS来决定KDoSMDoS的选取.KDoS从5,10,20,30共4个层次进行分析,MDoS从10 000,15 000,20 000共3个层次进行分析,实验结果显示在KDoS=10,MDoS=15 000时DoS的检测率最高.为了得到更好的MDoS的取值,将MDoS从10 000~15 000进行细粒度的划分.根据实验结果分析,将DoS的参数设置为KDoS=10,MDoS=11 000.对于Normal类别来说,Normal类别的数据量影响Normal和R2L的检测率,因此根据Normal和R2L的检测率来决定KNormalMNormal的选取.在实验中将KNormal的取值设置为50,100,150,200,250,300共6个层次,MNormal依次设置为2 000,3 000,4 000,5 000,6 000,7 000,8 000,9 000共8个层次进行分析,实验结果显示:随着KNormal的增大,Normal类别的检测率DRNormal先增大后减小;随着MNormal的增大,Normal的检测率不断增大,但变化的幅度并不大.但随着MNormalKNormal的不断增加,R2L的识别准确率逐渐降低.为使得Normal和R2L都有较高的检测率,本文选取MNormal=6 000,KNormal=150.

通过上述实验分析,在Normal,Probe,DoS这3个类别下,KNN离群点检测算法的参数MK设置如表4所示.应用KNN离群点检测算法之前和之后不同类别的数据集的数量如表5所示.

Table 4 Parameters of KNN Outlier Detection Algorithm
表4 KNN离群点检测算法的参数设置

CategoryKMNormal1506000Probe402000DoS1011000

Table 5 Size of Dataset Before and After Applying KNN

Outlier Detection Algorithm

表5 应用KNN离群点检测算法之前和之后不同

种类数据的大小

CategoryDetection BeforeDetection AfterNormal878326000Probe21312000DoS5457211000U2R5252R2L999999

新的小规模、高质量的数据集用于训练多层的随机森林分类器.图3展示了混合的KNN离群点检测算法和多层随机森林的模型(混合模型)与单一的多层随机森林模型(单一模型)的检测性能,混合模型在准确率和检测率上要优于单一模型,并有一个可以接受的误报率.对异常类型Probe,U2R,R2L的检测效果明显优于单一模型,DoS的检测效果略高于单一模型,Normal类型的检测率略微低于单一的模型,但仍然是很好的识别结果.该实验说明KNN离群点检测算法可以有效的提高多层随机森林模型的准确率和检测率,并能提高DoS,Probe,U2R,R2L异常类型的检测率.

为了说明多层随机森林算法的性能要优于其他分类算法这一问题,本文将混合的多层极限学习机算法(混合ELM模型)与混合的多层随机森林算法(混合RF模型)进行对比,图4说明了多层随机森林算法的准确率、检测率以及对各个数据类的检测率都要优于多层极限学习机模型,同时该模型具有较低的误报率.

为了说明本文算法的扩展性,将本文提出的算法在不同大小的测试集上进行测试,检测其准确率、检测率、误报率以及不同类别的检测率是否随着数据集的变化保持稳定.从校准测试数据集中随机无放回抽取数据,构成3个不同大小的测试数据集(25%校准数据集,50%校准数据集和100%校准数据集),如表6所示.图5展示了不同测试集的检测效果,随着测试集的增大,本文提出的算法在准确率、检测率和误报率上均能保持稳定.对于不同类别的检测率,除了DoS的检测率下降了大约3%,其他类别的检测率均保持稳定或略微提高.说明本文提出的算法能适应不同大小的测试数据集,有很好的扩展性.

Table 6 Different Size of Three Testing Dataset
表6 3个不同的测试数据集的数据量

Category25% Corrected Dataset50% Corrected Dataset100% Corrected DatasetNormal202964037280889Probe136327845529DoS76585153246306437U2R76156304R2L53561079521545Total103676207353414704

Fig. 4 The performance comparison between the hybrid RF model and the hybrid ELM model
图4 混合的随机森林模型和极限学习机模型的性能比较

Fig. 5 The detection performance of different testing dataset
图5 不同测试集的检测性能

入侵检测方法在网络异常检测时要求做到网络异常行为的实时性检测.为了说明多层随机森林算法检测的检测效率,将多层随机森林算法与单一随机森林算法的检测时间在多个不同规模的测试集上进行对比,如图6所示.本文提出的多层随机森林算法比单一随机森林算法的运行时间要稍微高一点,但在不同规模的数据集上,运行时间仅差1 s左右.在整个测试数据集上,检测时间不到8 s,因此本文提出的方法可以高效地检测网络入侵行为,满足入侵检测中实时性的要求.

为了更好地验证本文提出的算法,在整个校准数据集上将本文算法与其他4种算法相比较,表7展示了比较的结果.表7说明本文提出的算法具有较高的准确率和检测率,同时有一个可以接受的误报率.在Probe,U2R,R2L的检测上要明显优于其他算法,Normal,DoS的检测率略微低于其他算法.传统的极限学习机算法和随机森林算法能更好的识别出正常的行为,对于异常行为,尤其是Probe,U2R,R2L的检测率均比较低.Genetic算法有较高的误报率,这是因为正常的行为被大量误判为异常的行为.Multiclass SVM同样对于Probe,U2R,R2L的检测率较低.本文算法的优势在于有较高的准确率和检测率,能很好的检测出Probe,U2R,R2L,同时在每个类别的检测率之间取得一个平衡.

Fig. 6 The running time comparison between multi-level RF and the single-level RF
图6 多层和单层随机森林运行时间比较

Table 7 Performance Comparison Between the Proposed Method and Other Algorithms
表7 本文算法和其他算法的性能比较

Comparison IndexProposed MethodELMRandom ForestsGenetic Algorithm[18]Multiclass SVM[19]Acc0.94360.92870.92660.900.9246DR0.93550.91280.90960.94950.9074FAR0.02340.01650.00990.30460.0043Normal0.97660.99360.99620.6950.996Probe0.95340.75560.75780.7110.75DoS0.97320.97280.97250.9940.968U2R0.21050.02630.07890.1890.053R2L0.31960.07440.03970.0540.042

Note: The font of bold type indicates the best detection result achieved by the proposed or comparied methods.

3

在大量的网络数据中,为了更有效地检测网络异常行为,本文提出一种新的混合的入侵检测方法,该方法结合KNN离群点检测算法和多层次的随机森林模型来检测异常的网络行为.采用KNN离群点检测算法来检测并删除训练数据集中的离群数据,得到一个小规模、高质量的训练数据集,该数据集可以有效地改善分类器的训练时间和检测性能.根据网络流量的相似性,提出一种新的类别检测划分方法,该方法能对不同的类别进行有效的辨别.结合这种划分方法,提出的多层随机森林模型能有效的检测异常行为.基准数据集KDD Cup 1999用来评估本文算法的性能.不同大小的测试数据集用来评估本文算法,说明该算法具有良好的扩展性.与其他算法相比,本文的算法准确率要明显优于其他算法.该算法的主要贡献在于对Probe,U2R,R2L这3个异常类别的检测,其检测率要远远优于其他算法,并在不同类别的检测率之间取得一个平衡.

参考文献

[1]Lee W, Stolfo S J, Mok K W. A data mining framework for building intrusion detection models[C]//Proc of the 20th IEEE Symp on Security & Privacy. Piscataway, NJ: IEEE, 1999: 120-132

[2]Roesch M. Snort-lightweight intrusion detection for networks[C]//Proc of the 13th USENIX Conf on System Administration. Berkeley, CA: USENIX Association, 1999: 229-238

[3]Om H, Kundu A. A hybrid system for reducing the false alarm rate of anomaly intrusion detection system[C]//Proc of the 1st Int Conf on Recent Advances in Information Technology. Piscataway, NJ: IEEE, 2012: 131-136

[4]Raman M R G, Somu N, Kirthivasan K, et al. An efficient intrusion detection system based on hypergraph-genetic algorithm for parameter optimization and feature selection in support vector machine[J]. Knowledge-Based Systems, 2017, 134: 1-12

[5]Khammassi C, Krichen S. A GA-LR wrapper approach for feature selection in network intrusion detection[J]. Computers & Security, 2017, 70: 255-277

[6]Aljawarneh S, Aldwairi M, Yassein M B. Anomaly-based intrusion detection system through feature selection analysis and building hybrid efficient model[J]. Journal of Computational Science, 2018, 25: 152-160

[7]George A. Anomaly detection based on machine learning dimensionality reduction using PCA and classification using SVM[J]. International Journal of Computer Applications, 2012, 47(21): 5-8

[8]Hashem S H. Efficiency of SVM and PCA to enhance intrusion detection system[J]. Journal of Asian Scientific Research, 2013, 3(4): 381-395

[9]Cheng Xiaoxu, Yu Haitao, Li Zi. Improved K-means network intrusion detection algorithm[J]. Intelligent Computer & Applications, 2012, 2(2): 21-23 (in Chinese)(程晓旭, 于海涛, 李梓. 改进的K-means网络入侵检测算法[J]. 智能计算机与应用, 2012, 2(2): 21-23)

[10]Alyaseen W L, Othman Z A, Nazri M Z A. Hybrid modified K-means with C4.5 for intrusion detection systems in multiagent systems[J]. The Scientific World Journal, 2015, 2015(2): 294761

[11]Alyaseen W L, Othman Z A, Nazri M Z A. Intrusion detection system based on modified K-means and multi-level support vector machines[C]//Proc of the 1st Int Conf on Soft Computing in Data Science. Berlin: Springer, 2015: 265-274

[12]Alyaseen W L, Othman Z A, Nazri M Z A. Multi-level hybrid support vector machine and extreme learning machine based on modified K-means for intrusion detection system[J]. Expert Systems with Applications, 2017, 67: 296-303

[13]Roshan S, Miche Y, Akusok A, et al. Adaptive and online network intrusion detection system using clustering and extreme learning machines[J]. Journal of the Franklin Institute, 2018, 355(4): 1752-1779

[14]Enamul K, Hu Jiankun, Wang Hua, et al. A novel statistical technique for intrusion detection systems[J/OL]. Future Generation Computer Systems. 2017[2017-11-08]. https://www.researchgate.net/publication/313034553_A_novel_statistical_technique_for_intrusion_detection_systems

[15]Leo B. Random forests[J]. Machine Learning, 2001, 45(1): 5-32[16]Gogoi P, Bhattacharyya D K, Borah B, et al. MLH-IDS: A multi-level hybrid intrusion detection method[J]. Computer Journal, 2014, 57(4): 602-623

[17]Guo Yutong, Wang Yan, Qin Mengyuan, et al. DPI & DFI: A malicious behavior detection method combining deep packet inspection and deep flow inspection[J]. Procedia Engineering, 2017, 174: 1309-1314

[18]Hoque M S, Mukit M A, Bikas M A N. An implementation of intrusion detection system using genetic algorithm[J]. International Journal of Network Security & Its Applications, 2012, 4(2): 109-120

[19]Ambwani T. Multi class support vector machine implementation to intrusion detection[C]//Proc of the 14th Int Joint Conf on Neural Networks. Piscataway, NJ: IEEE, 2003: 2300-2305

An Multi-Level Intrusion Detection Method Based on KNN Outlier Detection and Random Forests

Ren Jiadong1,2, Liu Xinqian1,2, Wang Qian1,2, He Haitao1,2, and Zhao Xiaolin3,4

1(School of Information Science and Engineering, Yanshan University, Qinhuangdao, Hebei 066001)2(Hebei Key Laboratory of Software Engineering (Yanshan University), Qinhuangdao, Hebei 066001)3(School of Software, Beijing Institute of Technology, Beijing 100081)4(Beijing Key Laboratory of Software Security Engineering Technology (Beijing Institute of Technology), Beijing 100081)

Abstract Intrusion detection system can efficiently detect attack behaviors, which will do great damage for network security. Currently many intrusion detection systems have low detection rates in these abnormal behaviors Probe (probing), U2R (user to root) and R2L (remote to local). Focusing on this weakness, a new hybrid multi-level intrusion detection method is proposed to identify network data as normal or abnormal behaviors. This method contains KNN (K nearest neighbors) outlier detection algorithm and multi-level random forests (RF) model, called KNN-RF. Firstly KNN outlier detection algorithm is applied to detect and delete outliers in each category and get a small high-quality training dataset. Then according to the similarity of network traffic, a new method of the division of data categories is put forward and this division method can avoid the mutual interference of anomaly behaviors in the detection process, especially for the detecting of the attack behaviors of small traffic. Based on this division, a multi-level random forests model is constructed to detect network abnormal behaviors and improve the efficiency of detecting known and unknown attacks. The popular KDD (knowledge discovery and data mining) Cup 1999 dataset is used to evaluate the performance of the proposed method. Compared with other algorithms, the proposed method is significantly superior to other algorithms in accuracy and detection rate, and can detect Probe, U2R and R2L effectively.

Key words network security; intrusion detection system; KNN outlier detection; random forests model; multi-level

收稿日期2018-01-26;

修回日期:2018-06-05

基金项目国家重点研发计划基金项目(2016YFB0800700);国家自然科学基金项目(61472341,61772449,61572420);河北省自然科学基金项目(F2016203330, F2015203326);燕山大学博士后科研择优资助项目(B2017003005);燕山大学博士基金项目(B1036)

This work was supported by the National Key Research and Development Program of China (2016YFB0800700), the National Natural Science Foundation of China (61472341, 61772449, 61572420), the Natural Science Foundation of Hebei Province of China (F2016203330, F2015203326), the Advanced Program of Postdoctoral Scientific Research of Yanshan University (B2017003005), and the Doctoral Foundation of Yanshan University (B1036).

通信作者王倩(wangqianysu@163.com)

中图法分类号 TP393.08

Ren Jiadong, born in 1967. PhD, professor, and member of CCF. His main research interests include data mining and software security.

Liu Xinqian, born in 1992. PhD candidate. Her main research interests include network security, and social network.(1689890718@qq.com)

Wang Qian, born in 1987. PhD, lecturer. Her main research interests include data mining, software security and network security.(wangqianysu@163.com)

He Haitao, born in 1968. PhD, professor. Her main research interests include data mining and software security.(haitao@ysu.edu.cn)

Zhao Xiaolin, born in 1971. PhD, associate professor. His main research interests include complex network, software security, network security.(zhaoxl@bit.edu.cn)