基于网络流统计数据的伪装入侵检测

2014-09-29 10:31刘文怡王轶骏
计算机工程 2014年7期
关键词:数据包分类器样本

刘文怡,薛 质,王轶骏

(上海交通大学电子信息与电气工程学院,上海 200240)

1 概述

入侵者假冒或伪装成合法用户进入操作系统的入侵行为称为伪装入侵(masquerade intrusion)[1]。未授权用户(或称为“伪装攻击者”)通常通过伪装成合法用户的手段进入系统访问关键数据或执行其他非法操作。由于合法用户的行为本身是发展变化的,且伪装攻击者可能尝试模仿合法用户的行为,这些不确定因素使得伪装入侵检测比传统的网络入侵检测更复杂[2]。目前的伪装攻击检测系统大多采用异常检测技术——这种技术对合法用户的正常行为特征进行建模,通过被检测用户的实际行为特征与合法用户的行为特征进行比较,从而检测入侵。可以看出,伪装入侵检测牵涉两大关键技术:用户特征建模以及入侵检测算法。近年来,学术界与工业界就这2个话题开展了广泛研究。

在用户特征模型方面,早期的研究者大多利用Unix与Linux平台用户所键入的shell命令,如Schonlau等人通过展开Linux平台的shell命令数据集对伪装攻击检测方法进行研究[3]。之后的学者则着眼于Windows系统,Li等人与Garg等人分别将Windows系统的用户进程与用户的键盘鼠标作为建模对象[4-5]。更有学者则将目光转向用户的网络行为,例如Strasburg等人提出将用户的网络服务器登录信息与NetFlow记录作为建模对象[6]。然而,可以发现,以上特征模型牵涉用户的敏感信息,采用以上方案必将带来诸多隐私问题,为检测系统的部署带来局限性。

在入侵检测算法方面,Schonlau等人研究了基于统计理论的检测方法,包括Uniqueness算法、贝叶斯单步算法等[3];Maxion等人对Schonlau的检测方法进行了改进,引入了贝叶斯分类算法[7]。Lane等人开展了基于机器学习的伪装攻击检测研究,将加窗平滑后的相似度曲线作为检测用户异常学习的依据[8]。Kim等人提出利用支持向量机(Support Vector Machine,SVM)作为异常检测算法[2],也有学者将免疫遗传[9]、Markov链[10]、区间值2型模糊集[11]等理论应用于伪装入侵检测系统。

在现有工作基础上,本文提出一种新的伪装入侵攻击检测方法。该方法利用用户的网络流特征作为原始审计数据,在不侵犯用户隐私的前提下,采用AdaBoost与支持向量机结合的机器学习算法对审计数据进行学习和预测。

2 支持向量机和AdaBoost算法

2.1 支持向量机

支持向量机是一种适用于小样本训练的大边缘分类器。该算法的宗旨是寻找一个分类规则,使其能对未知类别的新样本做尽可能正确的划分。将支持向量机用于分类问题其实就是寻找一个最优分类超平面,把此平面作为分类决策面,它不但可以将给定的输入样本正确地划分为正常和异常两类,而且使得被分成的两类数据间的分类间隔尽可能大。当训练数据线性不可分时,SVM先通过非线性变换,将数据映射到一个高维的内积空间,再在此高维的内积空间上做线性分类,在新的特征空间上求取最优分类超平面。这种非线性变换是通过定义适当的内积函数来实现的。不同形式的内积核函数K,可生成不同形式的支持向量机,在特征空间中对应着不同的最优分类超平面。常用的核函数主要有以下4种:

核函数的作用是将数据特征映射到高维的特征空间。本文选择的核函数为径向基核函数(Radial Basis Function,RBF)。径向基核函数有2个优点:(1)它可以将数据特征映射到更高维的特征空间,而并不增加计算复杂度;(2)径向基核函数只有一个参数,降低了计算复杂度。

2.2 AdaBoost算法

AdaBoost是一种常用的学习算法,这个算法允许设计者不断地加入新的分类器,直到达到某个足够小的误差率为止。在AdaBoost中,每个训练样本都被赋予一个权重,代表它被某个分量分类器选入训练集的概率。若某个样本点已经被准确地分类,则在构造下一个训练集时,它被选中的概率就被降低;相反,若某个样本点没有被正确分类,则它的权重就将得到相应的提高。通过以上方式,AdaBoost方法能够着眼于那些较难分类的样本上。其具体实现方法如下:最初令每个样本的权重都相等;对于第k次迭代操作,根据这些权重来选取样本点,进而训练分类器Ck;然后根据这个分类器的分类结果,提高被它错分的那些样本点的权重,并降低可以被正确分类的样本点的权重。经过权重更新后的样本被用来继续训练下一个分类器Ck+1,整个训练过程如此反复进行,直到误差率达到可接受范围。

3 检测方法设计与分析

3.1 用户特征模型

本文基于网络流统计数据进行用户特征建模,并利用此模型进行伪装入侵检测。本文将研究重点放在TCP协议上,因此将网络流(network flow)定义为用户与某网络服务器之间(方向不限)的一次完整TCP会话。每一条网络流记录包含了同一次TCP会话中的若干统计数据。网络流统计数据通常应用于网络流类型检测、网络攻击检测(DDos,R2L等);而本文创新地将网络流统计数据作为原始审计数据参与的机器学习的训练与判断,用以检测伪装入侵攻击。

3.1.1 用户特征列表

常用的网络流统计特征有上百种之多,在本文的检测方法中,仅选取19种较有意义、较能反映用户网络使用习惯的特征。具体特征及描述见表1。

表1 网络流量特征

对表1中的网络流特征,注意以下问题:(1)每个网络流特征都是针对一条网络流而言。以maxWindow为例,该特征指某条特定的网络流中出现的最大TCP窗口。(2)除网络流持续时间外,所有统计数据含有从用户端到服务器端的数据包统计数据和从服务器端到用户端的数据包统计数据2个值,默认序号为奇数的特征体现客户端到服务器端的数据、序号为偶数的特征体现相反方向的数据。以noPackets为例,特征1指该网络流中从客户端到服务器端的数据包的总数,特征2指相反方向的数据包总数。

3.1.2 特征采集与预处理

网络流数据采集方案分为本地采集与集中采集2种。本地采集指在用户操作系统中部署一个简单的抓包工具,在现有工具中,tcpdump,tshark等都可以完成相应工作,该方案适用于个人的或小型局域网的伪装入侵检测系统;集中采集指在路由器或者其他网络设备上部署抓包探针,对大量用户的网络流进行集中采集,该方案适用于大型局域网(例如企业网络)以及域环境中的伪装入侵检测系统。用户可结合自身的实际需求选择适合的特征采集方案。

使用TSTAT工具[12]对采集的网络数据包进行处理,该工具可以高效地提炼出上百种网络流统计数据,利用脚本语言在这些数据中提取表1中列举的网络流特征,并将这些特征按照机器学习工具LIBSVM[13]所要求的格式排列。

3.2 支持向量机与AdaBoost算法的结合

本文提出的检测算法AdaBoost-SVM参考文献[14]所述方法,先使用SVM对一组数据进行训练得到相应弱分类器,再用AdaBoost算法对每个弱分类器进行加权投票。具体的AdaBoost-SVM算法的设计流程如下:

(1)在 Dt(i)下训练,使用SVM训练得到弱分类器:ht: X →{+1,-1};

(2)计算弱分类器ht的错误率:

(3)计算分类器ht的权重:

(4)更新样本点权重(Zt为归一化因子):

由于AdaBoost-SVM仍是一个二进制分类器,即仅返回{+1,–1},对分类函数H(X)再进行Sign运算,当H(X)的值大于等于零时返回+1,其他情况返回–1。

4 实验与结果分析

4.1 数据集

为测试本文提出的伪装入侵检测方法的性能,对该方法进行仿真实验。实验数据采用文献[15]中的网络抓包数据集6(Trace 6)。该数据集记录2007年5月−2007年6月之间,某教育机构中的132名用户与以太网连接所产生的数据包。关于这个数据集还有以下说明:(1)所有用户都使用固定IP地址,每个IP地址与一名特定用户一一对应。(2)出于隐私保护的目的,Barbosa等人对该抓包数据集经过了匿名化处理,即该教育机构网络环境中的所有IP地址都被随机映射到192.168.0.0/16(子网A)中的某个地址;此外,该抓包数据集仅含数据包报头(header),不含负载(payload)。在实验中,首先利用脚本语言将属于子网A中任一IP地址的数据包分离出来(内网),得到132个不同的PCAP文件,使用3.1.2节中所述的预处理方法对PCAP文件进行预处理,得到属于不同用户的网络流特征记录。将IP地址为192.168.0.1的用户命名为用户1,并将其指定为目标用户;将随机选择的另外9个IP地址命名为用户2~用户10,并将其指定为伪装入侵者。为了研究测试集大小对检测性能的影响,分别构建3组训练集TS1,TS2,TS3与1组测试集PS1,如表2所示。

表2 训练集与测试集

在进行机器学习实验之前,为了证明网络流统计特征可以有效区分目标用户以及伪装入侵用户,先对数据集中用户1与用户2的特征记录进行概率分析。以“往返时延均值”特征为例,图1给出了属于用户1与用户2的累积分布函数(Cumulative Distribution Function,CDF);其中,对于用户1,图1还分别给出其在2天中的CDF。根据图1所示结果,用户1与用户2的CDF相差甚远,而用户1与自身在不同日期的CDF却十分接近,这表明“往返时延均值”特征可以较好地区分目标用户以及伪装入侵用户。

图1 往返时延均值的累积分布函数

4.2 实验测试

本文采用检测率(DetectionRate)、误报率(FalsePositive)和准确率(Accuracy)作为检测性能的主要考核指标,其定义如式(1)、式(2)和式(3)所示:

假设TP,TN,FP和FN分别表示真阳性、真阴性、假阳性及假阴性(阳性代表入侵者、阴性代表合法用户)。根据以上定义可得:TP+FN即异常样本总数,TN+FP即正常样本总数,TP+FN+TN+FP即所有样本总数。本文将分别讨论不同测试集下对检测结果的影响、SVM算法与AdaBoost-SVM算法的性能比较,最后将最终检测结果与文献所述的检测结果进行比较。

(1)使用SVM和AdaBoost-SVM 2种算法分别训练3个测试集TS1,TS2和TS3,并用训练所得的预测模型对同一测试集PS1进行预测;所得结果如表3所示。根据表3的实验结果,增加测试集的大小可以显著机器学习算法的性能;当然,数据集的增大也会导致学习时间的变长,以训练集TS1和TS3为例,训练前者只需20 s左右,而训练后者需要100 s。鉴于分钟级的训练时间在可接受的范围之内,因此在本文涉及的实验中,仍以TS3作为测试集。

表3 测试集在不同算法下的检测性能对比 %

(2)将比较SVM与AdaBoost-SVM算法的性能。检测系统的性能通常可用ROC(Receiver Operating Characteristic)曲线表示,反映在不同误报率下算法所能达到的检测率。SVM算法与AdaBoost-SVM算法的ROC曲线如图2所示,请注意两者的ROC曲线都是基于训练集TS3和测试集PS1。从表3及图2可以看出:AdaBoost-SVM算法无论从检测率、误报率还是准确率都优于SVM算法,并且也未给检测时间造成明显增长。在整个机器学习过程中,AdaBoost-SVM算法的平均训练时长为分钟级(假设使用记录数为4000的训练集),但对每条网络流记录的平均检测时间都在毫秒级。这也是由SVM本身的特点决定的。此外,本文提出的检测方法的性能(检测率97.5%、误报率1.1%、准确率94.0%)优于文献[6](检测率60%、误报率5%)、文献[5](检测率90%、误报率5%)以及文献[11](检测率92%、误报率7%)。

图2 算法ROC曲线

5 结束语

针对目前伪装入侵检测方法所采用的用户特征存在触犯隐私的问题,本文提出使用网络流统计数据作为用户特征,并结合AdaBoost与支持向量机对用户特征进行训练与预测。本文方法在一个真实的网络抓包数据集上进行实验,得到了97.5%的系统检测率与1.1%的误报率,结果表明该方法较之前的方法具有更好的检测性能。同时,该检测方法无需获取用户的敏感信息,在最大程度上保护了用户的隐私,且检测速度快,适用于企业级网络环境中的实时伪装入侵检测。在今后工作中,将结合用户本地行为(如鼠标移动、运行进程等)与网络行为,对用户行为进行混合建模,以期得到一个更全面、准确、稳定的伪装入侵检测系统。

[1]田新广,段洣毅.基于shell命令和多重行为模式挖掘的用户伪装攻击检测[J].计算机学报,2010,33(4):697-705.

[2]Kim H S,Cha S D.Empirical Evaluation of SVM-based Masquerade Detection Using UNIX Commands[J].Computer and Security,2005,24(2):160-168.

[3]Schonlau M,Mouchel W.Computer Intrusion:Detecting Masquerades[J].Statistical Science,2001,16(1):58-74.

[4]Li Ling,Sui Song,Manikopoulos C N.Windows NT User Profiling for Masquerader Detection[C]//Proc.of International Conference on Networking Sense and Control.[S.l.]:IEEE Computer Society,2006:386-391.

[5]Garg A,Rahalkar R,Upadhyaya S,et al.Profiling Users in GUI Based Systems for Masquerade Detection[C]//Proc.of Information Assurance Workshop.New York,USA:IEEE Computer Society,2006:48-54.

[6]Strasburg C,Krishnan S,Dorman K,et al.Masquerade Detection in Network Environments[C]//Proc.of the 10th IEEE/IPSJ International Symposium on Applications and the Internet.Seoul,Korea:IEEE Computer Society,2010:38-44.

[7]Maxion R A,Townsend T N.Masquerade Detection Augmented with Error Analysis[J].IEEE Transactions on Reliability,2004,53(1):124-147.

[8]Lane T,Carla E B.An Empirical Study of Two Approaches to Sequence Learning for Anomaly Detection[J].Machine Learning,2003,51(1):73-107.

[9]梁春林,彭凌西.基于免疫遗传的伪装入侵检测[J].计算机工程与设计,2010,31(23):4968-4970,4975.

[10]肖 喜,田新广,翟起滨.基于shell命令和Markov链模型的用户伪装攻击检测[J].通信学报,2011,32(3):98-105.

[11]曾剑平,郭东辉.基于区间值2型模糊集的伪装入侵检测算法[J].电子学报,2008,36(4):777-780.

[12]Munafo M,Finamore A.TSTAT[EB/OL].(2012-04-02).http://tstat.tlc.polito.it/index.shtml.

[13]Lin Chih-Jen.LIBSVM[EB/OL].(2002-06-23).http://www.csie.ntu.edu.tw/~cjlin/.

[14]张晓龙,任 芳.支持向量机与AdaBoost的结合算法研究[J].计算机应用研究,2009,26(1):77-78,100.

[15]Sadre R,Aiko P.SimpleWeb/University of Twenty Traffic Traces Data Repository[EB/OL].(2010-04-29).http://traces.simpleweb.org/.

猜你喜欢
数据包分类器样本
用样本估计总体复习点拨
SmartSniff
推动医改的“直销样本”
BP-GA光照分类器在车道线识别中的应用
随机微分方程的样本Lyapunov二次型估计
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器
村企共赢的样本
基于LLE降维和BP_Adaboost分类器的GIS局部放电模式识别
视觉注意的数据包优先级排序策略研究