CN107888588B - 一种指定目标结点集合的k最大概率攻击路径求解方法 - Google Patents
一种指定目标结点集合的k最大概率攻击路径求解方法 Download PDFInfo
- Publication number
- CN107888588B CN107888588B CN201711100183.4A CN201711100183A CN107888588B CN 107888588 B CN107888588 B CN 107888588B CN 201711100183 A CN201711100183 A CN 201711100183A CN 107888588 B CN107888588 B CN 107888588B
- Authority
- CN
- China
- Prior art keywords
- node
- vulnerability
- available
- attack
- vulnerability information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种指定目标结点集合的K最大概率攻击路径求解方法,该方法能够分别求解指定目标结点集合中各目标结点的K最大概率攻击路径,每个目标结点可以分别设定不同的K的取值,在计算过程中对各结点相应的可用漏洞信息表的访问标记进行设置,仅从所有访问标记为“未访问”的可用漏洞信息表中进行漏洞选取和利用,在求解出攻击目标结点的攻击路径后,会根据情况把该攻击路径上各结点相应的可用漏洞信息表的访问标记设置为“未访问”,从而使各相应可用漏洞信息表中剩余的可用漏洞信息有被选取和利用的机会,在指定目标结点集合和各目标结点需要求解的K最大概率攻击路径数量的情况下,该方法能够有效减少攻击路径求解过程中的计算量。
Description
技术领域
本发明涉及一种网络安全分析方法,特别涉及一种指定目标结点集合的K最大概率攻击路径求解方法。
背景技术
网络安全是企业关注的重要问题,给定一个网络系统,分析系统内部潜在的攻击路径对于了解一个网络的安全状况非常有价值。网络系统中的结点包括服务器、计算机、防火墙、路由器和交换机等网络设备。网络系统中通常存在关键结点,关键结点上运行企业的核心服务或存储着机密数据,是攻击者攻击的重要目标,管理员对这类目标结点的安全状况尤其关注。对于网络中无法直接攻击的目标结点,攻击者会寻找并利用网络中多个中间结点上的漏洞,逐步提升攻击者的访问权限,最终形成攻击目标结点的多步攻击路径。所述中间结点指为达到攻击目标结点的目的而被攻击和利用的网络系统中的结点。在给定各漏洞的可用性概率值的情况下,可以计算出各条攻击路径的漏洞可用性累积概率值。在管理员指定了目标结点集合后,希望快速求解出攻击各目标结点的K最大概率攻击路径,即漏洞可用性累积概率值最大的前K条攻击路径。管理员可以根据各目标结点需要求解的攻击路径数量而为各目标结点分别设定K的不同取值。
现有技术中,如毕坤等人在发明专利《一种求解K最大概率攻击图的网络安全分析方法》(CN 102724210B,2015.02.11,以下简称专利1)中,提出了一种能够求解攻击网络中各结点的概率最大的前K条攻击路径的方法,该方法不需要计算生成完整的攻击图,便能够直接计算出攻击网络中各结点的概率最大的前K条攻击路径;现有技术中,如毕坤等人在发明专利《一种渐进式求解K最大概率攻击路径的方法》(CN 107135221 A,2017.09.05,以下简称专利2)中,提出了一种能够渐进式求解攻击网络中各结点的概率最大的前K条攻击路径的方法,该方法通过设定可用漏洞信息表的访问标记,实现了各结点攻击路径的分轮次的输出,在每一轮次中,各结点都有输出攻击路径的机会,解决了漏洞可用性累积概率值较小的攻击路径所对应的结点可能在很长时间内都无法输出一条攻击路径的问题。上述现有方法也能够输出攻击目标结点集合中各目标结点的K最大概率攻击路径,但上述现有方法都是针对网络中的每一个结点分别计算出K最大概率攻击路径,在目标结点集合中的结点数量少于网络结点总数量的情况下,该方法仍会为不在目标结点集合中的各结点分别计算K最大概率攻击路径,增加了很多不必要的计算,从而增加了计算时间,影响了攻击路径输出的实时性,在目标结点数量远少于网络结点总数量的情况下,该问题将更加严重;另一方面,上述现有方法中各结点的攻击路径的数量K的取值是统一的,如果需要为各目标结点分别求解出不同数量的攻击路径,则根据所有目标结点需要求解的攻击路径数量的最大值设定K的取值,浪费了计算资源,增加了计算时间。因此,在指定目标结点集合和为各目标结点分别设定不同数量攻击路径的情况下,需要设计新的、更高效的K最大概率攻击路径求解方法,减少不必要的计算,从而减少计算时间,提高攻击路径输出的实时性。
发明内容
为了克服上述现有技术存在的缺陷,本发明提供一种指定目标结点集合的K最大概率攻击路径求解方法,在指定目标结点集合和各目标结点需要求解的K最大概率攻击路径的数量、给定网络系统的拓扑结构和访问关系、给定各结点上存在的漏洞的原始信息和攻击者的初始位置信息后,该方法能够高效计算出攻击各目标结点的K最大概率攻击路径,其中各目标结点设定的K取值可以不同,所述漏洞的原始信息包括漏洞编号、漏洞所在结点、漏洞利用的前提条件、漏洞利用的后果信息和漏洞的可用性概率值。
为了实现上述目的,本发明提供一种指定目标结点集合的K最大概率攻击路径求解方法,该方法包含以下步骤:
步骤1、为网络中每个结点分别建立L个可用漏洞信息表,其中L为漏洞利用的后果分类的数量,每个可用漏洞信息表对应一种类型的漏洞利用的后果;所述可用漏洞信息包含结点编号、漏洞编号、从攻击者开始的具体攻击路径和漏洞可用性累积概率值;所述漏洞可用性累积概率值的计算方法为:将从攻击者开始的漏洞利用路径上各漏洞的可用性概率值相乘得出;设定目标结点集合,并分别设定每个目标结点需要求解的K最大概率攻击路径的数量,每个目标结点设定的K的取值可以不同;
所述漏洞利用的后果包括访问权限的变化和非访问权限类的后果,所述访问权限包括普通用户访问权限、root或管理员用户访问权限,其中普通用户访问权限又可细分为普通用户读权限、普通用户写权限、普通用户执行权限,root或管理员用户访问权限又可细分为root或管理员用户读权限、root或管理员用户写权限、root或管理员用户执行权限,所述非访问权限类的后果指除访问权限外的其它所有的漏洞利用的后果,包括服务停止工作、系统停止工作、服务响应变慢、系统响应变慢、数据丢失、数据被删除、数据被窃取等;所述漏洞利用的后果分类可以由安全管理人员根据系统安全关注的目标进行定义;
步骤2、将所有可用漏洞信息表初始化为空表;
步骤3、设置所有可用漏洞信息表的访问标记为“未访问”;
步骤4、从攻击者位置开始,查询并判断所有能被攻击者直接访问的结点上的漏洞,若漏洞利用的前提条件已满足,则根据该漏洞利用的后果信息将该漏洞放入漏洞所在结点的相对应的可用漏洞信息表中;
所述“根据该漏洞利用的后果信息将该漏洞放入漏洞所在结点的相对应的可用漏洞信息表”的具体规则包括:若同一漏洞有多个漏洞利用的后果,则按照漏洞利用的后果危害性高低关系,依据漏洞利用的后果中的最高危害性,将该漏洞放入漏洞所在结点的相对应的可用漏洞信息表中,漏洞利用的后果危害性的高低关系可以由安全管理人员根据系统安全关注的目标进行定义,通常情况下,获取访问权限的后果危害性高于获取非访问权限类的后果危害性,获取root或管理员用户访问权限的后果危害性高于获取普通用户访问权限的后果危害性,获取执行权限的后果危害性高于获取写权限的后果危害性,获取写权限的后果危害性高于获取读权限的后果危害性;
步骤5、判断是否所有的可用漏洞信息表均为空表,若是,转步骤13,若否,转步骤6;
步骤6、查询所有非空的可用漏洞信息表的访问标记,判断是否存在访问标记为“未访问”的可用漏洞信息表,若是,转步骤7,若否,转步骤13;
步骤7、从所有访问标记为“未访问”的可用漏洞信息表中,选出漏洞可用性累积概率值最大的一条可用漏洞信息,将该可用漏洞信息从可用漏洞信息表中移除,并将该可用漏洞信息表的访问标记设置为“已访问”,查询该漏洞利用的后果信息,更新攻击者在该结点上的访问权限和非访问权限类的后果,设定该结点为当前结点,设定该攻击路径为当前攻击路径,查询并判断所有能被该结点直接访问的结点上的漏洞,若该结点本次有变化的访问权限是漏洞攻击的必要条件且相应漏洞利用的前提条件已满足且不存在攻击环路,则根据漏洞利用的后果信息将相应漏洞放入漏洞所在结点的相对应的可用漏洞信息表中;所述攻击环路指攻击路径中存在重复出现的结点且在重复出现的结点上的攻击目的相同;
步骤8、判断当前结点是否属于目标结点集合,若是,转步骤9,若否,转步骤5;
步骤9、判断当前结点已经输出的攻击路径的数量是否已满足要求,若是,转步骤10,若否,转步骤11;
步骤10、判断是否目标结点集合中所有目标结点已经输出的攻击路径的数量均已满足要求,若是,转步骤13,若否,转步骤5;
步骤11、将当前攻击路径写入当前结点的攻击路径信息集合并输出;
步骤12、判断当前结点已经输出的攻击路径的数量是否已满足要求,若是,转步骤5,若否,把当前攻击路径上各结点相应的可用漏洞信息表的访问标记设置为“未访问”,转步骤5;
步骤13、汇总输出计算结果,在算法运行过程中,已经陆续输出了攻击指定目标结点集合中各个目标结点的多条攻击路径,其相关信息也已经记录在各个结点的数据结构中,在该步骤中,可以根据实际需要,汇总输出需要查看的计算结果。
本发明提供的一种指定目标结点集合的K最大概率攻击路径求解方法和现有技术相比,其优点在于:(1)在指定目标结点集合的情况下,该方法针对各目标结点求解攻击路径,大量减少不在目标结点集合中的各结点的攻击路径的求解运算,从而降低计算量,减少计算时间,提高攻击路径的计算实时性,尤其是在网络规模较大时,若指定目标结点集合中目标结点的数量远小于网络结点总数量,该方法能够极大降低计算量和减少计算时间;(2)该方法可以为不同的目标结点分别设定不同数量的攻击路径,并且针对各目标结点设定的攻击路径数量进行求解,大量减少其它不相关结点的攻击路径的计算,从而降低计算量和减少计算时间。
与专利1和专利2公开的方法相比,本发明解决了以下两个问题:(1)解决了在指定目标结点集合的情况下如何降低计算量的问题。专利1和专利2公开的方法均是求解攻击网络系统中所有结点的K最大概率攻击路径,在指定目标结点集合后,上述方法可以输出针对各目标结点的攻击路径,但在计算量方面,上述方法仍然需要计算攻击网络中每一个结点的K最大概率攻击路径,对于不在目标结点集合中的结点,计算其相应的K最大概率攻击路径并不总是必要的。但是考虑到攻击目标结点的攻击路径通常是多步攻击路径,为达到攻击目标结点的目的,通常需要利用网络中多个中间结点上的漏洞,通过对中间结点实施攻击从而逐步提升攻击者的访问权限,最终形成攻击目标结点的多步攻击路径,针对中间结点的攻击路径是攻击目标结点的多步攻击路径的重要组成部分,因此,为求解攻击目标结点的K最大概率攻击路径而计算攻击中间结点的攻击路径是需要的,但通常不需要对所有中间结点都分别计算K最大概率攻击路径。该问题的难点在于如何设计各结点的漏洞选取和利用策略,在计算过程中动态分析哪些中间结点的攻击路径需要计算和保存,从而减少不必要的攻击路径的计算,降低计算量。专利1和专利2公开的方法均无法解决该问题。为解决该问题,本发明设计了新的漏洞选取和利用策略,在计算过程中对各结点相应的可用漏洞信息表的访问标记进行设置,从而有效减少了大量不必要的攻击路径的计算。(2)解决了在各目标结点分别设定不同数量攻击路径的情况下如何降低计算量的问题。专利1和专利2公开的方法均是对网络中所有结点求解相同数量的K最大概率攻击路径,在各目标结点分别设定不同数量攻击路径的情况下,则根据所有目标结点需要求解的攻击路径数量的最大值设定K的取值,增加了大量不必要的计算。本发明设计了新的漏洞选取和利用策略,根据各目标结点设定的攻击路径的数量和已经计算出的攻击路径的信息进行漏洞选取和利用,从而有效减少了大量不必要的攻击路径的计算。
本发明与专利1和专利2公开的方法不同,在漏洞选取和利用策略方面,专利1公开的方法是将网络系统内部所有可用漏洞按照漏洞可用性累积概率值从大到小的顺序排列、选取和利用,在指定目标结点集合和各目标结点需要求解的K最大概率攻击路径数量的情况下,专利1公开的方法因其漏洞选取和利用策略的限制而无法有效利用该信息减少计算量;在漏洞选取和利用策略方面,专利2公开的方法是在计算过程中对各结点相应的可用漏洞信息表的访问标记进行设置,仅从所有访问标记为“未访问”的可用漏洞信息表中进行漏洞选取和利用,若所有非空的可用漏洞信息表的访问标记均为“已访问”,则将所有可用漏洞信息表的访问标记全部重置为“未访问”,并继续进行漏洞选取和利用,从而实现了分轮次输出攻击各结点的攻击路径的目标,在每一轮中,各个结点都有输出攻击路径的机会,在指定目标结点集合和各目标结点需要求解的K最大概率攻击路径数量的情况下,专利2公开的方法因其漏洞选取和利用策略的限制而无法有效利用该信息减少计算量;本发明在计算过程中对各结点相应的可用漏洞信息表的访问标记进行设置,仅从所有访问标记为“未访问”的可用漏洞信息表中进行漏洞选取和利用,在求解出攻击目标结点的攻击路径后,会根据情况把该攻击路径上各结点相应的可用漏洞信息表的访问标记设置为“未访问”,从而使各相应可用漏洞信息表中剩余的可用漏洞信息有被选取和利用的机会,在指定目标结点集合和各目标结点需要求解的K最大概率攻击路径数量的情况下,该方法能够有效减少攻击路径求解过程中的计算量。
专利2公开的方法对各结点相应的可用漏洞信息表的访问标记进行设置是为了实现分轮次输出攻击各结点的攻击路径的目标,在所有非空的可用漏洞信息表的访问标记均为“已访问”时,则将所有可用漏洞信息表的访问标记全部重置为“未访问”;本发明对各结点相应的可用漏洞信息表的访问标记进行设置是为了在指定目标结点集合和各目标结点需要求解的K最大概率攻击路径数量的情况下有效减少攻击路径求解过程中的计算量,为实现该目标,在求解出攻击目标结点的攻击路径后,会根据情况把该攻击路径上各结点相应的可用漏洞信息表的访问标记设置为“未访问”,从而为求解攻击该目标结点的下一条攻击路径做准备,其余可用漏洞信息表的访问标记保持不变,又因为该方法仅从所有访问标记为“未访问”的可用漏洞信息表中进行漏洞选取和利用,所以该方法能够有效减少攻击路径求解过程中的计算量。
附图说明
图1为本发明方法流程图;
图2为网络拓扑图;
图3为访问关系图;
图4为各结点漏洞的原始信息图;
图5为可用漏洞信息表一;
图6为可用漏洞信息表二;
图7为可用漏洞信息表三;
图8为可用漏洞信息表四;
图9为可用漏洞信息表五;
图10为可用漏洞信息表六;
图11为可用漏洞信息表七;
图12为可用漏洞信息表八;
图13为可用漏洞信息表九;
图14为可用漏洞信息表十;
图15为可用漏洞信息表十一;
具体实施方式
为了使本发明的技术手段、创作特征与达成目的易于明白理解,以下结合具体实施例进一步阐述本发明。
网络拓扑图如图2所示,结点A代表攻击者,结点B、C、D、E、F和G代表一个给定的网络系统中的结点,结点间的有向箭头代表结点间的访问关系,访问关系如图3所示,从第二行开始,每一行代表一个结点能够访问的结点集合,“√”表示可以直接访问,“X”表示不可以直接访问,例如第二行表示攻击者能直接访问结点B、C和D,但不能直接访问结点E、F和G,第三行表示结点B能直接访问结点B、E和F,但不能直接访问结点C、D和G,同理,其它结点间的访问关系见图3。本实施例中,定义访问关系为单向,但在具体实施中,可以根据情况定义访问关系为单向或双向。
各结点上存在的漏洞的原始信息如图4所示,其中漏洞利用的前提条件说明利用该漏洞需要具备的前提条件,漏洞利用的后果信息说明该漏洞被成功利用后产生的后果,在该举例中,漏洞利用的后果信息均为“攻击者获取该结点上的管理员用户执行权限”,漏洞的可用性概率值说明每个漏洞能够被成功利用的可能性,在获取结点上的管理员用户执行权限后,攻击者就能够在该结点上执行程序,从该结点发起新的攻击。
在该实施例中,指定目标结点集合为“{结点E,结点G}”,设定目标结点E和G需要求解的K最大概率攻击路径的数量分别为2和3。
给定上述输入信息后,如图1所示,本发明的具体方法步骤如下:
步骤(1).为每个结点分别建立一个可用漏洞信息表。在该实施例中,漏洞利用的后果信息均为“攻击者获取该结点上的管理员用户执行权限”,因此为每个结点分别建立一个可用漏洞信息表即可。若有多种类别的漏洞利用的后果,则根据实际情况,可以为每个结点分别建立多个可用漏洞信息表;设定目标结点集合为“{结点E,结点G}”,设定目标结点E和G需要求解的K最大概率攻击路径的数量分别为2和3;
步骤(2).将所有可用漏洞信息表初始化为空表;
步骤(3).设置所有可用漏洞信息表的访问标记为“未访问”;
步骤(4).从攻击者位置开始,查询并判断所有能被攻击者直接访问的结点上的漏洞,发现攻击者能够攻击结点B上的漏洞V1、结点C上的漏洞V2和结点D上的漏洞V3,且漏洞利用的前提条件均已满足,所以将漏洞V1、V2和V3相对应的可用漏洞信息分别放入结点B、结点C和结点D的可用漏洞信息表中,如图5所示,结点B的可用漏洞信息表中新增了一条可用漏洞信息:“[B,V1,AB(V1),0.9]”,每条可用漏洞信息包含结点编号、漏洞编号、从攻击者开始的具体攻击路径和漏洞可用性累积概率值,例如可用漏洞信息“[B,V1,AB(V1),0.9]”说明在结点B上存在漏洞编号为V1的可用漏洞,从攻击者开始的具体攻击路径为从攻击者A可以直接攻击结点B上的漏洞V1,漏洞可用性累积概率值为0.9;结点C的可用漏洞信息表中新增了一条可用漏洞信息:“[C,V2,AC(V2),0.8]”;结点D的可用漏洞信息表中新增了一条可用漏洞信息:“[D,V3,AD(V3),0.7]”;
步骤(5).判断是否所有的可用漏洞信息表均为空表,因为结点B、C和D的可用漏洞信息表不为空,所以判断结果为“否”;
步骤(6).查询所有非空的可用漏洞信息表的访问标记,判断是否存在访问标记为“未访问”的可用漏洞信息表,因为结点B、C和D的可用漏洞信息表均为“未访问”,所以判断结果为“是”;
步骤(7).从所有访问标记为“未访问”的可用漏洞信息表中,选出漏洞可用性累积概率值最大的一条可用漏洞信息,因此选择可用漏洞信息“[B,V1,AB(V1),0.9]”,将该可用漏洞信息从可用漏洞信息表中移除,并将该可用漏洞信息表的访问标记设置为“已访问”,查询漏洞V1的漏洞利用的后果信息为“攻击者获取该结点上的管理员用户执行权限”,更新攻击者在结点B上的访问权限,设定结点B为当前结点,设定该攻击路径“AB(V1)”为当前攻击路径,查询并判断所有能被结点B直接访问的结点上的漏洞,发现从结点B能够攻击结点E上的漏洞V4和结点F上的漏洞V5,且不存在攻击环路,因此将可用漏洞信息“[E,V4,AB(V1)E(V4),0.63]”放入结点E的可用漏洞信息表中,其中攻击路径“AB(V1)E(V4)”说明从攻击者开始的具体攻击路径为“从攻击者A开始,首先攻击结点B上的漏洞V1,获取权限后再从结点B开始攻击结点E上的漏洞V4”,漏洞可用性累积概率值为0.9*0.7=0.63;将可用漏洞信息“[F,V5,AB(V1)F(V5),0.54]”放入结点F的可用漏洞信息表中,其中漏洞可用性累积概率值为0.9*0.6=0.54,各结点的可用漏洞信息表中的具体内容和访问标记如图6所示;
步骤(8).判定当前结点B不属于目标结点集合“{结点E,结点G}”;
步骤(9).判断是否所有的可用漏洞信息表均为空表,判断结果为“否”;
步骤(10).查询所有非空的可用漏洞信息表的访问标记,判断是否存在访问标记为“未访问”的可用漏洞信息表,判断结果为“是”;
步骤(11).从所有访问标记为“未访问”的可用漏洞信息表中,选出漏洞可用性累积概率值最大的一条可用漏洞信息,因此选择可用漏洞信息“[C,V2,AC(V2),0.8]”,将该可用漏洞信息从可用漏洞信息表中移除,并将该可用漏洞信息表的访问标记设置为“已访问”,查询漏洞V2的漏洞利用的后果信息为“攻击者获取该结点上的管理员用户执行权限”,更新攻击者在结点C上的访问权限,设定结点C为当前结点,设定该攻击路径“AC(V2)”为当前攻击路径,查询并判断所有能被结点C直接访问的结点上的漏洞,发现从结点C能够攻击结点E上的漏洞V4和结点F上的漏洞V5,且不存在攻击环路,因此将可用漏洞信息“[E,V4,AC(V2)E(V4),0.56]”放入结点E的可用漏洞信息表中,漏洞可用性累积概率值为0.8*0.7=0.56;将可用漏洞信息“[F,V5,AC(V2)F(V5),0.48]”放入结点F的可用漏洞信息表中,其中漏洞可用性累积概率值为0.8*0.6=0.48,各结点的可用漏洞信息表中的具体内容和访问标记如图7所示;
步骤(12).判定当前结点C不属于目标结点集合“{结点E,结点G}”;
步骤(13).判断是否所有的可用漏洞信息表均为空表,判断结果为“否”;
步骤(14).查询所有非空的可用漏洞信息表的访问标记,判断是否存在访问标记为“未访问”的可用漏洞信息表,判断结果为“是”;
步骤(15).从所有访问标记为“未访问”的可用漏洞信息表中,选出漏洞可用性累积概率值最大的一条可用漏洞信息,因此选择可用漏洞信息“[D,V3,AD(V3),0.7]”,将该可用漏洞信息从可用漏洞信息表中移除,并将该可用漏洞信息表的访问标记设置为“已访问”,查询漏洞V3的漏洞利用的后果信息为“攻击者获取该结点上的管理员用户执行权限”,更新攻击者在结点D上的访问权限,设定结点D为当前结点,设定该攻击路径“AD(V3)”为当前攻击路径,查询并判断所有能被结点D直接访问的结点上的漏洞,发现从结点D能够攻击结点E上的漏洞V4和结点F上的漏洞V5,且不存在攻击环路,因此将可用漏洞信息“[E,V4,AD(V3)E(V4),0.49]”放入结点E的可用漏洞信息表中;将可用漏洞信息“[F,V5,AD(V3)F(V5),0.42]”放入结点F的可用漏洞信息表中,各结点的可用漏洞信息表中的具体内容和访问标记如图8所示;
步骤(16).判定当前结点D不属于目标结点集合“{结点E,结点G}”;
步骤(17).判断是否所有的可用漏洞信息表均为空表,判断结果为“否”;
步骤(18).查询所有非空的可用漏洞信息表的访问标记,判断是否存在访问标记为“未访问”的可用漏洞信息表,判断结果为“是”;
步骤(19).从所有访问标记为“未访问”的可用漏洞信息表中,选出漏洞可用性累积概率值最大的一条可用漏洞信息,因此选择可用漏洞信息“[E,V4,AB(V1)E(V4),0.63]”,将该可用漏洞信息从可用漏洞信息表中移除,并将该可用漏洞信息表的访问标记设置为“已访问”,查询漏洞V4的漏洞利用的后果信息为“攻击者获取该结点上的管理员用户执行权限”,更新攻击者在结点E上的访问权限,设定结点E为当前结点,设定该攻击路径“AB(V1)E(V4)”为当前攻击路径,查询并判断所有能被结点E直接访问的结点上的漏洞,发现从结点E能够攻击结点G上的漏洞V6,且不存在攻击环路,因此将可用漏洞信息“[G,V6,AB(V1)E(V4)G(V6),0.315]”放入结点G的可用漏洞信息表中;
步骤(20).判定当前结点E属于目标结点集合“{结点E,结点G}”;
步骤(21).判断当前结点E已经输出的攻击路径的数量是否已满足要求,判断结果为“否”;
步骤(22).将当前攻击路径“AB(V1)E(V4)”写入当前结点E的攻击路径信息集合并输出;
步骤(23).判断当前结点E已经输出的攻击路径的数量是否已满足要求,判断结果为“否”,因此把当前攻击路径“AB(V1)E(V4)”上各结点相应的可用漏洞信息表的访问标记设置为“未访问”,因为当前攻击路径“AB(V1)E(V4)”上的结点是结点B和结点E,所以将结点B上漏洞V1对应的可用漏洞信息表和结点E上漏洞V4对应的可用漏洞信息表的访问标记设置为“未访问”,各结点的可用漏洞信息表中的具体内容和访问标记如图9所示;
步骤(24).判断是否所有的可用漏洞信息表均为空表,判断结果为“否”;
步骤(25).查询所有非空的可用漏洞信息表的访问标记,判断是否存在访问标记为“未访问”的可用漏洞信息表,判断结果为“是”;
步骤(26).从所有访问标记为“未访问”的可用漏洞信息表中,选出漏洞可用性累积概率值最大的一条可用漏洞信息,因此选择可用漏洞信息“[E,V4,AC(V2)E(V4),0.56]”,将该可用漏洞信息从可用漏洞信息表中移除,并将该可用漏洞信息表的访问标记设置为“已访问”,查询漏洞V4的漏洞利用的后果信息为“攻击者获取该结点上的管理员用户执行权限”,更新攻击者在结点E上的访问权限,设定结点E为当前结点,设定该攻击路径“AC(V2)E(V4)”为当前攻击路径,查询并判断所有能被结点E直接访问的结点上的漏洞,发现从结点E能够攻击结点G上的漏洞V6,且不存在攻击环路,因此将可用漏洞信息“[G,V6,AC(V2)E(V4)G(V6),0.28]”放入结点G的可用漏洞信息表中;
步骤(27).判定当前结点E属于目标结点集合“{结点E,结点G}”;
步骤(28).判断当前结点E已经输出的攻击路径的数量是否已满足要求,判断结果为“否”;
步骤(29).将当前攻击路径“AC(V2)E(V4)”写入当前结点E的攻击路径信息集合并输出;
步骤(30).判断当前结点E已经输出的攻击路径的数量是否已满足要求,因为结点E已经输出的攻击路径的数量为2,已满足要求,所以不改变任何结点的相应的可用漏洞信息表的访问标记;判断是否目标结点集合中所有目标结点已经输出的攻击路径的数量均已满足要求,判断结果为“否”,因为目标结点G已经输出的攻击路径的数量小于设定值;各结点的可用漏洞信息表中的具体内容和访问标记如图10所示;
步骤(31).判断是否所有的可用漏洞信息表均为空表,判断结果为“否”;
步骤(32).查询所有非空的可用漏洞信息表的访问标记,判断是否存在访问标记为“未访问”的可用漏洞信息表,判断结果为“是”;
步骤(33).从所有访问标记为“未访问”的可用漏洞信息表中,选出漏洞可用性累积概率值最大的一条可用漏洞信息,因此选择可用漏洞信息“[F,V5,AB(V1)F(V5),0.54]”,将该可用漏洞信息从可用漏洞信息表中移除,并将该可用漏洞信息表的访问标记设置为“已访问”,查询漏洞V5的漏洞利用的后果信息为“攻击者获取该结点上的管理员用户执行权限”,更新攻击者在结点F上的访问权限,设定结点F为当前结点,设定该攻击路径“AB(V1)F(V5)”为当前攻击路径,查询并判断所有能被结点F直接访问的结点上的漏洞,发现从结点F能够攻击结点G上的漏洞V6,且不存在攻击环路,因此将可用漏洞信息“[G,V6,AB(V1)F(V5)G(V6),0.27]”放入结点G的可用漏洞信息表中,各结点的可用漏洞信息表中的具体内容和访问标记如图11所示;
步骤(34).判定当前结点F不属于目标结点集合“{结点E,结点G}”;
步骤(35).判断是否所有的可用漏洞信息表均为空表,判断结果为“否”;
步骤(36).查询所有非空的可用漏洞信息表的访问标记,判断是否存在访问标记为“未访问”的可用漏洞信息表,判断结果为“是”;
步骤(37).从所有访问标记为“未访问”的可用漏洞信息表中,选出漏洞可用性累积概率值最大的一条可用漏洞信息,因此选择可用漏洞信息“[G,V6,AB(V1)E(V4)G(V6),0.315]”,将该可用漏洞信息从可用漏洞信息表中移除,并将该可用漏洞信息表的访问标记设置为“已访问”,查询漏洞V6的漏洞利用的后果信息为“攻击者获取该结点上的管理员用户执行权限”,更新攻击者在结点G上的访问权限,设定结点G为当前结点,设定该攻击路径“AB(V1)E(V4)G(V6)”为当前攻击路径,查询并判断所有能被结点G直接访问的结点上的漏洞,发现从结点G不能够攻击任何其它结点;
步骤(38).判定当前结点G属于目标结点集合“{结点E,结点G}”;
步骤(39).判断当前结点G已经输出的攻击路径的数量是否已满足要求,判断结果为“否”;
步骤(40).将当前攻击路径“AB(V1)E(V4)G(V6)”写入当前结点G的攻击路径信息集合并输出;
步骤(41).判断当前结点G已经输出的攻击路径的数量是否已满足要求,判断结果为“否”,因此把当前攻击路径“AB(V1)E(V4)G(V6)”上各结点相应的可用漏洞信息表的访问标记设置为“未访问”,当前攻击路径“AB(V1)E(V4)G(V6)”上的结点是结点B、结点E和结点G,各结点的可用漏洞信息表中的具体内容和访问标记如图12所示;
步骤(42).判断是否所有的可用漏洞信息表均为空表,判断结果为“否”;
步骤(43).查询所有非空的可用漏洞信息表的访问标记,判断是否存在访问标记为“未访问”的可用漏洞信息表,判断结果为“是”;
步骤(44).从所有访问标记为“未访问”的可用漏洞信息表中,选出漏洞可用性累积概率值最大的一条可用漏洞信息,因此选择可用漏洞信息“[E,V4,AD(V3)E(V4),0.49]”,将该可用漏洞信息从可用漏洞信息表中移除,并将该可用漏洞信息表的访问标记设置为“已访问”,查询漏洞V4的漏洞利用的后果信息为“攻击者获取该结点上的管理员用户执行权限”,更新攻击者在结点E上的访问权限,设定结点E为当前结点,设定该攻击路径“AD(V3)E(V4)”为当前攻击路径,查询并判断所有能被结点E直接访问的结点上的漏洞,发现从结点E能够攻击结点G上的漏洞V6,且不存在攻击环路,因此将可用漏洞信息“[G,V6,AD(V3)E(V4)G(V6),0.245]”放入结点G的可用漏洞信息表中;
步骤(45).判定当前结点E属于目标结点集合“{结点E,结点G}”;
步骤(46).判断当前结点E已经输出的攻击路径的数量是否已满足要求,判断结果为“是”;
步骤(47).判断是否目标结点集合中所有目标结点已经输出的攻击路径的数量均已满足要求,判断结果为“否”,因为目标结点G已经输出的攻击路径的数量小于设定值,各结点的可用漏洞信息表中的具体内容和访问标记如图13所示;
步骤(48).判断是否所有的可用漏洞信息表均为空表,判断结果为“否”;
步骤(49).查询所有非空的可用漏洞信息表的访问标记,判断是否存在访问标记为“未访问”的可用漏洞信息表,判断结果为“是”;
步骤(50).从所有访问标记为“未访问”的可用漏洞信息表中,选出漏洞可用性累积概率值最大的一条可用漏洞信息,因此选择可用漏洞信息“[G,V6,AC(V2)E(V4)G(V6),0.28]”,将该可用漏洞信息从可用漏洞信息表中移除,并将该可用漏洞信息表的访问标记设置为“已访问”,查询漏洞V6的漏洞利用的后果信息为“攻击者获取该结点上的管理员用户执行权限”,更新攻击者在结点G上的访问权限,设定结点G为当前结点,设定该攻击路径“AC(V2)E(V4)G(V6)”为当前攻击路径,查询并判断所有能被结点G直接访问的结点上的漏洞,发现从结点G不能够攻击任何其它结点;
步骤(51).判定当前结点G属于目标结点集合“{结点E,结点G}”;
步骤(52).判断当前结点G已经输出的攻击路径的数量是否已满足要求,判断结果为“否”;
步骤(53).将当前攻击路径“AC(V2)E(V4)G(V6)”写入当前结点G的攻击路径信息集合并输出;
步骤(54).判断当前结点G已经输出的攻击路径的数量是否已满足要求,判断结果为“否”,因此把当前攻击路径“AC(V2)E(V4)G(V6)”上各结点相应的可用漏洞信息表的访问标记设置为“未访问”,当前攻击路径“AC(V2)E(V4)G(V6)”上的结点是结点C、结点E和结点G,各结点的可用漏洞信息表中的具体内容和访问标记如图14所示;
步骤(55).判断是否所有的可用漏洞信息表均为空表,判断结果为“否”;
步骤(56).查询所有非空的可用漏洞信息表的访问标记,判断是否存在访问标记为“未访问”的可用漏洞信息表,判断结果为“是”;
步骤(57).从所有访问标记为“未访问”的可用漏洞信息表中,选出漏洞可用性累积概率值最大的一条可用漏洞信息,因此选择可用漏洞信息“[G,V6,AB(V1)F(V5)G(V6),0.27]”,将该可用漏洞信息从可用漏洞信息表中移除,并将该可用漏洞信息表的访问标记设置为“已访问”,查询漏洞V6的漏洞利用的后果信息为“攻击者获取该结点上的管理员用户执行权限”,更新攻击者在结点G上的访问权限,设定结点G为当前结点,设定该攻击路径“AB(V1)F(V5)G(V6)”为当前攻击路径,查询并判断所有能被结点G直接访问的结点上的漏洞,发现从结点G不能够攻击任何其它结点;
步骤(58).判定当前结点G属于目标结点集合“{结点E,结点G}”;
步骤(59).判断当前结点G已经输出的攻击路径的数量是否已满足要求,判断结果为“否”;
步骤(60).将当前攻击路径“AB(V1)F(V5)G(V6)”写入当前结点G的攻击路径信息集合并输出;
步骤(61).判断当前结点G已经输出的攻击路径的数量是否已满足要求,因为结点G已经输出的攻击路径的数量为3,已满足要求,所以不会改变任何结点的相应的可用漏洞信息表的访问标记;各结点的可用漏洞信息表中的具体内容和访问标记如图15所示;
步骤(62).判断是否所有的可用漏洞信息表均为空表,判断结果为“否”;
步骤(63).查询所有非空的可用漏洞信息表的访问标记,判断是否存在访问标记为“未访问”的可用漏洞信息表,判断结果为“否”;
步骤(64).汇总输出计算结果。在算法运行过程中,已经陆续输出了攻击指定目标结点集合中各个结点的多条攻击路径,其相关信息也已经记录在各个结点的数据结构中,在该步骤中,可以根据实际需要,汇总输出需要查看的计算结果。
对于该实施例,若采用专利1提供的方法求解,因为该方法采用的漏洞选取策略是按照漏洞可用性累积概率值从大到小的顺序依次选取可用漏洞,所以在计算和输出攻击结点G的攻击路径之前,会选择并计算结点F所对应的可用漏洞信息表中的两条可用漏洞信息“[F,V5,AC(V2)F(V5),0.48]”和“[F,V5,AD(V3)F(V5),0.42]”,因为这两条可用漏洞信息的漏洞可用性累积概率值均大于结点G的可用漏洞信息表中的漏洞可用性累积概率值;对于该实施例,若采用专利2提供的方法求解,因为该方法采用分轮次求解的策略,在求解攻击结点G的前3条最大概率攻击路径的同时,也会计算并输出攻击结点F的前3条最大概率攻击路径,所以结点F所对应的可用漏洞信息表中的两条可用漏洞信息“[F,V5,AC(V2)F(V5),0.48]”和“[F,V5,AD(V3)F(V5),0.42]”会被选择和计算;本发明提供的方法能够根据指定目标结点集合的信息有选择的对各结点的可用漏洞信息表进行标记和选取,在计算过程中判断出结点F所对应的可用漏洞信息表中的两条可用漏洞信息“[F,V5,AC(V2)F(V5),0.48]”和“[F,V5,AD(V3)F(V5),0.42]”不影响最终计算结果,所以不选取上述两条可用漏洞信息,从而减少了计算量,在网络规模较大且指定目标结点集合中的结点数量较少的情况下,本发明提供的方法能够极大的减少计算量,提高攻击路径输出的实时性。
在该实施例中,漏洞利用的后果信息均为“攻击者获取该结点上的管理员用户执行权限”,因此为每个结点建立了一个可用漏洞信息表,在具体实施过程中,可以根据具体情况和需要对多种漏洞利用的后果信息进行分类,为每个结点建立多个可用漏洞信息表。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等同物界定。
Claims (1)
1.一种指定目标结点集合的K最大概率攻击路径求解方法,其特征在于包括以下步骤:
步骤1、为网络中每个结点分别建立L个可用漏洞信息表,其中L为漏洞利用的后果分类的数量,每个可用漏洞信息表对应一种类型的漏洞利用的后果;所述可用漏洞信息表中的可用漏洞信息包含结点编号、漏洞编号、从攻击者开始的具体攻击路径和漏洞可用性累积概率值;所述漏洞可用性累积概率值的计算方法为:将从攻击者开始的漏洞利用路径上各漏洞的可用性概率值相乘得出;设定目标结点集合,并分别设定每个目标结点需要求解的K最大概率攻击路径的数量,每个目标结点设定的K的取值可以不同;
所述漏洞利用的后果包括访问权限的变化和非访问权限类的后果,所述访问权限包括普通用户访问权限、root或管理员用户访问权限,其中普通用户访问权限又可细分为普通用户读权限、普通用户写权限、普通用户执行权限,root或管理员用户访问权限又可细分为root或管理员用户读权限、root或管理员用户写权限、root或管理员用户执行权限,所述非访问权限类的后果指除访问权限外的其它所有的漏洞利用的后果;
步骤2、将所有可用漏洞信息表初始化为空表;
步骤3、设置所有可用漏洞信息表的访问标记为“未访问”;
步骤4、从攻击者位置开始,查询并判断所有能被攻击者直接访问的结点上的漏洞,若漏洞利用的前提条件已满足,则根据该漏洞利用的后果信息将该漏洞放入漏洞所在结点的相对应的可用漏洞信息表中;
所述“根据该漏洞利用的后果信息将该漏洞放入漏洞所在结点的相对应的可用漏洞信息表”的具体规则包括:若同一漏洞有多个漏洞利用的后果,则按照漏洞利用的后果危害性高低关系,依据漏洞利用的后果中的最高危害性,将该漏洞放入漏洞所在结点的相对应的可用漏洞信息表中;
步骤5、判断是否所有的可用漏洞信息表均为空表,若是,转步骤13,若否,转步骤6;
步骤6、查询所有非空的可用漏洞信息表的访问标记,判断是否存在访问标记为“未访问”的可用漏洞信息表,若是,转步骤7,若否,转步骤13;
步骤7、从所有访问标记为“未访问”的可用漏洞信息表中,选出漏洞可用性累积概率值最大的一条可用漏洞信息,将该可用漏洞信息从可用漏洞信息表中移除,并将该可用漏洞信息表的访问标记设置为“已访问”,查询该漏洞利用的后果信息,更新攻击者在该结点上的访问权限和非访问权限类的后果,设定该结点为当前结点,设定该攻击路径为当前攻击路径,查询并判断所有能被该结点直接访问的结点上的漏洞,若该结点本次有变化的访问权限是漏洞攻击的必要条件且相应漏洞利用的前提条件已满足且不存在攻击环路,则根据漏洞利用的后果信息将相应漏洞放入漏洞所在结点的相对应的可用漏洞信息表中;所述攻击环路指攻击路径中存在重复出现的结点且在重复出现的结点上的攻击目的相同;
步骤8、判断当前结点是否属于目标结点集合,若是,转步骤9,若否,转步骤5;
步骤9、判断当前结点已经输出的攻击路径的数量是否已满足要求,若是,转步骤10,若否,转步骤11;
步骤10、判断是否目标结点集合中所有目标结点已经输出的攻击路径的数量均已满足要求,若是,转步骤13,若否,转步骤5;
步骤11、将当前攻击路径写入当前结点的攻击路径信息集合并输出;
步骤12、判断当前结点已经输出的攻击路径的数量是否已满足要求,若是,转步骤5,若否,把当前攻击路径上各结点相应的可用漏洞信息表的访问标记设置为“未访问”,转步骤5;
步骤13、汇总输出计算结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711100183.4A CN107888588B (zh) | 2017-11-09 | 2017-11-09 | 一种指定目标结点集合的k最大概率攻击路径求解方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711100183.4A CN107888588B (zh) | 2017-11-09 | 2017-11-09 | 一种指定目标结点集合的k最大概率攻击路径求解方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107888588A CN107888588A (zh) | 2018-04-06 |
CN107888588B true CN107888588B (zh) | 2020-07-24 |
Family
ID=61779919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711100183.4A Active CN107888588B (zh) | 2017-11-09 | 2017-11-09 | 一种指定目标结点集合的k最大概率攻击路径求解方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107888588B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6898846B2 (ja) * | 2017-12-28 | 2021-07-07 | 株式会社日立製作所 | 異常原因特定支援システムおよび異常原因特定支援方法 |
CN117390029B (zh) * | 2023-12-11 | 2024-05-17 | 格创通信(浙江)有限公司 | 一种表项插入方法、装置、电子设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8863293B2 (en) * | 2012-05-23 | 2014-10-14 | International Business Machines Corporation | Predicting attacks based on probabilistic game-theory |
US9276951B2 (en) * | 2013-08-23 | 2016-03-01 | The Boeing Company | System and method for discovering optimal network attack paths |
CN104394177A (zh) * | 2014-12-16 | 2015-03-04 | 云南电力调度控制中心 | 一种基于全局攻击图的攻击目标可达性的计算方法 |
CN105871882B (zh) * | 2016-05-10 | 2019-02-19 | 国家电网公司 | 基于网络节点脆弱性和攻击信息的网络安全风险分析方法 |
CN106657144B (zh) * | 2017-01-20 | 2019-06-28 | 北京理工大学 | 一种基于增强学习的动态保护路径规划方法 |
-
2017
- 2017-11-09 CN CN201711100183.4A patent/CN107888588B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107888588A (zh) | 2018-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Miehling et al. | A POMDP approach to the dynamic defense of large-scale cyber networks | |
US10673903B2 (en) | Classification of security rules | |
Wang et al. | A network gene-based framework for detecting advanced persistent threats | |
CN104426768B (zh) | 一种数据报文转发方法及装置 | |
Zhou et al. | Exploiting the Vulnerability of Flow Table Overflow in Software‐Defined Network: Attack Model, Evaluation, and Defense | |
US20180176294A1 (en) | Server load balancing | |
TW201931187A (zh) | 統一資源定位符(url)攻擊檢測方法、裝置及電子設備 | |
CN113315742B (zh) | 攻击行为检测方法、装置及攻击检测设备 | |
US9705795B2 (en) | Look-up table creation method and query method, controller, forwarding device, and system | |
CN107888588B (zh) | 一种指定目标结点集合的k最大概率攻击路径求解方法 | |
CN114531273B (zh) | 一种防御工业网络系统分布式拒绝服务攻击的方法 | |
CN112269316A (zh) | 一种基于图神经网络的高鲁棒性威胁狩猎系统与方法 | |
JP2019102960A (ja) | サイバー攻撃検知システム、特徴量選定システム、サイバー攻撃検知方法、及びプログラム | |
Zhong et al. | An efficient parallel reinforcement learning approach to cross-layer defense mechanism in industrial control systems | |
CN116545921A (zh) | 基于ecmp的报文转发方法、装置、设备及存储介质 | |
Huang et al. | Sequential attacker–defender game on complex networks considering the cascading failure process | |
Nallusamy et al. | Decision Tree‐Based Entries Reduction scheme using multi‐match attributes to prevent flow table overflow in SDN environment | |
WO2022252039A1 (en) | Method and apparatus for adversarial attacking in deep reinforcement learning | |
Sukhwani et al. | A survey of anomaly detection techniques and hidden markov model | |
Zhao et al. | HGAttack: Transferable Heterogeneous Graph Adversarial Attack | |
CN106506399B (zh) | 实现mfp的方法、装置及数据交换芯片 | |
CN107733917B (zh) | 一种指定目标结点集合的k最大概率攻击路径的渐进式求解方法 | |
CN114726565A (zh) | 威胁情报共享方法、威胁情报评级方法、系统及存储介质 | |
CN107135221B (zh) | 一种渐进式求解k最大概率攻击路径的方法 | |
CN107248929B (zh) | 一种多维关联数据的强关联数据生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |