(国网河南省电力公司滑县供电公司河南滑县456400)
摘要:本文在贝叶斯网络的基础上对漏洞的安全类型提出了一种新型的模型和方法将漏洞进行自动分类。在研究过程中使用的是贝叶斯网络的算法来自动执行对漏洞分类的过程。通过对漏洞CVE-2014-0928进行自动分类,将自动生成的结果与NVD[1]中的CVE(CommonVulnerability&Exposures)[2]类型进行比对,结果证明使用贝叶斯网络对攻击漏洞进行自动分类,能够更加快速的帮助网络管理员实时了解网络中存在的安全漏洞及风险级别,有利于提升网络安全水平。
关键词:贝叶斯网络;CVE;CVSS;NVD;条件概率分布
1概述
漏洞是由于计算机系统设计者的粗心、错误执行、维护不当或者操作不当引起的安全缺陷。漏洞方面的研究主要集中于对以前未知的漏洞的发现和通过一些度量标准对系统的安全进行量化。漏洞管理领域的研究主要集中在良好定义的过程和自动化的工具,以使信息系统更加安全并且遵循各种规则,包括识别、评估、确定优先次序、分类和减少漏洞。漏洞分类就是基于一些确定的标准将安全漏洞分类分组到不同的类别。对于漏洞管理来说,漏洞分类是相当重要的研究内容,因为漏洞分类可以为漏洞的减少提供帮助。
本文对安全漏洞的分类是基于漏洞的类型,即内部的软件安全缺陷。这项研究的主要难点在于基于可用的漏洞信息实现漏洞分类的自动化执行过程。由于现在漏洞的数量越来越多,并且缺乏掌握安全漏洞管理专业知识和漏洞信息的专业人员,因此对于漏洞的手动分类变得更加的困难。
在此之前,也有很多研究者对漏洞分类进行研究,并且得到了一些漏洞分类方面的研究成果。例如:Dr.MattBishop提出了基于Unix脆弱性的分类,包括六个评价标准:漏洞的性质、漏洞引入的时间、漏洞的利用域、漏洞的作用域、利用该脆弱性需要部件的最小数和鉴别脆弱性的地方,分类情况如表1所示。IvanVictorKrsul在软件漏洞方面创建了一种使用决策树的分类方法,通过这种方法将每个安全漏洞分类到先验的漏洞类别中。H.S.Venter和J.H.P.Eloff确定了一套包括十三个统一的漏洞类别的系统,代表整个漏洞的范围,如表2所示。然而,以上3种方法都需要具有专门知识的专业人员手动分配漏洞的类别,随着漏洞种类的增加,手动的方法会越来越困难。考虑到在NationalVulnerabilityDatabase中已经收录了大量的软件漏洞并且目前每天都有大量的漏洞被研发人员发现,这就导致了用上面的手动的方式对漏洞进行分类越来越困难。H.S.Venteretal提出了一种数据聚类的算法,即Self-OrganizedMap(SOM),使用这种方法来自动生成标准化的漏洞类型。M.Tupper也使用以SOM为基础的数据聚类算法来创建漏洞类别,他使用n-gram技术与上面的算法进行区别,使用漏洞数据源生成SOM的输入。
配置错误
本文主要证明使用贝叶斯网络的方法将软件漏洞自动的分到不同的漏洞类型中的可行性。研究过程主要是利用NVD中的标准化的漏洞信息和采用CWE作为标准的漏洞类别,将漏洞自动分类到标准化的漏洞类别中。
2漏洞分类模型
本文为了描述软件安全漏洞的问题构建了一个贝叶斯[6]网络,并且此网络支持分类。根据现有的NationalVulnerabilityDatabase中可利用的漏洞数据构建贝叶斯网络[3]。贝叶斯网络为解决问题的不确定性提供了一种统计方法,其中关于问题域必须要有足够的数据作支撑。从NationalVulnerabilityDatabase中,我们得到了贝叶斯网络方法所需要的数据。基于NVD构建的网络方法可以使得我们在实践中得到一些有用的证据,以便确定漏洞的类型。
为了方便贝叶斯网络的描述,在NVD的XML格式下的漏洞信息中,每个漏洞都有一个被称为CVE标示符的唯一的标示符,即在NVD中的<vuln:cve-id>元素,如果这类漏洞已经被确定,那么它的类型信息将会用<vuln:cwe>元素来代表。NVD的漏洞分类方案目前普遍采用的是19CWEs。每个安全漏洞还包含一组代表漏洞的内在和基本信息的CVSS(CommonVulnerabilityScoringSystem,漏洞通用评分系统)基本度量分数。
根据贝叶斯[7]规则得知,可以基于实测中得到的知识来得出关于隐藏变量的结论。因此,如果在漏洞分类的过程中使用贝叶斯网络,漏洞类型是我们需要推测出的隐藏变量,剩余的NVD漏洞数据信息可以被当作观察变量。
本文中,选择了漏洞产品和CVSS基本度量分数作为观测变量。原因:1)每个漏洞必须是在至少一种软件产品[4]中被发现,不同的软件产品往往都会受到相同的漏洞类型的影响[8];2)根据CVSS的V2规范,CVSS基本度量组代表的是与漏洞类型直接相关的漏洞固有属性。这两个观测变量与隐藏变量有一定的因果关系。贝叶斯网络的相应的图形化表示如图1所示:
图1对漏洞分类的传统贝叶斯网络
Fig.1ThetraditionalclassificationofBayesiannetworkforvulnerability
图中:“Type”节点是我们需要推测出来的隐藏变量,它是一个包括19个离散值的离散随机变量,对应于NVD中采用的19CWEs[5]中的漏洞类型。“Product”节点代表的是容易遭受攻击软件产品,“CVSSBaseScore”节点代表的是漏洞的CVSS基本度量分数。通过这个模型,就可以回答这个问题:基于漏洞软件产品和漏洞的固有属性,可以得出该漏洞属于某种特定的漏洞类型的概率是多少。
然而,这个模型存在一个问题:漏洞存在不同的软件产品中,很难得出随机变量“Product”的概率分布。为了解决这个问题,为每一个软件产品创建一个贝叶斯网络。通过这种方法,就可以计算产品被某种类型的漏洞攻击的概率。同时,将“CVSSBaseScore”节点扩展到六个节点,每个节点都是代表CVSS基本度量组中的度量单位。改进后的模型如下图2所示:
3分类过程
本文是将Web网站作为示例产品来证明分类模型的正确性和可行性。对于该Web网站的漏洞信息检索和每个随机变量的概率分布,使用的是现有的基于Web的安全漏洞评估工具WebOSAT,贝叶斯网络建模和推理,使用的是微软信任网络。整个过程分为4个步骤:
3.1检索WEB网站中的漏洞信息
为了计算漏洞知识的概率分布,需要收集NVD中与Web网站中相关的漏洞。这个步骤是使用基于Web的漏洞评估工具WebOSAT。检测NVD漏洞结果可以显示出,一共有482个相关漏洞被检索出来。
3.2计算类型的先验概率分布
由公式(1),需要计算P(T),也就是检索出来的漏洞类型的先验概率分布。由图表3,可以得出,T有19种可能的值,则T的先验概率可以由公式(2)计算出。公式(2)如下:
4结论
由于目前存在软件产品中的漏洞的数量越来越多,类型种类也越来越多,但是掌握漏洞管理和漏洞分析的专业化知识的专业人员相对来说比较少,因此漏洞分类的智能化是将来对漏洞进行管理的重要手段。本文主要是立足于可用的漏洞信息实现漏洞分类的自动化执行过程。该研究主要是使用了贝叶斯网络算法来实现软件产品中的安全漏洞的自动分类的智能化过程,使用CVSS对漏洞的固有属性进行评分,很大程度上降低了知识获取和概率推理的复杂度。实验结果证明了使用贝叶斯网络对漏洞进行自动分类,不但自动生成的结果与NVD中的CVE类型相符合,还提高了推理的效率,减少了解决问题的成本,具有重要的使用价值。
参考文献
[1]肖秦琨,高嵩.贝叶斯网络在智能信息处理中的应用.国防工业出版社,2012.
[2]http://www.cve.mitre.org/
[3]刘胜娃,高翔,王敏.基于贝叶斯网络的攻击图方法在网络安全评估中的应用.现代电子技术,2013,(9)