CN102754104A - 在相关计算系统之间共享计算操作结果的系统和方法 - Google Patents

在相关计算系统之间共享计算操作结果的系统和方法 Download PDF

Info

Publication number
CN102754104A
CN102754104A CN201080061800.4A CN201080061800A CN102754104A CN 102754104 A CN102754104 A CN 102754104A CN 201080061800 A CN201080061800 A CN 201080061800A CN 102754104 A CN102754104 A CN 102754104A
Authority
CN
China
Prior art keywords
document
file
storage
calculating operation
correlation computations
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.)
Granted
Application number
CN201080061800.4A
Other languages
English (en)
Other versions
CN102754104B (zh
Inventor
J·迈耶
D·布彻斯
B·麦科肯德尔
W·索贝尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CA Inc
Original Assignee
Symantec Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Symantec Corp filed Critical Symantec Corp
Publication of CN102754104A publication Critical patent/CN102754104A/zh
Application granted granted Critical
Publication of CN102754104B publication Critical patent/CN102754104B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

一种在相关计算系统之间共享计算操作结果的计算机实现方法可以包括:1)识别对一个文件执行一次计算操作的需求,2)识别与该文件相关联的一个唯一标识符,3)通过利用该唯一标识符来查询一个相关计算系统群组共享的一个共享存储来确定该相关计算系统群组内至少一个计算系统已经对该文件的一个实例预先执行了计算操作,4)从该共享存储中检索计算操作的结果,而非执行计算操作。在此还披露了不同的其他的方法、系统、以及计算机可读媒质。

Description

在相关计算系统之间共享计算操作结果的系统和方法
背景技术
相关计算系统,例如运行在公共主机或物理计算装置(连接至公共网络)上的虚拟机,可能经常遇到一个或多个相同文件的实例。例如,运行相同操作系统或服务包和/或源自相同基础镜像的虚拟机内的高比率文件可能是相同的。为此,相关计算系统可能对相同文件的实例冗余地执行完全相同的或相似的消耗资源的计算操作。
例如,如果指令源自相同基础镜像并运行在公共主机上的30个虚拟机来执行所有文件的定期恶意软件扫描,那么这些虚拟机有可能对虚拟机(例如公共系统或应用文件)之间共享的文件的实例集体执行30次不同的恶意软件扫描,所有的扫描具有相似的或相同的结果。除了在这类冗余操作上浪费计算资源外,这种方案还可能使基础主机的资源变得无效或过度使用,从而有可能导致性能下降和/或系统失效。因此,本披露表明存在一种需求:在一个相关计算系统群组之间识别公共内容,然后使用这种知识在该相关计算系统之间共享在这种公共内容上执行的计算操作的结果。
发明概述
如以下更为详细描述的,本披露总体上涉及在相关计算系统之间共享在共享的或公共的文件上执行的计算操作(例如恶意软件或数据丢失防护扫描)的结果。在一个实例中,在此描述的这些系统中的一个或多个可以通过以下方式完成这样一项任务:1)识别对虚拟机内的一个文件执行计算操作(例如一次恶意软件或数据丢失防护扫描)的需求,2)识别与该文件相关的一个唯一标识符(例如哈希),3)通过利用该唯一标识符来查询相关计算系统群组共享的共享存储(例如在连接至公共网络上的主机或物理计算装置群组上运行的虚拟机群组)来确定该相关计算系统群组内的至少一个计算系统已经预先对该文件的一个实例执行了所需的计算操作,并且4)从该共享存储检索该计算操作的结果,而非再次执行计算操作。
在一个实例中,在此描述的系统可以通过创建该文件的一个哈希或通过从一个本地缓存或存储来检索该文件的一个哈希而识别与该文件相关联的一个唯一标识符。在一些实例中,包含在该本地缓存或存储中的文件哈希可以一直保持,只要与每个哈希相关联的文件保持静态或不发生变化。例如,如果在此描述的系统确定一个文件已经被修改或发生变化,那么这些系统可以从该本地缓存或存储中清除或删除该文件的文件哈希。
在一些实例中,包含在该共享存储中的计算操作结果可以包括信息,除了其他元素外,该信息识别在一次恶意软件分析过程中分配给该文件的一个类别、在该恶意软件分析过程中分配给该文件的用于该类别的至少一个原则、和/或当执行该恶意软件分析时使用的至少一个病毒定义集或探试程序。根据所涉及的计算系统类型,这种共享存储可以代表一个网络附加存储装置、一个存储区域网络、一个文件服务器、一个基于云的存储装置、和/或由管理程序管理的本地存储装置的一个安全分区中的至少一部分。在一些实例中,这种共享存储可以利用文件哈希进行标引。
由于需要对一个文件进行哈希操作的计算资源可以等于或多于共享结合该文件执行的计算操作结果所需的计算资源(例如对一个文件进行哈希操作所消耗的计算资源可能比对相同的文件执行一次恶意软件扫描消耗的更多),在一些实例中在此描述的系统可以仅共享在一些文件上执行的计算操作的结果,这些文件不可能频繁变化和/或可能位于相关计算系统群组内的附加计算系统上或由这些系统遇到。例如,如果在此描述的系统确定一个文件可能频繁变化(从而可能需要为该文件频繁地生成新的哈希)和/或该文件的附加实例不可能由群组内的附加计算系统遇到,那么在此描述的系统可以不对该文件进行哈希操作和/或试图共享对该文件执行的计算操作的结果,因为通过共享这些结果,共享这些结果所需的计算资源可以等于或超过该群组所集体节约的计算资源。
在一个实例中,如果在此描述的系统确定共享存储指示在该群组内的相关计算系统中没有一个对有问题的文件已经预先执行了所需的计算操作,那么在此描述的系统可以对该有问题的文件执行所需的计算操作,然后利用计算操作的结果更新共享存储。
贯穿这些附图,相同的参考字符以及描述表示相似的但并不一定完全相同的要素。虽然在此说明的这些示例性实施方案可容许进行不同的修改以及多种替代形式,在此仍在附图中以举例的方式示出多个具体的实施方案并且对其进行了详细的说明。然而,在此说明的多个示例性实施方案无意限制于所披露的这些具体形式。相反,本披露涵盖了落入所附权利要求范围内的所有修改形式、等效形式、以及替代方案。
附图简要说明
这些附图展示了多个示例性实施方案并且是本说明书的一部分。这些附图与以下的说明一起展现并解释了本披露的不同原理。
附图展示了多个示例性实施方案并且是本说明书的一部分。这些附图与以下的说明共同展现并解释了本披露的不同原理。
图1是一种用于在相关计算系统之间共享计算操作结果的示例性系统的方框图。
图2是一种用于在相关计算系统之间共享计算操作结果的附加示例性系统的方框图。
图3是一种用于在相关计算系统之间共享计算操作结果的示例性系统的方框图。
图4是一种用于在相关计算系统之间共享计算操作结果的示例性方法的流程图。
图5是一个示例性文件归属数据库的示意图。
图6是一个示例性计算系统的方框图,该计算系统能够实施在此说明和/或展示的这些实施方案中的一个或多个。
图7是一种示例性计算网络的框图,该计算网络能够实施在此说明和/或展示的这些实施方案中的一个或多个。
贯穿这些附图,相同的参考字符以及描述表示相似的但并不一定完全相同的要素。虽然在此说明的这些示例性实施方案可容许进行不同的修改以及多种替代形式,在此仍在附图中以举例的方式示出多个具体的实施方案并且对其进行了详细的说明。然而,在此说明的多个示例性实施方案无意限制于所披露的这些具体形式。相反,本披露涵盖了落入所附权利要求范围内的所有修改形式、等效形式、以及替代方案。
示例性实施方案的详细说明
如以下更为详细说明的,本披露总体上涉及在相关计算系统之间共享计算操作结果的多种系统及方法。1以下将参考图1至3以及5提供在相关计算系统之间共享计算操作结果的多种示例性系统的详细描述。还将结合图4提供相应的计算机实施的方法的详细说明。另外,将结合图6和图7相应地提供一种示例性计算系统和网络体系结构的详细说明,它们能够实施在此说明的这些实施方案中的一个或多个。
图1是在相关计算系统之间共享计算操作结果的示例性系统100的方框图。如图中所示,示例性系统100可以包括用于执行一项或多项任务的一个或多个模块102。例如,如以下更详细描述的,示例性系统100可以包括一个操作识别模块104,对该模块进行编程以识别在一个文件上执行计算操作的需求。示例性系统100还可以包括一个文件识别模块106,对该模块进行编程以识别与该文件相关的一个唯一标示符。
另外,如以下更为详细描述的,示例性系统100可以包括一个查询模块108,对该模块进行编程以便:1)通过使用该唯一标示符来查询一个相关计算系统群组共享的共享存储,确定该相关计算系统群组内至少一个计算系统已经预先对有问题文件的实例进行了计算操作,并且2)从该共享存储检索该计算操作的结果,而不是执行计算操作。尽管被展示为多个分离的元素,图1中的模块102中的一个或多个可以代表一个单一的模块或应用程序中的多个部分。
在某些实施方案中,图1中模块102的一个或多个可以代表一个或多个软件应用程序或程序,这些软件应用程序或程序在由一个计算装置执行时可以使该计算装置执行一项或多项任务。例如,如以下更为详细描述的,模块102的一个或多个可以表示存储并配置用于在一个或多个计算装置上运行的多个软件模块,例如图2和3所描述的装置(例如虚拟机202(1)-(N)以及计算装置302(1)-(N))、图6中的计算系统610、和/或图7中的示例性网络体系结构700的多个部分。图1中模块102的一个或多个还可以代表被配置用于执行一项或多项任务的一个或多个专用计算机的全部或多个部分。
如图1中所示,示例性系统100还可以包括一个文件归属数据库120。在一个实施方案中,如以下更为详细解释的,文件归属数据库120可以被配置用于存储一个或多个文件哈希122和文件归属信息124。文件归属数据库120可以表示一个单一数据库或计算装置或多个数据库或计算装置中的多个部分。例如,文件归属数据库120可以表示图2中的本地存储212(1)-(N)和/或共享存储216、图3中的本地存储303(1)-(N)和/或共享存储306、图6中的计算系统610中的一部分、和/或图7中示例性网络体系结构700的多个部分。可替代地,图1中的文件归属数据库120可以表示能够由一个计算装置访问的一个或多个物理上分离的装置,例如图2中的虚拟机202(1)-(N)、图3中的计算装置302(1)-(N)、图6中的计算系统610,和/或图7中示例性网络体系结构700的多个部分。
图1中的示例性系统100可以采用各种方式进行部署。在一个实例中,示例性系统100的全部或一部分表示图2中一个示例性主机200的多个部分。如图2中所示,主机200可以包括与一组硬件208通过虚拟化层面204进行通信的多个虚拟机202(1)-(N)。在一个实施方案中,如以下更详细描述的,图1中模块102可以对虚拟机202(1)-(N)中的每一个进行编程以便:1)识别对虚拟机内的一个文件执行计算操作(例如一次恶意软件扫描)的需求,2)识别与该文件相关的一个唯一标识符(例如文件哈希),3)利用该唯一标识符来查询共享存储216(如以下所解释的,该存储可以由虚拟机202(1)-(N)共享),确定一个附加的虚拟机群组220已经预先对该文件的实例进行了所需要的计算操作,并且4)从该共享存储检索该计算操作的结果,而不是再次执行计算操作。
主机200通常表示能够托管一个或多个虚拟机的任意类型或形式的物理计算装置。主机200的实例包括(但不限于)膝上型计算机、桌上型计算机、服务器、蜂窝电话、个人数字助理(PDA)、多媒体播放器、嵌入式系统、图6中相同的示例性计算系统610的一个或多个的组合、或任意其他适当的计算装置。
虚拟机202(1)-(N)通常表示能够读取计算机可执行指令的任意类型或形式的虚拟或仿真计算机器。虚拟机202(1)-(N)的实例包括(但不限于)系统虚拟机、过程虚拟机、或任意其他适合的虚拟或仿真计算装置。在图2所示的实例中,虚拟机202(1)-(N)可以通过虚拟化层面204访问主机200的底层硬件208,该虚拟化层面可以提取并管理主机200的计算资源。
如图2所示,除了其他元件外,硬件208可以包括至少一个存储装置。在一些实施方案中,虚拟化层面204可以将硬件208提取到多个本地存储212(1)-(N),以用于虚拟机202(1)-(N)中的每一个。如以下更详细描述的,除其他信息之外,本地存储212(1)-(N)可用于存储文件哈希的缓存拷贝,这些文件哈希可用于查询共享存储216。
共享存储216通常表示任意类型或形式的物理或虚拟化存储,这些存储可由例如图2中的虚拟机202(1)-(N)这样的相关计算系统群组共享或访问。在一些实施方案中,共享存储216可以包含或包括一个文件归属数据库(例如图1和5中的文件归属数据库),对于计算系统群组(例如虚拟机202(1)-(N))所遇见的多个文件中的每一个,该数据库可以包含:1)该文件的哈希,2)在结合该文件执行的至少一个计算操作的结果(例如在一次恶意软件分析过程中分配给该文件的一个类别,在该恶意软件分析过程中分配给该文件的用于该类别的至少一个原则,当执行该恶意软件分析时使用的至少一个病毒定义集或探试程序等),3)结合该文件执行的至少一个计算操作的日期(例如在该文件上最近执行的恶意软件扫描的日期),和/或4)可以在相关计算系统之间共享的任意其他可能有用的信息。
任意类型或形式的相关计算系统群组可以共享或访问一个共享存储。在一个实例中,运行在一个公共主计算装置上的多个虚拟机(例如运行在图2中主机200上的相关计算系统群组220)可以访问一个共享存储(例如共享存储216)。例如,如图2中所示,虚拟机202(1)-(N)可以通过运行在虚拟化层面204内的安全进程206(例如,通过一个管理程序进行管理)来访问位于安全分区214内的共享存储216。
在另一个实例中,位于一个公共网络内的多个物理机器(例如通过网络304进行通信的图3中相关计算系统群组320)可以访问一个共享存储。例如,如图3所示,计算装置302(1)-(N)可以通过网络304访问共享存储306。在这个实例中,共享存储306可以表示一个网络附加存储装置、一个存储区域网络、一个文件服务器、一个基于云的存储装置、或可由相关物理机器群组访问的其他类型或形式的存储装置中的至少一部分。
在图3所示的实例中,计算装置302(1)-(N)可以表示能够读取计算机可执行指令的任意类型或形式的物理计算装置。计算装置302(1)-(N)的实例包括(但不限于)膝上型计算机、桌上型计算机、服务器、蜂窝电话、个人数字助理(PDA)、多媒体播放器、嵌入式系统、图6中相同的示例性计算系统610的一个或多个的组合、或任意其他适当的计算装置。
在图3所示的实例中,网络304可以表示能够协助通信或数据传输的任意介质或体系结构。网络304的实例包括(但不限于):内部网、广域网(WAN)、局域网(LAN)、个人区域网(PAN)、校园网(CAN)、互联网、电力线通信(PLC)、蜂窝网络(例如GSM网络)、图7中的示例性网络体系结构700等等。网络304可以使用无线或有线连接来协助通信或数据传送。在一个实例中,计算装置302(1)-(N)可以利用TCP/IP通信协议通过网络304访问共享存储306或与其进行通信。
图4是一种用于在相关计算系统之间共享计算操作结果的示例性计算机实现方法400的流程图。图4中所示的步骤可以由任何适当的计算机可执行代码和/或计算系统来执行。在一些实施方案中,图4中所示的步骤可以由图1中的系统100的组件中的一个或多个、图2中主机200、图3中的系统300、图6中的计算系统610、和/或图7中示例性网络体系结构700的多个部分来执行。
如图4所示,在步骤402在此所描述的不同系统中的一个或多个可以识别对一个文件执行计算操作的需求。例如,作为图2中虚拟机202(1)的一部分,图1中的操作识别模块104可以识别对虚拟机202(1)内的一个文件(例如,在存储装置210内的存储空间中存储的文件,该存储装置已经通过虚拟化层面204分配给虚拟机202(1))执行计算操作的需求。
步骤402中操作识别模块104识别的计算操作可以表示结合消耗计算资源的文件所执行的任意类型或形式的计算操作。步骤402中可以由操作识别模块104识别的计算操作的实例包括(但不限于)文件的恶意软件分析(以便例如确定是否文件是恶意的)、文件的数据丢失防护分析(以便例如确定文件是否包含信息)、文件的基于社区的信誉查找(以便例如确定社区内文件的可信度或信誉)、文件的文件类型分析、或可以对文件或与其相结合来执行的任意其他类型或形式的计算操作。
返回到图4,在步骤404在此描述的系统的一个或多个可以识别与该文件相关的一个唯一标识符。例如,作为图2中虚拟机202(1)的一部分,图1中的文件识别模块106可以识别与步骤402中识别的文件相关联的一个唯一标识符。此处所用的术语“唯一标识符”通常表示用于唯一识别文件的任意类型或形式的方法。唯一文件标识符的实例包括(但不限于)文件哈希,如MD5哈希、SHA-1哈希、SHA-256哈希等等。
在此描述的系统可以采用各种方式执行步骤404。在一个实例中,图1中的文件识别模块106可以通过创建一个文件的哈希来识别与该文件相关联的一个唯一标识符。例如,作为虚拟机202(1)的一部分,文件识别模块106可以在它遇到一个文件时创建该文件的一个哈希。在一个实例中,文件识别模块106可以接着将该哈希存储在与虚拟机202(1)相关联的一个本地存储212(1)中。在此实例中,文件识别模块106可以在它随后遇到该文件时从本地存储212(1)中检索该文件的哈希,而不是为该文件再次创建一个哈希。
如上所详述的,虚拟机202(1)-(N)可以将各种信息存储在本地存储212(1)-(N)内。可以由虚拟机202(1)-(N)存储在本地存储212(1)-(N)内的信息类型的实例包括(但不限于)文件元数据(例如一个文件的哈希)、与该文件相结合执行的至少一个计算操作的日期(例如一个文件的最近的恶意软件扫描日期)、文件的文件祖先信息、或任意其他可能有用的信息。
在一些实施方案中,本地存储212(1)-(N)内文件的文件元数据可以保持下去,只要该文件维持静态或不变。例如,当首次遇到一个文件时,图1中的文件识别模块106可以在本地存储212(1)中为一个文件创建并存储各种文件元数据(例如文件哈希)。在此实例中,与该文件相关联的文件元数据可以保持在本地存储212(1)内,只要该文件不发生变化。然而,如果文件识别模块106确定(例如通过一个文件系统微过滤器)该文件已经发生变化,然后文件识别模块106可以从本地存储212(1)中清理或删除与该变化的或修改的文件相关联的所有文件元数据。这样,文件识别模块106可以确信地并且有效地重新使用存储在本地存储212(1)内的文件元数据(例如文件哈希)并且可以只为新文件或新版本文件重新计算或重新生成文件元数据。
由于需要唯一识别文件的计算资源可以等于或多于需要用于共享在一个文件上执行计算操作的结果的计算资源(例如,对一个文件进行哈希操作所消耗的计算资源可能比对相同的文件执行一次恶意软件扫描消耗的更多),在一些实例中在此描述的系统可以仅对虚拟机202(1)-(N)遇到的文件的一个所选部分执行步骤404至408(即,在此描述的系统可以仅唯一地识别并共享与满足特定标准的文件相结合而执行的计算操作的结果)。例如,在执行图4中的步骤404之前,文件识别模块106可以:1)确定步骤402中识别的文件的一个附加实例是否可能位于相关计算系统群组内的至少一个附加计算系统上(从而可能指示该相关计算系统群组内的一个或多个计算系统是否可能遇到步骤402中识别的文件的一个实例和/或预先对该文件的一个实例执行了步骤402中识别的所需计算操作)和/或2)确定步骤402中识别的文件是否可能频繁变化(从而可能指示是否可能需要对该文件频繁地执行未来消耗资源的文件哈希操作)。
例如,如果文件识别模块106确定一个文件位于可能包含非用户生成文件的一个目录或位置(例如“C:/Windows/System32/”或“C:/ProgramFiles/Microsoft Office/”)和/或不位于可能包含用户生成文件的位置或目录(例如,“C:/Documents and Settings/”)中,那么文件识别模块106可以确定该文件的附加实例可能位于该相关计算系统群组内的至少一个附加计算系统上,从而产生下面的可能性:该相关计算系统群组内的计算系统的一个或多个已经预先遇到和/或对有问题的文件执行了步骤402中识别的计算操作。
相似地,如果文件识别模块106确定:1)一个文件位于通常与静态或未发生变化的文件相关联的一个目录或位置(例如“C:/Windows/System32/”),2)一个文件在一个预定时段内发生变化的次数少于预定次数(例如在一年时间内少于5次),和/或3)一个文件已经在预定时段(例如,1年)上保持静态,那么文件识别模块106可以确定文件可能频繁变化,因此有可能指示将来需要对该文件执行相对少的消耗资源的文件哈希操作。
在以上的实例中,如果文件识别模块106确定一个文件可能频繁变化和/或一个文件的附加实例可能位于相关计算系统群组内,那么文件识别模块106可以执行图4中的步骤404(例如通过为该文件识别或创建一个哈希)并允许示例性方法400继续进行。然而,如果文件识别模块106确定该文件可能频繁变化和/或一个文件的附加实例不可能位于该相关计算系统群组内,那么示例性方法400可以根据步骤402的结论而终止(例如,文件识别模块106可以不为该文件识别或创建一个哈希),因为执行步骤404至408所需的计算资源可以通过执行步骤404至408等于或多于该群组所节约的集体计算资源。
返回到图4,在步骤406利用步骤404中识别的唯一标识符来查询由相关计算系统群组所共享的共享存储,在此描述的多个系统中的一个或多个可以确定该相关计算系统群组中至少一个计算系统已经预先对该文件的一个实例执行了所需的计算操作。例如,图1中的查询模块108作为图2中虚拟机202(1)的一部分可以使用与步骤404中识别的文件相关联的唯一标识符来查询共享存储216,以确定群组220中的一个附加虚拟机是否已经预先对该文件的一个实例执行了步骤402中识别的计算操作。
如以上详细描述,共享存储可以由相关计算系统群组来共享或访问,例如图2中的虚拟机202(1)-(N)和/或计算装置302(1)-(N)。在一些实施方案中,通过在共享存储中存储文件元数据,这些计算系统可以与它们的相关群组内的其他计算系统一起共享与一个文件相关联的这种文件元数据。例如,图2中的虚拟机202(1)-(N)和/或计算装置302(1)-(N)可以分别在共享存储216和306中为图2中的虚拟机202(1)-(N)和/或计算装置302(1)-(N)遇到的文件存储文件元数据。图2中的虚拟机202(1)-(N)和/或计算装置302(1)-(N)可以分别在共享存储216和306中存储的信息类型的实例包括(但不限于):1)一个文件的哈希,2)与一个文件相结合执行的至少一次计算操作的结果(例如在一次恶意软件分析过程中分配给一个文件的一个类别、在一次恶意软件分析过程中分配给一个文件的类别的至少一个原则、当对一个文件执行一次恶意软件分析时所使用的至少一个病毒定义集或探试程序等),3)结合一个文件执行的至少一次计算操作的日期(例如在文件上最近执行的恶意软件扫描的日期),和/或4)可以在相关计算系统之间共享的任意其他可能有用的信息。
如以上详细描述,任意类型或形式的相关计算系统群组可以共享或访问一个共享存储。可以共享或访问一个共享存储的相关计算系统群组的类型的实例包括(但不限于)运行在一个公共主计算装置上的多个虚拟机(例如运行在图2中主机200上的相关计算系统群组220)、位于一个公共网络内的多个物理机器(例如通过图3中网络304与彼此进行通信的相关计算系统群组320)、或任意其他的相关计算系统群组。
根据所涉及的计算系统类型,这种共享存储可以表示一个网络附加存储装置、一个存储区域网络、一个文件服务器、一个基于云的存储装置、由管理程序管理的本地存储装置的一个安全分区(例如图2的安全分区214,该分区可以由虚拟化层面204内的共享进程206进行访问)等中的至少一部分。访问这种共享存储可以依赖于所涉及的计算系统类型。例如,位于LAN内的物理机器可以利用TCP/IP通信协议与位于一个网络附加存储装置或存储区域网络上的共享存储进行通信。可替代地,通过运行在一个虚拟化层面内的安全进程,位于一个公共主机上的虚拟机可以与位于一个安全分区内的共享存储(由管理程序进行管理)进行通信。在一些实例中,这种共享存储可以基于文件哈希进行标引。
在一些实例中,计算系统可以通过一个安全通信机制只访问这种共享存储,以防止欺骗和/或篡改。例如,位于公共主机上的虚拟机可以通过在虚拟化层面中运行的安全进程只访问位于安全分区(由管理软件进行管理)内的一个共享存储。相似地,连接至公共网络的物理机器可以利用安全(例如加密的)通信协议仅与位于网络附加存储装置或存储区域网络上的共享存储进行通信。在一些实例中,安全通信机制的鲁棒性和/或进取性可以依赖于相关计算系统群组的尺寸,因为相关计算系统群组的尺寸越大,安全通信机制可能会变得更繁重。
如以上详细描述,相关计算系统可以使用文件哈希来查询共享存储以便确定附加的物理或虚拟机是否已经预先对一个具体文件执行了所需的计算操作。例如,虚拟机202(1)可以利用一个具体文件的哈希来查询共享存储216以确定虚拟机202(1)-(N)中的一个或多个是否已经预先对该文件执行了所需的计算操作。如果共享存储216指示虚拟机202(1)-(N)中没有一个已经对该有问题的文件执行了所需的计算操作(例如,如果共享存储216不包含该有问题的文件文件元数据或不包含对该有问题的文件执行的所需计算操作的结果),那么虚拟机202(1)可以对该有问题的文件执行所需的计算操作,然后利用计算操作的结果更新共享存储202(1)(例如,通过在共享存储216中存储文件元数据(例如有问题文件的哈希)以及对有问题文件执行的计算操作的结果)。
在以后的时间点上,通过在对相同文件的一个附加实例执行所需计算操作之前查询共享存储216,虚拟机202(N)可以确定一个相关计算系统(在这种情况下,是虚拟机202(N))预先对有问题文件的一个实例执行了所需的计算操作。在这种实例中,虚拟机202(N)可以从共享存储216中检索所需计算操作的结果,而不是再次执行计算操作,这将在以下结合步骤408进行解释。
如果有问题文件随后发生变化,并且如果虚拟机202(1)随后识别对修改的或发生变化的文件执行计算操作的需求,然后虚拟机202(1)可以再次利用修改的或发生变化的文件的一个新哈希再次查询共享存储216,以确定虚拟机202(1)-(N)中的一个或多个是否已经对该变化的文件预先执行了所需的计算操作。如前所述,如果共享存储216指示虚拟机202(1)-(N)中没有一个已经预先对变化的文件执行了所需的计算操作(即,如果共享存储216不包含发生变化文件的文件元数据或不包含对发生变化文件执行的所需计算操作的结果),那么虚拟机202(1)可以对变化的文件执行所需的计算操作,然后利用计算操作的结果更新共享存储202(1)。
在以上实例中,共享存储216可以包含用于原始的未发生变化的文件和发生变化或修改文件的文件元数据(如文件哈希以及计算操作的结果)。因此,通过利用原始的或发生变化的文件的哈希来查询共享存储216,虚拟机202(1)-(N)中的一个或多个可以确定虚拟机202(1)-(N)中的一个附加虚拟机是否已经对原始文件或变化文件预先执行了所需计算操作。
在一些实例中,如果查询模块108通过查询共享存储内的文件归属数据库120来确定相关计算系统群组内的一个附加计算系统已经对有问题文件预先执行了一次恶意软件扫描,那么查询模块108还可以确定在该前次恶意软件扫描过程中使用的病毒定义集或探试程序是否与有问题的计算系统使用的病毒定义集或探试程序相同、相似或比其更新。例如,作为图2中虚拟机202(1)的一部分,如果查询模块108确定前一个虚拟机已经预先对步骤402中识别的文件执行了一次恶意软件扫描,那么查询模块108可以确定(通过例如分析包含在共享存储216内的文件归属数据库120中的信息)该前一个虚拟机所使用的病毒定义集或探试程序是否与虚拟机202(1)当前所安装的或所使用的病毒定义集或探试程序相同、相似或比其更新。如果是这样,那么查询模块108可以进入示例性方法400的步骤408。
然而,如果查询模块108确定前一个虚拟机所使用的病毒定义集或探试程序不同于虚拟机202(1)安装的或使用的病毒定义集或探试程序或比其更旧,那么查询模块108可以指令虚拟机202(1)对有问题的文件执行一次新的恶意软件扫描。在该实例中,查询模块108可以在虚拟机202(1)完成共享存储216的更新后利用该次新恶意软件扫描的结果完成相同的工作。
返回到图4,在步骤408在此描述的系统中的一个或多个可以从共享存储中检索所需计算操作的结果,而不是再次执行计算操作。例如图1中的查询模块108作为图2中虚拟机202(1)的一部分可以从共享存储216内的文件归属数据库120检索对文件(具有哈希“0xEFCDAB89”)执行的恶意软件扫描的结果。然后查询模块108可以指令虚拟机202(1)使用这些结果,而不是对有问题的文件执行一次附加的恶意软件扫描。一旦完成了步骤408,图4的示例性方法400可以结束。
如上详细所述,通过存储对一个存储(由相关计算系统群组来共享)内的公共或共享文件执行的消耗资源的计算操作(例如恶意软件扫描或文件信誉查找),在此描述的系统和方法可以使相关计算系统(例如在连接至一个公共网络的主机或物理计算装置群组上运行的虚拟机群组)能够共享或重复使用这种计算操作的结果。因此,这些系统或方法可以减少在群组之间共享的文件上执行冗余计算操作的次数,从而可能减少群组集体消耗的计算资源量。
另外,通过仅共享对文件(可能由群组内的其他计算系统遇到和/或不可能频繁地发生变化)的实例执行的计算操作的结果,在此描述的系统或方法可试图确保共享在这些文件上执行的计算操作结果所需要的计算资源不等于通过共享这些计算操作的结果所集体节约的计算资源或多于该计算资源。
图6是一个示例性计算系统610的框图,该系统能够实施在此说明和/或展示的一个或多个实施方案。计算系统610广义上代表能够执行计算机可读指令的任何单处理器或多处理器的计算装置或系统。计算系统610的实例包括但不限于工作站、膝上型计算机、客户侧终端、服务器、分布式计算系统、手持装置、或任何其他计算系统或装置。在其最基本的配置中,计算系统610可以包括至少一个处理器614以及一个系统内存616。
处理器614总体上代表能够处理数据或解释并执行多个指令的任何类型或形式的处理单元。在某些实施方案中,处理器614可以从一个软件应用程序或模块中接收指令。这些指令可以使处理器614执行在此所说明和/或展示的示例性实施方案中的一个或多个的功能。例如,处理器614可以单独地或与其他元件相结合来执行和/或作为一种手段来执行在此披露的识别、确定、使用、检索、创建、接收、清除、执行、以及更新步骤中的一个或多个。处理器614还可以执行和/或作为一种手段来执行在此说明和/或展示的任何其他步骤、方法、或过程。
系统内存616总体上代表能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储装置或媒质。系统内存616的实例包括(但不限于)随机存取存储器(RAM)、只读存储器(ROM)、闪存、或任何其他适当的存储装置。尽管未作要求,在某些实施方案中计算系统610可以既包括一个易失性内存单元(例如像系统内存616)又包括一个非易失性存储装置(例如像以下详细说明的主存储装置632)。在一个实例中,图1模块102中的一个或多个可以载入到系统内存616中。
在某些实施方案中,除了处理器614和系统内存616外,示例性计算系统610还可以包括一个或多个组件或元件。例如,如图6所示,计算系统610可以包括一个内存控制器618、一个输入/输出(I/O)控制器620、以及一个通信接口622,它们中的每一个可以通过一个通信基础设施612相互连接。通信基础设施612总体上代表能够帮助在一个计算装置的一个或多个组件之间进行通信的任意类型或形式的基础设施。通信基础设施612的实例包括但不限于一条通信总线(例如ISA、PCI、PCIe、或类似总线)和一个网络。
内存控制器618总体上代表在计算系统610的一个或多个组件之间操作内存或数据或者控制通信的任意类型或形式的装置。例如。在某些实施方案中,内存控制器618可以通过通信基础设施612控制处理器614、系统内存616以及I/O控制器620之间的通信。在某些实施方案中,内存控制器618可以独立地或与其他元件相结合地执行和/或作为一种手段执行在此描述和/或展示的多个步骤或特征中的一个或多个,例如识别、确定、使用、检索、创建、接收、清除、执行、以及更新。
I/O控制器620总体上代表能够协调和/或控制一种计算装置的输入和输出功能的任何类型或形式的模块。例如,在某些实施方案中,I/O控制器620可以控制或协助计算系统610的一个或多个元件之间的数据传输,例如处理器614、系统内存616、通信接口622、显示适配器626、输入接口630以及存储接口634。例如,I/O控制器620可以独立地或结合其他元件执行和/或作为一种手段执行在此描述的识别、确定、使用、检索、创建、接收、清除、执行、以及更新步骤中的一个或多个。I/O控制器620还可用于执行和/或作为一种手段用于执行本披露中提出的其他步骤和特征。
通信接口622广义地代表能够协助示例性计算系统610与一个或多个附加装置之间进行通信的任何类型或形式的通信装置或适配器。例如,在某些实施方案中,通信接口622可以协助计算系统610与包括多个附加计算系统的私有或公共网络之间的通信。通信接口622的实例包括但不限于有线网络接口(例如网络接口卡)、无线网络接口(例如无线网络接口卡)、调制解调器、以及任何其他适当的接口。在至少一个实施方案中,通信接口622可通过到网络(如互联网)的直接链接来提供到一台远程服务器的直接连接。通信接口622还可以间接地提供这种连接,例如通过局域网(如以太网)、个人局域网、电话或缆线网、蜂窝电话连接、卫星数据连接、或任何其他适当的连接。
在某些实施方案中,通信接口622还可以代表一种主机适配器,该主机适配器被配置为用于通过一条外部总线或通信信道协助计算系统610与一个或多个附加网络或存储装置之间的通信。主机适配器的实例包括但不限于SCSI主机适配器、USB主机适配器、IEEE 1394主机适配器、SATA和eSATA主机适配器、ATA和PATA主机适配器、光纤通道接口适配器、以太网适配器等。通信接口622还可以允许计算系统610参与分布式计算或远程计算。例如,通信接口622可以从一个远程装置接收指令或向其发送指令用于执行。在某些实施方案中,通信接口622可以独立地或与其他元件相结合地执行和/或作为一种手段执行在此披露的识别、确定、使用、检索、创建、接收、清除、执行、以及更新步骤中的一个或多个。通信接口622还可以用于执行和/或作为一种手段用于执行本披露中提出的其他步骤和特征。
如图6所示,计算系统610还可以包括通过显示适配器626连接至通信基础设施612的至少一个显示装置624。显示装置624总体上代表能够可视地呈现显示适配器626所转发的显示信息的任意类型或形式的装置。相似地,显示适配器626总体上代表任意类型或形式的装置,这些装置被配置用于从通信基础设施612(或从本领域已知的帧缓冲器)转发图形、文本以及其他数据以便显示在显示装置624上。
如图6所示,示例性计算系统610还可以包括通过输入接口630连接至通信基础设施612的至少一个输入装置628。输入装置628总体上代表能够向示例性计算系统610提供计算机或人员生成的输入的任意类型或形式的输入装置。输入装置628的实例包括但不限于键盘、指向装置、语音识别装置或任意其他输入装置。在至少一个实施方案中,输入装置628可以独立地或结合其他元件执行和/或作为一种手段执行在此披露的识别、确定、使用、检索、创建、接收、清除、执行、以及更新步骤中的一个或多个。输入装置628还可以用于执行和/或作为一种手段来执行本披露中提出的其他步骤和特征。
如图6所示,示例性计算系统610还包括通过存储接口634连接至通信基础设施612的一个主存储装置632和一个备份存储装置633。存储装置632和633总体上代表能够存储数据和/或其他计算机可读指令的任意类型或形式的存储装置或媒质。例如,存储装置632与633可以是磁盘驱动器(例如,所谓的硬盘驱动器)、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器、或者类似装置。存储接口634总体上代表用于在存储装置632和633以及计算系统610的其他组件之间传输数据的任意类型或形式的接口或装置。在一个实例中,图1的文件归属数据库120可以存储在主存储装置632中。
在某些实施方案中,存储装置632和633可以被配置为用于读取自和/或写入到一个可移动存储单元,该可移动存储单元被配置用于存储计算机软件、数据、或其他计算机可读信息。适合的可移动存储单元的实例包括但不限于软盘、磁带、光盘、闪存装置如等等。存储装置632和633还可以包括其他类似的结构或装置,以允许计算机软件、数据或其他计算机可读指令下载到计算系统610中。例如,存储装置632和633可以被配置用于读或写软件、数据或其他计算机可读信息。存储装置632和633还可以作为计算系统610的一部分或可以是通过其他接口系统访问的一个独立装置。
在某些实施方案中,存储装置632和633可以用于例如独立地或结合其他元件执行和/或作为一种手段执行在此披露的识别、确定、使用、检索、创建、接收、清除、执行、以及更新步骤中的一个或多个。存储装置632和633还可以被用于执行和/或作为一种手段用于执行本披露提出的其他步骤和特征。
很多其他装置或子系统可以连接至计算系统610上。相反地,为了实施在此描述和/展示的实施方案,不需要图6中所示的所有组件和装置。以上提到的这些装置和子系统还能够以不同于图6中所示的方式进行相互连接。计算系统610还可使用任何数目的软件、固件、和/或硬件的配置。例如,在此披露的示例性实施方案中的一个或多个可以被编码为一种计算机可读媒质上的计算机程序(还称为计算机软件、软件应用程序、计算机可读指令、或计算机控制逻辑)。短语“计算机可读媒质”总体上是指能够存储或携带计算机可读指令的任何形式的装置、载体、或媒质。计算机可读媒质的实例包括但不限于传输型媒质,如载波,以及物理媒质,如磁性存储媒质(例如,硬盘驱动器和软盘驱动器)、光存储媒质(例如,CD-ROM或DVD-ROM)、电子存储媒质(例如,固态驱动器和闪存媒质)、以及其他分布式系统。
包含计算机程序的计算机可读媒质可以载入到计算系统610中。存储在计算机可读媒质上的所有或部分计算机程序然后可以存储在系统内存616和/或存储装置632和633的不同部分上。当由处理器614执行时,载入到计算系统610中的计算机程序可以使处理器614执行和/或作为一种手段执行在此描述和/或展示的示例性实施方案中的一个或多个的功能。另外地或可替代地,在此所说明和/或展示的示例性实施方案中的一个或多个可以在固件和/或硬件中实施。例如,计算系统610可被配置用作一种专用集成电路(ASIC),它被适配为用于实施在此所披露的这些示例性实施方案中的一个或多个。
图7是示例性网络结构体系700的方框图,其中客户端系统710、720和730以及服务器740和745可以连接至网络750。客户端系统710、720和730总体上代表任意类型或形式的计算装置或系统,例如图6中的示例性计算系统610。类似地,服务器740和745总体上代表被配置为用于提供不同的数据库服务和/或运行某种软件应用程序的计算装置或系统,例如应用程序服务器或数据库服务器。网络750总体上代表任何电信或计算机网络,例如,它包括:内部网、广域网(WAN)、局域网(LAN)、个人区域网(PAN)、或互联网。在一个实例中,客户端系统710、720和/或730可以包括图1的模块102和/或服务器740和/或745可以包括图1的文件归属数据库120。
如图7所示,一个或多个存储装置760(1)-(N)可以直接附接至服务器740。类似地,一个或多个存储装置770(1)-(N)可以直接附接至服务器745。存储装置760(1)-(N)和存储装置770(1)-(N)总体上代表能够存储数据和/或其他计算机可读指令的任意类型或形式的存储装置或媒质。在某些实施方案中,存储装置760(1)-(N)和存储装置770(1)-(N)可代表被配置为用于使用不同协议(例如NFS、SMB、或CIFS)来与服务器740和745进行通信的网络附联存储(NAS)装置。
服务器740和745还可以连接至存储区域网络(SAN)结构780。SAN结构780总体上代表能够协助多个存储装置之间通信的任意类型或形式的计算机网络或体系结构。SAN结构780可以协助服务器740和745与多个存储装置790(1)-(N)和/或一个智能存储器阵列795之间的通信。SAN结构780还可以通过网络750和服务器740和745协助客户端系统710、720和730与存储装置790(1)-(N)和/或智能存储器阵列795之间的通信,其方式为装置790(1)-(N)与阵列795对客户端系统710、720和730呈现为本地附接的装置。与存储装置760(1)-(N)和存储装置770(1)-(N)一样,存储装置790(1)-(N)和存储阵列795总体上代表能够存储数据和/或其他计算机可读指令的任意类型或形式的存储装置或媒质。
在某些实施方案中,参考图6的示例性计算系统610,通信接口(例如图6中的通信接口622)可用于在每一个客户端系统710、720和730以及网络750之间提供连接性。客户端系统710、720和730能够利用例如网络浏览器或其他客户端软件来访问服务器740和745上的信息。这种软件可以允许客户端系统710、720和730访问由服务器740、服务器745、存储装置760(1)-(N)、存储装置770(1)-(N)、存储装置790(1)-(N)或智能存储器阵列795管理的数据。尽管图7描绘了使用一种网络(如互联网)用于交换数据,但是在此描述和/或展示的实施方案不限于互联网或任意具体的基于网络的环境。
在至少一个实施方案中,在此披露的示例性实施方案中的一个或多个的全部或一部分可被编码为一种计算机程序并且由服务器740、服务器745、存储装置760(1)-(N)、存储装置770(1)-(N)、存储装置790(1)-(N)、智能存储阵列795、或它们中的任意组合加载并执行。在此披露的示例性实施方案的一个或多个的全部或一部分还可以被编码为计算机程序,存储在服务器740中,由服务器745运行,并在网络750上分发给客户端系统710、720和730。因此,网络体系架构700可以独立地或与其他元件相结合地执行和/或作为一种手段执行在此披露的识别、确定、使用、检索、创建、接收、清除、执行、以及更新步骤中的一个或多个。网络体系结构700还可以用于执行和/或作为一种手段来执行本披露中提出的其他步骤和特征。
如以上所述,计算系统610和/或网络体系结构700的一个或者多个组件可以单独地或与其他元件相结合地执行和/或作为一种手段来执行一种用于在相关计算系统之间共享计算操作的结果的示例性方法的一个或多个步骤。在一个实例中,这种方法可以包括:1)识别对一个文件执行计算操作的需求,2)识别与该文件相关联的一个唯一标识符,3)利用该唯一标识符来查询相关计算系统群组共享的一个共享存储,确定该相关计算系统群组中至少一个计算系统已经对该文件的一个实例预先执行了计算操作,然后4)从该共享存储中检索计算操作的结果,而非执行计算操作。
在一个实例中,识别与该文件相关联的一个唯一标识符可以包括识别该文件的哈希。在该实例中,识别该文件的哈希可以包括创建该哈希和/或从一个本地存储中检索该哈希。该方法还可以包括确定该文件已经被修改,然后从该本地存储中清除与该文件相关联的信息。
在一些实例中,该方法还可以在识别与该文件相关联的一个唯一标识符之前包括确定该文件的一个附加实例可能位于该相关计算系统群组内的至少一个附加计算系统上和/或确定该文件可能频繁变化。在这些实例中,确定该文件的一个附加实例可能位于该相关计算系统群组内的至少一个附加计算系统上包括确定该文件位于可能包含非用户生成文件的位置上和/或确定该文件不位于可能包含用户生成文件的位置上。类似地,确定该文件不可能频繁变化可以包括确定该文件位于通常与静态文件相关联的一个位置上,确定在一个预定时段内该文件变化的次数少于预定次数,和/或确定该文件在一个预定时段上保持静态。
计算操作的实例包括但不限于该文件的一次恶意软件分析、该文件的一次数据丢失防护分析、该文件的基于社区的一次信誉查找、和/或该文件的一次文件类型分析。共享存储可以包含该文件的哈希、结合该文件执行的至少一次计算操作的结果、和/或结合该文件执行的至少一次计算操作的日期。另外,计算操作的结果可以包括以下信息,该信息识别在一次恶意软件分析过程中分配给该文件的类别、在该恶意软件分析过程中分配给该文件的类别的至少一个原则、和/或当执行该恶意软件分析时使用的至少一个病毒定义集或探试程序。
在一些实例中,确定相关计算系统群组内至少一个计算系统已经对该文件的一个实例预先执行了计算操作可以包括确定相关计算系统内的至少一个计算系统已经利用相同的、相似的或更新的病毒定义集或探试程序对该文件的一个实例预先执行了一次恶意软件分析。
在一些实例中,共享存储可以包括一个网络附加存储装置、一个存储区域网络、一个文件服务器、一个基于云的存储装置、或可由管理程序管理的本地存储装置的一个安全分区中的至少一部分。共享存储还可以基于文件哈希进行标引。另外,相关计算系统群组可以包括运行在一个公共主计算装置上的多个虚拟机和/或连接至一个公共网络上的多个物理机器。
在一个实例中,该方法还可以包括:1)识别对一个文件执行附加计算操作的需求,2)利用该唯一标识符来查询共享存储,确定该附加计算操作没有对该文件的一个实例预先执行,3)对该文件执行该附加计算操作,然后4)利用该附加计算操作的结果更新该共享存储。
虽然以上披露使用了多个具体的框图、流程图、以及实例阐明了不同的实施方案,在此说明和/或展示的每个框图部件、流程图步骤、操作、和/或部件都可以单独地和/或共同地使用一个大范围的硬件、软件、或者固件(或者它们的任何组合)配置来实施。另外,在其他部件之中所包括的任何部件的披露都应该看作本质上是示例性的,因为可以实施许多其他的体系结构来达到同样的功能。
在一些实例中,图1中示例性系统的全部或一部分可以表示云计算的或基于网络的环境的多个部分。云计算环境可以通过互联网提供不同的服务和应用程序。这些基于云的服务(例如,软件即服务、平台即服务、基础设施即服务等等)可以通过网络浏览器或其他的远程接口进行访问。在此所述的不同功能可以通过远程桌面环境或任何其他的基于云的计算环境来提供。
在此说明和/或展示的进程的参数以及步骤的顺序仅仅是以举例的方式给出并且可以按希望来更改。例如,虽然在此展示和/或说明的这些步骤可以按照一个具体的顺序来示出或讨论,但这些步骤并非必须按照所展示或者所讨论的顺序来执行。在此说明和/或展示的不同的示例性方法还可以省略在此说明或展示的一个或者多个步骤或者还可以包括除所披露的那些之外的额外步骤。
虽然不同的实施方案在此已经在全功能性计算系统的背景下进行了说明和/或展示,这些示例性实施方案中的一个或者多个能够以多种形式作为一个程序产品来分发,而无论实际用于进行该分发的计算机可读媒质的具体形式如何。在此披露的这些实施方案还可以通过使用执行一些特定任务的软件模块来实施。这些软件模块可以包括脚本、成批文件、或者其他可执行文件,它们可以存储在一种计算机可读的存储媒质上或者在一种计算系统中。在一些实施方案中,这些软件模块可以将一个计算系统配置用于实施在此披露的一个或者多个示例性的实施方案。
另外,在此所述的这些模块中的一个或多个可以将数据、物理装置、和/或物理装置的表示从一种形式转换到另一种形式。例如,通过在这些存储内修改或存储相关计算系统所执行的计算操作结果,图1中的查询模块108可以改变图2和3中的共享存储216和306的特性和性质。
已经提供了以上说明用于使本领域的其他普通技术人员能够最好地使用在此披露的这些示例性实施方案的不同方面。这种示例性说明并非旨在是穷尽性的或者被限制在所披露的任何准确的形式上。许多修改与变更都是可能的而不背离本披露的精神与范围。应该认为在此披露的这些实施方案在所有方面都是展示性的而非限制性的。应该参照所附权利要求及其等效物来确定本披露的范围。
除非另外说明,如在本说明书与权利要求中所使用的,术语“一种”或“一个”将被解释为“至少一个”的意思。此外,为便于使用,如在本说明书以及权利要求中所使用的文字“包含”和“具有”是可以互换的并且具有与文字“包括”相同的含义。

Claims (20)

1.一种在相关计算系统之间共享计算操作结果的计算机实现方法,该方法的至少一部分由包括至少一个处理器的一个计算装置来执行的,该方法包括:
识别对一个文件执行一次计算操作的需求;
识别与该文件相关联的一个唯一标识符;
通过利用该唯一标识符来查询一个相关计算系统群组共享的一个共享存储来确定该相关计算系统群组内至少一个计算系统已经对该文件的一个实例预先执行了计算操作;
从该共享存储中检索计算操作的结果,而非执行计算操作。
2.如权利要求1所述的方法,其中该计算操作包括以下内容中至少一项:
该文件的一次恶意软件分析;
该文件的一次数据丢失防护分析;
该文件的基于社区的一次信誉查找;
该文件的一次文件类型分析。
3.如权利要求1所述的方法,其中识别与该文件相关联的一个唯一标识符包括识别该文件的一个哈希。
4.如权利要求3所述的方法,其中识别该文件的一个哈希包括以下内容中至少一项:
创建该哈希;
从一个本地存储中检索该哈希。
5.如权利要求4所述的方法,进一步包括:
确定该文件已经被修改;
从该本地存储中清除与该文件相关联的信息。
6.如权利要求1所述的方法,在识别与该文件相关联的一个唯一标识符之前,进一步包括以下内容中的至少一项:
确定该文件的一个附加实例可能位于该相关计算系统群组内的至少一个附加计算系统上;
确定该文件可能频繁变化。
7.如权利要求6所述的方法,其中确定该文件的一个附加实例可能位于该相关计算系统群组内的至少一个附加计算系统上包括以下内容中的至少一项:
确定该文件位于可能包含非用户生成文件的位置上;
确定该文件不位于可能包含用户生成文件的位置上。
8.如权利要求6所述的方法,其中确定该文件不可能频繁变化包括以下内容中的至少一项:
确定该文件位于通常与静态文件相关联的一个位置上;
确定在一个预定时段内该文件变化的次数少于预定次数;
确定该文件在一个预定时段上保持静态。
9.如权利要求1所述的方法,其中该共享存储包括以下内容中的至少一项:
该文件的一个哈希;
结合该文件执行的至少一次计算操作的结果;
结合该文件执行的至少一次计算操作的日期。
10.如权利要求9所述的方法,其中该计算操作的结果包括识别以下内容中至少一项的信息:
在一次恶意软件分析过程中分配给该文件的一个类别;
在该恶意软件分析过程中分配给该文件的类别的至少一个原则;
当执行该恶意软件分析时使用的至少一个病毒定义集或探试程序。
11.如权利要求1所述的方法,其中确定该相关计算系统群组内至少一个计算系统已经对该文件的一个实例预先执行了计算操作包括确定该相关计算系统内的至少一个计算系统已经利用以下内容对该文件的一个实例预先执行了一次恶意软件分析:
一个相同的病毒定义集或探试程序;
一个相似的病毒定义集或探试程序;
一个更新的病毒定义集或探试程序。
12.如权利要求1所述的方法,其中该共享存储包括以下内容中至少一项的至少一部分:
一个网络附加存储装置;
一个存储区域网络;
一个文件服务器;
一个基于云的存储装置;
可由一个管理程序管理的一个本地存储装置的一个安全分区。
13.如权利要求1所述的方法,其中基于多个文件哈希来标引该共享存储。
14.如权利要求1所述的方法,其中该相关计算系统群组包括:
运行在一个公共主计算装置上的多个虚拟机;
连接至一个公共网络上的多个物理机器。
15.如权利要求1所述的方法,进一步包括:
识别对该文件执行一次附加计算操作的需求;
通过利用该唯一标识符来查询该共享存储来确定未对该文件的一个实例预先执行该附加计算操作;
对该文件执行该附加计算操作;
利用该附加计算操作的结果更新该共享存储。
16.一种在相关计算系统之间共享计算操作结果的系统,该系统包括:
一个操作识别模块,该模块被编程用于识别对一个文件执行一次计算操作的需求;
一个文件识别模块,该模块被编程用于识别与该文件相关联的一个唯一标识符;
一个查询模块,该模块被编程用于:
通过利用该唯一标识符来查询一个相关计算系统群组共享的一个共享存储来确定该相关计算系统群组内至少一个计算系统已经对该文件的一个实例预先执行了计算操作;
从该共享存储中检索计算操作的结果,而非执行计算操作;
至少一个处理器,该处理器被配置用于执行该操作识别模块、该文件识别模块以及该查询模块。
17.如权利要求16所述的系统,其中该文件识别模块进一步被编程用于在识别与该文件相关联的一个唯一标识符之前确定以下内容中的至少一项:
该文件的一个附加实例可能位于该相关计算系统群组内的至少一个附加计算系统上;
该文件可能频繁变化。
18.权利要求16所述的系统,其中该共享存储包含以下内容中的至少一项:
该文件的一个哈希;
结合该文件执行的至少一次计算操作的结果;
结合该文件执行的至少一次计算操作的日期。
19.如权利要求16所述的系统,其中该共享存储包括以下内容中的至少一项的至少一部分:
一个网络附加存储装置;
一个存储区域网络;
一个文件服务器;
一个基于云的存储装置;
可由一个管理程序管理的一个本地存储装置的一个安全分区。
20.一种包括一个或多个计算机可执行指令的计算机可读存储媒质,当由一个计算装置的至少一个处理器执行时,这些指令使得该计算装置:
识别对一个文件执行一次计算操作的需求;
识别与该文件相关联的一个唯一标识符;
通过利用该唯一标识符来查询一个相关计算系统群组共享的一个共享存储来确定该相关计算系统群组内至少一个计算系统已经对该文件的一个实例预先执行了计算操作;
从该共享存储中检索计算操作的结果,而非执行计算操作。
CN201080061800.4A 2010-01-29 2010-12-28 在相关计算系统之间共享计算操作结果的系统和方法 Active CN102754104B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/696,970 US9002972B2 (en) 2010-01-29 2010-01-29 Systems and methods for sharing the results of computing operations among related computing systems
US12/696970 2010-01-29
PCT/US2010/062185 WO2011093971A1 (en) 2010-01-29 2010-12-28 Systems and methods for sharing the results of computing operations among related computing systems

Publications (2)

Publication Number Publication Date
CN102754104A true CN102754104A (zh) 2012-10-24
CN102754104B CN102754104B (zh) 2016-04-20

Family

ID=43762776

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080061800.4A Active CN102754104B (zh) 2010-01-29 2010-12-28 在相关计算系统之间共享计算操作结果的系统和方法

Country Status (5)

Country Link
US (1) US9002972B2 (zh)
EP (1) EP2529328B1 (zh)
JP (1) JP5816198B2 (zh)
CN (1) CN102754104B (zh)
WO (1) WO2011093971A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981856A (zh) * 2012-11-28 2013-03-20 南开大学 基于网络的程序计算结果存储与检索方法及系统
CN103019705A (zh) * 2012-11-28 2013-04-03 南开大学 基于持久存储既有计算结果来加速程序计算的方法及系统
CN108369716A (zh) * 2015-12-17 2018-08-03 依视路国际公司 分布式光学作业和制造计算系统与方法
CN108494877A (zh) * 2018-04-13 2018-09-04 郑州云海信息技术有限公司 一种nas集群系统及nas集群运行方法
CN111083212A (zh) * 2019-12-09 2020-04-28 荏原电产(青岛)科技有限公司 一种高速采集数据自动计算的方法
CN117032683A (zh) * 2023-08-18 2023-11-10 北京领雁科技股份有限公司 用于基于组件构建业务系统的方法及系统

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0513375D0 (en) 2005-06-30 2005-08-03 Retento Ltd Computer security
US8640241B2 (en) * 2009-11-16 2014-01-28 Quatum Corporation Data identification system
TW201142646A (en) * 2010-05-21 2011-12-01 xiang-yu Li Cloud data storage system
US8407804B2 (en) * 2010-09-13 2013-03-26 Sophos Plc System and method of whitelisting parent virtual images
US8677355B2 (en) * 2010-12-17 2014-03-18 Microsoft Corporation Virtual machine branching and parallel execution
US8984029B2 (en) * 2011-01-14 2015-03-17 Apple Inc. File system management
US9413721B2 (en) 2011-02-15 2016-08-09 Webroot Inc. Methods and apparatus for dealing with malware
US8566899B2 (en) * 2011-03-16 2013-10-22 Symantec Corporation Techniques for securing a checked-out virtual machine in a virtual desktop infrastructure
US9104661B1 (en) * 2011-06-29 2015-08-11 Amazon Technologies, Inc. Translation of applications
US10331743B2 (en) * 2013-02-08 2019-06-25 Snap Inc. System and method for generating and interacting with a contextual search stream
US10009371B2 (en) * 2013-08-09 2018-06-26 Nicira Inc. Method and system for managing network storm
CN103533088A (zh) * 2013-11-01 2014-01-22 中国联合网络通信集团有限公司 虚拟机之间的通信方法、设备和系统
US10601863B1 (en) 2016-03-25 2020-03-24 Fireeye, Inc. System and method for managing sensor enrollment
US10785255B1 (en) 2016-03-25 2020-09-22 Fireeye, Inc. Cluster configuration within a scalable malware detection system
US10476906B1 (en) 2016-03-25 2019-11-12 Fireeye, Inc. System and method for managing formation and modification of a cluster within a malware detection system
US10671721B1 (en) 2016-03-25 2020-06-02 Fireeye, Inc. Timeout management services
US20210279297A1 (en) * 2016-05-13 2021-09-09 Equals 3 LLC Linking to a search result
US10303690B1 (en) * 2016-11-23 2019-05-28 EMC IP Holding Company LLC Automated identification and classification of critical data elements

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999027450A1 (en) * 1997-11-24 1999-06-03 Symantec Corporation Antivirus accelerator
US7310817B2 (en) * 2001-07-26 2007-12-18 Mcafee, Inc. Centrally managed malware scanning
US20090158432A1 (en) * 2007-12-12 2009-06-18 Yufeng Zheng On-Access Anti-Virus Mechanism for Virtual Machine Architecture

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5067099A (en) * 1988-11-03 1991-11-19 Allied-Signal Inc. Methods and apparatus for monitoring system performance
US5261051A (en) * 1989-08-14 1993-11-09 Microsoft Corporation Method and system for open file caching in a networked computer system
IL97315A (en) * 1990-02-28 1994-10-07 Hughes Aircraft Co Multi-group signal processor
US5960170A (en) * 1997-03-18 1999-09-28 Trend Micro, Inc. Event triggered iterative virus detection
US7346928B1 (en) * 2000-12-01 2008-03-18 Network Appliance, Inc. Decentralized appliance virus scanning
US7266843B2 (en) * 2001-12-26 2007-09-04 Mcafee, Inc. Malware scanning to create clean storage locations
US20040172551A1 (en) 2003-12-09 2004-09-02 Michael Connor First response computer virus blocking.
US20050132205A1 (en) * 2003-12-12 2005-06-16 International Business Machines Corporation Apparatus, methods and computer programs for identifying matching resources within a data processing network
US8234641B2 (en) 2006-10-17 2012-07-31 Managelq, Inc. Compliance-based adaptations in managed virtual systems
US8011010B2 (en) 2007-04-17 2011-08-30 Microsoft Corporation Using antimalware technologies to perform offline scanning of virtual machine images
US8458694B2 (en) 2007-04-30 2013-06-04 International Business Machines Corporation Hypervisor with cloning-awareness notifications
CN101350054B (zh) * 2007-10-15 2011-05-25 北京瑞星信息技术有限公司 计算机有害程序自动防护方法及装置
US20090241194A1 (en) 2008-03-21 2009-09-24 Andrew James Thomas Virtual machine configuration sharing between host and virtual machines and between virtual machines
US20100071064A1 (en) * 2008-09-17 2010-03-18 Weber Bret S Apparatus, systems, and methods for content selfscanning in a storage system
EP2479700A4 (en) * 2009-09-14 2013-05-01 Mori Kiyoshi SECURE AUDIT SYSTEM AND SECURE AUDIT PROCEDURE

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999027450A1 (en) * 1997-11-24 1999-06-03 Symantec Corporation Antivirus accelerator
US7310817B2 (en) * 2001-07-26 2007-12-18 Mcafee, Inc. Centrally managed malware scanning
US20090158432A1 (en) * 2007-12-12 2009-06-18 Yufeng Zheng On-Access Anti-Virus Mechanism for Virtual Machine Architecture

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981856A (zh) * 2012-11-28 2013-03-20 南开大学 基于网络的程序计算结果存储与检索方法及系统
CN103019705A (zh) * 2012-11-28 2013-04-03 南开大学 基于持久存储既有计算结果来加速程序计算的方法及系统
CN102981856B (zh) * 2012-11-28 2015-08-12 南开大学 基于网络的程序计算结果存储与检索方法及系统
CN103019705B (zh) * 2012-11-28 2015-12-02 南开大学 基于持久存储既有计算结果来加速程序计算的方法及系统
CN108369716A (zh) * 2015-12-17 2018-08-03 依视路国际公司 分布式光学作业和制造计算系统与方法
CN108494877A (zh) * 2018-04-13 2018-09-04 郑州云海信息技术有限公司 一种nas集群系统及nas集群运行方法
CN111083212A (zh) * 2019-12-09 2020-04-28 荏原电产(青岛)科技有限公司 一种高速采集数据自动计算的方法
CN117032683A (zh) * 2023-08-18 2023-11-10 北京领雁科技股份有限公司 用于基于组件构建业务系统的方法及系统

Also Published As

Publication number Publication date
JP5816198B2 (ja) 2015-11-18
US20110191341A1 (en) 2011-08-04
WO2011093971A1 (en) 2011-08-04
JP2013518342A (ja) 2013-05-20
CN102754104B (zh) 2016-04-20
EP2529328B1 (en) 2018-07-25
US9002972B2 (en) 2015-04-07
EP2529328A1 (en) 2012-12-05

Similar Documents

Publication Publication Date Title
CN102754104A (zh) 在相关计算系统之间共享计算操作结果的系统和方法
CN101777062B (zh) 场境感知的实时计算机保护系统和方法
CN102067148B (zh) 用于确定文件分类的方法及系统
CN103354931A (zh) 用于查找反恶意软件元数据的系统和方法
EP2989556B1 (en) Object storage using multiple dimensions of object information
US20220052993A1 (en) Configuring Storage Systems In A Fleet Of Storage Systems
CN101826029B (zh) 用于合并虚拟化子层的方法与系统
CN102591909A (zh) 在去重复存储系统中提供增强的可扩展性的系统及方法
KR101699654B1 (ko) 예측 저장 서비스
CN103548003A (zh) 用于提高去重复系统备份性能的客户端侧指纹缓存的过程和方法
CN102804202B (zh) 内容网格搜索
US11775341B2 (en) Automated job flow generation to provide object views in container-supported many task computing
CN104769598B (zh) 用于检测非法应用程序的系统和方法
CN105556478A (zh) 用于保护虚拟机数据的系统和方法
US8402306B1 (en) Systems and methods for managing applications
US10380074B1 (en) Systems and methods for efficient backup deduplication
CN102782639A (zh) 使复制目标能够回收瘦供给存储系统上未使用的存储空间的系统和方法
US11126506B2 (en) Systems and methods for predictive data protection
US10956453B2 (en) Method to estimate the deletability of data objects
CN108563697B (zh) 一种数据处理方法、装置和存储介质
CN103109295A (zh) 创建在恶意软件检测中使用的定制化置信带的系统和方法
CN107924324A (zh) 数据访问加速器
US10635672B2 (en) Method and system for merging data
WO2022007574A1 (en) Block-based anomaly detection
US9395966B1 (en) Systems and methods for associating installed software components with software products

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200107

Address after: California, USA

Patentee after: CA,INC.

Address before: California, USA

Patentee before: Symantec Corporation