JP2013518342A - 関連コンピューティングシステム間でコンピューティングオペレーションの結果を共有するためのシステムおよび方法 - Google Patents

関連コンピューティングシステム間でコンピューティングオペレーションの結果を共有するためのシステムおよび方法 Download PDF

Info

Publication number
JP2013518342A
JP2013518342A JP2012551167A JP2012551167A JP2013518342A JP 2013518342 A JP2013518342 A JP 2013518342A JP 2012551167 A JP2012551167 A JP 2012551167A JP 2012551167 A JP2012551167 A JP 2012551167A JP 2013518342 A JP2013518342 A JP 2013518342A
Authority
JP
Japan
Prior art keywords
file
computing
group
shared
determining whether
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
JP2012551167A
Other languages
English (en)
Other versions
JP5816198B2 (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 JP2013518342A publication Critical patent/JP2013518342A/ja
Application granted granted Critical
Publication of JP5816198B2 publication Critical patent/JP5816198B2/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
    • 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)ユニークな識別子を使用して関連コンピューティングシステムのグループによって共有される共有ストアにクエリを行うことによって、関連コンピューティングシステムのグループ内の少なくとも1つのコンピューティングシステムがファイルのインスタンスに対してコンピューティングオペレーションを事前に実行したかを判断する工程、および、4)コンピューティングオペレーションを実行する代わりに、共有ストアからコンピューティングオペレーションの結果を取り込む工程を含み得る。さまざまな他の方法、システムおよびコンピュータ可読媒体も開示される。

Description

共通のホストマシン上で起動している仮想マシンまたは共通のネットワークに接続された物理的なコンピューティングデバイスなどの関連コンピューティングシステムは、多くの場合、1つまたは複数の同じファイルのインスタンスに遭遇し得る。例えば、同じオペレーティングシステムまたはサービスパックを起動するおよび/または同じベースイメージから作成される仮想マシン内のファイルは同一である割合が高い。そのため、関連コンピューティングシステムは、同じファイルのインスタンスに対して同一のまたは同様なリソース消費型のコンピューティングオペレーションを重複して実行する恐れがある。
例えば、同じベースイメージから作成され、共通のホストで起動する30個の仮想マシンがすべてのファイルの定期的なマルウェアスキャンを実行するよう命令される場合、これらの仮想マシンは、仮想マシン間で共有されるファイルのインスタンス(共通のシステムまたはアプリケーションファイルなど)に対して30回の異なるマルウェアスキャンを一括して実行する可能性があり、それらはすべて同様なまたは同一の結果を得る。そのような重複オペレーションにコンピューティングリソースを浪費することに加えて、このシナリオは、根本的なホストマシンのリソースを圧倒またはオーバーランさせる恐れもあり、性能の低下および/またはシステム障害を引き起こす可能性がある。このため、本開示は、関連コンピューティングシステムのグループ間の共通のコンテンツを識別する必要があるかを確認した上で、この知識を使用して関連コンピューティングシステム間でこの共通のコンテンツに対して実行されたコンピューティングオペレーションの結果を共有する。
以下でさらに詳細に説明されるように、本開示は、概して、関連コンピューティングシステム間で共有されたまたは共通のファイルに対して実行されたコンピューティングオペレーション(マルウェアまたはデータ損失防止スキャンなど)の結果を共有するためのシステムおよび方法に関する。一例では、本明細書に記載される1つまたは複数のシステムは、1)ファイルに対してコンピューティングオペレーション(マルウェアまたはデータ損失防止スキャンなど)を実行する必要があるかを確認すること、2)ファイルに関連するユニークな識別子(ハッシュなど)を特定すること、3)ユニークな識別子を使用して関連コンピューティングシステムのグループ(ホストマシン上で起動している仮想マシンのグループまたは共通のネットワークに接続された物理的なコンピューティングデバイスのグループ)によって共有される共有ストアにクエリを行うことによって、関連コンピューティングシステムのグループ内の少なくとも1つのコンピューティングシステムがファイルのインスタンスに対して所望のコンピューティングオペレーションを事前に実行したかを判断すること、ならびに、4)再度所望のコンピューティングオペレーションを実行する代わりに、共有ストアからコンピューティングオペレーションの結果を取り込むことによって、そのようなタスクを成し遂げることができる。
一例では、本明細書に記載されるシステムは、ファイルのハッシュを作成することによって、または、ローカルキャッシュもしくはストアからファイルのハッシュを取り込むことによって、ファイルに関連するユニークな識別子を特定することができる。いくつかの例では、このローカルキャッシュまたはストア内に入っているファイルハッシュは、各ハッシュに関連するファイルが静的であるまたは変更されない限り持続させることができる。例えば、本明細書に記載されるシステムがファイルは修正または変更されたと判断すれば、これらのシステムは、ローカルキャッシュまたはストアからこのファイルのファイルハッシュを消去または削除することができる。
いくつかの例では、共有ストア内に入っているコンピューティングオペレーション結果は、他の要素としては、マルウェア分析の間にファイルに割り当てられた分類、マルウェア分析の間にファイルに割り当てられた少なくとも1つの分類の論理的根拠、および/または、マルウェア分析を実行する際に使用される少なくとも1つのウイルス定義セットもしくはヒューリスティックを特定する情報を含み得る。関与するコンピューティングシステムのタイプに応じて、この共有ストアは、ネットワーク接続記憶装置、ストレージエリアネットワーク、ファイルサーバ、クラウドベース記憶装置、および/または、ハイパーバイザによって管理されるローカル記憶装置の保護パーティションの少なくとも一部分を表す場合がある。いくつかの例では、この共有ストアは、ファイルハッシュを使用してインデックスを付けることができる。
ファイルのハッシュ値の計算に必要なコンピューティングリソースは、ファイルに関連して実行されたコンピューティングオペレーションの結果を共有するために必要なコンピューティングリソースに等しいまたはそれを超える場合がある(例えば、ファイルのハッシュ値の計算は、同じファイルに対してマルウェアスキャンを実行するのと同じまたはそれより多くのコンピューティングリソースを消費する場合がある)ため、いくつかの例では、本明細書に記載されるシステムは、頻繁に変更される可能性が低いファイル、および/または、関連コンピューティングシステムのグループ内の追加のコンピューティングシステム上に位置するもしくは同追加のコンピューティングシステムが遭遇するファイルに対して実行されたコンピューティングオペレーションの結果を共有するだけでよい。例えば、本明細書に記載されるシステムが、ファイルは頻繁に変更される可能性がある(したがって、ファイルの新しいハッシュを頻繁に生成する必要がある可能性がある)、および/または、ファイルの追加のインスタンスにグループ内の追加コンピューティングシステムが遭遇する可能性は低いと判断すれば、本明細書に記載されるシステムは、ファイルのハッシュ値の計算、および/または、ファイルに対して実行されたコンピューティングオペレーションの結果を共有しようとする試みを控える場合があるが、この理由は、これらの結果の共有に必要なコンピューティングリソースが、これらの結果を共有することによってグループによって一括して保存されたコンピューティングリソースに等しいまたはそれを超える場合があるためである。
一例では、本明細書に記載されるシステムが、共有ストアはグループ内の関連コンピューティングシステムのいずれも問題のファイルに対して所望のコンピューティングオペレーションを事前に実行しなかったことを示していると判断すれば、本明細書に記載されるシステムは、問題のファイルに対して所望のコンピューティングオペレーションを実行し、次いで、コンピューティングオペレーションの結果を用いて共有ストアを更新することができる。
以下で詳細に説明されるように、関連コンピューティングシステムのグループによって共有されるストア内の共通のまたは共有されたファイルに対して実行されたリソース消費型のコンピューティングオペレーション(マルウェアスキャンまたはファイルレピュテーションルックアップなど)の結果を格納することによって、本明細書に記載されるシステムおよび方法は、関連コンピューティングシステム(ホストマシン上で起動している仮想マシンのグループまたは共通のネットワークに接続された物理的なコンピューティングデバイスのグループなど)がそのようなコンピューティングオペレーションの結果を共有および再利用することを可能にし得る。このため、これらのシステムおよび方法は、グループ間で共通して共有されるファイルに対して実行される重複コンピューティングオペレーションの数を低減することができ、グループによって一括して消費されるコンピューティングリソースの量を低減する可能性がある。
さらに、本明細書に記載されるシステムおよび方法は、グループ内の他のコンピューティングシステムが遭遇する可能性があるファイル、および/または、頻繁に変更される可能性が低いファイルのインスタンスに対して実行されたコンピューティングオペレーションの結果を共有するだけで、そのようなファイルに対して実行されたコンピューティングオペレーションの結果を共有するために必要なコンピューティングリソースが、そのようなコンピューティングオペレーションの結果を共有することによって一括して保存されたコンピューティングリソースに等しくもそれを超えることもない、ことを保証しようと試みる場合がある。
上述の実施形態のいずれかの特徴は、本明細書に記載される一般原理に従って互いに組み合わせて使用することができる。これらのおよび他の実施形態、特徴および利点は、添付の図面および特許請求の範囲と併せて以下の詳細な説明を読み進むに従ってより完全に理解されよう。
添付の図面は、いくつかの例示的な実施形態を示し、本明細書の一部である。以下の説明と併せて、これらの図面は、本開示のさまざまな原理を実証および説明する。
関連コンピューティングシステム間でコンピューティングオペレーションの結果を共有するための例示的なシステムのブロック図である。 関連コンピューティングシステム間でコンピューティングオペレーションの結果を共有するための追加の例示的なシステムのブロック図である。 関連コンピューティングシステム間でコンピューティングオペレーションの結果を共有するための追加の例示的なシステムのブロック図である。 関連コンピューティングシステム間でコンピューティングオペレーションの結果を共有するための例示的な方法のフロー図である。 例示的なファイル属性データベースの図である。 本明細書に記載されるおよび/または示される1つまたは複数の実施形態を実施することが可能な例示的なコンピューティングシステムのブロック図である。 本明細書に記載されるおよび/または示される1つまたは複数の実施形態を実施することが可能な例示的なコンピューティングネットワークのブロック図である。
図面全体を通して、同一の参照文字および説明は、同様な要素を示すが、必ずしも同一の要素である必要はない。本明細書に記載される例示的な実施形態はさまざまな変更形態および代替形態を取ることができるが、図面では特定の実施形態が一例として示されており、本明細書に詳細に記載される。しかし、本明細書に記載される例示的な実施形態は、開示される特定の形態に限定されることを意図しない。むしろ、本開示は、添付の特許請求の範囲の範囲内に収まるすべての変更形態、均等物および代替形態をカバーする。
以下でさらに詳細に説明されるように、本開示は、概して、関連コンピューティングシステム間でコンピューティングオペレーションの結果を共有するためのシステムおよび方法に関する。以下は、図1〜3および5を参照して、関連コンピューティングシステム間でコンピューティングオペレーションの結果を共有するための例示的なシステムの詳細な説明を提供する。対応するコンピュータ実装方法の詳細な説明もまた、図4に関連して提供される。さらに、本明細書に記載される1つまたは複数の実施形態を実施することが可能な例示的なコンピューティングシステムおよびネットワークアーキテクチャの詳細な説明はそれぞれ、図6および7に関連して提供される。
図1は、関連コンピューティングシステム間でコンピューティングオペレーションの結果を共有するための例示的なシステム100のブロック図である。この図で示されるように、例示的なシステム100は、1つまたは複数のタスクを実行するための1つまたは複数のモジュール102を含み得る。例えば、以下でさらに詳細に説明されるように、例示的なシステム100は、ファイルに対してコンピューティングオペレーションを実行する必要があるかを確認するようプログラムされたオペレーション識別モジュール104を含み得る。また、例示的なシステム100は、ファイルに関連するユニークな識別子を特定するようプログラムされたファイル識別モジュール106も含み得る。
さらに、以下でさらに詳細に説明されるように、例示的なシステム100は、1)ユニークな識別子を使用して関連コンピューティングシステムのグループによって共有される共有ストアにクエリを行うことによって、関連コンピューティングシステムのグループ内の少なくとも1つのコンピューティングシステムが問題のファイルのインスタンスに対してコンピューティングオペレーションを事前に実行したかを判断するように、および、2)コンピューティングオペレーションを実行する代わりに、共有ストアからコンピューティングオペレーションの結果を取り込むようにプログラムされたクエリモジュール108を含み得る。個別の要素として示されているが、図1の1つまたは複数のモジュール102は、単一のモジュールまたはアプリケーションの複数の部分を表す場合がある。
ある実施形態では、図1の1つまたは複数のモジュール102は、コンピューティングデバイスによって実行されると、コンピューティングデバイスに1つまたは複数のタスクを実行させることができる1つまたは複数のソフトウェアアプリケーションまたはプログラムを表す場合がある。例えば、以下でさらに詳細に説明されるように、1つまたは複数のモジュール102は、図2および3に示されるデバイス(例えば、仮想マシン202(1)〜(N)およびコンピューティングデバイス302(1)〜(N))、図6のコンピューティングシステム610および/または図7の例示的なネットワークアーキテクチャ700の複数の部分など、1つまたは複数のコンピューティングデバイス上で起動するよう格納および構成されるソフトウェアモジュールを表す場合がある。図1の1つまたは複数のモジュール102は、1つまたは複数のタスクを実行するよう構成される1つまたは複数の専用コンピュータのすべてまたは複数の部分を表す場合もある。
また、図1で示されるように、例示的なシステム100は、ファイル属性データベース120も含み得る。一実施形態では、以下でさらに詳細に説明されるように、ファイル属性データベース120は、1つまたは複数のファイルハッシュ122およびファイル属性情報124を格納するよう構成され得る。ファイル属性データベース120は、単一のデータベースもしくはコンピューティングデバイスまたは複数のデータベースもしくはコンピューティングデバイスの複数の部分を表す場合がある。例えば、ファイル属性データベース120は、図2のローカルストア212(1)〜(N)および/もしくは共有ストア216、図3のローカルストア303(1)〜(N)および/もしくは共有ストア306、図6のコンピューティングシステム610、ならびに/または、図7の例示的なネットワークアーキテクチャ700の複数の部分の一部分を表す場合がある。あるいは、図1のファイル属性データベース120は、コンピューティングデバイスによってアクセスすることが可能な1つまたは複数の物理的な個別のデバイスを表す場合があり、そのような図2の仮想マシン202(1)〜(N)、図3のコンピューティングデバイス302(1)〜(N)、図6のコンピューティングシステム610および/または図7の例示的なネットワークアーキテクチャ700の複数の部分。
図1の例示的なシステム100は、さまざまな方法で配備することができる。一例では、例示的なシステム100のすべてまたは一部分は、図2の例示的なホストマシン200の複数の部分を表す場合がある。図2に示されているように、ホストマシン200は、仮想化層204を介して一式のハードウェア208と連通する複数の仮想マシン202(1)〜(N)を含み得る。一実施形態では、以下でさらに詳細に説明されるように、図1のモジュール102は、仮想マシン202(1)〜(N)それぞれを、1)仮想マシン内のファイルに対してコンピューティングオペレーション(マルウェアスキャンなど)を実行する必要があるかを確認する、2)ファイルに関連するユニークな識別子(ファイルハッシュなど)を特定する、3)ユニークな識別子を使用して共有ストア216(以下で説明されるように、仮想マシン202(1)〜(N)によって共有され得る)にクエリを行うことによって、グループ220内の追加の仮想マシンがファイルのインスタンスに対して所望のコンピューティングオペレーションを事前に実行したかを判断する、ならびに、4)再度コンピューティングオペレーションを実行する代わりに、共有ストアからコンピューティングオペレーションの結果を取り込むようプログラムすることができる。
一般に、ホストマシン200は、1つまたは複数の仮想マシンをホスティングすることが可能な任意のタイプまたは形式の物理的なコンピューティングデバイスを表す。ホストマシン200の例としては、ラップトップ、デスクトップ、サーバ、携帯電話、携帯情報端末(PDA)、マルチメディアプレーヤー、組込みシステム、これらの1つもしくは複数の組合せ、図6の例示的なコンピューティングシステム610または任意の他の適切なコンピューティングデバイスが挙げられるがこれらに限定されない。
一般に、仮想マシン202(1)〜(N)は、コンピュータ実行可能命令を読み取ることが可能な任意のタイプまたは形式の仮想化またはエミュレート化されたコンピューティングマシンを表す。仮想マシン202(1)〜(N)の例としては、システム仮想マシン、プロセス仮想マシンまたは任意の他の適切な仮想もしくはエミュレート化コンピューティングデバイスが挙げられるがこれらに限定されない。図2で示される例では、仮想マシン202(1)〜(N)は、仮想化層204を介してホストマシン200の根本的なハードウェア208にアクセスすることができ、ホストマシン200のコンピューティングリソースを抽象化および管理することができる。
図2で示されるように、ハードウェア208は、他の要素としては、少なくとも1つの記憶装置を含み得る。いくつかの実施形態では、仮想化層204は、仮想マシン202(1)〜(N)それぞれに対する複数のローカルストア212(1)〜(N)にハードウェア208を抽象化することができる。以下でさらに詳細に説明されるように、ローカルストア212(1)〜(N)を使用して、他の情報としては、共有ストア216へのクエリに使用することができるキャッシュされたファイルハッシュのコピーを格納することができる。
一般に、共有ストア216は、図2の仮想マシン202(1)〜(N)など、関連コンピューティングシステムのグループによって共有またはアクセスされ得る任意のタイプまたは形式の物理的なまたは仮想化されたストレージを表す。いくつかの例では、共有ストア216には、コンピューティングシステム(仮想マシン202(1)〜(N)など)のグループが遭遇する複数のファイルのそれぞれに対する、1)ファイルのハッシュ、2)ファイルに関連して実行された少なくとも1つのコンピューティングオペレーションの結果(マルウェア分析の間にファイルに割り当てられた分類、マルウェア分析の間にファイルに割り当てられた少なくとも1つの分類の論理的根拠、マルウェア分析を実行する際に使用される少なくとも1つのウイルス定義セットもしくはヒューリスティックまたは同様のもの)、3)ファイルに関連して実行された少なくとも1つのコンピューティングオペレーションの日付(ファイルに対して実行された最近のマルウェアスキャンの日付など)、および/または、4)関連コンピューティングシステム間で共有され得る潜在的に有用な任意の他の情報が入り得るファイル属性データベース(図1および5のファイル属性データベース120など)が入っているまたは含まれる場合がある。
いかなるタイプまたは形式の関連コンピューティングシステムのグループも、共有ストアを共有するか、または、共有ストアにアクセスすることができる。一例では、共通のホスコンピューティングデバイス上で起動している複数の仮想マシン(図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)、マルチメディアプレーヤー、組込みシステム、これらの1つもしくは複数の組合せ、図6の例示的なコンピューティングシステム610または任意の他の適切なコンピューティングデバイスが挙げられる。
図3で示される例では、ネットワーク304は、通信またはデータ転送を容易にすることが可能な任意の媒体またはアーキテクチャを表すことができる。ネットワーク304の例としては、イントラネット、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、キャンパスエリアネットワーク(CAN)、インターネット、電力線通信(PLC)、セルラネットワーク(例えば、GSM(登録商標)ネットワーク)、図7の例示的なネットワークアーキテクチャ700または同様のものが挙げられるがこれらに限定されない。ネットワーク304は、無線または有線接続を使用して通信またはデータ転送を容易にすることができる。一例では、コンピューティングデバイス302(1)〜(N)は、TCP/IP通信プロトコルを使用して、ネットワーク304を介して共有ストア306にアクセスすることができるか、または、共有ストア306と通信することができる。
図4は、関連コンピューティングシステム間でコンピューティングオペレーションの結果を共有するための例示的なコンピュータ実装方法400のフロー図である。図4で示される工程は、任意の適切なコンピュータ実行可能コードおよび/またはコンピューティングシステムによって実行することができる。いくつかの実施形態では、図4で示される工程は、図1のシステム100、図2のホストマシン200、図3のシステム300、図6のコンピューティングシステム610および/または図7の例示的なネットワークアーキテクチャ700の複数の部分の1つもしくは複数のコンポーネントによって実行することができる。
図4で示されるように、工程402では、本明細書に記載されるさまざまなシステムの1つまたは複数は、ファイルに対してコンピューティングオペレーションを実行する必要があるかを確認することができる。例えば、図1のオペレーション識別モジュール104は、図2の仮想マシン202(1)の一部として、仮想マシン202(1)内でファイルに対してコンピューティングオペレーションを実行する必要があるかを確認することができる(例えば、仮想化層204によって仮想マシン202(1)に割り当てられた記憶装置210内の記憶空間に格納されたファイル)。
工程402においてオペレーション識別モジュール104によって特定されたコンピューティングオペレーションは、コンピューティングリソースを消費するファイルに関連して実行された任意のタイプまたは形式のコンピューティングオペレーションを表す場合がある。工程402においてオペレーション識別モジュール104によって特定され得るコンピューティングオペレーションの例としては、ファイルのマルウェア分析(例えば、ファイルが悪質なものかどうか判断するため)、ファイルのデータ損失防止分析(例えば、ファイルに機密情報が入っているかどうか判断するため)、ファイルに対するコミュニティベースのレピュテーションルックアップ(例えば、コミュニティ内のファイルの信頼性もしくはレピュテーションを判断するため)、ファイルのファイルタイプ分析、または、ファイルに対してもしくはファイルに関連して実行することができる任意の他のタイプもしくは形式のコンピューティングオペレーションが挙げられるがこれらに限定されない。
図4に戻って、工程404では、本明細書に記載されるシステムの1つまたは複数は、ファイルに関連するユニークな識別子を特定することができる。例えば、図1のファイル識別モジュール106は、図2の仮想マシン202(1)の一部として、工程402において特定されたファイルに関連するユニークな識別子を特定することができる。本明細書で使用される用語「ユニークな識別子」は、一般に、ファイルをユニークに識別するための任意のタイプまたは形式の方法を表す。ユニークな識別子の例としては、MD5ハッシュ、SHA−1ハッシュ、SHA−256ハッシュまたは同様のものなどのファイルハッシュが挙げられるがこれらに限定されない。
本明細書に記載されるシステムは、さまざまな方法で工程404を実行することができる。一例では、図1のファイル識別モジュール106は、ファイルのハッシュを作成することによってファイルに関連するユニークな識別子を特定することができる。例えば、ファイル識別モジュール106は、最初にファイルに遭遇する際に、仮想マシン202(1)の一部として、ファイルのハッシュを作成することができる。一例では、ファイル識別モジュール106は、次いで、仮想マシン202(1)に付随するローカルストア212(1)内にこのハッシュを格納する場合がある。この例では、ファイル識別モジュール106は、後段でファイルに遭遇する際に、再度ファイルのハッシュを作成することは対照的に、ローカルストア212(1)からこのファイルのハッシュを取り込むことができる。
上記で詳細に説明されるように、仮想マシン202(1)〜(N)は、ローカルストア212(1)〜(N)内にさまざまな情報を格納することができる。仮想マシン202(1)〜(N)がローカルストア212(1)〜(N)内に格納することができる情報のタイプの例としては、これらに限定されないが、ファイルのハッシュなどのファイルメタデータ、ファイルに関連して実行された少なくとも1つのコンピューティングオペレーションの日付(ファイルの最近のマルウェアスキャンの日付など)、ファイルのファイル起源情報または潜在的に有用な任意の他の情報が挙げられる。
いくつかの実施形態では、ローカルストア212(1)〜(N)内のファイルに対するファイルメタデータは、ファイルが静的であるまたは変更されない限り持続させることができる。例えば、最初にファイルに遭遇する際、図1のファイル識別モジュール106は、ローカルストア212(1)内のファイルに対するさまざまなファイルメタデータ(ファイルハッシュなど)を作成および格納することができる。この例では、このファイルに付随するファイルメタデータは、ファイルが変更されない限り、ローカルストア212(1)内に留まることができる。しかし、ファイル識別モジュール106がファイルは変更されたと判断すれば(例えば、ファイルシステムミニフィルタを介して)、ファイル識別モジュール106は、ローカルストア212(1)から変更または修正されたファイルに付随するすべてのファイルメタデータを消去または削除することができる。このように、ファイル識別モジュール106は、ローカルストア212(1)内に格納されるファイルメタデータ(ファイルハッシュなど)を確信を持っておよび効果的に再利用することができ、新しいファイルまたは新しいバージョンのファイルに対するファイルメタデータの再計算または再生成を行うだけでよい。
ファイルをユニークに識別するために必要なコンピューティングリソースは、ファイルに対して実行されたコンピューティングオペレーションの結果を共有するために必要なコンピューティングリソースに等しいまたはそれを超える場合がある(例えば、ファイルのハッシュ値の計算は、同じファイルに対してマルウェアスキャンを実行するのと同じまたはそれより多くのコンピューティングリソースを消費する場合がある)ため、いくつかの例では、本明細書に記載されるシステムは、仮想マシン202(1)〜(N)が遭遇したファイルの選択部分に対して工程404〜408を実行するだけでよい(すなわち、本明細書に記載されるシステムは、特定の基準を満たすファイルに関して実行されたコンピューティングオペレーションの結果をユニークに識別および共有するだけでよい)。例えば、ファイル識別モジュール106は、図4の工程404を実行する前に、1)工程402において特定されたファイルの追加のインスタンスが関連コンピューティングシステムのグループ内の少なくとも1つの追加のコンピューティングシステム上に位置する可能性があるかどうか判断する(それにより、関連コンピューティングシステムのグループ内の1つもしくは複数のコンピューティングシステムが工程402において特定されたファイルのインスタンスに対抗した、および/または、ファイルのインスタンスに対して工程402において特定された所望のコンピューティングオペレーションを事前に実行した可能性があるかどうか潜在的に示す)、ならびに/または、2)工程402において特定されたファイルが頻繁に変更される可能性が低いかどうか判断する(それにより、今後のリソース消費型のファイルハッシュオペレーションをファイルに対して頻繁に実行する必要があり得るかどうか潜在的に示す)ことができる。
例えば、ファイル識別モジュール106が、ファイルは非ユーザが生成したファイルが入っている可能性があるディレクトリもしくは位置(「C:/Windows(登録商標)/System32/」または「C:/Program Files/Microsoft Office/」など)に位置する、および/または、ユーザが生成したファイルが入っている可能性がある位置もしくはディレクトリ(「C:/Documents and Settings/」など)内に位置しないと判断すれば、ファイル識別モジュール106は、ファイルの追加のインスタンスが関連コンピューティングシステムのグループ内の少なくとも1つの追加のコンピューティングシステム上に位置する可能性があると判断することができ、こうして、関連コンピューティングシステムのグループ内の1つもしくは複数のコンピューティングシステムが問題のファイルに対して工程402において特定されたコンピューティングオペレーションに事前に遭遇したおよび/または同コンピューティングオペレーションを事前に実行した可能性を高くする。
同様に、ファイル識別モジュール106が、1)ファイルは静的なもしくは変更されないファイルと一般に関連するディレクトリもしくは位置(「C:/Windows/System32/」など)に位置する、2)ファイルは既定の期間内において既定の回数より少ない回数で(例えば、1年以内に5回より少ない回数で)変更された、および/または、3)ファイルは既定の期間(例えば、1年)を超えて静的であったと判断すれば、ファイル識別モジュール106は、ファイルが頻繁に変更される可能性が低いと判断することができ、こうして、今後、比較的わずかなリソース消費型のファイルハッシュオペレーションをファイルに対して実行する必要があり得ることを潜在的に示す。
上記の例では、ファイル識別モジュール106が、ファイルは頻繁に変更される可能性が低い、および/または、ファイルの追加のインスタンスは関連コンピューティングシステムのグループ内に位置する可能性があると判断すれば、ファイル識別モジュール106は、図4の工程404を実行して(例えば、ファイルのハッシュを特定または作成することによって)、例示的な方法400の継続を可能にすることができる。しかし、ファイル識別モジュール106が、ファイルは頻繁に変更される可能性がある、および/または、ファイルの追加のインスタンスは関連コンピューティングシステムのグループ内に位置する可能性が低いと判断すれば、工程402の終結と同時に例示的な方法400を終了することができる(例えば、ファイル識別モジュール106は、ファイルのハッシュの特定または作成を控えることができる)が、この理由は、工程404〜408を実行するために必要なコンピューティングリソースが、工程404〜408を実行することによってグループによって一括して保存されたコンピューティングリソースに等しいまたはそれを超える場合があるためである。
図4に戻って、工程406では、本明細書に記載されるシステムの1つまたは複数は、工程404で特定されたユニークな識別子を使用して関連コンピューティングシステムのグループによって共有される共有ストアにクエリを行うことによって、関連コンピューティングシステムのグループ内の少なくとも1つのコンピューティングシステムがファイルのインスタンスに対して所望のコンピューティングオペレーションを事前に実行したかを判断することができる。例えば、図1のクエリモジュール108は、グループ220内の追加の仮想マシンがファイルのインスタンスに対して工程402で特定されたコンピューティングオペレーションを事前に実行したかどうかを判断するため、図2の仮想マシン202(1)の一部として、工程404において特定されたファイルに関連するユニークな識別子を使用して共有ストア216にクエリを行うことができる。
上記で詳細に説明されるように、共有ストアは、図2の仮想マシン202(1)〜(N)および/またはコンピューティングデバイス302(1)〜(N)など、関連コンピューティングシステムのグループによって共有またはアクセスされ得る。いくつかの例では、これらのコンピューティングシステムは、このファイルメタデータを共有ストア内に格納することによって、関連グループ内の他のコンピューティングシステムとファイルに付随するファイルメタデータを共有することができる。例えば、図2の仮想マシン202(1)〜(N)および/またはコンピューティングデバイス302(1)〜(N)は、図2の仮想マシン202(1)〜(N)および/またはコンピューティングデバイス302(1)〜(N)が遭遇するファイルに対するファイルメタデータを、共有ストア216および306内にそれぞれ格納することができる。図2の仮想マシン202(1)〜(N)および/またはコンピューティングデバイス302(1)〜(N)が共有ストア216および306内にそれぞれ格納することができる情報のタイプの例としては、これらに限定されないが、1)ファイルのハッシュ、2)ファイルに関連して実行された少なくとも1つのコンピューティングオペレーションの結果(マルウェア分析の間にファイルに割り当てられた分類、マルウェア分析の間にファイルに割り当てられた少なくとも1つの分類の論理的根拠、マルウェア分析を実行する際に使用される少なくとも1つのウイルス定義セットもしくはヒューリスティックまたは同様のもの)、3)ファイルに関連して実行された少なくとも1つのコンピューティングオペレーションの日付(ファイルに対して実行された最近のマルウェアスキャンの日付など)、および/または、4)関連コンピューティングシステム間で共有され得る潜在的に有用な任意の他の情報が挙げられる。
上記で詳細に説明されるように、いかなるタイプまたは形式の関連コンピューティングシステムのグループも、共有ストアを共有するか、または、共有ストアにアクセスすることができる。共有ストアを共有するか、または、共有ストアにアクセスすることができる関連コンピューティングシステムのグループのタイプの例としては、これらに限定されないが、共通のホスコンピューティングデバイス上で起動している複数の仮想マシン(図2のホストマシン200上で起動している関連コンピューティングシステムのグループ220など)、共通のネットワーク内に位置する複数の物理的なマシン(例えば、図3のネットワーク304を介して互いに連通している関連コンピューティングシステムのグループ320など)、または、関連コンピューティングシステムの任意の他のグループが挙げられる。
関与するコンピューティングシステムのタイプに応じて、この共有ストアは、ネットワーク接続記憶装置、ストレージエリアネットワーク、ファイルサーバ、クラウドベース記憶装置、ハイパーバイザによって管理されるローカル記憶装置の保護パーティション(例えば、図2の仮想化層204内の共有プロセス206によってアクセスされ得る保護パーティション214)または同様のものの少なくとも一部分を表す場合がある。この共有ストアへのアクセスは、関与するコンピューティングシステムのタイプに依存し得る。例えば、LAN内に位置する物理的なマシンは、TCP/IP通信プロトコルを使用して、ネットワーク接続記憶装置またはストレージエリアネットワーク上に位置する共有ストアと通信することができる。あるいは、共通のホストマシン上に位置する仮想マシンは、仮想化層内で起動している保護プロセスを介して、ハイパーバイザによって管理される保護パーティション内に位置する共有ストアと通信することができる。いくつかの例では、この共有ストアは、ファイルハッシュに基づいてインデックスを付けることができる。
いくつかの例では、コンピューティングシステムは、なりすましおよび/または改ざんを防ぐため、安全通信メカニズムを介してこの共有ストアにアクセスするだけでよい。例えば、共通のホストマシン上に位置する仮想マシンは、仮想化層内で起動している保護プロセスを介して、ハイパーバイザによって管理される保護パーティション内に位置する共有ストアにアクセスするだけでよい。同様に、共通のネットワークに接続された物理的なマシンは、安全な(例えば、暗号化された)通信プロトコルを使用して、ネットワーク接続記憶装置またはストレージエリアネットワーク上に位置する共有ストアと通信するだけでよい。いくつかの例では、安全通信メカニズムのロバスト性および/または攻撃性は、関連コンピューティングシステムのグループのサイズに依存し得るが、その理由は、関連コンピューティングシステムのグループのサイズが大きいほど、安全通信メカニズムへの負担はますます大きくなるためである。
上記で詳細に説明されるように、関連コンピューティングシステムは、追加の物理的なまたは仮想マシンが特定のファイルに対して所望のコンピューティングオペレーションを事前に実行したかを判断するため、ファイルハッシュを使用して、共有ストアにクエリを行うことができる。例えば、仮想マシン202(1)は、1つまたは複数の仮想マシン202(1)〜(N)がファイルに対して所望のコンピューティングオペレーションを事前に実行したかを判断するため、特定のファイルのハッシュを使用して、共有ストア216にクエリを行うことができる。共有ストア216が仮想マシン202(1)〜(N)のいずれも問題のファイルに対して所望のコンピューティングオペレーションを事前に実行しなかったと示せば(例えば、共有ストア216に、問題のファイルに対するファイルメタデータが入っていない場合または問題のファイルに対して実行された所望のコンピューティングオペレーションの結果が入っていない場合)、仮想マシン202(1)は、問題のファイルに対して所望のコンピューティングオペレーションを実行し、次いで、コンピューティングオペレーションの結果を用いて共有ストア202(1)を更新することができる(例えば、共有ストア216内に、問題のファイルのハッシュおよび問題のファイルに対して実行されたコンピューティングオペレーションの結果などのファイルメタデータを格納することによって)。
後の時点において、仮想マシン202(N)は、同じファイルの追加のインスタンスに対して所望のコンピューティングオペレーションを実行する前に共有ストア216にクエリを行うことによって、関連コンピューティングシステム(この場合、仮想マシン202(N))が問題のファイルのインスタンスに対して所望のコンピューティングオペレーションを事前に実行したかを判断することができる。この例では、仮想マシン202(N)は、工程408に関連して以下で説明されるように、再度コンピューティングオペレーションを実行する代わりに、共有ストア216から所望のコンピューティングオペレーションの結果を取り込むことができる。
後に問題のファイルが変更されれば、および、後に仮想マシン202(1)が修正または変更されたファイルに対してコンピューティングオペレーションを実行する必要があると確認すれば、仮想マシン202(1)は、1つまたは複数の仮想マシン202(1)〜(N)が変更されたファイルに対して所望のコンピューティングオペレーションを事前に実行したかを判断するため、修正または変更されたファイルの新しいハッシュを使用して共有ストア216に再度クエリを行うことができる。上記と同様に、共有ストア216が仮想マシン202(1)〜(N)のいずれも変更されたファイルに対して所望のコンピューティングオペレーションを事前に実行しなかったと示せば(すなわち、共有ストア216に、変更されたファイルに対するファイルメタデータが入っていない場合または変更されたファイルに対して実行された所望のコンピューティングオペレーションの結果が入っていない場合)、仮想マシン202(1)は、変更されたファイルに対して所望のコンピューティングオペレーションを実行し、次いで、コンピューティングオペレーションの結果を用いて共有ストア202(1)を更新することができる。
上記の例では、共有ストア216に、オリジナルの変更されていないファイルと変更または修正されたファイルの両方に対するファイルメタデータ(ファイルハッシュおよびコンピューティングオペレーションの結果など)が入っている場合がある。このため、1つまたは複数の仮想マシン202(1)〜(N)は、オリジナルのまたは変更されたファイルのハッシュを使用して共有ストア216にクエリを行うことによって、仮想マシン202(1)〜(N)内の追加の仮想マシンがオリジナルのファイルまたは変更されたファイルのいずれかに対して所望のコンピューティングオペレーションを事前に実行したかどうかを判断することができる。
図5は、上記で詳細に説明されるように、図2および3のそれぞれの共有ストア216および306などの共有ストアの一部分を表し得る例示的なファイル属性データベース120の図である。図5で示されるように、ファイル属性データベース120には、複数のファイルのそれぞれに対する、1)ファイルのハッシュ、2)ファイルの最近のスキャンの日付、3)ファイルの最近のスキャンの日付中に使用されたウイルス定義セット、4)スキャン中にファイルに割り当てられた分類、5)スキャン中にファイルに割り当てられた少なくとも1つの分類の論理的根拠、および、6)ファイルに対するコミュニティベースのレピュテーション情報を特定する情報が入り得る。
いくつかの例では、関連する物理的なまたは仮想マシンのグループ内の物理的なまたは仮想マシンは、追加の物理的なまたは仮想マシンが特定のファイルに対して所望のコンピューティングオペレーションを事前に実行したかどうかを判断するため、共有ストア内のファイル属性データベース120にアクセスすることができる。例えば、図1のクエリモジュール108は、図2の仮想マシン202(1)の一部として、グループ220内の追加の仮想マシンがハッシュ「0xEFCDAB89」を有するファイルに対してマルウェアスキャンを事前に実行したかどうかを判断するため、ファイル属性データベース120が入っている共有ストア216にクエリを行うことができる。この例では、クエリモジュール108は、ハッシュ「0xEFCDAB89」を使用して共有ストア216内のファイル属性データベース120にクエリを行うことによって、グループ220内の追加の仮想マシンが2010年1月2日の問題のファイルに対してマルウェアスキャンを事前に実行したかどうかを判断することができ、ウイルス定義セット3.1294内のシグネチャマッチングにより、問題のファイルが悪質なファイルを表すものと判断した。この例では、ファイル属性データベース120に問題のファイルに対して実行されたマルウェアスキャンの結果が入っているため、クエリモジュール108は、図4の工程408に進むことができる。
いくつかの例では、クエリモジュール108が、共有ストア内のファイル属性データベース120にクエリを行うことによって、関連コンピューティングシステムのグループ内の追加のコンピューティングシステムが問題のファイルに対してマルウェアスキャンを事前に実行したと判断すれば、クエリモジュール108は、この前回のマルウェアスキャン中に使用されたウイルス定義セットもしくはヒューリスティックが問題のコンピューティングシステムによって使用されるべきウイルス定義セットもしくはヒューリスティックと同一であるか、同ウイルス定義セットもしくはヒューリスティックと同様であるか、または、同ウイルス定義セットもしくはヒューリスティックより新しいものであるかどうかも判断することができる。例えば、クエリモジュール108が、図2の仮想マシン202(1)の一部として、前回の仮想マシンは工程402において特定されたファイルに対してマルウェアスキャンを事前に実行したと判断すれば、クエリモジュール108は、この前回の仮想マシンによって使用されたウイルス定義セットもしくはヒューリスティックが仮想マシン202(1)によって現在インストールされているもしくは使用中のウイルス定義セットもしくはヒューリスティックと同一であるか、同ウイルス定義セットもしくはヒューリスティックと同様であるか、または、同ウイルス定義セットもしくはヒューリスティックより新しいものであるかどうかを判断する(例えば、共有ストア216内のファイル属性データベース120内に入っている情報を分析することによって)ことができる。そうであれば、クエリモジュール108は、例示的な方法400の工程408に進むことができる。
しかし、クエリモジュール108が、この前回の仮想マシンによって使用されたウイルス定義セットもしくはヒューリスティックが仮想マシン202(1)によってインストールされているもしくは使用中のウイルス定義セットもしくはヒューリスティックと異なるか、または、同ウイルス定義セットもしくはヒューリスティックより古いものであると判断すれば、クエリモジュール108は、問題のファイルに対して新しいマルウェアスキャンを実行することを仮想マシン202(1)に命令することができる。この例では、クエリモジュール108は、仮想マシン202(1)による新しいマルウェアスキャンの完了と同時に、この新しいマルウェアスキャンの結果を用いて共有ストア216を更新することができる。
図4に戻って、工程408では、本明細書に記載されるシステムの1つまたは複数は、再度コンピューティングオペレーションを実行する代わりに、共有ストアから所望のコンピューティングオペレーションの結果を取り込むことができる。例えば、図1のクエリモジュール108は、図2の仮想マシン202(1)の一部として、共有ストア216内のファイル属性データベース120からハッシュ「0xEFCDAB89」を有するファイルに対して実行されたマルウェアスキャンの結果を取り込むことができる。次いで、クエリモジュール108は、問題のファイルに対して追加のマルウェアスキャンを実行する代わりに、これらの結果を使用することを仮想マシン202(1)に命令することができる。工程408の完了と同時に、図4の例示的な方法400を終了することができる。
上記で詳細に説明されるように、関連コンピューティングシステムのグループによって共有されるストア内の共通のまたは共有されたファイルに対して実行されたリソース消費型のコンピューティングオペレーション(マルウェアスキャンまたはファイルレピュテーションルックアップなど)の結果を格納することによって、本明細書に記載されるシステムおよび方法は、関連コンピューティングシステム(ホストマシン上で起動している仮想マシンのグループまたは共通のネットワークに接続された物理的なコンピューティングデバイスのグループなど)がそのようなコンピューティングオペレーションの結果を共有および再利用することを可能にし得る。このため、これらのシステムおよび方法は、グループ間で共通して共有されるファイルに対して実行される重複コンピューティングオペレーションの数を低減することができ、グループによって一括して消費されるコンピューティングリソースの量を低減する可能性がある。
さらに、本明細書に記載されるシステムおよび方法は、グループ内の他のコンピューティングシステムが遭遇する可能性があるファイル、および/または、頻繁に変更される可能性が低いファイルのインスタンスに対して実行されたコンピューティングオペレーションの結果を共有するだけで、そのようなファイルに対して実行されたコンピューティングオペレーションの結果を共有するために必要なコンピューティングリソースがそのようなコンピューティングオペレーションの結果を共有することによって一括して保存されたコンピューティングリソースに等しくもそれを超えることもないことを保証しようと試みる場合がある。
図6は、本明細書に記載されるおよび/または示される1つまたは複数の実施形態を実施することが可能な例示的なコンピューティングシステム610のブロック図である。コンピューティングシステム610は、コンピュータ可読命令を実行することが可能な任意のシングルまたはマルチプロセッサコンピューティングデバイスまたはシステムを幅広く表す。コンピューティングシステム610の例としては、これらに限定されないが、ワークステーション、ラップトップ、クライアント側端末、サーバ、分配されたコンピューティングシステム、ハンドヘルドデバイスまたは任意の他のコンピューティングシステムもしくはデバイスが挙げられる。その最も基本的な構成では、コンピューティングシステム610は、少なくとも1つのプロセッサ614およびシステムメモリ616を含み得る。
一般に、プロセッサ614は、データの処理または命令の解釈および実行が可能な任意のタイプまたは形式の処理ユニットを表す。ある実施形態では、プロセッサ614は、ソフトウェアアプリケーションまたはモジュールから命令を受け取ることができる。これらの命令は、本明細書に記載されるおよび/または示される例示的な実施形態の1つまたは複数の機能をプロセッサ614に実行させることができる。例えば、プロセッサ614は、単独でまたは他の要素と組み合わせて、本明細書に記載される工程の識別、決定、使用、取込み、作成、受け取り、消去、実行および更新の1つもしくは複数を実行することができる、および/または、実行する手段となり得る。また、プロセッサ614は、本明細書に記載されるおよび/または示される任意の他の工程、方法またはプロセスを実行することもできる、および/または、実行する手段ともなり得る。
一般に、システムメモリ616は、データおよび/またはコンピュータ可読命令を格納することが可能な任意のタイプまたは形式の揮発性または非揮発性記憶装置または媒体を表す。システムメモリ616の例としては、これらに限定されないが、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリまたは任意の他の適切なメモリデバイスが挙げられる。必須ではないが、ある実施形態では、コンピューティングシステム610は、揮発性メモリユニット(例えば、システムメモリ616など)と非揮発性記憶装置(例えば、以下で詳細に説明される一次記憶装置632など)の両方を含み得る。一例では、図1のモジュール102の1つまたは複数は、システムメモリ616にロードされ得る。
また、ある実施形態では、例示的なコンピューティングシステム610は、プロセッサ614およびシステムメモリ616に加えて、1つまたは複数のコンポーネントまたは要素も含み得る。例えば、図6で示されるように、コンピューティングシステム610は、メモリコントローラ618、入出力(I/O)コントローラ620および通信インターフェース622を含み得、その各々は、通信インフラ612を介して相互接続され得る。一般に、通信インフラ612は、コンピューティングデバイスの1つまたは複数のコンポーネント間の通信を容易にすることが可能な任意のタイプまたは形式のインフラを表す。通信インフラ612の例としては、これらに限定されないが、通信バス(ISA、PCI、PCIeまたは同様のバスなど)およびネットワークが挙げられる。
一般に、メモリコントローラ618は、メモリもしくはデータを取り扱うまたはコンピューティングシステム610の1つもしくは複数のコンポーネント間の通信を制御することが可能な任意のタイプまたは形式のデバイスを表す。例えば、ある実施形態では、メモリコントローラ618は、通信インフラ612を介してプロセッサ614、システムメモリ616およびI/Oコントローラ620間の通信を制御することができる。ある実施形態では、メモリコントローラ618は、単独でまたは他の要素と組み合わせて、本明細書に記載されるおよび/または示される1つまたは複数の工程または特徴の識別、決定、使用、取込み、作成、受け取り、消去、実行および更新などを実行することができる、および/または、実行する手段となり得る。
一般に、I/Oコントローラ620は、コンピューティングデバイスの入出力機能を調整および/または制御することが可能な任意のタイプまたは形式のモジュールを表す。例えば、ある実施形態では、I/Oコントローラ620は、プロセッサ614、システムメモリ616、通信インターフェース622、ディスプレイアダプタ626、入力インターフェース630およびストレージインターフェース634などのコンピューティングシステム610の1つまたは複数の要素間のデータ転送を制御するかまたは容易にすることができる。I/Oコントローラ620は、例えば、単独でまたは他の要素と組み合わせて、本明細書に記載される工程の識別、決定、使用、取込み、作成、受け取り、消去、実行および更新の1つもしくは複数を実行する、および/または、実行する手段となるよう使用することができる。また、I/Oコントローラ620は、本開示に記載される他の工程および特徴を実行する、および/または、実行する手段となるよう使用することができる。
通信インターフェース622は、例示的なコンピューティングシステム610と1つまたは複数の追加のデバイスとの間の通信を容易にすることが可能な任意のタイプまたは形式の通信デバイスまたはアダプタを幅広く表す。例えば、ある実施形態では、通信インターフェース622は、コンピューティングシステム610と追加のコンピューティングシステムを含むプライベートまたはパブリックネットワークとの間の通信を容易にすることができる。通信インターフェース622の例としては、これらに限定されないが、有線ネットワークインターフェース(ネットワークインターフェースカードなど)、無線ネットワークインターフェース(無線ネットワークインターフェースカードなど)、モデムおよび任意の他の適切なインターフェースが挙げられる。少なくとも1つの実施形態では、通信インターフェース622は、インターネットなどのネットワークへの直接リンクを介してリモートサーバとの直接接続を実現することができる。また、通信インターフェース622は、例えば、ローカルエリアネットワーク(イーサネット(登録商標)ネットワークなど)、パーソナルエリアネットワーク、電話もしくはケーブルネットワーク、携帯電話接続、衛星データ接続または任意の他の適切な接続を通じて、そのような接続を間接的に実現することもできる。
また、ある実施形態では、通信インターフェース622は、外部のバスまたは通信チャネルを介してコンピューティングシステム610と1つまたは複数の追加のネットワークまたは記憶装置との間の通信を容易にするよう構成されたホストアダプタを表す場合もある。ホストアダプタの例としては、これらに限定されないが、SCSIホストアダプタ、USBホストアダプタ、IEEE1394ホストアダプタ、SATAおよびeSATAホストアダプタ、ATAおよびPATAホストアダプタ、ファイバーチャネルインターフェースアダプタ、イーサネットアダプタまたは同様のものが挙げられる。また、通信インターフェース622は、コンピューティングシステム610が分配されたコンピューティングまたはリモートコンピューティングに参加することを可能にする場合もある。例えば、通信インターフェース622は、実行のためにリモートデバイスから命令を受け取るか、または、リモートデバイスに命令を送信することができる。ある実施形態では、通信インターフェース622は、単独でまたは他の要素と組み合わせて、本明細書に開示される工程の識別、決定、使用、取込み、作成、受け取り、消去、実行および更新の1つまたは複数を実行することができる、および/または、実行する手段となり得る。また、通信インターフェース622は、本開示に記載される他の工程および特徴を実行する、および/または、実行する手段となるよう使用することができる。
図6で示されるように、コンピューティングシステム610は、ディスプレイアダプタ626を介して通信インフラ612と結合される少なくとも1つのディスプレイデバイス624も含み得る。一般に、ディスプレイデバイス624は、ディスプレイアダプタ626によって転送された情報を視覚的に表示することが可能な任意のタイプまたは形式のデバイスを表す。同様に、ディスプレイアダプタ626は、一般に、ディスプレイデバイス624上で表示するため、通信インフラ612から(または、当技術分野で公知のフレームバッファから)グラフィックス、テキストおよび他のデータを転送するよう構成された任意のタイプまたは形式のデバイスを表す。
また、図6で示されるように、例示的なコンピューティングシステム610は、入力インターフェース630を介して通信インフラ612と結合される少なくとも1つの入力デバイス628も含み得る。一般に、入力デバイス628は、例示的なコンピューティングシステム610へのコンピュータまたは人間が生成した入力を提供することが可能な任意のタイプまたは形式の入力デバイスを表す。入力デバイス628の例としては、これらに限定されないが、キーボード、ポインティングデバイス、音声認識デバイスまたは任意の他の入力デバイスが挙げられる。少なくとも1つの実施形態では、入力デバイス628は、単独でまたは他の要素と組み合わせて、本明細書に開示される工程の識別、決定、使用、取込み、作成、受け取り、消去、実行および更新の1つまたは複数を実行することができる、および/または、実行する手段となり得る。また、入力デバイス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は、例えば、単独でまたは他の要素と組み合わせて、本明細書に開示される工程の識別、決定、使用、取込み、作成、受け取り、消去、実行および更新の1つまたは複数を実行する、および/または、実行する手段となるよう使用することができる。また、記憶装置632および633は、本開示に記載される他の工程および特徴を実行する、および/または、実行する手段となるよう使用することもできる。
また、他の多くのデバイスまたはサブシステムを、コンピューティングシステム610に接続することができる。逆に、図6で示されるコンポーネントおよびデバイスのすべてが、本明細書に記載されるおよび/または示される実施形態を実施するために必ずしも存在しているわけではない。また、上記で言及されたデバイスまたはサブシステムは、図6で示されるものとは異なる形で相互接続することもできる。また、コンピューティングシステム610は、任意の数のソフトウェア、ファームウェアおよび/またはハードウェア構成を使用することもできる。例えば、本明細書に開示される1つまたは複数の例示的な実施形態は、コンピュータ可読媒体上でコンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令またはコンピュータ制御論理とも呼ばれる)として符号化することができる。語句「コンピュータ可読媒体」は、一般に、コンピュータ可読命令を格納または送達することが可能な任意の形式のデバイス、キャリアまたは媒体を指す。コンピュータ可読媒体の例としては、これらに限定されないが、搬送波などの伝送型の媒体、ならびに、磁気記憶媒体(例えば、ハードディスクドライブおよびフロッピーディスク)、光記憶媒体(例えば、CD−ROMまたはDVD−ROM)、電子記憶媒体(例えば、ソリッドステートドライブおよびフラッシュメディア)および他の分配システムなどの物理的な媒体が挙げられる。
コンピュータプログラムが入っているコンピュータ可読媒体は、コンピューティングシステム610にロードすることができる。次いで、コンピュータ可読媒体上に格納されたコンピュータプログラムのすべてまたは一部分は、次いで、システムメモリ616ならびに/または記憶装置632および633のさまざまな部分に格納することができる。プロセッサ614によって実行されると、コンピューティングシステム610にロードされたコンピュータプログラムは、プロセッサ614に、本明細書に記載されるおよび/または示される1つまたは複数の例示的な実施形態の機能を実行させる、および/または、実行する手段となるようにすることができる。それに加えてまたは代替法として、本明細書に記載されるおよび/または示される1つまたは複数の例示的な実施形態は、ファームウェアおよび/またはハードウェアで実施することができる。例えば、コンピューティングシステム610は、本明細書に開示された1つまたは複数の例示的な実施形態を実施するよう適合された特定用途向け集積回路(ASIC)として構成され得る。
図7は、クライアントシステム710、720および730ならびにサーバ740および745をネットワーク750と結合することができる例示的なネットワークアーキテクチャ700のブロック図である。一般に、クライアントシステム710、720および730は、図6の例示的なコンピューティングシステム610などの任意のタイプまたは形式のコンピューティングデバイスまたはシステムを表す。同様に、サーバ740および745は、一般に、さまざまなデータベースサービスを提供するよう構成された、および/または、あるソフトウェアアプリケーションを起動するよう構成された、アプリケーションサーバまたはデータベースサーバなどのコンピューティングデバイスまたはシステムを表す。一般に、ネットワーク750は、例えば、イントラネット、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)またはインターネットを含む任意の電気通信ネットワークまたはコンピュータネットワークを表す。一例では、クライアントシステム710、720および/もしくは730は図1のモジュール102を含み得、ならびに/または、サーバ740および/もしくは745は図1のファイル属性データベース120を含み得る。
図7で示されるように、1つまたは複数の記憶装置760(1)〜(N)は、サーバ740に直接取り付けることができる。同様に、1つまたは複数の記憶装置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は、装置790(1)〜(N)およびアレイ795がクライアントシステム710、720および730にローカルで接続されたデバイスのように見えるように、ネットワーク750ならびにサーバ740および745を介して、クライアントシステム710、720および730と記憶装置790(1)〜(N)および/またはインテリジェントなストレージアレイ795との通信を容易にすることもできる。記憶装置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はデータを交換するためのネットワーク(インターネットなど)の使用について示すが、本明細書に記載されるおよび/または示される実施形態は、インターネットまたは任意の特定のネットワークベースの環境に限定されない。
少なくとも1つの実施形態では、本明細書に開示される1つまたは複数の例示的な実施形態のすべてまたは一部分は、コンピュータプログラムとして符号化することができ、サーバ740、サーバ745、記憶装置760(1)〜(N)、記憶装置770(1)〜(N)、記憶装置790(1)〜(N)、インテリジェントなストレージアレイ795またはそれらの任意の組合せにロードし、これらによって実行することができる。また、本明細書に開示される1つまたは複数の例示的な実施形態のすべてまたは一部分は、コンピュータプログラムとして符号化することができ、サーバ740に格納し、サーバ745によって起動し、ネットワーク750上でクライアントシステム710、720および730に分配することもできる。それに応じて、ネットワークアーキテクチャ700は、単独でまたは他の要素と組み合わせて、本明細書に開示される工程の識別、決定、使用、取込み、作成、受け取り、消去、実行および更新の1つまたは複数を実行することができる、および/または、実行する手段となり得る。また、ネットワークアーキテクチャ700は、本開示に記載される他の工程および特徴を実行する、および/または、実行する手段となるよう使用することもできる。
上記で詳細に説明されるように、コンピューティングシステム610および/またはネットワークアーキテクチャ700の1つまたは複数のコンポーネントは、単独でまたは他の要素と組み合わせて、関連コンピューティングシステム間でコンピューティングオペレーションの結果を共有するための例示的な方法の1つまたは複数の工程を実行することができる、および/または、実行する手段となり得る。一例では、方法は、1)ファイルに対してコンピューティングオペレーションを実行する必要があるかを確認する工程、2)ファイルに関連するユニークな識別子を特定する工程、3)ユニークな識別子を使用して関連コンピューティングシステムのグループによって共有される共有ストアにクエリを行うことによって、関連コンピューティングシステムのグループ内の少なくとも1つのコンピューティングシステムがファイルのインスタンスに対してコンピューティングオペレーションを事前に実行したかを判断する工程、ならびに、4)コンピューティングオペレーションを実行する代わりに、共有ストアからコンピューティングオペレーションの結果を取り込む工程を含み得る。
一例では、ファイルに関連するユニークな識別子を特定する工程は、ファイルのハッシュを特定する工程を含み得る。この例では、ファイルのハッシュを特定する工程は、ハッシュを作成する工程および/またはローカルストアからハッシュを取り込む工程を含み得る。また、方法は、ファイルが修正されているか判断する工程と、次いで、ローカルストアからファイルに関連する情報を消去する工程とを含み得る。
また、いくつかの例では、方法は、ファイルに関連するユニークな識別子を特定する前に、ファイルの追加のインスタンスが関連コンピューティングシステムのグループ内の少なくとも1つの追加のコンピューティングシステム上に位置する可能性があるか判断する工程、および/または、ファイルが頻繁に変更される可能性が低いか判断する工程も含み得る。これらの例では、ファイルの追加のインスタンスが関連コンピューティングシステムのグループ内の少なくとも1つの追加のコンピューティングシステム上に位置する可能性があるか判断する工程は、ファイルは非ユーザが生成したファイルが入っている可能性がある位置に位置するか判断する工程、および/または、ファイルはユーザが生成したファイルが入っている可能性がある位置に位置しないか判断する工程を含み得る。同様に、ファイルが頻繁に変更される可能性が低いか判断する工程は、ファイルは静的なファイルと一般に関連する位置に位置するか判断する工程、ファイルは既定の期間内において既定の回数より少ない回数で変更されたか判断する工程、および/または、ファイルは既定の期間を超えて静的であったか判断する工程を含み得る。
コンピューティングオペレーションの例としては、これらに限定されないが、ファイルのマルウェア分析、ファイルのデータ損失防止分析、ファイルに対するコミュニティベースのレピュテーションルックアップおよび/またはファイルのファイルタイプ分析が挙げられる。共有ストアには、ファイルのハッシュ、ファイルに関連して実行された少なくとも1つのコンピューティングオペレーションの結果および/またはファイルに関連して実行された少なくとも1つのコンピューティングオペレーションの日付が入り得る。さらに、コンピューティングオペレーションの結果は、マルウェア分析の間にファイルに割り当てられた分類、マルウェア分析の間にファイルに割り当てられた少なくとも1つの分類の論理的根拠および/またはマルウェア分析を実行する際に使用される少なくとも1つのウイルス定義セットもしくはヒューリスティックを特定する情報を含み得る。
いくつかの例では、関連コンピューティングシステムのグループ内の少なくとも1つのコンピューティングシステムがファイルのインスタンスに対してコンピューティングオペレーションを事前に実行したかを判断する工程は、関連コンピューティングシステムのグループ内の少なくとも1つのコンピューティングシステムが同一の、同様なまたはより最近のウイルス定義セットもしくはヒューリスティックを使用してファイルのインスタンスに対してマルウェア分析を事前に実行したか判断する工程を含み得る。
いくつかの例では、共有ストアは、ネットワーク接続記憶装置、ストレージエリアネットワーク、ファイルサーバ、クラウドベース記憶装置、および/または、ハイパーバイザによって管理されるローカル記憶装置の保護パーティションの少なくとも一部分を含み得る。また、共有ストアは、ファイルハッシュに基づいてインデックスを付けることもできる。さらに、関連コンピューティングシステムのグループは、共通のホストコンピューティングデバイス上で起動している複数の仮想マシンおよび/または共通のネットワークに接続された複数の物理的なマシンを含み得る。
また、一例では、方法は、1)ファイルに対して追加のコンピューティングオペレーションを実行する必要があるかを確認する工程、2)ユニークな識別子を使用して共有ストアにクエリを行うことによって、ファイルのインスタンスに対して追加のコンピューティングオペレーションを事前に実行しなかったか判断する工程、3)ファイルに対して追加のコンピューティングオペレーションを実行する工程、ならびに、4)追加のコンピューティングオペレーションの結果を用いて共有ストアを更新する工程も含み得る。
前述の開示は特定のブロック図、フローチャートおよび例を使用してさまざまな実施形態について記載しているが、本明細書に記載されるおよび/または示される各ブロック図のコンポーネント、フローチャートの工程、オペレーションおよび/またはコンポーネントは、広範囲にわたるハードウェア、ソフトウェアまたはファームウェア(または、それらの任意の組合せ)構成を使用して、個別におよび/または一括して実装することができる。さらに、他のコンポーネント内に含まれるコンポーネントのいかなる開示も、他の多くのアーキテクチャを実装して同じ機能性を達成することができるため、本来は例示的なものであると見なすべきである。
いくつかの例では、図1の例示的なシステム100のすべてまたは一部分は、クラウドコンピューティングまたはネットワークベースの環境の複数の部分を表す場合がある。クラウドコンピューティング環境は、インターネットを介してさまざまなサービスおよびアプリケーションを提供することができる。これらのクラウドベースのサービス(例えば、サービスとしてのソフトウェア、サービスとしてのプラットホーム、サービスとしてのインフラなど)は、ウェブブラウザまたは他のリモートインターフェースを通じてアクセスすることができる。本明細書に記載されるさまざまな機能は、リモートデスクトップ環境または任意の他のクラウドベースのコンピューティング環境を通じて提供することができる。
本明細書に記載されるおよび/または示されるプロセスパラメータおよび工程の順序は単なる例示として与えられるものであり、要望通り変更することができる。例えば、本明細書に記載されるおよび/または示される工程は特定の順番で示されるまたは論じられる場合があるが、これらの工程は、必ずしも示されるまたは論じられる順番で実行する必要があるわけではない。本明細書に記載されるおよび/または示されるさまざまな例示的な方法は、本明細書に記載されるまたは示される工程の1つもしくは複数を省略するか、または、開示される工程に加えて追加の工程を含めることもできる。
完全に機能的なコンピューティングシステムとの関連でさまざまな実施形態が本明細書に記載されるおよび/または示されるが、これらの例示的な実施形態の1つまたは複数は、実際に分配を行うために使用される特定のタイプのコンピュータ可読媒体に関わらず、プログラム製品としてさまざまな形式で分配され得る。また、本明細書に開示される実施形態は、ある一定のタスクを実行するソフトウェアモジュールを使用して実施することもできる。これらのソフトウェアモジュールは、コンピュータ可読記憶媒体上またはコンピューティングシステムに格納することができるスクリプト、バッチまたは他の実行可能なファイルを含み得る。いくつかの実施形態では、これらのソフトウェアモジュールは、本明細書に開示される例示的な実施形態の1つまたは複数を実行するようコンピューティングシステムを構成することができる。
さらに、本明細書に記載される1つまたは複数のモジュールは、データ、物理的デバイスおよび/または物理的デバイスの表現をある形式から別の形式へ変換することができる。例えば、図1のクエリモジュール108は、図2および3の共有ストア216および306の特性または特徴を、そのようなストア内の関連コンピューティングシステムによって実行されたコンピューティングオペレーションの結果を修正または格納することによって、変換することができる。
先の説明は、当業者が本明細書に開示される例示的な実施形態のさまざまな態様を最良に利用できるよう提供されている。この例示的な説明は、包括的であるまたは開示される形式と全く同一の形式に限定することを意図しない。多くの変更形態および変形形態を、本開示の精神および範囲から逸脱することなく作成することができる。本明細書に開示される実施形態は、すべての点において、限定的なものではなく例示的なものとして見なされるべきである。本開示の範囲を決定する際には、添付の特許請求の範囲およびその均等物を参照すべきである。
特に断りのない限り、本明細書および特許請求の範囲で使用される単数形「a」または「an」は、「少なくとも1つの(at least one of)」の意味に解釈されるものとする。さらに、使い易さを考慮して、本明細書および特許請求の範囲で使用される語「を含む(including)」および「を有する(having)」は、語「備える、含む(comprising)」と交換可能であり、同語と同じ意味を有する。

Claims (20)

  1. 関連コンピューティングシステム間でコンピューティングオペレーションの結果を共有するためのコンピュータ実装方法であって、前記方法の少なくとも一部分は、少なくとも1つのプロセッサを備えるコンピューティングデバイスによって実行され、
    ファイルに対してコンピューティングオペレーションを実行する必要があるかを確認する工程と、
    前記ファイルに関連するユニークな識別子を特定する工程と、
    前記ユニークな識別子を使用して関連コンピューティングシステムのグループによって共有される共有ストアにクエリを行うことによって、前記関連コンピューティングシステムのグループ内の少なくとも1つのコンピューティングシステムが前記ファイルのインスタンスに対して前記コンピューティングオペレーションを事前に実行したかを判断する工程と、
    前記コンピューティングオペレーションを実行する代わりに、前記共有ストアから前記コンピューティングオペレーションの結果を取り込む工程と
    を含むコンピュータ実装方法。
  2. 前記コンピューティングオペレーションは、
    前記ファイルのマルウェア分析、
    前記ファイルのデータ損失防止分析、
    前記ファイルに対するコミュニティベースのレピュテーションルックアップ、
    前記ファイルのファイルタイプ分析
    の少なくとも1つを含む、請求項1に記載の方法。
  3. 前記ファイルに関連するユニークな識別子を特定する工程は、前記ファイルのハッシュを特定することを含む、請求項1に記載の方法。
  4. 前記ファイルのハッシュを特定する工程は、
    前記ハッシュを作成すること、
    ローカルストアから前記ハッシュを取り込むこと
    の少なくとも1つを含む、請求項3に記載の方法。
  5. 前記ファイルが修正されているか判断する工程と、
    前記ローカルストアから前記ファイルに関連する情報を消去する工程と
    をさらに含む、請求項4に記載の方法。
  6. 前記ファイルに関連するユニークな識別子を特定する前に、
    前記ファイルの追加のインスタンスが前記関連コンピューティングシステムのグループ内の少なくとも1つの追加のコンピューティングシステム上に位置する可能性があるか判断する工程、
    前記ファイルが頻繁に変更される可能性が低いか判断する工程
    の少なくとも1つをさらに含む、請求項1に記載の方法。
  7. 前記ファイルの追加のインスタンスが前記関連コンピューティングシステムのグループ内の少なくとも1つの追加のコンピューティングシステム上に位置する可能性があるか判断する工程は、
    前記ファイルは非ユーザが生成したファイルが入っている可能性がある位置に位置するか判断すること、
    前記ファイルはユーザが生成したファイルが入っている可能性がある位置に位置しないか判断すること
    の少なくとも1つを含む、請求項6に記載の方法。
  8. 前記ファイルが頻繁に変更される可能性が低いか判断する工程は、
    前記ファイルは静的なファイルと一般に関連する位置に位置するか判断すること、
    前記ファイルは既定の期間内において既定の回数より少ない回数で変更されたか判断すること、
    前記ファイルは既定の期間を超えて静的であったか判断すること
    の少なくとも1つを含む、請求項6に記載の方法。
  9. 前記共有ストアには、
    前記ファイルのハッシュ、
    前記ファイルに関連して実行された少なくとも1つのコンピューティングオペレーションの結果、
    前記ファイルに関連して実行された少なくとも1つのコンピューティングオペレーションの日付
    の少なくとも1つが入っている、請求項1に記載の方法。
  10. 前記コンピューティングオペレーションの結果は、
    マルウェア分析の間に前記ファイルに割り当てられた分類、
    前記マルウェア分析の間に前記ファイルに割り当てられた少なくとも1つの前記分類の論理的根拠、
    前記マルウェア分析を実行する際に使用される少なくとも1つのウイルス定義セットもしくはヒューリスティック
    の少なくとも1つを特定する情報を含む、請求項9に記載の方法。
  11. 前記関連コンピューティングシステムのグループ内の少なくとも1つのコンピューティングシステムが前記ファイルのインスタンスに対して前記コンピューティングオペレーションを事前に実行したかを判断する工程は、前記関連コンピューティングシステムのグループ内の少なくとも1つのコンピューティングシステムが
    同一のウイルス定義セットもしくはヒューリスティックと、
    同様なウイルス定義セットもしくはヒューリスティックと、
    より最近のウイルス定義セットもしくはヒューリスティックと
    を使用して前記ファイルのインスタンスに対してマルウェア分析を事前に実行したか判断する工程を含む、請求項1に記載の方法。
  12. 前記共有ストアは、
    ネットワーク接続記憶装置、
    ストレージエリアネットワーク、
    ファイルサーバ、
    クラウドベース記憶装置、
    ハイパーバイザによって管理されるローカル記憶装置の保護パーティション
    の少なくとも1つの少なくとも一部分を備える、請求項1に記載の方法。
  13. 前記共有ストアは、ファイルハッシュに基づいてインデックスが付けられる、請求項1に記載の方法。
  14. 前記関連コンピューティングシステムのグループは、
    共通のホストコンピューティングデバイス上で起動している複数の仮想マシンと、
    共通のネットワークに接続された複数の物理的なマシンと
    を含む、請求項1に記載の方法。
  15. 前記ファイルに対して追加のコンピューティングオペレーションを実行する必要があるかを確認する工程と、
    前記ユニークな識別子を使用して前記共有ストアにクエリを行うことによって、前記ファイルのインスタンスに対して前記追加のコンピューティングオペレーションを事前に実行しなかったか判断する工程と、
    前記ファイルに対して前記追加のコンピューティングオペレーションを実行する工程と、
    前記追加のコンピューティングオペレーションの結果を用いて前記共有ストアを更新する工程と
    をさらに含む、請求項1に記載の方法。
  16. 関連コンピューティングシステム間でコンピューティングオペレーションの結果を共有するためのシステムであって、
    ファイルに対してコンピューティングオペレーションを実行する必要があるかを確認するようプログラムされたオペレーション識別モジュールと、
    前記ファイルに関連するユニークな識別子を特定するようプログラムされたファイル識別モジュールと、
    前記ユニークな識別子を使用して関連コンピューティングシステムのグループによって共有される共有ストアにクエリを行うことによって、前記関連コンピューティングシステムのグループ内の少なくとも1つのコンピューティングシステムが前記ファイルのインスタンスに対して前記コンピューティングオペレーションを事前に実行したかを判断するように、
    前記コンピューティングオペレーションを実行する代わりに、前記共有ストアから前記コンピューティングオペレーションの結果を取り込むように
    プログラムされたクエリモジュールと、
    前記オペレーション識別モジュール、前記ファイル識別モジュールおよび前記クエリモジュールを実行するよう構成された少なくとも1つのプロセッサと
    を備えるシステム。
  17. 前記ファイル識別モジュールは、前記ファイルに関連するユニークな識別子を特定する前に、
    前記ファイルの追加のインスタンスが前記関連コンピューティングシステムのグループ内の少なくとも1つの追加のコンピューティングシステム上に位置する可能性があるか、
    前記ファイルが頻繁に変更される可能性が低いか、
    の少なくとも1つを判断するようさらにプログラムされる、請求項16に記載のシステム。
  18. 前記共有ストアには、
    前記ファイルのハッシュ、
    前記ファイルに関連して実行された少なくとも1つのコンピューティングオペレーションの結果、
    前記ファイルに関連して実行された少なくとも1つのコンピューティングオペレーションの日付
    の少なくとも1つが入っている、請求項16に記載のシステム。
  19. 前記共有ストアは、
    ネットワーク接続記憶装置、
    ストレージエリアネットワーク、
    ファイルサーバ、
    クラウドベース記憶装置、
    ハイパーバイザによって管理されるローカル記憶装置の保護パーティション
    の少なくとも1つの少なくとも一部分を備える、請求項16に記載のシステム。
  20. コンピューティングデバイスの少なくとも1つのプロセッサによって実行されると、前記コンピューティングデバイスに、
    ファイルに対してコンピューティングオペレーションを実行する必要があるかを確認させる、
    前記ファイルに関連するユニークな識別子を特定させる、
    前記ユニークな識別子を使用して関連コンピューティングシステムのグループによって共有される共有ストアにクエリを行うことによって、前記関連コンピューティングシステムのグループ内の少なくとも1つのコンピューティングシステムが前記ファイルのインスタンスに対して前記コンピューティングオペレーションを事前に実行したかを判断させる、
    前記コンピューティングオペレーションを実行する代わりに、前記共有ストアから前記コンピューティングオペレーションの結果を取り込ませる、
    1つまたは複数のコンピュータ実行可能命令を含む、コンピュータ可読記憶媒体。
JP2012551167A 2010-01-29 2010-12-28 関連コンピューティングシステム間でコンピューティングオペレーションの結果を共有するためのシステムおよび方法 Active JP5816198B2 (ja)

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/696,970 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
JP2013518342A true JP2013518342A (ja) 2013-05-20
JP5816198B2 JP5816198B2 (ja) 2015-11-18

Family

ID=43762776

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012551167A Active JP5816198B2 (ja) 2010-01-29 2010-12-28 関連コンピューティングシステム間でコンピューティングオペレーションの結果を共有するためのシステムおよび方法

Country Status (5)

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

Families Citing this family (24)

* 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
US20120260304A1 (en) * 2011-02-15 2012-10-11 Webroot Inc. Methods and apparatus for agent-based malware management
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
CN103019705B (zh) * 2012-11-28 2015-12-02 南开大学 基于持久存储既有计算结果来加速程序计算的方法及系统
CN102981856B (zh) * 2012-11-28 2015-08-12 南开大学 基于网络的程序计算结果存储与检索方法及系统
US9443016B2 (en) * 2013-02-08 2016-09-13 Verbify 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 中国联合网络通信集团有限公司 虚拟机之间的通信方法、设备和系统
CN108369716B (zh) * 2015-12-17 2022-03-15 依视路国际公司 分布式光学作业和制造计算系统与方法
US10601863B1 (en) 2016-03-25 2020-03-24 Fireeye, Inc. System and method for managing sensor enrollment
US10616266B1 (en) 2016-03-25 2020-04-07 Fireeye, Inc. Distributed malware detection system and submission workflow thereof
US10785255B1 (en) 2016-03-25 2020-09-22 Fireeye, Inc. Cluster configuration within a scalable 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
CN108494877A (zh) * 2018-04-13 2018-09-04 郑州云海信息技术有限公司 一种nas集群系统及nas集群运行方法
CN111083212B (zh) * 2019-12-09 2022-09-02 荏原电产(青岛)科技有限公司 一种高速采集数据自动计算的方法
CN117032683A (zh) * 2023-08-18 2023-11-10 北京领雁科技股份有限公司 用于基于组件构建业务系统的方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030023866A1 (en) * 2001-07-26 2003-01-30 Hinchliffe Alex James Centrally managed malware scanning
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

Family Cites Families (16)

* 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
CA2036688C (en) * 1990-02-28 1995-01-03 Lee W. Tower Multiple cluster signal processor
US5960170A (en) * 1997-03-18 1999-09-28 Trend Micro, Inc. Event triggered iterative virus detection
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
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.
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 北京瑞星信息技术有限公司 计算机有害程序自动防护方法及装置
US7797748B2 (en) 2007-12-12 2010-09-14 Vmware, Inc. On-access anti-virus mechanism for virtual machine architecture
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
CN102498491A (zh) * 2009-09-14 2012-06-13 森清 安全审计系统及安全审计方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030023866A1 (en) * 2001-07-26 2003-01-30 Hinchliffe Alex James Centrally managed malware scanning
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

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5816198B2 (ja) 関連コンピューティングシステム間でコンピューティングオペレーションの結果を共有するためのシステムおよび方法
JP6196393B2 (ja) プリインストールアプリケーションのスキャンを最適化するためのシステム及び方法
JP5758995B2 (ja) 仮想マシン間で分析の結果を共有するためのシステム、方法及びコンピュータ可読記憶媒体
US9792306B1 (en) Data transfer between dissimilar deduplication systems
US8806625B1 (en) Systems and methods for performing security scans
JP5976020B2 (ja) アンチマルウェアメタデータのルックアップを行うためのシステム及び方法
JP5978383B2 (ja) 非反復的マルウェアスキャンを実施するためにプロパティテーブルを使用するためのシステム及び方法
US20150363222A1 (en) System, method and computer program product for data processing and system deployment in a virtual environment
JP5520291B2 (ja) ファイル分類を特定する方法およびシステム
JP6186374B2 (ja) 仮想化されたプラットフォームへ安全に移行するためのシステム及び方法
US8561180B1 (en) Systems and methods for aiding in the elimination of false-positive malware detections within enterprises
US20150244802A1 (en) Importing and exporting virtual disk images
US9946724B1 (en) Scalable post-process deduplication
US8572730B1 (en) Systems and methods for revoking digital signatures
US10467190B2 (en) Tracking access pattern of inodes and pre-fetching inodes
WO2018064319A1 (en) Tracking access pattern of inodes and pre-fetching inodes
US9003533B1 (en) Systems and methods for detecting malware
US9146950B1 (en) Systems and methods for determining file identities
US9122690B1 (en) Systems and methods for implementing non-native file attributes on file systems
US8839374B1 (en) Systems and methods for identifying security risks in downloads
US8364705B1 (en) Methods and systems for determining a file set
US11120169B1 (en) Systems and methods for identifying malware locations based on analyses of backup files
US20180089086A1 (en) Tracking access pattern of inodes and pre-fetching inodes
US11288361B1 (en) Systems and methods for restoring applications
US10437683B1 (en) Systems and methods for protecting data affected by system changes

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131028

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20131115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150615

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: 20150908

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150925

R150 Certificate of patent or registration of utility model

Ref document number: 5816198

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