本发明涉及一种基于漏洞关联性的网络系统主动防御方法,属于信息安全
技术领域:
。
背景技术:
:网络网络系统最大的威胁就是计算机安全漏洞,安全漏洞会存在于软硬件的各个环节,包括系统的设计实现、运行管理、用户的不当操作或系统故障,没有任何一个网络系统可以完全消除漏洞。所以,针对漏洞的研究,不仅要着力于已知漏洞的特点,更要重视漏洞之间存在的关联性。实践表明,漏洞之间往往是有联系的,孤立的漏洞也许不能给系统带来致命的打击,但是如果网络黑客利用其彼此之间的关联,展开二级甚至多级攻击,会给网络系统带来巨大的危害。这种攻击隐蔽性强,而且成功的概率很高。传统的漏洞评估比较看重孤立漏洞对系统的危害,认为危害程度越大的漏洞需要修复的优先级越高,对整个网络系统安全的评估也仅仅是把存在的所有漏洞风险性相加,并没有合理地分析不同安全漏洞之间的关联性。而实际上,真实的网络攻击中,攻击者在发动攻击之初往往并不具备很高的权限,无法直接利用攻击复杂度较高的安全漏洞,一般情况下攻击者通过相对“微小”的漏洞逐步提高自己的特权,最后达到攻击目的。网络攻击图是指计算机网络中有可能会产生的攻击渗透场景的集合,其研究与考察的对象不只是单一孤立的漏洞对系统的影响,而更多的是攻击者利用一个或多个漏洞不断得到特权的提升或转移,从而使攻击行为不断渗透到整个系统,达到最终攻击目的。自攻击图的概念产生以来,研究者们在攻击图的自动创建上花费了很多力气,最早被提出的是基于全局状态的转换模式来生成状态攻击图,在这类图中,节点表示网络和攻击者的当前状态,而有向边表示完成攻击引起的状态变化。状态攻击图一般由枚举法生成,它包含了网络中所有可能出现的攻击路径,便于研究者分析不同攻击路径之间的区别,但这也带来了随着网络规模增大引起的状态爆炸问题。后来由于单调性假设的引入,研究者更多地开始关注基于属性的攻击图生成即属性攻击图。属性攻击图中的节点表示系统属性或原子攻击,而边表示节点之间的因果关系。属性攻击图解决大规模网络数据下状态爆炸的问题,但也存在一些缺点,比如攻击路径中的环形路径的产生、攻击路径比较隐蔽等。统计结果表明,约80%的漏洞与攻击者特权提升有关,实际中权限提升往往是攻击者利用某一漏洞的主要目的。在攻击图的生成过程中,攻击者对某一个漏洞的利用对自身权限产生的变化应该体现在攻击路径上,然而以往的攻击图研究多采取枚举的方式自动生成,没有以明确的攻击者特权变化为前提,存在着系统空间耗费过大、网络爆炸等问题;在基于属性的攻击图生成研究中,又存在需要人工手动标注漏洞前后关联关系或漏洞分类结果不准确等问题,使得算法的实施较为复杂或者生成结果不准确,限制了各类攻击图生成工具的实用性。在攻击路径的挖掘与攻击图的生成过程中,攻击者想要达到某一个目的不一定只有一条攻击路径,很多时候都会有很多种选择。理论上来说,网络管理员理应当去修复系统中出现的所有安全漏洞,但有时由于网络资源或者时长的限制,难以对系统中的漏洞逐一修复,所以有必要去对漏洞修复的紧急程度进行排序,找到最迫切需要修复的漏洞。技术实现要素:本发明的目的是提出一种基于漏洞关联性的网络系统主动防御方法。本发明通过对网络系统中漏洞之间的关系进行最优攻击路径的挖掘,并结合系统当前存在的攻击者与漏洞的可用性评分、影响性评分等多个属性来对漏洞的修复紧急程度进行排序,从而制定主动防御策略。本发明的目的是通过以下技术方案实现的。本发明的目的是提出一种基于漏洞关联性的网络系统主动防御方法,具体操作为:步骤一、构建一个漏洞数据库,收集漏洞记录。选取国家漏洞数据库(nationalvulnerabilitydatabase,nvd)作为数据源,构建一个漏洞数据库。所述漏洞数据库包括:通用漏洞(commonvulnerabilitiesandexposures,cve)编号、通用漏洞评分系统(commonvulnerabilityscoringsystem,cvss)评分、是否需要网络、获取容易程度、是否需要认证、机密性影响、完整性影响、可用性影响、可用性评分、影响性评分、漏洞描述、前提特权集、结果特权集。其中,通用漏洞cve编号、通用漏洞评分系统cvss评分、是否需要网络、获取容易程度、是否需要认证、机密性影响、完整性影响、可用性影响、可用性评分、影响性评分、漏洞描述字段是通过国家漏洞数据库直接获取。漏洞的前提特权集是指攻击者利用所述漏洞所需具备的最低权限,漏洞的结果特权集是指攻击者利用所述漏洞后可以获得的最高权限。特权集类别由高到低排列为:超级系统管理员特权集、普通系统管理员特权集、普通用户特权集、访问者特权集、受限访问者特权集。前提特权集的取值集合为{“受限访问者特权集”,“访问者特权集”,“普通用户特权集”},结果特权集的取值集合为{“访问者特权集”,“普通用户特权集”,“普通系统管理员特权集”,“超级系统管理员特权集”}。步骤二、对网络攻击的相关概念进行描述。在网络系统中,主机是基本的组成部分,也是大量漏洞和用户权限的载体,实际上攻击者不仅可以完成在同一主机内的权限提升,也可以通过权限提升去侵占另一台主机。攻击者利用不同的漏洞的关联达到多级攻击,把多个相关漏洞串联起来的路径叫做攻击路径。下面对攻击者、漏洞信息、攻击规则进行描述。攻击者:对于任意一个攻击者,在一台主机上拥有的权限可以用二元组(hi,granti)来表示,hi表示网络中第i台主机的ip地址,i∈[1,n],n表示整个网络系统中主机的数量;granti表示攻击者在第i台主机上具有的特权集,取值集合为{“超级系统管理员特权集”,“普通系统管理员特权集”,“普通用户特权集”,“访问者特权集”,“受限访问者特权集”}。一个攻击者在整个网络系统中所拥有的权限用符号a表示,a={(h1,grant1),(h2,grant2),(h3,grant3),...,(hn,grantn)},其中(hi,granti)表示所述攻击者在主机hi上具备granti权限。漏洞信息:对于任意一个位于主机hi上的漏洞,用三元组(hi,pre,res)表示,pre表示所述漏洞的前提特权集,res表示所述漏洞的结果特权集。攻击规则:攻击规则表示攻击者对一台主机上的漏洞进行攻击时需要满足的前提条件。用五元组(host1,host2,grant1,grant2,con)来表示一个攻击规则,其中host1表示源主机,host2表示目标主机;con表示主机连接方式,当源主机与目标主机相同时,con取值为“本地”(local),否则取值为“远程”(remote);当con为“本地”时,grant1表示攻击者在源主机内具备的权限,grant2的含义是攻击者能够利用源主机内前提特权集小于或等于grant2的漏洞。当con为“远程”时,grant1表示攻击者在源主机内具备的权限,grant2的含义是攻击者能够利用目标主机内前提特权集小于或等于grant2的漏洞。步骤三、挖掘攻击路径。在步骤一和步骤二操作基础上,挖掘攻击路径,在网络系统中挖掘攻击路径的具体操作步骤为:步骤3.0:确定攻击者待选漏洞集合。扫描当前网络系统内所有漏洞,生成待选择漏洞集合。步骤3.1:对攻击者进行初始化。包括对初始化攻击者自身属性以及初始化攻击者的攻击目的。所述初始化攻击者自身属性具体为:针对任意一个攻击者,生成所述攻击者在整个网络系统中所拥有的权限a,a={(h1,grant1),(h2,grant2),(h3,grant3),...,(hn,grantn)}。所述初始化攻击者的攻击目的是指:人为指定1台以上目的主机以及攻击者在目的主机上想要获取的最低权限。步骤3.2:攻击者在步骤3.0中所述待选择漏洞集合中,从前往后顺序选择出第一个满足攻击条件的漏洞作为出发点漏洞,将其从待选择漏洞集合中移除并放入攻击队列,并用其结果特权集替换攻击者在漏洞所属主机的权限。所述满足攻击条件是指攻击者在所述漏洞所属主机内拥有的权限大于或等于该漏洞的前提特权集,同时小于该漏洞的结果特权集。利用满足攻击条件的漏洞,能够达到特权提升的目的。若待选漏洞集合中没有满足攻击条件的漏洞,则结束操作。步骤3.3:攻击者从待选择漏洞集合中选择出全部满足攻击条件的漏洞,并从中选择可用性评分最低的漏洞。可用性评分最低表示该漏洞被攻击者成功利用的概率最高。如果攻击者未能从待选择漏洞集合中选择到满足攻击条件的漏洞,则清空攻击队列,返回到步骤3.1。步骤3.4:将步骤3.3中所述可用性评分最低的漏洞从待选择漏洞集合内移除并加入攻击队列,用其结果特权集替换攻击者在所述可用性评分最低的漏洞所属主机的权限。该步骤避免了攻击路径中出现环路。步骤3.5:检查攻击者是否获得了步骤3.1所述的攻击者在目的主机上想要获取的最低权限。如果已经获得,表示达到攻击目的,执行步骤3.6的操作;否则,返回到步骤3.3。步骤3.6:将攻击队列写入攻击路径数据库,返回步骤3.1。所述攻击路径数据库包括攻击者和攻击漏洞。经过步骤三的操作,得到攻击路径数据库。所述攻击路径数据库中保存所有攻击者可利用的攻击路径。步骤四、确定网络系统中每台主机的风险等级。在步骤一操作的基础上,设定网络系统中每台主机的风险等级。设定超级系统管理员特权集权值为1.0,若主机中存在攻击者的最高权限为超级系统管理员特权集,则设定所述主机风险等级为1.0,此时系统属于最高风险等级。设定普通系统管理员特权集权值为0.8,若主机中存在攻击者的最高权限为普通系统管理员特权集,则设定所述系统风险等级为0.8。设定普通用户特权集权值为0.6,若主机中存在攻击者的最高权限为普通用户特权集,则设定所述主机风险等级为0.6。设定访问者特权集权值为0.4,若主机中存在攻击者的最高权限为访问者特权集,则设定所述主机风险等级为0.4。设定受限访问者特权集权值为0.2,若主机中存在攻击者的最高权限为受限访问者特权集或不存在攻击者,则设定所述主机风险等级为0.2。步骤五、确定最优攻击路径。根据步骤三得到的攻击路径数据库,确定攻击者的最优攻击路径。具体步骤如下:步骤5.0:将攻击路径数据库中的攻击路径按照攻击者进行分类,然后针对每一个攻击者,执行步骤5.1至5.2的操作,确定所述攻击者的最优攻击路径。步骤5.1:计算攻击路径长度。攻击路径长度指的是攻击路径所包含的攻漏洞个数。选择长度最小的攻击路径为最优攻击路径;若长度最小的攻击路径不唯一,则执行步骤5.2的操作。步骤5.2:通过公式(1)计算攻击路径成功率。攻击路径成功率指的是攻击者成功利用所述攻击路径上所有漏洞的概率,其大小等于该条路径上所有漏洞攻击成功率的乘积。其中,l表示一条攻击路径;pl表示攻击路径l的攻击路径成功率;vj表示路径l上包含的第j个漏洞;j∈[1,m];m表示路径l上漏洞的总数;pvj表示漏洞vj的攻击成功率,通过公式(2)计算。pvj=(10-esvj)/10×100%(2)其中,esvj表示漏洞vj的可用性评分,可用性评分是表示漏洞攻击复杂度大小的具体评分数值,从步骤一所述漏洞数据库中直接得到。通过步骤5.0至步骤5.2的操作,能够得到网络系统中所有的攻击者各自对应的最优攻击路径。步骤六、计算漏洞修复紧急程度。在步骤四和步骤五操作的基础上,计算网络系统中各漏洞的修复紧急程度。对于所述网络系统中存在的一个漏洞(用符号vt表示),计算漏洞vt的修复紧急程度,具体步骤如下:步骤6.0:统计漏洞vt所在最优攻击路径的数量,用符号countvt表示。步骤6.1:利用公式(3)计算漏洞vt的修复紧急程度,用符号urgvt表示。其中,pvt表示漏洞vt的攻击成功率,pvt通过公式(4)计算得到;dvt表示漏洞vt的危害程度,dvt的值取自步骤一所述漏洞数据库中的影响性评分;vt-risk表示漏洞vt的前提特权集;sysrisk表示漏洞vt所在主机的风险等级,漏洞vt所在主机的风险等级sysrisk在步骤四中得到。pvt=(10-esvt)/10×100%(4)其中,esvt表示漏洞vt的可用性评分。vt-risk与系统风险等级sysrisk的差值反映攻击者与漏洞vt的距离,当二者相等时,表示攻击者可以直接利用该漏洞,但是不能理解为漏洞vt的修复紧急程度无限大,因此设定当|vt-risk-sysrisk|=0时,|vt-risk-sysrisk|=0.1。步骤6.2:通过重复执行步骤6.0至步骤6.1,可以得到网络系统中所有漏洞的修复紧急程度。步骤6.3:将网络系统中所有漏洞的修复紧急程度数值从高到低排序。所述排序用于指导网络管理员在有限资源与有限时间内,合理地安排漏洞修复顺序,从而获取最大的防御效率。有益效果本发明提出的基于漏洞关联性的网络系统主动防御方法与已有方法相比较,具有以下优点:①攻击路径挖掘算法很好地结合了基于特权提升的漏洞关联性研究;②给出了漏洞修复紧急程度的动态计算方法,可以指导网络管理员合理安排漏洞修复顺序,达到主动防御的目的。附图说明图1为本发明具体实施方式中网络拓扑图;图2为本发明具体实施方式中基于漏洞关联性的网络系统主动防御方法的操作流程图;图3为本发明具体实施方式中同一主机内攻击路径挖掘漏洞属于同一主机时普通攻击链和admin以上攻击链的数量对比图;图4为本发明具体实施方式中漏洞属于不同主机时普通攻击链和admin以上攻击链的数量对比图。具体实施方式下面结合附图和实施例对本发明技术方案做详细描述。本实施例中的网络拓扑如图1所示。在该网络系统中,防火墙将局域网与恶意的访问者隔开,web服务器server1、数据库服务器server2、主机host1、主机host2与主机host3通过交换机连接并可以通过一定的方式共享信息。使用本发明提出的方法构建网络系统主动防御策略,其操作流程如图2所示,具体为:步骤一、构建一个漏洞数据库,收集漏洞记录。选取国家漏洞数据库(nationalvulnerabilitydatabase,nvd)作为数据源,构建一个漏洞数据库。所述漏洞数据库包括:通用漏洞(commonvulnerabilitiesandexposures,cve)编号、通用漏洞评分系统(commonvulnerabilityscoringsystem,cvss)评分、是否需要网络、获取容易程度、是否需要认证、机密性影响、完整性影响、可用性影响、可用性评分、影响性评分、漏洞描述、前提特权集、结果特权集。其中,通用漏洞cve编号、通用漏洞评分系统cvss评分、是否需要网络、获取容易程度、是否需要认证、机密性影响、完整性影响、可用性影响、可用性评分、影响性评分、漏洞描述字段是通过国家漏洞数据库直接获取。漏洞的前提特权集是指攻击者利用所述漏洞所需具备的最低权限,漏洞的结果特权集是指攻击者利用所述漏洞后可以获得的最高权限。特权集类别由高到低排列为:超级系统管理员特权集、普通系统管理员特权集、普通用户特权集、访问者特权集、受限访问者特权集。前提特权集的取值集合为{“受限访问者特权集”,“访问者特权集”,“普通用户特权集”},结果特权集的取值集合为{“访问者特权集”,“普通用户特权集”,“普通系统管理员特权集”,“超级系统管理员特权集”}。本实施例中各特权集名称对应的特权集描述以及英文标识如图1所示。表1特权集对应英文标识表特权集名称特权集描述英文标识超级系统管理员特权集包括系统最高权限root普通系统管理员特权集访问或修改部分系统文件admin普通用户特权集有自己独立私有的资源user访问者特权集交互数据,扫描系统信息access受限访问者特权集隔离在防火墙外phyaccess步骤二、对网络攻击的相关概念进行描述。在网络系统中,主机是基本的组成部分,也是大量漏洞和用户权限的载体,实际上攻击者不仅可以完成在同一主机内的权限提升,也可以通过权限提升去侵占另一台主机。攻击者可以利用不同的漏洞的关联达到多级攻击,把多个相关漏洞串联起来的路径叫做攻击路径。下面对攻击者、漏洞信息、攻击规则进行描述。攻击者:对于任意一个攻击者,在一台主机上拥有的权限可以用二元组(hi,granti)来表示,hi表示网络中第i台主机的ip地址,i∈[1,n],n表示整个网络系统中主机的数量;granti表示攻击者在第i台主机上具有的特权集,取值集合为{“超级系统管理员特权集”,“普通系统管理员特权集”,“普通用户特权集”,“访问者特权集”,“受限访问者特权集”}。一个攻击者在整个网络系统中所拥有的权限用符号a表示,a={(h1,grant1),(h2,grant2),(h3,grant3),...,(hn,grantn)},其中(hi,granti)表示所述攻击者在主机hi上具备granti权限。本实施例中的网络结构中存在4个攻击者,所述4个攻击者的描述如表2所示。表2当前网络系统存在的攻击者信息描述攻击者权限a1(server1,access)a2(host2,visitor)a3(host1,access)a4(host3,visitor)漏洞信息:对于任意一个位于主机hi上的漏洞,用三元组(hi,pre,res)表示,pre表示所述漏洞的前提特权集,res表示所述漏洞的结果特权集。攻击规则:攻击规则表示攻击者对一台主机上的漏洞进行攻击时需要满足的前提条件。用五元组(host1,host2,grant1,grant2,con)来表示一个攻击规则,其中host1表示源主机,host2表示目标主机;con表示主机连接方式,当源主机与目标主机相同时,con取值为“本地”(local),否则取值为“远程”(remote);当con为“本地”时,grant1表示攻击者在源主机内具备的权限,grant2的含义是攻击者能够利用源主机内前提特权集小于或等于grant2的漏洞。当con为“远程”时,grant1表示攻击者在源主机内具备的权限,grant2的含义是攻击者能够利用目标主机内前提特权集小于或等于grant2的漏洞。在本实施例中,网络系统存在如下攻击规则:规则1:(sever1,host1,user,visitor,remote):攻击者需要在web服务器server1上具备至少“user”的权限,才可以利用主机host1中前提特权集为“visitor”的漏洞。规则2:(host2,host1,admin,visitor,remote):攻击者需要源主机host2上具备至少“admin”的权限,才可以利用主机host1中前提特权集为“visitor”的漏洞。规则3:(server2,host1,user,superadmin,remote):攻击者只需要在数据库服务器server2上达到“user”以上权限,就可以拥有目标主机host1的“superadmin”权限,此时不必对host1的任何漏洞进行攻击。规则4:(host3,server2,superadmin,visitor,remote):攻击者需要获得主机host3上的最高权限“superadmin”后才可以利用数据库服务器server2上前提特权集为“visitor”的漏洞。步骤三、挖掘攻击路径在步骤一和步骤二操作基础上,挖掘攻击路径,在网络系统中挖掘攻击路径的具体操作步骤为:步骤3.0:确定攻击者待选漏洞集合。扫描当前网络系统内所有漏洞,生成待选择漏洞集合。步骤3.1:对攻击者进行初始化。包括对初始化攻击者自身属性以及初始化攻击者的攻击目的。所述初始化攻击者自身属性具体为:针对任意一个攻击者,生成所述攻击者在整个网络系统中所拥有的权限a,a={(h1,grant1),(h2,grant2),(h3,grant3),...,(hn,grantn)}。所述初始化攻击者的攻击目的是指:人为指定1台以上目的主机以及攻击者在目的主机上想要获取的最低权限。步骤3.2:攻击者在步骤3.0中所述待选择漏洞集合中,从前往后顺序选择出第一个满足攻击条件的漏洞作为出发点漏洞,将其从待选择漏洞集合中移除并放入攻击队列,并用其结果特权集替换攻击者在漏洞所属主机的权限。所述满足攻击条件是指攻击者在所述漏洞所属主机内拥有的权限大于或等于该漏洞的前提特权集,同时小于该漏洞的结果特权集。利用满足攻击条件的漏洞,能够达到特权提升的目的。若待选漏洞集合中没有满足攻击条件的漏洞,则结束操作。步骤3.3:攻击者从待选择漏洞集合中选择出全部满足攻击条件的漏洞,并从中选择可用性评分最低的漏洞。可用性评分最低表示该漏洞被攻击者成功利用的概率最高。如果攻击者未能从待选择漏洞集合中选择到满足攻击条件的漏洞,则清空攻击队列,返回到步骤3.1。步骤3.4:将步骤3.3中所述可用性评分最低的漏洞从待选择漏洞集合内移除并加入攻击队列,用其结果特权集替换攻击者在所述可用性评分最低的漏洞所属主机的权限。该步骤避免了攻击路径中出现环路。步骤3.5:检查攻击者是否获得了步骤3.1所述的攻击者在目的主机上想要获取的最低权限。如果已经获得,表示达到攻击目的,执行步骤3.6的操作;否则,返回到步骤3.3。步骤3.6:将攻击队列写入攻击路径数据库,返回步骤3.1。所述攻击路径数据库包括攻击者和攻击漏洞。经过步骤三的操作,得到攻击路径数据库。所述攻击路径数据库中保存所有攻击者可利用的攻击路径。在本步骤的实验设计过程中,选取漏洞数据库bd中2016年内200条linux系统下漏洞数据作为实验样本,为了进行对比实验,将实验样本不规则分成四组,每组中的漏洞个数分别为25、38、50与87个,并设定每组中的漏洞均属于同一主机内。同时,针对每组漏洞数据,分别设置了两种攻击目的,一种是没有任何要求,仅挖掘漏洞数据内存在的所有普通攻击链;另一种是设置攻击目的为必须获取主机内“admin”以上特权,用于挖掘更接近真实情况的admin以上攻击链。因此,对应每种攻击目的和漏洞分组,步骤3.0至3.6的操作共执行了8次,实验结果中普通攻击链和admin以上攻击链的数量如图2所示。从图2中可以看出随着主机内漏洞数量的增长,漏洞关联链的增长速度明显提升,这表明了我们提出的漏洞关联性挖掘算法拥有良好的效果,但也显示了在大规模的漏洞系统中,要注意数据量过大引起的内存不足的问题;而指定攻击目的后攻击链的数量有了明显下降,更符合实际情况。如当主机内存在25个随机漏洞时,出现了48条攻击链,其中可以达到“admin”以上权限的只有20条,而当主机内存在87个安全漏洞时,有284条攻击链,但是指定攻击目的后,整个数量降低到了104条。所以实践中最好是在攻击者初始化阶段指定攻击目的,在一定约束下进行漏洞关联挖掘,这样不仅可以避免大规模网络系统中出现数据量过大影响算法效率的问题,也使得实验结果更加符合实际情况。为了研究在不同主机上本发明方法的实现效果,之后另外选取600条实验数据,与之前的200条漏洞数据合并得到共800条漏洞数据,然后不规则分成4组,每组漏洞数量分别为100、160、200与340个。然后再将每组漏洞数据分别平均分成4个小组,使每个小组中的漏洞分别属于主机host1、host2、host3与server1,用于研究不同主机间攻击路径挖掘。四台主机存在攻击规则(hostx,server,user,access,network),x=1,2,3,即攻击者需要至少具备主机host1、host2与host3上的“user”权限才可以利用主机server1上pre为“access”的漏洞。然后,针对每个小组漏洞数据,分别设置了两种攻击目的,一种是没有任何要求,仅挖掘漏洞数据内存在的所有普通攻击链;另一种是设置攻击目的为必须获取主机内“admin”以上特权,用于挖掘更接近真实情况的admin以上攻击链。因此,对应每种攻击目的和漏洞小组,步骤3.0至3.6的操作共执行了8次,实验结果中普通攻击链和admin以上攻击链的数量如图3所示。由图3可知,算法在不同主机上的挖掘也得到了良好的效果,当主机间漏洞数量较少时,admin以上攻击链的数量也比较稳定,随着不同主机间漏洞数量的增多,不指定攻击目的的攻击路径数量上升趋势非常明显,表示在不同主机间也存在着大量的可利用攻击路径;而在指定攻击目的为获取主机server1上的“admin”权限之后,攻击链数量大大较少,更符合实际中攻击者总是以获取最高特权为目标的情况,此时结果也更为精确。如4台主机各存在25个随机漏洞时,此时的普通攻击链为161条,而指定攻击目的后,攻击链数量降低到了31条;当4台主机各存在85个随机漏洞时,普通攻击链数量达到了728条,而其中可以获得主机server1上“admin”权限的攻击链只有102条。步骤四、确定网络系统中每台主机的风险等级。在步骤一操作的基础上,设定网络系统中每台主机的风险等级。设定超级系统管理员特权集权值为1.0,若主机中存在攻击者的最高权限为超级系统管理员特权集,则设定所述主机风险等级为1.0,此时系统属于最高风险等级。设定普通系统管理员特权集权值为0.8,若主机中存在攻击者的最高权限为普通系统管理员特权集,则设定所述系统风险等级为0.8。设定普通用户特权集权值为0.6,若主机中存在攻击者的最高权限为普通用户特权集,则设定所述主机风险等级为0.6。设定访问者特权集权值为0.4,若主机中存在攻击者的最高权限为访问者特权集,则设定所述主机风险等级为0.4。设定受限访问者特权集权值为0.2,若主机中存在攻击者的最高权限为受限访问者特权集或不存在攻击者,则设定所述主机风险等级为0.2。本实施例中的五台主机对应的风险等级如表3所示。表3网络系统主机风险等级表主机名称风险等级host10.2host20.4host30.4server10.2server20.2步骤五、确定最优攻击路径。根据步骤三得到的攻击路径数据库,确定攻击者的最优攻击路径。具体步骤如下:步骤5.0:将攻击路径数据库中的攻击路径按照攻击者进行分类,然后针对每一个攻击者,执行步骤5.1至5.2的操作,确定所述攻击者的最优攻击路径。步骤5.1:计算攻击路径长度。攻击路径长度指的是攻击路径所包含的攻漏洞个数。选择长度最小的攻击路径为最优攻击路径;若长度最小的攻击路径不唯一,则执行步骤5.2的操作。步骤5.2:通过公式(1)计算攻击路径成功率。攻击路径成功率指的是攻击者成功利用所述攻击路径上所有漏洞的概率,其大小等于该条路径上所有漏洞攻击成功率的乘积。其中,l表示一条攻击路径;pl表示攻击路径l的攻击路径成功率;vj表示路径l上包含的第j个漏洞;j∈[1,m];m表示路径l上漏洞的总数;pvj表示漏洞vj的攻击成功率,通过公式(2)计算。pvj=(10-esvj)/10×100%(2)其中,esvj表示漏洞vj的可用性评分,可用性评分是表示漏洞攻击复杂度大小的具体评分数值,从步骤一所述漏洞数据库中直接得到。通过步骤5.0至步骤5.2的操作,能够得到网络系统中所有的攻击者各自对应的最优攻击路径本实施例中,步骤二所述的网络系统中4个攻击者对应的最优攻击路径如表4所示,4条最优攻击路径包含的漏洞信息如表5所示。表4当前系统存在攻击者与最优攻击路径信息表攻击者最优攻击路径a1v1→v2→v4→v5a2v3→v6→v4→v5a3v7→v8→v5a4v10→v11→v9表5网络系统中的漏洞信息表步骤六、计算漏洞修复紧急程度。在步骤四和步骤五操作的基础上,计算网络系统中各漏洞的修复紧急程度。对于所述网络系统中存在的一个漏洞(用符号vt表示),计算漏洞vt的修复紧急程度,具体步骤如下:步骤6.0:统计漏洞vt所在最优攻击路径的数量,用符号countvt表示。步骤6.1:利用公式(3)计算漏洞vt的修复紧急程度,用符号urgvt表示。其中,pvt表示漏洞vt的攻击成功率,pvt通过公式(4)计算得到;dvt表示漏洞vt的危害程度,dvt的值取自步骤一所述漏洞数据库中的影响性评分;vt-risk表示漏洞vt的前提特权集;sysrisk表示漏洞vt所在主机的风险等级,漏洞vt所在主机的风险等级sysrisk在步骤四中得到。pvt=(10-esvt)/10×100%(4)其中,esvt表示漏洞vt的可用性评分。vt-risk与系统风险等级sysrisk的差值反映攻击者与漏洞vt的距离,当二者相等时,表示攻击者可以直接利用该漏洞,但是不能理解为漏洞vt的修复紧急程度无限大,因此设定当|vt-risk-sysrisk|=0时,|vt-risk-sysrisk|=0.1。步骤6.2:通过重复执行步骤6.0至步骤6.1,得到网络系统中所有漏洞的修复紧急程度。步骤6.3:将网络系统中所有漏洞的修复紧急程度数值从高到低排序,结果如表6所示。表6中给出的是最优攻击路径中包含的漏洞的修复紧急程度的排序,其它漏洞的修复紧急程度的值均为0。表6漏洞修复紧急程度urgv结果表所述排序用于指导网络管理员在有限资源与有限时间内,合理地安排漏洞修复顺序,从而获取最大的防御效率。当前第1页12