发明内容
为了实现上述目的,本方法采用属性攻击图对网络进行建模分析,并提出一种基于初始属性节点集合构成的支配集,从而确定网络加固策略的方法,更适应对规模较大的网络进行加固。针对规模较大的网络,借鉴图论中支配集的思想,将属性攻击图映射为有向二部图,采用贪心算法求解初始属性节点的最小支配集,所得到的最小支配集MDS,可以帮助网络人员选取合理的网络加固策略。
本发明的目的是采用下述技术方案实现的:
一种针对网络脆弱性的加固策略生成方法,所述方法包括下述步骤:
1)构建初始属性节点集合和原子攻击节点集合;所述原子攻击节点集合中包括后果属性节点;
2)确定包含两类节点的属性攻击图,并将属性攻击图映射为二部图;
3)删除二部图中所有后果属性节点;
4)识别删除后果属性节点后,二部图中初始属性节点集合的节点与边,并利用GREEDY-SET-COVER算法获取最小支配集。
优选的,所述步骤1)中,构建初始属性节点集合包括:令为属性攻击图G的初始属性节点集合,u∈Pre为初始属性节点,则初始属性节点u的入边集I(u)={w:(w,u)∈E},又
初始属性节点的入度id(u)=0,
初始属性节点的出边集为O(u)={v:(u,v)∈E},任意初始属性节点u∈Pre,则初始属性节点的出度为od(u)≥1,
其中,w为前提边,E为有向边集合。
优选的,所述步骤1)中,构建原子攻击节点集合包括:令为属性攻击图G中原子攻击节点构成的有限集合A={a1,a2,a3,...,am},则原子攻击ai的入边集为I(ai)={w:(w,ai)∈E};
其中,w为前提边,ai的原子攻击入度
生成后果属性节点,即原子攻击的出度
优选的,所述步骤2)确定包含两类节点的属性攻击图包括:定义原子攻击节点集合为A,属性节点集合C,前提边集合为后果边集合为确定属性攻击图G(A∪C,Rr∪Ri);
其中,(A∪C)为属性节点集合,Rr∪Ri为边集合。
优选的,所述步骤2)将属性攻击图映射为二部图包括:令G=(V,E)为初始属性节点集合V与有向边集合E构成的有向二部图,有
对于任意边(u,v)∈E,(u,v)=u→v表示该边由初始属性节点u指向节点v;
设S1、S2均为构成初始属性节点集合V的划分,当且仅当时,G为二部图;其中,u为v的前驱,v为u的后继。
优选的,所述步骤3)的二部图包含初始属性节点、原子攻击节点,以及初始属性节点指向原子攻击节点的有向边。
优选的,所述步骤4)识别删除后果属性节点后,二部图中初始属性节点集合的节点与边包括:输入G=<V,E>,采用最小生成树算法识别G中的所有节点与边<V,E>←MST(G)。
进一步地,所述步骤4)利用GREEDY-SET-COVER算法获取最小支配集:假定G中的所有m个原子攻击节点会被划分成n个子集,该n个子集中的每一个都对应特定的初始属性节点;记录每个初始属性节点所覆盖的原子攻击的数目,每个初始属性节点覆盖的原子攻击表示删除后果属性节点的二部图G中相应原子攻击节点的子集;
输入集合簇S(i)=Si,(1≤i≤n)为原子攻击节点集合ε的子集,当X∈C∧ε=∪X∈ CC时,集合X覆盖全部原子攻击节点;其中,C为ε集合幂集的子集即集合ε为原子攻击节点的全集,ε,|ε|=m;
采用GREEDY-SET-COVER(ε,S)算法获取覆盖所有原子攻击节点的初始属性节点属性攻击图中的最优覆盖集D=D∪S(i),即最小支配集。
与现有技术相比,本发明达到的有益效果是:
本发明通过建立目标网络对应的属性攻击图并求解初始属性节点集合的最优覆盖集从而确定合理的网络加固措施。所得的极小支配集可以覆盖攻击图中所有的原子攻击。这一支配集可以帮助网络人员选取合理的网络加固策略。本方案适用于规模较大的网络中,网络管理员只需要关注初始属性节点集合中的部分节点即可实现对网络的高效加固。
1)使用属性攻击图进行脆弱性分析更加直观有效。
2)适用于针对规模较大的网络进行加固,可以有效解决状态爆炸问题。
3)最优网络加固策略的生成问题就转换为了求解初始属性节点集合构成的最小支配集的问题。得出的最小支配节点代表一系列关键属性,这些属性覆盖所有的原子攻击节点,如果能使这些属性失效即可实现有效的网络安全防御。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步的详细说明。
单个初始属性节点的状态可能决定着多个原子攻击成功与否,初始属性节点集合与原子攻击节点集合之间的关系是多对多的关系(M:N)。给定一个初始属性节点集合S={x,y,z},现在考虑这样一种情况,初始属性节点x是所有原子攻击节点的前提属性节点,而y与z节点仅为部分原子攻击的前提属性节点,此时称在该集合中x占主导地位。对于原子攻击节点,其所有前提条件节点状态都为True时,该原子攻击方能执行。各初始属性节点间的关系为合取关系,因此在移除处于主导地位的初始属性节点,例如此处的x,就可以阻止大部分原子攻击的发生。
如此,最优网络加固策略的生成问题就转换为了求解初始属性节点集合构成的最小支配集的问题。主要思想即为将属性攻击图看作一个有向二部图,通过计算攻击图G由初始属性节点集合构成的最小支配集(MDS)的方式,来决定网络加固所应采取的措施。得出的最小支配节点代表一系列关键属性,这些属性覆盖所有的原子攻击节点,如果能使这些属性失效即可实现有效的网络安全防御。
为解决这一问题,可将上述问题转换为经典的集合覆盖问题(Set CoverProblem,SCP)。因为属性攻击图G中每个初始属性节点都可以覆盖一个或多个原子攻击节点,可以假定属性攻击图G中的所有m个原子攻击节点会被划分成n个子集,这n个子集中的每一个都对应特定的初始属性节点。本章的目标即在于计算攻击图G中所有原子攻击节点的最优覆盖集,该集合可以覆盖属性攻击图中的所有原子攻击节点且初始属性节点的数目最小。更精确的表述:令集合ε,|ε|=m为原子攻击节点的全集,C为ε集合幂集的子集即集合X覆盖全部原子攻击节点,当X∈C∧ε=UX∈CC。
因为在网络加固时,我们仅考虑初始属性节点集合,算法中计算了每个初始属性节点所覆盖的原子攻击的数目。每个初始属性节点覆盖的原子攻击代表攻击图G中相应原子攻击的子集。集合簇C中的每一个子集至少覆盖攻击图G中的一个原子攻击构成的子集。目标即为寻找一个集合可以覆盖攻击图G中的所有原子攻击节点。GREEDY-SET-COVER用来实现这一目标。由该算法找到的覆盖所有原子攻击的极小集合簇,即为最终要求得的MDS。这一初始属性节点构成的集合覆盖G中的所有原子攻击,进而也就成为初始属性节点集合对应的支配集。
如图1所示,本发明提供一种针对网络脆弱性的加固策略生成方法,所述方法包括下述步骤:
1)构建初始属性节点集合和原子攻击节点集合;所述原子攻击节点集合中包括后果属性节点;
2)确定包含两类节点的属性攻击图,并将属性攻击图映射为二部图;
3)删除二部图中所有后果属性节点;
4)识别删除后果属性节点后,二部图中初始属性节点集合的节点与边,并利用GREEDY-SET-COVER算法获取最小支配集。
第一步:分析网络建模环境,构建初始属性节点集合和原子攻击节点集合;
1、初始属性节点集合:属性攻击图中含有两类安全属性节点。第一类属性节点仅作为原子攻击的前提属性节点存在,不作为任何原子攻击的后果属性节点,且该类属性节点仅存在于属性攻击图的初始位置,这一类节点被称作初始属性节点。该类节点对于网络加固非常重要,因为其处在各种攻击的入口位置。第二类属性节点既是原子攻击的前提属性节点,又是原子攻击的后果属性节点,该类安全属性节点不处于属性攻击图的初始位置,代表某些成功原子攻击造成的后果。
2、令为属性攻击图G中攻击者可以触及的有限初始属性节点集合;令u∈Pre为初始属性节点,则I(u)={w:(w,u)∈E}为初始属性节点u的入边集合。
则又
属性节点的入度id(u)=0,
初始属性节点的出边集为O(u)={v:(u,v)∈E}。初始属性节点一旦条件满足,即可导致一个或多个脆弱点被利用。换而言之,任意初始属性节点u∈Pre都覆盖着一个或者多个原子攻击属性节点。
初始属性节点的出度有od(u)≥1,
3、原子攻击节点集合(Exploits):根据定义1,令为属性攻击图G中原子攻击节点构成的有限集合,其中A={a1,a2,a3,...,am}。原子攻击ai的入边集为I(ai)={w:(w,ai)∈E},其中w是前提边。任意原子攻击ai若要成功被执行,必须有一个或多个前提属性节点,且其前提条件必须全部满足。因此,其入度成功的原子攻击会造成一个后果属性节点,因此,原子攻击的出度
表1属性攻击图节点出度入度
第二步:属性攻击图。属性攻击图为一个有向图,给定原子攻击节点集合为A,属性节点集合C,前提边集合为后果边集合为那么属性攻击图定义为G(A∪C,Rr∪Ri),其中(A∪C)为属性节点集合,Pr∪Ri为边集合。
令G=(V,E)为节点集合V与有向边集合E构成的有向二部图。那么有对于任意边(u,v)∈E,(u,v)=u→v代表该边由节点u指向节点v,其中u为v的前驱,v为u的后继。设S1与S2构成集合V的一个划分,当且仅当时,G为二部图。
第三步:由于计算图的支配集目前尚无多项式时间的算法,寻找属性攻击图的最小支配集较为困难,为消减该问题的复杂度采用一种保守的方法。原子攻击节点与初始属性节点是攻击图中最重要的节点,而后果属性节点仅为成功的原子攻击的结果。将二部图中所有后果属性节点移除。
上述操作得二部图如图2(b)所示,图中仅含初始属性节点,原子攻击节点,及前者指向后者的有向边。在所得二部图中计算得到的MDS即给出了覆盖属性攻击图中所有原子攻击的初始属性节点集合。
第四步:findMDS算法如下:
在网络加固时,仅考虑初始属性节点集合,算法中计算了每个初始属性节点所覆盖的原子攻击的数目。每个初始属性节点覆盖的原子攻击代表攻击图G中相应原子攻击的子集。由该算法找到的覆盖所有原子攻击的极小集合簇即为最终要求的MDS。这一初始属性节点构成的集合覆盖G中的所有原子攻击,进而也就成为初始属性节点集合对应的支配集。
GREEDY-SET-COVER算法如下:
采用如图3所示的网络拓扑进行分析:
其中Host3是攻击者的攻击目标主机,其上运行的Mysql数据库服务是关键资源。攻击者是一个恶意实体,其目标是获取Host3上的root权限。防火墙将目标网络与互联网络隔开。
表3网络防火墙配置
表4展示了网络中各主机节点上脆弱点利用相关信息的具体情况。网络中的外网防火墙只允许外网中的主机访问Host0上的服务。到其他任何主机的连接都会被阻止。内网主机仅允许根据
表3网络防火墙配置中的访问控制规则进行通信。ALL代表源主机可以访问目的主机上的所有服务。NONE表示源主机对目的主机的任何服务进行访问都会被阻止[69]。
表4脆弱点利用相关信息
根据图3所示的网络拓扑以及如表所示的访问控制规则生成的属性攻击图如图4所示。其中原子攻击节点用椭圆表示,初始属性节点用矩形表示,后果属性节点用纯文本表示。在每步原子攻击之间椭圆连接了前提属性节点和后果属性节点。
由图可知,图4中共有17个原子攻击节点。原子攻击若想被成功实施,其前提属性节点必须全部满足。后果属性节点无法被移除,除非导致令其产生的实际原因,例如脆弱点、不必要的服务/开放端口等已经被从网络中移除。另一方面,初始属性节点在加固网络时却可以被独立的移除。采用第FindMDS算法,可得上述属性攻击图产生的极小支配为:
MDS={user(0),ftp(0,1),squid-proxy(1,3),LICQ(0,3),squid-
proxy(0,3),LICQ(0,3),ftp(2,1),ssh(2,1),net-bios-ssn(0,2),squid-
proxy(2,3),ssh(0,1),netbios-ssn(1,2),LICQ(2,3)}
优先破坏一个或多个初始属性节点可以阻止需要其作为先决条件的网络攻击,进而阻止关键资源被攻陷。值得注意的是安全管理员在做决定的时候必须要考虑这些初始条件对应的成本。
最后应当说明的是:以上实施例仅用以说明本申请的技术方案而非对其保护范围的限制,尽管参照上述实施例对本申请进行了详细的说明,所属领域的普通技术人员应当理解:本领域技术人员阅读本申请后依然可对申请的具体实施方式进行种种变更、修改或者等同替换,这些变更、修改或者等同替换,其均在其申请待批的权利要求范围之内。