(58)【調査した分野】(Int.Cl.,DB名)
前記選択されたサーバが、悪意のあるソフトウェアがないかスキャンされる複数のファイルのキューに前記少なくとも1つのファイルを加え、且つ悪意のあるソフトウェアがないかスキャンされるべき所定基準を前記1つのファイルが満たす場合には、前記複数のファイルのうちの1つを選択することを更に備える、請求項1に記載の方法。
前記所定基準は、前記スキャンされるファイルがこれまでにスキャンされておらず且つ悪意のあるソフトウェアを検出するために前記1つのファイルをスキャンすることについて、前記選択されたサーバが十分なコンピュータリソースを有しているという条件を含む、請求項2に記載の方法。
前記選択工程に係る1つのサーバの選択は、前記複数のサーバそれぞれの決定された処理実行速度に基づくものであって、次に掲げる(1)〜(4)の少なくとも何れか1つを更に備える、請求項1に記載の方法。
(1)悪意のあるソフトウェアがないか前記ファイルをスキャンするための最も高い処理実行速度を有する前記1つのサーバを前記シンクライアントが選択する。
(2)前記処理実行速度が所定の閾値を超える場合には悪意のあるソフトウェアがないか前記ファイルをスキャンするための最も高い処理実行速度を有する前記1つのサーバを前記シンクライアントが選択する。
(3)高悪意のあるソフトウェアがないかスキャンされるファイルに係る前記キューのサイズが最小である前記1つのサーバを前記シンクライアントが選択する。
(4)所定の閾値よりも低い前記キューを有する前記1つのサーバを前記シンクライアントが選択する。
前記複数のサーバそれぞれが、分散ネットワークを介して前記複数のサーバにおけるコンピュータリソースに係る特徴に関連する前記データを分散させる分散工程を更に備え、これにより複数のシンクライアントが前記データにアクセス可能であるように構成される、請求項1に記載の方法。
前記分散工程は、前記複数のシンクライアントに対する放送チャネル及び前記データのマルチキャストによって、少なくとも1つのデータルーティングを備える、請求項5に記載の方法。
前記所定基準は、前記スキャンされるファイルがこれまでにスキャンされておらず且つ前記選択されたサーバが悪意のあるソフトウェアを検出する前記1つのファイルをスキャンするのに十分なコンピュータリソースを有している、という条件を含む、請求項8に記載のシステム。
前記少なくとも1つのシンクライアントは、前記複数のサーバそれぞれの決定された処理実行速度に基づき前記1つのサーバを選択するように構成され、次に掲げる(1)〜(4)の少なくとも何れか1つを更に含む、請求項7に記載のシステム。
(1)悪意のあるソフトウェアがないか前記ファイルをスキャンするための最も高い処理実行速度を有する前記1つのサーバを選択する。
(2)前記処理実行速度が所定の閾値を超える場合には悪意のあるソフトウェアがないか前記ファイルをスキャンするための最も高い処理実行速度を有する前記1つのサーバを選択する。
(3)高悪意のあるソフトウェアがないかスキャンされるファイルに係る前記キューのサイズが最小である前記1つのサーバを選択する。
(4)所定の閾値よりも低い前記キューを有する前記1つのサーバを選択する。
前記複数のサーバそれぞれは、前記複数のシンクライアントに対する放送チャネル及び前記データのマルチキャストによる少なくとも1つのデータルーティングによって前記データを分散させるように構成される、請求項7に記載のシステム。
前記所定基準は、前記スキャンされるファイルがこれまでにスキャンされておらず且つ前記選択されたサーバが悪意のあるソフトウェアを検出する前記1つのファイルをスキャンするのに十分なコンピュータリソースを有している、という条件を含む、請求項13に記載のシンクライアントホスト。
前記プロセッサは、次に掲げる(1)〜(4)の少なくとも何れか1つにより前記複数のサーバそれぞれの決定された処理実行速度に基づいて前記1つのサーバを選択するように構成される、請求項12に記載のシンクライアントホスト。
(1)前記シンクライアントホストが、悪意のあるソフトウェアがないか前記ファイルをスキャンするための最も高い処理実行速度を有する前記1つのサーバを選択する。
(2)前記シンクライアントホストが、前記処理実行速度が所定の閾値を超える場合には悪意のあるソフトウェアがないか前記ファイルをスキャンするための最も高い処理実行速度を有する前記1つのサーバを選択する。
(3)前記シンクライアントホストが、高悪意のあるソフトウェアがないかスキャンされるファイルに係る前記キューのサイズが最小である前記1つのサーバを選択する。
(4)前記シンクライアントホストが、所定の閾値よりも低い前記キューを有する前記1つのサーバを選択する。
前記複数のサーバは、分散ネットワークを介して前記複数のサーバにおけるコンピュータリソースに係る特徴に関連する前記データをそれぞれ分散させ、これにより複数のシンクライアントが前記データにアクセス可能であるように構成される、請求項12に記載のシンクライアントホスト。
前記複数のサーバそれぞれは、前記複数のシンクライアントに対する放送チャネル及び前記データのマルチキャストによる少なくとも1つのデータルーティングによって前記データを分散させる、請求項16に記載のシンクライアントホスト。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明に係る方法とシステムは、「保護中のバーチャルマシン」の分散されたシステム上の悪意のあるファイルを検出するという課題を解決することを可能にする。別の実施形態によれば、かかる方法とシステムは、「保護済みのバーチャルマシン」の間で、悪意がないかスキャンをするためにファイル分散がデザインされる。
【課題を解決するための手段】
【0008】
本発明によれば、分散ネットワークにおけるバーチャルマシン上の悪意のあるファイルを検出するための方法であって、受信工程と、取得工程と、特定及び選択工程と、送信工程と、を備え、前記受信工程では、分散ネットワークにおける複数のサーバのコンピュータリソースに係る特徴に関連するデータを、バーチャルマシン上で動作しているシンクライアントが受信し、前記複数のサーバそれぞれが悪意のあるファイルを検出するように構成され、前記取得工程では、悪意のあるソフトウェアがないかがスキャンされる前記バーチャルマシン上の少なくとも1つのファイルを前記シンクライアントが取得し、前記特定及び選択工程では、前記シンクライアントが、前記複数のサーバの前記コンピュータリソースに係る特徴に関連する前記データを用いて、前記バーチャルマシン上の少なくとも1つのファイルのスキャンを実行する前記複数のサーバのうちの1つを特定及び選択し、前記送信工程では、悪意のあるソフトウェアを検出するための前記選択されたサーバによってスキャンされる前記バーチャルマシン上の前記少なくとも1つのファイルを前記シンクライアントが前記選択されたサーバに送信する、方法が提供される。
【0009】
本発明の別の側面によれば、前記選択されたサーバが、悪意のあるソフトウェアがないかスキャンされる複数のファイルのキューに前記少なくとも1つのファイルを加え、且つ悪意のあるソフトウェアがスキャンされるべき所定基準を前記1つのファイルが満たす場合には、前記複数のファイルのうちの1つを選択することを更に備える、方法が提供される。
【0010】
本発明の別の側面によれば、スキャンされるべき前記所定基準は、前記スキャンされるファイルがこれまでにスキャンされておらず且つ悪意のあるソフトウェアを検出するために前記1つのファイルをスキャンすることについて、前記選択されたサーバが十分なコンピュータリソースを有しているという条件を含む、方法が提供される。
【0011】
本発明の別の側面によれば、前記特定及び選択工程に係る特定は、次に掲げる(1)〜(4)の少なくとも何れか1つの方法により、前記複数のサーバそれぞれが処理実行速度を決定することを更に備える、方法が提供される。
(1)前記複数のサーバそれぞれのキューにある複数のファイルについて、悪意のあるソフトウェアがないかスキャンされる前に経過する時間の中心化傾向を測定する。
(2)前記バーチャルマシンからファイルを取得してから、前記複数のサーバそれぞれから悪意のあるソフトウェアがないかファイルをスキャンするまでのトータル経過時間における中心化傾向を測定する。
(3)前記複数のサーバそれぞれの前記キューが満タンになる速度の中心化傾向を測定する。
(4)前記バーチャルマシンを保護する前記複数のサーバそれぞれの使用速度の中心化傾向を測定する。
【0012】
本発明の別の側面によれば、前記特定及び選択工程に係る1つのサーバの選択は、前記複数のサーバそれぞれの決定された処理実行速度に基づくものであって、次に掲げる(1)〜(4)の少なくとも何れか1つを更に備える、方法が提供される。
(1)悪意のあるソフトウェアがないか前記ファイルをスキャンするための最も高い処理実行速度を有する前記1つのサーバを前記シンクライアントが選択する。
(2)前記処理速度が所定の閾値を超える場合には悪意のあるソフトウェアがないか前記ファイルをスキャンするための最も高い処理実行速度を有する前記1つのサーバを前記シンクライアントが選択する。
(3)高悪意のあるソフトウェアがないかスキャンされるファイルに係る前記キューのサイズが最小である前記1つのサーバを前記シンクライアントが選択する。
(4)所定の閾値よりも低い前記キューを有する前記1つのサーバを前記シンクライアントが選択する。
【0013】
本発明の別の側面によれば、前記複数のサーバそれぞれが、分散ネットワークを介して前記複数のサーバにおけるコンピュータリソースに係る特徴に関連する前記データを分散させる分散工程を更に備え、これにより複数のシンクライアントが前記データにアクセス可能であるように構成される、方法が提供される。
【0014】
本発明の別の側面によれば、前記分散工程は、前記複数のシンクライアントに対する放送チャネル及び前記データのマルチキャストによって、少なくとも1つのデータルーティングを備える、方法が提供される。
【0015】
本発明の別の側面によれば、分散ネットワークにおける複数のバーチャルマシン上の悪意のあるファイルを検出するためのシステムであって、複数のサーバと、少なくとも1つのシンクライアントとを備え、前記複数のサーバは、分散ネットワークを介して、悪意のあるソフトウェアがないかファイルをスキャンし、前記サーバそれぞれのコンピュータリソースに係る特徴に関連するデータを分散させるように構成され、前記少なくとも1つのシンクライアントは、前記複数のバーチャルマシンのうちの1台で動作するシンクライアントであって、分散ネットワークの前記複数のサーバそれぞれからコンピュータリソースに係る特徴に関連する前記データを受信し、バーチャルマシン上に存在し且つ悪意のあるソフトウェアがないかスキャンされるべきである少なくとも1つのファイルを取得し、前記バーチャルマシン上の前記少なくとも1つのファイルのスキャンを実行する前記複数のサーバの1つを、前記コンピュータリソースに係る特徴に関連する前記データを用いて特定及び選択し、前記バーチャルマシン上の前記少なくとも1つのファイルを前記選択されたサーバに送信するように構成され、前記選択されたサーバは、悪意のあるソフトウェアを検出するために、前記少なくとも1つのシンクライアントから受信した前記少なくとも1つのファイルをスキャンする、システムが提供される。
【0016】
本発明の別の側面によれば、バーチャルマシン上で動作し且つ悪意のあるソフトウェアから前記バーチャルマシンを保護するシンクライアントホストであって、前記シンクライアントはプロセッサを備え、前記プロセッサは、悪意のあるファイルを検出するように構成された前記複数のサーバそれぞれが設定される分散ネットワーク上の複数のサーバにおけるコンピュータリソースに係る特徴に関連するデータを受信し、悪意のあるソフトウェアがないかスキャンされる前記バーチャルマシン上の少なくとも1つのファイルを取得し、前記バーチャルマシン上の前記少なくとも1つのファイルのスキャンを実行する前記複数のサーバのうちの1台を、前記コンピュータリソースに係る特徴に関連する前記データを用いて特定及び選択し、悪意のあるソフトウェアを検出する前記選択されたサーバによってスキャンされる前記バーチャルマシン上の前記少なくとも1つのファイルを前記選択されたサーバに送信するように構成される、シンクライアントホストが提供される。
【0017】
上述した実施形態の簡単な説明は、本発明の基本的な理解を提供するのに役立つ。この概要は、全ての考えられる側面の詳細な展望ではなく、全ての側面の鍵となるものや決定的な要素を特定することを意図していないし、本発明の全ての側面を描写することも意図していない。その唯一の目的は、前置きとして、1つ又は複数の側面を表し、その後、本発明のより詳細な説明に続くものである。これを達成するため、本発明の1つ又は複数の側面が説明されて、特許請求の範囲においても主張される。
【発明を実施するための形態】
【0021】
添付の図面は、本明細書の一部として組み入れられ、この指定の一部を構成し、発明の詳細な説明とともに本発明の1つ又は複数の例面を説明し、それらの原理と実施を説明するのに役立ち得るものである。
【0022】
例示する実施形態は以下、システム、方法、及びコンピュータ上で実行されるアプリケーションを制御するコンピュータプログラム製品として説明される。当業者であれば、以下の記載はあくまでも例示であり、あらゆる制限をも意図するものではないことは当然に意味するところである。本発明が利益となる分野の当業者であれば、別例をも容易に示唆されることであろう。添付の図面ではその詳細を示すための参照符号が付されている。図面と以下の記載において、同一の又はそれに相当するものについては、同一の参照符号を用いるものとする。
【0023】
本発明は、様々な側面についての説明を容易にするために用いられる多くの定義と概念を提供する。実施形態の目的のために以下の定義が提供されるものと留意されたい。
【0024】
「保護中のバーチャルマシン」は、シンクライアントコンポーネントが動作するコンピュータ環境において、ハイパーバイザーの制御下で、インストールされたゲストオペレーティングシステムによって動作するバーチャルマシンである。
【0025】
「保護済みのバーチャルマシン」は、保護サーバコンポーネントが動作するコンピュータ環境において、ハイパーバイザーの制御下で、インストールされたオペレーティングシステムによって動作するバーチャルマシンである。
【0026】
「シンクライアント」は、悪意のあるプログラムやコンピュータの脅威から「保護中のバーチャルマシン」を保護し、「保護済みのバーチャルマシン」のネットワークを介して悪意がないかスキャンするためにファイルを送信することを意図されたソフトウェアである。一般に、用語「シンクライアント」は、データ処理及びコンピュータの役割を実行するサーバに依存しているクライアントマシンであって、当業者にとって理解され得るものとして使用するものとする。実施形態によれば、シンクライアントソフトウェア(例えば、クライアントターミナルのバーチャルマシンの範囲で動作するもの)を有する専門のシンクライアントターミナル又は通常のPCは、キーボード及びマウス入力をサーバに送信し、スクリーンへの出力を受信するものである。一側面によれば、シンクライアントは、あらゆるデータを処理するものではなく、ユーザインターフェース(UI)の処理をするだけである。データセンターのセキュリティとソフトウェアとを中心的に管理するので、メンテナンスとセキュリティとが向上するという利点がある。以下、本発明では「シンクライアント」を参照していくが、例示的なシンクライアントとは、キーボード、マウス、モニタ、サウンド周辺機器用のジャックに係る入出力と、例えばプリンタ、フラッシュドライブ、ウェブカメラ、カードリーダ、スマートフォン等のUSBデバイスのためのUSBポートとを提供するコンピュータターミナル等のハードウェアを一般的に含み得るということに留意されたい。更に、例示的なシンクライアントは、レシートプリンタ、秤、時計等の古い機器をサポートするために、レガシーシリアル及び/又はパラレルポートも含み得る。シンクライアントソフトウェアは、一般に、GUI(グラフィカル・ユーザ・インターフェース)、クラウドアクセスエージェント(例えば、RDP、ICA、PCoIP)、ローカルなウェブブラウザ、場合によってはターミナルエミュレーション(場合によっては)、及びローカルユーティリティの基本的なセットから構成される。
【0027】
「保護サーバ」は、「保護中のバーチャルマシン」から受信したファイルに悪意がないかのスキャンを実行することを意図されたソフトウェアである。
【0028】
図1は、実施形態に係る「保護中のバーチャルマシン」において、悪意のあるファイルを検出するためのシステムのブロック図を示している。
【0029】
「保護中のバーチャルマシン」における悪意のあるファイルを検出するためのシステムの構造図は、「シンクライアント」110、収集モジュール111、選択モジュール112、タスク形成モジュール113、「保護サーバ」120、送信モジュール121、タスクコントロールモジュール122、及びスキャンモジュール123を含む。収集モジュール111、選択モジュール112、及びタスク形成モジュール113の全てが、1つ又は複数のモジュールであってそれぞれが後述のアルゴリズムを実行可能なシンクライアント110用のモジュールとして提供されることに留意されたい。同様に、送信モジュール121、タスクコントロールモジュール122及びスキャンモジュール123の全ては、1つ又は複数のモジュールであってそれぞれが後述のアルゴリズムを実行可能な保護サーバ120用のモジュールとして提供される。更に、以下使用する用語「モジュール」は、ハードウェアを用いて実装される実世界の機器、コンポーネント、又はコンポーネント類を指すものとする。ここでいうハードウェアとは、例えば、特定用途向け集積回路(ASIC:Application Specific Integrated Circuit)又はFPGA(Field−programmable Gate Array)や、ハードウェアとソフトウェアの組み合わせ等によるものや、マイクロプロセッサシステム及びモジュールの機能を実行する指示のセットであって実行中にマイクロプロセッサシステムを特定の目的の機器に変換するものによるものである。
【0030】
実施形態によれば、「シンクライアント」110は、悪意のあるプログラムとコンピュータ脅威から「保護中のバーチャルマシン」を保護するように設計されて、収集モジュール111、選択モジュール112、及びタスク形成モジュール113を含んでいる。
【0031】
実施形態によれば、「シンクライアント」110の一部である収集モジュール111は、以下の機能を実行するために設定される。
・コンピュータ・ネットワークのドライバによって、コンピュータ・ネットワークを介して送信モジュール121により分散される「保護サーバ」120のコンピュータリソースに係る特徴を含む情報をインターセプト(「通信途中での取得」の意)すること。
・インターセプトされた情報を選択モジュール112に送信する。
【0032】
実施形態によれば、「保護サーバ」120のコンピュータリソースに係る特徴は、例えば、以下のものであり得る。
・ファイルが「保護サーバ」120のタスク待ちキューに費やす時間。
・タスク形成モジュール113からファイルを受信してからスキャンモジュール123によって判断が出されるまでの経過時間。
・「保護サーバ」120のタスク待ちキューのサイズ。
・「保護サーバ」120が動作している「保護済みのバーチャルマシン」の処理パワー。
【0033】
「保護中のバーチャルマシン」上で動作している「シンクライアント」110の一部である収集モジュール111は、「保護サーバ」120のコンピュータリソースに係る特徴を含む情報であって「保護サーバ」の一部である送信モジュール121により別の「保護中のバーチャルマシン」上で動作する「シンクライアント」110の一部である収集モジュール111に送信される情報をインターセプトできる。
【0034】
実施形態によれば、「シンクライアント」110の一部である選択モジュール112は、以下の機能を実行するように構成される。
・「保護サーバ」120それぞれのアンチウィルススキャンの処理実行速度であって、そのコンピュータリソースに係る特徴が、収集モジュール111から受信した情報に含まれている処理実行速度を計算する。
・悪意がないかのスキャンの、計算された処理実行速度の分析に基づいて、「保護サーバ」120を選択する。
・選択された「保護サーバ」120それぞれにおける情報であって、「保護サーバ」120の少なくとも1つのユニークな識別子を有する情報をタスク形成モジュール113に送信する。
【0035】
実施形態によれば、「保護サーバ」120の悪意がないかのスキャンの処理実行速度は、以下の1つ又は複数の事項に基づく。
・「保護サーバ」のタスク待ちキューにおけるファイルによる経過時間の中
心傾向の
測定結果。
・タスク形成モジュール113からファイルを受信してからスキャンモジュール123が判断を出すまでの経過時間の中
心傾向の
測定結果。
・「保護サーバ」120のタスク待ちキューが満タンになる速度の中
心傾向の測定結果。
・「保護サーバ」120が動作する「保護済みのバーチャルマシン」の処理パワーが使用される速度の中
心傾向の測定結果。
【0036】
「保護サーバ」120の悪意がないかのスキャンを実行する速度は、選択された期間における「保護済みのバーチャルマシン」それぞれによって「保護サーバ」120の悪意がないかのスキャンの処理実行速度を予測する確率的手法を用いた上記の方法の全てによって計算され得る。
【0037】
タスク形成モジュール113へ送信するために、以下の1つ又は複数の基準に基づいて「保護サーバ」120が選択され得る。
・悪意がないかのスキャンの処理実行速度のうち最も高く計算されたもの。
・悪意がないかのスキャンの処理実行速度のうち所定の閾値よりも高く計算されたもの。
・「保護サーバ」のタスク待ちキューの最小サイズ。
・「保護サーバ」のタスク待ちキューのサイズのうち所定の閾値よりも低く計算されたもの。
【0038】
実施形態によれば、「シンクライアント」110の一部であるタスク形成モジュール113は、以下の機能を実行するように構成される。
・バーチャルマシンであって、その「シンクライアント」110が悪意がないかのスキャンを実行するために動作するバーチャルマシンのファイルを受信する。
・「保護サーバ」120のタスクコントロールモジュール122に、受信ファイルであってその情報が選択モジュール112から受信された受信ファイルを送信する。
【0039】
「保護サーバ」120は、「保護中のバーチャルマシン」の「シンクライアント」110から受信したファイルに対して悪意がないかのスキャンを実行するように設計されており、これは、送信モジュール121、タスクコントロールモジュール122、及びスキャンモジュール123を含んでいる。
【0040】
実施形態によれば、「保護サーバ」120の一部である送信モジュール121は、以下の機能を実行するように構成される。
・「保護サーバ」120のコンピュータリソースに係る特徴を決定する。
・コンピュータ・ネットワークを介して、決定された特徴を含んでいる情報を分散させる。
【0041】
実施形態によれば、コンピュータ・ネットワークを介した、送信モジュール121により決定された、「保護サーバ」120のコンピュータリソースに係る特徴を含んでいる情報の送信モジュール121による分散は、以下の1つ又は複数の手法に基づいて行われる。
・放送チャネルを介したルーティング。
・マルチアドレス放送(マルチキャスト)。
・少なくとも1つの「シンクライアント」110に対して、収集モジュール111に直接送信する。
【0042】
実施形態によれば、「保護サーバ」120の一部であるタスクコントロールモジュール122は、以下の機能を実行するように構成される。
・少なくとも1つの「シンクライアント」110のタスク形成モジュール113から受信したファイルを含んでいるリストであるタスク待ちキューの負荷を調整する。
なお、タスク待ちキューとは、(1)「シンクライアント」110のタスク形成モジュール113から受信したファイルを自身に追加し、(2)悪意がないかのスキャンを実行するためのスキャンモジュール123に送信するため自身からファイルを選択するように設計されたものである。
・スキャンモジュール123によって悪意がないかのスキャンを実行するために、タスク待ちキューから所定基準(後述の条件)を満たすファイルを選択する。
条件は、(1)スキャンモジュール123が選択されても、以前にスキャンモジュール123に送信されたファイルについては悪意がないかのスキャンを実行しない、及び/又は、(2)スキャンモジュール123は、選択されたファイルを処理するのに十分なコンピュータリソースを有している、である。
・悪意がないかのスキャンを実行するために、タスク待ちキューから選択されたファイルをスキャンモジュール123に送信する。
【0043】
実施形態によれば、「保護サーバ」120の一部であるスキャンモジュール123は、以下の機能を実行するように構成される。
・タスクコントロールモジュール122から受信したファイルに悪意がないかのスキャンを実行する。
・悪意がないかのスキャンを実行した結果、悪意のあるファイルが検出された場合には、「悪意のあるファイルが検出された」という判断を出す。
【0044】
「保護中のバーチャルマシン」上の悪意のあるファイルの検出のためのシステムの動作については、2つの「保護済みのバーチャルマシン」のリソースにより、10個の「保護中のバーチャルマシン」に保存された1000個のファイル(すなわち「保護中のバーチャルマシン」それぞれに対して100個のファイル)に対し悪意がないかのスキャンを行うという例を考慮すべきである。
【0045】
10個の「保護中のバーチャルマシン」それぞれにおいて、「シンクライアント」110が、1回ごとに、悪意がないかスキャンされる必要がある100個のファイルのグループから1つのファイルを取り出す。「保護中のバーチャルマシン」それぞれのシンクライアント110の一部である収集モジュール111は、専用ドライバの補助により、「保護済みのバーチャルマシン」の「保護サーバ」120のコンピュータリソースに係る特徴であって、以前に2つの利用可能な「保護済みのバーチャルマシン」のうちのそれぞれの「保護サーバ」の送信モジュール121によって送信され、その後選択モジュール112に送信される特徴をインターセプトする。「保護サーバ」#1_120と「保護サーバ」#2_120のコンピュータリソースに係る特徴は様々である(つまり「保護済みのバーチャルマシン」自身及び「保護サーバ」の設定に依存する)。例えば、「保護サーバ」#1_120の悪意がないかのスキャンのタスク待ちキューにおいてファイルに費やす時間、「保護サーバ」#1_120が動作する「保護済みのバーチャルマシン」#1の処理パワー(すなわち、利用可能なRAM、CPUの速度等)、「保護サーバ」#2_120の悪意がないかのスキャンのタスク待ちキューのサイズ等である。
【0046】
「保護サーバ」#1_120と「保護サーバ」#2_120のコンピュータリソースのインターセプトされた特徴に基づいて、他の選択モジュール112に依存せず「保護中のバーチャルマシン」それぞれの「シンクライアント」の一部である選択モジュール112が、タスク形成モジュール113からファイルを受信してからスキャンモジュール123による判断が出されるまでの経過時間に係る相加平均を計算する。この経過時間は、「保護サーバ」#1及び#2_120の悪意がないかのスキャンの処理実行速度といえる。2つの「保護サーバ」のうち、悪意がないかのスキャンの処理実行速度が最も高い「保護サーバ」が選択され(#2)、その結果はタスク形成モジュール113に送信される。なぜなら、悪意がないかのスキャン(#1)の実行に係る最小計算速度は、「保護サーバ」#1_120が、他のスキャンタスクを現在負われているか、又は、「保護済みのバーチャルマシン」が悪意がないかファイルのスキャンを実行するために必要なコンピュータリソースを有していないことを意味するからである。
【0047】
「シンクライアント」110の一部であるタスク形成モジュール113は、「シンクライアント」110から悪意がないかスキャンする次のファイルをリクエストする。得られたファイルは、選択された「保護サーバ」(#2)120のタスクコントロールモジュール122に送信される。
【0048】
「保護サーバ」#2_120の一部であるタスクコントロールモジュール122は、「保護中のバーチャルマシン」それぞれの「シンクライアント」のタスク形成モジュール113から受信したファイルを悪意がないかのスキャンのタスク待ちキューに追加する。待機キューは、すでに、他の「保護中のバーチャルマシン」の「シンクライアント」のタスク形成モジュール113から受信したファイルをも含み得る。「保護サーバ」#2_120の一部であるスキャンモジュール123が、悪意がないかファイルをスキャンするタスクによって占められている限り、悪意がないかのスキャンのタスク待ちキューが単純に増加していく。すなわち、「保護中のバーチャルマシン」の「シンクライアント」のタスク形成モジュール113から受信したファイルは、悪意がないかのスキャンのタスク待ちキューに追加されるが、そこから除去されることはなく、その後の処理たるスキャンモジュール123には送信されない。タスクコントロールモジュール122は、悪意がないかのファイルのスキャンを実行しているスキャンモジュール123の可能性を定期的に決定する。スキャンモジュール123が、以前のタスクの実行を完了した後に、タスクコントロールモジュール122は悪意がないかのスキャンのタスク待ちキューからファイルの次のバッチであって1つ又は複数のファイルを含むバッチを取り、これをスキャンモジュール123に送信する。
【0049】
スキャンモジュール123は、タスクコントロールモジュール122から受信したファイルに悪意がないかのスキャンを実行し、受信したファイルに悪意がないかについて判断を出す。スキャンを完了した後に、スキャンモジュール123は、受信したファイルの処理が完了した情報及びそのスキャンの結果をタスクコントロールモジュール122に送信する。
【0050】
「保護サーバ」#2_120の動作中、「保護中のバーチャルマシン」の「シンクライアント」110はアイドル状態ではない。「保護サーバ」#2_120の動作中、「保護サーバ」#1_120は解放されている。かかる場合、悪意がないかのスキャンが実行される次の時間が計算され、それは「保護サーバ」#1_120が「保護サーバ」#2_120に対してよりも大きくなる。そして、これからスキャンする990個のファイル(すなわち「保護中のバーチャルマシン」それぞれにおいて99個のファイル)の次のバッチが、「保護サーバ」#2_120のタスクコントロールモジュール122に送信される。
【0051】
図2は、実施形態により、「保護中のバーチャルマシン」上の悪意のあるファイルを検出するための方法に係る例示的なフローチャートを示している。
【0052】
実施形態によれば、「保護中のバーチャルマシン」上の悪意のあるファイルを検出するための方法のフローチャートは、悪意がないかのスキャン(マルウェアスキャン)の実行のためにファイルが要求されるステップ201と、「保護サーバ」120のコンピュータリソースに係る特徴がインターセプトされるステップ202と、「保護サーバ」120による悪意がないかのスキャンの処理実行速度が計算されるステップ203と、「保護サーバ」120が選択されるステップ204と、コンピュータリソースに係る特徴が決定されるステップ211と、悪意がないかのスキャンのタスク待ちキューが組織されるステップ221と、悪意がないかのスキャンのタスク待ちキューからファイルが選択されるステップ223と、悪意がないかのスキャンが実行されるステップ224と、悪意のあるファイルの検出について判断が出されるステップ225と、を含む。
【0053】
特にステップ201に示されるように、悪意がないかのスキャンを実行するために前記「シンクライアント」110が動作するバーチャルマシンからファイルが受信される。
【0054】
ステップ211において、「保護サーバ」120のコンピュータリソースに係る特徴が決定されて、その特徴を含んでいる情報が、コンピュータ・ネットワークを介して分散される。
【0055】
「保護サーバ」120のコンピュータリソースに係る特徴が決定されて、その特徴を含んでいる情報のコンピュータ・ネットワークを介した分散は、以下の1つ又は複数の手法によって実行される。
・チャネル放送によるルーティング。
・マルチアドレス放送(マルチキャスト)。
・少なくとも1つの「シンクライアント」110に対して、収集モジュール111に直接送信すること。
【0056】
「保護サーバ」120のコンピュータリソースに係る特徴は、以下の1つ又は複数の事項である。
・ファイルが「保護サーバ」120のタスク待ちキューに費やす時間。
・ステップ201においてタスク形成モジュール113からファイルを受信してからステップ225においてスキャンモジュール123によって判断が出されるまでの経過時間。
・「保護サーバ」120のタスク待ちキューのサイズ。
・「保護サーバ」120が動作している「保護済みのバーチャルマシン」の処理パワー。
【0057】
ステップ202において、コンピュータ・ネットワークのドライバは、ステップ211において決定された「保護サーバ」120のコンピュータリソースに係る特徴を含んでいる情報をインターセプトする。
【0058】
「保護中のバーチャルマシン」が動作している「シンクライアント」110の一部である収集モジュール111は、「保護サーバ」120のコンピュータリソースに係る特徴を含んでいる情報をインターセプトできる。この情報は、ステップ211において別の「保護中のバーチャルマシン」で動作している「シンクライアント」110の一部である収集モジュール111に、「保護サーバ」の一部である送信モジュール121によって送信されたものである。
【0059】
ステップ203において、悪意がないかのスキャンの実行速度が「保護サーバ」120それぞれに対して計算され、そのコンピュータリソースに係る特徴がステップ202においてインターセプトされた情報に含まれている。
【0060】
「保護サーバ」120の悪意がないかのスキャンの処理実行速度は、以下の1つ又は複数の事項に基づく。
・「保護サーバ」のタスク待ちキューにおけるファイルによる経過時間の中
心傾向の
測定結果。
・ステップ201においてタスク形成モジュール113からファイルを受信してからステップ225においてスキャンモジュール123が判断を出すまでの経過時間の中
心傾向の
測定結果。
・「保護サーバ」120のタスク待ちキューが満タンになる速度の中
心傾向の
測定結果。
・「保護サーバ」120が動作する「保護済みのバーチャルマシン」の処理パワーが使用される速度の中
心傾向の
測定結果。
【0061】
「保護サーバ」120の悪意がないかのスキャンを実行する速度は、選択された期間における「保護済みのバーチャルマシン」それぞれによって「保護サーバ」120の悪意がないかのスキャンの処理実行速度を予測する確率的方法を用いた上記の方法の全てによって計算され得る。
【0062】
ステップ204において、「保護サーバ」120は、ステップ203において計算された悪意がないかのスキャンの処理実行速度の分析に基づいて選択される。
【0063】
タスク形成モジュール113へ送信するために、この方法では、以下の1つ又は複数の基準によって「保護サーバ」120が選択され得る。
・ステップ203において計算された悪意がないかのスキャンの処理実行速度のうち最も高く計算されたもの。
・ステップ203において計算された悪意がないかのスキャンの処理実行速度のうち所定の閾値よりも高く計算されたもの。
・「保護サーバ」のタスク待ちキューの最小サイズ。
・「保護サーバ」のタスク待ちキューのサイズのうち所定の閾値よりも低く計算されたもの。
【0064】
ステップ221において、悪意がないかのスキャンのタスク待ちキューが作成される。これは、ステップ201において受信したファイルを含むリストであり、以下の機能を実行するように構成される。
・タスク形成モジュール113から取得したファイルを自身に追加する。
・悪意がないかのスキャンを実行するためのスキャンモジュール123に送信するため自身からファイルを選択する。
【0065】
ステップ223において、スキャンモジュール123によって悪意がないかのスキャンを実行するために、タスク待ちキューから所定基準(後述の条件)を満たすファイルを選択する。
・スキャンモジュール123が選択されても、以前にスキャンモジュール123に送信されたファイルについては悪意がないかのスキャンを実行しない。
・スキャンモジュール123は、選択されたファイルを処理するのに十分なコンピュータリソースを有している。
【0066】
ステップ224において、ステップ223において選択されたファイルの悪意がないかのスキャンが、既存のファイルスキャン手法(例えば署名ベースの検出、経験則、ルートキット検出等)によって実行される。
【0067】
最後にステップ225では、ステップ224において実行された悪意がないかのスキャンの結果として悪意のあるファイルが検出された場合に、「悪意のあるファイルが検出された」と判断が出される。一側面によれば、この判断は、シンクライアント110に再度送信されてもよいし、代わりに、悪意のあるソフトウェアがないと判断されるならばそのファイルを実行してもよいし、悪意のあるソフトウェアがないと判断されるならばそのファイルを除去/隔離してもよい。
【0068】
図3は、実施形態に係り本発明のシステムと方法が実装できる汎用コンピュータ・システム(パーソナル・コンピュータやサーバ等)の例を示している。例えば、コンピュータ・システム20は、保護サーバ120又はシンクライアント110の1つ又は複数に対応し得る。図示の通り、コンピュータ・システム20は、CPU21(シンクライアント110用ではないことに留意)と、システムメモリ22と、CPU21と関連付けられたメモリを含む様々なシステムコンポーネントを接続するシステムバス23とを含み得る。システムバス23は、バスメモリ又は、バスメモリコントローラ、周辺バス、及びローカルバスを次々含む従来より公知のあらゆるバス構造としても実現され得、これらはどのような他のバスアーキテクチャとも通信可能である。システムメモリは、リードオンリーメモリ(ROM)24及びランダムアクセスメモリ(RAM)25を含む。基本的な入出力システム(BIOS)26は、ROM24の使用によってオペレーティングシステムをロードする際等、パーソナル・コンピュータ20の要素間の情報の伝達を担う基本的な手順を含む。
【0069】
パーソナル・コンピュータ20は、データの読み書きのためのハードディスク27、取り外し可能な磁気ディスク29の読み書きのための磁気ディスクドライブ28、及びCD−ROM、DVD−ROM、その他の光学メディア等の光学ディスク31の読み書きのための光学式ドライブ30を含む。ハードディスク27、磁気ディスクドライブ28、及び光学式ドライブ30は、ハードディスクインターフェース32、磁気ディスクインターフェース33、及び光学式ドライブインターフェース34それぞれを横切るシステムバス23と接続される。ドライブ及び対応するコンピュータ情報メディアは、コンピュータ命令、データ構造体、プログラムモジュール、及びパーソナル・コンピュータ20の他のデータのストレージのための電源依存のモジュールである。
【0070】
本発明は、ハードディスク27、取り外し可能な磁気ディスク29及び取り外し可能な光学ディスク31を用いるシステムの実装を提供するものだが、コンピュータに読み込み可能な形式でデータを保存できるフラッシュメモリカード、デジタルのディスク、ランダムアクセスのメモリ(RAM)等の他のタイプのコンピュータ情報メディア56を使用してもよいことに留意されたし。また、これはコントローラ55を介してシステムバス23に接続される。
【0071】
コンピュータ20は、ファイルシステム36を有し、記録されたオペレーティング・システム35の保持する。また追加のプログラムアプリケーション37、他のプログラムモジュール38、及びプログラムデータ39を有する。ユーザは、入力デバイス(キーボード40、マウス42)を用いてコマンドと情報をパーソナル・コンピュータ20に入力することができる。他の入力デバイス(不図示):マイクロフォン、ジョイスティック、ゲームコントローラ、スキャナ等を用いることもできる。そのような入力デバイスは、通常、システムバスに次々接続しているシリアルポート46を通じてコンピュータ・システム20に差し込まれるが、それらは、他の方法例えばパラレル・ポート、ゲームポート、又は一般的なシリアルバス(USB)に接続される。ディスプレイ機器のモニタ47又は他のタイプは、また、ビデオアダプタ48等のインターフェースと交差するシステムバス23に接続している。モニタ47に加えて、パーソナル・コンピュータは、スピーカー、プリンタ等の他の周辺の出力デバイス(不図示)を接続できる。
【0072】
パーソナル・コンピュータ20は、1つ又は複数のリモートコンピュータ49とのネットワーク接続を用いて、ネットワーク環境で操作することができる。リモートコンピュータ(又はコンピュータ)49は、
図4に示すように、パーソナル・コンピュータ20の性質として説明した上述の要素全ての大多数を有するパーソナル・コンピュータ又はサーバでもある。ルータ、ネットワークステーション、ピア接続の機器、又は他のネットワークノード等の他の機器もまた、かかるコンピュータ・ネットワークで存在し得るものである。
【0073】
ネットワーク接続は、ローカルエリアコンピュータ・ネットワーク(LAN)50及びワイドエリアコンピュータ・ネットワーク(WAN)を形成することができる。そのようなネットワークは、企業のコンピュータ・ネットワーク及び社内ネットワークで利用され、それらはたいていにインターネットにアクセスすることができる。LAN又はWANネットワークにおいて、パーソナル・コンピュータ20は、ネットワークアダプタ又はネットワークインターフェース51に交差するローカルエリアネットワーク50に接続されている。ネットワークが用いられる時には、パーソナル・コンピュータ20は、通信にインターネット等のワイドエリアコンピュータ・ネットワークを実現するために、モデム54又は他のモジュールを使用することができる。内部又は外部の機器であるモデム54は、シリアルポート46によりシステムバス23と接続される。かかるネットワーク接続は、単なる一例であり、ネットワークの正確な構成を示すものではない。すなわち、技術の通信モジュールによって、あるコンピュータから他のコンピュータへの接続を確立する他の方法(Bluetooth接続等)もあることに留意されたい。
【0074】
様々な実施形態において、ハードウェア、ソフトウェア、ファームウェア、又はこれらのあらゆる組み合わせにおいて、ここで説明されたシステム及びメソッドを実施し得る。ソフトウェアにおいて実装される場合は、メソッドは不揮発性コンピュータ可読メディアの1つ又は複数の指示又はコードとして保存され得る。コンピュータ可読メディアは、データストレージを含む。あくまでも例であり限定するものではないが、そのようなコンピュータ可読メディアは、RAM、ROM、EEPROM、CD−ROM、フラッシュメモリ、若しくは他のタイプの電気、磁気、光学式の記憶媒体、又はその他のメディアであってもよい。すなわち、これらによって指示又はデータ構造体という形で、要求されたプログラムコードを運ぶか又は保存することができ、汎用コンピュータのプロセッサによってアクセスすることができる。
【0075】
様々な実施形態で、本発明のシステム及びメソッドが、モジュールとして実装され得る。ここで用語「モジュール」は、実世界の機器、コンポーネント、又はハードウェアを用いて実装されたコンポーネント配置であり、例えばASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)等の、又は例えばモジュールの機能を実行するマイクロプロセッサシステムや指示セットによる等、ハードウェアとソフトウェアの組み合わせとして実装され得る。これらは、実行中にマイクロプロセッサシステムを特定の機器に変換する。モジュールは、ハードウェア単体により促進される一定の機能とハードウェア及びソフトウェアの組み合わせによって促進される他の機能という2つの組み合わせとして実施されてもよい。モジュールの少なくとも一部又は全部は、汎用コンピュータのプロセッサにおいて実行できる(
図6において詳述したもの等)。したがって、各モジュールは様々な適当な構成で実現することができて、ここに例示した特定の実装に限られるものではない。
【0076】
なお、実施形態の通常の機能のうちの全てをここで開示しているわけではない。本発明の何れの実施形態を開発する場合においてでも、開発者の具体的な目標を達成するためには多くの実施に係る特別な決定が必要であり、これらの具体的な目標は実施形態及び開発者ごとに異なることに留意されたし。そのような開発努力は、複雑で時間を要するものであるが、本発明の利益を享受し得る当業者にとってはエンジニアリングの日常であると理解されたい。
【0077】
更に、本明細書で使用される用語又は表現は、あくまでも説明のためであり、限定するものではない。つまり、関連技術の熟練の知識と組み合わせて、本明細書の用語又は表現は、ここに示される教示及び指針に照らして当業者によって解釈されるべきであると留意されたし。明示的な記載がない限り、明細書又は特許請求の範囲内における任意の用語に対して、珍しい又は特別な意味を帰することは意図されていない。
【0078】
本明細書で開示された様々な態様は、例示のために本明細書に言及した既知のモジュールの、現在及び将来の既知の均等物を包含する。更に、態様及び用途を示し、説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの改変が可能であることが、この開示の利益を有する当業者には明らかであろう。