启发式DDoS数据流特征搜索方法研究.docx
《启发式DDoS数据流特征搜索方法研究.docx》由会员分享,可在线阅读,更多相关《启发式DDoS数据流特征搜索方法研究.docx(43页珍藏版)》请在冰豆网上搜索。
![启发式DDoS数据流特征搜索方法研究.docx](https://file1.bdocx.com/fileroot1/2023-2/11/a6b589a5-0280-4353-9f5d-d603e82a9ba0/a6b589a5-0280-4353-9f5d-d603e82a9ba01.gif)
启发式DDoS数据流特征搜索方法研究
毕业设计(论文)
题目:
启发式DDoS数据流特征搜索方法研究
专业:
信息安全
学生姓名:
班级学号:
指导教师:
指导单位:
计算机学院信息安全系
日期:
2008年03月26日至2008年06月25日
摘要
特征选择是网络安全、模式识别、数据挖掘等领域的重要问题之一。
基于特征选择的入侵检测系统处理的数据含有大量的冗余与噪音特征,使得系统耗用的计算资源很大,导致系统训练时间长、实时性差,检测效果不好。
特征选择算法能够很好地消除冗余和噪音特征,为了提高入侵检测系统的检测速度和效果,对基于特征选择的入侵检测系统进行研究是必要的。
针对高维数据对象,特征选择一方面可以提高分类精度和效率,另一方面可以找出富含信息的特征子集。
文中提出一种封装器模型的特征选择算法来构建检测系统。
该算法利用启发式搜索策略对特征子集空间进行启发式搜索,然后利用提供的数据在支持向量机上的分类正确率作为特征子集的评价标准来获取最优特征子集。
关键词:
特征选择;支持向量机;启发式搜索
ABSTRACT
Featureselectionisoneofthemostimportantproblemsinnetworksecurity,patternrecognitionanddataminingareas.Theintrusiondetectionsystembasedonfeatureselectiondealswithhugeamountofdatawhichcontainsredundantandnoisyfeaturescausingslowtrainingandtestingprocess,highresourceconsumptionaswellaspoordetectionrate.Featureselection,therefore,isanimportantissueinintrusiondetectionanditcandeleteredundantandnoisyfeatures.Inordertoimproveperformancesofintrusiondetectionsystemintermsofdetectionspeedanddetectionrate,asurveyofintrusiondetectionsystembasedonfeatureselectionisnecessary.Forhighdimensiondata,featureselectionnotonlycanimprovetheaccuracyandefficiencyofclassification,butalsodiscoverinformativesubset.ThispaperproposesanewfeatureselectionalgorithmaimingatbuildingintrusiondetectionsystemfirstusingaHeuristicstrategyassearchstrategytospecifyacandidatesubsetforevaluationandthenusingSupportVectorMachines(SVMs)iterativeprocedureaswrapperapproachtoobtaintheoptimumfeaturesubset.
Keywords:
featureselection;supportvectormachines;heuristicsearch
目录
第一章引言1
1.1研究内容1
1.2研究背景1
第二章特征选择模型3
2.1特征选择的数学模型及一般化过程3
2.2特征子集的产生3
2.3特征子集评估4
2.4基于特征选择的检测模型分类4
2.4.1基于过滤器模型的检测系统5
2.4.2基于封装器模型的检测系统5
第三章统计学习理论与支持向量机7
3.1统计学习理论与支持向量机7
3.1.1机器学习7
3.1.2统计学习理论9
3.1.3支持向量机9
3.2SVM训练算法12
3.2.1块算法13
3.2.2分解算法13
3.2.3序列最小算法(SMO)14
3.3SVM分类算法14
第四章启发式特征选择系统的设计和实现15
4.1搜索策略15
4.2本文的特征选择算法16
4.3系统的设计和实现18
4.3.1KDD99数据集19
4.3.2攻击方式的对比分析21
4.3.3数据预处理22
4.4LIBSVM软件包的使用23
4.4.1算法中关键参数的选择23
4.4.2算法执行命令24
4.5用户界面和功能26
4.6实例演示27
结束语29
致谢30
参考文献31
第一章引言
1.1研究内容
DDoS是目前网络安全中的一个重要威胁,其主要特征是实现简单,种类变化多,难以使用特征匹配的方法识别,如何针对一次未知的攻击,使用数据挖掘中启发式特征选取方法来找出真正有效的特征组是一个具有实际意义并值得研究的问题。
本课题的要求是设计一种能够针对攻击特征最佳组合发现的搜索方法,可以在较短时间内准确挖掘出目标。
1.2研究背景
拒绝服务(DenialofService,DoS)攻击是目前较常见的一类网络攻击行为,这类攻击以剥夺计算机和网络提供正常服务的能力为目的最常见的DoS攻击通过向攻击目标发送大量的攻击数据包来消耗目标主机或网络的资源,这类攻击通常被称为数据包洪泛攻击,例如SYN洪泛、UDP洪泛、Smurf攻击等。
分布式拒绝服务(DistributedDenialofService,DDoS)是指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DoS攻击,从而成倍地提高拒绝服务攻击的威力。
它主要瞄准比较大的站点,像商业公司、搜索引擎和政府部门的站点,许多著名的网站(如Yahoo、eBay)都遭受过DDoS攻击。
在高速数据包的攻击下,受害者主机的关键资源(带宽、缓冲区、CPU资源等)迅速耗尽,受害者或者崩溃,或者花大量时间处理攻击包而不能正常服务,给受害者和用户造成严重经济损失,因此有效地检测和防御DDoS攻击是构建安全网络的重要组成部分。
分布式拒绝服务(distributeddenialofservice,DDoS)攻击已经成为目前网络中的主要攻击形式之一,由于DDoS攻击是将网络使用中的合法功能应用于非法的途径,因此对DDoS的攻击特征进行提取可以实时监控网络数据包的异常行为。
特征选择与特征提取不是同一个概念,由于名字接近容易混淆。
由于在很多实际问题中常常不容易找到那些最重要的特征,或受条件限制不能对它们进行测量,这就使特征选择和提取的任务复杂化。
特征选择和提取的基本任务是如何从许多特征中找出那些最有效的特征。
原始特征的数量可能很大,或者说样本是处于一个高维空间中,通过映射(或变换)的方法可以用降维空间来表示样本,这个过程叫特征提取。
映射后的特征叫二次特征,它们是原始特征的某种组合(通常是线性组合)。
所谓特征提取在广义上就是指一种变换。
从一组特征中挑选出一些最有效的特征以达到降低特征空间维数的目的,这个过程叫特征选择。
1998年,美国麻省理工学院林肯实验室提供了DARPA的模拟系统的入侵检测数据集,针对这种基于sniffer的数据集,很多个人和组织提出了他们各自的检测方法;在1999年,同样出现了DARPA1999数据集,它比DARPA1998的数据集包含的攻击类型更多,数据更丰富。
佐治亚理工学院的WenkeLee教授和哥伦比亚大学的一些教授们将DARPA1998的数据预处理后生成了KDDCUP1999的比赛数据,期望能获得一个最佳的分类学习算法。
本文中启发式特征选取方法找出检测攻击数据是对KDDCUP1999攻击数据做检测。
入侵检测是一种通过收集和分析被保护系统信息,从而发现入侵的技术。
它的主要功能是对网络和计算机系统进行实时监控,发现和识别系统中的入侵行为或企图,给出入侵警报。
可将入侵检测看作是区别系统状态是“正常”还是“异常”的二分类问题。
对入侵检测系统的要求首先是正确性,其次是实时性。
只有检测速度快,才能及时处理网络中传输的海量数据,不会因为速度慢而丢失信息、造成漏警,更能及时采取措施,将入侵带来的损失降到最低。
随着网络的高速提升,入侵检测系统面临的一个主要问题是检测速度低、负荷大,来不及处理网络中传输的海量数据,并且这个问题变得越来越严重。
检测速度已成为入侵检测系统实时性要求的一个重要指标,如何在保证检测正确性的前提下开发出检测速度快的轻量级入侵检测系统,成为当前研究的热点。
很多研究者通过特征选择来解决这个问题,提取和处理的特征数目过多是导致速度下降的主要原因之一。
特征和分类器性能之间并不存在线性关系,当特征数量超过一定限度时,会导致分类器性能变差。
实际上,有些特征没有包含或者包含极少的系统状态信息,它们对检测结果几乎没有影响。
特征选取问题是入侵检测系统的核心问题之一,准确的特征选取对于降低入侵检测系统的误报率和漏报率,提高入侵检测系统的检测效率都起着重要的作用心。
特征选项数量要合适。
(1)过多,则特殊性强,产生漏报,且计算量大,影响系统效率;
(2)过少,则普遍性强,产生误报。
因此,特征选取就是一种策略,其目的就是降低漏报率和误报率以及提高系统性能方面找到一个最佳切合点。
第二章特征选择模型
2.1特征选择的数学模型及一般化过程
给定一个特征子集F={f1,f2,…,fN},N是特征集的大小。
一个特征子集可以用一个二进制向量表示:
S={s1,s2,…,sN},si∈{0,1},i=1,2,…,N,si=1表示第i个特征fi被选择,反之,对第i个特征fi不作选择。
将评价函数在给定的特征子集S上所具有的最大性能G(S)作为目标函数值,则特征选择问题转化为下列优化问题:
。
2.2特征子集的产生
特征子集产生包含两个部分:
特征空间搜索方向与搜索策略。
搜索方向主要有4种:
(1)正向选择。
开始时不含任何特征,然后每次增加一个。
(2)反向消除。
开始时包含了所有的特征,然后每次减少一个。
(3)双向搜索.由正向选择和反向消除相结合。
(4)随机产生.随机地产生特征子集,主要用于不确定搜索。
搜索策略主要包括3种:
穷举搜索、启发式搜索和不确定搜索。
穷举搜索是搜索所有可能的特征子集,这种搜索策略一定可以发现最优的特征子集,但搜索空间大,当特征数较多时是无法实现的;启发式搜索按照一定的启发式规则搜索特征子集,这种搜索策略搜索空间比较小,可能丢失最优子集。
不确定搜索实际上是一种对上述两种搜索的平衡方法,比较典型的不确定搜索有遗传算法。
采用启发式搜索策略的特征选择算法主要有以下8种。
(1)单独最优特征组合。
该方法依靠计算各特征单独使用时的判据值对特征加以排队,取前d个特征作为满足条件的特征组。
(2)序列前向选择方法(SequentialForwardSelection,SFS),也称为集合增加法。
它是一种最简单的自下而上的搜索方法。
先把所需要的特征集合初始化为一个空集,每次向特征集合中增加一个特征,当所需要的特征集合达到要求时所得到的特征集合作为算法运行的结果。
SFS法考虑了所选特征与已入选特征之间的相关性,一般说来比单独最优特征组合的选择方法好些,主要缺点是一旦某特征已入选,即使由于后加入的特征使它变为多余,也无法再把它剔除。
(3)广义序列前向选择方法(GeneralizedSequentialForwardSelection,GSFS)。
该方法是SFS算法的加速方法,它可以根据准则函数一次性向特征集合中增加r个特征。
SFS法每次只增加一个特征,它未考虑入选特征之间的统计相关性,而GSFS法可以克服这个缺点,当然此时计算量变大了,相应地,它比SFS法更可靠,此外它也无法剔除已入选的特征。
(4)序列后向选择方法(SequentialBackwardSelection,SBS)。
该方法是一种自上而下的方法。
该方法在运行之初假定整个特征集合就是所需要的优化特征集,而后在算法的每步运行过程中删除一个对准则函数无贡献的特征,直到剩余特征个数符合集合基数要求。
该方法的优势在于充分考虑特征之间的统计相关特性,因而在采用同样合理的准则函数的时候,它的实际计算性能和算法的鲁棒性要大大优于SFS算法。
(5)广义序列后向选择方法(GeneralizedSequentialBackwardSelection,GSBS)。
该方法是SBS算法的加速算法,它根据准则函数在算法的每个循环当中,一次性删除一定个数的无用特征。
它的优点在于速度较快,性能相对较好。
不足之处在于有的时候,特征消除操作进行太快,容易丢失重要的变量,导致找不到最优的特征组。
(6)增l去r选择方法。
这种方法允许在特征选择过程中进行回溯,如果l>r,则该算法是自下而上的方法。
用SFS方法将l个特征加入到当前特征集中,然后再用SBS方法删除r个最差的特征。
这种方法消除嵌套问题,因为某一步获得的特征集不一定是下一步特征集的子集。
如果l从一个完全特征集开始,依次删除r个特征,再增加l个特征直到获得满足要求个数的特征。
该方法实际上是SBS方法和SFS方法的一种折衷,它的运算速度要比SBS快,运算效果要比SFS好。
(7)广义增l去r选择方法。
该方法是在增l去r选择方法的基础上,用GSFS和GSBS分别代替SFS和SBS。
前面所有讨论过的算法甚至可以看作是它的特例算法。
因而它包含极其广泛的理论意义。
但操作较为复杂,难以制定实际规则加以利用。
(8)浮动搜索方法。
该方法改变上述一系列算法固定l、r的基本做法。
采用浮动的步长,也就是在选择算法的不同步骤,可以采用不同的l、r。
实际的每轮的l、r可以根据特征的统计特点来制定。
这是一种非常实用的改良机制。
综上所述,根据合理的启发式规则可以设计出非常实用的次优搜索方法应用于特征选择算法。
该类算法并不检查每个特征组合,但是它可以估计一组潜在、有用的特征组合,甚至可以根据所制定的启发式规则对所有特征进行排序。
2.3特征子集评估
特征选择可以看作是一个优化问题,其关键是建立一种评估标准来区分哪些特征组合有助于分类,哪些特征组合存在冗余性、部分或者完全无关。
不同的评估函数可能会给出不同的结果。
根据评估函数与分类器的关系,特征选择方法分成过滤器模式和封装器模式两种。
其中,过滤器的评估函数与分类器无关;而封装器采用分类器的分类错误率或正确率作为评价函数,其中,过滤器的评价函数又可以细分为距离测度、信息测度、相关性测度和一致性测度。
2.4基于特征选择的检测模型分类
特征选择有两种模型:
过滤器和封装器。
过滤器模型利用数据本身的特性作为特征子集的度量指标,而封装器模型利用机器学习算法的分类正确率作为特征子集的度量指标。
一般来说,过滤器的特征选择速度比较快,选择的结果与采用的学习算法没有关系,选择效果比较差;封装器特征选择速度慢,需要交叉认证和大量的计算资源,选择结果依赖于采用的分类算法,选择效果一般较好。
2.4.1基于过滤器模型的检测系统
基于过滤器模型的检测系统流程如图2-1所示,图中出现的变量定义为
,具有特征数量为N的数据集;
,特征搜索空间的初始子集;S,生成的特征子集;γ,评价函数值;δ,评估停止条件;M,与分类器无关的评价函数;
,最优特征子集;
,最优评价函数值;C,分类器;TrD,训练数据集;TeD,测试数据集。
图中出现的函数定义为Generate(D),根据数据集D生成一个特征子集S;Eval(S,D,M),根据数据集D、评价函数M,对特征子集S进行评估,返回γ;Build(TrD,
),通过TrD和最优特征子集
,建立分类器C;Test(TeD,C),通过测试集TeD检测分类器C的性能。
通过特征选择,找到
之后,在
和TrD上建立分类器C,这样建立的分类器耗用计算资源少,性能优于在全部特征上建立的分类器。
图2-1基于过滤器模式的检测系统流程
2.4.2基于封装器模型的检测系统
基于封装器模型的检测系统详细流程如图2-2所示。
与过滤器相比,封装器更有利于提高分类器的性能,但是会耗用更多的计算资源与存储资源。
与过滤器模式的流程图相比,封装器在评估特征子集时采用了与分类器相关的评价函数A,而不是无关评价函数M。
图2-2基于封装器模式的检测系统流程
本文采用封装器模型。
其中,支持向量机以其出色的学习性能,已经成为继神经网络之后新的研究热点。
它建立在统计学习理论基础之上,能够很好地解决高维数、非线性和局部最小性等实际问题。
在入侵检测系统分类器上,支持向量机的应用也很广泛。
本文的重点不是分类器,而是为建立分类器模型服务的特征选择算法。
第三章统计学习理论与支持向量机
3.1统计学习理论与支持向量机
基于数据的机器学习是现代智能技术中的重要方面,研究从观测数据(样本)出发寻找规律,利用这些规律对未来数据进行预测。
目前实现的方法大致有三种:
第一种是基于传统统计学的(参数)统计估计方法。
在这种方法中,是在已知参数结构形式的前提下,通过训练数据,预测各参数的值。
应用这些预测方法除了需要很强的先验知识外,还需预先知道模型的结构形式。
但是,在处理大量的实际预测问题时,常常不知道模型的结构形式。
由于传统统计学研究的前提是样本数目趋于无穷大时的渐进理论,而参数预测方法几乎都是建立在这一前提基础之上的。
因此只有当采样数据趋于无穷时,参数方法的训练结果才趋于真实的模型。
由于实际样本数目是有限的,很难满足这一前提。
所以一些理论上很优秀的学习方法实际中表现却可能不尽人意。
第二种方法是人工神经网络ANN方法。
这种方法也要利用大量的训练样本,建立非线性模型,虽然克服了传统参数估计方法的困难,使人工神经网络方法已在很多实际的问题中取得了惊人的成功,但是这种方法缺乏一种统一的数学理论,基于经验风险最小化原则(EmpiricalRiskMinimization,简称ERM),容易陷入局部极小,而非全局最小,并出现过度拟合的现象,导致对未来数据预测的这种推广能力差。
人们把从过去的数据和以往的知识中学习并获取规律的能力称为学习能力。
用获得的规律不仅可以解释己知的实例,而且能够对未知的现象做出正确的预测和判断,这种能力称为推广能力,或是泛化能力。
第三种就是基于统计学习理论的支持向量机方法。
统计学习理论(StatisticalLearningTheory,简称SLT)是一种专门研究小样本情况下机器学习规律的理论。
支持向量机是VaPnik等人提出的一类新型机器学习方法,是以统计学习理论为基础的,因而具有严格的理论和数学基础,可以很好解决样本数量有限的问题,与神经网络的学习方法相比,支持向量机是基于结构风险最小化(StrueturalRISkMinimization,简称SRM)原则,保证了学习机器具有良好的泛化能力,由于支持向量算法最终可转化为凸优化问题,保证了算法的全局最优性,避免了神经网络无法解决的局部极小问题。
由于其出色的学习性能,该技术已经成为机器学习界的研究热点,随着研究的深入,SVM己由最初的二分类应用,推广到多分类(multiclass)、多类别(multilabel)、函数拟合、概率密度估计等应用中,并展现了良好的学习和泛化性能。
3.1.1机器学习
机器学习的目的是根据给定的训练样本来对某系统输入、输出之间依赖关系进行估计,使它能够对未知输出做出尽可能准确的预测。
可以一般地表示为:
变量y与x存在一定的未知依赖关系,即遵循某一未知的联合概率F(x,y)(x与y之间的确定性关系可以看作是其特例),机器学习问题就是根据l个独立同分布观测样本:
,
……
3-1
在一组函数
中求一个最优的函数
,使预测的期望风险:
3-2
最小,其中,
称作预测函数集,w为函数的广义参数,所以
可以表示任何函数集,
为由于用
对y进行预测而造成的损失,不同类型的学习问题有不同的损失函数,预测函数也称作学习函数、学习模型或学习机器。
主要有三类机器学习问题,它们是模式识别、函数拟合和概率密度估计。
(l)模式识别问题中的损失函数(以两类问题为例)可以定义为:
3-3
(2)函数拟合问题中的损失函数可以定义为:
3-4
(3)概率密度估计问题,学习的目的是根据训练样本确定x的概率分布。
记估计的密度函数为
,则损失函数可以定义为
3-5
显然,要使式(3-2)中定义的期望风险最小化必须依赖关于联合概率密度
的信息,但在实际的机器学习问题中,我们只能利用式(3-1)的信息,期望风险并无法直接计算和最小化。
因此人们根据概率论中大数定理的思想,采用算数平均代替式中使用的数学期望,即用:
3-6
来逼近式(3-2)定义的期望风险。
在模式识别中,就是用公式:
3-7
来代替期望风险。
这其实是基于样本数趋于无限大这样一个假设的。
由于
是用己知的训练样本定义的,因此称作经验风险。
用经验风险
的最小值代替期望风险
的最小值,就是所谓的经验风险最小化原则。
经验风险最小化是人们的主观想象,并没有什么理论依据,然而这种思想统治了模式识别领域很长时间,大家想尽办法使训练误差尽可能的小,但是在处理实际问题时,预测结果却不能令人满意。
原因就是在追求经验风险最小化的过程中,我们用一个复杂的模型去拟合现有的数据,结果使得对未知样本的推广能力降低,这就是过拟合,或叫过学习现象。
神经网络训练中,就经常会出现过拟合现象,导致推广能力下降,期待有好的算法的出现,可以较好的解决这个问题。
目前一种基于Levenberg-Marquardt优化算法的的BP神经网络在部分应用领域得到了一些不错的应用。
在实际问题中,特别是某些特殊领域,样本数是有限的,而经验风险最小化是基于样本数趋于无限这样的一个前提假设,因此不可能很好地解决小样本的学习问题。
3.1.2统计学习理论
与传统统计学相比,统计学习理论是一种专门研究小样本情况下机器学习规律的理论,该理论针对小样本统计问题建立了一套新的理论体系,在这种体系下的统计推理规则不仅考虑了对渐进性能的要求,而且追求在现有有限信息的条件下得到最优结果。
V.Vapnik等人从六、七十年代开始致力于此方面的研究,到九十年代中期,随着其理论的不断发展和成熟,也由于神经网络等学习方法在理论上缺乏实质性进展,统计学习理论开始受到越来越广泛的重视。
其主要内容包括以下四个方面:
(1)经验风险最小化准则下统计学习一致性的条件—学习理论的关键定理:
(2)经验风险和实际风险之间的关系—推广性的界;
(3)小样本归纳推理准则—结构风险最小化准则;
(4)新的准则的实现方法(算法)—支持向量机。
统计学习理论的核心内容就是VC(Vapnik和Chervonenkis)维、推广性的界和结构风险最小化。
3.1.3支持向量机
支持向量机方法是统计学习理