一种防御拟态逃逸的方法、装置、存储介质及电子设备与流程
1.本技术涉及网络安全技术领域,具体而言,涉及一种防御拟态逃逸的方法、装置、存储介质及电子设备。
背景技术:
2.网络空间拟态防御(cyber mimic defense,cmd)是一套可防御未知漏洞威胁的网络空间内生安全防御体系架构,拟态防御的核心框架为动态异构冗余架构(dynamic heterogeneous redundancy,dhr)。其核心实现是一种基于网络空间内生安全机理的动态异构冗余构造,为应对网络空间中基于未知漏洞、后门或病毒木马等未知威胁,提供具有普适创新意义的防御理论和方法。
3.目前,拟态技术通常上线三个服务执行体以及一个或多个待上线执行体。虽然理论上上线的服务执行体越多,对未知威胁的防御能力越好,但是对设备的硬件资源的消耗增大,使得服务执行体对请求的响应时间变长。而且服务执行体在服务的过程中,存在服务执行体在异构层上可能出现一致的情况,使得攻击者可以在该异构层利用攻击点得到一致的输出,因此拟态防御机制很难阻止此类逃逸现象的发生。
4.因此,如何提供一种高效的防御拟态逃逸的方法的技术方案成为亟需解决的技术问题。
技术实现要素:
5.本技术的一些实施例的目的在于提供一种防御拟态逃逸的方法、装置、存储介质及电子设备,通过本技术的实施例的技术方案可以降低拟态逃逸现象发生的概率,确保网络系统的安全性。
6.第一方面,本技术的一些实施例提供了一种防御拟态逃逸的方法,包括:获取对网络系统的请求进行服务的目标执行体集合,其中,所述目标执行体集合中包括多个执行体组;利用所述目标执行体集合中的各执行体组对所述网络系统的请求进行响应,获取响应结果,其中,所述各执行体组对不同请求进行响应,所述响应结果表征所述网络系统是否存在拟态逃逸的异常现象。
7.本技术的一些实施例通过目标执行体集合中的多个执行体组对网络系统的请求进行轮询响应,得到响应结果。该实施例可以增加对请求进行服务的执行体,但是不增加响应时间,以此可以有效的降低拟态逃逸现象发生的概率,各执行体组对请求的轮询处理也防止了持续逃逸,对网络系统的安全防护较好。
8.在一些实施例,所述网络系统中包括至少三个异构层,其中,所述获取对网络系统的请求进行服务的目标执行体集合,包括:获取所述异构层中各异构层之间相交的部分执行体,其中,所述部分执行体至少包括四个执行体;将所述部分执行体中的任意三个执行体进行组合,得到所述目标执行体集合中的所述多个执行体组。
9.本技术的一些实施例通过将各异构层之间相交的部分执行体构建目标执行体集
合中的执行体组,以此可以得到多种含有不同异构层的执行体组,通过多种执行体组可以降低拟态逃逸现象的发生概率。
10.在一些实施例,所述获取对网络系统的请求进行服务的目标执行体集合,包括:将所述异构层中的执行体分为相交执行体、相交组和非相交组;将所述相交组和所述非相交组中的执行体分别与所述相交执行体进行组合,得到多个执行体集合;从所述多个执行体集合中任一个执行体组作为所述目标执行体集合。
11.本技术的一些实施例通过异构层之间的关系预先构建好多个执行体集合,然后从中选取目标执行体集合,可以实现尽可能多的构造执行体组,以此可以降低拟态逃逸现象发生的概率,同时可以有效抑制持续攻击。
12.在一些实施例,所述将所述异构层中的执行体分为相交执行体、相交组和非相交组,包括:将所述异构层中均包含的同一执行体作为所述相交执行体;将所述异构层中各异构层之间相交的执行体,构建所述相交组,其中,所述相交组中不包含所述相交执行体;将所述异构层中除所述相交组和所述相交执行体之外的执行体,构建所述非相交组。
13.本技术的一些实施例通过获取相交执行体、相交组和非相交组,可以为后续尽可能多的构造执行体组提供数据支持。
14.在一些实施例,所述相交组和所述非相交组中包括至少三个执行体,所述多个执行体集合中各执行体集合包括至少四组执行体组,所述各执行体组包含三个执行体,其中,将所述相交组和所述非相交组中的执行体分别与所述相交执行体进行组合,得到多个执行体集合,包括:将所述相交组中的任意三个执行体与所述相交执行体进行组合,得到所述多个执行体集合中的任一个;将所述非相交组中的任意三个执行体与所述相交执行体进行组合,得到所述多个执行体集合中的任一个。
15.本技术的一些实施例通过相交组或非相交组中的任意三个执行体与相交执行体以三个一组的形式进行组合,得到多个执行体集合中的任一个集合,可以得到不同执行体的组合,进而得到多种执行体集合。
16.在一些实施例,所述利用所述目标执行体集合中的各执行体组对所述网络系统的请求进行响应,获取响应结果,包括:若所述各执行体组中存在至少两个执行体对所述网络系统的请求的返回结果相同,则确认所述响应结果为正常;若所述各执行体组中的执行体对所述网络系统的请求的返回结果均不相同,则确认所述响应结果为异常。
17.在一些实施例,所述利用所述目标执行体集合中的各执行体组对所述网络系统的请求进行响应,获取响应结果,包括:若所述各执行体组中所有执行体对所述网络系统的请求的返回结果相同,则确认所述响应结果为正常;若所述各执行体组中所有执行体对所述网络系统的请求的返回结果不完全相同,则确认所述响应结果为异常。
18.本技术的一些实施例通过各执行体组针对请求的返回结果是否相同,可以高效的确定请求是否存在异常。
19.在一些实施例,在所述获取响应结果之后,所述方法还包括:根据所述响应结果确定是否更换所述目标执行体集合;或者,根据所述目标执行体集合的服务时间和调度周期时间,确定是否更换所述目标执行体集合。
20.本技术的一些实施例通过响应结果和服务时间确定是否对目标执行体集合执行调度,可以有效抑制持续的攻击,来达到攻击逃逸最小化的目的。
21.在一些实施例,所述根据所述响应结果确定是否更换所述目标执行体集合,包括:在确认所述响应结果为异常,或所述服务时间达到所述调度周期时间时,获取另一执行体集合,并将所述目标执行体集合更换为所述另一执行体集合;利用所述另一执行体集合中的执行体组对所述网络系统的请求进行继续轮询响应,获取所述响应结果。
22.本技术的一些实施例通过在响应结果为异常的情况下,将目标执行体集合更换为另一执行体集合,使其继续对请求进行服务,可以降低拟态逃逸现象发生的概率,实现更好的防御拟态逃逸的效果。
23.在一些实施例,所述获取另一执行体集合,包括:将所述多个执行体集合中除所述目标执行体集合之外的一个集合作为所述另一执行体集合。
24.本技术的一些实施例通过从多个执行体集合中直接选取另一执行体集合,获取方式较便捷。
25.在一些实施例,所述获取另一执行体集合,包括:获取所述异构层中除所述部分执行体之外的剩余执行体,所述剩余执行体至少包括三个执行体;将所述剩余执行体中的与所述相交执行体中的任意三个进行组合,得到所述另一执行体集合中的多个执行体组。
26.本技术的一些实施例通过对剩余执行体和相交执行体以三个一组进行组合,也可以快速得到另一执行体集合。
27.第二方面,本技术的一些实施例提供了一种防御拟态逃逸的装置,包括:获取模块,被配置为获取对网络系统的请求进行服务的目标执行体集合,其中,所述目标执行体集合中包括多个执行体组;响应模块,被配置为利用所述目标执行体集合中的各执行体组对所述网络系统的请求进行响应,获取响应结果,其中,所述各执行体组对不同请求进行响应,所述响应结果表征所述网络系统是否存在拟态逃逸的异常现象。
28.第三方面,本技术的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如第一方面任一实施例所述的方法。
29.第四方面,本技术的一些实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如第一方面任一实施例所述的方法。
30.第五方面,本技术的一些实施例提供一种计算机程序产品,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器执行时可实现如第一方面任一实施例所述的方法。
附图说明
31.为了更清楚地说明本技术的一些实施例的技术方案,下面将对本技术的一些实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
32.图1为本技术的一些实施例提供的一种防御拟态逃逸的系统图;
33.图2为本技术的一些实施例提供的防御拟态逃逸的方法流程图;
34.图3为本技术的一些实施例提供的异构层组成示意图之一;
35.图4为本技术的一些实施例提供的异构层组成示意图之二;
36.图5为本技术的一些实施例提供的一种防御拟态逃逸的装置组成框图;
37.图6为本技术的一些实施例提供的一种电子设备示意图。
具体实施方式
38.下面将结合本技术的一些实施例中的附图,对本技术的一些实施例中的技术方案进行描述。
39.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
40.首先对本技术的一些实施例中涉及的部分用语进行说明,以便于本领域技术人员理解。
41.网络空间拟态防御(cyber mimic defense,cmd)是一套可防御未知漏洞威胁的网络空间内生安全防御体系架构,拟态防御的核心框架为动态异构冗余架构(dynamic heterogeneous redundancy,dhr)。其核心实现是一种基于网络空间内生安全机理的动态异构冗余构造,为应对网络空间中基于未知漏洞、后门或病毒木马等的未知威胁,提供具有普适创新意义的防御理论和方法。
42.异构执行体(集合):信息系统中的软硬构建、部件、设备等实体功能单元,如不同类型的操作系统、软件组件、编程语言等。
43.异构层:不同异构执行体组成存在差异的层面,例如系统层、组件层等。
44.异构单元:同一异构层可以展现出差异的单元,例如系统层的windows、linux等。
45.执行体组:在异构层上均不完全相同的异构执行体组成集合,并在一次循环响应中使用的所有该执行体组成的组。
46.裁决:对多个执行体的结果进行(多数)一致性判断并输出结果的过程。
47.执行体清洗:将执行体恢复至初始状态,可以阻断未知攻击对正在服务执行体的侵入,例如重新读取静态配置文件,避免内存中参数被篡改。
48.拟态逃逸(也称为逃逸现象):服务执行体因某些未知的漏洞、后门或病毒木马等威胁导致全部(或多数)执行体输出了一致的错误结果,使得裁决机制放过了此次响应,令攻击得以成功的现象。
49.持续逃逸:长时间未停止的逃逸现象。
50.动态异构冗余构造的三个核心要素在于:
51.动态:异构执行体动态的调度保证了对于不同时间下的请求,响应请求的载体不再是完全固定不变的。对于攻击者来说,不能确定的攻击目标将对攻击带来极大阻碍。
52.异构:多种异构执行体作为响应请求的载体,对于未知的漏洞、后门或病毒木马等威胁,几乎不可能有着一样的响应。配合拟态裁决机制,即使攻击者掌握了某一个执行体的攻击方法,由于其余执行体的结果不一致,该攻击依旧会阻断。
53.冗余:多种异构执行体是拟态防御的基石,当某一服务执行体不再可信时,仍有其余等待服务的执行体可进行替换,保证了业务的持续进行。
54.相关技术中,当前拟态技术的实现多为3个上线服务执行体,以及1个或多个待上线执行体构成。理论上上线服务的执行体越多,对于未知威胁的防御效果越好,但是相对
的,执行体越多,设备在硬件资源上的消耗越大,以及对于请求的响应时间越长(因为要等待所有服务执行体执行出结果才能开始裁决)。而且在执行体服务的过程当中,由于服务执行体在异构层上可能出现一致的情况,使得攻击者可以在该异构层利用攻击点得到一致的输出,拟态防御机制很难阻止此类逃逸现象的发生。
55.针对上述问题,现有技术中将3个上线服务执行体改为4个上线服务执行体,但是明显增加了对网络的请求响应时间。而且由于执行体本身是可能存在未知的漏洞、后门或病毒木马等威胁,所以并不能算完全可信。另一现有技术使用清洗执行体的方式,再次对多数一致结果进行验证,结果一致则判断不存在逃逸现象;反之,则判断存在逃逸现象。但是该方式仅针对多数一致的情况判断逃逸现象,无法对全部一致的逃逸现象做判断。对于不一致执行体进行清洗再上线判断一致性结果的过程会增加响应耗时。
56.鉴于此,本技术的一些实施例提供了一种防御拟态逃逸的方法,该方法通过对目标执行体集合中的多个执行体组进行构建,使得每个执行体组中的执行体在每个异构面上均不完全一致,以此降低逃逸现象发送的概率。而且本技术还增加了对请求响应的服务执行体组,但是每个执行体组还是保持三个执行体,不会增加对请求的响应时间。
57.下面示例性介绍本技术的一些实施例提供的一种防御拟态逃逸的系统组成结构。
58.如图1所示,本技术的一些实施例提供了一种防御拟态逃逸的系统,该系统包括用户100和网络安全设备200(作为网络系统的一个具体示例)。其中,用户100可以在网络安全设备200上对其异构层以及异构层的执行体设计得到目标执行体集合,以使得目标执行体集合中的执行体组可以对网络安全设备200的请求进行响应,获取响应结果。
59.在本技术的一些实施例中,网络安全设备200可以是防火墙、工业网关、网站应用级入侵防御系统(waf)等等。本技术并不局限于此。
60.下面结合附图2示例性阐述本技术的一些实施例提供的一种防御拟态逃逸的实现过程。
61.请参见附图2,图2为本技术的一些实施例提供的一种防御拟态逃逸的方法流程图,该方法包括:
62.s210,获取对网络系统的请求进行服务的目标执行体集合,其中,所述目标执行体集合中包括多个执行体组。
63.在本技术的一些实施例中,所述网络系统中包括至少三个异构层,其中,s210可以包括:获取所述异构层中各异构层之间相交的部分执行体,其中,所述部分执行体至少包括四个执行体;将所述部分执行体中的任意三个执行体进行组合,得到所述目标执行体集合中的所述多个执行体组。
64.例如,作为本技术的一个具体示例,首先需要对网络安全设备200中的异构层进行区分。以图3所示,图中的三个圆代表有三种异构层,例如,系统层、组件层和编程语言层,且每层各2个异构单元。圆内的a到g为执行体,共7个。其次,将图3中的上方圆为系统层,规定系统层全为系统1,其他执行体(也就是不完全属于系统层的执行体)为系统2;左下圆内组件层全为组件1,其他执行体(也就是不完全属于组件层的执行体)为组件2;右下圆内编程语言层全为语言1,其他执行体(也就是不完全属于编程语言层的执行体)为语言2。可以得到如表1中各执行体组中的异构执行体的具体结构:
65.表1
66.执行体组成(系统-组件-编程语言)a1-2-2b1-1-2c1-1-1/2-2-2d1-2-1e2-1-2f2-1-1g2-2-1
67.之后由图3可以看出系统层、组件层和编程语言层这三个异构层间的相交的部分执行体为b、c、d和f。将b、c、d和f以三个一组,得到四组执行体组:bcd、bcf、cdf和bdf,目标执行体集合为{bcd,bcf,cdf,bdf}。可以发现,四组执行体组里面的执行体在每个异构层上均不完全一致,因此该组合方式可以达到减小逃逸现象发生概率的效果。
68.例如,作为本技术的另一个具体示例,如图4所示,网络安全设备200包括4个异构层,图4中的矩形acki、bdlj、egom、fhpn分别代表4种异构层,它们两两都有交集,且都相交于矩形fgkj。图4中包括a到i共9个执行体,其中有交集的执行体为b、d、e、f、h。假设第一个异构层矩形acki代表系统层面的异构,则该矩形内的所有执行体在该异构层的异构单元应为系统1,其余执行体为系统2,依此类推。具体可参照上述图3的实施例,本技术在此不作赘述。具体地,若不考虑执行体e,可以将b、d、f、h以三个为一组,得到目标执行体集合{bdf,bdh,bfh,dfh}。若考虑e,则将b、d、e、f、h以三个为一组得到多个执行体组。需要说明的是,e需要根据设计成本和开发成本来确定是否将其加入到构建执行体组的过程中,具体情况可以具体分析。
69.但是,当e被考虑时,e的组成需要有规律的进行替换。由图4可知每个代表异构层的矩形内均包含3个相交执行体,里面的执行体e仅需要在该异构层上选择第2个异构单元,其余异构层均选择异构单元1,以此类推。假设矩形acki代表系统层,在矩形内的执行体应该选择windows系统,矩形外执行体选择linux系统,但是为了保证执行体组b、d、e里面相交的三个执行体在系统层均不完全一致,则执行体b、d为windows系统,执行体e应该变成linux系统。最终使得各执行体组内异构层均不完全一致。
70.在本技术的另一些实施例中,s210还可以包括:s211,将所述异构层中的执行体分为相交执行体、相交组和非相交组;s212,将所述相交组和所述非相交组中的执行体分别与所述相交执行体进行组合,得到多个执行体集合;s213,从所述多个执行体集合中任一个执行体组作为所述目标执行体集合。
71.例如,在本技术的另一些实施例中,可以先设计出多个执行体集合,然后将多个执行体集合中的任一个作为目标执行体集合。
72.在本技术的另一些实施例中,s211还可以包括:将所述异构层中均包含的同一执行体作为所述相交执行体;将所述异构层中各异构层之间相交的执行体,构建所述相交组,其中,所述相交组中不包含所述相交执行体;将所述异构层中除所述相交组和所述相交执行体之外的执行体,构建所述非相交组。
73.例如,作为本技术的一个具体示例,由图3可知,系统层、组件层和编程语言层均相交的执行体为c,c即为相交执行体,系统层、组件层和编程语言层两两相交的相交组为b、d
和f。非相交组即为a、e和g。
74.例如,作为本技术的另一个具体示例,由图4可知,四个异构层的相交执行体为e,相交组为b、d、f、h,非相交组为a、c、g、i。
75.在本技术的另一些实施例中,所述相交组和所述非相交组中包括至少三个执行体,所述多个执行体集合中各执行体集合包括至少四组执行体组,所述各执行体组包含三个执行体,其中,s212还可以包括:将所述相交组中的任意三个执行体与所述相交执行体进行组合,得到所述多个执行体集合中的任一个;将所述非相交组中的任意三个执行体与所述相交执行体进行组合,得到所述多个执行体集合中的任一个。
76.例如,作为本技术的一个具体示例,将相交组的b、d和f与c进行组合,得到一个执行体集合{bcd,bcf,cdf,bdf},非相交组的a、e和g与c进行组合,得到一个执行体集合{acg,ace,ecg,aeg}。其中,目标执行体集合可以为{bcd,bcf,cdf,bdf}或{acg,ace,ecg,aeg}。
77.例如,作为本技术的另一个具体示例,由图4可知,在大于三个异构层以上的情况,可以根据实际情况确认是否考虑相交执行体e,如果考虑执行体e,则可以将b、d、f、h、e以三个一组,得到多个执行体集合中的一个集合。或者将a、c、g、i、e以三个一组,得到多个执行体集合中的一个集合。或者,不考虑执行体e,直接将相交组的b、d、f、h以三个一组,得到多个执行体集合中的一个集合。将非相交组为a、c、g、i以三个一组,得到多个执行体集合中的一个集合。本技术中的每个执行体组还是由三个执行体组成,但是一个执行体集合中的执行体组数量不一致。
78.可以理解的是,本技术的一些实施例在对一个请求进行响应时,还是每次只采用三个执行体,其并不影响对请求的响应时间。而执行体组的数量的增加可以对多次请求进行轮询响应,实现了对拟态逃逸现象的有效防御,降低了拟态逃逸现象的发生概率。
79.需要说明的是,目标执行体集合的获取方法可以根据异构层的数量发生变化,但是原理与上述实施例类似,为了描述简洁,本技术只对异构层为三个和四个的情况进行了阐述。但是本技术并不局限于此。
80.s220,利用所述目标执行体集合中的各执行体组对所述网络系统的请求进行响应,获取响应结果,其中,所述各执行体组对不同请求进行响应,所述响应结果表征所述网络系统是否存在拟态逃逸的异常现象。
81.例如,在本技术的一些实施例中,目标执行体集合中的各执行体组是对网络安全设备200中的请求进行轮询响应,也就是每个执行体组服务的请求不同。
82.例如,作为本技术的一个具体示例,目标执行体集合为{bcd,bcf,cdf,bdf},网络安全设备200连续接收到六个请求,则可以将第一个请求分配给bcd响应,第二个请求分配给bcf响应,第三个请求分配给cdf响应,第四个请求分配给bdf响应,第五个请求分配给bcd响应,第六个请求分配给bcf响应。若网络安全设备200同时接收到六个请求,可以将六个请求按轮询的顺序分别分配给对应的执行体组。在实际应用中,若拟态逃逸问题出现在某一个执行体上(例如执行体b上),则也能保证在四次请求中,有一次请求是该问题执行体不参与的(例如,执行体组cdf不参与),因此可以一定程度地抑制持续攻击。由于每次响应仍使用的是三个执行体,故相较于现有方案没有响应时间上的增加。
83.在本技术的一些实施例中,s220可以包括:若所述各执行体组中存在至少两个执行体对所述网络系统的请求的返回结果相同,则确认所述响应结果为正常;若所述各执行
体组中的执行体对所述网络系统的请求的返回结果均不相同,则确认所述响应结果为异常。网络安全设备200的裁决模块可以采用多种方式确认响应结果是否异常。例如,在本技术的一些实施例中,采用完全一致判断,当各执行体组中的三个执行体对一个请求的返回结果一致,则输出一致的结果,否则确认响应结果为异常,对该请求进行拦截。
84.在本技术的另一些实施例中,s220可以包括:若所述各执行体组中所有执行体对所述网络系统的请求的返回结果相同,则确认所述响应结果为正常;若所述各执行体组中所有执行体对所述网络系统的请求的返回结果不完全相同,则确认所述响应结果为异常。
85.在本技术的另一些实施例中,可以采用多数一致判断,当各执行体组中的至少两个执行体对一个请求的返回结果一致,则输出一致的结果,否则确认响应结果为异常,对该请求进行拦截。
86.在本技术的一些实施例中,执行s220之后,防御拟态逃逸的方法还包括(图中未示出):s230,根据所述响应结果确定是否更换所述目标执行体集合;或者,根据所述目标执行体集合的服务时间和调度周期时间确定是否更换所述目标执行体集合。
87.在本技术的一些实施例中,s230可以包括:在确认所述响应结果为异常,或所述服务时间达到所述调度周期时间时,获取另一执行体集合,并将所述目标执行体集合更换为所述另一执行体集合;利用所述另一执行体集合中的执行体组对所述网络系统的请求进行继续轮询响应,获取所述响应结果。
88.例如,在本技术的一些实施例中,当响应结果为异常时或者需要动态调度(也就是服务时间达到调度周期时间,例如调度周期时间为2小时,服务时间达到2小时则需要动态调度)时,可以在另一执行体集合准备完毕后,下线当前的目标执行体集合,上线另一执行体集合,利用另一执行体集合中的各执行体组继续对网络安全设备200的请求进行轮询响应。具体轮询方式可参照上述目标执行体集合中各执行体组的方式。为描述简洁,本技术在此不作赘述。
89.在本技术的一些实施例中,s230可以包括:将所述多个执行体集合中除所述目标执行体集合之外的一个集合作为所述另一执行体集合。
90.例如,作为本技术的一个具体示例,由图3得到的多个执行体结合包括:{bcd,bcf,cdf,bdf}或{acg,ace,ecg,aeg}。若目标执行体集合为{bcd,bcf,cdf,bdf},则另一执行体集合为{acg,ace,ecg,aeg}。若目标执行体集合为{acg,ace,ecg,aeg},则另一执行体集合为{bcd,bcf,cdf,bdf}。可以理解的是,图4中对获取另一执行体集合的方法和图3类似,只需要在多个执行体集合中除目标执行体集合之外的集合中选取一个即可,本技术在此不作赘述。
91.在本技术的一些实施例中,s230可以包括:获取所述异构层中除所述部分执行体之外的剩余执行体,所述剩余执行体至少包括三个执行体;将所述剩余执行体中的与所述相交执行体中的任意三个进行组合,得到所述另一执行体集合。
92.例如,作为本技术的一个具体示例,图3中的除相交的部分执行体之外的剩余执行体为a、e、g,可以将执行体a、e、g和c以三个一组进行组合,得到另一执行体组合中的多个执行体组,也就是{acg,ace,ecg,aeg}。
93.例如,作为本技术的另一个具体示例,图4中对获取另一执行体集合的方法,需要根据执行体e进行区分,不考虑e的情况下可以将a、c、g、i以三个一组,得到另一执行体组合
中的多个执行体组。考虑执行体e的情况也可以得到其他执行体集合。异构层越多,可选择的执行体集合越多,具体可以根据实际情况进行选取。由于可以选择的执行体组更多,则调度也可以根据异构情况对多个执行体组进行调度。本技术在此不作具体限定。
94.本技术的一些实施例可用于拟态执行体业务处理,在原有技术不增加响应时间的前提下,尽可能降低逃逸现象产生的概率并尽可能防止持续逃逸。下面以异构层为3个,异构单元各为2个为例,示例性阐述上述采用任一执行体集合作为目标执行体结合的防御拟态逃逸的过程。
95.首先,假定3个异构层分别为系统、组件、编程语言,系统层的异构单元分别为centos和debian;组件层的异构单元分别为apache和iis;编程语言层的异构单元分别为java和python。
96.其次,根据上述图2的实施例可以得到2个执行体集合{bcd、bcf、cdf、bdf}和{acg、ace、ceg、aeg},具体的每个执行体组的异构执行体的组成结构如表2:
97.表2
98.执行体组成(系统-组件-编程语言)acentos-iis-pythonbcentos-apache-pythonccentos-apache-java/debian-iis-pythondcentos-iis-javaedebian-apache-pythonfdebian-apache-javagdebian-iis-java
99.最后,以下述几种情况对本技术的一些实施例的防御拟态逃逸的原理进行阐述。
100.1)假设组件apache存在一个未知漏洞,攻击者可通过该漏洞篡改apache的组件信息,当上述2个执行体组中任意一个正在响应服务时,总会得到2:1的请求结果,无论是2票通过漏洞得到的结果,还是2票正常响应结果,裁决模块都得到不一致的结果。
101.其中,2:1的请求结果放在哪个执行体组里面都是成立的,因为执行体里面的组件层非apache即iis。而本技术选取的三个执行体一定是在各异构层均不完全一致。所以其组件层的分布上一定是apache:iis=1:2或者2:1,那么以响应结果来看也一定是2:1(执行体输出结果无主观对错,只有一致或不一致)。
102.2)对于1)中的情况,当裁决模块采用完全一致判断(即三个执行体返回结果一致则输出结果,反之拦截)时,当返回结果均不一致,或者只有两个一致时,无论何时来的请求都将被拦截。当裁决模块采用多数一致判断(即两个执行体返回结果一致,另一个不一致,则输出结果,反之拦截)时,请求将在响应执行体中两个执行体组件均为iis时被拦截。此处降低了逃逸现象产生的概率。
103.3)依据2)的描述,攻击者利用apache漏洞进行信息篡改,当裁决模块选择多数一致判断,且响应的执行体刚好有两个使用了apache时,apache信息可能会被篡改。篡改后的apache响应结果会更加不符合常规,在多次请求响应后很容易出现裁决模块拦截的情况。出现拦截问题或者到达周期性调度时间(也就是调度周期时间)时,调度模块会按照上述实施例对当前的目标执行体集合进行执行体清洗、上下线等操作,此时上线执行体的apache
将是一个正常状态(也就是恢复出厂设置的状态),此处可以防止持续逃逸。
104.4)假设组件apache和编程语言python结合使用存在一个未知漏洞,攻击者可通过该漏洞篡改apache的组件信息,在表2中仅执行体b和执行体e存在。由于执行体b、e分别在两个执行体组内,即使裁决模块使用的是多数一致裁决方法,也完全不会放过通过该漏洞的请求,因为最多只有一个执行体响应了漏洞请求。
105.5)依据2)的例子可以引申得到任意2个异构层结合生成的漏洞,都无法通过裁决,因为有且仅有2个执行体符合条件,更重要的是2个执行体分别处于2个执行体组内,互不会在同一请求中进行响应。此处降低了逃逸现象产生的概率。
106.6)假设系统centos、组件apache和编程语言python结合使用存在一个未知漏洞,则仅有一个执行体满足条件,但是一个执行体的错误结果也是无法通过完全一致裁决和多数一致裁决,故此处也能降低逃逸现象产生的概率。
107.通过上述本技术的一些实施例可知,本技术可以降低逃逸现象产生的概率;可以防止持续逃逸;而且以不增加响应时间为前提,在现有技术基础上补充更安全的执行方式。通过定义异构层并组合各层的异构单元,得到异构执行体,再通过特定的选取方式选取出执行体组合成执行体组,并将说个执行体组组成执行体集合,将可能通过执行体组判断的逃逸现象发生概率降低。通过调度执行体并变更每次响应的执行体组合,以降低持续逃逸现象的概率。
108.请参考图5,图5示出了本技术的一些实施例提供的防御拟态逃逸的装置的组成框图。应理解,该防御拟态逃逸的装置与上述方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该防御拟态逃逸的装置的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。
109.图5的防御拟态逃逸的装置包括至少一个能以软件或固件的形式存储于存储器中或固化在防御拟态逃逸的装置中的软件功能模块,该防御拟态逃逸的装置包括:获取模块510,被配置为获取对网络系统的请求进行服务的目标执行体集合,其中,所述目标执行体集合中包括多个执行体组;响应模块520,被配置为利用所述目标执行体集合中的各执行体组对所述网络系统的请求进行响应,获取响应结果,其中,所述各执行体组对不同请求进行响应,所述响应结果表征所述网络系统是否存在拟态逃逸的异常现象。
110.在本技术的一些实施例中,所述网络系统中包括至少三个异构层,其中,获取模块510,被配置为:获取所述异构层中各异构层之间相交的部分执行体,其中,所述部分执行体至少包括四个执行体;将所述部分执行体中的任意三个执行体进行组合,得到所述目标执行体集合。
111.在本技术的一些实施例中,获取模块510,被配置为:将所述异构层中的执行体分为相交执行体、相交组和非相交组;将所述相交组和所述非相交组中的执行体分别与所述相交执行体进行组合,得到多个执行体集合;从所述多个执行体集合中任一个执行体组作为所述目标执行体集合。
112.在本技术的一些实施例中,获取模块510,被配置为所述将所述异构层中的执行体分为相交执行体、相交组和非相交组,包括:将所述异构层中均包含的同一执行体作为所述相交执行体;将所述异构层中各异构层之间相交的执行体,构建所述相交组,其中,所述相交组中不包含所述相交执行体;将所述异构层中除所述相交组和所述相交执行体之外的执
行体,构建所述非相交组。
113.在本技术的一些实施例中,所述相交组和所述非相交组中包括至少三个执行体,其中,获取模块510,被配置为:将所述相交组中的任意三个执行体与所述相交执行体进行组合,得到所述多个执行体集合中的任一个;将所述非相交组中的任意三个执行体与所述相交执行体进行组合,得到所述多个执行体集合中的任一个。
114.在本技术的一些实施例中,响应模块520,被配置为:若所述各执行体组中存在至少两个执行体对所述网络系统的请求的返回结果相同,则确认所述响应结果为正常;若所述各执行体组中的执行体对所述网络系统的请求的返回结果均不相同,则确认所述响应结果为异常。
115.在本技术的另一些实施例中,响应模块520,被配置为:若所述各执行体组中所有执行体对所述网络系统的请求的返回结果相同,则确认所述响应结果为正常;若所述各执行体组中所有执行体对所述网络系统的请求的返回结果不完全相同,则确认所述响应结果为异常。
116.在本技术的一些实施例中,在响应模块520之后,所述装置还包括调度模块,被配置为:根据所述响应结果确定是否更换所述目标执行体集合;或者,根据所述目标执行体集合的服务时间和调度周期时间,确定是否更换所述目标执行体集合。
117.在本技术的一些实施例中,调度模块,被配置为:所述根据所述响应结果确定是否更换所述目标执行体集合,包括:在确认所述响应结果为异常,或所述服务时间达到所述调度周期时间时,获取另一执行体集合,并将所述目标执行体集合更换为所述另一执行体集合;利用所述另一执行体集合中的执行体组对所述网络系统的请求进行继续轮询响应,获取所述响应结果。
118.在本技术的一些实施例中,调度模块,被配置为:将所述多个执行体集合中除所述目标执行体集合之外的一个集合作为所述另一执行体集合。
119.在本技术的一些实施例中,调度模块,被配置为:获取所述异构层中除所述部分执行体之外的剩余执行体,所述剩余执行体至少包括三个执行体;将所述剩余执行体中的与所述相交执行体中的任意三个进行组合,得到所述另一执行体集合。
120.本技术的一些实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如上述实施例提供的上述方法中的任意实施例所对应方法的操作。
121.本技术的一些实施例还提供了一种计算机程序产品,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器执行时可实现如上述实施例提供的上述方法中的任意实施例所对应方法的操作。
122.如图6所示,本技术的一些实施例提供一种电子设备700,该电子设备700包括:存储器610、处理器620以及存储在存储器610上并可在处理器620上运行的计算机程序,其中,处理器620通过总线630从存储器610读取程序并执行所述程序时可实现如上述任意实施例的方法。
123.处理器620可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器620可以是微处理器。
124.存储器610可以用于存储由处理器620执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本技术实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器620可以用于执行存储器610中的指令以实现上述所示的方法。存储器610包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。
125.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
126.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
127.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
技术特征:
1.一种防御拟态逃逸的方法,其特征在于,包括:获取对网络系统的请求进行服务的目标执行体集合,其中,所述目标执行体集合中包括多个执行体组;利用所述目标执行体集合中的各执行体组对所述网络系统的请求进行响应,获取响应结果,其中,所述各执行体组对不同请求进行响应,所述响应结果表征所述网络系统是否存在拟态逃逸的异常现象。2.如权利要求1所述的方法,其特征在于,所述网络系统中包括至少三个异构层,其中,所述获取对网络系统的请求进行服务的目标执行体集合,包括:获取所述异构层中各异构层之间相交的部分执行体,其中,所述部分执行体至少包括四个执行体;将所述部分执行体中的任意三个执行体进行组合,得到所述目标执行体集合中的所述多个执行体组。3.如权利要求2所述的方法,其特征在于,所述获取对网络系统的请求进行服务的目标执行体集合,包括:将所述异构层中的执行体分为相交执行体、相交组和非相交组;将所述相交组和所述非相交组中的执行体分别与所述相交执行体进行组合,得到多个执行体集合;从所述多个执行体集合中任一个执行体组作为所述目标执行体集合。4.如权利要求3所述的方法,其特征在于,所述将所述异构层中的执行体分为相交执行体、相交组和非相交组,包括:将所述异构层中均包含的同一执行体作为所述相交执行体;将所述异构层中各异构层之间相交的执行体,构建所述相交组,其中,所述相交组中不包含所述相交执行体;将所述异构层中除所述相交组和所述相交执行体之外的执行体,构建所述非相交组。5.如权利要求4所述的方法,其特征在于,所述相交组和所述非相交组中包括至少三个执行体,所述多个执行体集合中各执行体集合包括至少四组执行体组,所述各执行体组包含三个执行体,其中,所述将所述相交组和所述非相交组中的执行体分别与所述相交执行体进行组合,得到多个执行体集合,包括:将所述相交组中的任意三个执行体与所述相交执行体进行组合,得到所述多个执行体集合中的任一个;将所述非相交组中的任意三个执行体与所述相交执行体进行组合,得到所述多个执行体集合中的任一个。6.如权利要求5所述的方法,其特征在于,所述利用所述目标执行体集合中的各执行体组对所述网络系统的请求进行响应,获取响应结果,包括:若所述各执行体组中存在至少两个执行体对所述网络系统的请求的返回结果相同,则确认所述响应结果为正常;若所述各执行体组中的执行体对所述网络系统的请求的返回结果均不相同,则确认所述响应结果为异常。7.如权利要求5所述的方法,其特征在于,所述利用所述目标执行体集合中的各执行体
组对所述网络系统的请求进行响应,获取响应结果,包括:若所述各执行体组中所有执行体对所述网络系统的请求的返回结果相同,则确认所述响应结果为正常;若所述各执行体组中所有执行体对所述网络系统的请求的返回结果不完全相同,则确认所述响应结果为异常。8.如权利要求6-7任一项所述的方法,其特征在于,在所述获取响应结果之后,所述方法还包括:根据所述响应结果确定是否更换所述目标执行体集合;或者,根据所述目标执行体集合的服务时间和调度周期时间,确定是否更换所述目标执行体集合。9.如权利要求8所述的方法,其特征在于,所述根据所述响应结果确定是否更换所述目标执行体集合,包括:在确认所述响应结果为异常,或所述服务时间达到所述调度周期时间时,获取另一执行体集合,并将所述目标执行体集合更换为所述另一执行体集合;利用所述另一执行体集合中的执行体组对所述网络系统的请求进行继续轮询响应,获取所述响应结果。10.如权利要求9所述的方法,其特征在于,所述获取另一执行体集合,包括:将所述多个执行体集合中除所述目标执行体集合之外的一个集合作为所述另一执行体集合。11.如权利要求9所述的方法,其特征在于,所述获取另一执行体集合,包括:获取所述异构层中除所述部分执行体之外的剩余执行体,所述剩余执行体至少包括三个执行体;将所述剩余执行体中的与所述相交执行体中的任意三个进行组合,得到所述另一执行体集合。12.一种防御拟态逃逸的装置,其特征在于,包括:获取模块,被配置为获取对网络系统的请求进行服务的目标执行体集合,其中,所述目标执行体集合中包括多个执行体组;响应模块,被配置为利用所述目标执行体集合中的各执行体组对所述网络系统的请求进行响应,获取响应结果,其中,所述各执行体组对不同请求进行响应,所述响应结果表征所述网络系统是否存在拟态逃逸的异常现象。13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,其中,所述计算机程序被处理器运行时执行如权利要求1-11中任意一项权利要求所述的方法。14.一种电子设备,其特征在于,包括存储器、处理器以及存储在所述存储器上并在所述处理器上运行的计算机程序,其中,所述计算机程序被所述处理器运行时执行如权利要求1-11中任意一项权利要求所述的方法。
技术总结
本申请的一些实施例提供了一种防御拟态逃逸的方法、装置、存储介质及电子设备,该方法包括:获取对网络系统的请求进行服务的目标执行体集合,其中,所述目标执行体集合中包括多个执行体组;利用所述目标执行体集合中的各执行体组对所述网络系统的请求进行响应,获取响应结果,其中,所述各执行体组对不同请求进行响应,所述响应结果表征所述网络系统是否存在拟态逃逸的异常现象。本申请的一些实施例可以降低逃逸现象产生的概率,有效确保网络系统安全。全。全。
