本站小编为你精心准备了安全评估论文:高效的网络安全评定方式探微参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
作者:王春露王彦丞单位:北京邮电大学计算机学院北京邮电大学可信分布式计算与服务教育部重点实验室中国工商银行数据中心网络部
相比于分析单个弱点的脆弱性,基于模型的评估方法能更好的模拟攻击者行为、表达弱点关联性。尽管这些方法改善了网络安全评估的效果,但当前工作仍有以下缺陷:
(1)非自动化。虽然攻击图生成已经实现了自动化,具备高可扩展性,但是网络安全评估的其他部分仍需手动完成。评估依赖的数据库(Bugtraq,/)并不包含弱点的“前提”和“结果”属性,弱点关联关系需要从弱点描述字段手动提取。
(2)评估效率。当前的网络安全评估仍集中在机器数比较少的小规模网络,为了获取比较准确的分析结果,必须使用较复杂的评估模型,计算复杂度也会随之提高。在评估有效性和评估规模之间,大部分工作选择的是前者。因而,如何简化评估模型,将评估方法推广到大规模网络是一个亟待解决的问题。本文提出了一种高效的网络安全评估方法。在已有工作基础上解决了三个关键问题:
(1)将变量消元算法应用到贝叶斯网中,不构建联合概率分布表,直接计算评估结果。通过变量消元使提高了评估的效率,评估规模从原有的数十台提升到数千台。
(2)提取弱点信息,构建弱点的前提和结果集,同时整合当前主流的弱点数据库,形成一个包含弱点详细信息的量化关联数据库。
(3)提出一种基于原子域的攻击图计算方法,简化了攻击图生成和评估模型的计算。本文组织结构如下:第2章介绍基本思想;第3章讨论弱点关联数据库的构建;第4章给出原子域的攻击图生成方法;第5章提出基于变量消元的贝叶斯网评估模型;第6章通过真实环境下大量实验,验证本方法的有效性;第7章是总结与进一步工作。
基本思想
获取当前网络脆弱性信息是安全评估的前提,在此基础上利用攻击图模拟入侵者行为,进而通过量化评估模型分析攻击者在当前安全策略下所有可能的行为和后果,评价网络的脆弱性,提出加固建议。
图1是本评估方法的简单流程。数据存储池包括弱点数据库和从网络管理员获得的配置信息(如网络拓扑、访问控制策略等)。此部分信息是生成攻击图,构建网络评估模型的基础。弱点扫描器包括控制服务器端和客户端。客户端安装在每台待评估机器上,由服务器端控制,对系统进行扫描,获得当前网络包含的所有弱点和它们的量化概率信息。之后,攻击图生成系统将弱点关联,利用基于原子域的攻击图生成方法生成攻击图和贝叶斯网。以此为基础,通过变量消元和贝叶斯推理,计算评估维度并显示评估结果,给出安全加固策略。
弱点关联数据库
1弱点数据库创建
计算机的弱点通常指软硬件设计或策略上的缺陷,使得攻击者可以在未授权的情况下访问系统。一个好的弱点数据库不仅能从多方面描述一个弱点的详细信息,而且是攻击图生成和网络安全评估的基础。虽然有的研究工作根据经验手动构建漏洞库,能较准确的反映弱点某一方面的特征。但是此类数据库由于人力有限,不可能包含当前所有弱点的详细信息。同时,弱点信息不断更新,新的弱点会不断出现,如何保证数据库的实时性是一个难点。
另一个构建漏洞库的难点是如何提取弱点的关联信息。攻击图的生成是一个将网络中一系列弱点进行关联的过程,通过攻击路径模拟攻击者可能的攻击行为。因此,为了自动化生成攻击图,必须有一个能反映弱点关联关系的数据库。一个弱点的前提集是指攻击者要利用这个弱点实施攻击,必须满足的前提条件。弱点的结果集是指攻击者利用这个弱点成功完成攻击后,所能取得的权限提升或对主机和网络造成的破坏。如果数据库中的每一个记录(弱点)都有前提和结果信息,就可称之为关联数据库。
本文采用美国国家漏洞库(NationalVulnerabilityDatabase,nvd.nist.gov/)作为数据库的主要信息来源,在此基础上结合其他弱点信息,构建一个综合的关联弱点库。同时使用一个器,每隔一段时间下载新出现的弱点。采用NVD的原因在于,它是迄今为止最完整的漏洞库,与美国国家标准局(NIST)制定的CVE标准()兼容。以NVD为基础,系统整合了其他数据库的弱点信息(如攻击脚本,加固策略等)。具体来说,从NVD提取的弱点信息占50%,从Bugtraq提取的弱点攻击脚本和解决方案占25%,CERT/CC(www.us-cert.gov/)包含的量化弱点信息占10%,其他信息占15%。表1表示该数据库中弱点编号为CVE-2010-3847的部分信息。
2弱点关联信息提取
前提结果集不仅反映了一个弱点潜在的威胁和攻击复杂度,也是构建攻击图、进行网络评估的基础。为了简单起见,我们用权限表示弱点的关联信息。这里的权限分三种:无(none),用户(user),管理员(root)。图2表示的是从NVD数据库中提取的弱点信息。通过“攻击向量”的描述,可以知道如果一台主机有这个漏洞,攻击者可以通过任何与它有网络连接的机器发起攻击。因此,该弱点的前提属性是“无”(none)。通过“利用结果”属性,得出攻击此漏洞可以获得管理员特权。所以,该弱点的结果集是“管理员”(root)。
接着通过一个java程序,将这些关联信息导入到数据库。除了关联性,系统数据库还包括弱点的量化信息。图2中的“攻击复杂度”属性值为“低”,在通用漏洞评估系统(commonvulnerabilityscoringsystem,CVSS,/cvss/cvss-guide.html)中,攻击复杂度是一个包含三个值的枚举变量,即:0.31(H),0.61(M)和0.71(L)。所以,攻击者成功利用该弱点的概率为0.71。
单个弱点的概率信息是进行概率推理、计算评估结果的基础,一些研究者利用经验设定一个弱点被利用的概率。但是弱点数据库可能包含上万条记录并不断更新,手动部署量化信息比较困难。虽然本数据库设定的弱点利用概率值只能是0.31、0.61或0.71,但弱点的重要程度是相对的。通过这种方式构建量化数据库不仅能使评估自动化,而且能比较准确得反映弱点的相对重要程度。基于以上技术,系统使用MySQL创建了包含46953条记录的弱点数据库,每条记录包括弱点的基本信息、前提结果集和量化信息。
3基于弱点数据库的扫描器
为了分析待评估网络的脆弱性,系统以开源弱点评估语言(openvulnerabilityandsssessmentlanguage,OVAL,/)为核心构建弱点扫描器。选择开源弱点评估语言的原因在于它是通用的弱点描述语言,描述方式符合CVE标准,方便从数据库中提取信息。其次,扫描客户端安装在每台机器上,能以管理员身份查找漏洞。考虑到评估网络的重要性和安全性,安装扫描器的代价是可接受的。除了主机扫描,系统还集成了网络扫描器Nessus,从单个系统和整体网络两方面检查漏洞信息,为网络评估提供详细的弱点列表。
攻击图生成
攻击图描述了入侵者利用弱点逐步达到目标的过程。本文提出了一种原子域构建攻击图的方法,简化了攻击图生成过程。该方法分两步:原子域初始化和攻击图生成。
1原子域初始化
原子域指的是特定主机的特定权限。为了对网络建模,首先设定每个原子域的可用弱点集合。通过分析与攻击者相连的所有主机组成的小网络,可以初始化攻击者的原子域。接着按照同样的步骤初始化其他原子域,通过把一个大网络分解成一组原子域,实现攻击图生成的简化。当网络结构或配置发生改变时,只需要更改相应的原子域,图3是一个例子网络[8]。表2是这个网络包含的所有弱点信息,包括它们的利用条件和所在主机。表3显示的是原子域初始化结果,也就是每个原子域的可用弱点集合。其中IpDUser表示了IpD机器的User权限。按照攻击图生成的单调性假设:攻击者不会发动不能使他权限提升的攻击,因此ipWRoot的可用弱点集合不包含“ap”。
2攻击图生成
当所有原子域初始化完毕,系统就可以通过原子域间的通信生成攻击图。首先从攻击者所能访问的原子域开始,分析攻击者所能发起的攻击,激活和当前原子域相邻的子网络中包含的原子域。接着以相同的方式,按广度优先原则激活每个原子域和它相邻的原子域组。当所有的原子域激活,攻击图生成过程结束。图4是该网络的攻击图。每个节点代表一个原子域(ip3Root表示主机3上的Root权限),每条边代表攻击者利用弱点实施的一次权限提升攻击。由于采用单调性假设,所以攻击图中没有回边。
基于优化贝叶斯网的评估方法
1评估模型的建立
为了进行网络安全评估,需要一个定量分析模型计算当前网络的脆弱性,本文使用贝叶斯网结合贝叶斯推理完成这一任务。为了方便将攻击图和贝叶斯推理结合,引入贝叶斯攻击图的概念,并做如下定义:定义1设X表示一组离散变量集{X1,…,Xn},集合中每个变量的祖先变量是Pa1,…,Pan。条件概率分布表(CPT)指明了每个变量所包含的条件概率分布(CPD)如果攻击图和用概率分布表表示的量化信息结合,就可称为“贝叶斯攻击图”。图中的每个变量代表一个伯努利随机变量Xi,P(Xi=T)表示攻击者成功达到目标的概率,每条边表示入侵者利用弱点发动的攻击,而概率分布表表示了节点之间的概率依赖关系。正如前面所述,本文使用通用弱点评分系统中的“攻击复杂度”表示一个弱点被成功利用的概率。虽然这种方法只能表示0.31,0.61和0.71三个值,但这并不影响评估结果。因为我们更关注一组弱点的相对威胁程度,而不是单个弱点的重要度。一些已有的工作使用通用弱点评分系统的“基本分”(BasicScore,BS)表示弱点被利用的难易度。他们将基本分除以10,用得到的0到1之间的值表示该弱点被攻击者成功攻击的概率。虽然此方法能从扫描结果中自动提取量化信息,但弱点的基本分除了包含一个弱点被利用的难易程度,还表示该弱点被攻击后可能造成的破坏程度和影响。很多弱点的基本分是10,并不表示这些弱点被成功利用的概率是1。
在构建贝叶斯网过程中,应用了一个通用的假设:给定一个变量X,X的祖先节点独立影响X的状态,即,每个节点的条件概率不受其他节点的影响。已有的工作通过修改概率信息消除上述假设,Bobbio等通过关联条件概率分布表解决这一问题。为了方便起见,本文不讨论这种情况。图5是一个包含三个原子域A、B、C的贝叶斯攻击图,e1和e2表示原子域之间的依赖关系,每条边对应主机C上一个弱点。图的右边表示节点C的条件概率表,其中C=1表示该原子域激活成功,P(e1)和P(e2)是从数据库中提取的弱点攻击概率。当每个节点部署完概率信息后,就可以通过贝叶斯推理计算评估维度。
2评估维度
评估维度决定了评估的方向和结果,为管理员加固网络提供了重要的依据。由于网络安全分析和故障分析有相同的目标和类似的过程,所以借用故障分析理论提出两个评估维度:顶事件不可靠度和底事件重要度。定义3(顶事件不可靠度)在一个贝叶斯网中,顶事件指一个与管理员规定的安全属性有关的状态,表示攻击者成功达到目标的可能性。给定一个贝叶斯顶事件不可靠度表示了当前网络的整体安全状态。如果网络管理员根据系统给出的安全建议,应用了加固策略,再次运行评估系统,将会发现顶事件不可靠度降低,系统整体安全性提高。
定义4(底事件关键度)底事件是造成网络不安全状态的根本原因。在一个贝叶斯攻击图(S,τ,S0,ss)中,底事件对应于S0。不失一般性,我们假设系统中存在多个状态s10,s20,…,sj0。底事件sk0的重要度是一个后验概率:本文提出的底事件计算方法不同于文献。
Wang等人用逻辑表达式表示顶事件,式中的每个谓词代表一个初始条件(即底事件)。虽然他们的评估方法能给出加固策略,但仍是一种定性评估。在贝叶斯评估模型中,底事件关键度是一个量化值,表达了对顶事件的影响程度。通过比较可知道如果攻击者完成攻击目标,最有可能从哪个底事件发起攻击。另一个不同点是本文提出的计算方法不是通过图搜索而是贝叶斯推理。如果当前网络弱点信息发生改变,不需要重新生成攻击图,只需要改变相应节点的条件概率表再进行一次推理。相比于攻击图生成,贝叶斯推理代价更小,简化了评估维度的计算。
3基于变量消元的评估维度计算算法
本节首先介绍变量消元的原理和使用变量消元降低推理复杂度的原因,接着给出评估算法。
3.1消元运算以图6中的贝叶斯网为例,考虑计算P(D),有假设所有变量均为二值,则上式的计算复杂度如下:P(A)与P(B|A)需要做4次数字乘法,其结果与P(C|B)相乘需要做8次数字乘法,它的结果再与P(D|C)相乘需要做16次数字乘法。所以总共需做28次数字乘法。
为了利用联合概率分布的分解来降低推理的计算复杂度,注意到在式4右边的4个因子中,只有P(A)和P(B|A)与变量A有关,而变量C也只出现在因子P(C|B)和P(D|C)中,所以有式(5)的计算复杂度如下:P(A)与P(B|A)相乘需要做4次数字乘法,然后消去A需要做两次数字加法,同样的,消去变量B和变量C也分别需要4次乘法和两次加法,所以乘法总次数为12,加法总次数为6。
比式4复杂度低。变量消元之所以能降低复杂度,主要是因为它使得运算可以局部化,每一步计算只关注单个变量和与它直接相连的变量。在上面的例子中,运算局部化大约节省了一半的运算量。在变量众多的网络中,节省可能是指数级的。
3.2评估算法
图7给出的是基于变量消元的网络安全评估算法。开始时为每个节点构建条件概率分布表,接着利用变量消元计算底事件不可靠度,在计算过程中得到顶事件不可靠度。
3.3算法复杂度分析
变量消元的复杂度与消元顺序有关,本文使用最小缺边搜索确定消元顺序。在变量消元算法中,最耗费事件和空间的步骤是对消元操作的调用(图7算法中第8到第13行)。从f中挑出所有涉及X的函数{f1,f2,…,fk},将它们相乘得到中间函数g,再将X从g中消去。设X1,…,Xl是g中除X之外的变量,如果把函数表示成多维表,则g所存储的函数值的个数这便是变量X的消元成本。因此,算法的复杂度与当前的贝叶斯网结构有关。相比于通过联合概率分布分析网络脆弱性,这种局部化推理简化了计算过程。大量真实环境下的测试表明,基于变量消元的评估方法能使评估复杂度降低,评估规模从原有的数十台提升到数千台。
测试
本章通过一个真实环境下的实验,验证所提出的方法有效性。试验网络环境如图8所示,其中防火墙将网络分为2个部分:攻击者所在的网络和运行关键数据服务的局域网。假设攻击者从防火墙外部发起攻击,防火墙设定的访问规则如下:攻击者只能直接访问四台机器:Ip1,Ip2,Ip3和Ip4。Ip15是数据库服务器,攻击者最终的目标是破坏作用数据库,因此Ip15是目标主机。基本事件的先验概率设置如下时基于原子域的攻击图也随着扫描进行而产生。图9显示了该实验环境下的攻击图。它包含了4个底事件(图中椭圆形阴影标注)和1个顶事件(图中最底部节点)。通过使用前面的算法,我们建立了贝叶斯攻击图。然后,使用贝叶斯推理来计算评估指标。整个过程耗时29秒。实验结果如下:1)网络的可靠度是0.4。
也就是说,攻击者能达到攻击目标的概率是0.4;2)最关键的主机是IP3(图10)。修补这一主机上的漏洞将能有效地提升网络安全性。我们在网络中增加了5台主机,然后重复上述实验。图10显示的结果如下:1)顶事件的可靠度是0.31。
说明当主机数目增加时,攻击者实现攻击目标的可能性随之增大。2)最关键的底事件是ip3;和15台机器的实验相比,底事件之间的重要度差距明显增大了。
说明随着主机数的增加,底事件对顶事件的影响被弱化了。我们基于本方法开发了一个评估系统,在北京邮电大学校园网络环境下对系统做了测试,测试结果如图11所示。横坐标表示待评估网络中包含的主机数,从300到3000。纵坐标代表网络评估阶段所需时间,单位是秒。结果显示系统整体性能符合线性增长,评估时间随主机数的增大而增加,3000台机器需要16秒左右的评估时间。
总结与进一步工作
本文在对网络安全深入研究的基础上,提出了一种量化的网络脆弱性分析方法,解决了网络安全评估中的若干关键问题。实验结果证明该方法能够分析当前网络的脆弱性,评估结果能有效得帮助管理员改善当前的网络状态。通过变量消元优化了评估模型,提高了评估速度,使评估方法能够适用于更大规模的网络环境。未来的工作仍集中在对评估算法的优化和改进。除了变量消元,还有桶消元、团树传播等贝叶斯推理优化算法,将这些算法应用到网络安全评估领域,比较并选取最适合安全评估的一种算法将是非常有意义的研究课题。