分布式应用检测方法、装置、设备、存储介质和程序与流程

文档序号:29710691发布日期:2022-04-16 17:16阅读:66来源:国知局
分布式应用检测方法、装置、设备、存储介质和程序与流程

1.本发明涉及计算机技术领域,尤其涉及一种分布式应用检测方法、装置、设备、存储介质和程序。


背景技术:

2.随着安卓(android)平台的迅猛发展,很多第三方平台可以发布android 应用。由于第三方平台对于android应用的审核程序不规范,导致大量的恶意应用的出现。据统计,恶意应用平均每天新增大约1.2万个。资费消耗、隐私窃取、恶意扣费、远程控制等多种类型的恶意应用不仅对个人用户产生威胁,还会对企业和社会的安全造成威胁。
3.随着攻防手段的升级,攻击者将android应用程序进行混淆来躲避检查,而安全人员需要逐个分析android应用程序,上述过程会耗费非常大的时间和精力,效率较低。


技术实现要素:

4.针对现有技术中的问题,本发明实施例提供一种分布式应用检测方法、装置、设备、存储介质和程序。
5.具体地,本发明实施例提供了以下技术方案:
6.第一方面,本发明实施例提供了一种分布式应用检测方法,所述方法用于分布式应用检测系统,所述分布式应用检测系统包括:服务器和至少一个虚拟机,所述方法包括:
7.步骤101、服务器获取多个待检测的应用程序;
8.步骤102、所述服务器根据处于空闲状态的至少一个虚拟机的权重,确定目标虚拟机;所述权重至少与所述虚拟机的检测速度以及检测成功的概率相关,且所述权重为基于所述虚拟机对所述目标应用程序的检测进行更新得到的;
9.步骤103、所述服务器将多个所述应用程序中的目标应用程序发送给所述目标虚拟机,并获取所述目标虚拟机对所述目标应用程序的检测结果以及更新后的权重;
10.所述服务器重复执行步骤102-步骤103,直至多个所述应用程序检测完成。
11.可选地,所述服务器根据处于空闲状态的至少一个虚拟机的权重,确定目标虚拟机,包括:
12.所述服务器将所述至少一个虚拟机中权重最大的虚拟机,确定为所述目标虚拟机。
13.可选地,所述更新后的权重为所述目标虚拟机基于对所述目标应用程序的检测数据确定的;所述检测数据包括以下至少一项:检测工具的运行次数、最大运行次数、步长系数和第一步长;所述步长系数为所述权重减小时使用的系数,所述第一步长为所述权重增大时使用的步长。
14.可选地,所述检测工具的运行次数越小,和/或,检测成功的概率越高,则所述权重越大。
15.可选地,若所述目标虚拟机在运行检测工具第m次获取到所述检测结果,则所述更
新后的权重为将更新前的权重增加所述第一步长得到的,所述第一步长<<所述步长系数;m为大于0的整数;所述更新前的权重为初始值,或前一次更新得到的,所述初始值为预设值;
16.若所述目标虚拟机在运行检测工具第i次后获取到所述检测结果,则所述更新后的权重为将更新前的权重减去第二步长得到的;所述第二步长基于所述i、最大运行次数和步长系数得到;i大于m,且i小于或等于所述最大运行次数。
17.可选地,所述服务器获取待检测的应用程序,包括:
18.所述服务器基于目标顺序,从预先获取的多个应用程序中获取所述目标应用程序;所述目标顺序为基于应用程序的目标属性排列的顺序,所述目标属性包括以下至少一项:优先级、更新时间、名称或类型。
19.可选地,所述服务器根据处于空闲状态的至少一个虚拟机的权重,确定目标虚拟机之前,还包括:
20.所述服务器接收所述虚拟机的状态指示信息,所述状态指示信息包括所述虚拟机的标识和空闲状态;所述标识包括ip地址。
21.可选地,所述获取所述目标虚拟机对所述目标应用程序的检测结果之后,还包括:
22.所述服务器将所述目标虚拟机的状态恢复为快照状态;所述快照状态为所述目标虚拟机等待接收所述目标应用程序并在接收到所述目标应用程序之后启动检测的状态。
23.第二方面,本发明实施例提供了一种分布式应用检测方法,所述方法用于分布式应用检测系统,所述分布式应用检测系统包括:服务器和至少一个虚拟机,所述方法包括:
24.虚拟机接收服务器发送的目标应用程序;
25.所述虚拟机对所述目标应用程序进行检测获取检测结果,并对所述虚拟机的权重进行更新,得到更新后的权重;所述权重至少与所述虚拟机的检测速度以及检测成功的概率相关;
26.所述虚拟机将所述检测结果和所述更新后的权重发送给所述服务器。
27.可选地,所述对所述虚拟机的权重进行更新,得到更新后的权重,包括:
28.若所述虚拟机在运行检测工具第m次后获取到检测结果,则将更新前的权重增加第一步长,得到所述更新后的权重,所述第一步长<<第一系数;m为大于0的整数;所述更新前的权重为初始值,或前一次更新得到的,所述初始值为预设值;
29.若所述虚拟机在运行检测工具第i次后获取到检测结果,则将更新前的权重减去第二步长,得到所述更新后的权重,所述第二步长基于所述i、最大运行次数和步长系数得到;i大于m,且i小于或等于所述最大运行次数。
30.可选地,所述虚拟机接收服务器发送的目标应用程序之前,还包括:
31.若所述虚拟机处于空闲状态,则所述虚拟机将所述虚拟机的状态指示信息以及权重发送给所述服务器;所述状态指示信息包括所述虚拟机的标识和空闲状态;所述标识包括ip地址。
32.第三方面,本发明实施例还提供了一种分布式应用检测装置,所述装置用于分布式应用检测系统,所述分布式应用检测系统包括:服务器和至少一个虚拟机,所述装置包括:
33.获取模块,用于获取多个待检测的应用程序;
34.确定模块,用于根据处于空闲状态的至少一个虚拟机的权重,确定目标虚拟机;所述权重至少与所述虚拟机的检测速度以及检测成功的概率相关,且所述权重为基于所述虚拟机对所述目标应用程序的检测进行更新得到的;
35.发送模块,用于将多个所述应用程序中的目标应用程序发送给所述目标虚拟机;所述获取模块,还用于获取所述目标虚拟机对所述目标应用程序的检测结果以及更新后的权重;
36.所述装置重复执行所述确定模块、所述发送模块和所述获取模块的操作,直至多个所述应用程序检测完成。
37.第四方面,本发明实施例还提供了一种分布式应用检测装置,所述装置用于分布式应用检测系统,所述分布式应用检测系统包括:服务器和至少一个虚拟机,所述装置包括:
38.接收模块,用于接收服务器发送的目标应用程序;
39.处理模块,用于对所述目标应用程序进行检测获取检测结果,并对所述虚拟机的权重进行更新,得到更新后的权重;所述权重至少与所述虚拟机的检测速度以及检测成功的概率相关;
40.发送模块,用于将所述检测结果和所述更新后的权重发送给所述服务器。
41.第五方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面、或第二方面所述分布式应用检测方法的步骤。
42.第六方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面、或第二方面所述分布式应用检测方法的步骤。
43.第七方面,本发明实施例还提供了一种计算机程序产品,其上存储有可执行指令,该指令被处理器执行时使处理器实现第一方面、或第二方面所述分布式应用检测方法的步骤。
44.本发明实施例提供的分布式应用检测方法、装置、设备、存储介质和程序,基于处于空闲状态的至少一个虚拟机的权重,确定目标虚拟机;所述利用该目标虚拟机对目标应用程序进行检测,并基于检测数据对权重更新,如此循环反复,直至多个应用程序检测完成,权重至少与虚拟机的检测速度以及检测成功的概率相关,检测速度越快,权重越大,检测成功的概率越大,权重越大,因此基于权重选择虚拟机进行检测,能够提高检测效率。
附图说明
45.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
46.图1为本发明提供的分布式应用检测方法的一实施例的应用场景图;
47.图2为本发明提供的分布式应用检测方法的一实施例的流程示意图;
48.图3为本发明提供的分布式应用检测方法的另一实施例的流程示意图;
49.图4为本发明提供的分布式应用检测方法的又一实施例的流程示意图;
50.图5是本发明提供的分布式应用检测装置一实施例的结构示意图;
51.图6是本发明提供的分布式应用检测装置另一实施例的结构示意图;
52.图7是本发明提供的电子设备一实施例的结构示意图;
53.图8是本发明提供的服务器一实施例的结构示意图。
具体实施方式
54.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
55.本发明实施例的方法可以应用于恶意应用检测场景中,能够提高检测效率。
56.图1为本发明一实施例提供的应用场景图,可选地,如图1所示,该应用场景中包括至少一个电子设备11(图1中以两个电子设备11为例)和服务器12;
57.其中,电子设备11、服务器12之间可以通过网络连接,例如4g、5g 或无线保真(wireless fidelity,wifi)等通信网络。
58.本发明提供的方法可由电子设备11如处理器执行相应的软件代码实现,也可由该电子设备11在执行相应的软件代码的同时,通过和服务器12进行数据交互来实现,如服务器执行部分操作,来控制电子设备执行分布式应用检测方法。
59.其中,电子设备可以为虚拟机。
60.本发明实施例的分布式应用检测方法,基于处于空闲状态的至少一个虚拟机的权重,确定目标虚拟机;利用该目标虚拟机对目标应用程序进行检测,并基于检测数据对权重更新,如此循环反复,直至多个应用程序检测完成,权重至少与虚拟机的检测速度以及检测成功的概率相关,检测速度越快,权重越大,检测成功的概率越高,权重越大,因此能够提高检测效率。
61.下面结合图2-图4以具体的实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
62.图2是本发明实施例提供的分布式应用检测方法一实施例的流程示意图。如图2所示,本发明实施例提供的方法,用于分布式应用检测系统,所述分布式应用检测系统包括:服务器和至少一个虚拟机,该方法包括:
63.步骤101、服务器获取多个待检测的应用程序;
64.具体的,服务器获取待检测的应用程序,待检测的应用程序可以包括多个应用程序,多个应用程序可以是混淆之后的应用程序,可选地,应用程序混淆可以指将多个应用程序的资源路径进行改变,例如,在混淆过程中,将应用程序原先冗长的资源路径改变,例如将res/drawable/wechat变为r/d/w实现混淆处理。
65.服务器可以从多个应用程序中选择一个应用程序发送给虚拟机进行检测。
66.步骤102、服务器根据处于空闲状态的至少一个虚拟机的权重,确定目标虚拟机。
67.权重至少与所述虚拟机的检测速度以及检测成功的概率相关
68.权重可以基于虚拟机对目标应用程序的检测进行更新。。
69.检测速度越快,权重越大;和/或,检测成功的概率越大,权重越大。
70.具体的,预先设置多个虚拟机,服务器可以记录多个虚拟机的状态,比较处于空闲状态的虚拟机的权重,确定目标虚拟机。服务器可以为多个虚拟机设定权重的初始值。权重可以在初始值的基础上基于虚拟机对目标应用程序的检测进行更新。
71.可选地,服务器将至少一个虚拟机中权重最大的虚拟机,确定为目标虚拟机。
72.步骤103、服务器将多个应用程序中的目标应用程序发送给目标虚拟机,并获取目标虚拟机对目标应用程序的检测结果以及更新后的权重;
73.服务器重复执行步骤102-步骤103,直至多个应用程序检测完成。
74.具体地,服务器将多个应用程序中的目标应用程序发送给目标虚拟机,其中,目标应用程序可以是多个应用程序中任一个应用程序,或者按照一定规则选择出的一个应用程序,并获取目标虚拟机对目标应用程序的检测结果以及更新后的权重,服务器基于该目标虚拟机更新后的权重,以及其他处于空闲状态的虚拟机的权重,再次选择新的目标虚拟机,并选择剩余的应用程序中的目标应用程序发送给新的目标虚拟机,如此循环反复,直至多个应用程序检测完成。
75.假设当前目标虚拟机能够较快的获取到检测结果,则将权重增大,得到更新后的权重,即更新后的权重大于之前的权重,若当前目标虚拟机获取到检测结果的时间较长,则将权重减小,得到更新后的权重,即更新后的权重小于之前的权重。
76.之后选择目标虚拟机时更容易选到权重大的虚拟机,即效率较快的虚拟机,能够提升整个检测过程的效率。
77.服务器可以记录多个虚拟机的状态,可选地,将虚拟机的标识与状态进行对应,虚拟机的标识可以是ip地址。
78.可选地,步骤103中服务器还可以向目标虚拟机发送该目标虚拟机当前的权重。
79.可选地,也可以在检测之前,服务器将为各个虚拟机配置的初始的权重,发送给各个虚拟机。
80.其中,检测结果包括应用程序为恶意应用程序或良性应用程序等信息。
81.本实施例的方法,基于处于空闲状态的至少一个虚拟机的权重,确定目标虚拟机;利用该目标虚拟机对目标应用程序进行检测,并基于检测数据对权重更新,如此循环反复,直至多个应用程序检测完成,权重至少与虚拟机的检测速度以及检测成功的概率相关,检测速度越快,权重越大,检测成功的概率越大,权重越大,因此选择权重较大的虚拟机进行检测,能够提高检测效率。
82.在一实施例中,更新后的权重为目标虚拟机基于对目标应用程序的检测数据确定的;检测数据包括以下至少一项:检测工具的运行次数、最大运行次数、步长系数和第一步长;步长系数为权重减小时使用的系数,第一步长为权重增大时使用的步长。
83.可选地,检测速度可以通过检测工具的运行次数表示,检测工具的运行次数越大,则权重越小,运行次数越小,则权重越大。
84.可选地,检测成功的概率越大,权重越大;检测成功的概率越小,权重越小。
85.具体的,检测工具的运行次数较大,则说明目标虚拟机对目标应用程序的检测效率较低,需要减小权重。
86.最大运行次数,为检测工具的运行次数上限,防止虚拟机长时间得不到检测结果,影响检测效率。
87.可选地,权重增大时可以采用较小的步长,或,步长可以随着增大的次数进行增大,例如某个虚拟机第一次权重增大时采用第一步长a,第二次权重增大时采用第一步长b,b大于a。
88.可选地,第一步长可以固定不变。
89.可选地,若目标虚拟机在运行检测工具第m次获取到检测结果,则更新后的权重为将更新前的权重增加第一步长得到的,第一步长<<步长系数;m为大于0的整数;更新前的权重为初始值,或前一次更新得到的,初始值为预设值;
90.若目标虚拟机在运行检测工具第i次后获取到检测结果,则更新后的权重为将更新前的权重减去第二步长得到的;所述第二步长基于i、最大运行次数和步长系数得到;i大于m,且i小于或等于最大运行次数。
91.具体的,假设有n台虚拟机,每台虚拟机guest_j(j小于或等于n)都安装有检测工具tool,虚拟机guest_j有两种状态,一种是空闲状态state_free,另一种是繁忙状态state_busy。虚拟机guest_j有一个权重值w_j。服务器侧存储有处于空闲状态state_free的虚拟机的标识,例如为ip地址。在分析开始前,所有虚拟机的ip地址都存储在服务器侧。首先对每一台虚拟机的权重都初始化为同一个值ini,在虚拟机guest_j对应用程序apk_i的检测过程中,每次检测最多运行检测工具r次,如果前一次运行失败将再次运行,直到运行成功或者到达r次。如果第m次运行成功(例如m等于1),即获取到检测结果,则guest_j的权重w_j增加第一步长,如uplittle,如果在第s(s大于m,且小于或等于r)次运行成功,则guest_j的权重w_j减少其中down是步长系数,且uplittle<<down,即第一步长远小于步长系数。
92.在一实施例中,m为1。
93.可选地,上述步长系数、第一步长等参数可以通过训练得到。
94.上述实施方式中,通过对权重的更新,使得在检测过程中尽量使用权重较大的虚拟机检测,即使用检测速度较快的虚拟机进行检测,能够提高整个检测过程的效率。
95.在一实施例中,步骤103可以通过如下方式实现:
96.服务器基于目标顺序,从预先获取的多个应用程序中获取目标应用程序;目标顺序为基于应用程序的目标属性排列的顺序,目标属性包括以下至少一项:优先级、更新时间、名称或类型。
97.具体的,服务器可以基于一定的规则,获取目标应用程序,例如按照目标顺序,该目标顺序为基于应用程序的目标属性排列的顺序,如按照应用程序的优先级、更新时间、名称或类型。
98.例如将优先级较大的应用程序优先进行检测;或将更新时间最晚的应用程序优先进行检测;或按照名称的首字母的顺序进行检测;或按照应用程序的类型排列之后进行检测。
99.其中,上述目标属性还可以结合使用,例如先按照应用程序的类型排列,对于每一种类型内的应用程序按照优先级进行排列。
100.上述实施方式中,基于目标顺序,从预先获取的多个应用程序中获取目标应用程序,能够优先检测排列在前的应用程序。
101.在一实施例中,服务器确定目标虚拟机之前,还包括:
102.服务器分别接收虚拟机的状态指示信息,状态指示信息包括虚拟机的标识和空闲状态;标识包括ip地址。
103.具体的,虚拟机在处于空闲状态时,将状态指示信息发送给服务器,状态指示信息包括虚拟机的标识和空闲状态;标识包括ip地址。
104.上述实施方式中,服务器可以基于状态指示信息,准确的获知虚拟机是否处于空闲状态,因此选定的目标虚拟机较为准确,避免选择处于繁忙状态的虚拟机,从而影响检测效率。
105.图3是本发明实施例提供的分布式应用检测方法另一实施例的流程示意图。如图3所示,本发明实施例提供的方法,用于分布式应用检测系统,所述分布式应用检测系统包括:服务器和至少一个虚拟机,所述方法包括:
106.步骤201、虚拟机接收服务器发送的目标应用程序;
107.可选地,步骤201之前还可以包括:
108.若虚拟机处于空闲状态,则虚拟机将虚拟机的状态指示信息以及权重发送给服务器;状态指示信息包括虚拟机的标识和空闲状态;标识包括ip地址。
109.虚拟机在接收目标应用程序之前,服务器将其状态设置为快照状态,快照状态为虚拟机等待接收目标应用程序并在接收到所述目标应用程序之后能立即启动检测的状态。
110.具体的,为了提高虚拟机的检测效率,可以在检测之前将虚拟机恢复到快照状态,即接收到目标应用程序之后能够立即启动检测的状态。
111.步骤202、虚拟机对目标应用程序进行检测获取检测结果,并对虚拟机的权重进行更新,得到更新后的权重;权重至少与所述虚拟机的检测速度以及检测成功的概率相关;
112.可选地,服务器获取虚拟机发送的检测结果之后,还包括:
113.服务器将虚拟机的状态恢复为快照状态。
114.可选地,步骤202中对所述虚拟机的权重进行更新,得到所述更新后的权重,具体可以通过如下方式实现:
115.若所述虚拟机在运行检测工具第m次后获取到检测结果,则将更新前的权重增加第一步长,得到所述更新后的权重,所述第一步长小于第一系数; m为大于0的整数;所述更新前的权重为初始值,或前一次更新得到的,所述初始值为预设值;
116.若所述虚拟机在运行检测工具第i次后获取到检测结果,则将更新前的权重减去第二步长,得到所述更新后的权重,所述第二步长基于所述i、最大运行次数和步长系数得到;i大于m,且i小于或等于所述最大运行次数。
117.步骤203、虚拟机将检测结果和更新后的权重发送给服务器。
118.本发明实施例的方法,与前述服务器侧任一方法实施例中的方法,其实现原理和技术效果类似,此次不再赘述。
119.在一实施例中,服务器内存储着全部需要分析的android应用程序样本。当执行检测时,先将一台空闲状态state_free的虚拟机恢复到快照状态,主机将一个android应用程序样本使用sshpass命令传到该台虚拟机内,虚拟机随后开始对android应用程序样本进行
分析。在分析开始后,服务器按照名字顺序选择一个android应用程序apk_i通过sshpass命令发送给ip地址对应的处于空闲状态的虚拟机,即处于空闲状态state_free且权重w最高的虚拟机 guest_j(w_j=max{w_b|state_guest_b=state_free}),之后虚拟机guest_j为繁忙状态state_busy;当虚拟机guest_j接收到分析任务后,使用检测工具tool1对文件进行分析,并将分析结果result_i和ip地址ip_j通过sshpass命令发送给服务器,之后虚拟机guest_j处于空闲状态state_free。重复上述过程,直至应用程序样本中所有的应用程序都遍历完成。
120.在分布式分析的实现中,服务器负责给处于空闲状态state_free的虚拟机 guest_j分配发送android应用程序文件apk_i,并接收来自虚拟机guest_j的分析结果result_i(例如通过json文件表示);虚拟机guest_j在接收服务器发送的android应用程序文件apk_i后,利用检测工具负责具体实现android应用程序apk_i的检测,即检测该应用程序是否为恶意应用,并将分析结果 result_i发送给服务器。
121.其中,sshpass是一个简单、轻量级命令行工具,提供非交互式密码验证。
122.在一实施例中,如图4所示,该方法包括:
123.步骤301、建立虚拟机名称与其ip地址之间的映射;
124.步骤302、遍历应用程序样本集;
125.步骤303、确定是否遍历完成;
126.若是,则结束;若否,则执行步骤304、确定是否有空闲状态的虚拟机;
127.若否,则执行步骤305、等待遍历其他空闲状态的虚拟机;
128.若是,则执行步骤306、将虚拟机恢复快照状态;
129.步骤307、给虚拟机发apk文件和该虚拟机当前的权重;此时可以配置权重的初始值;
130.步骤308、利用检测工具进行检测;
131.步骤309、获取检测结果,并将检测结果发送给服务器;
132.步骤310、发送更新后的权重给服务器。
133.在一实施例中,权重更新过程中使用的参数可以通过训练得到,具体通过如下方式实现:
134.步骤401、服务器获取恶意应用程序集合和良性应用程序集合;
135.步骤402、服务器从恶意应用程序集合和良性应用程序集合中分别选取多个恶意应用程序和多个良性应用程序进行混淆,得到训练数据集合;
136.步骤403、采用多个虚拟机对训练数据集合中的应用程序进行检测,基于检测结果、应用程序的标签以及检测时长对所述步长系数和所述第一步长进行优化,直至满足收敛条件,得到训练后的步长系数和第一步长。
137.具体的,步骤401中需要从现有的公开android恶意应用程序数据库中,选择被研究者广泛使用的恶意应用程序集合,以及从现有的数据集或者在终端的应用市场中选择检测工具检测的恶意应用程序数目不多于一定数量的应用程序集合作为良性应用程序集合。另外,在应用程序选取过程中,选择编译时间跨度大即编译时间跨越多个年份且android软件开发工具包(softwaredevelopment kit,sdk)版本不超过检测工具所要求的android sdk版本。
138.步骤402中可以随机选取相同数目的android恶意应用和良性应用程序;之后使用当前公开的android混淆软件对选取的恶意应用和良性应用程序文件进行混淆,得到混淆后的数据集。在混淆过程中,将应用程序原先冗长的资源路径改变,例如将res/drawable/wechat变为r/d/w实现混淆处理。
139.步骤403中,假设有n台虚拟机,每台虚拟机guest_j(j小于或等于n) 都安装有检测工具tool,虚拟机guest_j有两种状态,一种是空闲状态 state_free,另一种是繁忙状态state_busy。虚拟机guest_j有一个权重值w_j。服务器侧存储有处于空闲状态state_free的虚拟机的标识,例如为ip地址。在分析开始前,所有虚拟机的ip地址都存储在服务器侧。首先对每一台虚拟机的权重都初始化为同一个值ini,在虚拟机guest_j对应用程序apk_i的检测过程中,每次检测最多运行检测工具r次,如果前一次运行失败将再次运行,直到运行成功或者到达r次。如果第m次运行成功,即获取到检测结果,则 guest_j的权重w_j增加第一步长,如uplittle,如果在第s(s大于m,且小于或等于r)次运行成功,则guest_j的权重w_j减少其中down是步长系数,且uplittle<<down,即第一步长远小于步长系数。
140.其中,步长系数、第一步长的初始值为预设值。
141.采用多个虚拟机对所述训练数据集合中的应用程序进行检测,基于检测结果和所述应用程序的标签对所述步长系数和所述第一步长进行优化,通过将检测结果进行比对,如果检测结果正确,且运行次数大于m,则将权重减小,如果检测结果正确,且运行次数小于i,则将权重增大,如果检测结果错误,则将权重减小,直至将训练数据集中的应用程序检测完,记录检测时长,通过检测时长与预设时长,调整步长系数和第一步长,直至检测时长满足收敛条件,得到训练后的步长系数和第一步长。
142.该实施例中,执行主体可以是服务器,也可以是虚拟机,或其他电子设备。
143.下面对本发明提供的分布式应用检测装置进行描述,下文描述的分布式应用检测装置与上文描述的分布式应用检测方法可相互对应参照。
144.图5是本发明提供的分布式应用检测装置一实施例的结构示意图。如图 5所示,本实施例提供的分布式应用检测装置,所述装置用于分布式应用检测系统,所述分布式应用检测系统包括:服务器和至少一个虚拟机,所述装置包括:
145.获取模块210,用于获取多个待检测的应用程序;
146.确定模块220,用于根据处于空闲状态的至少一个虚拟机的权重,确定目标虚拟机;所述权重至少与所述虚拟机的检测速度以及检测成功的概率相关,且所述权重为基于所述虚拟机对所述目标应用程序的检测进行更新得到的;
147.发送模块230,用于将多个所述应用程序中的目标应用程序发送给所述目标虚拟机;所述获取模块210,还用于获取所述目标虚拟机对所述目标应用程序的检测结果以及更新后的权重;
148.所述装置重复执行所述确定模块220、所述发送模块230和所述获取模块210的操作,直至多个所述应用程序检测完成。
149.可选地,所述确定模块220,具体用于:
150.将所述至少一个虚拟机中权重最大的虚拟机,确定为所述目标虚拟机。
151.可选地,所述更新后的权重为所述目标虚拟机基于对所述目标应用程序的检测数据确定的;所述检测数据包括以下至少一项:检测工具的运行次数、最大运行次数、步长系数和第一步长;所述步长系数为所述权重减小时使用的系数,所述第一步长为所述权重增大时使用的步长。
152.可选地,所述检测工具的运行次数越小,和/或,检测成功的概率越高,则所述权重越大。
153.可选地,若所述目标虚拟机在运行检测工具第m次获取到所述检测结果,则所述更新后的权重为将更新前的权重增加所述第一步长得到的,所述第一步长<<所述步长系数;m为大于0的整数;所述更新前的权重为初始值,或前一次更新得到的,所述初始值为预设值;
154.若所述目标虚拟机在运行检测工具第i次后获取到所述检测结果,则所述更新后的权重为将更新前的权重减去第二步长得到的;所述第二步长基于所述i、最大运行次数和步长系数得到;i大于m,且i小于或等于所述最大运行次数。
155.可选地,所述获取模块210,具体用于:
156.基于目标顺序,从预先获取的多个应用程序中获取所述目标应用程序;所述目标顺序为基于应用程序的目标属性排列的顺序,所述目标属性包括以下至少一项:优先级、更新时间、名称或类型。
157.可选地,所述获取模块210,还用于:
158.接收所述虚拟机的状态指示信息,所述状态指示信息包括所述虚拟机的标识和空闲状态;所述标识包括ip地址。
159.可选地,确定模块220,还用于:
160.将所述目标虚拟机的状态恢复为快照状态;所述快照状态为所述目标虚拟机等待接收所述目标应用程序并在接收到所述目标应用程序之后启动检测的状态。
161.可选地,本实施例的装置可以设置在服务器中。
162.本发明实施例的装置,其用于执行前述服务器侧任一方法实施例中的方法,其实现原理和技术效果类似,此次不再赘述。
163.图6是本发明提供的分布式应用检测装置另一实施例的结构示意图。如图6所示,本实施例提供的分布式应用检测装置,包括:
164.接收模块220,用于接收服务器发送的目标应用程序;
165.处理模块221,用于对所述目标应用程序进行检测获取检测结果,并对所述虚拟机的权重进行更新,得到更新后的权重;所述权重至少与所述虚拟机的检测速度以及检测成功的概率相关;
166.发送模块222,用于将所述检测结果和所述更新后的权重发送给所述服务器。
167.可选地,处理模块221,具体用于:
168.若所述虚拟机在运行检测工具第m次后获取到检测结果,则将更新前的权重增加第一步长,得到更新后的权重,所述第一步长小于第一系数;m为大于0的整数;所述更新前的权重为初始值,或前一次更新得到的,所述初始值为预设值;
169.若所述虚拟机在运行检测工具第i次后获取到检测结果,则将更新前的权重减去第二步长,得到更新后的权重,所述第二步长基于所述i、最大运行次数和步长系数得到;i
大于m,且i小于或等于所述最大运行次数。
170.可选地,发送模块222,还用于:
171.若所述虚拟机处于空闲状态,则将所述虚拟机的状态指示信息以及权重发送给所述服务器;所述状态指示信息包括所述虚拟机的标识和空闲状态;所述标识包括ip地址。
172.可选地,本实施例的装置可以设置在虚拟机中。
173.本发明实施例的装置,其用于执行前述虚拟机侧任一方法实施例中的方法,其实现原理和技术效果类似,此次不再赘述。
174.举个例子如下:
175.图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(communications interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器 730中的逻辑指令,以执行如下方法:步骤101、服务器获取多个待检测的应用程序;步骤102、所述服务器根据处于空闲状态的至少一个虚拟机的权重,确定目标虚拟机;所述权重至少与所述虚拟机的检测速度以及检测成功的概率相关,且所述权重为基于所述虚拟机对所述目标应用程序的检测进行更新得到的;步骤103、所述服务器将多个所述应用程序中的目标应用程序发送给所述目标虚拟机,并获取所述目标虚拟机对所述目标应用程序的检测结果以及更新后的权重;所述服务器重复执行步骤102-步骤 103,直至多个所述应用程序检测完成。
176.此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random accessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
177.图8示例了一种电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(communications interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器 830中的逻辑指令,以执行如下方法:接收服务器发送的目标应用程序;对所述目标应用程序进行检测获取检测结果,并对所述虚拟机的权重进行更新,得到更新后的权重;所述权重至少与所述虚拟机的检测速度以及检测成功的概率相关;将所述检测结果和所述更新后的权重发送给所述服务器。
178.此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,
read-only memory)、随机存取存储器(ram,random accessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
179.另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的分布式应用检测方法包括:。
180.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
181.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
182.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1