基于改进朴素贝叶斯的入侵检测方法*
孙 程,邢建春,杨启亮,韩德帅
【摘 要】工业控制系统的网络安全问题越来越严峻,遭到的入侵威胁也越来越复杂。伴随着网络的开放性、复杂性不断增强,入侵威胁正在不断加深。为了抵御愈趋复杂和多样的入侵威胁,需要设计高效的入侵检测方法。朴素贝叶斯分类算法是一种有效而简洁的分类算法,能较好地应用于工业控制系统网络的入侵检测。但是它的属性独立性假设使得该方法无法表示属性变量之间存在的关系,影响了它的分类效果。针对该缺陷,借鉴前人的经验,提出了一种改进综合加权系数的朴素贝叶斯分类算法(Compositive Weighted Naive Bayes Classification,CWNBC)。该算法既考虑了不同属性取值对分类结果的影响,又考虑了属性值的内容对分类的影响,巧妙地引入了综合加权系数。将该算法与其他几种算法比较,经实验表明,该分类算法有较高的分类准确率,能更好地适用于比较复杂的工业控制系统网络的入侵检测。 【期刊名称】微型机与应用 【年(卷),期】2017(036)001 【总页数】4
【关键词】朴素贝叶斯;加权系数;属性值
0 引言
网络技术的飞速发展在给人们的生活带来极大便利的同时,也给人们带来了较大的安全威胁。随着网络的开放性和复杂性不断增强,工业控制系统(Industry Control System,ICS)面临的安全问题也日益凸显,遭到的入侵威胁不断增大。 入侵检测是ICS的网络安全防御中重要的组成部分,是保护系统安全的重要手段,
一直被国内外专家学者所关注。入侵检测技术是一种要找出能够危害信息资源完整性、机密性和可用性的安全措施[1]。入侵检测的目的是在海量的未知网络事件数据中,将正常事件(Normal)和异常事件(Anomaly)精确分类,达到发现网络攻击事件和降低误报警率的目的[2] 。入侵检测技术一般可分为两种:误用检测和异常检测。误用检测指的是根据已知的攻击方法来预先定义入侵模式,通过判断这些入侵模式是否会出现来完成检测任务。误用检测的缺点在于其局限于已有知识的检测范围,不能检测出已有知识之外的攻击行为。异常检测指的是根据资源的使用状况或使用者的行为来判断是否遭到入侵,而不是依据具体的行为是否出现作为检测的标准,相对而言,异常检测的适用性比较强,可以检测出陌生的攻击行为,不像误用检测那样受限于已知的攻击手段,其主要的缺陷是误检率较高,尤其在用户较多、工作条件、系统参数、网络结构等各种因素时常变化的环境中[3-5]。目前,有较多的有效的入侵检测分类模型被提出。如文献[6]提出了结合误用检测与异常检测的混合入侵检测模型,文献[7]提出了结合网络协议分析技术和决策树挖掘技术的一种新型模型,文献[8-10]将其他学习算法运用于入侵检测中,如支持向量机、遗传算法、人工神经网络等。
为了提高朴素贝叶斯分类器的性能,使其能更好地适用于ICS网络的入侵检测,基于前人的研究,本文提出了一种改进综合加权系数的朴素贝叶斯分类算法(Competitive Weighted Naive Bays Classification,CWNBC),该算法是在传统的朴素贝叶斯分类模型的基础上加入了综合加权系数,该综合加权系数融合了协方差理论与文献[11]提出的加权系数,这弥补了文献[11]仅考虑属性的频数关系,而忽略了属性值的内容对分类的影响这一不足之处,使文献[11]中原本简洁高效的算法更加完善。
1 朴素贝叶斯分类算法
朴素贝叶斯分类算法是一种较为简单而且有效的分类方法,它以贝叶斯定理作为理论基础,其性能与神经网络、决策树等应用较广的算法相当,在某些领域中甚至可表现出更优越的性能[12-13]。
朴素贝叶斯分类算法的分类原理是根据某个对象的先验概率计算出其后验概率,后验概率最大的类则为该对象所属的类。其工作流程如下: (1)用特征向量来表示每个数据样本。
(2)对原始数据样本X进行分类, 一般把X划分到后验概率值最大的类, 本质上就是求P(Ci|X)的最大值。即: (1)
(3)要求P(Ci|X)的最大值,只需使P(X|Ci)P(Ci)最大化即可。如果不知道先验概率,一般认为它们是等概率的,即P(C1)= P(C2)=…=P(Cn)。否则,可根据概率学的知识由先验概率公式计算出: (2)
其中,Si为训练样本数,S为训练样本总数。
(4)在属性集的属性数比较多的情况下,为了减少计算时间,一般假设类条件相互独立,即各个属性值之间相互独立。 (3)
若Ak是离散属性,可由式(4)计算出概率: (4)
其中,Sik表示属性Ak的取值为xi且属于类Ci的训练样本的数目,而Si则表示类Ci中的训练样本的总数。