时间:2016-02-25 10:43 文章来源:http://www.lunwenbuluo.com 作者:李艳,黄光球 点击次数:
b)根据某一合理的相似度定义,确定初始状态至目标状态节点之间的连接子图集合SAG={〈SAGi,ti〉|1≤i≤n,ti∈T}及相似分段集合P={s1,s2,…,sk};
c)根据相似分段集合的结果以及段内典型子图选取规则(攻击收益最大或者攻击成本最小)确定攻击演变模式集合EPG={〈RCi,ti〉,1≤i≤k};
d)根据确定的攻击演变模式集合,进行安全性分析确定攻击演变过程中的关键节点或路径,进而采取相关的防范措施。
2.1演变图集合生成算法
根据演变攻击图的定义和相关的分析过程,演变攻击图的生成过程实际上是攻击者自初始状态开始向目标节点逐步进发的过程。这里将攻击的步时作为演变时刻,以广度优先的方式刻画攻击者利用脆弱性或权限等其他连接方式提升自己攻击范围的过程。为了对攻击程度进行量化,本文采用文献中的描述将系统的损失作为原子攻击的收益,即cost=AL×criticality×(costI×pI+costc×pc+costA×pA)(1)其中:AL是攻击致命度,代表某类攻击所能具有的危害程度(用0~10的数值来表示);criticality是攻击目标的资源损失;costI表示资源属性中的完整性代价;pI表示资源对于完整性代价的偏重;costC表示资源属性中的机密性代价;pC表示资源对于机密性代价的偏重;costA表示资源属性中的可用性代价;pA表示资源对于可用性代价的偏重;并且pI、pC、pA之间满足pI+pC+pA=1的关系。
算法1演变攻击图集合生成算法
输入:能够描述网络初始状态及攻击者初始连接状态的部件攻击图CAG0。
输出:EAG={〈CAGi,ti〉|1≤i≤n,ti∈T}及每一次攻击的收益。
2.2攻击演变挖掘算法
通过算法1生成了部件攻击图CAG在攻击演变时间内的攻击演变图集合EAG={〈CAGi,ti〉|1≤i≤n,ti∈T},在假定攻击目标节点的前提下,需要通过三个步骤确定攻击过程中演变模式集合:a)SAG={〈SAGi,ti>|1≤i≤n,ti∈T}的生成,即初始节点至目标节点的演变连接子图集合;b)通过某一个具体的相似度函数计算演变子图之间的相似度;c)根据相似度的计算结果找到攻击演化过程中的最优相似分段集合。
已经有大量关于图相似度的计算方法,在本文的应用中试图通过一种量化的衡量手段来说明自初始节点至目标节点攻击结构的相似程度,因此参照文献的方法给出相似度的计算式。在此计算公式中分子是两个连接子图最大连通分支的数量,分母是两个连接子图中最大的部件节点数。显然式(2)的度量满足定义7中的相关性质要求。
sim(SAGi,SAGj)=|Ei∩Ej|max(|Ci|,|Cj|)(2)在相似度公式的基础上,本文将某一个相似分段Si内的所有连接子图的平均相似程度作为段内相似度,将Si内的连接子图与不在分段Si内所有连接子图之间的平均相似程度作为段间相似度。
sim(Sinsidei)=2|Si|ΣSAGi∈Si,SAGj∈Si,Si≠Sjsim(SAGi,SAGj)(3)sim(Soutsidei)=ΣSAGi∈Si,SAGj?Sisim(SAGi,SAGj)|Si|(N-Si)(4)
算法2攻击演变挖掘算法
输入:攻击演变图集合EAG={〈CAGi,ti〉|1≤i≤n,ti∈T}和原子攻击收益。
输出:演变连接子图集合及最优相似分段集合。begin1fori=1ton{2使用CePs算法[14]寻找连接子图SAG={〈SAGi,ti〉|1≤i≤m,ti∈T}}//计算连接子图之间的相似程度19Bi=Bj-1+B(SAGi,j)20S[i]=j}//生成最优分段和相似集合21initializeP=Null//初始化堆栈为空22intt=n23while(t>0){24push{〈SAGs[t],ts[t]〉,〈SAGs[t]+1,ts[t]+1〉,…,〈SAGt,tt〉}intoP25t=s[t]-1}26while(!Empty(P)){27pop(P)}//输出位于栈顶的最优分段集合28for(i=1tok){29Ti=[tl,tr],其中St={SAGl,SAGl+1,…,SAGr}30RCi=maxCost(SAGl)}//取整条路径原子攻击收益和最大的作为本阶段的代表end在算法1中使用广度优先的算法计算演化攻击图集合,所以其时间复杂度为O(|C|+|E|)。在算法2中第1~5行计算子图之间的相似度时间复杂度为O(ClogC+ElogE);第6~14行计算段内和段间相似度,采用双重循环,所以时间复杂度为O(n2);第15~20行计算分段的损失值,时间复杂度为O(n2);第21~30行生成最优分段和相似分段集合时间复杂度为O(n)。使用算法1和2可以完成本节开始时应用演变攻击图进行分析中的前三个步骤,因此使用本模型进行网络脆弱性评估的时间复杂度为O(n2)。
3、实例验证与分析
为了对本文所提出的模型和算法进行验证,将一家中型软件开发企业作为实验对象。其通过电信的专用线路与外网链接,采用网神作为内外网之间的监视设备。10.10.0.10是一台Web服务器,对外提供公司宣传网站和产品演示的功能;10.10.0.140是可以外网访问的日志服务器(因为公司人员经常出差,所以无论内外网访问都需要经过外网);10.10.0.15是公司的数据库服务器,同时运行着SQLServer、Oracle两大关系型数据库及一个非关系型数据库MongoDB;10.10.0.16是测试服务器,公司已经交付及正在研发的产品都在测试服务器上有一个最新版本的部署;10.10.0.11是内部开发服务器,公司所有源代码及重要的项目方案、过程资料等都在此服务器上;公司有一个百人左右的开发团队,因开发技术不同主要分为两类,10.10.0.58代表采用.Net研发的技术团队,10.10.0.59代表采用Java研发的技术团队。
根据事先的隔离原则以及业务上的基本需要,各个服务器及主机之间的初始连接关系如图3所示。10.10.0.10上的部件完全对外网开放;10.10.0.140的日志系统通过Tomcat服务器对外网开放;10.10.0.10和10.10.0.16上的IIS及Tomcat组件需要访问位于10.10.0.15上的数据库;10.10.0.58和10.10.0.59两个主机需要通过代码管理工具和位于10.10.0.11上的组件联系,同时需要访问位于10.10.0.140上的日志服务;此外由于服务器和主机都存在一个内网之内,所以各个机器之间互相是有user权限的,即每两个Windows部件之间都应该有连接,为了图形展示方便并没有画出。
这样在初始部件攻击图CAG0的基础上,以攻击步时为时间域,通过演变攻击图集合生成算法即可以生成演变攻击图及每步攻击的收益,它代表随着攻击者攻击过程的进行部件攻击图之间权限及连接关系的变化。假设攻击目标是位于10.10.0.11开发服务器上的企业内部资料,通过攻击演变挖掘算法可以得到演变模式分析结果(每个部件节点中的数字代表原子攻击收益)。
在时间域T=[t1,t5]内演变攻击图被分为三个模式即P={s1,s2,s3}。其中第一个模式如图4(a)所示,其代表攻击者通过10服务器对外开放的Web服务上的漏洞,获取15服务器的access权限或10服务器的root权限,获得11服务器的root权限,进而获得其上任意文件的访问权限;第二个模式如图4(b)所示,其代表攻击者通过位于对外发布的140日志服务器或10Web服务器上Tomcat组件的漏洞,获取相对应FTP的user权限,再攻击11服务器上FTP的user权限的过程;第三个模式如图4(c)所示,其代表攻击者通过工作第1期李艳,等:动态攻击网络演化分析模型·269·主机58或59上的Windows漏洞获取11服务器Windows的user权限,或利用测试服务器16上VMware获取16服务器user访问权限的过程。根据选取攻击收益最大的原则,演变模式集合EPG={〈RC1,t1〉,〈RC2,t2〉,〈RC3,t3〉},RC1、RC2、RC3是每个模式的代表,可以看到动态攻击网络演化分析模型的分析结果更能直观地显示攻击者的动态攻击过程,网络管理员可以根据演变模式的情况进行有针对性的防御,攻击模式只需修复Apache的Xalan-JavaLibrary安全绕过漏洞就可以大大降低攻击者的攻击概率。
联系方式
随机阅读
热门排行