数据挖掘算法在入侵检测系统中的应用研究
2017-06-01林国庆
林国庆
摘要:该文系统地论述了入侵检测系统的定义与理论基础,划分出数据挖掘技术的功能类别,探讨了当前入侵检测系统中存在的问题,建立了一个基于数据挖掘技术的入侵检测系统模型,提高了入侵检测系统的运行速度和功能,把数据挖掘技术的算法结合其他领域的多项前沿技术融入到入侵检测系统当中,应用到入侵检测系统中。并介绍了该系统模型的技术原理及数据挖掘技术研究的最新发展。
关键词:数据挖掘;网络安全;入侵检测;算法
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2017)08-0049-03
数据挖掘(Data Mining)技术的定义是从现有的数据库中提取有用知识的技术。这几年的科学理论研究成果表明,把数据挖掘技术添加入侵检测系统(Intrusion Detection System,IDS)中来,并从中选择有效地特征点,构造出合适的测试模型,不但能提升整个系统设备的入侵检测的功能,而且也会影响系统的误报率和漏报率。随着计算机网络技术的不断发展,计算机网络在给人们带来了许多方便的同时,也产生了一些负面作用。如系统与软件漏洞等,也为个别非法入侵者提供了可乘之机。而为了防止内部或外部非法使用者对计算机进行攻击,工程师设计出了入侵检测系统(httrusion Detection System,IDS)。
1入侵检测的技术理论
入侵检测技术的主要功能是监控网络系统各主机的运行状态,监测出各种潜在攻击行为、或者潜在的木马程序,这样就可以IDS系统资源具有可用性、完备性与安全性。
我们可以从监测数据目标的方向,把入侵检测系统IDS区分为根据内核主机的IDS、根据网络的IDS和根据应用的IDS等众多种类别。本论文主要是根据网络的入侵检测系统IDS的构造进行深入的解析。
研究人员也可以从分析数据检测方法的异同点方向,把入侵检测系统划分为以下几大类别:
1)误用检测(MISuse Detection)。又称为根据特征的检测方法,它把已知的攻击行为标识成一个特征库,再去比对现有已发生的动作行为,如果有检测结果具有相似性则表明它是一个入侵行为。误报率低是这种方法的优点,但是对主机的攻击行为达到一定数量级时,将使特征库变得很庞大,仅能检测到特征库中已标识的攻击行为是这一方法缺点。
2)异常检测(Anomaly Detection)。又叫作根据行为的检测,它也是事先构建一个正常的特征库,然后再继续搜集使用者的行为或使用资源状况,来判定这是否为一种入侵行为。这种方法的优点是通用性较强,跟系统本身无直接联系,同时也可以检测出未知的攻击方法。但受到正常框架的局限,也无法对整个系统的全部用户行为进行全面的描述,并且各个用户的行为也会发生变化的,因此会发生误检率值升高的缺点。
把以上两种方法综合起来,肯定能取得更好的效果。传统的入侵检测系统IDS只是将异常检测和误用检测作为两个独立部分加入到检测系统中,为了充分利用两种检测的优点,可将异常检测和误用检测相结合构成新的IDS基本规则:凡是能与正常行为模式库匹配的行为称为正常行为,凡是与异常行为模式库匹配的行为称为人侵行为,这样可以在一定程度上减少误报率和漏报率,提高入侵检测的准确性。但是需要手动来更新行为模式库的方法,也是浪费人力和物力。为了提高人侵檢测的速度,可以将数据挖掘技术的一些算法如:分类算法、聚类算法、关联规则算法、序列规则算法等,应用到入侵检测系统的设计当中。于是,不论是否发生入侵行为,系统就能有效跟踪识别,并自动更新规则库算法,从而促进整个检测系统性能的优化。
要获取入侵检测的数据源,研究人员利用一些专用的抓包软件来实现,在Windows平台下抓包工具软件,主要有Winpcap等工具,而Unix平台下,可以利用Arpwatch和Tcpdump软件工具来抓包。数据挖掘技术的数据分析阶段也可再细分,它的响应部分可划分为被动响应与主动响应这两类。
2数据挖掘技术简介
数据挖掘(Data Mining)技术可以看作是从众多的数据源中提取人们需要的模式的算法过程。这里的数据挖掘的对象可以是数据源或其他文件系统,或者是Web资源之类的其他数据的集合;数据挖掘并不是一个直线延展型的过程,也可把它比作是一个不断螺旋上升、反复的、且具有众多步骤、繁杂的处理过程。
数据挖掘算法能够做到预测未来趋势及行为,从而做出具有前瞻性知识的决策。数据挖掘的根本目的是从数据特征库中,搜寻出有意义的隐含知识,可以按功能区分它的类别:
1)聚类
平时我们输入的数据可能无任何类型标记,而聚类是把数据按一定的规则划分到各个集合中,其中对象可划分为多个类或簇,划分后同一个簇中的对象具有很高的相似性,可是我们也发现不同簇中的对象差异却很大。
2)关联分析
关联分析可以查找数据库中众多数据之间的联系,主要包括是序列模式与关联规则。序列模式分析则主要研究数据之间的因果关系,比如买了手机的用户可能会在几个月内买手机套;关联规则是指监测出其中某一对象与其他类对象之间的关联依赖性,比如:关联分析方法在分析用户在买牙膏的同时,存在买牙刷的可能性。
3)概念描述
数据库中的数据是纷繁复杂的,专家们总期望用最简易的描述形式,来表达汇集的数据源。概念描述是概括出同一类别对象的对应特征,并且描述出它的内涵。
4)偏差检测
偏差检测包涵众多隐藏的知识,比如数值不规则的变化、不符合规则的实例、模型预测值和监测结果的偏差、分类中的异常特例等。
5)自动预测趋势和行为
数据挖掘自动在大型数据库中提出描述主要数据类的模型,进行监测与分类,搜寻出未来的数据趋势或预测性信息。
数据挖掘算法是最近几年创新融合,引入到入侵检测系统的一类技术。其优点是能从主机的大量纷繁复杂的日志文件与网络数据中,提取出我们想要的、且未发现的规律理论。利用数据挖掘算法保障我们的网络安全,这是研究人员的一种大胆创新尝试。当前条件下,对数据挖掘算法的研究已进入一个新的阶段,同时它也是一个通用性很强的技术。在入侵检测系统中,把入侵检测看作数据分析过程,将安全数据引入特定的数据挖掘算法,可以产生一个具有良好的扩展效果,自适应性较强的入侵检测系统。截至目前,数据挖掘算法应用到入侵检测上的主要有关联、序列、分类和聚类这几个模型方面。
3数据挖掘算法在入侵检测系统中的应用
数据挖掘是对存放在数据库或其他信息数据库中的数据进行提取,挖掘出对人类有用知识的过程。
把数据挖掘技术融合到入侵检测系统中,再分析相关以往的数据,挖掘提取出各个用户的行为特征、分析入侵行为的隐含规律,从而构建一个完备的特征库来进行入侵检测。该过程主要分为以下几步。数据收集来源于网络,主要是根据网络来检测系统数据,常用的工具有TCPDUMP等。
利用Snort的工作原理来举例,扩展系统主要在规则匹配方面,通过系统测试实验,分析攻击行为的典型特征,总结出攻击数据库大小模式与时间的内在联系。
下面可以模拟出一个实验环境:
IP地址为172.16.5.2的主机配置为PIV 3.2G,内存4G,操作系统为Windows 7;这几台分机的IP地址分别为172.16.5.21;172.16.5.36;172.16.5.480
实验主要步骤:通过TcpDump这个工具软件捕获一组络数据包,通过本系统记录约20min传送来的数据包,分别利用3台分机对一台主机进行攻击,测试不同攻击类型的数据包。
异常分析器则采用K-Meoils算法(即聚类分析算法),实验数据分析表明:人为增大了聚类半径R,可能会导致攻击数据包与正常数包被系统归类到同一个聚类,而误检率必然因数值的增大而变大。误检率因数值的增大而增大,因数值的减小而渐渐减小。同时,若某种类型的攻击数据包的数目变更数值,检测系统会将其认定为正常类,因此数值越小,也将导致误检率越高。若聚类设置半径R=6,加人挖掘技术的检测系统,明显比Snort最初的检测速度还快,而且误检率也更低。
特征提取器采用Apriori算法关联分析,支持度设为50%,置信度参数设为100%,参数值设置为1000,实验结果显示以下3条新的入侵检测规则:
Alert tcp 172.16.5.2l 2450->172.16.5.2 80
(msg:“poli-cy:externalnet attempt to access 172.16.5.2”;classtype:at-temptesd-recon;)
Alert tcp 172.16.5.36 1850->172.16.5.2 21
(msg:“poli-cy:extemalnet attempt to OCCCSS 172.16.5.2”;classtype:at-tempted-recon;)
Alert tcp 172.16.5.48 2578->172.16.1.2 1080
(msg:“policy:extemalnet attempt to access 172.16.5.2”;elasstype:at-tempted-reeon;)
以上实验结果的分析表明:异常日志受到特征提取器的影响,检测系统挖掘提取出新类型攻击的规则,同时可以检测新类型攻击行为。
在数据挖掘中,预处理训练数据的好坏,也会影响提取的用户特征,并间接影响分析出规则的正确性。入侵检测系统中,可以建立包含入侵者的行为的模型数据库,那么以后建立起的检测系统将不能识别出该入侵行为,从而造成漏报或误报的情况。因此,用于训练的数据一定不能包含任何入侵行为,且数据挖掘算法要事先格式化成需要处理的形式。
在预处理过的数据中,数据挖掘算法从中提取用户行为特征库,再对所得的特征规则进行相应更新,建立起用户行为规则库。入侵检测系统依据规则库的规则,再对当前用户的行为进行检测,再对得到的结果采取不同的應对方式。
数据挖掘主要过程可以分为原始数据的采集、数据的预处理、最后数据的挖掘这三个步骤来进行。数据挖掘技术主要包括关联分析、聚类分析和分类分析、序列模式分析等四类。基于数据挖掘的入侵检测系统研究是针对数据挖掘与入侵检测的众多特点,构造出恰当的挖掘模型,在满足实际网络安全的前提下,实现两者的有效融合。
1)序列模式分析。序列模式分析主要是指搜寻出在一定的段时间T内,有出现数据特征甲,然后有特征乙出现,而后特征丙也出现了,即序列甲 乙 丙,出现频度较高之类知识。由于网络攻击和时间变量存在关联,因此在关联分析基础上进行序列模式分析,可以进一步分析攻击行为时间相关性。它主要运用序列分析发现入侵行为的序列关,系.挖掘安全事件之间先后关系,从而提取出入侵行为的时间序列特征。序列模式挖掘的大部分方法都采用了类Apriori算法的变异,使用的参数设置和约束条件均有所不同。另一种挖掘此类模式的方法为序列模式生长技术,它是基于数据库投影的,类似于无选项生成的频繁模式挖掘增长方式。
2)关联规则挖掘。研究人员认为:关联规则挖掘是数据挖掘技术算法中应用最广泛的,也是最先被引人入侵检测的技术。关联规则分析是采用改变可信度与支持度原定规定数值的技术,它主要包括两个步骤:第一是监别不低于用户规定的、最小支持度参数值的频繁项目集;然后从中构建出可信度不低于用户规定的、最小可信度参数值的规则。值得一提的是,现在已有多种关联规则算法(如Apriori算法)引入到入侵检测系统中。
3)聚类分析。聚类是指用来分析对一个数据对象的集合,但与此不同的是,这个要区分的类是不可知的。聚类就是将数据对象划分成多个簇或类,具有较高相似度的对象被分在同一个簇中,而不同簇中的对象却有较大的差异。相异度是用来描述对象属性的参数值。用在入侵检测中的聚类分析主要包括两种,第一种是入侵行为远小于正常行为的数目,第二种是人侵行为和正常行为显著不同的。常用的聚类技术主要有:根据模型的方法(model-based method)划分方法(partitioning meth-od)、)和层次方法(hierarchical method)、根据网格的方法(grid-based method)、根据密度的方法(density-based method)等。
4数据挖掘技术研究的前沿技术
数据挖掘技术是一门融合多门学科的崭新技术,其中包括信息检索、神经网络、数据可视化、数据库应用技术、统计学原理、模式识别、高端计算、机器自学习、信号处理DSP和空间数据研究等。数据挖掘技术可以和其他技术相结合,如粗集、模糊逻辑、遗传算法、决策树理论、人工神经网络以及规则归纳法等等。
下面介绍几种最新的数据挖掘技术,可以与之相结合应用到入侵检测系统中的技术:
1)膜糊数据挖掘技术
在数据挖掘过程中,审计数据中一定含有量化特征,量化数据分隔在置信度、支持度两个参数值区域中。这种划分方法的尖锐边界(sharp boundary),这一问题也影响着IDS的检测性能。为克服尖锐边界所带来的一系列问题,Bridges把特征量化细分为模糊隶属度值的等类别。Bridges使用模糊逻辑算法与关联规则挖掘算法、数据频繁情节挖掘算法三类相结合,综合应用上述方法来开发数据挖掘技术。
2)多级近似(level-wise)挖掘技术
若发生频率较低的某些正常行为,其支持度不会超过预定的数值;在数据挖掘过程中,若降低支持度的数值,也能取得许多与频率值高的服务类别相近的模式。多级近似挖掘技术被专家们提出来为解决这一矛盾,它的原理是:首先提取出与频率高的中心属性值关联的模式,而后再把支持度数值降低,从中提取出与频率值低的属性值相关的那些模式。该模式挖掘技术提取的过程中,要注意控制那些旧的中心属性的添加:必须至少包括一个“新”(低频繁度)的中心属性值作为备选项目集。这样,每次循环演算获得的模式就转变为由全部新的中心属性构成的,或者是由旧中心属性与新中心属性综合构成。
3)遗传算法技术
遗传算法(genetic algoritm)是指模拟自然生物进化遗传模式和采用大自然选择的一种最优算法技术,遗传算法有效解决了大量数据的繁杂无序的特性。基于遗传算法的数据挖掘技术主要研究方向还是在分类系统方面,对于关联规则的研究,挖掘应用较少。比如Shi使用遗传算法则可以自动优化隶属度函数的参数。遗传算法技术是将若干问题可能的解,按某种形式进行合理的编码,编码后的解我们称之为染色体(个体)。然后选择几个染色体组成原始种群,再针对每个染色体进行分析,再根据选定的函数统计出适应值,以便让性能较优的染色体具有较好的适应值。选取适应值好的染色体进行相应的复制,再经过遗传算法:选择、重组(交叉)、变异,来创造出一种更新的且更适应环境的染色体,形成更新的种群。不断循环繁殖、进化,最后收敛到一个最适应系统环境的個体中,从而使得问题得到最优解。
4)决策树技术
决策树方法技术是指用信息论方法获得值的一种数据挖掘技术。在数据库概念中,决策树技术采用的是信息论中的信息增益(互信息),来搜寻含有MAX信息量的属性字段,组建决策树中的一个节点,再基于该属性字段的异同来获取数值,也就建成了树的分支。在任意的分支子集中,重复构建树的下层分支与节点的过程。决策树方法技术,不但可以实现数据规则的可视化,构造过程中也不需要浪费较长时间,精度较高的输出结果,也容易让人理解,所以在知识发现系统中,决策树方法技术得到广泛的应用。
5)人工神经网络技术
神经网络由大量的处理单元组成,单元间进行交互是通过带有权值的连接来实现的。神经网络可以通过添加连接或删除连接的方法、改变单元状,改变连接的权值来标识异常事件。神经网络在数据较大、领域知识不完备以及存在噪声数据的情况下,发挥强有力的非线性处理能力,达到传统符号学习方法意想不到的效果。把神经网络的自学习、自组织功能与数据挖掘技术相结合,应用到入侵检测系统中,可以提高入侵检测的效率,避免了人工输入规则,较好地处理带噪声的数据。
6)Agent Agent技术
该技术目前尚无统一的定义,普遍的观点是一种处于平台环境下的计算机系统,为实现算法程序的初衷,它能实现在一定的系统中自主灵活地运行。一个完善的Agent能够与环境中的其他Agent相互协作,并从它的经验中不断地学习,共同完成原定的任务。分布式入侵检测系统基于Agent和数据挖掘的分布式结构,在各种特性上构造了移动Agent的自治性和智能路由性,在一定程度上满足了入侵检测系统的要求,当检测环境变化时或者需要保护机器数目发生变化,入侵检测系统则不要做较大修改;或者当新的正常使用模式与新的攻击类型模式时,系统可以自动扩充相关知识库并及时鉴别,从而提高其扩展性和环境适应性。
5小结
在入侵检测系统IDS中,数据挖掘技术主要是用于处理海量数据库中的数据,从中提取特征,并对其进行相应分类或区分,构造出一定算法来形成关联规则模式或者时间序列模式,从而提高入侵检测系统的速度和强度,实现非手工模式数据库的更新。
总之,入侵检测技术存在众多种类型,现在入侵检测技术发展的主要方向是根据数据挖掘算法融入到入侵检测的技术中,不断对数据挖掘算法技术进行创新,因而,深入的研究相关技术是很有必要的,可以预见的是数据挖掘算法技术会有很好的发展前景。未来的发展趋势是改进数据挖掘技术中的各种算法,并且把它与其他各种前沿技术相融合,综合应用到入侵检测系统IDS中,最终实现提高入侵检测系统的性能和效率。