肖仙谦,朱俊平,景旭,马巧娥,2
(1.西北农林科技大学 信息工程学院,陕西 杨凌 712100;2.杨凌职业技术学院 信息工程学院,陕西 杨凌 712100)
入侵检测就是对入侵行为的发现,收集计算机网络或系统中的关键点信息并进行分析,从而判断网络或系统是否违反安全策略或被攻击,是继“加密机制”、“数据签名机制”、“访问和控制机制”、“认证机制”等传统网络信息安全技术的新一代网络信息安全技术.
入侵检测本质上是一个模式识别问题.很多传统机器学习的方法被应用到入侵检测中,如朴素贝叶斯、决策树、支持向量机(SVM)等,一般都是同时对正负数据样本进行训练,从而得到分类器.但由于实际入侵检测数据分布上的特殊性,即正常样本数据量远大于异常样本数据量,因此系统对异常样本的判断能力不能很好地得到训练[1].传统的有监督学习不适合此问题.此时,入侵检测问题可以被看成是数据描述(data description)或者是单分类(one-class)学习问题[2].
One-class学习算法的一个主要研究方向是基于统计密度估计.这些方法先对目标类建立变量统计模型,然后估计该模型的参数.而自从支持向量机(SVM)和核函数技术出现以来,在one-class学习中采用核函数的方法变得流行,其中包括one-class SVM模型[3-4]和支持向量数据描述[5],并且这2个方法被证明会产生同一个结果.但是,核函数技术一般不能利用数据中包含的领域知识;而且,也不能直接应用无标签数据来提高准确率[6].所以,在传统的支持向量数据描述(support vector data description,SVDD)模型基础上,采用贝叶斯参数估计的方法对其进行改进,从而可以使上述问题得到解决.
文章将包含以下3方面,首先简单介绍传统的支持向量数据描述(SVDD);其次,介绍采用贝叶斯估计改进的模型,同时根据模型的特点,采用PCA技术对原始数据在各个方向上进行等方差处理,使之更加符合该模型,从而进一步提高检测效果;最后,针对标准入侵检测数据集NSL-KDD,对该模型进行测试,验证该方法的正确性与有效性.其中包含2个创新点:一个是根据入侵检测数据的不平衡性特点,将支持向量数据描述模型(单分类模型)应用到入侵检测问题中;另一个是使用PCA技术对原始数据在各个方向上进行等方差处理,使得模型的检测率得到较大的提高.
支持向量数据描述(SVDD)是一种非常著名的基于核技术的单分类学习算法,希望在核空间中找到包含尽可能多的目标类数据,而其半径又尽可能小的球面[7].由此可见,该模型在训练时只需要目标类数据即可,并且该模型涉及到求解凸优化问题,这与SVM非常类似.此模型的具体介绍参见文献[3],以下是其主要过程.
一个球面由其中心C和半径R唯一确定.按照上述思想,再加上惩罚因子ζi,建立最优化模型如下:
(1)
使得
‖φ(xi)-C‖≤R2+ξi且ξi≥0,
(2)
其中φ是核函数K(xi,xj)=<φ(xi),φ(xj)>中的变换函数,将数据映射到高维的核空间;变量v控制超球面体积与超球面中样本数量的比例,同时,还可以控制最优化问题解的稀疏;N为目标类数据记录的条数.
引入拉格朗日乘子,得到下面的对偶问题:
minααTΚα-αTdiag(Κ),
(3)
使得
(4)
其中Κ是核矩阵,满足Κi,j=<φ(xi),φ(xj)>; diag(K)是Κ的主对角线元素,不需要确定变换函数φ的具体表达式,而只需确定核函数即可.
该最优化问题的解是大部分为零的向量α.那些正的αi对应的样本xi被称为one-class SVM的支持向量.超球面的中心C可以由拉格朗日乘子从式(5)得到,
C=∑iαiφ(xi).
(5)
可以对各测试样本到该中心的距离进行排序,距离越小,说明该样本与目标类越接近.该距离函数化解后
f(z)=∑i∑jαiαjK(xi,xj)+K(z,z)-2∑iαiK(xi,z).
(6)
接下来从2方面对传统的支持向量数据描述模型进行改进:一是利用PCA对原始数据在各个方向上进行等方差处理,使之更加符合模型的前提假设;二是利用贝叶斯参数估计对其进行改进,使得模型能够充分利用入侵检测数据所包含的先验知识.
数据集NSL-KDD来自数据集KDD CUP99的改进,其中每一记录包含41个属性以及1个类别标识.一般而言,利用PCA可以消除数据属性间的相关性,从而减少数据量,加快训练与检测的速度[8].
另一方面,针对上述的支持向量数据描述问题,其根本目标是在核空间中寻找目标超球面.从而可见,如果该空间中的正例数据分布呈超球形,并且负例样本位于超球形外部,则将有利于提高检测准确率;反之,如果该空间中的正例数据分布呈超椭球形,将影响检测率,并产生较大的误检率,如图1所示.
图1 数据分布与检测结果的关系Fig.1 Relationship between the data distribution and the detection results
因此,数据预处理的目标是使得核空间中目标类数据在各个方向上的分布一致.这可以由各个方向上数据的方差来近似衡量,即通过线性变换,使得处理后的数据在各个方向上的方差相等.例如,设一组一维数据X=x1,x2,…,xN,其方差为σ2,则X=x1/σ,x2/σ,…xN/σ的方差等于1.因此KPCA(kernel principal component analysis)[9-10]在理论上可以解决该问题.然而KPCA计算复杂度与数据记录的个数有关,在计算上存在应用困难.因此,考虑针对原空间数据采用PCA技术,同时采用映射前后数据分布仍然呈超球形的核函数,如线性核函数、高斯径向基函数(RBF)核函数等.接下来介绍如何应用PCA技术来处理原始数据,从而使得处理后的数据满足上述要求.
在PCA中,假设原始数据矩阵Y具有m个属性,num个记录,变换后的数据矩阵Z具有n个属性,num个记录,且应满足n≤m,则
Zn×num=UTYm×num,
(7)
其中U=[u1,u2,…,un],ui,i=1,2,3,…,n对应特征值λi的特征向量,且λ1>λ2>…>λn为所取的前n特征值.令Z=[z1,z2,…,zn]T,则求解特征方程得到的各个特征值λi即为各个方向zi上的方差,所以,将经过PCA变换后的数据除以对应的特征值的开方,这样变换后得到的数据D将满足上述方差相等的要求,
(8)
所以,令D=PY,则
(9)
由上述得到的数据矩阵D各个属性的方差均等于1.而在实际应用中,只需保证其方差相等即可;并且根据实验发现,不同大小的方差将对检测结果产生影响,因为最终的变换公式为
D=σPY,
(10)
其中σ等于数据矩阵D各个属性的标准差,实验中将作为参数出现.
支持向量数据描述模型的主要思想为寻找核空间中的超球面中心C,见式(5).基于数据分布的合适假设,可以根据给定的数据,利用贝叶斯参数估计对式(5)中的参数αi,i=1,2,3,…,N进行参数估计,从而获得超球面的中心.利用贝叶斯参数估计对模型改进,一方面与入侵检测数据的随机性相吻合,另一方面可以更加充分地利用数据中包含的信息[11].
该改进模型基于以下2点假设.1)假设经过变换函数φ将原始数据映射到高维核空间后的数据服从高斯分布,且其协方差矩阵为单位向量I,均值向量为超球面中心C,
φ(xj)~N(∑iαiφ(xi),I),
(11)
其中限制0<αi<1且∑iαi=1,从而保证其构成一个凸集.2)根据贝叶斯参数估计理论,关于参数向量α的先验概率分布p(α)需被定义,假设参数向量α服从高斯分布,其均值为m,协方差矩阵为Cov,
α~N(m,Cov).
(12)
根据以上2点假设,对参数向量α进行贝叶斯参数估计.根据假设2)确定了关于向量α的先验概率分布p(α),而后验概率p(α|D)由贝叶斯公式可以得到
(13)
其中D表示由原数据映射到核空间中的数据,p(D|α)是已知α下训练数据的似然性.其中p(D)为常数.根据贝叶斯估计中的最大后验概率估计,以及2个假设确定的数据分布,将得到以下二次最优化问题,
(14)
使得
0<αi<1,∑iαi=1,
(15)
其中矩阵Κ是核矩阵,矩阵D是样本的加权度对角矩阵,满足Dij=∑jΚij,向量1表示元素全为1的向量.这就是使用贝叶斯方法改进后的单分类数据描述模型,记为BDD(bayesian data description),其中的参数m和Cov可以由用户设定.可以发现,当设定Cov=I,m=diag(Κ)-D1,此时模型即为原来的SVDD模型.而且,该模型最后与变换函数φ无关,从而很好的应用了核技术.
进行贝叶斯参数估计时,确定参数合理的先验概率分布非常重要.根据数据的密度与α的相关性确定其先验分布的均值[12].其中参数0 mi=-(∑jΚi,j)v. (16) 该模型求解的计算复杂度与数据记录的个数相关,所以在建立该模型时,一次使用的数据量不能太大.然而,根据假设A)知,核空间的所有数据服从协方差矩阵为单位矩阵的正态分布,记作N(*,I).采用分治的算法思想,将所有数据随机等分成k组数据,得到k个模型,即k个协方差矩阵为单位矩阵的正态分布,Ni(*,I),i=1,2,…,k.根据正态分布线性变换的正态性,该k个正态分布的均值服从正态分布,这里就应该等于N(*,I),即式(17)成立,这样就可以解决上述问题. (17) 由以上过程,即可得到对数据中心C表达式中的参数α,从而可以根据式(6)求解各个数据记录到中心C的距离.分析发现其计算复杂度与参数向量α的稀疏性有关,所以控制解稀疏性的参数v的选择对训练的效率将有较大的影响. 为了寻找距离确定的分类阈值,原文采用的是一种简单的实验性方法;它将各个距离排序后,选取想要的数据记录的个数,存在很大的主观性.因此,这里基于该距离序列,采用SVM进行训练[13-14],从而确定分类器.而且由于此时训练数据为一维数据,所以会有较高的训练效率. 实验采用NSL-KDD数据集,其中训练数据与测试数据均包含41个属性,包括离散属性与连续属性,使用weka对其进行处理,将其中的离散属性数值化,之后把所有41个属性的数据规范化到[0,1]范围内.同时,每条记录包含一个类别标识,记录攻击名称或者正常,这里将它二值化,即正常或异常.选择的训练数据来自文件KDDTrain±20Percent.txt,测试数据来自文件KDDTest+.txt;训练数据包含25 192条记录,其中的13 449条正例样本为建立模型所需要的,测试数据包含22 544条记录.相比于原来的KDD CUP 99数据集,NSL-KDD对入侵检测算法的要求更高. 实验需设置以下参数:控制解稀疏性的参数,数据分组数,PCA处理后的标准差,核函数及其参数等.对于控制解稀疏性的参数和标准差,采用经验值,取v=0.9,σ=30.根据实验发现,建立模型时所需的数据数量达到一定大小后,实验结果将趋于稳定,因此,根据实验结果,这里将13 449条正例数据分成K=25组较为合理.考虑数据正态分布的假设,所以全部采用高斯径向基函数(RBF)作为核函数,对应核参数设定为1. 图2中的实验,针对训练数据的各分组分别建立求解SVDD,SVDD+PCA,BBD和BBD+PCA模型.由图2可见,单分类模型SVDD与BD模型都可以获得较好的检测效果;并且通过PCA技术对数据在各个方向上进行等方差处理后,使得检测准确率有明显的提高.同时,在SVDD模型与BD模型间进行对比发现,BD模型的检测结果明显比SVDD模型稳定.最后计算得出PCA+BBD模型的平均检测率为87.46%. 图2 各组数据下各类模型的检测准确率比较Fig.2 Comparison of detection rate with each group data set by different model 通过比较模型之间的ROC曲线可以进一步衡量入侵检测模型的性能[15].为了得到各个模型的ROC曲线,需要为模型设定不同的分类阈值.其主要过程为:在使用正例数据完成了模型的建立之后,将各个正例样本到模型中心的距离进行排序,然后均匀选取50个样本,将该50个样本到模型中心的距离作为分类阈值,从而得到对应的检测率与误检率. 图3显示了针对训练数据的某个分组分别建立求解SVDD、PCA+SVDD、BBD和PCA+BBD模型得到的ROC曲线.由图3可见,BD+PCA与SVDD+PCA模型下入侵检测系统的性能明显高于改进前的BD与SVDD模型,并且此时的BD+PCA模型与SVDD+PCA模型性能非常接近,不过由图2对应的实验可知,BD+PCA模型对不同的训练数据,稳定性更高. 图3 各类模型的ROC曲线比较Fig.3 Comparison of ROC curve between different model 表1显示了针对同一数据集,其他经典方法[16]的检测率.与这些基于有监督学习的经典二分类方法的不同之处是,本文提出的模型是一种单分类模型[17],并且在模型建立时所需的样本数量更少;一般而言,二分类使用了更多的数据,在检测结果上应该优于单分类模型.比较表中数据发现,本文提出的模型的检测率更高.而如果再找到更加合适的方法来代替模型中的SVM训练,则此模型将成为理想的半监督入侵检测模型. 表1 各类经典方法的检测率比较 在入侵检测技术的研究中,对二分类或多分类模型研究的较多,而单分类模型则几乎未曾涉及.根据实际网络中数据的不平衡性,即正常样本数据远远大于异常样本数据,所以有必要对这种单分类模型进行研究.本文对原单分类数据描述模型进行改进,并将它应用于入侵检测中,提高了入侵检测的效果.接下来希望寻找合适的方法代替其中的SVM训练,使模型训练时不需要知道数据的标签,从而将该模型改进成半监督模型,同时还希望减少模型的误检率,并考虑将其应用到实际的网络中. 参 考 文 献: [1] ALIREZA Ghasemi,HAMID R Rabiee, MOHAMMAD T Manzuri, et al.A Bayesian approach to the data description problem[C]. Proceedings of the Twenty-Sixth AAAI Conference on Artificial Intelligence, California:AAAI Press, 2012,907-913. [2] DOROTHY E D. An intrusion detection model[J]. IEEE Transactions on Software Engineering, 1987,13(2):222-232. [3] SCHLKOPF B, PLATT J C,TAYLOR J S, et al. Estimating the support of a high dimensional distribution[J]. Neural Computation,2001,13(7):1443-1471. [4] 黄谦,王震,韦韬,等. 基于One-class SVM的实时入侵检测系统[J].计算机工程,2006,32(16):127-129. HUANG Qian, WANG Zhen, WEI Tao, et al. A real-time intrusion detection system based on One-class SVM [J]. Computer Engineering, 2006, 32(16):127-129. [5] TAX D, DUIN R. Support vector data description[J]. Machine Learning, 2004,54(1):45-66. [6] SHEHROZ S Khan, MICHAEL G Madden. A survey of recent trends in one class classication[J]. Artificial Intelligence and Cognitive Science, 2010,45(16):188-197. [7] PORTNOY L, ESKIN E, STOLFO S. Intrusion detection with unlabeled data using clustering[C].DANIEL Barbara, SUSHIL Jajodia. Proceedings of 2001 ACM CSS Workshop on Data Mining Applied to Security, Philadelphia:[s.n.],2001. [8] BEN H A, GUYON I. Detecting stable clusters using principal component analysis[C]. MICHAEL J Brownstein, APKADY B Khodursky. Methods In Molecular Biology, CLIFTON, 2003. [9] 许国根, 贾瑛. 模式识别与智能计算的MATLAB实现[M]. 北京:北京航空航天大学出版社,2012. [10] 包潘晴,杨明福.基于KPCA和SVM的网络入侵检测[J].计算机应用与软件,2006,23(2):125-127. BAO Fanqing,YANG Mingfu. KPC and SVM based network intrusion detection[J]. Computer Applications and Software,2006,23(2):125-127. [11] ISABELLE GUYON, ANDRE ELISSEEFF. An introduction to variable and feature selection[J]. Journal of Machine Learning Research,2003,3:1157-1182. [12] YE Nong, LI Xiangyang, CHEN Qiang, et al. Probabilistic techniques for intrusion detection based on computer audit data[J]. IEEE Transaction on Systems, Man and Cybernetics,2001,31(4):263-271. [13] 边肇琪,张学工. 模式识别[M].北京:清华大学出版社,2000. [14] CHANG Chihchung, LIN Chihjen. LIBSVM: A Library for Support Vector Machines[DB/OL].[2013-3-14]http://www.csie.ntu.edu.tw/~cjlin/papers/libsvm.pdf. [15] 田俊峰,刘涛,陈小祥. 入侵检测系统的评估方法与研究[J].计算机工程与应用,2008,44(9):113-117. TIAN Junfeng, LIU Tao, CHEN Xiaoxiang. Survey in evaluation of intrusion detection system[J]. Computer Engineering and Applications,2008,44(9):113-117. [16] MAHBOD Tavallaee, EBRAHIM Bagheri, WEI Lu,et al.A detailed analysis of the KDD CUP 99 Data Set[C]. 2009 Second IEEE Symposium on Computational Intelligence for Security and Defense Applications (CISDA),[s.n.],2009. [17] HODGE V, AUSTIN J. A survey of outlier detection methodologies [J]. Artificial Intelligence, 2004,22:85-126.3 实验与结果分析
4 结论