JP2013535716A - 仮想マシン間で分析の結果を共有するためのシステムおよび方法 - Google Patents

仮想マシン間で分析の結果を共有するためのシステムおよび方法 Download PDF

Info

Publication number
JP2013535716A
JP2013535716A JP2013518399A JP2013518399A JP2013535716A JP 2013535716 A JP2013535716 A JP 2013535716A JP 2013518399 A JP2013518399 A JP 2013518399A JP 2013518399 A JP2013518399 A JP 2013518399A JP 2013535716 A JP2013535716 A JP 2013535716A
Authority
JP
Japan
Prior art keywords
virtual machine
analysis
file
additional
master
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
JP2013518399A
Other languages
English (en)
Other versions
JP5758995B2 (ja
Inventor
イー ソーベル・ウィリアム
マコークエンデイル・ブルース
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.)
NortonLifeLock 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 JP2013535716A publication Critical patent/JP2013535716A/ja
Application granted granted Critical
Publication of JP5758995B2 publication Critical patent/JP5758995B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2151Time stamp

Landscapes

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

Abstract

コンピュータ実装方法は、マスタ仮想マシンの少なくとも1つのファイルに対して第1の分析を実行する工程と、第1の分析の少なくとも1つの結果を示す情報をマスタ仮想マシンに挿入する工程とを含み得る。また、コンピュータ実装方法は、マスタ仮想マシンに基づく少なくとも1つの追加の仮想マシンを保守する工程も含み得る。コンピュータ実装方法は、追加の仮想マシンの少なくとも1つのファイルに対して第2の分析を実行する代わりに、マスタ仮想マシン内の情報を参照するように追加の仮想マシンに指示する工程をさらに含み得る。また、さまざまな他のシステム、方法およびコンピュータ可読媒体も開示される。

Description

本開示は、概して、仮想マシン間で分析の結果を共有するためのシステムおよび方法に関する。
仮想マシンは、追加の仮想マシンを作成するためのテンプレートとして機能するマスタ仮想マシンに基づく場合が多い。言い換えれば、マスタ仮想マシンを使用して、マスタ仮想マシン内に位置する各ファイルのインスタンスを含む同様なまたは同一の仮想マシンを作成することができる。例えば、マスタ仮想マシンが実行可能ファイルWINWORD.EXEを含む場合、マスタ仮想マシンから導かれる各仮想マシンもまた、WINWORD.EXEファイルのインスタンスを含み得る。
マスタ仮想マシン内に位置する各ファイルのインスタンスを含むことに加えて、マスタ仮想マシンに基づく仮想マシンは、マスタ仮想マシンと同じ分析の1つまたは複数を実行するようプログラムすることができる。例えば、10個の仮想マシンがマスタ仮想マシンから導かれている場合、これらの仮想マシンは、マスタ仮想マシンが既にWINWORD.EXEファイルに対して同じマルウェア分析を実行していたとしても、WINWORD.EXEファイルのインスタンスに対して10個の冗長なマルウェア分析を一括して実行するようプログラムすることができる。そのような冗長な分析は、貴重なコンピューティングリソースを消費する恐れがあり、その結果、システム性能が低下する。
以下でさらに詳細に説明されるように、本開示は、概して、仮想マシン間で分析の結果を共有するためのシステムおよび方法に関する。より具体的には、本明細書に記載されるシステムおよび方法は、仮想マシンが、同じ分析を冗長的に実行する代わりに、異なる仮想マシン上で実行された分析の少なくとも1つの結果を参照することを可能にすることができる。仮想マシン間で分析の結果を共有することによって、本明細書に記載されるシステムおよび方法は、冗長な分析を排除し、コンピューティングリソースを節約することができる。
ある実施形態では、仮想マシン間で分析の結果を共有するための方法は、マスタ仮想マシンの少なくとも1つのファイルに対して第1の分析(例えば、マルウェア分析、データ損失防止分析、コミュニティベースのレピュテーション分析、ファイルタイプ分析またはハッシュ分析)を実行する工程を含み得る。例えば、走査モジュールは、マスタ仮想マシン内に位置する実行可能ファイルWINWORD.EXEに対してマルウェア分析を実行することができる。走査モジュールは、マスタ仮想マシンがオフライン状態の間に(すなわち、マスタ仮想マシンが現時点においてホストマシン上で起動していなくとも)、マスタ仮想マシンのファイルに対して第1の分析を実行することができる。
マスタ仮想マシンがオフライン状態の間にファイルに対して第1の分析を実行するため、ホストマシンは、マスタ仮想マシンの外部の走査モジュールを実行することができる。例えば、マスタ仮想マシンが現時点においてホストマシン上で起動していなくとも、WINWORD.EXEファイルに対してマルウェア分析を実行するため、ホストマシンは、マスタ仮想マシンの外部に走査モジュールを配備するアンチマルウェアソリューションを実行することができる。それに加えてまたはその代替として、マスタ仮想マシンがオンライン状態となった場合は、マスタ仮想マシン自体が、ファイルに対して第1の分析を実行するために走査モジュールを実行することができる。例えば、マスタ仮想マシンが現時点においてホストマシン上で起動している間に、マスタ仮想マシン自体が、WINWORD.EXEファイルに対してマルウェア分析を実行するため、走査モジュールを配備するアンチマルウェアソリューションを実行することができる。
マスタ仮想マシンのファイルに対して第1の分析を実行すると、走査モジュールは、第1の分析の少なくとも1つの結果を示す情報をマスタ仮想マシンに挿入することができる。いくつかの実施形態では、この情報は、第1の分析の結果自体であり得る。例えば、WINWORD.EXEファイルに対してマルウェア分析を実行すると、走査モジュールは、マスタ仮想マシン内に位置するデータベースにマルウェア分析の少なくとも1つの結果を格納することができる。
他の実施形態では、この情報は、マスタ仮想マシンの外部の第1の分析の結果を格納するデータベースへの参照であり得る。例えば、WINWORD.EXEファイルに対してマルウェア分析を実行すると、走査モジュールは、マスタ仮想マシンの外部のマルウェア分析の少なくとも1つの結果を格納するデータベースを特定するユニフォームリソースロケータ(「URL」)をマスタ仮想マシンに挿入することができる。第1の分析の結果を格納するデータベースは、マスタ仮想マシン内に位置するかまたは外部に位置するかに関わらず、ファイルハッシュによってインデックスを付けることができる。それに加えて、このデータベースは、マスタ仮想マシンに基づく少なくとも1つの追加の仮想マシンに参照および/またはアクセスすることができる。
この追加の仮想マシンは、マスタ仮想マシン内に位置する各ファイルのインスタンスを含み得る。例えば、マスタ仮想マシンに基づく追加の仮想マシンは、マスタ仮想マシン上でマルウェア分析が行われた同じWINWORD.EXEファイルのインスタンスを含み得る。この追加の仮想マシンは、さまざまな理由で、ファイルに対して実行された第1の分析の結果を必要とする場合がある。しかし、追加の仮想マシンの少なくとも1つのファイルに対して第2の分析(例えば、第1の分析と同様なまたは同一の分析)を冗長的に実行する代わりに、参照モジュールは、第1の分析の結果にアクセスするため、マスタ仮想マシン内の情報を参照するように追加の仮想マシンに指示することができる。
例えば、追加の仮想マシン内に位置するWINWORD.EXEファイルのインスタンスに対して同じマルウェア分析を実行する代わりに、参照モジュールは、WINWORD.EXEファイルに対して以前に実行されたマルウェア分析の結果にアクセスするため、マスタ仮想マシン内の情報を参照するように追加の仮想マシンに指示することができる。参照モジュールは、マスタ仮想マシン内の情報を参照するように追加の仮想マシンに指示するコンピュータ実行可能コードを実行するよう、追加の仮想マシンをプログラムすることができる。より具体的には、追加の仮想マシンが第1の分析の結果を必要とする場合、このコンピュータ実行可能コードは、実行時に、第1の分析の結果にアクセスするという要求を生成するように追加の仮想マシンに指示することができる。参照モジュールは、要求を受け取り、要求に応じて追加の仮想マシンにマスタ仮想マシン内の情報を提供することができる。
さまざまな実施形態では、保守モジュールは、マスタ仮想マシンに基づく追加の仮想マシンを保守することができる。保守モジュールは、第1の分析の結果を使用することが可能なソフトウェアアプリケーションを追加の仮想マシンにインストールすることができる。例えば、走査モジュールがWINWORD.EXEファイルに対してマルウェア分析を実行した後、保守モジュールは、WINWORD.EXEファイルに対して実行されたマルウェア分析の結果を使用することが可能なアンチマルウェアソリューションを追加の仮想マシンにインストールすることができる。次いで、参照モジュールは、追加の仮想マシンのファイルに対して第2の分析を実行する代わりに第1の分析の結果を使用するようにアンチマルウェアソリューションに指示することができる。
いくつかの実施形態では、走査モジュールは、追加の仮想マシンが最初にオンライン状態となる前に、マスタ仮想マシンのファイルに対して第1の分析を実行することができる。例えば、走査モジュールは、追加の仮想マシンがオフライン状態の間にWINWORD.EXEファイルに対してマルウェア分析を実行することができ、いくつかの実施形態では、追加の仮想マシンは、このマルウェア分析が実行される前はオンライン状態ではない場合がある。そのような実施形態では、保守モジュールは、追加の仮想マシンを最初にオンライン状態にすることができる。追加の仮想マシンを最初にオンライン状態にした後、参照モジュールは、追加の仮想マシンのファイルに対して第2の分析を実行する代わりにマスタ仮想マシン内の情報を参照するように追加の仮想マシンに指示することができる。
少なくとも1つの実施形態では、走査モジュールは、追加の仮想マシンの少なくとも1つのファイルに対して追加分析を実行することができる。追加分析は第1の分析と異なり得、および/または、追加分析が行われた追加の仮想マシンのファイルは第1の分析が行われたマスタ仮想マシンのファイルと異なり得る。例えば、走査モジュールは、追加の仮想マシン内に位置するWINWORD.EXEファイルのインスタンスに対してデータ損失防止分析を実行することができる。別の例では、走査モジュールは、追加の仮想マシン内に位置する実行可能ファイルEXCEL.EXEに対してマルウェア分析を実行することができる。追加分析を実行すると、走査モジュールは、第1の分析の結果を格納するデータベースに追加分析の少なくとも1つの結果を追加することができる。
上述の実施形態のいずれかの特徴は、本明細書に記載される一般原理に従って互いに組み合わせて使用することができる。これらのおよび他の実施形態、特徴および利点は、添付の図面および特許請求の範囲と併せて以下の詳細な説明を読み進むに従ってより完全に理解されよう。
添付の図面は、いくつかの例示的な実施形態を示し、本明細書の一部である。以下の説明と併せて、これらの図面は、本開示のさまざまな原理を実証および説明する。
少なくとも1つの実施形態による、仮想マシン間で分析の結果を共有するための例示的なシステムのブロック図である。 少なくとも1つの実施形態による、仮想マシン間で分析の結果を共有するための別の例示的なシステムのブロック図である。 少なくとも1つの実施形態による、仮想マシン間で分析の結果を共有するための例示的な方法のフロー図である。 例示的なファイル属性データベースのブロック図である。 本明細書に記載されるおよび/または示される実施形態の1つまたは複数を実施することが可能な例示的なコンピューティングシステムのブロック図である。 本明細書に記載されるおよび/または示される実施形態の1つまたは複数を実施することが可能な例示的なコンピューティングネットワークのブロック図である。
図面全体を通して、同一の参照文字および説明は、同様な要素を示すが、必ずしも同一の要素である必要はない。本明細書に記載される例示的な実施形態はさまざまな変更形態および代替形態を取ることができるが、図面では特定の実施形態が一例として示されており、本明細書に詳細に記載される。しかし、本明細書に記載される例示的な実施形態は、開示される特定の形態に限定されることを意図しない。むしろ、本開示は、添付の特許請求の範囲の範囲内に収まるすべての変更形態、均等物および代替形態をカバーする。
以下でさらに詳細に説明されるように、本開示は、概して、仮想マシン間で分析の結果を共有するためのシステムおよび方法に関する。特に、本明細書に記載されるシステムおよび方法は、仮想マシンが、同じ分析を冗長的に実行する代わりに、異なる仮想マシン上で実行された分析の少なくとも1つの結果を参照することを可能にすることができる。また、本明細書に記載されるシステムおよび方法は、仮想マシンが、異なる仮想マシン上で既に分析が実行されたかどうかクエリを行うことなく、分析の結果を参照することを可能にすることができる。
仮想マシン間で分析の結果を共有することによって、本明細書に記載されるシステムおよび方法は、冗長な分析を排除し、コンピューティングリソースを節約することができる。また、本開示の実施形態は、他のさまざまな特徴および利点を提供することもできる。
語句「マスタ仮想マシン」は、本明細書で使用される場合、一般に、1つまたは複数の追加の仮想マシンを作成するためのテンプレートまたはベースとして使用される任意の仮想マシンおよび/または仮想マシンイメージを指す。本明細書に記載されるいくつかの実施形態では、語句「マスタ仮想マシン」は、ホストマシンが、1つまたは複数の追加の仮想マシンイメージを作成するためのテンプレートまたはベースとして使用されるマスタ仮想マシンイメージ(ゴールデンイメージとも呼ばれる)を実行する際、ホストマシン上で起動する仮想マシンを指す場合がある。
語句「追加の仮想マシン」は、本明細書で使用される場合、一般に、追加の仮想マシンを作成するためのテンプレートとして機能するマスタ仮想マシンに基づく任意の仮想マシンおよび/または仮想マシンイメージを指す。本明細書に記載されるいくつかの実施形態では、語句「追加の仮想マシン」は、ホストマシンが、マスタ仮想マシンイメージに基づく追加の仮想マシンイメージを実行する際、ホストマシン上で起動する仮想マシンを指す場合がある。
それに加えて、本開示を通して、いくつかの例を使用して、本明細書に記載されるシステムおよび方法に関連する要素(第1の分析またはファイルなど)の特定の実施形態を示す。しかし、そのような例はほんの一例にすぎず、本明細書に記載されない他のさまざまな例もまた、これらのシステムおよび方法と併せて使用することができる。例えば、本開示を通して、例示的な実行可能ファイルWINWORD.EXEを使用して、マスタ仮想マシン上で第1の分析(例えば、マルウェア分析)が行われるファイルを示すが、他の任意のファイルもまた、マスタ仮想マシン上でこの第1の分析が行われ得る。以下は、図1、2および4を参照して、仮想マシン間で分析の結果を共有するための例示的なシステムの詳細な説明を提供する。対応するコンピュータ実装方法の詳細な説明もまた、図3と関連して提供する。それに加えて、本明細書に記載される実施形態の1つまたは複数を実施することが可能な例示的なコンピューティングシステムおよびネットワークアーキテクチャの詳細な説明をそれぞれ、図5および6と関連して提供する。
図1は、仮想マシン間で分析の結果を共有するための例示的なシステム100のブロック図である。この図で示されるように、例示的なシステム100は、1つまたは複数のタスクを実行するための1つまたは複数のモジュール102を含み得る。例えば、以下でさらに詳細に説明されるように、例示的なシステム100は、マスタ仮想マシンの少なくとも1つのファイルに対して第1の分析を実行するようプログラムされた走査モジュール104を含み得る。また、走査モジュール104は、第1の分析の少なくとも1つの結果を示す情報をマスタ仮想マシンに挿入するようプログラムすることができる。
それに加えて、以下でさらに詳細に説明されるように、例示的なシステム100は、マスタ仮想マシンに基づく少なくとも1つの追加の仮想マシンを保守するようプログラムされた保守モジュール106を含み得る。また、例示的なシステム100は、追加の仮想マシンの少なくとも1つのファイルに対して第2の分析を実行する代わりに、マスタ仮想マシン内の情報を参照するように追加の仮想マシンに指示するようプログラムされた参照モジュール108を含み得る。別々の要素として示されているが、図1のモジュール102の1つまたは複数は、単一のモジュールまたはアプリケーションの複数の部分を表す場合がある。
ある実施形態では、図1のモジュール102の1つまたは複数は、コンピューティングデバイスによって実行されると、コンピューティングデバイスに1つまたは複数のタスクを実行させることができる1つまたは複数のソフトウェアアプリケーションまたはプログラムを表す場合がある。例えば、以下でさらに詳細に説明されるように、モジュール102の1つまたは複数は、図2に示されるデバイス(例えば、マスタ仮想マシン202および追加の仮想マシン204(1)〜(N))、図5のコンピューティングシステム510、および/または、図6の例示的なネットワークアーキテクチャ600の複数の部分など、1つまたは複数のコンピューティングデバイス上で格納されて起動するよう構成されたソフトウェアモジュールを表す場合がある。また、図1のモジュール102の1つまたは複数は、1つまたは複数のタスクを実行するよう構成された1つまたは複数の専用コンピュータのすべてまたは複数の部分を表す場合もある。
また、図1で示されるように、例示的なシステム100は、ファイル属性データベース120も含み得る。一実施形態では、以下でさらに詳細に説明されるように、ファイル属性データベース120は、ファイルハッシュ122およびファイル属性情報124を格納するよう構成することができる。ファイルハッシュ122を使用して、図2のマスタ仮想マシン202および/または追加の仮想マシン204(1)〜(N)内に位置するファイルを特定することができ、ファイル属性情報124は、そのようなファイルに対して実行された分析の1つまたは複数の結果を含み得る。ファイル属性データベース120は、単一のデータベースもしくはコンピューティングデバイスまたは複数のデータベースもしくはコンピューティングデバイスの複数の部分を表す場合がある。
例えば、ファイル属性データベース120は、図2のマスタローカルストア214、ローカルストア216(1)〜(N)および/もしくは共有ストア220の一部分、図5のコンピューティングシステム510、ならびに/または、図6の例示的なネットワークアーキテクチャ600の複数の部分を表す場合がある。あるいは、図1のファイル属性データベース120は、図2のマスタ仮想マシン202および/もしくは追加の仮想マシン204(1)〜(N)、図5のコンピューティングシステム510、ならびに/または、図6の例示的なネットワークアーキテクチャ600の複数の部分など、コンピューティングデバイスによってアクセスすることが可能な1つまたは複数の物理的な個別のデバイスを表す場合がある。
図1の例示的なシステム100は、さまざまな方法で配備することができる。一例では、例示的なシステム100のすべてまたは一部分は、図2の例示的なホストマシン200の複数の部分を表す場合がある。図2に示されるように、ホストマシン200は、仮想化層206を介してハードウェア210と連通するマスタ仮想マシン202および複数の追加の仮想マシン204(1)〜(N)を含み得る。一実施形態では、以下でさらに詳細に説明されるように、図1のモジュール102は、マスタ仮想マシンの少なくとも1つのファイルに対して分析を実行するよう、ホストマシン200および/またはマスタ仮想マシン202をプログラムすることができる。
それに加えて、モジュール102は、第1の分析の少なくとも1つの結果を示す情報をマスタ仮想マシン202に挿入するよう、ホストマシン200の1つまたは複数の部分をプログラムすることができる。また、モジュール102は、1つまたは複数の追加の仮想マシン204(1)〜(N)を保守し、追加の仮想マシン204(1)〜(N)の少なくとも1つのファイルに対して第2の分析を実行する代わりに、マスタ仮想マシン202内の情報を参照するように追加の仮想マシン204(1)〜(N)に指示するよう、ホストマシン200の1つまたは複数の部分をプログラムすることもできる。
一般に、ホストマシン200は、1つまたは複数の仮想マシンをホスティングすることが可能な任意のタイプまたは形式の物理的なコンピューティングデバイスを表す。ホストマシン200の例としては、これらに限定されないが、ラップトップ、デスクトップ、サーバ、携帯電話、携帯情報端末(PDA)、マルチメディアプレーヤー、組込みシステム、これらの1つもしくは複数の組合せ、図5の例示的なコンピューティングシステム510または任意の他の適切なコンピューティングデバイスが挙げられる。
一般に、マスタ仮想マシン202は、コンピュータ実行可能命令を読み取ることが可能な任意のタイプまたは形式の仮想化またはエミュレート化されたコンピューティングマシンを表し、1つまたは複数の追加の仮想マシンを作成するためのテンプレートとして機能する。マスタ仮想マシン202の例としては、これらに限定されないが、システム仮想マシン、プロセス仮想マシンまたは任意の他の適切な仮想化もしくはエミュレート化コンピューティングデバイスが挙げられる。図2で示される例では、マスタ仮想マシン202は、仮想化層206を介してホストマシン200の根本的なハードウェア210にアクセスすることができ、ホストマシン200のコンピューティングリソースを抽象化および管理することができる。
一般に、追加の仮想マシン204(1)〜(N)は、マスタ仮想マシン202に基づき、コンピュータ実行可能命令を読み取ることが可能な任意のタイプまたは形式の仮想化またはエミュレート化されたコンピューティングマシンを表す。追加の仮想マシン204(1)〜(N)の例としては、これらに限定されないが、システム仮想マシン、プロセス仮想マシンまたは任意の他の適切な仮想化もしくはエミュレート化コンピューティングデバイスが挙げられる。図2で示される例では、追加の仮想マシン204(1)〜(N)は、仮想化層206を介してホストマシン200の根本的なハードウェア210にアクセスすることができ、ホストマシン200のコンピューティングリソースを抽象化および管理するようプログラムされたハイパーバイザおよび/または任意の他の仮想化ソフトウェアを含み得る。
図2で示されるように、ハードウェア210は、他の要素としては、少なくとも1つの記憶装置212を含み得る。いくつかの実施形態では、仮想化層206は、マスタ仮想マシン202に対するマスタローカルストア214、および、追加の仮想マシン204(1)〜(N)それぞれに対する複数のローカルストア216(1)〜(N)にハードウェア210を抽象化することができる。このため、マスタローカルストア214は、マスタ仮想マシン202の一部のように見える場合があり、ローカルストア216(1)〜(N)は、追加の仮想マシン204(1)〜(N)の一部のように見える場合がある。以下でさらに詳細に説明されるように、マスタローカルストア214およびローカルストア216(1)〜(N)を使用して、ファイルハッシュ122およびファイル属性情報124を含むファイル属性データベース120を格納することができる。
一般に、共有ストア220は、マスタ仮想マシン202および/または追加の仮想マシン204(1)〜(N)によって共有またはアクセスされ得るホストマシン200内に位置する任意のタイプまたは形式の物理的なまたは仮想化されたストレージを表す。マスタローカルストア214およびローカルストア216(1)〜(N)とは異なり、共有ストア220は、マスタ仮想マシン202および追加の仮想マシン204(1)〜(N)とは別々のように見える場合がある。しかし、マスタローカルストア214およびローカルストア216(1)〜(N)と同様に、共有ストア220を使用して、ファイルハッシュ122およびファイル属性情報124を含むファイル属性データベース120を格納することができる。
図2は、共有ストア220がマスタ仮想マシン202および追加の仮想マシン204(1)〜(N)と同じシステム上に位置していることを示すが、他の実施形態では、共有ストア220は、別々のシステム上に位置する場合がある。例えば、共有ストア220は、ネットワーク(例えば、インターネット、ローカルエリアネットワーク、広域ネットワークなど)上でマスタ仮想マシン202および追加の仮想マシン204(1)〜(N)がアクセス可能なリモート記憶装置上に位置する場合がある。
マスタローカルストア214、ローカルストア216(1)〜(N)および/または共有ストア220は、ファイル属性データベース(図1および4のファイル属性データベース120など)を含み得る。いくつかの例では、このファイル属性データベースには、ファイルのハッシュ、ファイルに対して実行された分析の少なくとも1つの結果(マルウェア分析中にファイルに割り当てられた分類など)、分析の結果に対する少なくとも1つの論理的根拠、分析の実行に使用された少なくとも1つのセットのパラメータ(ウイルス定義セットまたはヒューリスティックなど)、分析が実行された日付、および/または、仮想マシン間で共有できる任意の他の潜在的に有用な情報が入っている場合がある。
図3は、仮想マシン間で分析の結果を共有するための例示的なコンピュータ実装方法300のフロー図である。図3で示される工程は、任意の適切なコンピュータ実行可能コードおよび/またはコンピューティングシステムによって実行することができる。いくつかの実施形態では、図3で示される工程は、図1のシステム100および/または図2のホストマシン200の1つまたは複数のコンポーネントによって実行することができる。例えば、工程302では、走査モジュール104は、ホストマシン200の一部として、マスタ仮想マシン202の少なくとも1つのファイルに対して第1の分析を実行することができる。
工程302は、さまざまな方法で実行することができる。少なくとも1つの実施形態では、走査モジュール104は、マスタ仮想マシン202がオフライン状態の間に、ファイルに対して第1の分析を実行することができる。例えば、走査モジュール104は、マスタ仮想マシン202が現時点においてホストマシン200上で起動していなくとも、マスタ仮想マシン202内に位置する実行可能ファイルWINWORD.EXEファイルに対してマルウェア分析を実行することができる。また、走査モジュール104は、マスタ仮想マシン202が最初にオンライン状態となる前であっても、マスタ仮想マシン202上で第1の分析を実行することができる。この例では、走査モジュール104は、マスタ仮想マシン202の作成直後に、マスタ仮想マシン202のWINWORD.EXEファイルに対してマルウェア分析を実行することができる。
マスタ仮想マシン202がオフライン状態の間にファイルに対して第1の分析を実行するため、ホストマシン200は、マスタ仮想マシン202の外部の走査モジュール104を実行することができる。例えば、マスタ仮想マシン202が現時点においてホストマシン200上で起動していなくとも、WINWORD.EXEファイルに対してマルウェア分析を実行するため、ホストマシン200は、マスタ仮想マシン202の外部に走査モジュール104を配備するアンチマルウェアソリューションを実行することができる。それに加えてまたはその代替として、マスタ仮想マシンがオンライン状態となった場合は、マスタ仮想マシン202自体が、ファイルに対して第1の分析を実行するために走査モジュール104を実行することができる。例えば、マスタ仮想マシン202が現時点においてホストマシン200上で起動している間に、マスタ仮想マシン202自体が、WINWORD.EXEファイルに対してマルウェア分析を実行するため、走査モジュール104を配備するアンチマルウェアソリューションを実行することができる。
第1の分析は、さまざまなコンピュータベースの分析のいずれかであり得る。ファイルに対して第1の分析を実行する工程の例としては、これらに限定されないが、ファイルに対してマルウェア分析を実行する工程、ファイルに対してデータ損失防止分析を実行する工程、ファイルに対してファイルタイプ分析を実行する工程、ファイルのハッシュ値を計算する工程、および/または、ファイルに対して任意の他の適切な分析を実行する工程が挙げられる。
図3の工程304では、走査モジュール104は、第1の分析の少なくとも1つの結果を示す情報をマスタ仮想マシン202に挿入することができる。工程304は、さまざまな方法で実行することができる。ある実施形態では、走査モジュール104は、マスタ仮想マシン202のファイルに対して実行された第1の分析の結果をマスタ仮想マシン202に挿入することができる。言い換えれば、第1の分析の結果を示すこの情報は、第1の分析の結果であり得る。
走査モジュール104は、マスタ仮想マシン202内に位置するデータベースに第1の分析の結果を格納することができる。例えば、WINWORD.EXEファイルに対してマルウェア分析を実行すると、走査モジュール104は、マスタ仮想マシン202のマスタローカルストア214内に位置するファイル属性データベース120にマルウェア分析の結果(WINWORD.EXEファイルに割り当てられた分類など)を格納することができる。この例では、仮想化層206は、マスタローカルストア214をマスタ仮想マシン202の一部のように見えるように抽象化することができ、ファイル属性データベース120をマスタ仮想マシン202内に効果的に格納することができる。
いくつかの実施形態では、第1の分析の結果をマスタ仮想マシン202に挿入するよりもむしろ、走査モジュール104は、マスタ仮想マシン202の外部の第1の分析の結果を格納するデータベースへの参照をマスタ仮想マシン202に挿入することができる。言い換えれば、第1の分析の結果を示す情報は、マスタ仮想マシン202の外部の第1の分析の結果を格納するデータベースへの参照であり得る。例えば、WINWORD.EXEファイルに対してマルウェア分析を実行すると、走査モジュール104は、共有ストア220内に位置し、かつ、マスタ仮想マシン202の外部のファイル属性データベース120にマルウェア分析の結果(WINWORD.EXEファイルに割り当てられた分類など)を格納することができる。この例では、走査モジュール104は、次いで、共有ストア220内に位置するファイル属性データベース120を特定し、同ファイル属性データベース120へのアクセスを容易にするURLを、マスタ仮想マシン202に挿入することができる。
第1の分析の結果を格納するデータベース(例えば、ファイル属性データベース120)は、マスタ仮想マシン202内に位置するかまたは外部に位置するかに関わらず、ファイルハッシュ122によってインデックスを付けることができる。例えば、ファイルハッシュ122内のファイルハッシュ「0x98BAD748」は、WINWORD.EXEファイルを表す場合があり、WINWORD.EXEファイルに対して実行されたマルウェア分析の結果は、ファイル属性データベース120内で「0x98BAD748」ハッシュを位置付けることによって特定することができる。ファイルハッシュ122は、ホストマシン200上で起動しているさまざまな仮想マシン(例えば、マスタ仮想マシン202および/または追加の仮想マシン204(1)〜(N))がアクセスすることも使用することもできる。ファイルハッシュ122は、そのような仮想マシンが、ファイル属性データベース120内で第1の分析の結果を位置付けることを可能にすることができる。
少なくとも1つの実施形態では、走査モジュール104は、最初にファイルに遭遇する際に、ファイルのハッシュを作成することができる。そのため、ファイルがマスタ仮想マシン202および/または1つもしくは複数の追加の仮想マシン204内に位置するかどうかに関わらず、走査モジュール104が次の回に異なる仮想マシン上で同じファイルの異なるインスタンスに遭遇し得る場合であっても、走査モジュール104は、単回でファイルのハッシュを作成することができる。例えば、走査モジュール104は、マスタ仮想マシン202上で最初にWINWORD.EXEファイルに遭遇すると同時に「0x98BAD748」ハッシュを作成することができ、次いで、「0x98BAD748」ハッシュをファイルハッシュ122内に含めることができる。この例では、図2の追加の仮想マシン204(1)〜(N)もまた、2回目にWINWORD.EXEファイルに遭遇すると同時に「0x98BAD748」ハッシュの別のインスタンスを作成する代わりに、ファイルハッシュ122内の「0x98BAD748」ハッシュにアクセスして、ファイル属性データベース120内でマルウェア分析の結果を位置付けることができる。
ファイルハッシュ122へのアクセスを有する追加の仮想マシン204(1)〜(N)を提供するため、走査モジュール104は、ローカルストア216(1)〜(N)または共有ストア220のキャッシュにファイルハッシュ122のコピーを格納することができる。例えば、ローカルストア216(1)〜(N)のそれぞれは、キャッシュに格納されたファイルハッシュ122のコピーを含み得、追加の仮想マシン204(1)〜(N)のそれぞれは、「0x98BAD748」ハッシュのコピーを使用して、ファイル属性情報124内でWINWORD.EXEファイルに対して実行されたマルウェア分析の結果を位置付けることができる。そのようなキャッシュに格納されたファイルハッシュ122のコピーは、走査モジュール104が以前にハッシュされたファイルに遭遇する度にファイルハッシュの冗長なインスタンスを作成することなく、追加の仮想マシン204(1)〜(N)がファイル属性データベース120内で第1の分析の結果を位置付けることを可能にすることができる。
追加の仮想マシン204(1)〜(N)の作成前にファイルハッシュ122が既存している場合、追加の仮想マシン204(1)〜(N)のそれぞれの作成時に、追加の仮想マシン204(1)〜(N)のそれぞれにファイルハッシュ122のコピーを含めることができる。例えば、ファイルハッシュ122がマスタ仮想マシン202に含まれている場合、追加の仮想マシン204(1)〜(N)のそれぞれの作成時に、追加の仮想マシン204(1)〜(N)のそれぞれにファイルハッシュ122を含めることができる。ファイルハッシュ122は、マスタ仮想マシン202内に位置するファイルを表す場合があり、マスタ仮想マシン202内に位置するファイルのインスタンスとともに、追加の仮想マシン204(1)〜(N)のそれぞれにこれらのファイルハッシュ122のコピーを含めることができる。
図3の工程306では、保守モジュール106は、マスタ仮想マシン202に基づく追加の仮想マシン204(1)〜(N)の少なくとも1つ(例えば、追加の仮想マシン204(1))を保守することができる。追加の仮想マシン204(1)は、マスタ仮想マシン202内に位置する各ファイルのインスタンスを含み得る。例えば、保守モジュール106は、追加の仮想マシン204(1)を保守することができ、追加の仮想マシン204(1)は、マスタ仮想マシン202に基づき、マスタ仮想マシン202上でマルウェア分析が行われた同じWINWORD.EXEファイルのインスタンスを含む。
ある実施形態では、保守モジュール106は、ベースイメージとしてマスタ仮想マシン202を使用して追加の仮想マシン204(1)とマスタ仮想マシン202との違いのみを格納する差分仮想マシンとして、追加の仮想マシン204(1)を保守することができる。例えば、保守モジュール106は、マスタ仮想マシン202に含まれていない1つまたは複数の追加ファイル、ソフトウェアアプリケーションおよび/またはデータを含めるように追加の仮想マシン204(1)を修正することができる。この例では、保守モジュール106は、これらの違い(すなわち、追加ファイル、ソフトウェアアプリケーションおよび/またはデータ)を追加の仮想マシン204(1)に付随するローカルストア216(1)に格納することができる。
他の実施形態では、保守モジュール106は、マスタ仮想マシン202と同一のクローン仮想マシンとして、追加の仮想マシン204(1)を保守することができる。言い換えれば、保守モジュール106は、マスタ仮想マシン202に含まれるそれらのファイル、ソフトウェアアプリケーションおよび/またはデータのみを追加の仮想マシン204(1)に組み込むことができる。保守モジュール106は、追加の仮想マシン204(1)に関連するファイル、ソフトウェアアプリケーションおよび/またはデータの1つまたは複数をローカルストア216(1)または共有ストア220に格納することができる。それに加えてまたはその代替として、保守モジュール106は、マスタローカルストア214内のこれらのファイル、ソフトウェアアプリケーションおよび/またはデータの1つまたは複数を参照することができる。
図3の工程308では、参照モジュール108は、追加の仮想マシン204(1)の少なくとも1つのファイル(例えば、マスタ仮想マシン202のファイルと同様なまたは同一のファイル)に対して第2の分析(例えば、第1の分析と同様なまたは同一の分析)を実行する代わりに、マスタ仮想マシン202内の情報を参照するように追加の仮想マシン204(1)に指示することができる。言い換えれば、追加の仮想マシン204(1)は、走査モジュール104を配備して追加の仮想マシン204(1)内に位置する同じファイルの異なるインスタンスに対して同様なまたは同一の分析を実行する代わりに、マスタ仮想マシン202内に位置するファイルに対して実行された第1の分析の結果を使用することができる。例えば、追加の仮想マシン204(1)内に位置するWINWORD.EXEファイルのインスタンスに対して同じマルウェア分析を実行する代わりに、参照モジュール108は、WINWORD.EXEファイルに対して以前に実行されたマルウェア分析の結果にアクセスするため、マスタ仮想マシン202内の情報を参照するように追加の仮想マシン204(1)に指示することができる。
参照モジュール108は、マスタ仮想マシン内202の情報を参照するように追加の仮想マシン204(1)に指示するコンピュータ実行可能コードを実行するよう、追加の仮想マシン204(1)をプログラムすることができる。いくつかの実施形態では、このコンピュータ実行可能コードは、追加の仮想マシン204(1)に関連するソフトウェアアプリケーション(例えば、アンチマルウェアソリューション)用のプラグインであり得る。他の実施形態では、このコンピュータ実行可能コードは、マスタ仮想マシン202内の情報を参照するように追加の仮想マシン204(1)に指示する独立したソフトウェアアプリケーションであり得る。
追加の仮想マシン204(1)が第1の分析の結果を必要とする場合、このコンピュータ実行可能コードは、実行時に、第1の分析の結果にアクセスするという要求を生成するように追加の仮想マシン204(1)に指示することができる。例えば、参照モジュール108は、アンチマルウェアソリューションがマルウェア分析の結果の使用または評価を必要とする場合は常に、WINWORD.EXEファイルに対して実行されたマルウェア分析の結果にアクセスするという要求を生成するようにアンチマルウェアソリューションに指示するコンピュータ実行可能コードを追加の仮想マシン204(1)に挿入することができる。次いで、参照モジュール108は、要求を受け取り、要求に応じてマスタ仮想マシン202内の情報を提供することができる。
ある実施形態では、走査モジュール104は、追加の仮想マシン204(1)が最初にオンライン状態となる前に、マスタ仮想マシン202のファイルに対して第1の分析を実行することができる。例えば、走査モジュール104は、追加の仮想マシン204(1)がオフライン状態の間にWINWORD.EXEファイルに対してマルウェア分析を実行することができ、追加の仮想マシン204(1)は、このマルウェア分析が実行される前はオンライン状態ではない場合がある。次いで、保守モジュール106は、追加の仮想マシン204(1)を最初にオンライン状態にすることができる。追加の仮想マシン204(1)を最初にオンライン状態にした後、参照モジュール108は、追加の仮想マシン204(1)のファイルに対して第2の分析を実行する代わりにマスタ仮想マシン202内の情報を速やかに参照するように追加の仮想マシンに指示することができる。
1つまたは複数の実施形態では、保守モジュール106は、第1の分析の結果を使用することが可能なソフトウェアアプリケーションを追加の仮想マシン204(1)にインストールすることによって、追加の仮想マシン204(1)を保守することができる。例えば、走査モジュール104がWINWORD.EXEファイルに対してマルウェア分析を実行した後、保守モジュール106は、WINWORD.EXEファイルに対して実行されたマルウェア分析の結果を使用することが可能なアンチマルウェアソリューションを追加の仮想マシン204(1)にインストールすることができる。次いで、参照モジュール108は、追加の仮想マシン204(1)のファイルに対して第2の分析を実行する代わりに第1の分析の結果を使用するようにソフトウェアアプリケーションに指示することができる。
図3の工程308の完了と同時に例示的な方法300を終了することができる。しかし、図3には示されていないが、例示的な方法は、1つまたは複数の追加の工程を含み得る。さまざまな実施形態では、走査モジュール104は、追加の仮想マシン204(1)の少なくとも1つのファイルに対して追加分析を実行することができる。
追加分析は第1の分析と異なり得、および/または、追加分析が行われた追加の仮想マシン204(1)のファイルは第1の分析が行われたマスタ仮想マシン202のファイルと異なり得る。例えば、走査モジュール104は、追加の仮想マシン204(1)内に位置するWINWORD.EXEファイルのインスタンスに対してデータ損失防止分析を実行することができる。別の例では、走査モジュール104は、追加の仮想マシン204(1)内に位置する実行可能ファイルEXCEL.EXEに対してマルウェア分析を実行することができる。追加分析を実行すると、走査モジュール104は、第1の分析の結果を格納するファイル属性データベース120に追加分析の少なくとも1つの結果を追加することができる。
第1の分析の結果を格納するデータベースがマスタ仮想マシン202の外部に位置するそれらの実施形態では、走査モジュール104は、追加の仮想マシン204(1)の作成後であっても、データベースに第1の分析の結果を挿入することができる。言い換えれば、マスタ仮想マシン202に挿入された参照が、マスタ仮想マシン202の外部の第1の分析の結果を格納するデータベースを特定すると、追加の仮想マシン204(1)がマスタ仮想マシン202から作成された後に、走査モジュール104は、依然として、分析の結果を用いてデータベースを更新することができる。例えば、第1の分析がWINWORD.EXEファイルに対して実行されたコミュニティベースのレピュテーション分析であれば、走査モジュール104は、マスタ仮想マシン202に基づく追加の仮想マシン204(1)の作成後であっても、依然として、第1の分析の結果を更新する(すなわち、WINWORD.EXEファイルのコミュニティベースのレピュテーションを更新する)ことができる。
図4は、上記で詳細に説明されるように、図2のマスタローカルストア214および/または共有ストア220の一部分を表し得る、例示的なファイル属性データベース120のブロック図である。図4で示されるように、ファイル属性データベース120には、複数のファイルのそれぞれに対して、ファイルのハッシュ、ファイルの最近のスキャンの日付、ファイルの最近のスキャン中に使用されたウイルス定義セット、スキャン中にファイルに割り当てられた分類、スキャン中にファイルに割り当てられた分類に対する少なくとも1つの論理的根拠、および、ファイルに対するコミュニティベースのレピュテーション情報を特定する情報が入っている場合がある。
いくつかの例では、追加の仮想マシン204(1)は、特定のファイルのファイル属性情報124を取り込むため、マスタローカルストア214および/または共有ストア220内のファイル属性データベース120にアクセスすることができる。例えば、図1の参照モジュール108は、WINWORD.EXEを表す「0x98BAD748」ハッシュに関連するファイル属性情報124を取り込むため、図2の追加の仮想マシン204(1)の一部として、ファイル属性データベース120が入っている共有ストア220にアクセスすることができる。ファイル属性データベース120はファイル属性情報124を含むため、追加の仮想マシン204(1)は、第1の分析の結果と同様なまたは同一の少なくとも1つの結果を生成するファイルに対して分析を実行する代わりに、ファイルのファイル属性情報124を取り込むことができる。
図5は、本明細書に記載されるおよび/または示される実施形態の1つまたは複数を実施することが可能な例示的なコンピューティングシステム510のブロック図である。コンピューティングシステム510は、コンピュータ可読命令を実行することが可能な任意のシングルまたはマルチプロセッサコンピューティングデバイスまたはシステムを幅広く表す。コンピューティングシステム510の例としては、これらに限定されないが、ワークステーション、ラップトップ、クライアント側端末、サーバ、分配されたコンピューティングシステム、ハンドヘルドデバイスまたは任意の他のコンピューティングシステムもしくはデバイスが挙げられる。その最も基本的な構成では、コンピューティングシステム510は、少なくとも1つのプロセッサ514およびシステムメモリ516を含み得る。
一般に、プロセッサ514は、データの処理または命令の解釈および実行が可能な任意のタイプまたは形式の処理ユニットを表す。ある実施形態では、プロセッサ514は、ソフトウェアアプリケーションまたはモジュールから命令を受け取ることができる。これらの命令は、本明細書に記載されるおよび/または示される例示的な実施形態の1つまたは複数の機能をプロセッサ514に実行させることができる。例えば、プロセッサ514は、単独でまたは他の要素と組み合わせて、本明細書に記載される実行、挿入、保守、指示、格納、追加、プログラミング、持ち込み、受け取り、提供、インストールおよびハッシング工程の1つもしくは複数を実行することができる、および/または、実行する手段となり得る。また、プロセッサ514は、本明細書に記載されるおよび/または示される任意の他の工程、方法またはプロセスを実行することもできる、および/または、実行する手段ともなり得る。
一般に、システムメモリ516は、データおよび/またはコンピュータ可読命令を格納することが可能な任意のタイプまたは形式の揮発性または不揮発性記憶装置または媒体を表す。システムメモリ516の例としては、これらに限定されないが、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリまたは任意の他の適切なメモリデバイスが挙げられる。必須ではないが、ある実施形態では、コンピューティングシステム510は、揮発性メモリユニット(例えば、システムメモリ516など)と不揮発性記憶装置(例えば、以下で詳細に説明される一次記憶装置532など)の両方を含み得る。一例では、図1のモジュール102の1つまたは複数は、システムメモリ516にロードされ得る。
また、ある実施形態では、例示的なコンピューティングシステム510は、プロセッサ514およびシステムメモリ516に加えて、1つまたは複数のコンポーネントまたは要素も含み得る。例えば、図5で示されるように、コンピューティングシステム510は、メモリコントローラ518、入出力(I/O)コントローラ520および通信インターフェース522を含み得、そのそれぞれは、通信インフラ512を介して相互接続され得る。一般に、通信インフラ512は、コンピューティングデバイスの1つまたは複数のコンポーネント間の通信を容易にすることが可能な任意のタイプまたは形式のインフラを表す。通信インフラ512の例としては、これらに限定されないが、通信バス(ISA、PCI、PCIeまたは同様のバスなど)およびネットワークが挙げられる。
一般に、メモリコントローラ518は、メモリもしくはデータを取り扱うまたはコンピューティングシステム510の1つもしくは複数のコンポーネント間の通信を制御することが可能な任意のタイプまたは形式のデバイスを表す。例えば、ある実施形態では、メモリコントローラ518は、通信インフラ512を介してプロセッサ514、システムメモリ516およびI/Oコントローラ520間の通信を制御することができる。ある実施形態では、メモリコントローラ518は、単独でまたは他の要素と組み合わせて、本明細書に記載されるおよび/または示される実行、挿入、保守、指示、格納、追加、プログラミング、持ち込み、受け取り、提供、インストールおよびハッシングなどの工程または特徴の1つもしくは複数を実行することができる、および/または、実行する手段となり得る。
一般に、I/Oコントローラ520は、コンピューティングデバイスの入出力機能を調整および/または制御することが可能な任意のタイプまたは形式のモジュールを表す。例えば、ある実施形態では、I/Oコントローラ520は、プロセッサ514、システムメモリ516、通信インターフェース522、ディスプレイアダプタ526、入力インターフェース530およびストレージインターフェース534などのコンピューティングシステム510の1つまたは複数の要素間のデータ転送を制御するかまたは容易にすることができる。I/Oコントローラ520は、例えば、単独でまたは他の要素と組み合わせて、本明細書に記載される実行、挿入、保守、指示、格納、追加、プログラミング、持ち込み、受け取り、提供、インストールおよびハッシング工程の1つもしくは複数を実行する、および/または、実行する手段となるよう使用することができる。また、I/Oコントローラ520は、本開示に記載される他の工程および特徴を実行する、および/または、実行する手段となるよう使用することができる。
通信インターフェース522は、例示的なコンピューティングシステム510と1つまたは複数の追加のデバイスとの間の通信を容易にすることが可能な任意のタイプまたは形式の通信デバイスまたはアダプタを幅広く表す。例えば、ある実施形態では、通信インターフェース522は、コンピューティングシステム510と追加のコンピューティングシステムを含むプライベートまたはパブリックネットワークとの間の通信を容易にすることができる。通信インターフェース522の例としては、これらに限定されないが、有線ネットワークインターフェース(ネットワークインターフェースカードなど)、無線ネットワークインターフェース(無線ネットワークインターフェースカードなど)、モデムおよび任意の他の適切なインターフェースが挙げられる。少なくとも1つの実施形態では、通信インターフェース522は、インターネットなどのネットワークへの直接リンクを介してリモートサーバとの直接接続を実現することができる。また、通信インターフェース522は、例えば、ローカルエリアネットワーク(イーサネットネットワークなど)、パーソナルエリアネットワーク、電話もしくはケーブルネットワーク、携帯電話接続、衛星データ接続または任意の他の適切な接続を通じて、そのような接続を間接的に実現することもできる。
また、ある実施形態では、通信インターフェース522は、外部のバスまたは通信チャネルを介してコンピューティングシステム510と1つまたは複数の追加のネットワークまたは記憶装置との間の通信を容易にするよう構成されたホストアダプタを表す場合もある。ホストアダプタの例としては、これらに限定されないが、SCSIホストアダプタ、USBホストアダプタ、IEEE1394ホストアダプタ、SATAおよびeSATAホストアダプタ、ATAおよびPATAホストアダプタ、ファイバーチャネルインターフェースアダプタ、イーサネットアダプタまたは同様のものが挙げられる。また、通信インターフェース522は、コンピューティングシステム510が分配されたコンピューティングまたはリモートコンピューティングに参加することを可能にする場合もある。例えば、通信インターフェース522は、実行のためにリモートデバイスから命令を受け取るか、または、リモートデバイスに命令を送信することができる。ある実施形態では、通信インターフェース522は、単独でまたは他の要素と組み合わせて、本明細書に開示される実行、挿入、保守、指示、格納、追加、プログラミング、持ち込み、受け取り、提供、インストールおよびハッシング工程の1つもしくは複数を実行することができる、および/または、実行する手段となり得る。また、通信インターフェース522は、本開示に記載される他の工程および特徴を実行する、および/または、実行する手段となるよう使用することができる。
図5で示されるように、コンピューティングシステム510は、ディスプレイアダプタ526を介して通信インフラ512と結合される少なくとも1つのディスプレイデバイス524も含み得る。一般に、ディスプレイデバイス524は、ディスプレイアダプタ526によって転送された情報を視覚的に表示することが可能な任意のタイプまたは形式のデバイスを表す。同様に、ディスプレイアダプタ526は、一般に、ディスプレイデバイス524上で表示するため、通信インフラ512から(または、当技術分野で公知のフレームバッファから)グラフィックス、テキストおよび他のデータを転送するよう構成された任意のタイプまたは形式のデバイスを表す。
また、図5で示されるように、例示的なコンピューティングシステム510は、入力インターフェース530を介して通信インフラ512と結合される少なくとも1つの入力デバイス528も含み得る。一般に、入力デバイス528は、例示的なコンピューティングシステム510へのコンピュータまたは人間が生成した入力を提供することが可能な任意のタイプまたは形式の入力デバイスを表す。入力デバイス528の例としては、これらに限定されないが、キーボード、ポインティングデバイス、音声認識デバイスまたは任意の他の入力デバイスが挙げられる。少なくとも1つの実施形態では、入力デバイス528は、単独でまたは他の要素と組み合わせて、本明細書に開示される実行、挿入、保守、指示、格納、追加、プログラミング、持ち込み、受け取り、提供、インストールおよびハッシング工程の1つもしくは複数を実行することができる、および/または、実行する手段となり得る。また、入力デバイス528は、本開示に記載される他の工程および特徴を実行する、および/または、実行する手段となるよう使用することもできる。
また、図5で示されるように、例示的なコンピューティングシステム510は、ストレージインターフェース534を介して通信インフラ512と結合される一次記憶装置532およびバックアップ記憶装置533も含み得る。一般に、記憶装置532および533は、データおよび/または他のコンピュータ可読命令を格納することが可能な任意のタイプまたは形式の記憶装置または媒体を表す。例えば、記憶装置532および533は、磁気ディスクドライブ(例えば、いわゆるハードドライブ)、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブまたは同様のものであり得る。一般に、ストレージインターフェース534は、記憶装置532および533とコンピューティングシステム510の他のコンポーネントとの間でデータを転送するための任意のタイプまたは形式のインターフェースまたはデバイスを表す。一例では、図1のファイル属性データベース120は、一次記憶装置532に格納することができる。
ある実施形態では、記憶装置532および533は、コンピュータソフトウェア、データまたは他のコンピュータ可読情報を格納するよう構成されたリムーバブルストレージユニットから読み取るおよび/または同リムーバブルストレージユニットに書き込むよう構成され得る。適切なリムーバブルストレージユニットの例としては、これらに限定されないが、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイスまたは同様のものが挙げられる。また、記憶装置532および533は、コンピュータソフトウェア、データまたは他のコンピュータ可読命令をコンピューティングシステム510にロードすることを可能にするための他の同様の構造またはデバイスも含み得る。例えば、記憶装置532および533は、ソフトウェア、データまたは他のコンピュータ可読情報を読み取るおよび書き込むよう構成され得る。また、記憶装置532および533は、コンピューティングシステム510の一部であり得るか、または、他のインターフェースシステムを通じてアクセスされる別々のデバイスでもあり得る。
ある実施形態では、記憶装置532および533は、例えば、単独でまたは他の要素と組み合わせて、本明細書に開示される実行、挿入、保守、指示、格納、追加、プログラミング、持ち込み、受け取り、提供、インストールおよびハッシング工程の1つもしくは複数を実行する、および/または、実行する手段となるよう使用することができる。また、記憶装置532および533は、本開示に記載される他の工程および特徴を実行する、および/または、実行する手段となるよう使用することもできる。
また、他の多くのデバイスまたはサブシステムを、コンピューティングシステム510に接続することができる。逆に、図5で示されるコンポーネントおよびデバイスのすべてが、本明細書に記載されるおよび/または示される実施形態を実施するために必ずしも存在しているわけではない。また、上記で言及されたデバイスおよびサブシステムは、図5で示されるものとは異なる形で相互接続することもできる。また、コンピューティングシステム510は、任意の数のソフトウェア、ファームウェアおよび/またはハードウェア構成を使用することもできる。例えば、本明細書に開示される1つまたは複数の例示的な実施形態は、コンピュータ可読媒体上でコンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令またはコンピュータ制御論理とも呼ばれる)として符号化することができる。語句「コンピュータ可読媒体」は、一般に、コンピュータ可読命令を格納または送達することが可能な任意の形式のデバイス、キャリアまたは媒体を指す。コンピュータ可読媒体の例としては、これらに限定されないが、搬送波などの伝送型の媒体、ならびに、磁気記憶媒体(例えば、ハードディスクドライブおよびフロッピーディスク)、光記憶媒体(例えば、CD−ROMまたはDVD−ROM)、電子記憶媒体(例えば、ソリッドステートドライブおよびフラッシュメディア)および他の分配システムなどの物理的な媒体が挙げられる。
コンピュータプログラムが入っているコンピュータ可読媒体は、コンピューティングシステム510にロードすることができる。次いで、コンピュータ可読媒体上に格納されたコンピュータプログラムのすべてまたは一部分は、システムメモリ516ならびに/または記憶装置532および533のさまざまな部分に格納することができる。プロセッサ514によって実行されると、コンピューティングシステム510にロードされたコンピュータプログラムは、プロセッサ514に、本明細書に記載されるおよび/または示される1つもしくは複数の例示的な実施形態の機能を実行させる、および/または、実行する手段となるようにすることができる。それに加えてまたはその代替として、本明細書に記載されるおよび/または示される1つまたは複数の例示的な実施形態は、ファームウェアおよび/またはハードウェアで実施することができる。例えば、コンピューティングシステム510は、本明細書に開示された1つまたは複数の例示的な実施形態を実施するよう適合された特定用途向け集積回路(ASIC)として構成され得る。
図6は、クライアントシステム610、620および630ならびにサーバ640および645をネットワーク650と結合することができる例示的なネットワークアーキテクチャ600のブロック図である。一般に、クライアントシステム610、620および630は、図5の例示的なコンピューティングシステム510などの任意のタイプまたは形式のコンピューティングデバイスまたはシステムを表す。
同様に、サーバ640および645は、一般に、さまざまなデータベースサービスを提供するよう構成された、および/または、あるソフトウェアアプリケーションを起動するよう構成された、アプリケーションサーバまたはデータベースサーバなどのコンピューティングデバイスまたはシステムを表す。一般に、ネットワーク650は、例えば、イントラネット、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)またはインターネットを含む任意の電気通信ネットワークまたはコンピュータネットワークを表す。一例では、クライアントシステム610、620および/もしくは630、ならびに/または、サーバ640および/もしくは645は、図1のシステム100を含み得る。
図6で示されるように、1つまたは複数の記憶装置660(1)〜(N)は、サーバ640に直接取り付けることができる。同様に、1つまたは複数の記憶装置670(1)〜(N)は、サーバ645に直接取り付けることができる。記憶装置660(1)〜(N)および記憶装置670(1)〜(N)は、一般に、データおよび/または他のコンピュータ可読命令を格納することが可能な任意のタイプまたは形式の記憶装置または媒体を表す。ある実施形態では、記憶装置660(1)〜(N)および記憶装置670(1)〜(N)は、NFS、SMBまたはCIFSなどのさまざまなプロトコルを使用して、サーバ640および645と通信するよう構成されたネットワーク接続記憶(NAS)装置を表す場合がある。
また、サーバ640および645は、ストレージエリアネットワーク(SAN)ファブリック680に接続することもできる。一般に、SANファブリック680は、複数の記憶装置間の通信を容易にすることが可能な任意のタイプまたは形式のコンピュータネットワークまたはアーキテクチャを表す。SANファブリック680は、サーバ640および645と複数の記憶装置690(1)〜(N)および/またはインテリジェントなストレージアレイ695との間の通信を容易にすることができる。また、SANファブリック680は、装置690(1)〜(N)およびアレイ695がクライアントシステム610、620および630にローカルで接続されたデバイスのように見えるように、ネットワーク650ならびにサーバ640および645を介して、クライアントシステム610、620および630と記憶装置690(1)〜(N)および/またはインテリジェントなストレージアレイ695との通信を容易にすることもできる。記憶装置660(1)〜(N)および記憶装置670(1)〜(N)と同様に、記憶装置690(1)〜(N)およびインテリジェントなストレージアレイ695は、一般に、データおよび/または他のコンピュータ可読命令を格納することが可能な任意のタイプまたは形式の記憶装置または媒体を表す。
ある実施形態では、図5の例示的なコンピューティングシステム510に関連して、図5の通信インターフェース522などの通信インターフェースを使用して、各クライアントシステム610、620および630とネットワーク650との間の接続性を提供することができる。クライアントシステム610、620および630は、例えば、ウェブブラウザまたは他のクライアントソフトウェアを使用して、サーバ640または645上の情報にアクセスできる場合がある。そのようなソフトウェアは、クライアントシステム610、620および630がサーバ640、サーバ645、記憶装置660(1)〜(N)、記憶装置670(1)〜(N)、記憶装置690(1)〜(N)またはインテリジェントなストレージアレイ695によってホスティングされるデータにアクセスすることを可能にすることができる。図6はデータを交換するためのネットワーク(インターネットなど)の使用について示すが、本明細書に記載されるおよび/または示される実施形態は、インターネットまたは任意の特定のネットワークベースの環境に限定されない。
少なくとも1つの実施形態では、本明細書に開示される1つまたは複数の例示的な実施形態のすべてまたは一部分は、コンピュータプログラムとして符号化することができ、サーバ640、サーバ645、記憶装置660(1)〜(N)、記憶装置670(1)〜(N)、記憶装置690(1)〜(N)、インテリジェントなストレージアレイ695またはそれらの任意の組合せにロードし、これらによって実行することができる。また、本明細書に開示される1つまたは複数の例示的な実施形態のすべてまたは一部分は、コンピュータプログラムとして符号化することができ、サーバ640に格納し、サーバ645によって起動し、ネットワーク650上でクライアントシステム610、620および630に分配することもできる。それに応じて、ネットワークアーキテクチャ600は、単独でまたは他の要素と組み合わせて、本明細書に開示される実行、挿入、保守、指示、格納、追加、プログラミング、持ち込み、受け取り、提供、インストールおよびハッシング工程の1つもしくは複数を実行することができる、および/または、実行する手段となり得る。また、ネットワークアーキテクチャ600は、本開示に記載される他の工程および特徴を実行する、および/または、実行する手段となるよう使用することもできる。
上記で詳細に説明されるように、コンピューティングシステム510および/またはネットワークアーキテクチャ600の1つまたは複数のコンポーネントは、単独でまたは他の要素と組み合わせて、仮想マシン間で分析の結果を共有するための例示的な方法の1つまたは複数の工程を実行することができる、および/または、実行する手段となり得る。
前述の開示は特定のブロック図、フローチャートおよび例を使用してさまざまな実施形態について記載しているが、本明細書に記載されるおよび/または示される各ブロック図のコンポーネント、フローチャートの工程、オペレーションおよび/またはコンポーネントは、広範囲にわたるハードウェア、ソフトウェアまたはファームウェア(または、それらの任意の組合せ)構成を使用して、個別におよび/または一括して実装することができる。さらに、他のコンポーネント内に含まれるコンポーネントのいかなる開示も、他の多くのアーキテクチャを実装して同じ機能性を達成することができるため、本来は例示的なものであると見なすべきである。
本明細書に記載されるおよび/または示されるプロセスパラメータおよび工程の順序は単なる例示として与えられるものであり、要望通り変更することができる。例えば、本明細書に示されるおよび/または記載される工程は特定の順番で示されるまたは論じられる場合があるが、これらの工程は、必ずしも示されるまたは論じられる順番で実行する必要があるわけではない。本明細書に記載されるおよび/または示されるさまざまな例示的な方法は、本明細書に記載されるまたは示される工程の1つもしくは複数を省略することも、開示される工程に加えて追加の工程を含めることもできる。
完全に機能的なコンピューティングシステムとの関連でさまざまな実施形態が本明細書に記載されるおよび/または示されるが、これらの例示的な実施形態の1つまたは複数は、実際に分配を行うために使用される特定のタイプのコンピュータ可読媒体に関わらず、プログラム製品としてさまざまな形式で分配され得る。また、本明細書に開示される実施形態は、ある一定のタスクを実行するソフトウェアモジュールを使用して実施することもできる。これらのソフトウェアモジュールは、コンピュータ可読記憶媒体上またはコンピューティングシステムに格納することができるスクリプト、バッチまたは他の実行可能なファイルを含み得る。いくつかの実施形態では、これらのソフトウェアモジュールは、本明細書に開示される例示的な実施形態の1つまたは複数を実行するようコンピューティングシステムを構成することができる。
さらに、本明細書に記載される1つまたは複数のモジュールは、データ、物理的デバイスおよび/または物理的デバイスの表現をある形式から別の形式へ変換することができる。例えば、図1の走査モジュール104は、図2のマスタローカルストア214および/または共有ストア220の特性または特徴を、そのようなストア内の走査モジュール104によって実行された分析の結果を更新または格納することによって、変換することができる。
先の説明は、当業者が本明細書に開示される例示的な実施形態のさまざまな態様を最良に利用できるよう提供されている。この例示的な説明は、包括的であるまたは開示される形式と全く同一の形式に限定することを意図しない。多くの変更形態および変形形態を、本開示の精神および範囲から逸脱することなく作成することができる。本明細書に開示される実施形態は、すべての点において、限定的なものではなく例示的なものとして見なされるべきである。本開示の範囲を決定する際には、添付の特許請求の範囲およびその均等物を参照すべきである。
特に断りのない限り、本明細書および特許請求の範囲で使用される単数形「a」または「an」は、「少なくとも1つの(at least one of)」の意味に解釈されるものとする。さらに、使い易さを考慮して、本明細書および特許請求の範囲で使用される語「含む(including)」および「有する(having)」は、語「備える、含む(comprising)」と交換可能であり、同語と同じ意味を有する。

Claims (20)

  1. 仮想マシン間で分析の結果を共有するためのコンピュータ実装方法であって、前記方法の少なくとも一部分は、少なくとも1つのプロセッサを備えるコンピューティングデバイスによって実行され、
    マスタ仮想マシンの少なくとも1つのファイルに対して第1の分析を実行する工程と、
    前記第1の分析の少なくとも1つの結果を示す情報を前記マスタ仮想マシンに挿入する工程と、
    前記マスタ仮想マシンに基づく少なくとも1つの追加の仮想マシンを保守する工程と、
    前記追加の仮想マシンの少なくとも1つのファイルに対して第2の分析を実行する代わりに、前記マスタ仮想マシン内の前記情報を参照するように前記追加の仮想マシンに指示する工程と
    を含むコンピュータ実装方法。
  2. 前記第1の分析の結果を示す情報を前記マスタ仮想マシンに挿入する工程は、前記マスタ仮想マシン内に位置するデータベースに前記第1の分析の結果を格納する工程を含む、請求項1に記載の方法。
  3. 前記第1の分析の結果を示す情報を前記マスタ仮想マシンに挿入する工程は、前記マスタ仮想マシンの外部の前記第1の分析の結果を格納するデータベースへの参照を挿入する工程を含む、請求項1に記載の方法。
  4. 前記追加の仮想マシンの少なくとも1つのファイルに対して追加分析を実行する工程と、
    前記第1の分析の結果を格納するデータベースに前記追加分析の少なくとも1つの結果を追加する工程と
    をさらに含む、請求項1に記載の方法。
  5. 前記マスタ仮想マシン内の前記情報を参照するように前記追加の仮想マシンに指示する工程は、前記マスタ仮想マシン内の前記情報を参照するように前記追加の仮想マシンに指示するコンピュータ実行可能コードを実行するよう、前記追加の仮想マシンをプログラムする工程を含む、請求項1に記載の方法。
  6. 前記マスタ仮想マシンの前記ファイルに対して前記分析を実行する工程は、前記マスタ仮想マシンがオフライン状態の間に前記第1の分析を実行する工程を含む、請求項1に記載の方法。
  7. 前記マスタ仮想マシンの前記ファイルに対して前記分析を実行する工程は、前記追加の仮想マシンがオフライン状態の間に、前記マスタ仮想マシンの前記ファイルに対して前記第1の分析を、前記追加の仮想マシンが最初にオンライン状態となる前に、実行する工程を含む、請求項1に記載の方法。
  8. 前記追加の仮想マシンを最初にオンライン状態にする工程と、
    前記追加の仮想マシンを最初にオンライン状態にすると同時に、前記追加の仮想マシンの前記ファイルに対して前記第2の分析を実行する代わりに、前記マスタ仮想マシン内の前記情報を参照するように前記追加の仮想マシンに指示する工程と
    をさらに含む、請求項7に記載の方法。
  9. 前記第1の分析の結果にアクセスするという要求を前記追加の仮想マシンから受け取る工程と、
    前記要求に応じて前記マスタ仮想マシン内の前記情報を提供する工程と
    をさらに含む、請求項1に記載の方法。
  10. 前記追加の仮想マシンを保守する工程は、
    前記第1の分析の結果を使用することが可能なソフトウェアアプリケーションを前記追加の仮想マシンにインストールする工程と、
    前記追加の仮想マシンの前記ファイルに対して前記第2の分析を実行する代わりに前記第1の分析の結果を使用するように前記ソフトウェアアプリケーションに指示する工程と
    を含む、請求項1に記載の方法。
  11. 前記第1の分析は、前記マスタ仮想マシンの外部で実行される走査モジュールによって実行される、請求項1に記載の方法。
  12. 前記ファイルに対して前記第1の分析を実行する工程は、
    前記ファイルに対してマルウェア分析を実行する工程、
    前記ファイルに対してデータ損失防止分析を実行する工程、
    前記ファイルに対してコミュニティベースのレピュテーション分析を実行する工程、
    前記ファイルに対してファイルタイプ分析を実行する工程、
    前記ファイルのハッシュ値を計算する工程
    の少なくとも1つを含む、請求項1に記載の方法。
  13. 仮想マシン間で分析の結果を共有するためのシステムであって、
    少なくとも1つのプロセッサと、
    マスタ仮想マシンの少なくとも1つのファイルに対して第1の分析を実行し、
    前記第1の分析の少なくとも1つの結果を示す情報を前記マスタ仮想マシンに挿入する
    ように前記プロセッサに指示するようプログラムされた走査モジュールと、
    前記マスタ仮想マシンに基づく少なくとも1つの追加の仮想マシンを保守する
    ように前記プロセッサに指示するようプログラムされた保守モジュールと、
    前記追加の仮想マシンの少なくとも1つのファイルに対して第2の分析を実行する代わりに、前記マスタ仮想マシン内の前記情報を参照するように前記追加の仮想マシンに指示する
    ように前記プロセッサに指示するようプログラムされた参照モジュールと
    を備えるシステム。
  14. 前記走査モジュールは、前記マスタ仮想マシン内に位置するデータベースに前記第1の分析の結果を格納するように前記プロセッサに指示するようプログラムされた、請求項13に記載のシステム。
  15. 前記走査モジュールは、前記マスタ仮想マシンの外部の前記第1の分析の結果を格納するデータベースへの参照を前記マスタ仮想マシンに挿入するように前記プロセッサに指示するようプログラムされた、請求項13に記載のシステム。
  16. 前記走査モジュールは、
    前記追加の仮想マシンの少なくとも1つのファイルに対して追加分析を実行し、
    前記第1の分析の結果を格納するデータベースに前記追加分析の少なくとも1つの結果を追加する
    ように前記プロセッサに指示するようプログラムされた、請求項13に記載のシステム。
  17. 前記走査モジュールは、前記追加の仮想マシンがオフライン状態の間に、前記マスタ仮想マシンの前記ファイルに対して前記第1の分析を、前記追加の仮想マシンが最初にオンライン状態となる前に、実行するように前記プロセッサに指示するようプログラムされた、請求項13に記載のシステム。
  18. 前記保守モジュールは、前記追加の仮想マシンを最初にオンライン状態にするように前記プロセッサに指示するようプログラムされ、
    前記参照モジュールは、前記追加の仮想マシンを最初にオンライン状態にすると同時に、前記追加の仮想マシンの前記ファイルに対して前記第2の分析を実行する代わりに、前記マスタ仮想マシン内の前記情報を参照するように前記追加の仮想マシンに指示するように前記プロセッサに指示するようプログラムされた、請求項17に記載のシステム。
  19. 前記保守モジュールは、前記第1の分析の結果を使用することが可能なソフトウェアアプリケーションを前記追加の仮想マシンにインストールするように前記プロセッサに指示するようプログラムされ、
    前記参照モジュールは、前記追加の仮想マシンの前記ファイルに対して前記第2の分析を実行する代わりに前記第1の分析の結果を使用するように前記ソフトウェアアプリケーションに指示するように前記プロセッサに指示するようプログラムされた、請求項13に記載のシステム。
  20. コンピューティングデバイスによって実行されると、前記コンピューティングデバイスに、
    マスタ仮想マシンの少なくとも1つのファイルに対して第1の分析を実行させる、
    前記第1の分析の少なくとも1つの結果を示す情報を前記マスタ仮想マシンに挿入させる、
    前記マスタ仮想マシンに基づく少なくとも1つの追加の仮想マシンを保守させる、
    前記追加の仮想マシンの少なくとも1つのファイルに対して第2の分析を実行する代わりに、前記マスタ仮想マシン内の前記情報を参照するように前記追加の仮想マシンに指示させる、
    1つまたは複数のコンピュータ実行可能命令を含む、コンピュータ可読媒体。
JP2013518399A 2010-06-29 2011-05-14 仮想マシン間で分析の結果を共有するためのシステム、方法及びコンピュータ可読記憶媒体 Active JP5758995B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/826,122 2010-06-29
US12/826,122 US8667489B2 (en) 2010-06-29 2010-06-29 Systems and methods for sharing the results of analyses among virtual machines
PCT/US2011/036558 WO2012003048A1 (en) 2010-06-29 2011-05-14 Systems and methods for sharing the results of analyses among virtual machines

Publications (2)

Publication Number Publication Date
JP2013535716A true JP2013535716A (ja) 2013-09-12
JP5758995B2 JP5758995B2 (ja) 2015-08-05

Family

ID=44121259

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013518399A Active JP5758995B2 (ja) 2010-06-29 2011-05-14 仮想マシン間で分析の結果を共有するためのシステム、方法及びコンピュータ可読記憶媒体

Country Status (4)

Country Link
US (1) US8667489B2 (ja)
EP (1) EP2588956A1 (ja)
JP (1) JP5758995B2 (ja)
WO (1) WO2012003048A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103154961A (zh) * 2010-09-30 2013-06-12 惠普发展公司,有限责任合伙企业 用于病毒扫描的虚拟机
US20160344547A9 (en) * 2010-10-04 2016-11-24 Unisys Corporation Secure connection for a remote device through a virtual relay device
US9767282B2 (en) * 2010-12-14 2017-09-19 Microsoft Technology Licensing, Llc Offline scan, clean and telemetry using installed antimalware protection components
US8566899B2 (en) * 2011-03-16 2013-10-22 Symantec Corporation Techniques for securing a checked-out virtual machine in a virtual desktop infrastructure
US8806483B2 (en) * 2011-04-13 2014-08-12 International Business Machines Corporation Determining starting values for virtual machine attributes in a networked computing environment
US9104661B1 (en) * 2011-06-29 2015-08-11 Amazon Technologies, Inc. Translation of applications
CN102662741B (zh) 2012-04-05 2014-04-02 华为技术有限公司 虚拟桌面的实现方法、装置和系统
US9571507B2 (en) 2012-10-21 2017-02-14 Mcafee, Inc. Providing a virtual security appliance architecture to a virtual cloud infrastructure
US9495180B2 (en) 2013-05-10 2016-11-15 Fireeye, Inc. Optimized resource allocation for virtual machines within a malware content detection system
US10339236B2 (en) * 2013-09-10 2019-07-02 Vmware, Inc. Techniques for improving computational throughput by using virtual machines
US9769189B2 (en) * 2014-02-21 2017-09-19 Verisign, Inc. Systems and methods for behavior-based automated malware analysis and classification
RU2568282C2 (ru) * 2014-04-18 2015-11-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ обеспечения отказоустойчивости антивирусной защиты, реализуемой в виртуальной среде
WO2015195079A1 (en) * 2014-06-16 2015-12-23 Hewlett-Packard Development Company, L.P. Virtual node deployments of cluster-based applications
US9009836B1 (en) 2014-07-17 2015-04-14 Kaspersky Lab Zao Security architecture for virtual machines
KR101599740B1 (ko) * 2014-07-17 2016-03-04 한국전자통신연구원 전자문서 불법 유출 방지 방법 및 장치
US10642753B1 (en) 2015-06-30 2020-05-05 Fireeye, Inc. System and method for protecting a software component running in virtual machine using a virtualization layer
US10395029B1 (en) 2015-06-30 2019-08-27 Fireeye, Inc. Virtual system and method with threat protection
US10726127B1 (en) 2015-06-30 2020-07-28 Fireeye, Inc. System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer
US11113086B1 (en) 2015-06-30 2021-09-07 Fireeye, Inc. Virtual system and method for securing external network connectivity
US10216927B1 (en) 2015-06-30 2019-02-26 Fireeye, Inc. System and method for protecting memory pages associated with a process using a virtualization layer
US10033759B1 (en) 2015-09-28 2018-07-24 Fireeye, Inc. System and method of threat detection under hypervisor control
US20180136962A1 (en) * 2016-11-13 2018-05-17 Ananda Kumar Kammampati Master-virtual machine framework

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006178936A (ja) * 2004-12-21 2006-07-06 Microsoft Corp 仮想マシンまたは強化オペレーティングシステムなどにおけるコンピュータのセキュリティ管理
US20080263658A1 (en) * 2007-04-17 2008-10-23 Microsoft Corporation Using antimalware technologies to perform offline scanning of virtual machine images
WO2009004757A1 (ja) * 2007-07-05 2009-01-08 Panasonic Corporation データ処理装置、データ処理方法、データ処理プログラム、記録媒体及び集積回路
US20090241194A1 (en) * 2008-03-21 2009-09-24 Andrew James Thomas Virtual machine configuration sharing between host and virtual machines and between virtual machines

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021510A (en) 1997-11-24 2000-02-01 Symantec Corporation Antivirus accelerator
US7346928B1 (en) 2000-12-01 2008-03-18 Network Appliance, Inc. Decentralized appliance virus scanning
US7310817B2 (en) 2001-07-26 2007-12-18 Mcafee, Inc. Centrally managed malware scanning
US20040172551A1 (en) 2003-12-09 2004-09-02 Michael Connor First response computer virus blocking.
US8234641B2 (en) * 2006-10-17 2012-07-31 Managelq, Inc. Compliance-based adaptations in managed virtual systems
US8458694B2 (en) * 2007-04-30 2013-06-04 International Business Machines Corporation Hypervisor with cloning-awareness notifications
US7797748B2 (en) 2007-12-12 2010-09-14 Vmware, Inc. On-access anti-virus mechanism for virtual machine architecture

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006178936A (ja) * 2004-12-21 2006-07-06 Microsoft Corp 仮想マシンまたは強化オペレーティングシステムなどにおけるコンピュータのセキュリティ管理
US20080263658A1 (en) * 2007-04-17 2008-10-23 Microsoft Corporation Using antimalware technologies to perform offline scanning of virtual machine images
WO2009004757A1 (ja) * 2007-07-05 2009-01-08 Panasonic Corporation データ処理装置、データ処理方法、データ処理プログラム、記録媒体及び集積回路
US20090241194A1 (en) * 2008-03-21 2009-09-24 Andrew James Thomas Virtual machine configuration sharing between host and virtual machines and between virtual machines

Also Published As

Publication number Publication date
WO2012003048A1 (en) 2012-01-05
US8667489B2 (en) 2014-03-04
EP2588956A1 (en) 2013-05-08
US20110321040A1 (en) 2011-12-29
JP5758995B2 (ja) 2015-08-05

Similar Documents

Publication Publication Date Title
JP5758995B2 (ja) 仮想マシン間で分析の結果を共有するためのシステム、方法及びコンピュータ可読記憶媒体
US11126448B1 (en) Systems and methods for using dynamic templates to create application containers
JP5816198B2 (ja) 関連コンピューティングシステム間でコンピューティングオペレーションの結果を共有するためのシステムおよび方法
US9983891B1 (en) Systems and methods for distributing configuration templates with application containers
US9582311B2 (en) System, method and computer program product for data processing and system deployment in a virtual environment
JP6186374B2 (ja) 仮想化されたプラットフォームへ安全に移行するためのシステム及び方法
US9336384B2 (en) Systems and methods for replacing application methods at runtime
JP5547727B2 (ja) ボリュームへの変更を追跡するシステムおよび方法
US9256463B2 (en) Method and apparatus to replicate stateful virtual machines between clouds
US11086662B2 (en) Method and system of migrating applications to a cloud-computing environment
US7886140B2 (en) Booting a computer using a boot list when a non-volatile memory on the computer does not contain the boot list
JP2009116859A (ja) 1つ以上の仮想マシンをマイグレートするシステムおよび方法
US20080098386A1 (en) Methodology of individualized software deployment for hardware-independent personal computer mass deployment
WO2017112168A1 (en) Multi-label content recategorization
US8595192B1 (en) Systems and methods for providing high availability to instance-bound databases
JP6266008B2 (ja) 仮想マシン・イメージをコンピュータ・システムに適用する方法、情報処理システム、コンピュータ・プログラム
US9710575B2 (en) Hybrid platform-dependent simulation interface
US8621606B1 (en) Systems and methods for identifying external functions called by untrusted applications
US20200218635A1 (en) Logging stored information for identifying a fix for and/or a cause of an error condition
US10255435B1 (en) Systems and methods for establishing a reputation for related program files
TW201523447A (zh) 伺服器系統與韌體更新方法
US10776148B1 (en) System and method for utilizing computational power of a server farm
CN106681771A (zh) 一种系统重装方法及装置
US10528602B1 (en) Systems and methods for facilitating analytics on remotely stored data sets

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20131115

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140303

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150311

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150512

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150604

R150 Certificate of patent or registration of utility model

Ref document number: 5758995

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250