在形成分布式系统的虚拟机之间分布文件以执行防病毒扫描的系统和方法与流程

文档序号:13031504阅读:260来源:国知局
在形成分布式系统的虚拟机之间分布文件以执行防病毒扫描的系统和方法与流程

本发明总体涉及网络安全的领域,以及更具体地涉及在虚拟机的分布式系统中检测恶意文件的系统和方法。



背景技术:

计算机技术(包括云技术)在过去十年中的快速发展以及多种多样的计算设备(个人计算机、笔记本、平板电脑、智能手机等)的广泛使用已用作对于这些设备在人类活动的每个可能范围中的使用以及对于巨大量任务(从因特网冲浪和借助因特网的通信到银行转账和电子文件分发)的强力刺激。与计算设备的数量增长并行,在这些设备上运行的软件的容量也已以快节奏增长,包括恶意软件。

目前,存在巨大量的恶意程序品种。一些恶意程序可以从用户的设备窃取个人机密数据(诸如登录名和密码、银行资料、电子文件)。其它恶意程序可以形成所谓的僵尸网络,其使用暴力破解方法从用户的设备推测密码、或对其它计算机或计算机网络发起攻击,诸如拒绝服务(分布式拒绝服务,distributeddenialofservice,ddos)。另外的恶意程序可以通过侵略性广告、付费订阅、向付费手机号发送文本消息等将付费内容硬卖给用户。

防病毒程序可以用于击败恶意程序。有效的解决方案可以首先要求及时检测包含恶意程序的代码的文件,防病毒程序可以针对上述文件采用各种技术,诸如签名、启发式和前瞻性分析、黑白名单等等。上述技术中的每种技术在基于其检测某些恶意文件的潜在能力以及基于对该技术在其上运行的计算机系统的计算资源的需求检测恶意文件时可以具有其自身的有效性。

目前,由计算机系统处理的数据(包括文件)的容量如此之大使得由防病毒程序对该容量的数据进行的防病毒扫描可能花费很长时间并需要大量的计算资源,这对于个人计算机的用户而言是尤其重要的。因此,为了提高检测恶意文件的有效性,可以使用增加在其上进行对恶意文件的搜索的计算机系统的计算资源的方法。例如,可以使用分布式系统搜索恶意文件。这类系统可以包括多个服务器,并且在每个服务器上扫描需要扫描的文件的仅一部分。

当在执行文件的防病毒扫描的计算机系统上具有繁重工作量时或当参与文件的防病毒扫描的一些计算机系统出故障时,已知的操作方法可能不起作用。



技术实现要素:

公开了在虚拟机的分布式系统中检测恶意文件的系统和方法。在一个示例性方面中,一种用于在具有多个虚拟机的分布式网络中检测恶意文件的方法,包括:通过所述多个虚拟机中的一个虚拟机确定并获得存储在所述虚拟机上的至少一个文件用以执行防病毒扫描;通过所述虚拟机收集关于所述多个虚拟机的计算资源的特性的数据和关于所述防病毒扫描的一个或多个参数;至少基于收集的数据确定所述多个虚拟机的所述计算资源的所述特性的近似时间函数和关于所述防病毒扫描的所述一个或多个参数的近似函数;至少基于所述计算资源的所述特性的所述近似时间函数和所述一个或多个参数的所述近似函数,确定所述防病毒扫描的有效性的近似时间函数;以及至少基于所述防病毒扫描的有效性的所述近似时间函数,从所述多个虚拟机中选择至少一个虚拟机执行所述防病毒扫描以确定所述至少一个文件是否为恶意的。

在另一个示例性方面中,选择所述至少一个虚拟机包括通过至少满足如下标准中的一者确定用于执行所述防病毒扫描的最有效的开始时间:所述防病毒扫描花费最少时间;所述防病毒扫描花费的时间比预计少;所述防病毒扫描将不晚于预计时间完成;需要所述虚拟机的最小数量的计算资源来执行所述防病毒扫描;或需要所述虚拟机的比预计少的计算资源来执行所述防病毒扫描。

在另一个示例性方面中,选择至少一个虚拟机包括:检测到所述至少一个虚拟机至少能够使用在预计时间槽中可用的计算资源执行所述至少一个文件的所述防病毒扫描;在所述分布式网络中的所述多个虚拟机之中检测具有计算的最低工作负荷水平的所述至少一个虚拟机;检测具有比建立的阈值低的计算的工作负荷水平的所述至少一个虚拟机;或检测所述多个虚拟机中的不少于两个虚拟机,所述不少于两个虚拟机的计算的组合工作负荷水平小于所述多个虚拟机中的剩余虚拟机的组合工作负荷水平。

在另一个示例性方面中,收集关于所述多个虚拟机的计算资源的所述特性的所述数据包括如下项中的至少一者:检测获得所述至少一个文件和确定所述至少一个文件是否为恶意的之间的时间段;检测发送到所述虚拟机用于所述防病毒扫描的文件的数量;以及确定所述多个虚拟机中的每个虚拟机的计算能力。

在另一个示例性方面中,关于所述防病毒扫描的所述一个或多个参数包括如下项中的至少一者:用于检测由所述多个虚拟机使用的恶意文件的方法,用于检测由所述多个虚拟机使用的恶意文件的所述方法包括签名分析、启发式分析、仿真结果的分析、和黑白名单的分析中的至少一者;以及用于执行所述防病毒扫描的所述多个虚拟机的计算资源的所述特性。用于检测恶意文件的所述方法至少基于发生所述防病毒扫描所持续的最大时间和被扫描的文件的仿真深度来确定。

在另一个示例性方面中,所述多个虚拟机的所述计算资源的所述特性的所述近似时间函数至少基于收集的关于每个虚拟机的所述计算资源的所述特性的数据、每个虚拟机的在所选时间可访问的计算资源的特性、确定每个虚拟机的所述计算资源的特性的时间、以及确定每个虚拟机的所述计算资源的所述特性所需要的时间来确定。

在另一个示例性方面中,关于所述防病毒扫描的所述一个或多个参数的所述近似函数至少基于关于用于所述计算资源的所述特性的所述防病毒扫描的假定参数的数据、以及用于执行所述防病毒扫描的每个虚拟机的所述计算资源的特性来确定。

在另一个示例性方面中,所述防病毒扫描的有效性的所述近似时间函数基于限定所述至少一个文件的类型和大小的参数来确定。

根据本发明的示例性方面,一种用于在具有多个虚拟机的分布式网络中检测恶意文件的系统,所述系统包括:所述多个虚拟机中的一个虚拟机,所述虚拟机具有在其上操作的至少一个瘦客户端,所述虚拟机配置成:确定并获得存储在所述虚拟机上的至少一个文件用以执行防病毒扫描;收集关于所述多个虚拟机的计算资源的特性的数据和关于所述防病毒扫描的一个或多个参数;至少基于收集的数据确定所述多个虚拟机的所述计算资源的所述特性的近似时间函数和关于所述防病毒扫描的所述一个或多个参数的近似函数;至少基于所述计算资源的所述特性的所述近似时间函数和所述一个或多个参数的所述近似函数,确定所述防病毒扫描的有效性的近似时间函数;以及至少基于所述防病毒扫描的有效性的所述近似时间函数,从所述多个虚拟机中选择至少一个虚拟机执行所述防病毒扫描以确定所述至少一个文件是否为恶意的。

另外,根据本发明的其它示例性方面,一种非易失性计算机可读介质,所述非易失性计算机可读介质上存储用于在具有多个虚拟机的分布式网络中检测恶意文件的计算机可执行的指令,所述计算机可执行的指令包括用于如下操作的指令:通过所述多个虚拟机中的一个虚拟机确定并获得存储在所述虚拟机上的至少一个文件用以执行防病毒扫描;通过所述虚拟机收集关于所述多个虚拟机的计算资源的特性的数据和关于所述防病毒扫描的一个或多个参数;至少基于收集的数据确定所述多个虚拟机的所述计算资源的所述特性的近似时间函数和关于所述防病毒扫描的所述一个或多个参数的近似函数;至少基于所述计算资源的所述特性的所述近似时间函数和所述一个或多个参数的所述近似函数,确定所述防病毒扫描的有效性的近似时间函数;以及至少基于所述防病毒扫描的有效性的所述近似时间函数,从所述多个虚拟机中选择至少一个虚拟机执行所述防病毒扫描以确定所述至少一个文件是否为恶意的。

附图说明

并入本说明书中并构成本说明书的一部分的附图示出了本发明的一个或多个示例性方面,以及连同详细的描述一起用来阐述这些示例性方面的原理和实现方式。

图1示出根据本发明的方面的用于在虚拟机上检测恶意文件的示例性系统。

图2示出根据本发明的方面的用于在虚拟机上检测恶意文件的示例性方法。

图3示出根据本发明的方面的保护虚拟机的计算资源的特性的近似时间函数。

图4示出根据本发明的方面的多个保护虚拟机的计算资源的特性的近似时间函数。

图5示出其上可实施所公开的系统和方法的计算机系统、个人计算机或服务器。

具体实施方式

本文中在用于检测具有多个虚拟机的分布式网络中的恶意文件的系统、方法和计算机程序产品的背景下描述示例性方面。本领域的普通技术人员将认识到,以下描述仅仅是说明性的,而不旨在以任何方式进行限制。其它方面将很容易将其自身暗示给了解本发明的优点的本领域的技术人员。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同或类似的项目。

在描述本发明的各个方面时将使用如下定义:

受保护的虚拟机可以包括在管理程序的控制下工作、安装有客户操作系统的虚拟机,瘦客户端在该虚拟机的计算环境中执行。

保护虚拟机可以为在管理程序的控制下工作、安装有操作系统的虚拟机,保护服务器在该虚拟机的环境中工作。

瘦客户端可以包括配置成保护受保护的虚拟机免受恶意程序和计算机威胁以及在网络中将用于防病毒扫描的文件传送到该保护虚拟机的软件。

保护服务器可以包括配置成执行从受保护的虚拟机接收的文件的防病毒扫描的软件。

图1示出根据本发明的方面的用于在虚拟机上检测恶意文件的示例性系统。用于在虚拟机上检测恶意文件的系统的结构图可以包括受保护的虚拟机100、需要防病毒扫描的文件的存储器101、瘦客户端模块110、收集模块111、动态计算模块112、选择模块113、任务形成模块114、保护虚拟机120、和扫描模块121。

用于在虚拟机上检测恶意文件的系统可以包含受保护的虚拟机100和多个保护虚拟机120,该受保护的虚拟机100在管理程序的控制下工作、安装有客户操作系统,瘦客户端110在受保护的虚拟机100的环境中工作,该保护虚拟机120在管理程序的控制下工作、安装有操作系统,扫描模块121在每个保护虚拟机120的环境中工作。

保护虚拟机120可以配置成对从瘦客户端110接收的文件执行防病毒扫描,且该保护虚拟机120可以包含扫描模块121。

扫描模块121可以配置成:

●对从任务形成模块114接收的文件执行防病毒扫描;以及

●宣布关于恶意文件的检测的裁决。

受保护的虚拟机100可以配置成检测文件存储器101中需要防病毒扫描的文件以及将这些文件转发到瘦客户端模块110用以执行防病毒扫描。

瘦客户端模块110可以配置成保护受保护的虚拟机100免受恶意文件,且可以包括收集模块111、动态计算模块112、选择模块113、和任务形成模块114。

收集模块111可以配置成:

●收集保护虚拟机120的计算资源的特性;

●收集扫描模块121的防病毒扫描的参数,其中,扫描模块121可以被安装在对应的保护虚拟机120上,上述参数决定了扫描模块121使用对应的保护虚拟机120的计算资源的规则,其中,上述的使用的规则决定了保护虚拟机120的哪些计算资源可以被提供给扫描模块121以执行包括防病毒扫描的特定活动;

●将收集的计算资源的特性和防病毒扫描的参数发送到动态计算模块112。

保护虚拟机120的计算资源的特性可以包括:

●在从任务形成模块114接收文件到由扫描模块121宣布裁决之间所经过的时间;

●发送到扫描模块121进行防病毒扫描的文件的数量;

●在其上运行扫描模块121的保护虚拟机120的计算能力。

例如,根据本发明的一个方面,收集的在其上运行扫描模块121的保护虚拟机120的计算资源的特性可以被归纳以形成保护虚拟机120的计算资源的单一特性,对于将收集的数据发送到动态计算模块112的每个建立的时间点ti,该单一特性可以包括一组数:

{δ,n,{m,b}}i

其中:

δ-为在由任务形成模块114从文件存储器101接收文件到由扫描模块121宣布裁决之间所经过的时间;

n-为在时间点ti发送到扫描模块121以执行防病毒扫描的文件的数量;

m-为保护虚拟机120在时间点ti的空闲内存容量;

b-为保护虚拟机120在时间点ti的cpu负荷。

所描述的这组数可以足够用于计算多维近似函数(该多维近似函数的系数之一为时间),该多维近似函数可以定义扫描模块121的行为。

由扫描模块121执行的防病毒扫描的参数可以包括:

●由扫描模块121使用以执行防病毒扫描的恶意文件的检测方法,其中,恶意文件的检测方法可以包括:

○签名分析,

○启发式分析,

○仿真结果的分析,

○黑白名单的分析;

●由扫描模块121使用以执行防病毒扫描的计算资源的特性。

可以限定恶意文件的检测方法的参数可以包括:

●发生防病毒扫描所持续的最大时间;

●被扫描的文件的仿真深度。

在其上运行扫描模块121的保护虚拟机120的计算能力可以包括:

●在其中运行扫描模块121的保护虚拟机120的ram;

●保护虚拟机120的cpu性能。

由扫描模块121使用以执行文件的防病毒扫描的参数可以影响由扫描模块121宣布的裁决的准确性,例如,当执行防病毒扫描时,没有检测出多个恶意文件中的一个恶意文件的机会,或相反地,检测出多个合法文件中的一个恶意文件的机会。例如,保护虚拟机#1120.1的扫描模块121可以在不多于0.01s内在签名分析的帮助下对从任务形成模块114接收的每个文件执行扫描,保护虚拟机#2120.2的扫描模块121可以在不多于0.1s内使用启发式分析,其中被扫描文件的仿真深度(嵌套调用的最大数量)等于10,以及保护虚拟机#3120.3的扫描模块121可以在不多于0.04s内使用启发式分析,其中被扫描文件的仿真深度等于1000。因此,结果是,最有效的扫描方式(即,使用保护虚拟机的最大量的计算资源的扫描方式)可以包括使用在保护虚拟机#3120.3上运行的扫描模块121,尽管最快扫描方式可以包括使用在保护虚拟机#1120.1上运行的扫描模块121。

动态计算模块112可以配置成:

●基于由收集模块111收集的计算资源的特性的分析来确定用于每个保护虚拟机120的计算资源的特性的近似时间函数,其中,讨论中的近似函数可以被呈现为:

其中:

fchar-为近似时间函数,

-为由收集模块111收集的保护虚拟机120的计算资源的特性,

-为在时间点tk可访问的保护虚拟机120的计算资源的特性,

ti,tj-为确定保护虚拟机120的计算资源的特性的时间,

tk-为确定保护虚拟机120的计算资源的特性所需要的时间;

以及它可以由参数a1,a2,…ai来限定,从而讨论中的近似函数可以以如下形式呈现:

●基于由收集模块111收集的防病毒扫描的参数的分析来确定每个扫描模块121的防病毒扫描的参数依赖于对应的保护虚拟机120的计算资源的特性的近似函数,该近似函数可以具有如下形式:

其中:

fparams-为近似函数,

-为由收集模块111收集的防病毒扫描的参数,其依赖于计算资源的特性ci,

-为用于计算资源的特性ck的防病毒扫描的假定参数,

ci,j-为在执行防病毒扫描时被扫描模块121使用的保护虚拟机120的计算资源的特性;

以及它可以由参数b1,b2,…bi来限定,从而讨论中的近似函数可以以如下形式呈现:

●将对每个保护虚拟机120的防病毒扫描的有效性的近似时间函数确定为所确定函数的组合(函数组合),其中,该函数组合为通过将一个函数应用于另一函数的结果所获得的函数,防病毒扫描的有效性表征保护虚拟机120达到防病毒扫描的建立结果所需的计算资源的量,讨论中的近似函数具有如下形式:

e=fefficiency({f},{c},{p}),

其中:

fefficiency-为近似函数,

{f}-为表征由任务形成模块114接收的文件的参数,其中这些参数可以限定:

■文件类型,和

■文件大小,

{c}-为描述保护虚拟机120的计算资源的特性的近似时间函数的参数,

{p}-为描述由扫描模块121执行的防病毒扫描的参数依赖于保护虚拟机120的计算资源的特性的近似函数的参数;

以及它可以由参数e1,e2,…ei来限定,从而讨论中的近似函数可以以如下形式呈现:

●以及将对于对每个保护虚拟机120的防病毒扫描的有效性所确定的近似时间函数发送到选择模块113。

限定保护虚拟机120的计算资源的特性的近似时间函数的参数可以为用于以下这种近似函数的数字系数:

其中:

-为由收集模块111收集的保护虚拟机120的计算资源的特性,

ti-为聚集保护虚拟机120的计算资源的特性的时间,

ai-为描述近似函数的数字系数。

限定由扫描模块121执行的防病毒扫描的参数依赖于保护虚拟机120的计算资源的特性的近似函数的参数可以包括用于以下这种近似函数的数字系数:

其中:

-为由收集模块111收集的由扫描模块121执行的防病毒扫描的参数,

ci-为保护虚拟机120的计算资源的特性,

bi-为限定近似函数的数字系数。

保护虚拟机120的扫描模块121的工作负荷水平可以充当对保护虚拟机120的防病毒扫描的有效性。

保护虚拟机120的扫描模块121的工作负荷水平可以被计算为限定保护虚拟机120的计算资源的特性的近似时间函数的参数集与限定由扫描模块121执行的防病毒扫描的参数依赖于保护虚拟机120的计算资源的特性的近似函数的参数集的叠加,其具有如下形式:

fbusy({f},{c},{p})=c({f})×p({f}),

其中:

{f}-为表征由任务形成模块114接收的文件的参数,

{c}-为限定保护虚拟机120的计算资源的特性的近似时间函数的参数,

{p}-为描述由扫描模块121执行的防病毒扫描的参数依赖于保护虚拟机120的计算资源的特性的近似函数的参数。

可以使用回归分析法计算限定近似时间函数的参数。

例如,在用于执行文件的防病毒扫描的pam容量为保护虚拟机120的计算资源的特性的情况下,可以将线性函数确定为近似函数,如以下公式所描述:

f(x)=a1×x+a2

在该情况下,参数a1、a2可以被计算为:

其中:

n-为期间获得了用在防病毒扫描的执行中的ram容量的值的时间戳的数量,

ti-为获得用于执行防病毒扫描的ram容量xi的值的时间戳,

xi-为用于执行防病毒扫描的ram容量xi在时间点ti的值。

选择模块113可以配置成:

●基于从动态计算模块112获得的防病毒扫描的有效性函数选择扫描模块121;

●为所选的扫描模块121确定执行防病毒扫描的开始时间,使得可以满足如下标准中的至少一者:

○防病毒扫描花费最少时间;

○防病毒扫描花费的时间比预计少;

○防病毒扫描将不晚于预计时间完成;

○需要保护虚拟机120的最小数量的计算资源来执行防病毒扫描;

○需要保护虚拟机120的比预计计算资源少的计算资源来执行防病毒扫描。

●将关于所选的扫描模块121的信息发送到任务形成模块114,该信息包含由所选的扫描模块121执行防病毒扫描的最有效的开始时间。

所选的扫描模块121可以包括:

●扫描部件,该扫描部件至少能够使用在预计时间槽中可用的计算资源来执行由任务形成模块114确定的文件的防病毒扫描;

●具有计算的最低的工作负荷水平的扫描模块121;

●具有比建立的阈值低的计算的工作负荷水平的扫描模块121;

●如果需要不少于两个文件的防病毒扫描,则出自一组扫描模块121的至少两个扫描模块121,上述至少两个扫描模块121的计算的组合工作负荷水平小于剩余的扫描模块121的组合工作负荷水平。

例如,扫描模块121的工作负荷水平可以如下来确定和计算:具有大小分别为10mb、20mb和50mb的3个文件,针对这3个文件需要执行防病毒扫描;扫描模块121已呈现了将防病毒扫描描述为花费至多0.01s的签名分析的参数,同时在其上运行扫描模块121的保护虚拟机120的特性可以具有60mb的可用ram容量。签名分析意味着文件将按原样被放在ram中,即,该文件将占用与其大小相同的容量。为了扫描模块121的工作负荷处于最大值,需要在两个阶段中发送前述3个文件:在第一阶段中发送文件#1和文件#3,在第二阶段中发送文件#2。因此,所有三个文件的防病毒扫描将花费0.02s,扫描模块121的工作负荷水平将分别为1和0.3(3),以及对于提及的三个文件形成的工作负荷将为0.6(6),这是最佳结果,考虑到在扫描文件#2期间,扫描模块121将具有足够的计算资源来处理新文件。在本情况下,工作负荷水平可以被计算为:

f繁忙({f},{c},{p})=文件大小×服务器时间×内存空闲。

任务形成模块114可以配置成:

●确定在其上运行瘦客户端模块110的受保护的虚拟机100的文件用以执行防病毒扫描;

●将命令发送到收集模块111以执行保护虚拟机120的计算资源的特性和扫描模块121的防病毒扫描的参数的收集;以及

●根据如由选择模块113确定的扫描时间,将所确定文件转发到扫描模块121,关于该扫描模块121的信息已由选择模块113提供。

例如,在已选择保护虚拟机120的扫描模块121的情况下,可以立刻或在一定时间之后执行文件的防病毒扫描。在这之前,扫描模块121已正在执行从任务形成模块114接收的文件的防病毒扫描的情况下,可以不进行新文件的防病毒扫描,以及该新文件可以被存储(例如存储在保护虚拟机120的硬盘驱动上)直到完成正执行的防病毒扫描,此后可以将该新文件从硬盘驱动加载到存储器中,以及扫描模块121可以执行防病毒扫描。在所描述的扫描模块121的工作逻辑中,可以执行两个耗时但非强制性的操作(如果适当地组织工作)-将文件写入硬盘和从硬盘读取文件。但是如果在选择扫描模块121之后没有立刻、而是在扫描模块121可以已执行了其先前任务的后续时间期间,将提及的文件派送到扫描模块121,则可以更快速地执行文件的防病毒扫描。

在一个示例性方面中,可以执行通过受保护的虚拟机100的瘦客户端110在三个保护虚拟机120(120.1、120.2和120.3)中分布的总容量为1gb的1000个文件的恶意文件检测。用于执行防病毒扫描的扫描模块121可以分别采用签名分析、启发式分析、和根据黑白名单的分析。上文提及的每种分析方法可以具有其自身的有效性(分别为0.6、0.95和0.1)且可以需要其自身的计算资源(分别为200mb的空闲ram、操作速度不小于100mflops(每秒百万次浮点运算)的cpu加上50mb的空闲ram、以及操作速度不小于10mflops的cpu加上10mb的空闲ram),这意味着各扫描模块121平均分别可以在0.01s、0.1s和0.002s内处理文件。

开始时,当没有关于保护虚拟机120的工作的统计资料可用时,可以由任务形成模块114根据给定的保护虚拟机120可以多快执行防病毒扫描来均匀地分布文件。在这段时间中,动态计算模块112可以在不同时间点积累关于计算资源的特性和所有保护虚拟机120的防病毒扫描的参数的统计资料,这使得可以计算特性和参数的近似函数。

对于保护虚拟机#1120.1,仅空闲ram的容量可为重要的,容量的变化遵从线性时间法则m(t)=a1×t+a2。基于收集的数据{mi,ti},可以利用最小二乘法来计算参数a1和a2,这使得可以预测保护虚拟机#1120.1在将用于执行防病毒扫描的文件发送到保护虚拟机#1120.1的扫描模块121的时间ti可以具有多少可用的ram。在知道在任何给定时间点有多少ram可用的情况下,任务形成模块114可以估计哪些文件可以被发送到扫描模块121以便在最少时间内处理那些文件。

对于保护虚拟机#2120.2和保护虚拟机#3120.3采用类似步骤,在此除了ram,还可以使用cpu操作速度。通过估计保护虚拟机120的cpu负荷(其遵从法则b(t)=a1×t3+a2×t2+a3×t+a4),可以计算参数a1、a2、a3、a4。此后,预测在将用于执行防病毒扫描的文件发送到保护虚拟机#2120.2(或#3120.3)的扫描模块121的时间ti时,保护虚拟机120的cpu负荷。采用该方式,达到保护虚拟机120的cpu具有最大有效负荷的效果。

作为在各个保护虚拟机120的扫描模块121之间分布任务的结果,可以实现对于受保护的虚拟机100的文件执行防病毒扫描的速度的提高,这是因为可以使用有效性高于在保护虚拟机120之间均匀或随机分布文件的情况下的有效性的保护虚拟机120。

图2示出根据本发明的方面的用于在虚拟机上检测恶意文件的示例性方法。在虚拟机上检测恶意文件的方法的结构图可以包括:步骤211,在该步骤211中,可以确定用于执行防病毒扫描的文件;步骤212,在该步骤212中,可以收集计算资源的特性;步骤213,在该步骤213中,可以确定用于计算资源的特性的近似时间函数;步骤214,在该步骤214中,可以收集防病毒扫描的参数;步骤215,在该步骤215中,可以确定用于防病毒扫描的参数依赖于计算资源的特性的近似函数;步骤216,在该步骤216中,可以确定用于防病毒扫描的有效性的近似时间函数;步骤217,在该步骤217中,可以选择扫描模块121;步骤218,在该步骤218中,可以确定用于执行防病毒扫描的最有效的开始时间;步骤221,在该步骤221中,可以执行防病毒扫描;以及步骤222,在该步骤222中,可以宣布关于恶意文件的检测的裁决。

在步骤211中,可以确定在其上运行上文提及的瘦客户端110的受保护的虚拟机100的文件存储器101中存储的文件,来执行防病毒扫描。

在步骤212中,可以确定并收集在其上运行扫描模块121的保护虚拟机120的计算资源的特性。

在一个示例性方面中,步骤212可以与步骤214同时执行。

保护虚拟机120的计算资源的特性可以包括:

●在从任务形成模块114接收文件到由扫描模块121宣布裁决之间所经过的时间;

●发送到扫描模块121进行防病毒扫描的文件的数量;以及

●在其上运行扫描模块121的保护虚拟机120的计算能力。

在其上运行扫描模块121的保护虚拟机120的计算能力可以包括:

●在其中运行扫描模块121的保护虚拟机120的ram;

●保护虚拟机120的cpu性能。

在步骤213中,可以基于在步骤212中收集的计算资源的特性的分析来确定用于每个保护虚拟机120的计算资源的特性的近似时间函数,其中,讨论中的近似函数可以具有如下形式:

其中:

fchar-为近似时间函数,

-为在步骤212中收集的保护虚拟机120的计算资源的特性,

-为在时间点tk可访问的保护虚拟机120的计算资源的特性,

ti,tj-为确定保护虚拟机120的计算资源的特性的时间,

tk-为确定保护虚拟机120的计算资源的特性所需要的时间;

以及它可以由参数a1,a2,…ai来限定,从而讨论中的近似函数可以以如下形式呈现:

限定保护虚拟机120的计算资源的特性的近似时间函数的参数可以包括用于以下这种近似函数的数字系数:

其中:

-为由收集模块111收集的保护虚拟机120的计算资源的特性,

ti-为聚集保护虚拟机120的计算资源的特性的时间,

ai-为描述近似函数的数字系数。

可以使用回归分析法计算描述近似时间函数的参数。

在步骤214中,可以确定可安装在对应的保护虚拟机120上的扫描模块121的防病毒扫描的参数,这些参数决定了扫描模块121使用对应的保护虚拟机120的计算资源的规则。

在一个示例性方面中,步骤214可以与步骤212同时执行。

由扫描模块121执行的防病毒扫描的参数可以包括:

●由扫描模块121使用以执行防病毒扫描的恶意文化的检测方法,其中,恶意文件的检测方法可以包括:

○签名分析,

○启发式分析,

○仿真结果的分析,和

○黑白名单的分析;

●计算资源的特性,该计算资源的特性被扫描模块121使用以执行防病毒扫描。

可以限定恶意文件的检测方法的参数可以包括:

●发生防病毒扫描所持续的最大时间;和

·被扫描的文件的仿真深度。

在步骤215中,可以基于在步骤214中收集的防病毒扫描的参数的分析来确定每个扫描模块121的防病毒扫描的参数依赖于对应的保护虚拟机120的计算资源的特性的近似函数,该近似函数具有如下形式:

其中:

fparams-为近似函数,

-为由收集模块111收集的防病毒扫描的参数,其依赖于计算资源的特性ci,

-为用于计算资源的特性ck的防病毒扫描的假定参数,

ci,j-为在执行防病毒扫描时被扫描模块121使用的保护虚拟机120的计算资源的特性;

以及由参数b1,b2,…bi来限定,从而讨论中的近似函数可以以如下形式呈现:

限定被扫描模块121执行的防病毒扫描的参数依赖于保护虚拟机120的计算资源的特性的近似函数的参数可以包括用于以下这种近似函数的数字系数:

其中:

-为如由收集模块111收集的由扫描模块121执行的防病毒扫描的参数,

ci-为保护虚拟机120的计算资源的特性,

bi-为限定近似函数的数字系数。

在步骤216中,可以将对每个保护虚拟机120的防病毒扫描的有效性的近似时间函数确定为在步骤213和步骤215中所确定的函数的组合,其中,该函数组合可以包括通过将一个函数应用于另一函数的结果所获得的函数,防病毒扫描的有效性表征保护虚拟机120达到防病毒扫描的建立结果所需的计算资源的量,讨论中的近似函数具有如下形式:

e=fefficiency({f},{c},{p}),

其中:

fefficiency-为近似函数,

{f}-为表征由任务形成模块114接收的文件的参数,其中这些参数可以包括:

■文件类型,和

■文件大小,

{c}-为描述保护虚拟机120的计算资源的特性的近似时间函数的参数,

{p}-为描述由扫描模块121执行的防病毒扫描的参数依赖于保护虚拟机120的计算资源的特性的近似函数的参数;

以及它可以由参数e1,e2,…ei来限定,从而讨论中的近似函数可以以如下形式呈现:

保护虚拟机120的扫描模块121的工作负荷水平可以充当对保护虚拟机120的防病毒扫描的有效性。

保护虚拟机120的扫描模块121的工作负荷水平可以被计算为限定保护虚拟机120的计算资源的特性的近似时间函数的参数集与限定被扫描模块121执行的防病毒扫描的参数依赖于保护虚拟机120的计算资源的特性的近似函数的参数集的叠加,其具有如下形式:

f繁忙({f},{c},{p})=c({f})×p({f}),

其中:

{f}-为表征由任务形成模块114接收的文件的参数,

{c}-为描述保护虚拟机120的计算资源的特性的近似时间函数的参数,

{p}-为描述由扫描模块121执行的防病毒扫描的参数依赖于保护虚拟机120的计算资源的特性的近似函数的参数。

在步骤217中,扫描模块121可以配置成基于在步骤216中所获得的防病毒扫描的有效性函数而在具有多个受保护的虚拟机和保护虚拟机的分布式网络中选择合适的扫描模块。

所选的扫描模块121可以配置成确定:

●在分布式网络中的多个保护虚拟机中的一个保护虚拟机的扫描模块,该扫描模块至少能够使用在预计时间槽中可用的计算资源来执行由任务形成模块114确定的文件的防病毒扫描;

●具有计算的最低工作负荷水平的扫描模块121;

●具有比建立的阈值低的计算的工作负荷水平的一个扫描模块121;

●出自一组扫描模块121的不少于两个扫描模块121,上述不少于两个扫描模块121的计算的组合工作负荷水平小于出自该组扫描模块121的剩余扫描模块121的组合工作负荷水平。

在步骤218中,可以为在步骤217中所选的扫描模块121确定用于执行防病毒扫描的开始时间,使得可以满足如下标准中的至少一者:

●防病毒扫描花费最少时间;

●防病毒扫描花费的时间比预计少;

●防病毒扫描将不晚于预计时间完成;

●需要保护虚拟机120的最小数量的计算资源来执行防病毒扫描;

●需要保护虚拟机120的比预计少的计算资源来执行防病毒扫描。

在步骤221中,可以对在步骤211中所确定的文件执行防病毒扫描。

在步骤222中,可以宣布关于恶意文件的检测的裁决。

图3示出根据本发明的方面的保护虚拟机的计算资源的特性的近似时间函数。保护虚拟机的计算资源的特性的近似时间函数的曲线图301可以包含保护虚拟机的计算资源的时间特性302和绘制的近似函数303。

可以通过动态计算模块112(其充当受保护的虚拟机100的瘦客户端110的一部分)基于从收集模块111(其充当前文提及的瘦客户端110的一部分)获得的表征保护虚拟机120的数据来确定保护虚拟机120的计算资源的特性的近似时间函数301。

保护虚拟机的计算资源的时间特性302可以包括保护虚拟机的cpu的依赖于时间(以秒表达,从0到50)的工作负荷水平(以百分数表达,从0%到100%)。

保护虚拟机的计算资源的特性302可用于49个时间戳问题是构造可用于计算保护虚拟机在时间t50的假定工作负荷的近似函数303。出于该目的,可以采用多个回归分析法之一,诸如最小二乘法。

在第一步骤中,可以选择限定近似函数的函数之一,诸如6次多项式函数:

fchar(x)=a1×x1+a2×x2+…+a6×x6

在下个步骤中,可以求解方程组来计算方程式fchar(x)的系数a1…a6,使得可以满足如下条件:

在已计算系数a1…a6以及知道时间t50的值之后,可以计算保护虚拟机的推定cpu负荷的值。对于在曲线图301中针对时间t50=50s所绘制的数据,这可以达到x50=85%。

图4示出根据本发明的方面的多个保护虚拟机的计算资源的特性的近似时间函数。多个保护虚拟机的计算资源的特性的近似时间函数的曲线图400可以包含保护虚拟机的计算资源的时间特性401、时间特性411和时间特性421,基于保护虚拟机的计算资源的时间特性的分析所分别绘制的近似函数402、近似函数412和近似函数422,以及形成的组合近似函数430。

可以通过动态计算模块112(作为受保护的虚拟机100的瘦客户端110的一部分操作)分别基于从收集模块111(作为前文提及的瘦客户端110的一部分操作)获得的表征保护虚拟机120.1、保护虚拟机120.2和保护虚拟机120.3的数据来确定保护虚拟机120.1、保护虚拟机120.2和保护虚拟机120.3的计算资源的特性的近似时间函数402、近似时间函数412和近似时间函数422。

保护虚拟机的计算资源的特性的近似时间函数401、近似时间函数411和近似时间函数421可以通过在图3的描述中所讨论的方法来获得。

保护虚拟机的计算资源的时间特性401、时间特性411和时间特性421可以包括各个保护虚拟机的cpu的依赖于时间(以秒表达,从0到25)的工作负荷水平(以百分数表达,从0%到100%)。

在计算每个保护虚拟机的cpu负荷的近似时间函数之后,可以计算所有的保护虚拟机的系统的cpu的组合负荷的近似函数430:

xj=∑i{aj}i。

为了选择将用于扫描的文件发送到保护虚拟机之一的保护服务器120的时间,可需要确定所有的保护虚拟机的cpu的组合负荷何时可以为最小。在知道保护虚拟机的cpu的最小组合负荷的时间的情况下,可以从所有可用的保护虚拟机中选择具有最小cpu负荷的保护虚拟机,以及可以将文件发送给该保护虚拟机的保护服务器120用以执行防病毒扫描。

图5示出根据本发明的方面的其上可实施所公开的系统和方法的示例性计算机系统(其可以是个人计算机或服务器)。如所示,该计算机系统20(其可以是个人计算机或服务器)包括中央处理单元21、系统存储器22和连接各种系统部件的系统总线23,各种系统部件包括与中央处理单元21相关联的存储器。如将由本领域的普通技术人员所领会,系统总线23可以包括总线存储器或总线存储器控制器、外围总线、以及能够与任何其它的总线架构交互的本地总线。系统存储器可以包括永久性存储器(rom)24和随机存取存储器(random-accessmemory,ram)25。基本输入/输出系统(basicinput/outputsystem,bios)26可以存储用于在计算机系统20的元件之间的信息传输的基本程序,例如在使用rom24加载操作系统时的那些基本程序。

计算机系统20也可以包括用于读取和写入数据的硬盘27、用于在可移除的磁盘29上读取和写入的磁盘驱动器28、以及用于读取和写入可移除的光盘31(诸如cd-rom、dvd-rom和其它光学媒介)的光盘驱动器30。硬盘27、磁盘驱动器28和光盘驱动器30分别通过硬盘接口32、磁盘接口33和光盘驱动器接口34而连接到系统总线23。驱动器和对应的计算机信息媒介为用于存储计算机系统20的计算机指令、数据结构、程序模块和其它数据的电源独立的模块。

示例性方面包括使用借助控制器55连接到系统总线23的硬盘27、可移除的磁盘29和可移除的光盘31的系统。将由本领域的普通技术人员所理解,也可以利用能够以计算机可读的形式存储数据的任何类型的媒介56(固态驱动器、闪存卡、数字盘、随机存取存储器(ram)等等)。

计算机系统20具有可以存储操作系统35的文件系统36、以及额外的程序应用37、其它程序模块38和程序数据39。计算机系统20的用户可以使用键盘40、鼠标42、或本领域的普通技术人员已知的任何其它输入设备(诸如但不限于麦克风、操纵杆、游戏控制器、扫描器等)输入命令和信息。这些输入设备通常通过串行端口46插入到计算机系统20中,串行端口46转而连接到系统总线,但是本领域的普通技术人员将领会,输入设备也可以以其它方式来连接,诸如但不限于借助并行端口、游戏端口、或通用串行总线(universalserialbus,usb)来连接。监控器47或其它类型的显示设备也可以通过接口(例如视频适配器48)连接到系统总线23。除了监控器47,个人计算机还可以装备有其它的外围输出设备(未示出),例如扬声器、打印机等。

计算机系统20可以使用与一个或多个远程计算机49的网络连接而工作在网络环境中。一个或多个远程计算机49可以为本地计算机工作站或服务器,其包括在描述计算机系统20的性质时使用的上述元件中的大多数元件或全部元件。其它设备也可以存在于计算机网络中,诸如但不限于路由器、网站、对等设备或其它的网络节点。

网络连接可以形成局域计算机网络(local-areacomputernetwork,lan)50和广域计算机网络(wide-areacomputernetwork,wan)。这些网络用在企业计算机网络和公司内部网络中,并且这些网络通常有权访问因特网。在lan或wan网络中,个人计算机20通过网络适配器或网络接口51连接到局域网50。当使用网络时,计算机系统20可以采用调制解调器54或本领域的普通技术人员所熟知的实现与广域计算机网络(诸如因特网)的通信的其它模块。调制解调器54可以是内部设备或外部设备,可以通过串行端口46连接到系统总线23。本领域的普通技术人员将领会,所述网络连接是使用通信模块建立一个计算机与另一个计算机的连接的许多熟知方式的非限制性示例。

在各个方面中,本文中所描述的系统和方法可以以硬件、软件、固件或它们的任何组合来实施。如果以软件来实施,则上述方法可以作为一个或多个指令或代码而被存储在非易失性计算机可读介质上。计算机可读介质包括数据存储器。以示例性而非限制性的方式,这种计算机可读介质可以包括ram、rom、eeprom、cd-rom、闪存或其它类型的电存储介质、磁存储介质或光存储介质,或可用来携带或存储所期望的指令或数据结构形式的程序代码并可以被通用计算机的处理器访问的任何其它介质。

在各个方面中,本发明中所描述的系统和方法可以按照模块来处理。本文中所使用的术语“模块”指的是例如现实世界的设备、部件、或使用硬件(例如通过专用集成电路(applicationspecificintegratedcircuit,asic)或现场可编程门阵列(field-programmablegatearray,fpga))实现的部件的布置,或者指的是硬件和软件的组合,例如通过微处理器系统和实现模块功能的指令集(该指令集在被执行时将微处理器系统转换成专用设备)来实现这样的组合。一个模块还可以被实施为两个模块的组合,其中单独地通过硬件促进某些功能,并且通过硬件和软件的组合促进其它功能。在某些实现方式中,模块的至少一部分(以及在一些情况下,模块的全部)可以被执行在通用计算机(例如上文在图4中更详细描述的通用计算机)的处理器上。因此,每个模块可以以各种适合的配置来实现,而不应受限于本文中所例示的任何特定的实现方式。

为了清楚起见,本文中没有公开各个方面的所有例程特征。应当领会的是,在本发明的任何实际的实现方式的开发中,必须做出许多特定于实现方式的决定,以便实现开发者的特定目标,并且这些特定目标将对于不同的实现方式和不同的开发者变化。应当理解的是,这种开发努力会是复杂的且费时的,但对于了解本发明的优点的本领域的普通技术人员来说仍然是工程的例行任务。

此外,应当理解的是,本文中所使用的措辞或术语出于描述而非限制的目的,从而本说明书的术语或措辞应当由本领域技术人员根据本文中所提出的教导和指导结合相关领域技术人员的知识来解释。此外,不旨在将本说明书或权利要求中的任何术语归于不常见的或特定的含义,除非明确如此阐述。

本文中所公开的各个方面包括本文中以说明性方式所引用的已知模块的现在和未来已知的等同物。此外,尽管已经示出并描述了各个方面和应用,但是对于了解本发明的优点的本领域技术人员将显而易见的是,在不脱离本文中所公开的发明构思的前提下,相比于上文所提及的内容而言的更多修改是可行的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1