基于改进贝叶斯分类算法的入侵检测系统模型的构建

时间:2022-10-04 05:49:11

基于改进贝叶斯分类算法的入侵检测系统模型的构建

摘要:根据分类技术建立入侵检测系统的思路,构造了一个基于贝叶斯分类的入侵检测系统模型。本文提出了利用未标记数据提高贝叶斯分类器性能的方法,可以大大提高入侵检测系统准确率和效率。

关键词:数据挖掘;贝叶斯分类算法;入侵检测

中图分类号:TP393文献标识码:A 文章编号:1009-3044(2007)06-11644-03

1 引言

随着计算机网络的广泛应用和Internet的迅速发展,网络的开放性和共享程度越来越强,网络安全越来越成为广泛关注的焦点。入侵检测就是通过运用一些分析方法对从各种渠道获得的反映网络状况和网络行为的数据进行分析、提炼,再根据分析结果对这些数据进行评价,从而能够识别出正常和异常的数据或者对潜在的新型入侵做出预测,以保证网络的安全运行。

传统的入侵检测技术可以分为两大类型:异常入侵检测和误用入侵检测。目前在入侵检测系统模型构造中,常用的捡测方法还有统计方法、软计算方法、基于专家系统的入侵检测方法。但是,都有其自身的局限性:其系统模型是通过手工的或特殊的方法构造的;其设计和实现需要系统建造者对计算机系统和已知入侵方式有很深的了解;检测的只是侧重于某种入侵渠道的系统审计数据,无法适应千变万化的入侵方式,这样构造出来的系统的有效性和适应

性在新的计算环境和新的入侵方式面前受限。而数据挖掘的一些思路和方法非常适合解决这些问题。

2 数据挖掘技术简述

数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的数据中,非平凡的抽取一些隐含的、系统未知的、潜在有用的信息和知识的过程。一般来讲,基于数据挖掘的入侵检测系统的基本思路是:

首先,把原始审计数据(从网络或主机上获取的二进制的审计数据)转换成ASCII格式的网络分组信息,再把网络分组信息经过数据预处理程序处理成连接记录。其次,用数据挖掘算法中的关联分析算法和序列分析算法挖掘连接记录数据库中的频繁模式,如关联规则和频繁序列。利用这些频繁模式,为连接记录构造附加特征,如时间统计特征。最后,进行人侵检测模型的构建,数据挖掘有很多模型和算法,其中大部分算法都不是专为解决某个问题而特制的,算法之间也不相互排斥。在这些算法中,有几种算法对于分析网络审计数据和检测入侵非常有用,它们是关联规则算法、频繁序列算法和分类算法。

关联算法:通过得到的系统审计数据中各属性之间的频繁关系,确定构造入侵检测系统中所需的合适的属性。

频繁序列模式算法:发现系统审计事件中频繁发生的时间序列,该算法可为最后生成入侵检测模型提供时间统计属性。比如:通过对含有拒绝服务攻击方式的网络通信数据进行研究可知检测模型中应该包含与某段时间内同一主机和同一服务类型相关的时间统计属性。

分类规则挖掘算法:取得足够多的有关某个程序或用户的“正常”或者“异常”活动的审计数据,然后对其应用分类算法得到分类规则,根据分类规则判断新的审计数据属于正常还是异常类,生成分类规则的难点在于分类标签的选择及相关属性的确定。

利用这些算法及其它工具,可以从收集到的原始审计数据中建立入侵检测模型。在上面三步中,最核心的部分是第三步,即入侵检测模型的建立。

3 基于分类算法的入侵检测系统模型

3.1 入侵检测的分类思想

对于入侵检测模型的建立,由于分类算法理论比较成熟,而且在实际应用中效果也比较好,因此得到比较广泛的应用。

入侵检测的分类思想的基本思路是 :使用带标记的连接记录数据(训练数据)对分类器进行训练学习,该训练过程可能需要不断地反复和评估,如果分类器的分类效果不好,就需要通过频繁模式的挖掘和比较,构造更有助于分类的特征项。训练完成后的分类器就可以用于检测过程,将当前连接记录输入给分类器,分类器将输出该连接记录所属的类别。

3.2 分类模型的建立

分类就是在已有数据的基础上,通过学习,构造一个分类函数或分类模型,也称之为分类器。该函数或模型能够把数据库中的记录映射到给定类别中的某一个,从而应用于数据预测。分类的目的输出是离散的类别值。运用分类器检测入侵事件,可以判断哪些代码是恶意的攻击,从而采取措施,避免不良的后果。

从数学的角度来看,分类是一个映射的过程,分类器将未标明类别的二进制代码映射到不同的类别中,用数学公式表示如下:f: AB。其中,A为待分类的代码集合,B为分类体系中的类别集合。构造分类器是进行分类的关键。

图1

要构造分类器,首先必须掌握每类若干样本的数据信息,将这些数据分为训练样本集和测试样本集两部分,然后经过训练、测试和算法应用3个阶段来构造代码分类器。在训练阶段,分析训练样本集合中的数据记录的特征属性,通过特征抽取,总结出分类的规律性,建立相应的判别公式和判别规则,从而为每种类型标识生成精确的分类规则描述,也就是分类的映射规则。在测试阶段,利用这些分类规则对测试样本集合中的数据进行测试,来检验分类规则的正确性和精度,并根据测试结果,修正分类的映射规则。在此基础上,运用贝叶斯算法,进行机器学习,从而构造出代码分类器,在遇到新人侵时,就可以运用这个分类器对实际数据进行分类,确定入侵的类别。本文中运用的是贝叶斯算法。构造的分类模型如上图所示。

3.3 基于贝叶斯分类算法的入侵检测模型

由于目前基于数据挖掘入侵检测的最大弊端是实时性不高,因此本文在选择分类算法时选择了贝叶斯分类算法,该算法具有实现简单、分类速度快,利于实时检测的优势。基于分类算法的入侵检测系统的系统结构示意图如下图所示。

整个系统的工作过程由训练过程和检测过程组成。在训练过程中,系统使用大量网络连接记录组成的带标记的训练数据集,对贝叶斯分类器进行训练,通过不断循环反馈使得分类器可以分辨或预测哪些行为是正常的,哪些行为是不正常的。在检测过程中,系统利用训练过程中得到的知识库,使用训练好的贝叶斯分类器对当前连接记录进行分类,从而判断出当前行为是正常行为还是异常行为。

(1)训练阶段

数据源:按照需要的不同数据源可以是网络数据也可以是主机数据。当网络数据流在网段中传播时,采用特殊的数据提取技术收集网络中传输的数据作为入侵检测中的网络数据源。基于主机的数据源主要包括:历史审计记录和系统日志,还包括基于应用的审计信息和基于目标的对象信息。

图2

数据预处理及特征属性提取:将日志中的网络的数据包还原成基于传输层的连接记录,从中提取出可以用于对传输层连接记录进行分类的特征属性。对于在传输层无法判断的连接记录则进行高层的协议解析按照服务类型分解成相应的会话例如ftp telnet 等,针对每一种高层协议提取出可以用于判断的特征属性,得到用来生成规则的训练数据。

数据挖掘:针对不同的用途,采用不同的数据挖掘算法生成可用于入侵检测的规则,用来描述用户的正常行为、异常行为以及入侵行为。

数据采集模块:采用的是tcpdump程序。tcpdump截获的数据不能直接用分类算法进行分析,因此首先需要对它进行预处理,从中提取有意义的特征。

(2)入侵检测阶段

数据源:对基于网络数据的入侵检测系统通常用libpcap接口从链路层获取数据帧作为下一步处理的数据源基于主机的数据源是操作系统的当前审计记录和系统日志。

数据预处理及特征属性提取:与训练阶段的过程相同该过程的输出结果是用户的当前行为模式并作为下一步入侵检测的输入。

数据采集预处理模块:主要负责网络连接记录的采集、预处理,以及形成训练数据集。

响应:系统作出报警,采取防护措施防止进一步入侵以及记录日志等不同的响应方法,同时系统继续对当前用户行为或者网络数据进行监测。

在检测过程中,数据采集模块从网络上采集当前网络流数据,并通过数据预处理模块将其转换为当前连接记录。这两个模块的工作原理与前述相同。当前连接记录被送到贝叶斯分类器中,由贝叶斯分类器依据相应的知识库对其进行分类检测,从而决定是否有违反安全策略的入侵行为发生,并把结果再反馈给数据收集模块。

3.4 利用未标记数据提高贝叶斯分类器性能的基本思想

上面系统是利用未标记数据提高贝叶斯分类器性能思想。本文提出的基本思想是:设有两类数据CN(正常类)和CA(入侵类),首先用少量的带标记的训练数据(数据集D1)对贝叶斯分类器进行训练,得到分类器C,然后依次将大量的未带标记的数据(数据集D2)输入给C,由C对每条未带标记的连接记录r进行分类,因为贝叶斯分类的原理是计算r分别属于CN 和CA的概率,设r属于CN 的概率为PN,属于CA 的概率为PA,如果PN大于PA,则认为r属于CN,否则认为r属于CA。

为此,我们的思路是,设定一个阈值,对于连接记录r,如果PN/PA>e,即r属于类CN 的概率远大于r属于类CA 的概率,则将r归为类CN;如果PA/PN>P,即r属于类CA的概率远大于r属于类CN 的概率,则将r归为类CA;如果PN和PA不符合上面两个条件,即不能判断r明确属于哪个类,这时通过人工干预进行判断,确定r的明确归属。通过这种方式给大量未带标记的数据进行自动标记,然后继续对贝叶斯分类器进行训练,以得到检测性能更好的分类器。

根据上述利用未标记数据提高贝叶斯分类器性能的基本思想,本文设计r利用未标记数据提高贝叶斯分类器性能的算法是:利用未标记数据提高贝叶斯分类器性能的算法。输入:未训练的贝叶斯分类器C;判断概率差的阈值 ;带标记的训练数据集D1;未带标记的训练数据集D2;输出:训练好的贝叶斯分类器C;知识库K。方法:

(1)用带标记的数据集D1对贝叶斯分类器进行训练,得到分类器C和知识库K;

(2)for(D2中的每一条连接记录r)

(3)用C和K对r进行分类,计算PN和PA;

(4)如果PN /PA>e,则r为正常数据,TC中相应计数器加1;

(5)否则,如果PA/PN'~e,则r为入侵数据,TC巾相应计数器加1;

(6)否则,r需人工判断,将r保存于人工判断数据集D3,转;

(7)计算新的C和K;

(8)end for;

(9)for(D3中的每一条连接记录r)

(10)人工判断r属于何种类型数据;

(11)计算新的C和K;

(12)end for;

(13)return C和K。

该算法首先用带标记的数据集D1对贝叶斯分类器进行训练,得到分类器C,然后将分类器C作用于未带标记的训练数据集D2,对D2中的每一条连接记录r,用C对其进行分类(也可能需要人工干预),然后根据分类结果训练分类器C,得到新的C和K。

研究表明:利用未标记数据提高贝叶斯分类器性能的方法是有效的,在使用少量带标记的训练数据对贝叶斯分类器进行训练的基础上,通过对大量未带标记的训练数据进行自动标记从而继续对其进行训练,可以提高贝叶斯分类器的分类性能,从而较好地解决了训练数据集问题。

4 结束语

本文根据Wenke Lee提出的用基于分类的数据挖掘技术建立入侵检测模型的思路,构造了一个基于贝叶斯分类的入侵检测原型系统。尽可能减少了在构造入侵检测系统时手工的特殊的因素,用分类规则代替了对入侵模式和系统行为活动简档的编写,系统属性和系统度量标准的选择是通过系统审计数据采用数据挖掘算法确定的,减少了对专家经验的依赖。另外,入侵检测模型易于更新,将之移植到新的计算环境或处理新的入侵方式只须对新的系统审计数据进行相应的数据挖掘即可。采用贝叶斯分类算法还可以使系统实时性能大大提高。

参考文献:

[1]薛静锋,曹元大.基于贝叶斯分类的分组入侵检测技术研究[J].计算机科学,2005.

[2]郭爱伟,陈立潮, 叶树华.基于贝叶斯分类算法的安全捡测[J].科学情报开发与经济,2006.

[3]唐正军,网络入侵检测系统的设计于实现[M].北京:电子工业出版社,2002.

[4]Jiawei Han, Micheline Kamber Data Mining Concepts and Techniques[M].北京:机械工业出版社,2001.

本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

上一篇:基于动态包过滤的RoQ攻击防御策略 下一篇:多媒体电脑日常维护与故障排除