(57)【特許請求の範囲】
【請求項１】
複数の保護する仮想マシンを有する分散ネットワークにおける悪意のあるファイルを検出する方法であって、
決定及び取得工程と、収集工程と、関数決定工程１と、関数決定工程２と、選択工程と、を備え、
前記決定及び取得工程では、前記複数の保護する仮想マシンから選択された１つの保護された仮想マシンに格納された少なくとも１つのファイルを、前記保護された仮想マシンが決定して取得し、
前記収集工程では、前記複数の保護する仮想マシンの計算資源の特性と、前記複数の保護する仮想マシンの計算資源の利用の規則を命令する、アンチウィルススキャンの１つ以上のパラメータを、前記保護された仮想マシンが収集し、
前記関数決定工程１では、少なくとも収集された前記特性に基いて、前記複数の保護する仮想マシンの計算資源の特性の時間依存を示す特性近似時間関数と前記アンチウィルススキャンの１つ以上のパラメータの前記特性への依存を示すパラメータ近似関数とを前記保護された仮想マシンが決定し、
前記関数決定工程２では、少なくとも前記計算資源の特性近似時間関数と前記１つ以上のパラメータ近似関数に基いて、前記アンチウィルススキャンの有効性の時間依存を示す有効性近似時間関数を、前記保護された仮想マシンが決定し、
前記選択工程では、少なくとも前記アンチウィルススキャンの有効性近似時間関数に基いて、前記少なくとも１つのファイルが悪意のあるものか否かを決定するために、前記複数の保護する仮想マシンから前記アンチウィルススキャンを実行する少なくとも１つの仮想マシンを、前記保護された仮想マシンが選択する、方法。
【請求項２】
前記選択工程は、選択された前記アンチウィルススキャンを実行する仮想マシンについて、基準（１）〜（５）のうちの少なくとも１つを満たすことによって、アンチウィルススキャンの実行に際し最も効果的な開始時間を決定する工程をさらに備え、
前記基準（１）は、前記アンチウィルススキャンにかかる時間が最も少ないことであり、
前記基準（２）は、前記アンチウィルススキャンにかかる時間が予定されていたものよりも短いことであり、
前記基準（３）は、前記アンチウィルススキャンが予定されていた時間までに完了することであり、
前記基準（４）は、前記アンチウィルススキャンを実行するために必要とする前記仮想マシンの計算資源が最小であることであり、
前記基準（５）は、前記アンチウィルススキャンを実行するために必要とする前記仮想マシンの計算資源が予定されていたものより少ないことである、
請求項１に記載の方法。
【請求項３】
前記選択工程は、
予定されたタイムスロットで利用可能な計算資源を用いて、前記少なくとも１つの保護する仮想マシンが前記少なくとも１つのファイルのアンチウィルススキャンを少なくとも実行することができることを検出する工程、
前記分散ネットワーク内の複数の保護する仮想マシンの中で計算された作業負荷レベルが最も低い前記少なくとも１つの保護する仮想マシンを検出する工程、
前記計算された作業負荷レベルが設定された閾値よりも低い前記少なくとも１つの保護する仮想マシンを検出する工程、又は
前記複数の保護する仮想マシンのうち２つ以上の仮想マシンであって、それらの結合作業負荷レベルが、前記複数の保護する仮想マシンの残りの仮想マシンの結合された作業負荷レベルよりも小さいものを検出する工程、
のいずれかを備える、請求項１に記載の方法。
【請求項４】
前記収集工程は、
前記少なくとも１つのファイルの取得と、前記少なくとも１つのファイルが悪意のあるものかの決定との間の時間間隔、
前記アンチウィルススキャンのために前記仮想マシンへ転送されたファイルの数、
前記複数の前記仮想マシンの各々の計算能力の、
少なくともいずれか１つを検出し、その検出結果を前記計算資源の特性として収集する工程をさらに備える
請求項１に記載の方法。
【請求項５】
前記アンチウィルススキャンの１つ以上のパラメータは、
前記複数の仮想マシンによって利用される前記悪意のあるファイルを検出する方法であって、シグネチャ解析、ヒューリスティック分析、エミュレーション結果の分析、ホワイトリスト・ブラックリストによる分析、のうちの少なくとも１つを含む方法か、
前記アンチウィルススキャンを実行するために利用される前記複数の保護する仮想マシンの計算資源の特性、
の少なくともいずれか１つを備える、請求項１に記載の方法。
【請求項６】
前記悪意のあるファイルを検出する方法は、少なくとも前記アンチウィルススキャンが行われる最長時間とスキャンされるファイルのエミュレーションの深度、に基づいて決定される、請求項５に記載の方法。
【請求項７】
前記複数の保護する仮想マシンの前記特性近似時間関数は、少なくとも各仮想マシンの前記計算資源の特性に関する収集データに基づいて決定され、各仮想マシンの計算資源の特性は選択された時間にアクセス可能であり、前記時間は各仮想マシンの前記計算資源の特性の決定時間、及び前記時間は各仮想マシンの前記計算資源の特性を決定するために必要な時間である、請求項１に記載の方法。
【請求項８】
前記アンチウィルススキャンの前記有効性近似時間関数が、前記少なくとも１つのファイルのタイプ及びサイズを定義するパラメータに基づいて決定される、請求項１に記載の方法。
【請求項９】
複数の保護する仮想マシンを有する分散ネットワークにおいて悪意のあるファイルを検出するシステムであって、
少なくとも１つのシンクライアントが動作している複数の保護する仮想マシンから選択された１つの保護された仮想マシンを備え、
前記保護された仮想マシンは、
アンチウィルススキャンを実行するために、前記保護された仮想マシンに格納された少なくとも１つのファイルを決定して取得し、
前記複数の保護する仮想マシンの計算資源の特性と前記複数の保護する仮想マシンの計算資源の利用の規則を命令する、アンチウィルススキャンの１つ以上のパラメータを収集し、
収集された前記特性に少なくとも基いて、前記複数の保護された仮想マシンの計算資源の特性の時間依存を示す特性近似時間関数と前記アンチウィルススキャンに関連する前記１つ以上のパラメータの前記特性への依存を示すパラメータ近似関数とを決定し、
前記計算資源の特性近似時間関数と前記１つ以上のパラメータ近似関数に少なくとも基いて、前記アンチウィルススキャンの有効性の時間依存を示す有効性近似時間関数を決定し、
前記アンチウィルススキャンの前記有効性近似時間関数に少なくとも基いて、前記少なくとも１つのファイルが悪意のあるものか否かを決定するために、前記複数の保護する仮想マシンから前記アンチウィルススキャンを実行する少なくとも１つの仮想マシンを選択する、
システム。
【請求項１０】
前記仮想マシンが、選択された前記アンチウィルススキャンを実行する仮想マシンについて、基準（１）〜（５）のうちの少なくとも１つを満たすことによって、アンチウィルススキャンの実行に際し最も効果的な開始時間をさらに決定するように構成されており、
前記基準（１）は、前記アンチウィルススキャンにかかる時間が最も少ないことであり、
前記基準（２）は、前記アンチウィルススキャンにかかる時間が予定されていたものよりも少ないことであり、
前記基準（３）は、前記アンチウィルススキャンが予定されていた時間までに完了することであり、
前記基準（４）は、前記アンチウィルススキャンを実行するために、前記仮想マシンの計算資源を最小限でしか必要としないことであり、
前記基準（５）は、前記アンチウィルススキャンを実行するために、前記仮想マシンの計算資源を予定されていたものより少ない量しか必要としないことである、
請求項９に記載のシステム。
【請求項１１】
前記保護された仮想マシンが、
予定されたタイムスロットで利用可能な計算資源を用いて、前記少なくとも１つの保護する仮想マシンが前記少なくとも１つのファイルのアンチウィルススキャンを少なくとも実行することができることを検出し、
前記分散ネットワーク内の複数の保護する仮想マシンの中で計算された作業負荷レベルが最も低い前記少なくとも１つの保護する仮想マシンを検出し、
前記計算された作業負荷レベルが設定された閾値よりも低い前記少なくとも１つの保護する仮想マシンを検出し、又は
前記複数の保護する仮想マシンのうち２つ以上の仮想マシンであって、それらの結合作業負荷レベルが、前記複数の保護する仮想マシンの残りの仮想マシンの結合された作業負荷レベルよりも小さいものを検出する、
請求項９に記載のシステム。
【請求項１２】
前記仮想マシンが、
前記少なくとも１つのファイルを取得することと、前記少なくとも１つのファイルが悪意のあるものかどうかを決定することとの間の時間間隔、
前記アンチウィルススキャンのために前記仮想マシンへ転送されたファイルの数、
前記複数の仮想マシンの各々の計算能力の、
少なくともいずれか１つを検出し、その検出結果を前記計算資源の特性として収集する、請求項９に記載のシステム。
【請求項１３】
前記アンチウィルススキャンに関する１つ以上のパラメータは、
前記複数の仮想マシンによって利用される悪意のあるファイルを検出する方法であって、シグネチャ解析、ヒューリスティック分析、エミュレーション結果の分析、ホワイトリスト・ブラックリストによる分析、のうちの少なくとも１つを含む方法か、
前記アンチウィルススキャンを実行するために利用される前記複数の保護する仮想マシンの計算資源の特性、
の、少なくともいずれか１つを備える、請求項９に記載のシステム。
【請求項１４】
前記悪意のあるファイルを検出する方法は、少なくとも前記アンチウィルススキャンが行われる最長時間とスキャンされるファイルのエミュレーションの深度、に基づいて決定される、請求項１３に記載のシステム。
【請求項１５】
前記複数の保護する仮想マシンの前記特性近似時間関数は、少なくとも各仮想マシンの前記計算資源の特性に関する収集データに基づいて決定されるシステムであって、各仮想マシンの計算資源の特性は選択された時間にアクセス可能であり、前記時間は各仮想マシンの前記計算資源の特性の決定時間、及び前記時間は各仮想マシンの前記計算資源の特性を決定するために必要な時間である、請求項９に記載のシステム。
【請求項１６】
前記アンチウィルススキャンの有効性近似時間関数が、前記少なくとも１つのファイルのタイプ及びサイズを定義するパラメータに基づいて決定される、請求項９に記載のシステム。
【請求項１７】
複数の保護する仮想マシンを有する分散ネットワーク内の悪意のあるファイルを検出するためのコンピュータ実行可能命令を格納する非一時的なコンピュータ可読媒体であって、命令には、決定及び取得命令と、収集命令と、関数決定命令１と、関数決定命令２と、選択命令と、を含み、
前記決定及び取得命令は、アンチウィルススキャンを実行するために、前記複数の保護する仮想マシンから選択された１つの保護された仮想マシンに格納された少なくとも１つのファイルを前記保護された仮想マシンに決定して取得させ、
前記収集命令は、前記複数の保護する仮想マシンの計算資源の特性と前記複数の保護する仮想マシンの計算資源の利用の規則を命令する、前記アンチウィルススキャンの１つ以上のパラメータを、前記保護された仮想マシンに収集させ、
前記関数決定命令１は、収集された前記特性に少なくとも基いて、前記複数の保護する仮想マシンの計算資源の特性の時間依存を示す特性近似時間関数と前記アンチウィルススキャンに関連する前記１つ以上のパラメータの前記特性への依存を示すパラメータ近似関数とを前記保護された仮想マシンに決定させ、
前記関数決定命令２は、前記計算資源の特性近似時間関数と前記１つ以上のパラメータ近似関数に少なくとも基いて、前記アンチウィルススキャンの有効性の時間依存を示す有効性近似時間関数を前記保護された仮想マシンに決定させ、
前記選択命令は、前記アンチウィルススキャンの前記有効性近似時間関数に少なくとも基いて、前記少なくとも１つのファイルが悪意のあるものか否かを決定するために、前記複数の保護する仮想マシンから前記アンチウィルススキャンを実行する少なくとも１つの仮想マシンを、前記保護された仮想マシンに選択させる、
非一時的なコンピュータ可読媒体。
【請求項１８】
前記複数の保護する仮想マシンの前記特性近似時間関数は、各仮想マシンの前記計算資源の特性に関する前記収集されたデータに少なくとも基づいて決定され、各仮想マシンの計算資源の特性は選択された時間にアクセス可能であり、前記時間は各仮想マシンの前記計算資源の特性の決定時間、及び前記時間は各仮想マシンの前記計算資源の特性を決定するために必要な時間である、
請求項１７に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概してサイバーセキュリティの分野に関し、より具体的には、仮想マシンの分散システムにおける悪意のあるファイルを検出するシステム及び方法に関する。
【背景技術】
【０００２】
クラウド技術を含むコンピュータ技術の過去１０年の急速な発展、そして様々なコンピュータデバイス（パーソナルコンピュータ、ノートブック、タブレット、スマートフォン等）の普及は、人間活動のあらゆる領域においてこれらデバイスの使用や膨大な量のタスク（インターネットを介したインターネットサーフィンやコミュニケーションから銀行振込や電子文書トラフィックまで）を強力に後押ししている。コンピュータデバイスの数の増加と並行して、これらのデバイスで実行されるソフトウェアの量も、悪意のあるソフトウェアを含めて急速に増加している。
【０００３】
現在、膨大な種類の悪意のあるプログラムが存在している。その中には、ユーザのデバイスから個人情報や機密データ（ログイン、パスワード、銀行情報、電子文書等）を盗むものがある。また、ブルートフォース方式によってユーザの機器からパスワードを推測する、いわゆるボットネットを形成するものや、他のコンピュータ又はコンピュータ・ネットワークに対してＤＤＯＳ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄｅｎｉａｌ  Ｓｅｒｖｉｃｅ）のような攻撃を始めるものもある。更に、攻撃的な広告、有料契約、有料電話番号へのテキストメッセージ送信等を介して、ユーザに有料コンテンツを押し付けるといったものもある。
【０００４】
アンチウイルスプログラムは、悪意のあるプログラムを撃退するために使用され得る。効果的な解決には、何よりもまず悪意のあるプログラムのコードを含むファイルを適時に検出する必要があり、これにはシグネチャ、ヒューリスティック及びプロアクティブ分析、ブラックリスト・ホワイトリスト等のさまざまなテクノロジをアンチウイルスプログラムは採用し得る。これらの各テクノロジは、特定の悪意のあるファイルを検出する潜在的な能力と、そのテクノロジを実行しているコンピュータシステムの計算資源の要件に基づいて、悪意のあるファイルを検出する独自の効果を持ち得る。
【０００５】
現在、コンピュータシステムによって処理されるデータ（ファイルを含む）の量は非常に膨大であり、アンチウイルスプログラムによるアンチウイルススキャンに時間がかかり、パーソナルコンピュータのユーザにとって特に重要な計算資源を必要とすることがある。従って、悪意のあるファイルの検出の有効性を高めるために、悪意のあるファイルの検索が行われるコンピュータシステムの計算資源を増加させる方法を利用することができる。例えば、分散システムを利用して悪意のあるファイルを検索することができる。そのようなシステムは複数のサーバから構成され、各サーバ上で、スキャンされる必要のある一部のファイルのみがスキャンされ得る。
【０００６】
既知の運用方法では、ファイルのウイルススキャンを実行しているコンピュータシステムに大きな負荷がかかっている場合、またはファイルのウイルススキャンに関与しているコンピュータシステムの一部が機能していない場合には有効ではない。
【発明の概要】
【０００７】
本開示は、仮想マシンの分散システムにおける悪意のあるファイルを検出するシステム及び方法である。１つの例示的な態様では、複数の仮想マシンを有する分散ネットワークにおける悪意のあるファイルを検出する方法であって、決定及び取得工程と、収集工程と、関数決定工程１と、関数決定工程２と、選択工程と、を備え、上記決定及び取得工程では、アンチウイルススキャンを実行するために、上記複数の仮想マシンのうちの１つの仮想マシンに格納された少なくとも１つのファイルを、上記仮想マシンが決定して取得し、上記収集工程では、上記複数の仮想マシンの計算資源の特性に関するデータと、上記アンチウイルススキャンに関連する１つ以上のパラメータを、上記仮想マシンが収集し、上記関数決定工程１では、少なくとも収集されたデータに基いて、上記複数の仮想マシンの計算資源の特性近似時間関数と上記アンチウィルススキャンに関連する１つ以上のパラメータ近似関数を決定し、上記関数決定工程２では、少なくとも上記計算資源の特性近似時間関数と上記１つ以上のパラメータ近似関数に基いて、上記アンチウィルススキャンの有効性近似時間関数を決定し、上記選択工程では、少なくとも上記アンチウィルススキャンの有効性近似時間関数に基いて、上記少なくとも１つのファイルが悪意のあるものか否かを決定するために、上記複数の仮想マシンから上記アンチウィルススキャンを実行する少なくとも１つの仮想マシンを選択する。
【０００８】
別の例示的な態様においては、上記選択工程は、以下の基準（１）〜（５）のうちの少なくとも１つを満たすことによって、上記アンチウイルススキャンの実行に際し最も効果的な開始時間を決定する工程を備え、
上記基準（１）は、上記アンチウィルススキャンにかかる時間が最も少ないことであり、
上記基準（２）は、上記アンチウィルススキャンにかかる時間が予定されていたものよりも短いことであり、
上記基準（３）は、上記アンチウィルススキャンが予定されていた時間までに完了することであり、
上記基準（４）は、上記アンチウィルススキャンを実行するために必要とする上記仮想マシンの計算資源が最小であることであり、
上記基準（５）は、上記アンチウィルススキャンを実行するために必要とする上記仮想マシンの計算資源が予定されていたものより少ないことである。
【０００９】
更に別の例示的な態様では、上記選択工程は、
予定されたタイムスロットで利用可能な計算資源を用いて、上記少なくとも１つの仮想マシンが、上記少なくとも１つのファイルのアンチウィルススキャンを少なくとも実行することができることを検出する工程、
上記分散ネットワーク内の複数の仮想マシンの中で計算された作業負荷レベルが最も低い上記少なくとも１つの仮想マシンを検出する工程、
上記計算された作業負荷レベルが設定された閾値よりも低い上記少なくとも１つの仮想マシンを検出する工程、又は
上記複数の仮想マシンのうち２つ以上の仮想マシンであって、それらの結合作業負荷レベルが、上記複数の仮想マシンの残りの仮想マシンの結合された作業負荷レベルよりも小さいものを検出する工程、のいずれかを備える。
【００１０】
別の例示的な態様では、上記収集工程は、上記少なくとも１つのファイルの取得と、上記少なくとも１つのファイルが悪意のあるものかの決定との間の時間間隔を検出する工程、上記アンチウィルススキャンのために上記仮想マシンへ転送されたファイルの数を検出する工程、上記複数の仮想マシンの各々の計算能力を検出する工程、の少なくともいずれか１つを備える。
【００１１】
別の例示的な態様では、上記アンチウィルススキャンに関連する１つ以上のパラメータは、上記複数の仮想マシンによって利用される上記悪意のあるファイルを検出する方法であって、シグネチャ解析、ヒューリスティック分析、エミュレーション結果の分析、ホワイトリスト・ブラックリストによる分析、のうちの少なくとも１つを含む方法か、上記アンチウイルススキャンを実行するために利用される上記複数の仮想マシンの上記計算資源の特性、の少なくともいずれか１つを備える。上記悪意のあるファイルを検出する方法は、少なくとも上記アンチウイルススキャンが行われる最長時間とスキャンされるファイルのエミュレーションの深度、に基づいて決定される。
【００１２】
更に別の例示的な態様では、上記複数の仮想マシンの計算資源の特性に関する近似時間関数は、少なくとも各仮想マシンの上記計算資源の特性に関する収集されたデータに基づいて決定され、各仮想マシンの計算資源の特性は選択された時間にアクセス可能であり、上記時間は各仮想マシンの上記計算資源の特性の決定時間、及び上記時間は各仮想マシンの上記計算資源の特性を決定するために必要な時間、である。
【００１３】
更に別の例示的な態様では、上記アンチウイルススキャンに関連する上記１つ以上のパラメータ近似関数は、少なくとも上記計算資源の特性に対する上記アンチウイルススキャンの推定パラメータに関するデータ及び上記アンチウイルススキャンを実行するための各仮想マシンの上記計算資源の特性、に基づいて決定される。
【００１４】
別の例示的な態様では、上記アンチウイルススキャンの上記有効性近似時間関数が、上記少なくとも１つのファイルのタイプ及びサイズを定義するパラメータに基づいて決定される。
【００１５】
本発明の例示的な態様によれば、複数の仮想マシンを有する分散ネットワークにおいて悪意のあるファイルを検出するシステムは、少なくとも１つのシンクライアントが動作している複数の仮想マシンのうちの１つの仮想マシンを備え、上記仮想マシンは、アンチウイルススキャンを実行するために、上記仮想マシンに格納された少なくとも１つのファイルを決定して取得し、上記複数の仮想マシンの計算資源の特性に関連するデータと上記アンチウイルススキャンに関連する１つ以上のパラメータを収集し、収集されたデータに少なくとも基いて、上記複数の仮想マシンの計算資源の特性近似時間関数と上記アンチウィルススキャンに関連する上記１つ以上のパラメータ近似関数を決定し、上記計算資源の特性近似時間関数と上記１つ以上のパラメータ近似関数に少なくとも基いて、上記アンチウィルススキャンの有効性近似時間関数を決定し、上記アンチウィルススキャンの上記有効性近似時間関数に少なくとも基いて、上記少なくとも１つのファイルが悪意のあるものか否かを決定するために、上記複数の仮想マシンから上記アンチウィルススキャンを実行する少なくとも１つの仮想マシンを選択するように構成されている。
【００１６】
更に、本発明の他の例示的な態様によれば、複数の仮想マシンを有する分散ネットワーク内の悪意のあるファイルを検出するためのコンピュータ実行可能命令を格納する非一時的なコンピュータ可読媒体であって、命令には、決定及び取得命令と、収集命令と、関数決定命令１と、関数決定命令２と、選択命令と、を含み、上記決定及び取得命令は、アンチウイルススキャンを実行するために、上記複数の仮想マシンのうちの１つの仮想マシンに格納された少なくとも１つのファイルを決定して取得することを命令し、上記収集命令は、上記複数の仮想マシンの計算資源の特性に関連するデータと上記アンチウイルススキャンに関連する１つ以上のパラメータを収集させ、上記関数決定命令１では、収集されたデータに少なくとも基いて、上記複数の仮想マシンの計算資源の特性近似時間関数と上記アンチウィルススキャンに関連する上記１つ以上のパラメータ近似関数を決定させ、上記関数決定命令２は、上記計算資源の特性近似時間関数と上記１つ以上のパラメータ近似関数に少なくとも基いて、上記アンチウィルススキャンの有効性近似時間関数を決定させ、上記選択命令は、上記アンチウィルススキャンの上記有効性近似時間関数に少なくとも基いて、上記少なくとも１つのファイルが悪意のあるものか否かを決定するために、上記複数の仮想マシンから上記アンチウィルススキャンを実行する上記少なくとも１つの仮想マシンを選択させる。
【図面の簡単な説明】
【００１７】
添付の図面は、本明細書に組み込まれ、本明細書の一部を構成し、本発明の１つ以上の例示的な態様を示し、詳細な説明とともに、それらの原理及び実施形態を説明する役割を果たす。
【図１】図１は、本発明の態様による、仮想マシン上の悪意のあるファイルを検出するための例示的なシステムを示す。
【図２】図２は、本発明の態様による、仮想マシン上の悪意のあるファイルを検出する例示的な方法を示す。
【図３】図３は、本発明の態様による、保護する仮想マシンの計算資源の特性近似時間関数を示す。
【図４】図４は、本発明の態様による、いくつかの保護する仮想マシンの計算資源の特性近似時間関数を示す。
【図５】図５は、開示されたシステム及び方法を実施することができるコンピュータシステム、パーソナルコンピュータまたはサーバを示す。
【発明の詳細な説明】
【００１８】
例示する態様は以下、複数の仮想マシンを有する分散ネットワーク内の悪意のあるファイルを検出するためのシステム、方法、及びコンピュータプログラム製品に関連して説明される。当業者であれば、以下の説明は例示的なものに過ぎず、決して限定するものではないことを理解するであろう。他の態様は、本開示の利益を享受する当業者に容易に示唆されるであろう。以下、添付の図面に示されている例示的な態様の実装について詳細に述べる。同一の参照符号は、同一またはそれに相当するものを参照するため、図面及び以下の説明全体を通じて、可能な限り使用される。
【００１９】
以下の定義は、本発明の様々な態様を説明する際に使用される。
【００２０】
保護された仮想マシンは、シンクライアントが実行されているコンピュータ環境内において、ハイパーバイザの制御下で、インストールされたゲストオペレーティングシステムによって動作する仮想マシンを含むことができる。
【００２１】
保護する仮想マシンは、保護サーバが動作している環境において、ハイパーバイザの制御下で、インストールされたオペレーティングシステムによって動作する仮想マシンであってもよい。
【００２２】
シンクライアントには、保護された仮想マシンを悪意のあるプログラムやコンピュータの脅威から保護し、ネットワーク内のアンチウイルススキャンのためにファイルを保護する仮想マシンに送信するように構成されたソフトウェアが含まれていてもよい。
【００２３】
保護サーバは、保護された仮想マシンから受信したファイルのアンチウイルススキャンを実行するように構成されたソフトウェアを含むことができる。
【００２４】
図１は、本発明の態様による仮想マシン上の悪意のあるファイルの検出のための例示的なシステムを示す。仮想マシン上の悪意のあるファイルを検出するためのシステムの構造図は、保護された仮想マシン１００、アンチウイルススキャンを必要とするファイルストレージ１０１、シンクライアントモジュール１１０、収集モジュール１１１、動的コンピューティングモジュール１１２、  選択モジュール１１３、タスク形成モジュール１１４、保護する仮想マシン１２０と、スキャンモジュール１２１とを含む。
【００２５】
仮想マシン上の悪意のあるファイルを検出するためのシステムは、シンクライアント１１０が動作している環境内において、ハイパーバイザの制御下で、インストールされたゲストオペレーティングシステムによって動作する保護された仮想マシン１００、及び、スキャンモジュール１２１が各々動作している環境において、ハイパーバイザの制御下で、インストールされたゲストオペレーティングシステムによって動作する保護する仮想マシン１２０を含むことができる。
【００２６】
保護する仮想マシン１２０は、シンクライアント１１０から受信したファイルに対してアンチウイルススキャンを実行するように構成することができ、これにはスキャンモジュール１２１を含むことができる。
【００２７】
スキャンモジュール１２１は以下のように構成することができる。
・タスク形成モジュール１１４から受信したファイルに対してアンチウイルススキャンを実行する。
・悪意のあるファイルの検出に関する判定を提示する。
【００２８】
保護された仮想マシン１００は、ファイルストレージ１０１内でアンチウイルススキャンを必要とするファイルを検出し、アンチウイルススキャンを実行するためにこれらをシンクライアントモジュール１１０に転送するように構成することができる。
【００２９】
シンクライアントモジュール１１０は、保護された仮想マシン１００を悪意のあるファイルから保護するように構成することができ、これには収集モジュール１１１、動的コンピューティングモジュール１１２、選択モジュール１１３、及びタスク形成モジュール１１４を含むことができる。
【００３０】
収集モジュール１１１は、以下のように構成することができる。
・保護する仮想マシン１２０の計算資源の特性を収集する。
・スキャンモジュール１２１のアンチウイルススキャンのパラメータを収集し、スキャンモジュール１２１は、対応している保護する仮想マシン１２０にインストールすることができ、上記パラメータは、対応している保護する仮想マシン１２０の計算資源のスキャンモジュール１２１によって利用の規則を命令し、上記利用の規則は、アンチウイルススキャンを含む特定のアクションを実行するために、保護する仮想マシン１２０のどの計算資源がスキャンモジュール１２１に提供されるかを命令する。
・計算資源の収集された特性及びアンチウイルススキャンのパラメータを動的コンピューティングモジュール１１２に送信する。
【００３１】
保護する仮想マシン１２０の計算資源の特性は以下を含むことができる。
・タスク形成モジュール１１４からのファイル受信から、スキャンモジュール１２１による判定の提示までの間に経過した時間。
・アンチウイルススキャンのためにスキャンモジュール１２１に送信されたファイルの数。
・スキャンモジュール１２１が動作している保護する仮想マシン１２０の計算能力。
【００３２】
例えば、本発明の一態様によれば、スキャンモジュール１２１が動作している保護する仮想マシン１２０の計算資源の収集された特性は、保護する仮想マシン１２０の計算資源の単一の特性を形成するように一般化することができ、それは一連の数｛Δ，  Ｎ，  ｛Ｍ，  Ｂ｝｝ｉを含むことができ、
当該一連の数は、動的コンピューティングモジュール１１２へ収集されたデータを送信する各時点ｔｉにおける数を示す。
ここで、
Δは、タスク形成モジュール１１４によるファイルストレージ１０１からのファイル受信から、スキャンモジュール１２１によって判定が提示されるまでにかかった経過時間である。
Ｎは、上記時点ｔｉにおいてアンチウイルススキャンを実行するためにスキャンモジュール１２１へ送信されたファイルの数である。
Ｍは、上記時点ｔｉにおける保護する仮想マシン１２０の空きメモリの量である。
Ｂは、上記時点ｔｉにおける保護する仮想マシン１２０のＣＰＵ負荷である。
【００３３】
上記一連の数は、多次元近似関数（そのうちの１つの係数は時間）を計算するのに十分であり、スキャンモジュール１２１の動作を定義することができる。
【００３４】
スキャンモジュール１２１によって実行される上記アンチウイルススキャンのパラメータは以下を含むことができる。
・上記アンチウィルススキャンを実行するためにスキャンモジュール１２１によって用いられる悪意のあるファイルを検出する方法であって、上記悪意のあるファイルを検出する方法には以下を含むことができる。
−シグネチャ解析
−ヒューリスティック分析
−エミュレーション結果の分析
−ブラックリストとホワイトリストの分析
・上記アンチウイルススキャンを実行するためにスキャンモジュール１２１によって利用されている上記計算資源の特性。
【００３５】
上記悪意のあるファイルの検出方法を定義することのできる上記パラメータには、以下を含むことができる。
・上記アンチウイルススキャンが実行される最大時間。
・スキャンされるファイルの上記エミュレーションの深度。
【００３６】
スキャンモジュール１２１が動作している保護する仮想マシン１２０の上記計算能力は以下を含むことができる。
・スキャンモジュール１２１が動作している上記保護する仮想マシン１２０の上記ＲＡＭ。
・上記保護する仮想マシン１２０のＣＰＵパフォーマンス。
【００３７】
上記ファイルのアンチウイルススキャンを実行するためにスキャンモジュール１２１によって利用される上記パラメータは、スキャンモジュール１２１によって提示される判定の精度に影響を及ぼすおそれがある。例えば、悪意のあるファイルの中で悪意のあるファイルを検出しない可能性や、逆に、アンチウイルススキャンを実行するときに正当なファイルの中で悪意のあるファイルを検出する可能性がある。例をあげると、保護する仮想マシン＃１  １２０．１のスキャンモジュール１２１が、０．０１秒以内にシグネチャ解析を用いてタスク形成モジュール１１４から受信した各ファイルのスキャンを実行し、保護する仮想マシン＃２  １２０．２のスキャンモジュール１２１は、１０個に相当するスキャンされたファイルのエミュレーションの深度（ネストされたコールの最大数）について０．１秒以内にヒューリスティック分析を使用し、そして、保護する仮想マシン＃３  １２０．３のスキャンモジュール１２１は、１０００個に相当するスキャンされたファイルのエミュレーションの深度について０．０４秒以内にヒューリスティック分析を使用することができる。その結果、最も速いのは、保護する仮想マシン＃１  １２０．１上で動作するスキャンモジュール１２１を利用することを含むかもしれないが、最も効果的なスキャン手段、すなわち、保護する仮想マシンの最大量の計算資源を利用するスキャン手段は、保護する仮想マシン＃３  １２０．３上で動作するスキャンモジュール１２１を利用することを含み得ることが分かる。
【００３８】
動的コンピューティングモジュール１１２は、以下のような要素（Ａ）〜（Ｄ）を行うように構成され得る。
要素（Ａ）：収集モジュール１１１によって収集された計算資源の特性の分析に基づいて、各々の保護する仮想マシン１２０の計算資源の特性近似時間関数を決定する。
なお、当該近似関数は次のように表され得る。
【数１】
0006469165.tif 000002
ここで、
Ｆｃｈａｒは、近似時間関数であり、
｛Ｃ｝ｔｉ，ｊは、収集モジュール１１１によって収集された保護する仮想マシン１２０の計算資源の特性であり、
｛Ｃ｝ｔｋは、時点ｔｋにおいてアクセス可能な保護する仮想マシン１２０の計算資源の特性であり、
ｔｉ、ｔｊは、保護する仮想マシン１２０の計算資源の特性の決定時間であり、
ｔｋは、保護する仮想マシン１２０の計算資源の特性を決定するために必要な時間である。
そして、当該近似関数が以下の形式で示されるように、パラメータａ１、ａ２、...ａｉ、によって定義することができる。
【数２】
0006469165.tif 000003
要素（Ｂ）：収集モジュール１１１によって収集されたアンチウイルススキャンのパラメータの分析に基づき、対応する保護する仮想マシン１２０の計算資源の特性に応じて、各スキャンモジュール１２１のアンチウイルススキャンのパラメータ近似関数を決定する。
なお、この近似関数は、以下の形式を有することができる。
【数３】
0006469165.tif 000004
ここで、
Ｆｐａｒａｍｓは、近似関数であり、
｛Ｐ｝ｃｉ，ｊは、収集モジュール１１１によって収集されたアンチウイルススキャンのパラメータであって、計算資源Ｃｉの特性に依存しており、
｛Ｐ｝ｃｋは、計算資源ｃｋの特性に対するアンチウイルススキャンの推定パラメータであり、
ｃｉ，ｊは、保護する仮想マシン１２０の計算資源の特性であって、アンチウイルススキャンを実行するときにスキャンモジュール１２１によって使用されるものである。
そして、当該近似関数が以下の形式で示されるように、パラメータｂ１、ｂ２、...ｂｉによって定義することができる。
【数４】
0006469165.tif 000005
要素（Ｃ）：決定された関数の合成（関数合成）として、各々の保護する仮想マシン１２０上のアンチウイルススキャンの有効性近似時間関数を決定する。ここで、関数合成は、ある関数を別の関数の結果に適用することによって得られる関数であり、アンチウイルススキャンの有効性は、アンチウイルススキャンで確定された結果を達成するために、保護する仮想マシン１２０が必要とする計算資源の量を特性づけるものであり、当該近似関数は以下の形式を有する。
【数５】
0006469165.tif 000006
ここで、
Ｆｅｆｆｉｃｉｅｎｃｙは、近似関数であり、
｛Ｆ｝は、タスク形成モジュール１１４によって受信されたファイルを特性付けるパラメータであり、当該パラメータは以下を定義することができ、
・ファイルタイプ
・ファイルサイズ
｛Ｃ｝は、保護する仮想マシン１２０の計算資源の特性近似時間関数を示すパラメータであり、
｛Ｐ｝は、  保護する仮想マシン１２０の計算資源の特性に応じてスキャンモジュール１２１によって実行されるアンチウイルススキャンのパラメータ近似関数を示すパラメータである。
そして、当該近似関数が以下の形式で示されるように、パラメータｅ１、ｅ２、...ｅｉによって定義すことができる。
【数６】
0006469165.tif 000007
要素（Ｄ）：各々の保護する仮想マシン１２０上のアンチウイルススキャンの有効性のために、決定された近似時間関数を選択モジュール１１３に送信する。
【００３９】
保護する仮想マシン１２０の計算資源の特性近似時間関数を定義するパラメータは、近似関数の数値係数といったものでもよい。
【数７】
0006469165.tif 000008
ここで、
｛Ｃ｝ｔｉは、収集モジュール１１１によって収集された保護する仮想マシン１２０の計算資源の特性であり、
ｔｉは、保護する仮想マシン１２０の計算資源の特性を集める時間であり、
ａｉは、  近似関数を示す数値係数である。
【００４０】
保護する仮想マシン１２０の計算資源の特性に応じてスキャンモジュール１２１によって実行されるアンチウイルススキャンのパラメータ近似関数を定義するパラメータは、近似関数の数値係数といったものを含んでもよい。
【数８】
0006469165.tif 000009
ここで、
｛Ｐ｝ｃｉは、スキャンモジュール１２１によって実行されたアンチウィルススキャンのパラメーターであって、収集モジュール１１１によって収集されたものであり、
ｃｉは、保護する仮想マシン１２０の計算資源の特性であり、
ｂｉは、  近似関数を定義づける数値係数である。
【００４１】
保護する仮想マシン１２０のスキャンモジュール１２１の作業負荷レベルは、保護する仮想マシン１２０上のアンチウイルススキャンの有効性としての役割を果たすことができる。
【００４２】
保護する仮想マシン１２０のスキャンモジュール１２１の作業負荷レベルは、保護する仮想マシン１２０の計算資源の特性近似時間関数を定義づけるパラメータのセットと、保護する仮想マシン１２０の計算資源の特性に応じてスキャンモジュール１２１によって実行されるアンチウィルススキャンのパラメータの近似時間関数を定義するパラメータのセットとの累積として計算することができ、以下の形式を有する。
【数９】
0006469165.tif 000010
ここで、
｛Ｆ｝は、タスク形成モジュール１１４によって受信されたファイルを特性づけるパラメータであり、
｛Ｃ｝は、保護する仮想マシン１２０の計算資源の特性近似時間関数を定義づけるパラメータであり、
｛Ｐ｝は、保護する仮想マシン１２０の計算資源の特性に応じてスキャンモジュール１２１によって実行されるアンチウィルススキャンのパラメータ近似時間関数を表すパラメータである。
【００４３】
回帰分析法を使用して、近似時間関数を定義する際のパラメータを計算することができる。
【００４４】
例えば、ファイルのアンチウイルススキャンを実行するために利用されるＲＡＭ容量が、保護する仮想マシン１２０の計算資源の特性である場合には、以下の式の通り、線形関数を近似関数として決定することができる。
【数１０】
0006469165.tif 000011
この場合、パラメータａ１、ａ２は、  次のように計算することができる。
【数１１】
0006469165.tif 000012
ここで、
ｎは、アンチウイルススキャンの実行に利用されているＲＡＭ容量の値が取得されたタイムスタンプの数であり、
ｔｉは、アンチウイルススキャンを実行するために利用されているＲＡＭ容量Ｘｉの値を取得するタイムスタンプであり、
Ｘｉは、時点ｔｉにおいてアンチウイルススキャンを実行するために利用されているＲＡＭ容量の値Ｘｉである。
【００４５】
選択モジュール１１３は、以下のように構成することができる。
・動的コンピューティングモジュール１１２から得られたアンチウイルススキャンの有効性機能に基づいてスキャンモジュール１２１を選択する。
・以下の基準の少なくとも１つが満たされるように、選択されたスキャンモジュール１２１に対して、アンチウイルススキャンの実行の開始時間を決定する。
−アンチウィルススキャンにかかる時間が最も少ない
−アンチウィルススキャンにかかる時間が予定されていたものよりも少ない
−アンチウィルススキャンが予定されていた時間までに完了する
−アンチウィルススキャンを実行するために必要とする上記仮想マシンの計算資源が最小である
−アンチウィルススキャンを実行するために必要とする前記仮想マシンの計算資源が予定されていたものより少ない
・選択されたスキャンモジュール１２１によるアンチウィルススキャンの実行に最も効果的な開始時間を含んでいる、選択されたスキャンモジュール１２１に関する情報を、タスク形成モジュール１１４に送る。
【００４６】
選択されたスキャンモジュール１２１は以下を含むことができる。
・予定されたタイムスロットで利用可能な計算資源を用いて、少なくともタスク形成モジュール１１４によって決定されたファイルのアンチウイルススキャンを実行することができるスキャン手段と、
・計算された作業負荷レベルが最も低いスキャンモジュール１２１と、
・計算された作業負荷レベルが設定された閾値より低いスキャンモジュール１２１と、
・２つ以上のファイルのアンチウイルススキャンが必要な場合、一連のスキャンモジュール１２１のうち少なくとも２つ以上のスキャンモジュール１２１であって、それらの計算された作業負荷レベルの合計が、残りのスキャンモジュール１２１の作業負荷レベルの合計よりも小さいもの。
【００４７】
例えば、スキャンモジュール１２１の作業負荷レベルは、次のように決定され、計算されてもよい。
アンチウイルススキャンを実行する必要のある、各々１０ＭＢ、２０ＭＢ、５０ＭＢの３つのファイルが存在する。スキャンモジュール１２１は、アンチウイルススキャンを説明するパラメータを、最大０．０１秒を要するシグネチャ解析として提示する一方、スキャンモジュール１２１が実行されている保護する仮想マシン１２０の特性は、６０ＭＢの利用可能なＲＡＭ容量を有することができる。シグネチャ解析は、ファイルがそのままＲＡＭに置かれる、すなわち、そのファイルサイズと同じ容量を占めることを意味する。  スキャンモジュール１２１の負荷が最大になるためには、２段階で上記３つのファイルを送信する必要がある。第１段階ではファイル＃１とファイル＃３、第２段階ではファイル＃２となる。その結果、３つのファイルすべてのアンチウイルススキャンには０．０２秒かかり、スキャンモジュール１２１の作業負荷レベルは各々１と０．３（３）になり、結果として得られる上記３つのファイルの作業負荷は０．６（６）になる。これは、ファイル＃２のスキャンの間、スキャンモジュール１２１が新しいファイルを処理するのに十分な計算資源を有することを考慮すると、最適な結果である。
この場合、作業負荷レベルは次のように計算される。
【数１２】
0006469165.tif 000013
【００４８】
タスク形成モジュール１１４は以下のように構成することができる。
・アンチウイルススキャンの実行のためにシンクライアントモジュール１１０が実行されている保護された仮想マシン１００のファイルを決定する。
・収集モジュール１１１にコマンドを送信して、保護する仮想マシン１２０の計算資源の特性及びスキャンモジュール１２１のアンチウイルススキャンのパラメータの収集を実行する。
・選択モジュール１１３によって決定されたスキャン時間に従って、選択モジュール１１３によって提供された情報である、スキャンモジュール１２１に決定されたファイルを転送する。
【００４９】
例えば、保護する仮想マシン１２０のスキャンモジュール１２１が選択された場合には、ファイルのアンチウイルススキャンを即座に行ってもよいし、一定時間後に行ってもよい。スキャンモジュール１２１がこれに先立ってタスク形成モジュール１１３から受信したファイルのアンチウイルススキャンを既に実行している場合、新しいファイルのアンチウイルススキャンは行われず、ファイルがハードドライブからメモリにロードされ、スキャンモジュール１２１がアンチウイルススキャンを実行し、実行中のアンチウイルススキャンが終了するまで、ファイルは保存されてもよい（例えば、保護する仮想マシン１２０のハードドライブ上）。前述のスキャンモジュール１２１の動作論理において、（作業が適切に構成されていれば）時間はかかるが必須ではない２つの作業が実行されてもよい。すなわち、ディスクへのファイルの書き込み及びディスクからのファイルの読み取りである。しかし、前述のファイルがスキャンモジュール１２１に送信されたのが、スキャンモジュール１２１の選択の直後ではなく、スキャンモジュール１２１がその前のタスクを実行した後の時間の間だった場合、ファイルのアンチウイルススキャンは、より早く実行され得る。
【００５０】
１つの例示的な態様では、３つの保護する仮想マシン１２０（１２０．１、１２０．２及び１２０．３）のうち保護された仮想マシン１００のシンクライアント１１０による総容量１ＧＢの１０００個のファイルの分布について、悪意のあるファイルの検出が実行される。アンチウイルススキャンを実行するためのスキャンモジュール１２１は、シグネチャ解析、ヒューリスティック分析、及びホワイトリスト・ブラックリストによる分析を各々使用することができる。前述の分析方法の各々のタイプは、それ自身の有効性（各々０．６、０．９５及び０．１）を有することができ、独自の計算資源（２００ＭＢの空きＲＡＭ、１００ＭＦＬＯＰＳ以上の動作速度のＣＰＵ、５０ＭＢの空きＲＡＭ、１０ＭＦＬＯＰＳ以上の空きＲＡＭを備えたＣＰＵ）を必要とする。これは、平均して各スキャンモジュール１２１が０．０１、０．１、０．００２秒でファイルを処理することができることを意味する。
【００５１】
最初に、保護する仮想マシン１２０の動作に関する統計が利用可能でない場合、所与の保護する仮想マシン１２０がどの程度速くアンチウイルススキャンを実行できるかに従って、ファイルは、タスク形成モジュール１１４によって一様に分散されてもよい。時間の経過とともに、動的コンピューティングモジュール１１２は、計算資源の特性に関する統計と、異なる時点における全ての保護する仮想マシン１２０のアンチウイルススキャンのパラメータとを蓄積することができ、特性及びパラメータの近似関数を計算することが可能になる。
【００５２】
保護する仮想マシン＃１  １２０．１の場合、空きＲＡＭ容量のみが重要となり、これは線形時間法則Ｍ（ｔ）＝ａ１×ｔ＋ａ２に従う変更である。収集されたデータ｛Ｍｉ，ｔｉ｝に基づいて、最小二乗解析によりパラメータａ１及びａ２を計算することで、保護する仮想マシン＃１  １２０．１のスキャンモジュール１２１へアンチウイルススキャンの実行のためにファイルを送信する時点ｔｉにおいて、保護する仮想マシン＃１  １２０．１がどれぐらいの空きＲＡＭを有するのか予測することが可能になる。タスク形成モジュール１１４は、任意の時点においてどれぐらいのＲＡＭが利用可能であるかを知っているため、スキャンモジュール１２１にどのファイルを送信すればそれらのファイルを最小時間で処理できるのかを推測することができる。
【００５３】
保護する仮想マシン＃２  １２０．２及び＃３  １２０．３についても同様のステップがとられ、ＲＡＭの他にＣＰＵ動作速度も利用される。法則Ｂ（ｔ）＝ａ１×ｔ３＋ａ２×ｔ２＋ａ３×ｔ＋ａ４に従う保護する仮想マシン１２０のＣＰＵ負荷を推定することにより、パラメータａ１、ａ２、ａ３、ａ４を計算することができる。その後、保護する仮想マシン＃２  １２０．２（または＃３  １２０．３）のスキャンモジュール１２１にアンチウイルススキャンの実行のためのファイルを送信する時間ｔｉにおける保護する仮想マシン１２０のＣＰＵ負荷を予測する。このようにして、保護する仮想マシン１２０のＣＰＵが最大有効負荷を有するという効果が得られる。
【００５４】
様々な保護する仮想マシン１２０のスキャンモジュール１２１の間におけるタスクの分散の結果として、保護する仮想マシン１２０間でファイルが均一またはランダムに分布される場合よりも保護する仮想マシン１２０が高い有効性で使用され得ることから、保護された仮想マシン１００のファイルに対するアンチウイルススキャンのパフォーマンス速度の増加を達成することができる。
【００５５】
図２は、本発明の態様による仮想マシン上の悪意のあるファイルを検出する例示的な方法を示す。仮想マシン上の悪意のあるファイルの検出方法の構造図は、アンチウイルススキャンを実行するファイルを決定することができるステップ２１１と、計算資源の特性を収集するステップ２１２と、計算資源の特性のために近似時間関数を決定することができるステップ２１３と、アンチウイルススキャンのパラメータを収集することができるステップ２１４と、計算資源の特性に応じてアンチウイルススキャンのパラメータについて近似関数を決定することができるステップ２１５と、アンチウイルススキャンの有効性のために近似時間関数を決定することができるステップ２１６と、スキャンモジュール１２１を選択することができるステップ２１７と、アンチウィルススキャン実行を実行するための最も効果的な開始時間を決定することのできるステップ２１８と、アンチウイルススキャンが実行されるステップ２２１と、悪意のあるファイルの検出に関して判定を提示することのできるステップ２２２とを含む。
【００５６】
ステップ２１１では、上記のシンクライアント１１０が動作している保護された仮想マシン１００のファイル保管場所１０１に格納されているファイルを、アンチウイルススキャンの実行のために決定することができる。
【００５７】
ステップ２１２では、スキャンモジュール１２１が動作している保護する仮想マシン１２０の計算資源の特性を決定し、収集することができる。
【００５８】
１つの例示的な態様では、ステップ２１２は、ステップ２１４と同時に実行されてもよい。
【００５９】
保護する仮想マシン１２０の計算資源の特性は以下を含むことができる。
・タスク形成モジュール１１４からのファイルの受信と、スキャンモジュール１２１による判定の提示との間に経過した時間。
・アンチウイルススキャンのためにスキャンモジュール１２１に送信されるファイルの数。
・スキャンモジュール１２１が動作している保護する仮想マシン１２０の計算能力。
【００６０】
スキャンモジュール１２１が動作している保護する仮想マシン１２０の計算能力は以下を含むことができる。
・スキャンモジュール１２１が実行されている保護する仮想マシン１２０のＲＡＭ。
・保護する仮想マシン１２０のＣＰＵパフォーマンス。
【００６１】
ステップ２１３において、各々の保護する仮想マシン１２０の計算資源の特性近似時間関数は、ステップ２１２で収集された計算資源の特性の分析に基づいて決定することができ、  当該近似関数は次の形式を有する。
【数１３】
0006469165.tif 000014
ここで、
Ｆｃｈａｒは、近似時間関数であり、
｛Ｃ｝ｔｉ，jは、ステップ２１２で収集された保護する仮想マシン１２０の計算資源の特性であり、
｛Ｃ｝ｔｋは、時点ｔｋにおいてアクセス可能な保護する仮想マシン１２０の計算資源の特性であり、
ｔｉ、ｔｊは、保護する仮想マシン１２０の計算資源の特性の決定の時間であり、
ｔｋは、  保護する仮想マシン１２０の計算資源の特性を決定するために必要な時間である。
そしてこれは、当該近似関数が次の形式で示されるようにａ１、ａ２、...ａｉ、などのパラメータで定義することができる。
【数１４】
0006469165.tif 000015
【００６２】
保護する仮想マシン１２０の計算資源の特性近似時間関数を定義するパラメータは、近似関数といったもののための数値係数を含むことができる。
【数１５】
0006469165.tif 000016
ここで、
｛Ｃ｝ｔｉは、収集モジュール１１１によって収集された保護する仮想マシン１２０の計算資源の特性であり、
ｔｉは、保護する仮想マシン１２０の計算資源の特性を収集す時間であり、
ａｉは、  近似関数を表す数値係数である。
【００６３】
近似時間関数を表すパラメータを計算するために、回帰分析法を用いることができる。
【００６４】
ステップ２１４において、対応する保護する仮想マシン１２０上にインストールすることができるスキャンモジュール１２１のアンチウイルススキャンのパラメータが決定されてもよく、これらのパラメータは、対応する保護する仮想マシン１２０の計算資源のスキャンモジュール１２１によって計算資源の利用規則を決定する。
【００６５】
例示的な一態様では、ステップ２１４は、ステップ２１２と同時に実行されてもよい。
【００６６】
スキャンモジュール１２１によって実行されるアンチウイルススキャンのパラメータは以下を含むことができる。
・ウイルススキャンを実行するためにスキャンモジュール１２１によって利用される悪意のあるファイルを検出する方法であって、悪意のあるファイルを検出する方法には以下を含むことができる。
−シグネチャ解析
−ヒューリスティック分析
−エミュレーション結果の分析
−ブラックリスト・ホワイトリストの分析
・計算資源の特性であって、アンチウイルススキャンを実行するためにスキャンモジュール１２１によって利用される特性。
【００６７】
悪意のあるファイルの検出方法を定義するパラメータには以下を含むことができる。
・アンチウイルススキャンが実行される最大時間。
・スキャンされるファイルのエミュレーションの深度。
【００６８】
ステップ２１５において、対応する保護する仮想マシン１２０の計算資源の特性に応じて、各スキャンモジュール１２１のアンチウイルススキャンのパラメータ近似関数を、ステップ２１４で収集されたアンチウイルススキャンパラメータの分析に基づいて決定することができ、この近似関数は以下の形式を有する。
【数１６】
0006469165.tif 000017
ここで、
Ｆｐａｒａｍｓ  は、近似関数であり、
｛Ｐ｝ｃｉ，jは、  収集モジュール１１１によって収集されたアンチウイルススキャンのパラメータであって、計算資源ｃｉの特性に応じているものであり、
｛Ｐ｝ｃｋは、  計算資源ｃｋの特性に対するアンチウイルススキャンの推定パラメータであり、
ｃｉ，jは、保護する仮想マシン１２０の計算資源の特性であって、アンチウイルススキャンを実行するときにスキャンモジュール１２１によって利用されるものである。
そして、当該近似関数が以下の形式で表されるようにｂ１、ｂ２、...ｂｉ、というパラメータで定義される。
【数１７】
0006469165.tif 000018
【００６９】
保護する仮想マシン１２０の計算資源の特性に応じてスキャンモジュール１２１によって実行されるアンチウイルススキャンのパラメータ近似関数を定義するパラメータは、近似関数といったものの数値係数を含むことができる。
【数１８】
0006469165.tif 000019
ここで、
｛Ｐ｝ｃｉは、収集モジュール１１１によって収集されたスキャンモジュール１２１によって実行されるアンチウイルススキャンのパラメータであり、
ｃｉ  は、保護する仮想マシン１２０の計算資源の特性であり、
ｂｉ  は、近似関数を定義する数値係数である。
【００７０】
ステップ２１６において、各々の保護する仮想マシン１２０に対するアンチウイルススキャンの有効性近似時間関数は、ステップ２１３及びステップ２１５で決定された関数の合成として決定されてもよい。ここで、この関数合成は、ある関数を別の関数の結果に適用することによって得られる関数を含むことができ、アンチウイルススキャンの有効性は、アンチウイルススキャンで確定された結果を達成するために、保護する仮想マシン１２０が必要とする計算資源の量を特性づけるものであり、当該近似関数は以下の形式を有する。
【数１９】
0006469165.tif 000020
ここで、
Ｆｅｆｆｉｃｉｅｎｃｙは、近似関数であり、
｛Ｆ｝は、  タスク形成モジュール１１４によって受信されたファイルを特性付けるパラメータであり、このパラメータは以下を含むことができ、
・ファイルタイプ
・ファイルサイズ
｛Ｃ｝は、保護する仮想マシン１２０の計算資源の特性近似時間関数を表すパラメータであり、
｛Ｐ｝  は、保護する仮想マシン１２０の計算資源の特性に応じてスキャンモジュール１２１によって実行されるアンチウイルススキャンのパラメータ近似関数を表すパラメータであり、
そして、当該近似関数が次の形式で示されるようにｅ１、ｅ２、...ｅｉ、といったパラメータで定義することができる。
【数２０】
0006469165.tif 000021
【００７１】
保護する仮想マシン１２０のスキャンモジュール１２１の作業負荷レベルは、保護する仮想マシン１２０上のアンチウイルススキャンの有効性としての役割を果たすことができる。
【００７２】
保護する仮想マシン１２０のスキャンモジュール１２１の作業負荷レベルは、保護する仮想マシン１２０の計算資源の特性近似時間関数を定義づけるパラメータのセットと、保護する仮想マシン１２０の計算資源の特性に応じてスキャンモジュール１２１によって実行されるアンチウィルススキャンのパラメータの近似時間関数を定義するパラメータのセットとの累積として計算することができ、以下の形式を有する。
【数２１】
0006469165.tif 000022
ここで、
｛Ｆ｝は、タスク形成モジュール１１４によって受信されたファイルを特性づけるパラメータであり、
｛Ｃ｝は、保護する仮想マシン１２０の計算資源の特性近似時間関数を定義づけるパラメータであり、
｛Ｐ｝は、保護する仮想マシン１２０の計算資源の特性に応じてスキャンモジュール１２１によって実行されるアンチウィルススキャンのパラメータの近似時間関数を表すパラメータである。
【００７３】
ステップ２１７において、スキャンモジュール１２１は、ステップ２１６で取得されたアンチウィルススキャンの有効性機能に基づいて、複数の保護された仮想マシン及び保護する仮想マシンを有する分散ネットワーク内で適切なスキャンモジュールを選択するように構成することができる。
【００７４】
選択されたスキャンモジュール１２１は以下を決定するように構成することができる。
・予定されたタイムスロットにおいて利用可能な計算資源を用いて、少なくともタスク形成モジュール１１４によって決定されたファイルのアンチウイルススキャンを実行することができる、分散ネットワーク内の複数の保護する仮想マシンのうちの１つのスキャンモジュールと、
・計算された作業負荷レベルが最も低いスキャンモジュール１２１と、
・計算された作業負荷レベルが設定された閾値よりも低い１つのスキャンモジュール１２１と、
・一連のスキャンモジュール１２１のうちの２つ以上のスキャンモジュール１２１であって、それらの計算された作業負荷レベルの合計が、一連のスキャンモジュール１２１のうちの残りのスキャンモジュール１２１の作業負荷レベルの合計よりも小さいもの。
【００７５】
ステップ２１８では、ステップ２１７で選択されたスキャンモジュール１２１についてアンチウイルススキャンを実行する開始時間を決定し、以下の基準の少なくとも１つが満たされるようにする。
・アンチウイルススキャンに最も時間がかからない。
・アンチウイルススキャンに予定よりも時間がかからない。
・アンチウイルススキャンの完了が予定された時間よりも遅くならない。
・アンチウイルススキャンを実行するために必要とする上記保護する仮想マシン１２０の計算資源が最小である。
・アンチウイルススキャンを実行するために必要とする上記保護する仮想マシン１２０の計算資源が予定されていたものより少ない。
【００７６】
ステップ２２１では、ステップ２１１で決定されたファイルに対してアンチウイルススキャンを実行することができる。
【００７７】
ステップ２２２では、悪意のあるファイルの検出に関して判定が提示される。
【００７８】
図３は、本発明の態様による保護する仮想マシンの計算資源の特性近似時間関数を示す。保護する仮想マシン３０１の計算資源の特性近似時間関数のグラフは、保護する仮想マシン３０２の計算資源の時間特性及びプロットされた近似関数３０３を含むことができる。
【００７９】
保護する仮想マシン１２０の計算資源の特性近似時間関数３０１は、シンクライアント１１０の一部として機能する収集モジュール１１１から得られた、保護する仮想マシン１２０を特性付けるデータに基いて、保護された仮想マシン１００上のシンクライアント１１０の一部として動作する動的コンピューティングモジュール１１２によって、決定することができる。
【００８０】
保護する仮想マシン３０２の計算資源の時間特性は、時間に応じて（秒で表される、０から５０）保護する仮想マシンのＣＰＵの作業負荷レベル（パーセントで表される、０％から１００％）を含むことができる。
【００８１】
保護する仮想マシン３０２の計算資源の特性は、４９のタイムスタンプ｛Ｘ｝ｔｉで利用可能である。問題は、時間ｔ５０において保護する仮想マシンの推定作業負荷を計算するための近似関数３０３を構築することである。この目的のために、最小二乗法のような回帰分析方法の１つを採用することができる。
【００８２】
最初のステップでは、近似関数を定義する関数の１つ、例えば６次の多項式関数を選択することができる。
【数２２】
0006469165.tif 000023
【００８３】
次のステップでは、条件を満たす事ができるよう、式ＦＣＨＡＲ（Ｘ）ａ１...ａ６の係数を計算するための連立方程式を解くことができる。
【数２３】
0006469165.tif 000024
【００８４】
係数ａ１...ａ６が計算された後、時間ｔ５０の値を知ることにより、保護する仮想マシンの推定ＣＰＵ負荷の値を計算することができる。グラフ３０１に表されている時間ｔ５０＝５０ｓのデータの場合、これはＸ５０＝８５％に達し得る。
【００８５】
図４は、本発明の態様による、いくつかの保護する仮想マシンの計算資源の特性近似時間関数を示す。いくつかの保護する仮想マシン４００の計算資源の特性近似時間関数のグラフは、保護する仮想マシン４０１、４１１、４２１の計算資源の時間特性、保護する仮想マシンの計算資源の時間特性の分析に基づいて各々プロットされた近似関数４０２、４１２、４２２、及び、その結果として生じる結合近似関数４３０とを含むことができる。
【００８６】
各々の保護する仮想マシン１２０．１、１２０．２及び１２０．３の計算資源の特性近似時間関数４０２、４１２及び４２２は、保護する仮想マシン１２０．１、１２０．２及び１２０．３を特性付けるデータ及びシンクライアント１１０の一部として動作している収集モジュール１１１から取得されたデータに基いて、保護された仮想マシン１００上のシンクライアント１１０の一部として動作している動的コンピューティングモジュール１１２によって決定されることができる。
【００８７】
保護する仮想マシン４０１、４１１及び４２１の計算資源の特性近似時間関数は、図３の説明で述べた方法によって得ることができる。
【００８８】
保護する仮想マシン４０１、４１１及び４２１の計算資源の時間特性は、時間（０から２５まで、秒で表される）に依存して、各々の保護する仮想マシンのＣＰＵの作業負荷レベル（０％から１００％まで、パーセンテージで表される）を含むことができる。
【００８９】
保護する仮想マシン各々のＣＰＵ負荷の近似時間関数を計算した後、全ての保護する仮想マシンのシステムのＣＰＵの結合負荷４３０の近似関数を計算することができる。
【数２４】
0006469165.tif 000025
【００９０】
保護する仮想マシンのうちの１つの保護サーバ１２０にスキャン用ファイルを送信する時間を選択するために、全ての保護する仮想マシンのＣＰＵの結合負荷がいつ最小であるかの決定が必要な場合があり得る。保護する仮想マシンのＣＰＵの最小結合負荷の時間を知ることにより、利用可能なすべての保護する仮想マシンの中から最小限のＣＰＵ負荷を有する保護する仮想マシンを選択することができ、その保護サーバ１２０はアンチウイルススキャンの実行のためにファイルを送信することができる。
【００９１】
図５は、開示されたシステム及び方法が本発明の態様に従って実装され得る例示的なコンピュータシステム（パーソナルコンピュータまたはサーバでもよい）を示す。図示のように、コンピュータシステム２０（パーソナルコンピュータまたはサーバでもよい）は、中央処理装置２１、システムメモリ２２及び中央処理装置２１に関連するメモリを含む様々なシステム構成要素に接続されるシステムバス２３を含む。当業者には理解されるように、システムバス２３は、バスメモリまたはバスメモリコントローラ、周辺機器用バス、及び他のバスアーキテクチャと相互作用することができるローカルバスを含むことができる。システムメモリは、パーマネントメモリ（ＲＯＭ）２４及びランダムアクセスメモリ（ＲＡＭ）２５を含むことができる。基本入出力システム（ＢＩＯＳ）２６は、ＲＯＭ２４を利用してオペレーティングシステムをロードするときのような、コンピュータシステム２０の要素間で情報を転送するための基本的な手順を格納することができる。
【００９２】
コンピュータシステム２０はまた、データを読み書きするためのハードディスク２７と、リムーバブル磁気ディスク２９に読み書きするための磁気ディスクドライブ２８と、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、及び他の光メディアといったリムーバブル光ディスク３１を読み書きするための光学ドライブ３０とを含むことができる。ハードディスク２７、磁気ディスクドライブ２８、及び光学ドライブ３０はそれぞれ、ハードディスクインターフェース３２、磁気ディスクインターフェース３３及び光学ドライブインターフェース３４を介してシステムバス２３に接続されている。ドライブ及び対応するコンピュータ情報メディアは、コンピュータ命令、データ構造、プログラムモジュール、及びコンピュータシステム２０の他のデータを格納するための電源独立モジュールである。
【００９３】
例示的な態様では、コントローラ５５を介してシステムバス２３に接続されたハードディスク２７、リムーバブル磁気ディスク２９及びリムーバブル光ディスク３１を利用するシステムを含む。コンピュータによって読み取り可能な形式で保存することができる如何なるタイプのメディア５６（ソリッド・ステート・ドライブ、フラッシュ・メモリ・カード、デジタル・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、その他）も利用できることが当業者によって理解される。
【００９４】
コンピュータシステム２０は、オペレーティングシステム３５が格納されるファイルシステム３６と、追加のプログラムアプリケーション３７と、他のプログラムモジュール３８と、プログラムデータ３９とを有する。コンピュータシステム２０のユーザは、キーボード４０、マウス４２、または当業者に知られている任意の他の入力デバイス、例えばマイクロホン、ジョイスティック、ゲームコントローラ、スキャナだがこれらに限らない、を利用してコマンド及び情報を入力することができる。そのような入力デバイスは、典型的には、シリアルポート４６を介してコンピュータシステム２０に接続され、シリアルポート４６は、システムバスに接続されるが、入力デバイスを他の方法、例えば、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）だがこれらに限定されない、を介して接続することもできることが当業者であれば理解できる。モニタ４７または他のタイプのディスプレイ装置も、ビデオアダプタ４８などのインタフェースを介してシステムバス２３に接続することができる。モニタ４７に加えて、パーソナルコンピュータは、ラウドスピーカ、プリンタ等その他の周辺出力装置（図示せず）を備えることもできる。
【００９５】
コンピュータシステム２０は、１つまたは複数のリモートコンピュータ４９へのネットワーク接続を利用して、ネットワーク環境で動作することができる。上記１つのリモートコンピュータ（または複数のリモートコンピュータ）４９は、コンピュータシステム２０の性質を説明する上で前述した要素のほとんどまたはすべてを含むローカルコンピュータワークステーションまたはサーバであってもよい。ルータ、ネットワークステーション、ピアデバイス、または他のネットワークノードなどの他のデバイスも、コンピュータネットワークに存在することができるが、これに限定されるものではない。
【００９６】
ネットワーク接続は、ローカルエリアコンピュータネットワーク（ＬＡＮ）５０及びワイドエリアコンピュータネットワーク（ＷＡＮ）を形成することができる。このようなネットワークは、企業のコンピュータネットワーク及び社内ネットワークで利用され、一般的にインターネットへアクセスできる。ＬＡＮまたはＷＡＮネットワークでは、パーソナルコンピュータ２０は、ネットワークアダプタまたはネットワークインタフェース５１を介してローカルエリアネットワーク５０に接続される。ネットワークが利用される場合、コンピュータシステム２０は、モデム５４、またはインターネットなどのワイドエリアコンピュータネットワークとの通信を可能にする当業者に周知の他のモジュールを利用することができる。モデム５４は、内部または外部の装置であってもよく、シリアルポート４６によってシステムバス２３に接続されてもよい。上記ネットワーク接続は、通信モジュールを利用して１つのコンピュータによって別のコンピュータへの接続を確立する多くの周知の方法の非限定的な例であることは、当業者には理解されるであろう。
【００９７】
様々な態様において、本明細書に記載のシステム及び方法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実施されてもよい。ソフトウェアで実施される場合、これらの方法は、非一過性のコンピュータ可読媒体上に１つ以上の命令またはコードとして格納されてもよい。コンピュータ可読媒体は、データストレージを含む。限定ではない例として、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、フラッシュメモリ、若しくは他のタイプの電気、磁気、または光学記憶媒体、又は命令若しくはデータ構造の形態で所望のプログラムコードを実行または格納するために利用することができ、汎用コンピュータのプロセッサによってアクセスすることができる他の媒体を含む。
【００９８】
様々な態様において、本開示で説明されたシステム及び方法は、モジュールに関して扱うことができる。本明細書で使用される「モジュール」という用語は、実世界のデバイス、コンポーネント、又は、例えば、特定用途向け集積回路（ＡＳＩＣ）またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）等の、ハードウェアを利用して実装されたコンポーネントの配置、若しくは、（実行されている間に）マイクロプロセッサシステムを特殊用途の装置に変換するモジュールの機能を実装するためのマイクロプロセッサシステム及び命令の集合によるものといった、ハードウェアとソフトウェアの組み合わせ、のことを示す。モジュールは、これら２つの組み合わせとして実装されてもよく、特定の機能はハードウェア単体によって促進され、他の機能はハードウェアとソフトウェアの組み合わせによって促進されてもよい。特定の実施例では、モジュールの少なくとも一部、場合によっては全てが、汎用コンピュータのプロセッサ上で実行されてもよい（例えば、上記図４に詳細に記載されたものなど）。従って、各モジュールは、様々な適切な構成で実現されてもよく、ここに例示される特定の実装に限定されるべきではない。
【００９９】
明確化のために、本態様の所定の特徴の全てが本明細書に開示されるわけではない。本開示のいかなる実際の実施形態の開発においても、開発者の特定の目標を達成するために多数の実施に係る特有の決定がなされなければならず、これらの具体的な目標は異なる実施形態及び異なる開発者によって変わるであろう。そのような開発努力は複雑で時間がかかるが、それにもかかわらず、この開示の恩恵を受ける当業者にとって通常の工学的な取り組みであることが理解される。
【０１００】
更に、本明細書で使用される表現または用語は、限定ではなく説明のためのものであり、本明細書に開示される教示及び指針に照らして、関連技術における当業者の知識と組み合わせて、これら表現または用語が当業者によって解釈されると理解されたい。更に、本明細書または特許請求の範囲における任意の用語が、明示的に記載されていない限り、一般的でないまたは特別な意味であるとみなされることを意図するものではない。
【０１０１】
本明細書で開示される様々な態様は、説明のために本明細書で言及される既知のモジュールに対する現在及び将来の既知の等価物を包含する。更に、態様及び用途が示され、記載されているが、本開示の利益を有する当業者には、本明細書に開示された発明概念から逸脱することなく上述したより多くの改変が可能であることが明らかであろう。
【図１】
0006469165.tif 000026
【図２】
0006469165.tif 000027
【図３】
0006469165.tif 000028
【図４】
0006469165.tif 000029
【図５】
0006469165.tif 000030