(57)【要約】  コンピュータ実装方法は、マスタ仮想マシンの少なくとも１つのファイルに対して第１の分析を実行する工程と、第１の分析の少なくとも１つの結果を示す情報をマスタ仮想マシンに挿入する工程とを含み得る。また、コンピュータ実装方法は、マスタ仮想マシンに基づく少なくとも１つの追加の仮想マシンを保守する工程も含み得る。コンピュータ実装方法は、追加の仮想マシンの少なくとも１つのファイルに対して第２の分析を実行する代わりに、マスタ仮想マシン内の情報を参照するように追加の仮想マシンに指示する工程をさらに含み得る。また、さまざまな他のシステム、方法およびコンピュータ可読媒体も開示される。
2013535716.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシン間で分析の結果を共有するためのコンピュータ実装方法であって、前記方法の少なくとも一部分は、少なくとも１つのプロセッサを備えるコンピューティングデバイスによって実行され、
マスタ仮想マシンの少なくとも１つのファイルに対して第１の分析を実行する工程と、
前記第１の分析の少なくとも１つの結果を示す情報を前記マスタ仮想マシンに挿入する工程と、
前記マスタ仮想マシンに基づく少なくとも１つの追加の仮想マシンを保守する工程と、
前記追加の仮想マシンの少なくとも１つのファイルに対して第２の分析を実行する代わりに、前記マスタ仮想マシン内の前記情報を参照するように前記追加の仮想マシンに指示する工程と
を含むコンピュータ実装方法。
【請求項２】
前記第１の分析の結果を示す情報を前記マスタ仮想マシンに挿入する工程は、前記マスタ仮想マシン内に位置するデータベースに前記第１の分析の結果を格納する工程を含む、請求項１に記載の方法。
【請求項３】
前記第１の分析の結果を示す情報を前記マスタ仮想マシンに挿入する工程は、前記マスタ仮想マシンの外部の前記第１の分析の結果を格納するデータベースへの参照を挿入する工程を含む、請求項１に記載の方法。
【請求項４】
前記追加の仮想マシンの少なくとも１つのファイルに対して追加分析を実行する工程と、
前記第１の分析の結果を格納するデータベースに前記追加分析の少なくとも１つの結果を追加する工程と
をさらに含む、請求項１に記載の方法。
【請求項５】
前記マスタ仮想マシン内の前記情報を参照するように前記追加の仮想マシンに指示する工程は、前記マスタ仮想マシン内の前記情報を参照するように前記追加の仮想マシンに指示するコンピュータ実行可能コードを実行するよう、前記追加の仮想マシンをプログラムする工程を含む、請求項１に記載の方法。
【請求項６】
前記マスタ仮想マシンの前記ファイルに対して前記分析を実行する工程は、前記マスタ仮想マシンがオフライン状態の間に前記第１の分析を実行する工程を含む、請求項１に記載の方法。
【請求項７】
前記マスタ仮想マシンの前記ファイルに対して前記分析を実行する工程は、前記追加の仮想マシンがオフライン状態の間に、前記マスタ仮想マシンの前記ファイルに対して前記第１の分析を、前記追加の仮想マシンが最初にオンライン状態となる前に、実行する工程を含む、請求項１に記載の方法。
【請求項８】
前記追加の仮想マシンを最初にオンライン状態にする工程と、
前記追加の仮想マシンを最初にオンライン状態にすると同時に、前記追加の仮想マシンの前記ファイルに対して前記第２の分析を実行する代わりに、前記マスタ仮想マシン内の前記情報を参照するように前記追加の仮想マシンに指示する工程と
をさらに含む、請求項７に記載の方法。
【請求項９】
前記第１の分析の結果にアクセスするという要求を前記追加の仮想マシンから受け取る工程と、
前記要求に応じて前記マスタ仮想マシン内の前記情報を提供する工程と
をさらに含む、請求項１に記載の方法。
【請求項１０】
前記追加の仮想マシンを保守する工程は、
前記第１の分析の結果を使用することが可能なソフトウェアアプリケーションを前記追加の仮想マシンにインストールする工程と、
前記追加の仮想マシンの前記ファイルに対して前記第２の分析を実行する代わりに前記第１の分析の結果を使用するように前記ソフトウェアアプリケーションに指示する工程と
を含む、請求項１に記載の方法。
【請求項１１】
前記第１の分析は、前記マスタ仮想マシンの外部で実行される走査モジュールによって実行される、請求項１に記載の方法。
【請求項１２】
前記ファイルに対して前記第１の分析を実行する工程は、
前記ファイルに対してマルウェア分析を実行する工程、
前記ファイルに対してデータ損失防止分析を実行する工程、
前記ファイルに対してコミュニティベースのレピュテーション分析を実行する工程、
前記ファイルに対してファイルタイプ分析を実行する工程、
前記ファイルのハッシュ値を計算する工程
の少なくとも１つを含む、請求項１に記載の方法。
【請求項１３】
仮想マシン間で分析の結果を共有するためのシステムであって、
少なくとも１つのプロセッサと、
マスタ仮想マシンの少なくとも１つのファイルに対して第１の分析を実行し、
前記第１の分析の少なくとも１つの結果を示す情報を前記マスタ仮想マシンに挿入する
ように前記プロセッサに指示するようプログラムされた走査モジュールと、
前記マスタ仮想マシンに基づく少なくとも１つの追加の仮想マシンを保守する
ように前記プロセッサに指示するようプログラムされた保守モジュールと、
前記追加の仮想マシンの少なくとも１つのファイルに対して第２の分析を実行する代わりに、前記マスタ仮想マシン内の前記情報を参照するように前記追加の仮想マシンに指示する
ように前記プロセッサに指示するようプログラムされた参照モジュールと
を備えるシステム。
【請求項１４】
前記走査モジュールは、前記マスタ仮想マシン内に位置するデータベースに前記第１の分析の結果を格納するように前記プロセッサに指示するようプログラムされた、請求項１３に記載のシステム。
【請求項１５】
前記走査モジュールは、前記マスタ仮想マシンの外部の前記第１の分析の結果を格納するデータベースへの参照を前記マスタ仮想マシンに挿入するように前記プロセッサに指示するようプログラムされた、請求項１３に記載のシステム。
【請求項１６】
前記走査モジュールは、
前記追加の仮想マシンの少なくとも１つのファイルに対して追加分析を実行し、
前記第１の分析の結果を格納するデータベースに前記追加分析の少なくとも１つの結果を追加する
ように前記プロセッサに指示するようプログラムされた、請求項１３に記載のシステム。
【請求項１７】
前記走査モジュールは、前記追加の仮想マシンがオフライン状態の間に、前記マスタ仮想マシンの前記ファイルに対して前記第１の分析を、前記追加の仮想マシンが最初にオンライン状態となる前に、実行するように前記プロセッサに指示するようプログラムされた、請求項１３に記載のシステム。
【請求項１８】
前記保守モジュールは、前記追加の仮想マシンを最初にオンライン状態にするように前記プロセッサに指示するようプログラムされ、
前記参照モジュールは、前記追加の仮想マシンを最初にオンライン状態にすると同時に、前記追加の仮想マシンの前記ファイルに対して前記第２の分析を実行する代わりに、前記マスタ仮想マシン内の前記情報を参照するように前記追加の仮想マシンに指示するように前記プロセッサに指示するようプログラムされた、請求項１７に記載のシステム。
【請求項１９】
前記保守モジュールは、前記第１の分析の結果を使用することが可能なソフトウェアアプリケーションを前記追加の仮想マシンにインストールするように前記プロセッサに指示するようプログラムされ、
前記参照モジュールは、前記追加の仮想マシンの前記ファイルに対して前記第２の分析を実行する代わりに前記第１の分析の結果を使用するように前記ソフトウェアアプリケーションに指示するように前記プロセッサに指示するようプログラムされた、請求項１３に記載のシステム。
【請求項２０】
コンピューティングデバイスによって実行されると、前記コンピューティングデバイスに、
マスタ仮想マシンの少なくとも１つのファイルに対して第１の分析を実行させる、
前記第１の分析の少なくとも１つの結果を示す情報を前記マスタ仮想マシンに挿入させる、
前記マスタ仮想マシンに基づく少なくとも１つの追加の仮想マシンを保守させる、
前記追加の仮想マシンの少なくとも１つのファイルに対して第２の分析を実行する代わりに、前記マスタ仮想マシン内の前記情報を参照するように前記追加の仮想マシンに指示させる、
１つまたは複数のコンピュータ実行可能命令を含む、コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、仮想マシン間で分析の結果を共有するためのシステムおよび方法に関する。
【背景技術】
【０００２】
仮想マシンは、追加の仮想マシンを作成するためのテンプレートとして機能するマスタ仮想マシンに基づく場合が多い。言い換えれば、マスタ仮想マシンを使用して、マスタ仮想マシン内に位置する各ファイルのインスタンスを含む同様なまたは同一の仮想マシンを作成することができる。例えば、マスタ仮想マシンが実行可能ファイルＷＩＮＷＯＲＤ．ＥＸＥを含む場合、マスタ仮想マシンから導かれる各仮想マシンもまた、ＷＩＮＷＯＲＤ．ＥＸＥファイルのインスタンスを含み得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
マスタ仮想マシン内に位置する各ファイルのインスタンスを含むことに加えて、マスタ仮想マシンに基づく仮想マシンは、マスタ仮想マシンと同じ分析の１つまたは複数を実行するようプログラムすることができる。例えば、１０個の仮想マシンがマスタ仮想マシンから導かれている場合、これらの仮想マシンは、マスタ仮想マシンが既にＷＩＮＷＯＲＤ．ＥＸＥファイルに対して同じマルウェア分析を実行していたとしても、ＷＩＮＷＯＲＤ．ＥＸＥファイルのインスタンスに対して１０個の冗長なマルウェア分析を一括して実行するようプログラムすることができる。そのような冗長な分析は、貴重なコンピューティングリソースを消費する恐れがあり、その結果、システム性能が低下する。
【課題を解決するための手段】
【０００４】
以下でさらに詳細に説明されるように、本開示は、概して、仮想マシン間で分析の結果を共有するためのシステムおよび方法に関する。より具体的には、本明細書に記載されるシステムおよび方法は、仮想マシンが、同じ分析を冗長的に実行する代わりに、異なる仮想マシン上で実行された分析の少なくとも１つの結果を参照することを可能にすることができる。仮想マシン間で分析の結果を共有することによって、本明細書に記載されるシステムおよび方法は、冗長な分析を排除し、コンピューティングリソースを節約することができる。
【０００５】
ある実施形態では、仮想マシン間で分析の結果を共有するための方法は、マスタ仮想マシンの少なくとも１つのファイルに対して第１の分析（例えば、マルウェア分析、データ損失防止分析、コミュニティベースのレピュテーション分析、ファイルタイプ分析またはハッシュ分析）を実行する工程を含み得る。例えば、走査モジュールは、マスタ仮想マシン内に位置する実行可能ファイルＷＩＮＷＯＲＤ．ＥＸＥに対してマルウェア分析を実行することができる。走査モジュールは、マスタ仮想マシンがオフライン状態の間に（すなわち、マスタ仮想マシンが現時点においてホストマシン上で起動していなくとも）、マスタ仮想マシンのファイルに対して第１の分析を実行することができる。
【０００６】
マスタ仮想マシンがオフライン状態の間にファイルに対して第１の分析を実行するため、ホストマシンは、マスタ仮想マシンの外部の走査モジュールを実行することができる。例えば、マスタ仮想マシンが現時点においてホストマシン上で起動していなくとも、ＷＩＮＷＯＲＤ．ＥＸＥファイルに対してマルウェア分析を実行するため、ホストマシンは、マスタ仮想マシンの外部に走査モジュールを配備するアンチマルウェアソリューションを実行することができる。それに加えてまたはその代替として、マスタ仮想マシンがオンライン状態となった場合は、マスタ仮想マシン自体が、ファイルに対して第１の分析を実行するために走査モジュールを実行することができる。例えば、マスタ仮想マシンが現時点においてホストマシン上で起動している間に、マスタ仮想マシン自体が、ＷＩＮＷＯＲＤ．ＥＸＥファイルに対してマルウェア分析を実行するため、走査モジュールを配備するアンチマルウェアソリューションを実行することができる。
【０００７】
マスタ仮想マシンのファイルに対して第１の分析を実行すると、走査モジュールは、第１の分析の少なくとも１つの結果を示す情報をマスタ仮想マシンに挿入することができる。いくつかの実施形態では、この情報は、第１の分析の結果自体であり得る。例えば、ＷＩＮＷＯＲＤ．ＥＸＥファイルに対してマルウェア分析を実行すると、走査モジュールは、マスタ仮想マシン内に位置するデータベースにマルウェア分析の少なくとも１つの結果を格納することができる。
【０００８】
他の実施形態では、この情報は、マスタ仮想マシンの外部の第１の分析の結果を格納するデータベースへの参照であり得る。例えば、ＷＩＮＷＯＲＤ．ＥＸＥファイルに対してマルウェア分析を実行すると、走査モジュールは、マスタ仮想マシンの外部のマルウェア分析の少なくとも１つの結果を格納するデータベースを特定するユニフォームリソースロケータ（「ＵＲＬ」）をマスタ仮想マシンに挿入することができる。第１の分析の結果を格納するデータベースは、マスタ仮想マシン内に位置するかまたは外部に位置するかに関わらず、ファイルハッシュによってインデックスを付けることができる。それに加えて、このデータベースは、マスタ仮想マシンに基づく少なくとも１つの追加の仮想マシンに参照および／またはアクセスすることができる。
【０００９】
この追加の仮想マシンは、マスタ仮想マシン内に位置する各ファイルのインスタンスを含み得る。例えば、マスタ仮想マシンに基づく追加の仮想マシンは、マスタ仮想マシン上でマルウェア分析が行われた同じＷＩＮＷＯＲＤ．ＥＸＥファイルのインスタンスを含み得る。この追加の仮想マシンは、さまざまな理由で、ファイルに対して実行された第１の分析の結果を必要とする場合がある。しかし、追加の仮想マシンの少なくとも１つのファイルに対して第２の分析（例えば、第１の分析と同様なまたは同一の分析）を冗長的に実行する代わりに、参照モジュールは、第１の分析の結果にアクセスするため、マスタ仮想マシン内の情報を参照するように追加の仮想マシンに指示することができる。
【００１０】
例えば、追加の仮想マシン内に位置するＷＩＮＷＯＲＤ．ＥＸＥファイルのインスタンスに対して同じマルウェア分析を実行する代わりに、参照モジュールは、ＷＩＮＷＯＲＤ．ＥＸＥファイルに対して以前に実行されたマルウェア分析の結果にアクセスするため、マスタ仮想マシン内の情報を参照するように追加の仮想マシンに指示することができる。参照モジュールは、マスタ仮想マシン内の情報を参照するように追加の仮想マシンに指示するコンピュータ実行可能コードを実行するよう、追加の仮想マシンをプログラムすることができる。より具体的には、追加の仮想マシンが第１の分析の結果を必要とする場合、このコンピュータ実行可能コードは、実行時に、第１の分析の結果にアクセスするという要求を生成するように追加の仮想マシンに指示することができる。参照モジュールは、要求を受け取り、要求に応じて追加の仮想マシンにマスタ仮想マシン内の情報を提供することができる。
【００１１】
さまざまな実施形態では、保守モジュールは、マスタ仮想マシンに基づく追加の仮想マシンを保守することができる。保守モジュールは、第１の分析の結果を使用することが可能なソフトウェアアプリケーションを追加の仮想マシンにインストールすることができる。例えば、走査モジュールがＷＩＮＷＯＲＤ．ＥＸＥファイルに対してマルウェア分析を実行した後、保守モジュールは、ＷＩＮＷＯＲＤ．ＥＸＥファイルに対して実行されたマルウェア分析の結果を使用することが可能なアンチマルウェアソリューションを追加の仮想マシンにインストールすることができる。次いで、参照モジュールは、追加の仮想マシンのファイルに対して第２の分析を実行する代わりに第１の分析の結果を使用するようにアンチマルウェアソリューションに指示することができる。
【００１２】
いくつかの実施形態では、走査モジュールは、追加の仮想マシンが最初にオンライン状態となる前に、マスタ仮想マシンのファイルに対して第１の分析を実行することができる。例えば、走査モジュールは、追加の仮想マシンがオフライン状態の間にＷＩＮＷＯＲＤ．ＥＸＥファイルに対してマルウェア分析を実行することができ、いくつかの実施形態では、追加の仮想マシンは、このマルウェア分析が実行される前はオンライン状態ではない場合がある。そのような実施形態では、保守モジュールは、追加の仮想マシンを最初にオンライン状態にすることができる。追加の仮想マシンを最初にオンライン状態にした後、参照モジュールは、追加の仮想マシンのファイルに対して第２の分析を実行する代わりにマスタ仮想マシン内の情報を参照するように追加の仮想マシンに指示することができる。
【００１３】
少なくとも１つの実施形態では、走査モジュールは、追加の仮想マシンの少なくとも１つのファイルに対して追加分析を実行することができる。追加分析は第１の分析と異なり得、および／または、追加分析が行われた追加の仮想マシンのファイルは第１の分析が行われたマスタ仮想マシンのファイルと異なり得る。例えば、走査モジュールは、追加の仮想マシン内に位置するＷＩＮＷＯＲＤ．ＥＸＥファイルのインスタンスに対してデータ損失防止分析を実行することができる。別の例では、走査モジュールは、追加の仮想マシン内に位置する実行可能ファイルＥＸＣＥＬ．ＥＸＥに対してマルウェア分析を実行することができる。追加分析を実行すると、走査モジュールは、第１の分析の結果を格納するデータベースに追加分析の少なくとも１つの結果を追加することができる。
【００１４】
上述の実施形態のいずれかの特徴は、本明細書に記載される一般原理に従って互いに組み合わせて使用することができる。これらのおよび他の実施形態、特徴および利点は、添付の図面および特許請求の範囲と併せて以下の詳細な説明を読み進むに従ってより完全に理解されよう。
【図面の簡単な説明】
【００１５】
添付の図面は、いくつかの例示的な実施形態を示し、本明細書の一部である。以下の説明と併せて、これらの図面は、本開示のさまざまな原理を実証および説明する。
【００１６】
【図１】少なくとも１つの実施形態による、仮想マシン間で分析の結果を共有するための例示的なシステムのブロック図である。
【図２】少なくとも１つの実施形態による、仮想マシン間で分析の結果を共有するための別の例示的なシステムのブロック図である。
【図３】少なくとも１つの実施形態による、仮想マシン間で分析の結果を共有するための例示的な方法のフロー図である。
【図４】例示的なファイル属性データベースのブロック図である。
【図５】本明細書に記載されるおよび／または示される実施形態の１つまたは複数を実施することが可能な例示的なコンピューティングシステムのブロック図である。
【図６】本明細書に記載されるおよび／または示される実施形態の１つまたは複数を実施することが可能な例示的なコンピューティングネットワークのブロック図である。
【００１７】
図面全体を通して、同一の参照文字および説明は、同様な要素を示すが、必ずしも同一の要素である必要はない。本明細書に記載される例示的な実施形態はさまざまな変更形態および代替形態を取ることができるが、図面では特定の実施形態が一例として示されており、本明細書に詳細に記載される。しかし、本明細書に記載される例示的な実施形態は、開示される特定の形態に限定されることを意図しない。むしろ、本開示は、添付の特許請求の範囲の範囲内に収まるすべての変更形態、均等物および代替形態をカバーする。
【発明を実施するための形態】
【００１８】
以下でさらに詳細に説明されるように、本開示は、概して、仮想マシン間で分析の結果を共有するためのシステムおよび方法に関する。特に、本明細書に記載されるシステムおよび方法は、仮想マシンが、同じ分析を冗長的に実行する代わりに、異なる仮想マシン上で実行された分析の少なくとも１つの結果を参照することを可能にすることができる。また、本明細書に記載されるシステムおよび方法は、仮想マシンが、異なる仮想マシン上で既に分析が実行されたかどうかクエリを行うことなく、分析の結果を参照することを可能にすることができる。
【００１９】
仮想マシン間で分析の結果を共有することによって、本明細書に記載されるシステムおよび方法は、冗長な分析を排除し、コンピューティングリソースを節約することができる。また、本開示の実施形態は、他のさまざまな特徴および利点を提供することもできる。
【００２０】
語句「マスタ仮想マシン」は、本明細書で使用される場合、一般に、１つまたは複数の追加の仮想マシンを作成するためのテンプレートまたはベースとして使用される任意の仮想マシンおよび／または仮想マシンイメージを指す。本明細書に記載されるいくつかの実施形態では、語句「マスタ仮想マシン」は、ホストマシンが、１つまたは複数の追加の仮想マシンイメージを作成するためのテンプレートまたはベースとして使用されるマスタ仮想マシンイメージ（ゴールデンイメージとも呼ばれる）を実行する際、ホストマシン上で起動する仮想マシンを指す場合がある。
【００２１】
語句「追加の仮想マシン」は、本明細書で使用される場合、一般に、追加の仮想マシンを作成するためのテンプレートとして機能するマスタ仮想マシンに基づく任意の仮想マシンおよび／または仮想マシンイメージを指す。本明細書に記載されるいくつかの実施形態では、語句「追加の仮想マシン」は、ホストマシンが、マスタ仮想マシンイメージに基づく追加の仮想マシンイメージを実行する際、ホストマシン上で起動する仮想マシンを指す場合がある。
【００２２】
それに加えて、本開示を通して、いくつかの例を使用して、本明細書に記載されるシステムおよび方法に関連する要素（第１の分析またはファイルなど）の特定の実施形態を示す。しかし、そのような例はほんの一例にすぎず、本明細書に記載されない他のさまざまな例もまた、これらのシステムおよび方法と併せて使用することができる。例えば、本開示を通して、例示的な実行可能ファイルＷＩＮＷＯＲＤ．ＥＸＥを使用して、マスタ仮想マシン上で第１の分析（例えば、マルウェア分析）が行われるファイルを示すが、他の任意のファイルもまた、マスタ仮想マシン上でこの第１の分析が行われ得る。以下は、図１、２および４を参照して、仮想マシン間で分析の結果を共有するための例示的なシステムの詳細な説明を提供する。対応するコンピュータ実装方法の詳細な説明もまた、図３と関連して提供する。それに加えて、本明細書に記載される実施形態の１つまたは複数を実施することが可能な例示的なコンピューティングシステムおよびネットワークアーキテクチャの詳細な説明をそれぞれ、図５および６と関連して提供する。
【００２３】
図１は、仮想マシン間で分析の結果を共有するための例示的なシステム１００のブロック図である。この図で示されるように、例示的なシステム１００は、１つまたは複数のタスクを実行するための１つまたは複数のモジュール１０２を含み得る。例えば、以下でさらに詳細に説明されるように、例示的なシステム１００は、マスタ仮想マシンの少なくとも１つのファイルに対して第１の分析を実行するようプログラムされた走査モジュール１０４を含み得る。また、走査モジュール１０４は、第１の分析の少なくとも１つの結果を示す情報をマスタ仮想マシンに挿入するようプログラムすることができる。
【００２４】
それに加えて、以下でさらに詳細に説明されるように、例示的なシステム１００は、マスタ仮想マシンに基づく少なくとも１つの追加の仮想マシンを保守するようプログラムされた保守モジュール１０６を含み得る。また、例示的なシステム１００は、追加の仮想マシンの少なくとも１つのファイルに対して第２の分析を実行する代わりに、マスタ仮想マシン内の情報を参照するように追加の仮想マシンに指示するようプログラムされた参照モジュール１０８を含み得る。別々の要素として示されているが、図１のモジュール１０２の１つまたは複数は、単一のモジュールまたはアプリケーションの複数の部分を表す場合がある。
【００２５】
ある実施形態では、図１のモジュール１０２の１つまたは複数は、コンピューティングデバイスによって実行されると、コンピューティングデバイスに１つまたは複数のタスクを実行させることができる１つまたは複数のソフトウェアアプリケーションまたはプログラムを表す場合がある。例えば、以下でさらに詳細に説明されるように、モジュール１０２の１つまたは複数は、図２に示されるデバイス（例えば、マスタ仮想マシン２０２および追加の仮想マシン２０４（１）〜（Ｎ））、図５のコンピューティングシステム５１０、および／または、図６の例示的なネットワークアーキテクチャ６００の複数の部分など、１つまたは複数のコンピューティングデバイス上で格納されて起動するよう構成されたソフトウェアモジュールを表す場合がある。また、図１のモジュール１０２の１つまたは複数は、１つまたは複数のタスクを実行するよう構成された１つまたは複数の専用コンピュータのすべてまたは複数の部分を表す場合もある。
【００２６】
また、図１で示されるように、例示的なシステム１００は、ファイル属性データベース１２０も含み得る。一実施形態では、以下でさらに詳細に説明されるように、ファイル属性データベース１２０は、ファイルハッシュ１２２およびファイル属性情報１２４を格納するよう構成することができる。ファイルハッシュ１２２を使用して、図２のマスタ仮想マシン２０２および／または追加の仮想マシン２０４（１）〜（Ｎ）内に位置するファイルを特定することができ、ファイル属性情報１２４は、そのようなファイルに対して実行された分析の１つまたは複数の結果を含み得る。ファイル属性データベース１２０は、単一のデータベースもしくはコンピューティングデバイスまたは複数のデータベースもしくはコンピューティングデバイスの複数の部分を表す場合がある。
【００２７】
例えば、ファイル属性データベース１２０は、図２のマスタローカルストア２１４、ローカルストア２１６（１）〜（Ｎ）および／もしくは共有ストア２２０の一部分、図５のコンピューティングシステム５１０、ならびに／または、図６の例示的なネットワークアーキテクチャ６００の複数の部分を表す場合がある。あるいは、図１のファイル属性データベース１２０は、図２のマスタ仮想マシン２０２および／もしくは追加の仮想マシン２０４（１）〜（Ｎ）、図５のコンピューティングシステム５１０、ならびに／または、図６の例示的なネットワークアーキテクチャ６００の複数の部分など、コンピューティングデバイスによってアクセスすることが可能な１つまたは複数の物理的な個別のデバイスを表す場合がある。
【００２８】
図１の例示的なシステム１００は、さまざまな方法で配備することができる。一例では、例示的なシステム１００のすべてまたは一部分は、図２の例示的なホストマシン２００の複数の部分を表す場合がある。図２に示されるように、ホストマシン２００は、仮想化層２０６を介してハードウェア２１０と連通するマスタ仮想マシン２０２および複数の追加の仮想マシン２０４（１）〜（Ｎ）を含み得る。一実施形態では、以下でさらに詳細に説明されるように、図１のモジュール１０２は、マスタ仮想マシンの少なくとも１つのファイルに対して分析を実行するよう、ホストマシン２００および／またはマスタ仮想マシン２０２をプログラムすることができる。
【００２９】
それに加えて、モジュール１０２は、第１の分析の少なくとも１つの結果を示す情報をマスタ仮想マシン２０２に挿入するよう、ホストマシン２００の１つまたは複数の部分をプログラムすることができる。また、モジュール１０２は、１つまたは複数の追加の仮想マシン２０４（１）〜（Ｎ）を保守し、追加の仮想マシン２０４（１）〜（Ｎ）の少なくとも１つのファイルに対して第２の分析を実行する代わりに、マスタ仮想マシン２０２内の情報を参照するように追加の仮想マシン２０４（１）〜（Ｎ）に指示するよう、ホストマシン２００の１つまたは複数の部分をプログラムすることもできる。
【００３０】
一般に、ホストマシン２００は、１つまたは複数の仮想マシンをホスティングすることが可能な任意のタイプまたは形式の物理的なコンピューティングデバイスを表す。ホストマシン２００の例としては、これらに限定されないが、ラップトップ、デスクトップ、サーバ、携帯電話、携帯情報端末（ＰＤＡ）、マルチメディアプレーヤー、組込みシステム、これらの１つもしくは複数の組合せ、図５の例示的なコンピューティングシステム５１０または任意の他の適切なコンピューティングデバイスが挙げられる。
【００３１】
一般に、マスタ仮想マシン２０２は、コンピュータ実行可能命令を読み取ることが可能な任意のタイプまたは形式の仮想化またはエミュレート化されたコンピューティングマシンを表し、１つまたは複数の追加の仮想マシンを作成するためのテンプレートとして機能する。マスタ仮想マシン２０２の例としては、これらに限定されないが、システム仮想マシン、プロセス仮想マシンまたは任意の他の適切な仮想化もしくはエミュレート化コンピューティングデバイスが挙げられる。図２で示される例では、マスタ仮想マシン２０２は、仮想化層２０６を介してホストマシン２００の根本的なハードウェア２１０にアクセスすることができ、ホストマシン２００のコンピューティングリソースを抽象化および管理することができる。
【００３２】
一般に、追加の仮想マシン２０４（１）〜（Ｎ）は、マスタ仮想マシン２０２に基づき、コンピュータ実行可能命令を読み取ることが可能な任意のタイプまたは形式の仮想化またはエミュレート化されたコンピューティングマシンを表す。追加の仮想マシン２０４（１）〜（Ｎ）の例としては、これらに限定されないが、システム仮想マシン、プロセス仮想マシンまたは任意の他の適切な仮想化もしくはエミュレート化コンピューティングデバイスが挙げられる。図２で示される例では、追加の仮想マシン２０４（１）〜（Ｎ）は、仮想化層２０６を介してホストマシン２００の根本的なハードウェア２１０にアクセスすることができ、ホストマシン２００のコンピューティングリソースを抽象化および管理するようプログラムされたハイパーバイザおよび／または任意の他の仮想化ソフトウェアを含み得る。
【００３３】
図２で示されるように、ハードウェア２１０は、他の要素としては、少なくとも１つの記憶装置２１２を含み得る。いくつかの実施形態では、仮想化層２０６は、マスタ仮想マシン２０２に対するマスタローカルストア２１４、および、追加の仮想マシン２０４（１）〜（Ｎ）それぞれに対する複数のローカルストア２１６（１）〜（Ｎ）にハードウェア２１０を抽象化することができる。このため、マスタローカルストア２１４は、マスタ仮想マシン２０２の一部のように見える場合があり、ローカルストア２１６（１）〜（Ｎ）は、追加の仮想マシン２０４（１）〜（Ｎ）の一部のように見える場合がある。以下でさらに詳細に説明されるように、マスタローカルストア２１４およびローカルストア２１６（１）〜（Ｎ）を使用して、ファイルハッシュ１２２およびファイル属性情報１２４を含むファイル属性データベース１２０を格納することができる。
【００３４】
一般に、共有ストア２２０は、マスタ仮想マシン２０２および／または追加の仮想マシン２０４（１）〜（Ｎ）によって共有またはアクセスされ得るホストマシン２００内に位置する任意のタイプまたは形式の物理的なまたは仮想化されたストレージを表す。マスタローカルストア２１４およびローカルストア２１６（１）〜（Ｎ）とは異なり、共有ストア２２０は、マスタ仮想マシン２０２および追加の仮想マシン２０４（１）〜（Ｎ）とは別々のように見える場合がある。しかし、マスタローカルストア２１４およびローカルストア２１６（１）〜（Ｎ）と同様に、共有ストア２２０を使用して、ファイルハッシュ１２２およびファイル属性情報１２４を含むファイル属性データベース１２０を格納することができる。
【００３５】
図２は、共有ストア２２０がマスタ仮想マシン２０２および追加の仮想マシン２０４（１）〜（Ｎ）と同じシステム上に位置していることを示すが、他の実施形態では、共有ストア２２０は、別々のシステム上に位置する場合がある。例えば、共有ストア２２０は、ネットワーク（例えば、インターネット、ローカルエリアネットワーク、広域ネットワークなど）上でマスタ仮想マシン２０２および追加の仮想マシン２０４（１）〜（Ｎ）がアクセス可能なリモート記憶装置上に位置する場合がある。
【００３６】
マスタローカルストア２１４、ローカルストア２１６（１）〜（Ｎ）および／または共有ストア２２０は、ファイル属性データベース（図１および４のファイル属性データベース１２０など）を含み得る。いくつかの例では、このファイル属性データベースには、ファイルのハッシュ、ファイルに対して実行された分析の少なくとも１つの結果（マルウェア分析中にファイルに割り当てられた分類など）、分析の結果に対する少なくとも１つの論理的根拠、分析の実行に使用された少なくとも１つのセットのパラメータ（ウイルス定義セットまたはヒューリスティックなど）、分析が実行された日付、および／または、仮想マシン間で共有できる任意の他の潜在的に有用な情報が入っている場合がある。
【００３７】
図３は、仮想マシン間で分析の結果を共有するための例示的なコンピュータ実装方法３００のフロー図である。図３で示される工程は、任意の適切なコンピュータ実行可能コードおよび／またはコンピューティングシステムによって実行することができる。いくつかの実施形態では、図３で示される工程は、図１のシステム１００および／または図２のホストマシン２００の１つまたは複数のコンポーネントによって実行することができる。例えば、工程３０２では、走査モジュール１０４は、ホストマシン２００の一部として、マスタ仮想マシン２０２の少なくとも１つのファイルに対して第１の分析を実行することができる。
【００３８】
工程３０２は、さまざまな方法で実行することができる。少なくとも１つの実施形態では、走査モジュール１０４は、マスタ仮想マシン２０２がオフライン状態の間に、ファイルに対して第１の分析を実行することができる。例えば、走査モジュール１０４は、マスタ仮想マシン２０２が現時点においてホストマシン２００上で起動していなくとも、マスタ仮想マシン２０２内に位置する実行可能ファイルＷＩＮＷＯＲＤ．ＥＸＥファイルに対してマルウェア分析を実行することができる。また、走査モジュール１０４は、マスタ仮想マシン２０２が最初にオンライン状態となる前であっても、マスタ仮想マシン２０２上で第１の分析を実行することができる。この例では、走査モジュール１０４は、マスタ仮想マシン２０２の作成直後に、マスタ仮想マシン２０２のＷＩＮＷＯＲＤ．ＥＸＥファイルに対してマルウェア分析を実行することができる。
【００３９】
マスタ仮想マシン２０２がオフライン状態の間にファイルに対して第１の分析を実行するため、ホストマシン２００は、マスタ仮想マシン２０２の外部の走査モジュール１０４を実行することができる。例えば、マスタ仮想マシン２０２が現時点においてホストマシン２００上で起動していなくとも、ＷＩＮＷＯＲＤ．ＥＸＥファイルに対してマルウェア分析を実行するため、ホストマシン２００は、マスタ仮想マシン２０２の外部に走査モジュール１０４を配備するアンチマルウェアソリューションを実行することができる。それに加えてまたはその代替として、マスタ仮想マシンがオンライン状態となった場合は、マスタ仮想マシン２０２自体が、ファイルに対して第１の分析を実行するために走査モジュール１０４を実行することができる。例えば、マスタ仮想マシン２０２が現時点においてホストマシン２００上で起動している間に、マスタ仮想マシン２０２自体が、ＷＩＮＷＯＲＤ．ＥＸＥファイルに対してマルウェア分析を実行するため、走査モジュール１０４を配備するアンチマルウェアソリューションを実行することができる。
【００４０】
第１の分析は、さまざまなコンピュータベースの分析のいずれかであり得る。ファイルに対して第１の分析を実行する工程の例としては、これらに限定されないが、ファイルに対してマルウェア分析を実行する工程、ファイルに対してデータ損失防止分析を実行する工程、ファイルに対してファイルタイプ分析を実行する工程、ファイルのハッシュ値を計算する工程、および／または、ファイルに対して任意の他の適切な分析を実行する工程が挙げられる。
【００４１】
図３の工程３０４では、走査モジュール１０４は、第１の分析の少なくとも１つの結果を示す情報をマスタ仮想マシン２０２に挿入することができる。工程３０４は、さまざまな方法で実行することができる。ある実施形態では、走査モジュール１０４は、マスタ仮想マシン２０２のファイルに対して実行された第１の分析の結果をマスタ仮想マシン２０２に挿入することができる。言い換えれば、第１の分析の結果を示すこの情報は、第１の分析の結果であり得る。
【００４２】
走査モジュール１０４は、マスタ仮想マシン２０２内に位置するデータベースに第１の分析の結果を格納することができる。例えば、ＷＩＮＷＯＲＤ．ＥＸＥファイルに対してマルウェア分析を実行すると、走査モジュール１０４は、マスタ仮想マシン２０２のマスタローカルストア２１４内に位置するファイル属性データベース１２０にマルウェア分析の結果（ＷＩＮＷＯＲＤ．ＥＸＥファイルに割り当てられた分類など）を格納することができる。この例では、仮想化層２０６は、マスタローカルストア２１４をマスタ仮想マシン２０２の一部のように見えるように抽象化することができ、ファイル属性データベース１２０をマスタ仮想マシン２０２内に効果的に格納することができる。
【００４３】
いくつかの実施形態では、第１の分析の結果をマスタ仮想マシン２０２に挿入するよりもむしろ、走査モジュール１０４は、マスタ仮想マシン２０２の外部の第１の分析の結果を格納するデータベースへの参照をマスタ仮想マシン２０２に挿入することができる。言い換えれば、第１の分析の結果を示す情報は、マスタ仮想マシン２０２の外部の第１の分析の結果を格納するデータベースへの参照であり得る。例えば、ＷＩＮＷＯＲＤ．ＥＸＥファイルに対してマルウェア分析を実行すると、走査モジュール１０４は、共有ストア２２０内に位置し、かつ、マスタ仮想マシン２０２の外部のファイル属性データベース１２０にマルウェア分析の結果（ＷＩＮＷＯＲＤ．ＥＸＥファイルに割り当てられた分類など）を格納することができる。この例では、走査モジュール１０４は、次いで、共有ストア２２０内に位置するファイル属性データベース１２０を特定し、同ファイル属性データベース１２０へのアクセスを容易にするＵＲＬを、マスタ仮想マシン２０２に挿入することができる。
【００４４】
第１の分析の結果を格納するデータベース（例えば、ファイル属性データベース１２０）は、マスタ仮想マシン２０２内に位置するかまたは外部に位置するかに関わらず、ファイルハッシュ１２２によってインデックスを付けることができる。例えば、ファイルハッシュ１２２内のファイルハッシュ「０ｘ９８ＢＡＤ７４８」は、ＷＩＮＷＯＲＤ．ＥＸＥファイルを表す場合があり、ＷＩＮＷＯＲＤ．ＥＸＥファイルに対して実行されたマルウェア分析の結果は、ファイル属性データベース１２０内で「０ｘ９８ＢＡＤ７４８」ハッシュを位置付けることによって特定することができる。ファイルハッシュ１２２は、ホストマシン２００上で起動しているさまざまな仮想マシン（例えば、マスタ仮想マシン２０２および／または追加の仮想マシン２０４（１）〜（Ｎ））がアクセスすることも使用することもできる。ファイルハッシュ１２２は、そのような仮想マシンが、ファイル属性データベース１２０内で第１の分析の結果を位置付けることを可能にすることができる。
【００４５】
少なくとも１つの実施形態では、走査モジュール１０４は、最初にファイルに遭遇する際に、ファイルのハッシュを作成することができる。そのため、ファイルがマスタ仮想マシン２０２および／または１つもしくは複数の追加の仮想マシン２０４内に位置するかどうかに関わらず、走査モジュール１０４が次の回に異なる仮想マシン上で同じファイルの異なるインスタンスに遭遇し得る場合であっても、走査モジュール１０４は、単回でファイルのハッシュを作成することができる。例えば、走査モジュール１０４は、マスタ仮想マシン２０２上で最初にＷＩＮＷＯＲＤ．ＥＸＥファイルに遭遇すると同時に「０ｘ９８ＢＡＤ７４８」ハッシュを作成することができ、次いで、「０ｘ９８ＢＡＤ７４８」ハッシュをファイルハッシュ１２２内に含めることができる。この例では、図２の追加の仮想マシン２０４（１）〜（Ｎ）もまた、２回目にＷＩＮＷＯＲＤ．ＥＸＥファイルに遭遇すると同時に「０ｘ９８ＢＡＤ７４８」ハッシュの別のインスタンスを作成する代わりに、ファイルハッシュ１２２内の「０ｘ９８ＢＡＤ７４８」ハッシュにアクセスして、ファイル属性データベース１２０内でマルウェア分析の結果を位置付けることができる。
【００４６】
ファイルハッシュ１２２へのアクセスを有する追加の仮想マシン２０４（１）〜（Ｎ）を提供するため、走査モジュール１０４は、ローカルストア２１６（１）〜（Ｎ）または共有ストア２２０のキャッシュにファイルハッシュ１２２のコピーを格納することができる。例えば、ローカルストア２１６（１）〜（Ｎ）のそれぞれは、キャッシュに格納されたファイルハッシュ１２２のコピーを含み得、追加の仮想マシン２０４（１）〜（Ｎ）のそれぞれは、「０ｘ９８ＢＡＤ７４８」ハッシュのコピーを使用して、ファイル属性情報１２４内でＷＩＮＷＯＲＤ．ＥＸＥファイルに対して実行されたマルウェア分析の結果を位置付けることができる。そのようなキャッシュに格納されたファイルハッシュ１２２のコピーは、走査モジュール１０４が以前にハッシュされたファイルに遭遇する度にファイルハッシュの冗長なインスタンスを作成することなく、追加の仮想マシン２０４（１）〜（Ｎ）がファイル属性データベース１２０内で第１の分析の結果を位置付けることを可能にすることができる。
【００４７】
追加の仮想マシン２０４（１）〜（Ｎ）の作成前にファイルハッシュ１２２が既存している場合、追加の仮想マシン２０４（１）〜（Ｎ）のそれぞれの作成時に、追加の仮想マシン２０４（１）〜（Ｎ）のそれぞれにファイルハッシュ１２２のコピーを含めることができる。例えば、ファイルハッシュ１２２がマスタ仮想マシン２０２に含まれている場合、追加の仮想マシン２０４（１）〜（Ｎ）のそれぞれの作成時に、追加の仮想マシン２０４（１）〜（Ｎ）のそれぞれにファイルハッシュ１２２を含めることができる。ファイルハッシュ１２２は、マスタ仮想マシン２０２内に位置するファイルを表す場合があり、マスタ仮想マシン２０２内に位置するファイルのインスタンスとともに、追加の仮想マシン２０４（１）〜（Ｎ）のそれぞれにこれらのファイルハッシュ１２２のコピーを含めることができる。
【００４８】
図３の工程３０６では、保守モジュール１０６は、マスタ仮想マシン２０２に基づく追加の仮想マシン２０４（１）〜（Ｎ）の少なくとも１つ（例えば、追加の仮想マシン２０４（１））を保守することができる。追加の仮想マシン２０４（１）は、マスタ仮想マシン２０２内に位置する各ファイルのインスタンスを含み得る。例えば、保守モジュール１０６は、追加の仮想マシン２０４（１）を保守することができ、追加の仮想マシン２０４（１）は、マスタ仮想マシン２０２に基づき、マスタ仮想マシン２０２上でマルウェア分析が行われた同じＷＩＮＷＯＲＤ．ＥＸＥファイルのインスタンスを含む。
【００４９】
ある実施形態では、保守モジュール１０６は、ベースイメージとしてマスタ仮想マシン２０２を使用して追加の仮想マシン２０４（１）とマスタ仮想マシン２０２との違いのみを格納する差分仮想マシンとして、追加の仮想マシン２０４（１）を保守することができる。例えば、保守モジュール１０６は、マスタ仮想マシン２０２に含まれていない１つまたは複数の追加ファイル、ソフトウェアアプリケーションおよび／またはデータを含めるように追加の仮想マシン２０４（１）を修正することができる。この例では、保守モジュール１０６は、これらの違い（すなわち、追加ファイル、ソフトウェアアプリケーションおよび／またはデータ）を追加の仮想マシン２０４（１）に付随するローカルストア２１６（１）に格納することができる。
【００５０】
他の実施形態では、保守モジュール１０６は、マスタ仮想マシン２０２と同一のクローン仮想マシンとして、追加の仮想マシン２０４（１）を保守することができる。言い換えれば、保守モジュール１０６は、マスタ仮想マシン２０２に含まれるそれらのファイル、ソフトウェアアプリケーションおよび／またはデータのみを追加の仮想マシン２０４（１）に組み込むことができる。保守モジュール１０６は、追加の仮想マシン２０４（１）に関連するファイル、ソフトウェアアプリケーションおよび／またはデータの１つまたは複数をローカルストア２１６（１）または共有ストア２２０に格納することができる。それに加えてまたはその代替として、保守モジュール１０６は、マスタローカルストア２１４内のこれらのファイル、ソフトウェアアプリケーションおよび／またはデータの１つまたは複数を参照することができる。
【００５１】
図３の工程３０８では、参照モジュール１０８は、追加の仮想マシン２０４（１）の少なくとも１つのファイル（例えば、マスタ仮想マシン２０２のファイルと同様なまたは同一のファイル）に対して第２の分析（例えば、第１の分析と同様なまたは同一の分析）を実行する代わりに、マスタ仮想マシン２０２内の情報を参照するように追加の仮想マシン２０４（１）に指示することができる。言い換えれば、追加の仮想マシン２０４（１）は、走査モジュール１０４を配備して追加の仮想マシン２０４（１）内に位置する同じファイルの異なるインスタンスに対して同様なまたは同一の分析を実行する代わりに、マスタ仮想マシン２０２内に位置するファイルに対して実行された第１の分析の結果を使用することができる。例えば、追加の仮想マシン２０４（１）内に位置するＷＩＮＷＯＲＤ．ＥＸＥファイルのインスタンスに対して同じマルウェア分析を実行する代わりに、参照モジュール１０８は、ＷＩＮＷＯＲＤ．ＥＸＥファイルに対して以前に実行されたマルウェア分析の結果にアクセスするため、マスタ仮想マシン２０２内の情報を参照するように追加の仮想マシン２０４（１）に指示することができる。
【００５２】
参照モジュール１０８は、マスタ仮想マシン内２０２の情報を参照するように追加の仮想マシン２０４（１）に指示するコンピュータ実行可能コードを実行するよう、追加の仮想マシン２０４（１）をプログラムすることができる。いくつかの実施形態では、このコンピュータ実行可能コードは、追加の仮想マシン２０４（１）に関連するソフトウェアアプリケーション（例えば、アンチマルウェアソリューション）用のプラグインであり得る。他の実施形態では、このコンピュータ実行可能コードは、マスタ仮想マシン２０２内の情報を参照するように追加の仮想マシン２０４（１）に指示する独立したソフトウェアアプリケーションであり得る。
【００５３】
追加の仮想マシン２０４（１）が第１の分析の結果を必要とする場合、このコンピュータ実行可能コードは、実行時に、第１の分析の結果にアクセスするという要求を生成するように追加の仮想マシン２０４（１）に指示することができる。例えば、参照モジュール１０８は、アンチマルウェアソリューションがマルウェア分析の結果の使用または評価を必要とする場合は常に、ＷＩＮＷＯＲＤ．ＥＸＥファイルに対して実行されたマルウェア分析の結果にアクセスするという要求を生成するようにアンチマルウェアソリューションに指示するコンピュータ実行可能コードを追加の仮想マシン２０４（１）に挿入することができる。次いで、参照モジュール１０８は、要求を受け取り、要求に応じてマスタ仮想マシン２０２内の情報を提供することができる。
【００５４】
ある実施形態では、走査モジュール１０４は、追加の仮想マシン２０４（１）が最初にオンライン状態となる前に、マスタ仮想マシン２０２のファイルに対して第１の分析を実行することができる。例えば、走査モジュール１０４は、追加の仮想マシン２０４（１）がオフライン状態の間にＷＩＮＷＯＲＤ．ＥＸＥファイルに対してマルウェア分析を実行することができ、追加の仮想マシン２０４（１）は、このマルウェア分析が実行される前はオンライン状態ではない場合がある。次いで、保守モジュール１０６は、追加の仮想マシン２０４（１）を最初にオンライン状態にすることができる。追加の仮想マシン２０４（１）を最初にオンライン状態にした後、参照モジュール１０８は、追加の仮想マシン２０４（１）のファイルに対して第２の分析を実行する代わりにマスタ仮想マシン２０２内の情報を速やかに参照するように追加の仮想マシンに指示することができる。
【００５５】
１つまたは複数の実施形態では、保守モジュール１０６は、第１の分析の結果を使用することが可能なソフトウェアアプリケーションを追加の仮想マシン２０４（１）にインストールすることによって、追加の仮想マシン２０４（１）を保守することができる。例えば、走査モジュール１０４がＷＩＮＷＯＲＤ．ＥＸＥファイルに対してマルウェア分析を実行した後、保守モジュール１０６は、ＷＩＮＷＯＲＤ．ＥＸＥファイルに対して実行されたマルウェア分析の結果を使用することが可能なアンチマルウェアソリューションを追加の仮想マシン２０４（１）にインストールすることができる。次いで、参照モジュール１０８は、追加の仮想マシン２０４（１）のファイルに対して第２の分析を実行する代わりに第１の分析の結果を使用するようにソフトウェアアプリケーションに指示することができる。
【００５６】
図３の工程３０８の完了と同時に例示的な方法３００を終了することができる。しかし、図３には示されていないが、例示的な方法は、１つまたは複数の追加の工程を含み得る。さまざまな実施形態では、走査モジュール１０４は、追加の仮想マシン２０４（１）の少なくとも１つのファイルに対して追加分析を実行することができる。
【００５７】
追加分析は第１の分析と異なり得、および／または、追加分析が行われた追加の仮想マシン２０４（１）のファイルは第１の分析が行われたマスタ仮想マシン２０２のファイルと異なり得る。例えば、走査モジュール１０４は、追加の仮想マシン２０４（１）内に位置するＷＩＮＷＯＲＤ．ＥＸＥファイルのインスタンスに対してデータ損失防止分析を実行することができる。別の例では、走査モジュール１０４は、追加の仮想マシン２０４（１）内に位置する実行可能ファイルＥＸＣＥＬ．ＥＸＥに対してマルウェア分析を実行することができる。追加分析を実行すると、走査モジュール１０４は、第１の分析の結果を格納するファイル属性データベース１２０に追加分析の少なくとも１つの結果を追加することができる。
【００５８】
第１の分析の結果を格納するデータベースがマスタ仮想マシン２０２の外部に位置するそれらの実施形態では、走査モジュール１０４は、追加の仮想マシン２０４（１）の作成後であっても、データベースに第１の分析の結果を挿入することができる。言い換えれば、マスタ仮想マシン２０２に挿入された参照が、マスタ仮想マシン２０２の外部の第１の分析の結果を格納するデータベースを特定すると、追加の仮想マシン２０４（１）がマスタ仮想マシン２０２から作成された後に、走査モジュール１０４は、依然として、分析の結果を用いてデータベースを更新することができる。例えば、第１の分析がＷＩＮＷＯＲＤ．ＥＸＥファイルに対して実行されたコミュニティベースのレピュテーション分析であれば、走査モジュール１０４は、マスタ仮想マシン２０２に基づく追加の仮想マシン２０４（１）の作成後であっても、依然として、第１の分析の結果を更新する（すなわち、ＷＩＮＷＯＲＤ．ＥＸＥファイルのコミュニティベースのレピュテーションを更新する）ことができる。
【００５９】
図４は、上記で詳細に説明されるように、図２のマスタローカルストア２１４および／または共有ストア２２０の一部分を表し得る、例示的なファイル属性データベース１２０のブロック図である。図４で示されるように、ファイル属性データベース１２０には、複数のファイルのそれぞれに対して、ファイルのハッシュ、ファイルの最近のスキャンの日付、ファイルの最近のスキャン中に使用されたウイルス定義セット、スキャン中にファイルに割り当てられた分類、スキャン中にファイルに割り当てられた分類に対する少なくとも１つの論理的根拠、および、ファイルに対するコミュニティベースのレピュテーション情報を特定する情報が入っている場合がある。
【００６０】
いくつかの例では、追加の仮想マシン２０４（１）は、特定のファイルのファイル属性情報１２４を取り込むため、マスタローカルストア２１４および／または共有ストア２２０内のファイル属性データベース１２０にアクセスすることができる。例えば、図１の参照モジュール１０８は、ＷＩＮＷＯＲＤ．ＥＸＥを表す「０ｘ９８ＢＡＤ７４８」ハッシュに関連するファイル属性情報１２４を取り込むため、図２の追加の仮想マシン２０４（１）の一部として、ファイル属性データベース１２０が入っている共有ストア２２０にアクセスすることができる。ファイル属性データベース１２０はファイル属性情報１２４を含むため、追加の仮想マシン２０４（１）は、第１の分析の結果と同様なまたは同一の少なくとも１つの結果を生成するファイルに対して分析を実行する代わりに、ファイルのファイル属性情報１２４を取り込むことができる。
【００６１】
図５は、本明細書に記載されるおよび／または示される実施形態の１つまたは複数を実施することが可能な例示的なコンピューティングシステム５１０のブロック図である。コンピューティングシステム５１０は、コンピュータ可読命令を実行することが可能な任意のシングルまたはマルチプロセッサコンピューティングデバイスまたはシステムを幅広く表す。コンピューティングシステム５１０の例としては、これらに限定されないが、ワークステーション、ラップトップ、クライアント側端末、サーバ、分配されたコンピューティングシステム、ハンドヘルドデバイスまたは任意の他のコンピューティングシステムもしくはデバイスが挙げられる。その最も基本的な構成では、コンピューティングシステム５１０は、少なくとも１つのプロセッサ５１４およびシステムメモリ５１６を含み得る。
【００６２】
一般に、プロセッサ５１４は、データの処理または命令の解釈および実行が可能な任意のタイプまたは形式の処理ユニットを表す。ある実施形態では、プロセッサ５１４は、ソフトウェアアプリケーションまたはモジュールから命令を受け取ることができる。これらの命令は、本明細書に記載されるおよび／または示される例示的な実施形態の１つまたは複数の機能をプロセッサ５１４に実行させることができる。例えば、プロセッサ５１４は、単独でまたは他の要素と組み合わせて、本明細書に記載される実行、挿入、保守、指示、格納、追加、プログラミング、持ち込み、受け取り、提供、インストールおよびハッシング工程の１つもしくは複数を実行することができる、および／または、実行する手段となり得る。また、プロセッサ５１４は、本明細書に記載されるおよび／または示される任意の他の工程、方法またはプロセスを実行することもできる、および／または、実行する手段ともなり得る。
【００６３】
一般に、システムメモリ５１６は、データおよび／またはコンピュータ可読命令を格納することが可能な任意のタイプまたは形式の揮発性または不揮発性記憶装置または媒体を表す。システムメモリ５１６の例としては、これらに限定されないが、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリまたは任意の他の適切なメモリデバイスが挙げられる。必須ではないが、ある実施形態では、コンピューティングシステム５１０は、揮発性メモリユニット（例えば、システムメモリ５１６など）と不揮発性記憶装置（例えば、以下で詳細に説明される一次記憶装置５３２など）の両方を含み得る。一例では、図１のモジュール１０２の１つまたは複数は、システムメモリ５１６にロードされ得る。
【００６４】
また、ある実施形態では、例示的なコンピューティングシステム５１０は、プロセッサ５１４およびシステムメモリ５１６に加えて、１つまたは複数のコンポーネントまたは要素も含み得る。例えば、図５で示されるように、コンピューティングシステム５１０は、メモリコントローラ５１８、入出力（Ｉ／Ｏ）コントローラ５２０および通信インターフェース５２２を含み得、そのそれぞれは、通信インフラ５１２を介して相互接続され得る。一般に、通信インフラ５１２は、コンピューティングデバイスの１つまたは複数のコンポーネント間の通信を容易にすることが可能な任意のタイプまたは形式のインフラを表す。通信インフラ５１２の例としては、これらに限定されないが、通信バス（ＩＳＡ、ＰＣＩ、ＰＣＩｅまたは同様のバスなど）およびネットワークが挙げられる。
【００６５】
一般に、メモリコントローラ５１８は、メモリもしくはデータを取り扱うまたはコンピューティングシステム５１０の１つもしくは複数のコンポーネント間の通信を制御することが可能な任意のタイプまたは形式のデバイスを表す。例えば、ある実施形態では、メモリコントローラ５１８は、通信インフラ５１２を介してプロセッサ５１４、システムメモリ５１６およびＩ／Ｏコントローラ５２０間の通信を制御することができる。ある実施形態では、メモリコントローラ５１８は、単独でまたは他の要素と組み合わせて、本明細書に記載されるおよび／または示される実行、挿入、保守、指示、格納、追加、プログラミング、持ち込み、受け取り、提供、インストールおよびハッシングなどの工程または特徴の１つもしくは複数を実行することができる、および／または、実行する手段となり得る。
【００６６】
一般に、Ｉ／Ｏコントローラ５２０は、コンピューティングデバイスの入出力機能を調整および／または制御することが可能な任意のタイプまたは形式のモジュールを表す。例えば、ある実施形態では、Ｉ／Ｏコントローラ５２０は、プロセッサ５１４、システムメモリ５１６、通信インターフェース５２２、ディスプレイアダプタ５２６、入力インターフェース５３０およびストレージインターフェース５３４などのコンピューティングシステム５１０の１つまたは複数の要素間のデータ転送を制御するかまたは容易にすることができる。Ｉ／Ｏコントローラ５２０は、例えば、単独でまたは他の要素と組み合わせて、本明細書に記載される実行、挿入、保守、指示、格納、追加、プログラミング、持ち込み、受け取り、提供、インストールおよびハッシング工程の１つもしくは複数を実行する、および／または、実行する手段となるよう使用することができる。また、Ｉ／Ｏコントローラ５２０は、本開示に記載される他の工程および特徴を実行する、および／または、実行する手段となるよう使用することができる。
【００６７】
通信インターフェース５２２は、例示的なコンピューティングシステム５１０と１つまたは複数の追加のデバイスとの間の通信を容易にすることが可能な任意のタイプまたは形式の通信デバイスまたはアダプタを幅広く表す。例えば、ある実施形態では、通信インターフェース５２２は、コンピューティングシステム５１０と追加のコンピューティングシステムを含むプライベートまたはパブリックネットワークとの間の通信を容易にすることができる。通信インターフェース５２２の例としては、これらに限定されないが、有線ネットワークインターフェース（ネットワークインターフェースカードなど）、無線ネットワークインターフェース（無線ネットワークインターフェースカードなど）、モデムおよび任意の他の適切なインターフェースが挙げられる。少なくとも１つの実施形態では、通信インターフェース５２２は、インターネットなどのネットワークへの直接リンクを介してリモートサーバとの直接接続を実現することができる。また、通信インターフェース５２２は、例えば、ローカルエリアネットワーク（イーサネットネットワークなど）、パーソナルエリアネットワーク、電話もしくはケーブルネットワーク、携帯電話接続、衛星データ接続または任意の他の適切な接続を通じて、そのような接続を間接的に実現することもできる。
【００６８】
また、ある実施形態では、通信インターフェース５２２は、外部のバスまたは通信チャネルを介してコンピューティングシステム５１０と１つまたは複数の追加のネットワークまたは記憶装置との間の通信を容易にするよう構成されたホストアダプタを表す場合もある。ホストアダプタの例としては、これらに限定されないが、ＳＣＳＩホストアダプタ、ＵＳＢホストアダプタ、ＩＥＥＥ１３９４ホストアダプタ、ＳＡＴＡおよびｅＳＡＴＡホストアダプタ、ＡＴＡおよびＰＡＴＡホストアダプタ、ファイバーチャネルインターフェースアダプタ、イーサネットアダプタまたは同様のものが挙げられる。また、通信インターフェース５２２は、コンピューティングシステム５１０が分配されたコンピューティングまたはリモートコンピューティングに参加することを可能にする場合もある。例えば、通信インターフェース５２２は、実行のためにリモートデバイスから命令を受け取るか、または、リモートデバイスに命令を送信することができる。ある実施形態では、通信インターフェース５２２は、単独でまたは他の要素と組み合わせて、本明細書に開示される実行、挿入、保守、指示、格納、追加、プログラミング、持ち込み、受け取り、提供、インストールおよびハッシング工程の１つもしくは複数を実行することができる、および／または、実行する手段となり得る。また、通信インターフェース５２２は、本開示に記載される他の工程および特徴を実行する、および／または、実行する手段となるよう使用することができる。
【００６９】
図５で示されるように、コンピューティングシステム５１０は、ディスプレイアダプタ５２６を介して通信インフラ５１２と結合される少なくとも１つのディスプレイデバイス５２４も含み得る。一般に、ディスプレイデバイス５２４は、ディスプレイアダプタ５２６によって転送された情報を視覚的に表示することが可能な任意のタイプまたは形式のデバイスを表す。同様に、ディスプレイアダプタ５２６は、一般に、ディスプレイデバイス５２４上で表示するため、通信インフラ５１２から（または、当技術分野で公知のフレームバッファから）グラフィックス、テキストおよび他のデータを転送するよう構成された任意のタイプまたは形式のデバイスを表す。
【００７０】
また、図５で示されるように、例示的なコンピューティングシステム５１０は、入力インターフェース５３０を介して通信インフラ５１２と結合される少なくとも１つの入力デバイス５２８も含み得る。一般に、入力デバイス５２８は、例示的なコンピューティングシステム５１０へのコンピュータまたは人間が生成した入力を提供することが可能な任意のタイプまたは形式の入力デバイスを表す。入力デバイス５２８の例としては、これらに限定されないが、キーボード、ポインティングデバイス、音声認識デバイスまたは任意の他の入力デバイスが挙げられる。少なくとも１つの実施形態では、入力デバイス５２８は、単独でまたは他の要素と組み合わせて、本明細書に開示される実行、挿入、保守、指示、格納、追加、プログラミング、持ち込み、受け取り、提供、インストールおよびハッシング工程の１つもしくは複数を実行することができる、および／または、実行する手段となり得る。また、入力デバイス５２８は、本開示に記載される他の工程および特徴を実行する、および／または、実行する手段となるよう使用することもできる。
【００７１】
また、図５で示されるように、例示的なコンピューティングシステム５１０は、ストレージインターフェース５３４を介して通信インフラ５１２と結合される一次記憶装置５３２およびバックアップ記憶装置５３３も含み得る。一般に、記憶装置５３２および５３３は、データおよび／または他のコンピュータ可読命令を格納することが可能な任意のタイプまたは形式の記憶装置または媒体を表す。例えば、記憶装置５３２および５３３は、磁気ディスクドライブ（例えば、いわゆるハードドライブ）、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブまたは同様のものであり得る。一般に、ストレージインターフェース５３４は、記憶装置５３２および５３３とコンピューティングシステム５１０の他のコンポーネントとの間でデータを転送するための任意のタイプまたは形式のインターフェースまたはデバイスを表す。一例では、図１のファイル属性データベース１２０は、一次記憶装置５３２に格納することができる。
【００７２】
ある実施形態では、記憶装置５３２および５３３は、コンピュータソフトウェア、データまたは他のコンピュータ可読情報を格納するよう構成されたリムーバブルストレージユニットから読み取るおよび／または同リムーバブルストレージユニットに書き込むよう構成され得る。適切なリムーバブルストレージユニットの例としては、これらに限定されないが、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイスまたは同様のものが挙げられる。また、記憶装置５３２および５３３は、コンピュータソフトウェア、データまたは他のコンピュータ可読命令をコンピューティングシステム５１０にロードすることを可能にするための他の同様の構造またはデバイスも含み得る。例えば、記憶装置５３２および５３３は、ソフトウェア、データまたは他のコンピュータ可読情報を読み取るおよび書き込むよう構成され得る。また、記憶装置５３２および５３３は、コンピューティングシステム５１０の一部であり得るか、または、他のインターフェースシステムを通じてアクセスされる別々のデバイスでもあり得る。
【００７３】
ある実施形態では、記憶装置５３２および５３３は、例えば、単独でまたは他の要素と組み合わせて、本明細書に開示される実行、挿入、保守、指示、格納、追加、プログラミング、持ち込み、受け取り、提供、インストールおよびハッシング工程の１つもしくは複数を実行する、および／または、実行する手段となるよう使用することができる。また、記憶装置５３２および５３３は、本開示に記載される他の工程および特徴を実行する、および／または、実行する手段となるよう使用することもできる。
【００７４】
また、他の多くのデバイスまたはサブシステムを、コンピューティングシステム５１０に接続することができる。逆に、図５で示されるコンポーネントおよびデバイスのすべてが、本明細書に記載されるおよび／または示される実施形態を実施するために必ずしも存在しているわけではない。また、上記で言及されたデバイスおよびサブシステムは、図５で示されるものとは異なる形で相互接続することもできる。また、コンピューティングシステム５１０は、任意の数のソフトウェア、ファームウェアおよび／またはハードウェア構成を使用することもできる。例えば、本明細書に開示される１つまたは複数の例示的な実施形態は、コンピュータ可読媒体上でコンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令またはコンピュータ制御論理とも呼ばれる）として符号化することができる。語句「コンピュータ可読媒体」は、一般に、コンピュータ可読命令を格納または送達することが可能な任意の形式のデバイス、キャリアまたは媒体を指す。コンピュータ可読媒体の例としては、これらに限定されないが、搬送波などの伝送型の媒体、ならびに、磁気記憶媒体（例えば、ハードディスクドライブおよびフロッピーディスク）、光記憶媒体（例えば、ＣＤ−ＲＯＭまたはＤＶＤ−ＲＯＭ）、電子記憶媒体（例えば、ソリッドステートドライブおよびフラッシュメディア）および他の分配システムなどの物理的な媒体が挙げられる。
【００７５】
コンピュータプログラムが入っているコンピュータ可読媒体は、コンピューティングシステム５１０にロードすることができる。次いで、コンピュータ可読媒体上に格納されたコンピュータプログラムのすべてまたは一部分は、システムメモリ５１６ならびに／または記憶装置５３２および５３３のさまざまな部分に格納することができる。プロセッサ５１４によって実行されると、コンピューティングシステム５１０にロードされたコンピュータプログラムは、プロセッサ５１４に、本明細書に記載されるおよび／または示される１つもしくは複数の例示的な実施形態の機能を実行させる、および／または、実行する手段となるようにすることができる。それに加えてまたはその代替として、本明細書に記載されるおよび／または示される１つまたは複数の例示的な実施形態は、ファームウェアおよび／またはハードウェアで実施することができる。例えば、コンピューティングシステム５１０は、本明細書に開示された１つまたは複数の例示的な実施形態を実施するよう適合された特定用途向け集積回路（ＡＳＩＣ）として構成され得る。
【００７６】
図６は、クライアントシステム６１０、６２０および６３０ならびにサーバ６４０および６４５をネットワーク６５０と結合することができる例示的なネットワークアーキテクチャ６００のブロック図である。一般に、クライアントシステム６１０、６２０および６３０は、図５の例示的なコンピューティングシステム５１０などの任意のタイプまたは形式のコンピューティングデバイスまたはシステムを表す。
【００７７】
同様に、サーバ６４０および６４５は、一般に、さまざまなデータベースサービスを提供するよう構成された、および／または、あるソフトウェアアプリケーションを起動するよう構成された、アプリケーションサーバまたはデータベースサーバなどのコンピューティングデバイスまたはシステムを表す。一般に、ネットワーク６５０は、例えば、イントラネット、広域ネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）またはインターネットを含む任意の電気通信ネットワークまたはコンピュータネットワークを表す。一例では、クライアントシステム６１０、６２０および／もしくは６３０、ならびに／または、サーバ６４０および／もしくは６４５は、図１のシステム１００を含み得る。
【００７８】
図６で示されるように、１つまたは複数の記憶装置６６０（１）〜（Ｎ）は、サーバ６４０に直接取り付けることができる。同様に、１つまたは複数の記憶装置６７０（１）〜（Ｎ）は、サーバ６４５に直接取り付けることができる。記憶装置６６０（１）〜（Ｎ）および記憶装置６７０（１）〜（Ｎ）は、一般に、データおよび／または他のコンピュータ可読命令を格納することが可能な任意のタイプまたは形式の記憶装置または媒体を表す。ある実施形態では、記憶装置６６０（１）〜（Ｎ）および記憶装置６７０（１）〜（Ｎ）は、ＮＦＳ、ＳＭＢまたはＣＩＦＳなどのさまざまなプロトコルを使用して、サーバ６４０および６４５と通信するよう構成されたネットワーク接続記憶（ＮＡＳ）装置を表す場合がある。
【００７９】
また、サーバ６４０および６４５は、ストレージエリアネットワーク（ＳＡＮ）ファブリック６８０に接続することもできる。一般に、ＳＡＮファブリック６８０は、複数の記憶装置間の通信を容易にすることが可能な任意のタイプまたは形式のコンピュータネットワークまたはアーキテクチャを表す。ＳＡＮファブリック６８０は、サーバ６４０および６４５と複数の記憶装置６９０（１）〜（Ｎ）および／またはインテリジェントなストレージアレイ６９５との間の通信を容易にすることができる。また、ＳＡＮファブリック６８０は、装置６９０（１）〜（Ｎ）およびアレイ６９５がクライアントシステム６１０、６２０および６３０にローカルで接続されたデバイスのように見えるように、ネットワーク６５０ならびにサーバ６４０および６４５を介して、クライアントシステム６１０、６２０および６３０と記憶装置６９０（１）〜（Ｎ）および／またはインテリジェントなストレージアレイ６９５との通信を容易にすることもできる。記憶装置６６０（１）〜（Ｎ）および記憶装置６７０（１）〜（Ｎ）と同様に、記憶装置６９０（１）〜（Ｎ）およびインテリジェントなストレージアレイ６９５は、一般に、データおよび／または他のコンピュータ可読命令を格納することが可能な任意のタイプまたは形式の記憶装置または媒体を表す。
【００８０】
ある実施形態では、図５の例示的なコンピューティングシステム５１０に関連して、図５の通信インターフェース５２２などの通信インターフェースを使用して、各クライアントシステム６１０、６２０および６３０とネットワーク６５０との間の接続性を提供することができる。クライアントシステム６１０、６２０および６３０は、例えば、ウェブブラウザまたは他のクライアントソフトウェアを使用して、サーバ６４０または６４５上の情報にアクセスできる場合がある。そのようなソフトウェアは、クライアントシステム６１０、６２０および６３０がサーバ６４０、サーバ６４５、記憶装置６６０（１）〜（Ｎ）、記憶装置６７０（１）〜（Ｎ）、記憶装置６９０（１）〜（Ｎ）またはインテリジェントなストレージアレイ６９５によってホスティングされるデータにアクセスすることを可能にすることができる。図６はデータを交換するためのネットワーク（インターネットなど）の使用について示すが、本明細書に記載されるおよび／または示される実施形態は、インターネットまたは任意の特定のネットワークベースの環境に限定されない。
【００８１】
少なくとも１つの実施形態では、本明細書に開示される１つまたは複数の例示的な実施形態のすべてまたは一部分は、コンピュータプログラムとして符号化することができ、サーバ６４０、サーバ６４５、記憶装置６６０（１）〜（Ｎ）、記憶装置６７０（１）〜（Ｎ）、記憶装置６９０（１）〜（Ｎ）、インテリジェントなストレージアレイ６９５またはそれらの任意の組合せにロードし、これらによって実行することができる。また、本明細書に開示される１つまたは複数の例示的な実施形態のすべてまたは一部分は、コンピュータプログラムとして符号化することができ、サーバ６４０に格納し、サーバ６４５によって起動し、ネットワーク６５０上でクライアントシステム６１０、６２０および６３０に分配することもできる。それに応じて、ネットワークアーキテクチャ６００は、単独でまたは他の要素と組み合わせて、本明細書に開示される実行、挿入、保守、指示、格納、追加、プログラミング、持ち込み、受け取り、提供、インストールおよびハッシング工程の１つもしくは複数を実行することができる、および／または、実行する手段となり得る。また、ネットワークアーキテクチャ６００は、本開示に記載される他の工程および特徴を実行する、および／または、実行する手段となるよう使用することもできる。
【００８２】
上記で詳細に説明されるように、コンピューティングシステム５１０および／またはネットワークアーキテクチャ６００の１つまたは複数のコンポーネントは、単独でまたは他の要素と組み合わせて、仮想マシン間で分析の結果を共有するための例示的な方法の１つまたは複数の工程を実行することができる、および／または、実行する手段となり得る。
【００８３】
前述の開示は特定のブロック図、フローチャートおよび例を使用してさまざまな実施形態について記載しているが、本明細書に記載されるおよび／または示される各ブロック図のコンポーネント、フローチャートの工程、オペレーションおよび／またはコンポーネントは、広範囲にわたるハードウェア、ソフトウェアまたはファームウェア（または、それらの任意の組合せ）構成を使用して、個別におよび／または一括して実装することができる。さらに、他のコンポーネント内に含まれるコンポーネントのいかなる開示も、他の多くのアーキテクチャを実装して同じ機能性を達成することができるため、本来は例示的なものであると見なすべきである。
【００８４】
本明細書に記載されるおよび／または示されるプロセスパラメータおよび工程の順序は単なる例示として与えられるものであり、要望通り変更することができる。例えば、本明細書に示されるおよび／または記載される工程は特定の順番で示されるまたは論じられる場合があるが、これらの工程は、必ずしも示されるまたは論じられる順番で実行する必要があるわけではない。本明細書に記載されるおよび／または示されるさまざまな例示的な方法は、本明細書に記載されるまたは示される工程の１つもしくは複数を省略することも、開示される工程に加えて追加の工程を含めることもできる。
【００８５】
完全に機能的なコンピューティングシステムとの関連でさまざまな実施形態が本明細書に記載されるおよび／または示されるが、これらの例示的な実施形態の１つまたは複数は、実際に分配を行うために使用される特定のタイプのコンピュータ可読媒体に関わらず、プログラム製品としてさまざまな形式で分配され得る。また、本明細書に開示される実施形態は、ある一定のタスクを実行するソフトウェアモジュールを使用して実施することもできる。これらのソフトウェアモジュールは、コンピュータ可読記憶媒体上またはコンピューティングシステムに格納することができるスクリプト、バッチまたは他の実行可能なファイルを含み得る。いくつかの実施形態では、これらのソフトウェアモジュールは、本明細書に開示される例示的な実施形態の１つまたは複数を実行するようコンピューティングシステムを構成することができる。
【００８６】
さらに、本明細書に記載される１つまたは複数のモジュールは、データ、物理的デバイスおよび／または物理的デバイスの表現をある形式から別の形式へ変換することができる。例えば、図１の走査モジュール１０４は、図２のマスタローカルストア２１４および／または共有ストア２２０の特性または特徴を、そのようなストア内の走査モジュール１０４によって実行された分析の結果を更新または格納することによって、変換することができる。
【００８７】
先の説明は、当業者が本明細書に開示される例示的な実施形態のさまざまな態様を最良に利用できるよう提供されている。この例示的な説明は、包括的であるまたは開示される形式と全く同一の形式に限定することを意図しない。多くの変更形態および変形形態を、本開示の精神および範囲から逸脱することなく作成することができる。本明細書に開示される実施形態は、すべての点において、限定的なものではなく例示的なものとして見なされるべきである。本開示の範囲を決定する際には、添付の特許請求の範囲およびその均等物を参照すべきである。
【００８８】
特に断りのない限り、本明細書および特許請求の範囲で使用される単数形「ａ」または「ａｎ」は、「少なくとも１つの（ａｔ  ｌｅａｓｔ  ｏｎｅ  ｏｆ）」の意味に解釈されるものとする。さらに、使い易さを考慮して、本明細書および特許請求の範囲で使用される語「含む（ｉｎｃｌｕｄｉｎｇ）」および「有する（ｈａｖｉｎｇ）」は、語「備える、含む（ｃｏｍｐｒｉｓｉｎｇ）」と交換可能であり、同語と同じ意味を有する。
【図１】
2013535716.tif 000003
【図２】
2013535716.tif 000004
【図３】
2013535716.tif 000005
【図４】
2013535716.tif 000006
【図５】
2013535716.tif 000007
【図６】
2013535716.tif 000008
【手続補正書】
【提出日】平成25年2月26日(2013.2.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
仮想マシン間で分析の結果を共有するためのコンピュータ実装方法であって、前記方法の少なくとも一部分は、少なくとも１つのプロセッサを備えるコンピューティングデバイスによって実行され、
マスタ仮想マシンの少なくとも１つのファイルに対して第１の分析を実行する工程と、
前記マスタ仮想マシン内の代わりにデータベース内に前記第１の分析の少なくとも１つの結果を格納する工程と、
前記第１の分析の結果を示す情報を前記マスタ仮想マシンに挿入する工程であって、前記情報は前記データベースへの参照を含む、工程と、
前記マスタ仮想マシンに基づく少なくとも１つの追加の仮想マシンを保守する工程と、
前記追加の仮想マシンの少なくとも１つのファイルに対して第２の分析を実行する代わりに、前記データベース内の前記第１の分析の結果にアクセスするため、前記マスタ仮想マシン内の前記情報を参照するように前記追加の仮想マシンに指示する工程と
を含むコンピュータ実装方法。
【請求項２】
前記追加の仮想マシンの少なくとも１つのファイルに対して追加分析を実行する工程と、
前記第１の分析の結果を格納するデータベースに前記追加分析の少なくとも１つの結果を追加する工程と
をさらに含む、請求項１に記載の方法。
【請求項３】
前記マスタ仮想マシン内の前記情報を参照するように前記追加の仮想マシンに指示する工程は、前記マスタ仮想マシン内の前記情報を参照するように前記追加の仮想マシンに指示するコンピュータ実行可能コードを実行するよう、前記追加の仮想マシンをプログラムする工程を含む、請求項１に記載の方法。
【請求項４】
前記マスタ仮想マシンの前記ファイルに対して前記分析を実行する工程は、前記マスタ仮想マシンがオフライン状態の間に前記第１の分析を実行する工程を含む、請求項１に記載の方法。
【請求項５】
前記マスタ仮想マシンの前記ファイルに対して前記分析を実行する工程は、前記追加の仮想マシンがオフライン状態の間に、前記マスタ仮想マシンの前記ファイルに対して前記第１の分析を、前記追加の仮想マシンが最初にオンライン状態となる前に、実行する工程を含む、請求項１に記載の方法。
【請求項６】
前記追加の仮想マシンを最初にオンライン状態にする工程と、
前記追加の仮想マシンを最初にオンライン状態にすると同時に、前記追加の仮想マシンの前記ファイルに対して前記第２の分析を実行する代わりに、前記マスタ仮想マシン内の前記情報を参照するように前記追加の仮想マシンに指示する工程と
をさらに含む、請求項５に記載の方法。
【請求項７】
前記第１の分析の結果にアクセスするという要求を前記追加の仮想マシンから受け取る工程と、
前記要求に応じて前記マスタ仮想マシン内の前記情報を提供する工程と
をさらに含む、請求項１に記載の方法。
【請求項８】
前記追加の仮想マシンを保守する工程は、
前記第１の分析の結果を使用することが可能なソフトウェアアプリケーションを前記追加の仮想マシンにインストールする工程と、
前記追加の仮想マシンの前記ファイルに対して前記第２の分析を実行する代わりに前記第１の分析の結果を使用するように前記ソフトウェアアプリケーションに指示する工程と
を含む、請求項１に記載の方法。
【請求項９】
前記第１の分析は、前記マスタ仮想マシンの外部で実行される走査モジュールによって実行される、請求項１に記載の方法。
【請求項１０】
仮想マシン間で分析の結果を共有するためのシステムであって、
少なくとも１つのプロセッサと、
マスタ仮想マシンの少なくとも１つのファイルに対して第１の分析を実行し、
前記マスタ仮想マシン内の代わりにデータベース内に前記第１の分析の少なくとも１つの結果を格納し、
前記第１の分析の結果を示す情報を前記マスタ仮想マシンに挿入し、前記情報は前記データベースへの参照を含む
ように前記プロセッサに指示するようプログラムされた走査モジュールと、
前記マスタ仮想マシンに基づく少なくとも１つの追加の仮想マシンを保守する
ように前記プロセッサに指示するようプログラムされた保守モジュールと、
前記追加の仮想マシンの少なくとも１つのファイルに対して第２の分析を実行する代わりに、前記データベース内の前記第１の分析の結果にアクセスするため、前記マスタ仮想マシン内の前記情報を参照するように前記追加の仮想マシンに指示する
ように前記プロセッサに指示するようプログラムされた参照モジュールと
を備えるシステム。
【請求項１１】
前記データベースへの参照は、ユニフォームリソースロケータを含む、請求項１０に記載のシステム。
【請求項１２】
前記走査モジュールは、前記追加の仮想マシンがオフライン状態の間に、前記マスタ仮想マシンの前記ファイルに対して前記第１の分析を、前記追加の仮想マシンが最初にオンライン状態となる前に、実行するように前記プロセッサに指示するようプログラムされた、請求項１０に記載のシステム。
【請求項１３】
前記保守モジュールは、前記追加の仮想マシンを最初にオンライン状態にするように前記プロセッサに指示するようプログラムされ、
前記参照モジュールは、前記追加の仮想マシンを最初にオンライン状態にすると同時に、前記追加の仮想マシンの前記ファイルに対して前記第２の分析を実行する代わりに、前記マスタ仮想マシン内の前記情報を参照するように前記追加の仮想マシンに指示するように前記プロセッサに指示するようプログラムされた、請求項１２に記載のシステム。
【請求項１４】
前記保守モジュールは、前記第１の分析の結果を使用することが可能なソフトウェアアプリケーションを前記追加の仮想マシンにインストールするように前記プロセッサに指示するようプログラムされ、
前記参照モジュールは、前記追加の仮想マシンの前記ファイルに対して前記第２の分析を実行する代わりに前記第１の分析の結果を使用するように前記ソフトウェアアプリケーションに指示するように前記プロセッサに指示するようプログラムされた、請求項１０に記載のシステム。
【請求項１５】
コンピューティングデバイスによって実行されると、前記コンピューティングデバイスに、
マスタ仮想マシンの少なくとも１つのファイルに対して第１の分析を実行させる、
前記マスタ仮想マシン内の代わりにデータベース内に前記第１の分析の少なくとも１つの結果を格納させる、
前記第１の分析の結果を示す情報を前記マスタ仮想マシンに挿入させ、前記情報は前記データベースへの参照を含み、
前記マスタ仮想マシンに基づく少なくとも１つの追加の仮想マシンを保守させる、
前記追加の仮想マシンの少なくとも１つのファイルに対して第２の分析を実行する代わりに、前記データベース内の前記第１の分析の結果にアクセスするため、前記マスタ仮想マシン内の前記情報を参照するように前記追加の仮想マシンに指示させる、
１つまたは複数のコンピュータ実行可能命令を含む、コンピュータ可読媒体。
【国際調査報告】
2013535716.tif 000009
2013535716.tif 000010