(57)【特許請求の範囲】
【請求項１】
分散ネットワークにおけるバーチャルマシン上の悪意のあるファイルを検出するための方法であって、
受信工程と、決定工程と、取得工程と、選択工程と、送信工程と、を備え、
前記受信工程では、分散ネットワークにおける複数のサーバのコンピュータリソースに係る特徴に関連するデータを、バーチャルマシン上で動作しているシンクライアントが受信し、前記サーバそれぞれが悪意のあるファイルがないかのスキャンを実行するように構成され、
前記決定工程では、受信した前記データに基づき、
前記スキャンを実行する前に各サーバのタスク待ちキューにおけるファイルによる経過時間、
各サーバのタスク待ちキューが満タンになる速度、
前記バーチャルマシンからファイルを受信してから前記サーバの各々による当該ファイルのスキャンまで経過した時間、および、
前記サーバの各々の処理パワーが使用される速度、の少なくとも１つの中心傾向の測定結果に基づいて、前記複数のサーバのそれぞれについて、マルウェアスキャンを実行する速度を前記シンクライアントが決定し、
前記取得工程では、悪意のあるソフトウェアがないかがスキャンされる前記バーチャルマシン上の少なくとも１つのファイルを前記シンクライアントが取得し、
前記選択工程では、前記シンクライアントが、前記サーバの各々の決定された前記スキャンを実行する速度に基づいて、少なくとも１つのファイルのスキャンを実行する前記複数のサーバのうちの１つを選択し、
前記送信工程では、悪意のあるソフトウェアを検出するための前記選択されたサーバによってスキャンされる前記少なくとも１つのファイルを前記シンクライアントが前記選択されたサーバに送信する、
方法。
【請求項２】
前記選択されたサーバが、悪意のあるソフトウェアがないかスキャンされる複数のファイルのキューに前記少なくとも１つのファイルを加え、且つ悪意のあるソフトウェアがないかスキャンされるべき所定基準を前記１つのファイルが満たす場合には、前記複数のファイルのうちの１つを選択することを更に備える、請求項１に記載の方法。
【請求項３】
前記所定基準は、前記スキャンされるファイルがこれまでにスキャンされておらず且つ悪意のあるソフトウェアを検出するために前記１つのファイルをスキャンすることについて、前記選択されたサーバが十分なコンピュータリソースを有しているという条件を含む、請求項２に記載の方法。
【請求項４】
前記選択工程に係る１つのサーバの選択は、前記複数のサーバそれぞれの決定された処理実行速度に基づくものであって、次に掲げる（１）〜（４）の少なくとも何れか１つを更に備える、請求項１に記載の方法。
（１）悪意のあるソフトウェアがないか前記ファイルをスキャンするための最も高い処理実行速度を有する前記１つのサーバを前記シンクライアントが選択する。
（２）前記処理実行速度が所定の閾値を超える場合には悪意のあるソフトウェアがないか前記ファイルをスキャンするための最も高い処理実行速度を有する前記１つのサーバを前記シンクライアントが選択する。
（３）高悪意のあるソフトウェアがないかスキャンされるファイルに係る前記キューのサイズが最小である前記１つのサーバを前記シンクライアントが選択する。
（４）所定の閾値よりも低い前記キューを有する前記１つのサーバを前記シンクライアントが選択する。
【請求項５】
前記複数のサーバそれぞれが、分散ネットワークを介して前記複数のサーバにおけるコンピュータリソースに係る特徴に関連する前記データを分散させる分散工程を更に備え、これにより複数のシンクライアントが前記データにアクセス可能であるように構成される、請求項１に記載の方法。
【請求項６】
前記分散工程は、前記複数のシンクライアントに対する放送チャネル及び前記データのマルチキャストによって、少なくとも１つのデータルーティングを備える、請求項５に記載の方法。
【請求項７】
分散ネットワークにおける複数のバーチャルマシン上の悪意のあるファイルを検出するためのシステムであって、
複数のサーバと、少なくとも１つのシンクライアントとを備え、
前記複数のサーバは、分散ネットワークを介して、悪意のあるソフトウェアがないかファイルをスキャンし、前記サーバそれぞれのコンピュータリソースに係る特徴に関連するデータを分散させるように構成され、
前記少なくとも１つのシンクライアントは、前記複数のバーチャルマシンのうちの１台で動作するシンクライアントであって、
分散ネットワークの前記複数のサーバそれぞれからコンピュータリソースに係る特徴に関連する前記データを受信し、
受信した前記データに基づき、
前記スキャンを実行する前に各サーバのタスク待ちキューにおけるファイルによる経過時間、
各サーバのタスク待ちキューが満タンになる速度、
前記バーチャルマシンからファイルを受信してから前記サーバの各々による当該ファイルのスキャンまで経過した時間、および、
前記サーバの各々の処理パワーが使用される速度、
の少なくとも１つの中心傾向の測定結果に基づいて、前記複数のサーバのそれぞれについて、マルウェアスキャンを実行する速度を決定し、
バーチャルマシン上に存在し且つ悪意のあるソフトウェアがないかスキャンされるべきである少なくとも１つのファイルを取得し、
前記少なくとも１つのファイルのスキャンを実行する前記複数のサーバの１つを、前記サーバの各々の決定された前記スキャンを実行する速度に基づいて、選択し、
前記少なくとも１つのファイルを前記選択されたサーバに送信するように構成される、
システム。
【請求項８】
前記選択されたサーバは、
悪意のあるソフトウェアがないかスキャンされる複数のファイルのキューに前記少なくとも１つのファイルを追加し、
悪意のあるソフトウェアがないかスキャンされる所定基準を前記１つのファイルが満たしている場合は、スキャンされる複数のファイルのうちの１つを選択するように構成される、
請求項７に記載のシステム。
【請求項９】
前記所定基準は、前記スキャンされるファイルがこれまでにスキャンされておらず且つ前記選択されたサーバが悪意のあるソフトウェアを検出する前記１つのファイルをスキャンするのに十分なコンピュータリソースを有している、という条件を含む、請求項８に記載のシステム。
【請求項１０】
前記少なくとも１つのシンクライアントは、前記複数のサーバそれぞれの決定された処理実行速度に基づき前記１つのサーバを選択するように構成され、次に掲げる（１）〜（４）の少なくとも何れか１つを更に含む、請求項７に記載のシステム。
（１）悪意のあるソフトウェアがないか前記ファイルをスキャンするための最も高い処理実行速度を有する前記１つのサーバを選択する。
（２）前記処理実行速度が所定の閾値を超える場合には悪意のあるソフトウェアがないか前記ファイルをスキャンするための最も高い処理実行速度を有する前記１つのサーバを選択する。
（３）高悪意のあるソフトウェアがないかスキャンされるファイルに係る前記キューのサイズが最小である前記１つのサーバを選択する。
（４）所定の閾値よりも低い前記キューを有する前記１つのサーバを選択する。
【請求項１１】
前記複数のサーバそれぞれは、前記複数のシンクライアントに対する放送チャネル及び前記データのマルチキャストによる少なくとも１つのデータルーティングによって前記データを分散させるように構成される、請求項７に記載のシステム。
【請求項１２】
バーチャルマシン上で動作し且つ悪意のあるソフトウェアから前記バーチャルマシンを保護するシンクライアントホストであって、
前記シンクライアントホストはプロセッサを備え、
前記プロセッサは、
悪意のあるファイルを検出するためのスキャンを実行するように構成された複数のサーバそれぞれが設定される分散ネットワーク上の複数のサーバにおけるコンピュータリソースに係る特徴に関連するデータを受信し、
受信した前記データに基づき、
前記スキャンを実行する前に各サーバのタスク待ちキューにおけるファイルによる経過時間、
各サーバのタスク待ちキューが満タンになる速度、
前記バーチャルマシンからファイルを受信してから前記サーバの各々による当該ファイルのスキャンまで経過した時間、および、
前記サーバの各々の処理パワーが使用される速度、の少なくとも１つの中心傾向の測定結果に基づいて、前記複数のサーバのそれぞれについて、マルウェアスキャンを実行する速度を決定し、
悪意のあるソフトウェアがないかスキャンされる少なくとも１つのファイルを取得し、
前記少なくとも１つのファイルのスキャンを実行する前記複数のサーバのうちの１台を、前記サーバの各々の決定された前記スキャンを実行する速度に基づいて選択し、
悪意のあるソフトウェアを検出する前記選択されたサーバによってスキャンされる前記少なくとも１つのファイルを前記選択されたサーバに送信するように構成される、
シンクライアントホスト。
【請求項１３】
前記選択されたサーバは、
悪意のあるソフトウェアがないかスキャンされる複数のファイルのキューに前記少なくとも１つのファイルを追加し、
前記１つのファイルが悪意のあるソフトウェアがないかスキャンされる所定基準を満たしている場合は、前記スキャンされる複数のファイルのうちの１つを選択する、
請求項１２に記載のシンクライアントホスト。
【請求項１４】
前記所定基準は、前記スキャンされるファイルがこれまでにスキャンされておらず且つ前記選択されたサーバが悪意のあるソフトウェアを検出する前記１つのファイルをスキャンするのに十分なコンピュータリソースを有している、という条件を含む、請求項１３に記載のシンクライアントホスト。
【請求項１５】
前記プロセッサは、次に掲げる（１）〜（４）の少なくとも何れか１つにより前記複数のサーバそれぞれの決定された処理実行速度に基づいて前記１つのサーバを選択するように構成される、請求項１２に記載のシンクライアントホスト。
（１）前記シンクライアントホストが、悪意のあるソフトウェアがないか前記ファイルをスキャンするための最も高い処理実行速度を有する前記１つのサーバを選択する。
（２）前記シンクライアントホストが、前記処理実行速度が所定の閾値を超える場合には悪意のあるソフトウェアがないか前記ファイルをスキャンするための最も高い処理実行速度を有する前記１つのサーバを選択する。
（３）前記シンクライアントホストが、高悪意のあるソフトウェアがないかスキャンされるファイルに係る前記キューのサイズが最小である前記１つのサーバを選択する。
（４）前記シンクライアントホストが、所定の閾値よりも低い前記キューを有する前記１つのサーバを選択する。
【請求項１６】
前記複数のサーバは、分散ネットワークを介して前記複数のサーバにおけるコンピュータリソースに係る特徴に関連する前記データをそれぞれ分散させ、これにより複数のシンクライアントが前記データにアクセス可能であるように構成される、請求項１２に記載のシンクライアントホスト。
【請求項１７】
前記複数のサーバそれぞれは、前記複数のシンクライアントに対する放送チャネル及び前記データのマルチキャストによる少なくとも１つのデータルーティングによって前記データを分散させる、請求項１６に記載のシンクライアントホスト。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アンチウィルステクノロジーに関するもので、より具体的には、分散ネットワークにおけるバーチャルマシン上の悪意のあるファイルを検出するシステム及び方法に関するものである。
【背景技術】
【０００２】
コンピュータテクノロジーの最近１０年での急速な開発（クラウドテクノロジー、及び種々の種類のコンピュータ器（パーソナル・コンピュータ、ノートブック、タブレット、スマートフォン等）を含む）によって、これらを可能な限り人間の生活に活用することや、銀行振り込みや電子文書配布インターネットサーフィンやインターネット通信による莫大な数のタスクを処理することに利用すべきだということが促されている。コンピュータ機器の数の成長と並行して、これらの機器で動いているソフトウェアの容量も、違法なソフトウェアや悪意のあるプログラムを含め速いペースで成長してきている。
【０００３】
現在、膨大な数の悪意のあるプログラムが存在している。それらのうちのいくつかは、ユーザの機器から個人情報や機密データ（ログイン、パスワード、バンキング情報、電子文書等）を盗むものである。他は、他のコンピュータ又はコンピュータ・ネットワークに対して力づくの方法又はＤＤＯＳ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄｅｎｉａｌ  Ｓｅｒｖｉｃｅ）等の攻撃の方法によってユーザの機器からパスワードを取り出す、いわゆるボットネットを形成する。更に悪意のあるプログラムは、攻撃的な広告、有料購読物、有料電話番号についてＳＭＳの送信等といった方法で、有料コンテンツをユーザに登録させようとする。
【０００４】
アンチウィルスプログラムは、悪意のあるプログラムを処理するものである。悪意のあるプログラムに対して効果的に処理するには、まずは悪意のあるプログラムのコードを含んでいるファイルを適時検出することが必要であり、この際アンチウィルスプログラムが、署名、経験的且つ率先的な分析、ホワイトリストやブラックリスト等の様々な技術を導入している。これらの技術それぞれは、悪意のあるファイルを検出する独自の効果を有するものであり、一定の種類の悪意のあるファイルを検出する潜在的能力がある。そして、その技術が動作するコンピュータ・システムのリソースが必要となる。
【０００５】
現在、コンピュータ・システムにより処理されるデータ容量（ファイルを含む）は、とても大きいので、アンチウィルスプログラムによる悪意のあるファイルがないかのスキャンには、膨大な時間がかかり且つかなりのコンピュータリソースを必要とし得る。それはパーソナル・コンピュータのユーザにとって特に危険である。したがって、悪意のあるファイルの検出の有効性を増大させるため、悪意のあるファイルがないか検索されているコンピュータ・システムのコンピュータリソースを増大させる方法を特に使用する。この目的のために、悪意のあるファイルを探す分散されたシステムを使用する。これは、いくつかのサーバから成り、それぞれがスキャンを必要とするファイルのうちの一部をスキャンする。
【０００６】
既知の方法でも、ファイルに悪意がないかのスキャンを分散させて処理することができるが、悪意がないかについてのファイルのスキャンを実行しているコンピュータ・システムの負荷が大きいとき、又は、悪意がないかについてのファイルのスキャンに加わっている、とあるコンピュータ・システムの動作に問題があるときは役に立たないものである。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明に係る方法とシステムは、「保護中のバーチャルマシン」の分散されたシステム上の悪意のあるファイルを検出するという課題を解決することを可能にする。別の実施形態によれば、かかる方法とシステムは、「保護済みのバーチャルマシン」の間で、悪意がないかスキャンをするためにファイル分散がデザインされる。
【課題を解決するための手段】
【０００８】
本発明によれば、分散ネットワークにおけるバーチャルマシン上の悪意のあるファイルを検出するための方法であって、受信工程と、取得工程と、特定及び選択工程と、送信工程と、を備え、前記受信工程では、分散ネットワークにおける複数のサーバのコンピュータリソースに係る特徴に関連するデータを、バーチャルマシン上で動作しているシンクライアントが受信し、前記複数のサーバそれぞれが悪意のあるファイルを検出するように構成され、前記取得工程では、悪意のあるソフトウェアがないかがスキャンされる前記バーチャルマシン上の少なくとも１つのファイルを前記シンクライアントが取得し、前記特定及び選択工程では、前記シンクライアントが、前記複数のサーバの前記コンピュータリソースに係る特徴に関連する前記データを用いて、前記バーチャルマシン上の少なくとも１つのファイルのスキャンを実行する前記複数のサーバのうちの１つを特定及び選択し、前記送信工程では、悪意のあるソフトウェアを検出するための前記選択されたサーバによってスキャンされる前記バーチャルマシン上の前記少なくとも１つのファイルを前記シンクライアントが前記選択されたサーバに送信する、方法が提供される。
【０００９】
本発明の別の側面によれば、前記選択されたサーバが、悪意のあるソフトウェアがないかスキャンされる複数のファイルのキューに前記少なくとも１つのファイルを加え、且つ悪意のあるソフトウェアがスキャンされるべき所定基準を前記１つのファイルが満たす場合には、前記複数のファイルのうちの１つを選択することを更に備える、方法が提供される。
【００１０】
本発明の別の側面によれば、スキャンされるべき前記所定基準は、前記スキャンされるファイルがこれまでにスキャンされておらず且つ悪意のあるソフトウェアを検出するために前記１つのファイルをスキャンすることについて、前記選択されたサーバが十分なコンピュータリソースを有しているという条件を含む、方法が提供される。
【００１１】
本発明の別の側面によれば、前記特定及び選択工程に係る特定は、次に掲げる（１）〜（４）の少なくとも何れか１つの方法により、前記複数のサーバそれぞれが処理実行速度を決定することを更に備える、方法が提供される。
（１）前記複数のサーバそれぞれのキューにある複数のファイルについて、悪意のあるソフトウェアがないかスキャンされる前に経過する時間の中心化傾向を測定する。
（２）前記バーチャルマシンからファイルを取得してから、前記複数のサーバそれぞれから悪意のあるソフトウェアがないかファイルをスキャンするまでのトータル経過時間における中心化傾向を測定する。
（３）前記複数のサーバそれぞれの前記キューが満タンになる速度の中心化傾向を測定する。
（４）前記バーチャルマシンを保護する前記複数のサーバそれぞれの使用速度の中心化傾向を測定する。
【００１２】
本発明の別の側面によれば、前記特定及び選択工程に係る１つのサーバの選択は、前記複数のサーバそれぞれの決定された処理実行速度に基づくものであって、次に掲げる（１）〜（４）の少なくとも何れか１つを更に備える、方法が提供される。
（１）悪意のあるソフトウェアがないか前記ファイルをスキャンするための最も高い処理実行速度を有する前記１つのサーバを前記シンクライアントが選択する。
（２）前記処理速度が所定の閾値を超える場合には悪意のあるソフトウェアがないか前記ファイルをスキャンするための最も高い処理実行速度を有する前記１つのサーバを前記シンクライアントが選択する。
（３）高悪意のあるソフトウェアがないかスキャンされるファイルに係る前記キューのサイズが最小である前記１つのサーバを前記シンクライアントが選択する。
（４）所定の閾値よりも低い前記キューを有する前記１つのサーバを前記シンクライアントが選択する。
【００１３】
本発明の別の側面によれば、前記複数のサーバそれぞれが、分散ネットワークを介して前記複数のサーバにおけるコンピュータリソースに係る特徴に関連する前記データを分散させる分散工程を更に備え、これにより複数のシンクライアントが前記データにアクセス可能であるように構成される、方法が提供される。
【００１４】
本発明の別の側面によれば、前記分散工程は、前記複数のシンクライアントに対する放送チャネル及び前記データのマルチキャストによって、少なくとも１つのデータルーティングを備える、方法が提供される。
【００１５】
本発明の別の側面によれば、分散ネットワークにおける複数のバーチャルマシン上の悪意のあるファイルを検出するためのシステムであって、複数のサーバと、少なくとも１つのシンクライアントとを備え、前記複数のサーバは、分散ネットワークを介して、悪意のあるソフトウェアがないかファイルをスキャンし、前記サーバそれぞれのコンピュータリソースに係る特徴に関連するデータを分散させるように構成され、前記少なくとも１つのシンクライアントは、前記複数のバーチャルマシンのうちの１台で動作するシンクライアントであって、分散ネットワークの前記複数のサーバそれぞれからコンピュータリソースに係る特徴に関連する前記データを受信し、バーチャルマシン上に存在し且つ悪意のあるソフトウェアがないかスキャンされるべきである少なくとも１つのファイルを取得し、前記バーチャルマシン上の前記少なくとも１つのファイルのスキャンを実行する前記複数のサーバの１つを、前記コンピュータリソースに係る特徴に関連する前記データを用いて特定及び選択し、前記バーチャルマシン上の前記少なくとも１つのファイルを前記選択されたサーバに送信するように構成され、前記選択されたサーバは、悪意のあるソフトウェアを検出するために、前記少なくとも１つのシンクライアントから受信した前記少なくとも１つのファイルをスキャンする、システムが提供される。
【００１６】
本発明の別の側面によれば、バーチャルマシン上で動作し且つ悪意のあるソフトウェアから前記バーチャルマシンを保護するシンクライアントホストであって、前記シンクライアントはプロセッサを備え、前記プロセッサは、悪意のあるファイルを検出するように構成された前記複数のサーバそれぞれが設定される分散ネットワーク上の複数のサーバにおけるコンピュータリソースに係る特徴に関連するデータを受信し、悪意のあるソフトウェアがないかスキャンされる前記バーチャルマシン上の少なくとも１つのファイルを取得し、前記バーチャルマシン上の前記少なくとも１つのファイルのスキャンを実行する前記複数のサーバのうちの１台を、前記コンピュータリソースに係る特徴に関連する前記データを用いて特定及び選択し、悪意のあるソフトウェアを検出する前記選択されたサーバによってスキャンされる前記バーチャルマシン上の前記少なくとも１つのファイルを前記選択されたサーバに送信するように構成される、シンクライアントホストが提供される。
【００１７】
上述した実施形態の簡単な説明は、本発明の基本的な理解を提供するのに役立つ。この概要は、全ての考えられる側面の詳細な展望ではなく、全ての側面の鍵となるものや決定的な要素を特定することを意図していないし、本発明の全ての側面を描写することも意図していない。その唯一の目的は、前置きとして、１つ又は複数の側面を表し、その後、本発明のより詳細な説明に続くものである。これを達成するため、本発明の１つ又は複数の側面が説明されて、特許請求の範囲においても主張される。
【図面の簡単な説明】
【００１８】
【図１】実施形態に係り、「保護中のバーチャルマシン」上の悪意のあるファイルを検出するためのシステムのブロック図を示す。
【００１９】
【図２】実施形態に係り、「保護中のバーチャルマシン」上の悪意のあるファイルを検出するための方法の例示的なフローチャートを示す。
【００２０】
【図３】本発明に係るシステムと方法が実装できる汎用コンピュータシステムの例を示す。
【発明を実施するための形態】
【００２１】
添付の図面は、本明細書の一部として組み入れられ、この指定の一部を構成し、発明の詳細な説明とともに本発明の１つ又は複数の例面を説明し、それらの原理と実施を説明するのに役立ち得るものである。
【００２２】
例示する実施形態は以下、システム、方法、及びコンピュータ上で実行されるアプリケーションを制御するコンピュータプログラム製品として説明される。当業者であれば、以下の記載はあくまでも例示であり、あらゆる制限をも意図するものではないことは当然に意味するところである。本発明が利益となる分野の当業者であれば、別例をも容易に示唆されることであろう。添付の図面ではその詳細を示すための参照符号が付されている。図面と以下の記載において、同一の又はそれに相当するものについては、同一の参照符号を用いるものとする。
【００２３】
本発明は、様々な側面についての説明を容易にするために用いられる多くの定義と概念を提供する。実施形態の目的のために以下の定義が提供されるものと留意されたい。
【００２４】
「保護中のバーチャルマシン」は、シンクライアントコンポーネントが動作するコンピュータ環境において、ハイパーバイザーの制御下で、インストールされたゲストオペレーティングシステムによって動作するバーチャルマシンである。
【００２５】
「保護済みのバーチャルマシン」は、保護サーバコンポーネントが動作するコンピュータ環境において、ハイパーバイザーの制御下で、インストールされたオペレーティングシステムによって動作するバーチャルマシンである。
【００２６】
「シンクライアント」は、悪意のあるプログラムやコンピュータの脅威から「保護中のバーチャルマシン」を保護し、「保護済みのバーチャルマシン」のネットワークを介して悪意がないかスキャンするためにファイルを送信することを意図されたソフトウェアである。一般に、用語「シンクライアント」は、データ処理及びコンピュータの役割を実行するサーバに依存しているクライアントマシンであって、当業者にとって理解され得るものとして使用するものとする。実施形態によれば、シンクライアントソフトウェア（例えば、クライアントターミナルのバーチャルマシンの範囲で動作するもの）を有する専門のシンクライアントターミナル又は通常のＰＣは、キーボード及びマウス入力をサーバに送信し、スクリーンへの出力を受信するものである。一側面によれば、シンクライアントは、あらゆるデータを処理するものではなく、ユーザインターフェース（ＵＩ）の処理をするだけである。データセンターのセキュリティとソフトウェアとを中心的に管理するので、メンテナンスとセキュリティとが向上するという利点がある。以下、本発明では「シンクライアント」を参照していくが、例示的なシンクライアントとは、キーボード、マウス、モニタ、サウンド周辺機器用のジャックに係る入出力と、例えばプリンタ、フラッシュドライブ、ウェブカメラ、カードリーダ、スマートフォン等のＵＳＢデバイスのためのＵＳＢポートとを提供するコンピュータターミナル等のハードウェアを一般的に含み得るということに留意されたい。更に、例示的なシンクライアントは、レシートプリンタ、秤、時計等の古い機器をサポートするために、レガシーシリアル及び／又はパラレルポートも含み得る。シンクライアントソフトウェアは、一般に、ＧＵＩ（グラフィカル・ユーザ・インターフェース）、クラウドアクセスエージェント（例えば、ＲＤＰ、ＩＣＡ、ＰＣｏＩＰ）、ローカルなウェブブラウザ、場合によってはターミナルエミュレーション（場合によっては）、及びローカルユーティリティの基本的なセットから構成される。
【００２７】
「保護サーバ」は、「保護中のバーチャルマシン」から受信したファイルに悪意がないかのスキャンを実行することを意図されたソフトウェアである。
【００２８】
図１は、実施形態に係る「保護中のバーチャルマシン」において、悪意のあるファイルを検出するためのシステムのブロック図を示している。
【００２９】
「保護中のバーチャルマシン」における悪意のあるファイルを検出するためのシステムの構造図は、「シンクライアント」１１０、収集モジュール１１１、選択モジュール１１２、タスク形成モジュール１１３、「保護サーバ」１２０、送信モジュール１２１、タスクコントロールモジュール１２２、及びスキャンモジュール１２３を含む。収集モジュール１１１、選択モジュール１１２、及びタスク形成モジュール１１３の全てが、１つ又は複数のモジュールであってそれぞれが後述のアルゴリズムを実行可能なシンクライアント１１０用のモジュールとして提供されることに留意されたい。同様に、送信モジュール１２１、タスクコントロールモジュール１２２及びスキャンモジュール１２３の全ては、１つ又は複数のモジュールであってそれぞれが後述のアルゴリズムを実行可能な保護サーバ１２０用のモジュールとして提供される。更に、以下使用する用語「モジュール」は、ハードウェアを用いて実装される実世界の機器、コンポーネント、又はコンポーネント類を指すものとする。ここでいうハードウェアとは、例えば、特定用途向け集積回路（ＡＳＩＣ：Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）又はＦＰＧＡ（Ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ハードウェアとソフトウェアの組み合わせ等によるものや、マイクロプロセッサシステム及びモジュールの機能を実行する指示のセットであって実行中にマイクロプロセッサシステムを特定の目的の機器に変換するものによるものである。
【００３０】
実施形態によれば、「シンクライアント」１１０は、悪意のあるプログラムとコンピュータ脅威から「保護中のバーチャルマシン」を保護するように設計されて、収集モジュール１１１、選択モジュール１１２、及びタスク形成モジュール１１３を含んでいる。
【００３１】
実施形態によれば、「シンクライアント」１１０の一部である収集モジュール１１１は、以下の機能を実行するために設定される。
・コンピュータ・ネットワークのドライバによって、コンピュータ・ネットワークを介して送信モジュール１２１により分散される「保護サーバ」１２０のコンピュータリソースに係る特徴を含む情報をインターセプト（「通信途中での取得」の意）すること。
・インターセプトされた情報を選択モジュール１１２に送信する。
【００３２】
実施形態によれば、「保護サーバ」１２０のコンピュータリソースに係る特徴は、例えば、以下のものであり得る。
・ファイルが「保護サーバ」１２０のタスク待ちキューに費やす時間。
・タスク形成モジュール１１３からファイルを受信してからスキャンモジュール１２３によって判断が出されるまでの経過時間。
・「保護サーバ」１２０のタスク待ちキューのサイズ。
・「保護サーバ」１２０が動作している「保護済みのバーチャルマシン」の処理パワー。
【００３３】
「保護中のバーチャルマシン」上で動作している「シンクライアント」１１０の一部である収集モジュール１１１は、「保護サーバ」１２０のコンピュータリソースに係る特徴を含む情報であって「保護サーバ」の一部である送信モジュール１２１により別の「保護中のバーチャルマシン」上で動作する「シンクライアント」１１０の一部である収集モジュール１１１に送信される情報をインターセプトできる。
【００３４】
実施形態によれば、「シンクライアント」１１０の一部である選択モジュール１１２は、以下の機能を実行するように構成される。
・「保護サーバ」１２０それぞれのアンチウィルススキャンの処理実行速度であって、そのコンピュータリソースに係る特徴が、収集モジュール１１１から受信した情報に含まれている処理実行速度を計算する。
・悪意がないかのスキャンの、計算された処理実行速度の分析に基づいて、「保護サーバ」１２０を選択する。
・選択された「保護サーバ」１２０それぞれにおける情報であって、「保護サーバ」１２０の少なくとも１つのユニークな識別子を有する情報をタスク形成モジュール１１３に送信する。
【００３５】
実施形態によれば、「保護サーバ」１２０の悪意がないかのスキャンの処理実行速度は、以下の１つ又は複数の事項に基づく。
・「保護サーバ」のタスク待ちキューにおけるファイルによる経過時間の中心傾向の測定結果。
・タスク形成モジュール１１３からファイルを受信してからスキャンモジュール１２３が判断を出すまでの経過時間の中心傾向の測定結果。
・「保護サーバ」１２０のタスク待ちキューが満タンになる速度の中心傾向の測定結果。
・「保護サーバ」１２０が動作する「保護済みのバーチャルマシン」の処理パワーが使用される速度の中心傾向の測定結果。
【００３６】
「保護サーバ」１２０の悪意がないかのスキャンを実行する速度は、選択された期間における「保護済みのバーチャルマシン」それぞれによって「保護サーバ」１２０の悪意がないかのスキャンの処理実行速度を予測する確率的手法を用いた上記の方法の全てによって計算され得る。
【００３７】
タスク形成モジュール１１３へ送信するために、以下の１つ又は複数の基準に基づいて「保護サーバ」１２０が選択され得る。
・悪意がないかのスキャンの処理実行速度のうち最も高く計算されたもの。
・悪意がないかのスキャンの処理実行速度のうち所定の閾値よりも高く計算されたもの。
・「保護サーバ」のタスク待ちキューの最小サイズ。
・「保護サーバ」のタスク待ちキューのサイズのうち所定の閾値よりも低く計算されたもの。
【００３８】
実施形態によれば、「シンクライアント」１１０の一部であるタスク形成モジュール１１３は、以下の機能を実行するように構成される。
・バーチャルマシンであって、その「シンクライアント」１１０が悪意がないかのスキャンを実行するために動作するバーチャルマシンのファイルを受信する。
・「保護サーバ」１２０のタスクコントロールモジュール１２２に、受信ファイルであってその情報が選択モジュール１１２から受信された受信ファイルを送信する。
【００３９】
「保護サーバ」１２０は、「保護中のバーチャルマシン」の「シンクライアント」１１０から受信したファイルに対して悪意がないかのスキャンを実行するように設計されており、これは、送信モジュール１２１、タスクコントロールモジュール１２２、及びスキャンモジュール１２３を含んでいる。
【００４０】
実施形態によれば、「保護サーバ」１２０の一部である送信モジュール１２１は、以下の機能を実行するように構成される。
・「保護サーバ」１２０のコンピュータリソースに係る特徴を決定する。
・コンピュータ・ネットワークを介して、決定された特徴を含んでいる情報を分散させる。
【００４１】
実施形態によれば、コンピュータ・ネットワークを介した、送信モジュール１２１により決定された、「保護サーバ」１２０のコンピュータリソースに係る特徴を含んでいる情報の送信モジュール１２１による分散は、以下の１つ又は複数の手法に基づいて行われる。
・放送チャネルを介したルーティング。
・マルチアドレス放送（マルチキャスト）。
・少なくとも１つの「シンクライアント」１１０に対して、収集モジュール１１１に直接送信する。
【００４２】
実施形態によれば、「保護サーバ」１２０の一部であるタスクコントロールモジュール１２２は、以下の機能を実行するように構成される。
・少なくとも１つの「シンクライアント」１１０のタスク形成モジュール１１３から受信したファイルを含んでいるリストであるタスク待ちキューの負荷を調整する。
なお、タスク待ちキューとは、（１）「シンクライアント」１１０のタスク形成モジュール１１３から受信したファイルを自身に追加し、（２）悪意がないかのスキャンを実行するためのスキャンモジュール１２３に送信するため自身からファイルを選択するように設計されたものである。
・スキャンモジュール１２３によって悪意がないかのスキャンを実行するために、タスク待ちキューから所定基準（後述の条件）を満たすファイルを選択する。
条件は、（１）スキャンモジュール１２３が選択されても、以前にスキャンモジュール１２３に送信されたファイルについては悪意がないかのスキャンを実行しない、及び／又は、（２）スキャンモジュール１２３は、選択されたファイルを処理するのに十分なコンピュータリソースを有している、である。
・悪意がないかのスキャンを実行するために、タスク待ちキューから選択されたファイルをスキャンモジュール１２３に送信する。
【００４３】
実施形態によれば、「保護サーバ」１２０の一部であるスキャンモジュール１２３は、以下の機能を実行するように構成される。
・タスクコントロールモジュール１２２から受信したファイルに悪意がないかのスキャンを実行する。
・悪意がないかのスキャンを実行した結果、悪意のあるファイルが検出された場合には、「悪意のあるファイルが検出された」という判断を出す。
【００４４】
「保護中のバーチャルマシン」上の悪意のあるファイルの検出のためのシステムの動作については、２つの「保護済みのバーチャルマシン」のリソースにより、１０個の「保護中のバーチャルマシン」に保存された１０００個のファイル（すなわち「保護中のバーチャルマシン」それぞれに対して１００個のファイル）に対し悪意がないかのスキャンを行うという例を考慮すべきである。
【００４５】
１０個の「保護中のバーチャルマシン」それぞれにおいて、「シンクライアント」１１０が、１回ごとに、悪意がないかスキャンされる必要がある１００個のファイルのグループから１つのファイルを取り出す。「保護中のバーチャルマシン」それぞれのシンクライアント１１０の一部である収集モジュール１１１は、専用ドライバの補助により、「保護済みのバーチャルマシン」の「保護サーバ」１２０のコンピュータリソースに係る特徴であって、以前に２つの利用可能な「保護済みのバーチャルマシン」のうちのそれぞれの「保護サーバ」の送信モジュール１２１によって送信され、その後選択モジュール１１２に送信される特徴をインターセプトする。「保護サーバ」＃１＿１２０と「保護サーバ」＃２＿１２０のコンピュータリソースに係る特徴は様々である（つまり「保護済みのバーチャルマシン」自身及び「保護サーバ」の設定に依存する）。例えば、「保護サーバ」＃１＿１２０の悪意がないかのスキャンのタスク待ちキューにおいてファイルに費やす時間、「保護サーバ」＃１＿１２０が動作する「保護済みのバーチャルマシン」＃１の処理パワー（すなわち、利用可能なＲＡＭ、ＣＰＵの速度等）、「保護サーバ」＃２＿１２０の悪意がないかのスキャンのタスク待ちキューのサイズ等である。
【００４６】
「保護サーバ」＃１＿１２０と「保護サーバ」＃２＿１２０のコンピュータリソースのインターセプトされた特徴に基づいて、他の選択モジュール１１２に依存せず「保護中のバーチャルマシン」それぞれの「シンクライアント」の一部である選択モジュール１１２が、タスク形成モジュール１１３からファイルを受信してからスキャンモジュール１２３による判断が出されるまでの経過時間に係る相加平均を計算する。この経過時間は、「保護サーバ」＃１及び＃２＿１２０の悪意がないかのスキャンの処理実行速度といえる。２つの「保護サーバ」のうち、悪意がないかのスキャンの処理実行速度が最も高い「保護サーバ」が選択され（＃２）、その結果はタスク形成モジュール１１３に送信される。なぜなら、悪意がないかのスキャン（＃１）の実行に係る最小計算速度は、「保護サーバ」＃１＿１２０が、他のスキャンタスクを現在負われているか、又は、「保護済みのバーチャルマシン」が悪意がないかファイルのスキャンを実行するために必要なコンピュータリソースを有していないことを意味するからである。
【００４７】
「シンクライアント」１１０の一部であるタスク形成モジュール１１３は、「シンクライアント」１１０から悪意がないかスキャンする次のファイルをリクエストする。得られたファイルは、選択された「保護サーバ」（＃２）１２０のタスクコントロールモジュール１２２に送信される。
【００４８】
「保護サーバ」＃２＿１２０の一部であるタスクコントロールモジュール１２２は、「保護中のバーチャルマシン」それぞれの「シンクライアント」のタスク形成モジュール１１３から受信したファイルを悪意がないかのスキャンのタスク待ちキューに追加する。待機キューは、すでに、他の「保護中のバーチャルマシン」の「シンクライアント」のタスク形成モジュール１１３から受信したファイルをも含み得る。「保護サーバ」＃２＿１２０の一部であるスキャンモジュール１２３が、悪意がないかファイルをスキャンするタスクによって占められている限り、悪意がないかのスキャンのタスク待ちキューが単純に増加していく。すなわち、「保護中のバーチャルマシン」の「シンクライアント」のタスク形成モジュール１１３から受信したファイルは、悪意がないかのスキャンのタスク待ちキューに追加されるが、そこから除去されることはなく、その後の処理たるスキャンモジュール１２３には送信されない。タスクコントロールモジュール１２２は、悪意がないかのファイルのスキャンを実行しているスキャンモジュール１２３の可能性を定期的に決定する。スキャンモジュール１２３が、以前のタスクの実行を完了した後に、タスクコントロールモジュール１２２は悪意がないかのスキャンのタスク待ちキューからファイルの次のバッチであって１つ又は複数のファイルを含むバッチを取り、これをスキャンモジュール１２３に送信する。
【００４９】
スキャンモジュール１２３は、タスクコントロールモジュール１２２から受信したファイルに悪意がないかのスキャンを実行し、受信したファイルに悪意がないかについて判断を出す。スキャンを完了した後に、スキャンモジュール１２３は、受信したファイルの処理が完了した情報及びそのスキャンの結果をタスクコントロールモジュール１２２に送信する。
【００５０】
「保護サーバ」＃２＿１２０の動作中、「保護中のバーチャルマシン」の「シンクライアント」１１０はアイドル状態ではない。「保護サーバ」＃２＿１２０の動作中、「保護サーバ」＃１＿１２０は解放されている。かかる場合、悪意がないかのスキャンが実行される次の時間が計算され、それは「保護サーバ」＃１＿１２０が「保護サーバ」＃２＿１２０に対してよりも大きくなる。そして、これからスキャンする９９０個のファイル（すなわち「保護中のバーチャルマシン」それぞれにおいて９９個のファイル）の次のバッチが、「保護サーバ」＃２＿１２０のタスクコントロールモジュール１２２に送信される。
【００５１】
図２は、実施形態により、「保護中のバーチャルマシン」上の悪意のあるファイルを検出するための方法に係る例示的なフローチャートを示している。
【００５２】
実施形態によれば、「保護中のバーチャルマシン」上の悪意のあるファイルを検出するための方法のフローチャートは、悪意がないかのスキャン（マルウェアスキャン）の実行のためにファイルが要求されるステップ２０１と、「保護サーバ」１２０のコンピュータリソースに係る特徴がインターセプトされるステップ２０２と、「保護サーバ」１２０による悪意がないかのスキャンの処理実行速度が計算されるステップ２０３と、「保護サーバ」１２０が選択されるステップ２０４と、コンピュータリソースに係る特徴が決定されるステップ２１１と、悪意がないかのスキャンのタスク待ちキューが組織されるステップ２２１と、悪意がないかのスキャンのタスク待ちキューからファイルが選択されるステップ２２３と、悪意がないかのスキャンが実行されるステップ２２４と、悪意のあるファイルの検出について判断が出されるステップ２２５と、を含む。
【００５３】
特にステップ２０１に示されるように、悪意がないかのスキャンを実行するために前記「シンクライアント」１１０が動作するバーチャルマシンからファイルが受信される。
【００５４】
ステップ２１１において、「保護サーバ」１２０のコンピュータリソースに係る特徴が決定されて、その特徴を含んでいる情報が、コンピュータ・ネットワークを介して分散される。
【００５５】
「保護サーバ」１２０のコンピュータリソースに係る特徴が決定されて、その特徴を含んでいる情報のコンピュータ・ネットワークを介した分散は、以下の１つ又は複数の手法によって実行される。
・チャネル放送によるルーティング。
・マルチアドレス放送（マルチキャスト）。
・少なくとも１つの「シンクライアント」１１０に対して、収集モジュール１１１に直接送信すること。
【００５６】
「保護サーバ」１２０のコンピュータリソースに係る特徴は、以下の１つ又は複数の事項である。
・ファイルが「保護サーバ」１２０のタスク待ちキューに費やす時間。
・ステップ２０１においてタスク形成モジュール１１３からファイルを受信してからステップ２２５においてスキャンモジュール１２３によって判断が出されるまでの経過時間。
・「保護サーバ」１２０のタスク待ちキューのサイズ。
・「保護サーバ」１２０が動作している「保護済みのバーチャルマシン」の処理パワー。
【００５７】
ステップ２０２において、コンピュータ・ネットワークのドライバは、ステップ２１１において決定された「保護サーバ」１２０のコンピュータリソースに係る特徴を含んでいる情報をインターセプトする。
【００５８】
「保護中のバーチャルマシン」が動作している「シンクライアント」１１０の一部である収集モジュール１１１は、「保護サーバ」１２０のコンピュータリソースに係る特徴を含んでいる情報をインターセプトできる。この情報は、ステップ２１１において別の「保護中のバーチャルマシン」で動作している「シンクライアント」１１０の一部である収集モジュール１１１に、「保護サーバ」の一部である送信モジュール１２１によって送信されたものである。
【００５９】
ステップ２０３において、悪意がないかのスキャンの実行速度が「保護サーバ」１２０それぞれに対して計算され、そのコンピュータリソースに係る特徴がステップ２０２においてインターセプトされた情報に含まれている。
【００６０】
「保護サーバ」１２０の悪意がないかのスキャンの処理実行速度は、以下の１つ又は複数の事項に基づく。
・「保護サーバ」のタスク待ちキューにおけるファイルによる経過時間の中心傾向の測定結果。
・ステップ２０１においてタスク形成モジュール１１３からファイルを受信してからステップ２２５においてスキャンモジュール１２３が判断を出すまでの経過時間の中心傾向の測定結果。
・「保護サーバ」１２０のタスク待ちキューが満タンになる速度の中心傾向の測定結果。
・「保護サーバ」１２０が動作する「保護済みのバーチャルマシン」の処理パワーが使用される速度の中心傾向の測定結果。
【００６１】
「保護サーバ」１２０の悪意がないかのスキャンを実行する速度は、選択された期間における「保護済みのバーチャルマシン」それぞれによって「保護サーバ」１２０の悪意がないかのスキャンの処理実行速度を予測する確率的方法を用いた上記の方法の全てによって計算され得る。
【００６２】
ステップ２０４において、「保護サーバ」１２０は、ステップ２０３において計算された悪意がないかのスキャンの処理実行速度の分析に基づいて選択される。
【００６３】
タスク形成モジュール１１３へ送信するために、この方法では、以下の１つ又は複数の基準によって「保護サーバ」１２０が選択され得る。
・ステップ２０３において計算された悪意がないかのスキャンの処理実行速度のうち最も高く計算されたもの。
・ステップ２０３において計算された悪意がないかのスキャンの処理実行速度のうち所定の閾値よりも高く計算されたもの。
・「保護サーバ」のタスク待ちキューの最小サイズ。
・「保護サーバ」のタスク待ちキューのサイズのうち所定の閾値よりも低く計算されたもの。
【００６４】
ステップ２２１において、悪意がないかのスキャンのタスク待ちキューが作成される。これは、ステップ２０１において受信したファイルを含むリストであり、以下の機能を実行するように構成される。
・タスク形成モジュール１１３から取得したファイルを自身に追加する。
・悪意がないかのスキャンを実行するためのスキャンモジュール１２３に送信するため自身からファイルを選択する。
【００６５】
ステップ２２３において、スキャンモジュール１２３によって悪意がないかのスキャンを実行するために、タスク待ちキューから所定基準（後述の条件）を満たすファイルを選択する。
・スキャンモジュール１２３が選択されても、以前にスキャンモジュール１２３に送信されたファイルについては悪意がないかのスキャンを実行しない。
・スキャンモジュール１２３は、選択されたファイルを処理するのに十分なコンピュータリソースを有している。
【００６６】
ステップ２２４において、ステップ２２３において選択されたファイルの悪意がないかのスキャンが、既存のファイルスキャン手法（例えば署名ベースの検出、経験則、ルートキット検出等）によって実行される。
【００６７】
最後にステップ２２５では、ステップ２２４において実行された悪意がないかのスキャンの結果として悪意のあるファイルが検出された場合に、「悪意のあるファイルが検出された」と判断が出される。一側面によれば、この判断は、シンクライアント１１０に再度送信されてもよいし、代わりに、悪意のあるソフトウェアがないと判断されるならばそのファイルを実行してもよいし、悪意のあるソフトウェアがないと判断されるならばそのファイルを除去／隔離してもよい。
【００６８】
図３は、実施形態に係り本発明のシステムと方法が実装できる汎用コンピュータ・システム（パーソナル・コンピュータやサーバ等）の例を示している。例えば、コンピュータ・システム２０は、保護サーバ１２０又はシンクライアント１１０の１つ又は複数に対応し得る。図示の通り、コンピュータ・システム２０は、ＣＰＵ２１（シンクライアント１１０用ではないことに留意）と、システムメモリ２２と、ＣＰＵ２１と関連付けられたメモリを含む様々なシステムコンポーネントを接続するシステムバス２３とを含み得る。システムバス２３は、バスメモリ又は、バスメモリコントローラ、周辺バス、及びローカルバスを次々含む従来より公知のあらゆるバス構造としても実現され得、これらはどのような他のバスアーキテクチャとも通信可能である。システムメモリは、リードオンリーメモリ（ＲＯＭ）２４及びランダムアクセスメモリ（ＲＡＭ）２５を含む。基本的な入出力システム（ＢＩＯＳ）２６は、ＲＯＭ２４の使用によってオペレーティングシステムをロードする際等、パーソナル・コンピュータ２０の要素間の情報の伝達を担う基本的な手順を含む。
【００６９】
パーソナル・コンピュータ２０は、データの読み書きのためのハードディスク２７、取り外し可能な磁気ディスク２９の読み書きのための磁気ディスクドライブ２８、及びＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、その他の光学メディア等の光学ディスク３１の読み書きのための光学式ドライブ３０を含む。ハードディスク２７、磁気ディスクドライブ２８、及び光学式ドライブ３０は、ハードディスクインターフェース３２、磁気ディスクインターフェース３３、及び光学式ドライブインターフェース３４それぞれを横切るシステムバス２３と接続される。ドライブ及び対応するコンピュータ情報メディアは、コンピュータ命令、データ構造体、プログラムモジュール、及びパーソナル・コンピュータ２０の他のデータのストレージのための電源依存のモジュールである。
【００７０】
本発明は、ハードディスク２７、取り外し可能な磁気ディスク２９及び取り外し可能な光学ディスク３１を用いるシステムの実装を提供するものだが、コンピュータに読み込み可能な形式でデータを保存できるフラッシュメモリカード、デジタルのディスク、ランダムアクセスのメモリ（ＲＡＭ）等の他のタイプのコンピュータ情報メディア５６を使用してもよいことに留意されたし。また、これはコントローラ５５を介してシステムバス２３に接続される。
【００７１】
コンピュータ２０は、ファイルシステム３６を有し、記録されたオペレーティング・システム３５の保持する。また追加のプログラムアプリケーション３７、他のプログラムモジュール３８、及びプログラムデータ３９を有する。ユーザは、入力デバイス（キーボード４０、マウス４２）を用いてコマンドと情報をパーソナル・コンピュータ２０に入力することができる。他の入力デバイス（不図示）：マイクロフォン、ジョイスティック、ゲームコントローラ、スキャナ等を用いることもできる。そのような入力デバイスは、通常、システムバスに次々接続しているシリアルポート４６を通じてコンピュータ・システム２０に差し込まれるが、それらは、他の方法例えばパラレル・ポート、ゲームポート、又は一般的なシリアルバス（ＵＳＢ）に接続される。ディスプレイ機器のモニタ４７又は他のタイプは、また、ビデオアダプタ４８等のインターフェースと交差するシステムバス２３に接続している。モニタ４７に加えて、パーソナル・コンピュータは、スピーカー、プリンタ等の他の周辺の出力デバイス（不図示）を接続できる。
【００７２】
パーソナル・コンピュータ２０は、１つ又は複数のリモートコンピュータ４９とのネットワーク接続を用いて、ネットワーク環境で操作することができる。リモートコンピュータ（又はコンピュータ）４９は、図４に示すように、パーソナル・コンピュータ２０の性質として説明した上述の要素全ての大多数を有するパーソナル・コンピュータ又はサーバでもある。ルータ、ネットワークステーション、ピア接続の機器、又は他のネットワークノード等の他の機器もまた、かかるコンピュータ・ネットワークで存在し得るものである。
【００７３】
ネットワーク接続は、ローカルエリアコンピュータ・ネットワーク（ＬＡＮ）５０及びワイドエリアコンピュータ・ネットワーク（ＷＡＮ）を形成することができる。そのようなネットワークは、企業のコンピュータ・ネットワーク及び社内ネットワークで利用され、それらはたいていにインターネットにアクセスすることができる。ＬＡＮ又はＷＡＮネットワークにおいて、パーソナル・コンピュータ２０は、ネットワークアダプタ又はネットワークインターフェース５１に交差するローカルエリアネットワーク５０に接続されている。ネットワークが用いられる時には、パーソナル・コンピュータ２０は、通信にインターネット等のワイドエリアコンピュータ・ネットワークを実現するために、モデム５４又は他のモジュールを使用することができる。内部又は外部の機器であるモデム５４は、シリアルポート４６によりシステムバス２３と接続される。かかるネットワーク接続は、単なる一例であり、ネットワークの正確な構成を示すものではない。すなわち、技術の通信モジュールによって、あるコンピュータから他のコンピュータへの接続を確立する他の方法（Ｂｌｕｅｔｏｏｔｈ接続等）もあることに留意されたい。
【００７４】
様々な実施形態において、ハードウェア、ソフトウェア、ファームウェア、又はこれらのあらゆる組み合わせにおいて、ここで説明されたシステム及びメソッドを実施し得る。ソフトウェアにおいて実装される場合は、メソッドは不揮発性コンピュータ可読メディアの１つ又は複数の指示又はコードとして保存され得る。コンピュータ可読メディアは、データストレージを含む。あくまでも例であり限定するものではないが、そのようなコンピュータ可読メディアは、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、フラッシュメモリ、若しくは他のタイプの電気、磁気、光学式の記憶媒体、又はその他のメディアであってもよい。すなわち、これらによって指示又はデータ構造体という形で、要求されたプログラムコードを運ぶか又は保存することができ、汎用コンピュータのプロセッサによってアクセスすることができる。
【００７５】
様々な実施形態で、本発明のシステム及びメソッドが、モジュールとして実装され得る。ここで用語「モジュール」は、実世界の機器、コンポーネント、又はハードウェアを用いて実装されたコンポーネント配置であり、例えばＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の、又は例えばモジュールの機能を実行するマイクロプロセッサシステムや指示セットによる等、ハードウェアとソフトウェアの組み合わせとして実装され得る。これらは、実行中にマイクロプロセッサシステムを特定の機器に変換する。モジュールは、ハードウェア単体により促進される一定の機能とハードウェア及びソフトウェアの組み合わせによって促進される他の機能という２つの組み合わせとして実施されてもよい。モジュールの少なくとも一部又は全部は、汎用コンピュータのプロセッサにおいて実行できる（図６において詳述したもの等）。したがって、各モジュールは様々な適当な構成で実現することができて、ここに例示した特定の実装に限られるものではない。
【００７６】
なお、実施形態の通常の機能のうちの全てをここで開示しているわけではない。本発明の何れの実施形態を開発する場合においてでも、開発者の具体的な目標を達成するためには多くの実施に係る特別な決定が必要であり、これらの具体的な目標は実施形態及び開発者ごとに異なることに留意されたし。そのような開発努力は、複雑で時間を要するものであるが、本発明の利益を享受し得る当業者にとってはエンジニアリングの日常であると理解されたい。
【００７７】
更に、本明細書で使用される用語又は表現は、あくまでも説明のためであり、限定するものではない。つまり、関連技術の熟練の知識と組み合わせて、本明細書の用語又は表現は、ここに示される教示及び指針に照らして当業者によって解釈されるべきであると留意されたし。明示的な記載がない限り、明細書又は特許請求の範囲内における任意の用語に対して、珍しい又は特別な意味を帰することは意図されていない。
【００７８】
本明細書で開示された様々な態様は、例示のために本明細書に言及した既知のモジュールの、現在及び将来の既知の均等物を包含する。更に、態様及び用途を示し、説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの改変が可能であることが、この開示の利益を有する当業者には明らかであろう。
【符号の説明】
【００７９】
２０    ：コンピュータ・システム
２１    ：ＣＰＵ
２２    ：システムメモリ
２３    ：システムバス
２４    ：ＲＯＭ
２７    ：ハードディスク
２８    ：磁気ディスクドライブ
２９    ：磁気ディスク
３０    ：光学式ドライブ
３１    ：光学ディスク
３２    ：ハードディスクインターフェース
３３    ：磁気ディスクインターフェース
３４    ：光学式ドライブインターフェース
３５    ：システム
３６    ：ファイルシステム
３７    ：プログラムアプリケーション
３８    ：プログラムモジュール
３９    ：プログラムデータ
４０    ：キーボード
４２    ：マウス
４６    ：シリアルポート
４７    ：モニタ
４８    ：ビデオアダプタ
４９    ：リモートコンピュータ
５０    ：ローカルエリアネットワーク
５１    ：ネットワークインターフェース
５４    ：モデム
５５    ：コントローラ
５６    ：コンピュータ情報メディア
１１０  ：シンクライアント
１１１  ：収集モジュール
１１２  ：選択モジュール
１１３  ：タスク形成モジュール
１２０  ：保護サーバ
１２１  ：送信モジュール
１２２  ：タスクコントロールモジュール
１２３  ：スキャンモジュール
【図１】
0006482510.tif 000002
【図２】
0006482510.tif 000003
【図３】
0006482510.tif 000004