一种深度优先的攻击图生成方法

文档序号:7660238阅读:238来源:国知局
专利名称:一种深度优先的攻击图生成方法
技术领域
本发明涉及的是一种网络安全保护方法,特别是一种针对网络攻击序列的识 别技术。(二) 背景技术目前在网络脆弱性分析领域,已有的漏洞扫描器对于目标网络内单个或多个 主机的漏洞扫描效果较好。但是,这些工具仅仅从孤立的视角检查安全漏洞,缺 少对弱点间的关联分析。而现实中的网络攻击行为往往需要利用多个漏洞、跨越 多个主机的边界来完成。为了更客观地对网络脆弱性进行分析和评估,需要分析 工具能够根据目标网络存在的漏洞、网络服务、物理链接以及访问权限等信息, 自动建立系统性的攻击场景。近年来,许多研究机构提出了针对上述问题的网 络脆弱性分析模型,如攻击树、特权图和攻击图等。由于攻击图适合于模拟攻击 场景、分析网络脆弱性和建立安全防御机制,因此受到越来越多的关注。攻击者在攻击某个弱点时,应该具有相应的权限和信息,而在成功入侵系统 后,会获得更高的权限和更多的信息。根据这个特征,研究者形式化了发动攻击 前提条件、过程和结果,提出了攻击图模型。目前,攻击图的生成方法可以划分 为3类。第一类方法采用模型检测技术生成攻击图。利用模型检测技术能够自动产生攻击图,但为了获取所有的攻击场景,模型必须包含所有的状态,因此这种 方法的空间复杂性和时间复杂性较高。第二类方法采用基于图论的思想生成攻击 图。这种方法具有良好的空间复杂性和时间复杂性,但生成攻击场景的模板不能 添加或修改,攻击图的规模问题也没有得到解决。第三类方法采用基于逻辑的技 术生成攻击图。这种方法的优点是可以根据新型攻击手段的特点,灵活地添加新 的攻击模板。它的缺点是对攻击事件的描述过于详细,导致攻击图的规模较大, 不利于管理人员对其进行直观的分析。由于攻击图的规模问题极大地影响了它的实用性,已有许多研究者开展了这 样面的研究工作,提出了一些解决此问题的方法。例如采用层次合并和邻接矩阵 的方法降低攻击图显示的节点数量。这两种方法关注于如何使攻击图更容易可视 化,并没有从根本上解决攻击图的规模问题。再例如通过在生成攻击图前合并具 有相同特征的主机来降低攻击图的规模。虽然这种方法可以有效的减少攻击图中 节点和边的数量,但是它只适用于对一些特殊的网络进行脆弱性分析。另外一种 方法是在生成攻击树时采用了限制攻击步骤的策略。由于采用了广度优先的搜索 算法,因此可能存在当达到最大攻击步骤时,却仍然没有到达目标状态的情况, 导致生成的攻击树包含大量的非目标状态的叶节点。使用已有的攻击图生成算法构造的攻击图主要存在如下两类攻击路径1 ) 攻击步骤数较多的路径。例如,目标网络有100台主机,每台主机上存在一个特 权提升类弱点,如果在生成攻击图时不对攻击步骤数进行限制,最坏情况下,生 成的攻击图中会包含长度为100的攻击路径,这显然是不现实的。2)成功概率较低的攻击路径。设网络中共有"条攻击路径,其中一条攻击路径/的成功概率为/7,攻击者选择各条路径的概率相等,且每次攻击是独立的,则在iV次攻击 中,攻击者通过路径/成功到达攻击目标的概率为<formula>formula see original document page 4</formula>当"0.1," = 50时,在100次网络攻击中,攻击者通过路径/成功到达攻击目标的概率尸(100)为0.1814,而当w"OO 时,尸(l00)仅为0.0952。实际上,即使是针对小规模网络生成的攻击图中也会包 含几十条甚至几百条攻击路径。假设iV不变,随着攻击图规模的增加,尸(AO将 逐渐减小。另外,攻击者作为智能主体肯定会优先选择成功概率高的攻击路径进 行攻击,这也使得攻击者通过路径/成功到达攻击目标的概率进一步地降低。通 过上述分析可知,去除攻击图中那些成功概率较低的攻击路径对安全分析的准确 性影响很小。由此可知,已有的攻击图生成方法存在网络状态爆炸问题,导致生成的攻击 图中包含大量攻击步骤数过多和成功概率过低的攻击路径。这些攻击路径的存在 增加了攻击图的规模,给攻击图的分析工作带来了极大的困难。
发明内容本发明的目的在于提供一种可以去除攻击图生成的冗余路径的一种深度优 先的攻击图生成方法。本发明的目的是这样实现的1、 收集当前网络的全部安全要素,构成初始网络状态;2、 使用prolog系统搜索攻击者在到达目标状态前所有可能经过的网络状态;3、 根据搜索到的网络状态间的依赖关系,构造攻击路径;4、 将构造的攻击路径组合成网络攻击图。 本发明还可以包括1、 所述的收集网络安全要素是由Nessus和OVAL Scanner扫描器实现。2、 所述的使用prolog系统搜索攻击者在到达目标状态前所有可能经过的网 络状态,是使用Prolog系统作为推理引擎,搜索攻击者在到达攻击目标前所有 可能经过的网络状态,并且在各网络安全要素所对应的元组前添加谓词名,作为 Prolog中的事实,将弱点利用规则和攻击目标作为Prolog中的规则和问题。3、 在用prolog系统找到全部网络状态节点的依赖关系后,以深度优先的原 则,构造攻击路径;在构造攻击路径时,判断目标节点可达概率和攻击路径的长 度;当目标节点可达概率小于给定的阈值时,删除该路径;当攻击路径大于给定 阈值且仍未到达目标节点,删除路径。本发明的优点在于深度优先的生成算法在降低了攻击图的规模,并且能够 保证攻击图中不会存在非目标叶节点。为了验证本发明对于抑制攻击图规模的有效性,我们构造了一个实验网络环 境,其拓扑结构如图3所示。实验环境为交换网络,共有5台主机。IP1主机上开放Telnet服务,IP2主 机开放FTP服务,IP3主机上运行Mysql数据库和HTTP服务,IP4主机是SMTP 服务器,IP5主机开放SSH服务并且存储着重要的资料。攻击者的目标是获得 IP5主机的Root权限。防火墙只允许外部主机访问主机IP1上的Telnet服务,其 他的外部访问均被阻止,内部主机间地访问没有限制。为了最大化攻击图的规模, 本实验选取的弱点均为特权提升类弱点。实验网络内各主机及其弱点的信息如图 5的表2、图6的表3所示。攻击图由制图工具graphviz自动生成,其中,有向边代表攻击行动,节点代 表攻击行动成功后的网络状态。图6是在没有限制条件下生成的攻击图。图中包含54个节点和62条边,攻击者可能获得IP5主机上root权限的攻击路径共有 46条。图7是在限制攻击步骤少于5步的条件下生成的攻击图。图中包含22个 节点和25条边,攻击者可能获得IP5主机上root权限的攻击路径共有16条。采 用限制攻击步骤数不多于4步并且攻击路径成功概率大于10%的策略所生成的 攻击图如图8所示。图中共有12个节点和14条边,攻击者可能获得IP5主机上 root权限的攻击路径只有9条。由此可见,限制攻击步骤数和攻击路径成功概率 的方法可以有效地降低攻击图的规模。由于该算法只保留小于最大攻击步骤数和 大于成功概率阀值的攻击路径,而这些攻击路径的数量受网络规模的影响相对较 小,因此网络规模越大,该策略在抑制攻击图规模方面所起到的作用就越大。另 外,通过观察图8可知,采用限制攻击步骤数和攻击路径成功概率策略所生成的 攻击图几乎包含了外部攻击者所有可达的网络状态,因此本发明对脆弱性分析准 确性的影响很小。(四)


图l发掘利用周期与攻击复杂度的关系;图2 攻击复杂度的量化标准表;图3实验网络拓扑图;图4主机信息表;图5弱点信息表;图6无限制条件的攻击图;图7攻击步骤数小于5的攻击图;图8攻击步骤小于5步且成功概率大于10%的攻击图。
具体实施方式
下面结合附图举例对本发明做更详细地描述 为了实现本发明的目的本发明首先给出一系列定义-定义1 (攻击复杂度).弱点的攻击复杂度是用来衡量攻击者成功利用该弱点 的难易程度的一种度量。弱点的攻击复杂度受多种因素的影响,例如攻击工具、攻击时间和攻击者的 经验等等。对弱点的攻击复杂度的计算,实质上是建立一种从高维属性空间到低 维属性空间的映射。研究人员通过对大量安全事件的调査和统计,发现弱点的发 掘利用周期与弱点攻击复杂度之间存在着一种映射关系,这种映射关系能够表达 出各个弱点在攻击复杂度上的差异,见图l。在此研究基础上,张永铮等人对几 百种弱点的利用方法和攻击工具进行了分析和比较,给出了攻击复杂度的量化标 准,见图2。 一 —定义2 (弱点).弱点用如下七元组表示"os/械v試《env'ce, co"jW7'v/fege,cww/7/e;c)。其中/w劝V/为存在该弱点的主机名,v/J为弱^、号, 为弱点的利用范围,0^e为弱点类型,^"/ce为该弱点所对应的服务名称, co"/ Wv//ege为成功利用该弱点后获得的权限,comptec为弱点的攻击复杂度。我们用Bugtmq漏洞库中的号码来标识弱点。弱点的利用范围分为本地和远 程两类。弱点类型可以划分为保密性类弱点、完整性类弱点、Dos类弱点和特权 提升类弱点。对于前三类弱点,co"严M7ege与攻击者在攻击前的所拥有的权限 相同,而对于特权提升类弱点,c朋pnV/fege要大于攻击者在攻击前所拥有的权限。将用户权限划分得过细会增大攻击图的规模,因此,我们将用户权限划分为 Acc6ss、 Ussr、 R。Oto定义3 (主机连接关系).主机间的连,关系表示为一个四元组(^rJjoW,必一/zoW, / ratoCO/, / OW)。其中,WC一/j05f表示源主机,tfc/^OW表示目的主机,pra;co/表示源主机与目的主机间的一连接协议,;ww表示^"口号。定义4 (主机服务).主机服务用如下四元组表示(tow械^rWce, ; ratoco/, ; ow)。其中,//o劝V/表示主机号, 化rv/w表不月艮务名称,/ ro/oco/和/ or/分另ll表示该服务所对应的协议和端口 。当源主机与目的主机相同时,其连接关系为本地连接,此时; rotoco/为local, ; ow为而LL。定义5 (数据访问).对数据的访问表示为一个四元组(wer,;/oW械opera"o", /^//2)。其中,wwr为用户名,/w劝W为主机名,opm^ow为用户可以对文件进行 的操作,pa^为文件路径。定义6 (攻击者).攻击者用如下二元组表示(/w幼W, pn'w'/ege)。其中Ao劝W 代表攻击者所在的主机号,pn'W/ege代表攻击者在该主机上的权限。定义7 (弱点利用规则).弱点利用规则是对一种攻击行动的形式化描述,它 包括利用弱点所必需的前提条件和成功利用弱点后所获得的结果。设利用弱点所 必须的前提条件是一个集合(d, C2,......,Cn},成功利用弱点后的结果是CQ,则弱点的利用规则可以表示为c, ac2 aK ac ^ c。。定义8 (攻击图).攻击图是一个状态转换系统r-(S,r,^,Sc)。其中,5是网络状态的集合,reSxS是状态转换关系的集合, eS是网络初始状态,是目标状态的集合。定义9 (攻击路径).对于一个目标状态&e&,如果从初始状态s。开始,存在 一 组状态序列A,&,K , v,,使得(《A+,) e r,O < / < " -1 ,则称状态序列 s。,A,K,&是一条攻击路径。定义IO (攻击路径成功概率).对于一条攻击路径s。,^&,K,&一,5n,节点^0</^/7对应的弱点攻击复杂度是。,则攻击路径的成功概率p-flc,。根据定义8和定义9,本文给出攻击图的生成步骤如下 步骤1.收集当前网络的全部安全要素,构成初始网络状态; 步骤2.使用prolog系统搜索攻击者在到达目标状态前所有可能经过的网络 状态。步骤3.根据搜索到的网络状态间的依赖关系,构造攻击路径。 步骤4.将构造的攻击路径组合成网络攻击图。在具体实现中,收集网络安全要素的工作由Nessus和OVAL Scanner等扫描 器完成,本发明不作详细的阐述。Prolog程序是基于Horn子句的逻辑程序,其执行过程是一个归结演绎推理 的过程,而网络攻击动作是按照一定的逻辑顺序发生的,因此,本发明利用Prolog 语言来描述网络安全要素,使用Prolog系统作为推理引擎,搜索攻击者在到达 攻击目标前所有可能经过的网络状态。Prolog的基本语句只有三种,即事实、规则和问题。本发明在各网络安全要 素所对应的元组前添加谓词名,作为Prolog中的事实,将弱点利用规则和攻击 目标作为Prolog中的规则和问题。例如, 一种远程的特权提升类弱点的利用规则描述如下如果攻击者在主机Hostl上可以以user权限执行代码,主机Hostl可以访问 Host2的端口 Port,主机Host2的端口 Port对应的服务存在一个远程特权提升漏 洞Vulid,则攻击者可以在主机Host2上以Privilege权限执行代码。 上述规则用Prolog语言可以表述为 execcode(attacker, Host2, Privilege):-connect(Hostl, Host2, Protocol, Port), service(Host2, Servname, Protocol, Port),vulexist(Host2, Vulid, remote, privescalation, Servname, Privilege), execode(attacker, Hostl , user).一定义11 (攻击节点).攻击节点是关于弱点利用规贝j的一个实例,它是一个 二元组(myw/r, / recow////o")。其中,my"//为某个攻击行动的结果,/ wco"力力Vw 为该攻击行动成功的前提条件。为了生成攻击图,需要系统能够自动记录下每次成功的攻击行动的前提条件 和结果。而己有的Prolog系统只能针对目标给出"是"和"否"的答案。为此, Pemmasani等人改进了 Prolog系统XSB,使得XSB能够自动记录推导的证据。 本发明也采用这种方法,以攻击节点的形式,记录下成功推理的步骤。设W为所有攻击节点的结合,iVp为攻击者从网络初始状态一步可达的攻击节点结合,除iVp外的攻击节点为iVm集合,JQ为初始状态下的网络安全要素集合,"o为初始节点,£为攻击图中边的集合,尸为成功概率阈值,MaxW印为最大攻击步骤数。本发明用攻击节点中的结果代表一种网络状态,则攻击图的生成算法描述如下Input: TV",爿。,"o,户,MaxstepOutput: attack graphstep = 0, stack = NULL; 2.For each w e iV {if(" ~>戸cow淑o" ^ 4) vVp <~ iVp u {"};else{3 .For each ", e iVp {4.if(到达",的概率小于尸)continue;5. else if(",- >为目标状态)(五<~五u {(w0 , ^)}; continue;6. else{7. push();8. while(We/ < Maxstep) {9. 取stack的栈顶节点 ;10. if(存在节点 ,到达 的概率大于户&& "乂 —"犯"e —j^ecomfo/o"){11. if("A —为目标状态&&攻击路径无环){12. 对于攻击路径的每条边( , M<formula>formula see original document page 8</formula>其中的第1、 2两步将全部的攻击节点划分为从网络初始状态出发一步可达 的攻击节点和一步不可达的攻击节点。第4、 IO步判断当前的路径成功概率是否 大于设定的阈值凡如果小于P,则返回上层攻击节点搜索其它攻击路径。第8、 14步限制了攻击路径的长度。第12步只需将攻击路径中那些还不属于集合£的 边加入£。根据Ammann的单调性假设,攻击者不会发动那些无法使自己攻击能 力提高的攻击,也就是说,攻击路径中不应该存在有向环,为此本算法的第ll、 14步加入了对有向环的判断。通过上述的处理,本发明可以保证攻击图中不存 在长度大于Maxstep、成功概率小于尸的攻击路径,并且每条攻击路径都不存在 有向环。
权利要求
1. 一种深度优先的攻击图生成方法,其特征是(1)收集当前网络的全部安全要素,构成初始网络状态;(2)使用prolog系统搜索攻击者在到达目标状态前所有可能经过的网络状态;(3)根据搜索到的网络状态间的依赖关系,构造攻击路径;(4)在构造攻击路径时,通过判断到达目标节点的可能性和攻击步骤数来降低攻击图的规模。(5)将构造的攻击路径组合成网络攻击图。
2、 根据权利要求l所述的深度优先的攻击图生成方法,其特征是所述的 收集网络安全要素是由Nessus和OVAL Scanner扫描器实现。
3、 根据权利要求1或2所述的深度优先的攻击图生成方法,其特征是所 述的使用prolog系统搜索攻击者在到达目标状态前所有可能经过的网络状态, 是使用Prolog系统作为推理引擎,搜索攻击者在到达攻击目标前所有可能经过 的网络状态,并且在各网络安全要素所对应的元组前添加谓词名,作为Prolog 中的事实,将弱点利用规则和攻击目标作为Prolog中的规则和问题。
4、 根据权利要求1或2所述的深度优先的攻击图生成方法,其特征是在 用prolog系统找到全部网络状态节点的依赖关系后,以深度优先的原则,构造 攻击路径;在构造攻击路径时,判断目标节点可达概率和攻击路径的长度;当 目标节点可达概率小于给定的阈值时,删除该路径;当攻击路径大于给定阈值 且仍未到达目标节点,删除路径。
5、 根据权利要求4所述的深度优先的攻击图生成方法,其特征是在用 prolog系统找到全部网络状态节点的依赖关系后,以深度优先的原则,构造攻 击路径;在构造攻击路径时,判断目标节点可达概率和攻击路径的长度;当目 标节点可达概率小于给定的阈值时,删除该路径;当攻击路径大于给定阚值且 仍未到达目标节点,删除路径。
全文摘要
本发明提供的是一种深度优先的攻击图生成方法。(1)收集当前网络的全部安全要素,构成初始网络状态;(2)使用prolog系统搜索攻击者在到达目标状态前所有可能经过的网络状态;(3)根据搜索到的网络状态间的依赖关系,构造攻击路径;(4)将构造的攻击路径组合成网络攻击图。本发明的优点在于深度优先的生成算法在降低了攻击图的规模,并且能够保证攻击图中不会存在非目标叶节点。
文档编号H04L9/00GK101222317SQ20071014469
公开日2008年7月16日 申请日期2007年11月29日 优先权日2007年11月29日
发明者武 杨, 苘大鹏 申请人:哈尔滨工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1