(57)【特許請求の範囲】
【請求項１】
悪意のある暗号化プログラムを検出するための方法であって、
前記方法は、
サーバに保存されたファイルに対して、クライアントからファイル操作要求を、前記サーバで傍受する工程と、
少なくとも前記要求されたファイルと前記要求された操作に関する情報を収集する工程と、
前記サーバのハードウェアプロセッサによって、前記収集された情報に基づいて、前記ファイル操作要求が、既知の悪意のある暗号化プログラムから生じたものであるかどうかを決定する工程と、
前記ファイル操作要求が未知のプログラムから生じたものである場合、その後、前記ハードウェアプロセッサによって、前記ファイルに対して前記要求された操作を実行する前後の前記ファイルの少なくとも一部のエントロピーを計算する工程と、
前記ハードウェアプロセッサによって、前記計算されたエントロピー間の差分を算出する工程と、
前記差分が閾値以下の場合、前記ファイルに対して要求された前記操作を可能にする工程と、
前記差分が閾値を超えている場合、前記ファイルに対して要求された前記操作を拒否する工程を含む、方法。
【請求項２】
前記サーバに保存されたファイルにアクセスする要求を傍受する工程は、ファイルシステムのドライバフィルタによって前記要求を傍受する工程を含む、請求項1に記載の方法。
【請求項３】
前記サーバに保存されたファイルにアクセスする要求を傍受する工程は、システム関数コールと前記コールの1つ又は複数のパラメータを傍受する工程を含む、請求項1に記載の方法。
【請求項４】
前記サーバに保存されたファイルにアクセスする要求を傍受する工程は、前記要求されたファイルのバックアップ・コピーを前記サーバに作成する工程をさらに含む、請求項1に記載の方法。
【請求項５】
前記要求されたファイルと前記要求された操作に関する情報を収集する工程は、前記要求されたファイル操作における1つ又は複数の種類と、元のファイルの内容及び変更されたファイルの内容を有するデータバッファを収集する工程を含む、請求項1に記載の方法。
【請求項６】
前記ファイル操作要求が、既知の悪意ある暗号化プログラムから生じたものである場合、前記ファイルに対して前記要求された操作を拒否する、請求項1に記載の方法。
【請求項７】
前記ファイルの少なくとも一部のエントロピーを計算する工程は、前記ファイルに対して前記要求された操作の実行前後のファイルヘッダーの少なくとも一部のエントロピーを計算する工程を含む、請求項1に記載の方法。
【請求項８】
悪意ある暗号化プログラムを検出するためのシステムであって、
前記システムは、以下のように構成されたハードウェアプロセッサを含むサーバを備え、
前記ハードウェアプロセッサは、
前記サーバに保存されたファイルに対して、クライアントからファイル操作要求を傍受し、
少なくとも前記要求されたファイルと前記要求された操作に関する情報を収集し、
前記収集された情報に基づいて、前記ファイル操作要求が既知の悪意ある暗号化プログラムから生じたものであるかどうかを決定し、
前記ファイル操作要求が未知のプログラムから生じたものである場合、その後、前記ファイルに対して前記要求された操作の実行する前後のファイルの少なくとも一部のエントロピーを計算し、
前記計算されたエントロピー間の差分を算出し、
前記差分が閾値以下の場合、前記ファイルに対して前記要求された操作を可能にし、
前記差分が閾値を超えている場合、前記ファイルに対して前記要求された操作を拒否するように、構成される、システム。
【請求項９】
前記サーバに保存されたファイルにアクセスする要求を傍受する工程は、ファイルシステムのドライバフィルタによって前記要求を傍受する工程を含む、請求項8に記載のシステム。
【請求項１０】
前記サーバに保存されたファイルにアクセスする要求を傍受する工程は、システム関数コールと前記コールの1つ又は複数のパラメータを傍受する工程を含む、請求項8に記載のシステム。
【請求項１１】
前記サーバに保存されたファイルにアクセスする要求を傍受する工程は、前記要求されたファイルのバックアップ・コピーを前記サーバに作成する工程をさらに含む、請求項8に記載のシステム。
【請求項１２】
前記要求されたファイルと前記要求された操作に関する情報を収集する工程は、前記要求されたファイル操作における1つ又は複数の種類と、元のファイルの内容及び変更されたファイルの内容を有するデータバッファを収集する工程を含む、請求項8に記載のシステム。
【請求項１３】
前記ファイル操作要求が、既知の悪意ある暗号化プログラムから生じたものである場合、前記ファイルに対して前記要求された操作を拒否する、請求項8に記載のシステム。
【請求項１４】
前記ファイルの少なくとも一部のエントロピーを計算する工程は、前記ファイルに対して前記要求された操作の実行前後のファイルヘッダーの少なくとも一部のエントロピーを計算する工程を含む、請求項8に記載のシステム。
【請求項１５】
悪意ある暗号化プログラムを検出するためのコンピュータ実行可能命令を格納する非一時的なコンピュータ可読媒体であって、
前記命令は、
サーバに保存されたファイルに対して、クライアントからのファイル操作要求を、サーバで傍受する命令と、
少なくとも前記要求されたファイルと前記要求された操作に関する情報を収集する命令と、
前記収集された情報に基づいて、前記ファイル操作要求が既知の悪意ある暗号化プログラムから生じたものであるかどうかを決定する命令と、
前記ファイル操作要求が未知のプログラムから生じたものである場合、その後、前記ファイルに対して前記要求された操作の実行する前後のファイルの少なくとも一部のエントロピーを計算する命令と、
前記計算されたエントロピー間の差分を算出する命令と、
前記差分が閾値以下の場合、前記ファイルに対して前記要求された操作を可能にする命令と、
前記差分が閾値を超えている場合、前記ファイルに対して前記要求された操作を拒否する命令を含む、非一時的なコンピュータ可読媒体。
【請求項１６】
前記サーバに保存されたファイルにアクセスする要求を傍受する命令は、ファイルシステムのドライバフィルタによって前記要求を傍受する命令を含む、請求項15に記載の非一時的なコンピュータ可読媒体。
【請求項１７】
前記サーバに保存されたファイルにアクセスする要求を傍受する命令は、システム関数コールと前記コールの1つ又は複数のパラメータを傍受する命令を含む、請求項15に記載の非一時的なコンピュータ可読媒体。
【請求項１８】
前記サーバに保存されたファイルにアクセスする要求を傍受する命令は、前記要求されたファイルのバックアップ・コピーを前記サーバに作成する命令をさらに含む、請求項15に記載の非一時的なコンピュータ可読媒体。
【請求項１９】
前記要求されたファイルと前記要求された操作に関する情報を収集する命令は、前記要求されたファイル操作における1つ又は複数の種類と、元のファイルの内容及び変更されたファイルの内容を有するデータバッファを収集する命令を含む、請求項15に記載の非一時的なコンピュータ可読媒体。
【請求項２０】
前記ファイル操作要求が、既知の悪意ある暗号化プログラムから生じたものである場合、前記ファイルに対して前記要求された操作を拒否する、請求項15に記載の非一時的なコンピュータ可読媒体。
【請求項２１】
前記ファイルの少なくとも一部のエントロピーを計算する命令は、前記ファイルに対して前記要求された操作の実行前後のファイルヘッダーの少なくとも一部のエントロピーを計算する命令を含む、請求項15に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、米国特許法35 U.S.C. 119(a)-(d)に基づいて、2015年9月30日に出願されたロシア特許出願第2015141551についての優先権の利益を主張し、本明細書中に援用する。
【０００２】
本発明は、コンピュータセキュリティの分野に関するものであり、より具体的には、悪意あるデータ暗号化プログラムを検出するためのシステムおよび方法である。
【背景技術】
【０００３】
データ暗号化プログラム（cryptors）は、悪意あるソフトウェアの一般的な形態を成しており、ユーザーコンピュータを起動した時、最も重要なデータ（画像、テキストファイル、コンピュータユーザーによって通常使用される他のファイル等）を暗号化する。暗号化の後、ユーザーは、自分のファイルを復号化するための鍵を得るためにハッカーにお金を支払うように要求される。ハッカーがこれまでに非対称暗号化を使用することが増えていることを考えると、ユーザーデータの復号化のための秘密鍵についての知識なしにユーザーのデータを復元することは事実上不可能である。このような暗号化プログラムの例としては、悪意あるプログラムCryptoLockerが挙げられる。
【０００４】
アンチウイルスアプリケーションの作成者は長い間、このようなプログラムについて認識しており、暗号化プログラムを検出することができる多くの技術を開発した。例えば、米国特許出願公開番号20150058987は、ファイルを暗号化するマルウェアの動作を検出するためのエントロピーの計算をするアルゴリズムを記載している。このアプリケーションは、更に、誤ったアラームを低減し、動作速度を上げるために、フォーマットの種類に基づいて、ファイルの除外を考慮している。
【０００５】
このような検出方法は、ユーザーコンピュータで動作するのに都合の良い時間に、暗号化マルウェアを検出することができるとして、充分にその実績が認知されている。しかしながら、その事実に関連して問題が存在している。悪意ある暗号化プログラムがユーザーコンピュータでのドライブを解析している時に、（サーバに物理的に存在する）ネットワークドライブを見つけた場合、悪意あるプログラムは、サーバのデータも暗号化することができる。もちろん、サーバにおけるアクティブなファイル全てをバックトラックすることは、この問題の解決につながるが、サーバの動作可能な生産性をかなり低下させ、企業環境では多くの場合許容されない。このように、サーバにおいてクライアントから起動された悪意ある暗号化プログラムを検出するために、新しい解決策が必要とされる。
【発明の概要】
【０００６】
悪意ある暗号化プログラムを検出するためのシステム及び方法が開示される。1つの例示的な態様で、悪意ある暗号化プログラムを検出するための方法は、以下を含む。
サーバに保存されたファイルに対して、クライアントからファイル操作要求を、サーバで傍受する工程と、
少なくとも要求されたファイルと要求された操作に関する情報を収集する工程と、
サーバのハードウェアプロセッサによって、収集された情報に基づいて、上記ファイル操作要求が、既知の悪意ある暗号化プログラムから生じたものであるかどうかを決定する工程と、
上記ファイル操作要求が未知のプログラムから生じたものである場合、その後、ハードウェアプロセッサによって、ファイルに対して要求された操作を実行する前後のファイルの少なくとも一部のエントロピーを計算する工程と、
ハードウェアプロセッサによって、計算されたエントロピーとの間の差分を算出する工程と、
上記差分が閾値以下の場合、ファイルに対して要求された操作を可能にする工程と、
上記差分が閾値を超えている場合、ファイルに対して要求された操作を拒否する工程を含む。
【０００７】
1つの例示的な態様で、サーバに保存されたファイルにアクセスする要求を傍受する工程は、ファイルシステムのドライバフィルタによって上記要求を傍受する工程を含む。
【０００８】
1つの例示的な態様で、サーバに保存されたファイルにアクセスする要求を傍受する工程は、システム関数コールとそのコールの1つ又は複数のパラメータを傍受する工程を含む。
【０００９】
1つの例示的な態様で、サーバに保存されたファイルにアクセスする要求を傍受する工程は、要求されたファイルのバックアップ・コピーをサーバに作成する工程をさらに含む。
【００１０】
1つの例示的な態様で、要求されたファイルと要求された操作に関する情報を収集する工程は、要求されたファイル操作における1つ又は複数の種類と、元のファイルの内容及び変更されたファイルの内容を有するデータバッファを収集する工程を含む。
【００１１】
1つの例示的な態様で、上記ファイル操作要求が、既知の悪意ある暗号化プログラムから生じたものである場合、ファイルに対して要求された操作を拒否する。
【００１２】
1つの例示的な態様で、ファイルの少なくとも一部のエントロピーを計算する工程は、ファイルに対して要求された操作の実行前後のファイルヘッダーの少なくとも一部のエントロピーを計算する工程を含む。
【００１３】
他の例示的な態様で、悪意ある暗号化プログラムを検出するためのシステムは、
以下のように構成されたハードウェアプロセッサを含むサーバを備え、
上記ハードウェアプロセッサは、
サーバに保存されたファイルに対して、クライアントからファイル操作要求を傍受し、
少なくとも要求されたファイルと要求された操作に関する情報を収集し、
収集された情報に基づいて、上記ファイル操作要求が既知の悪意ある暗号化プログラムから生じたものであるかどうかを決定し、
上記ファイル操作要求が未知のプログラムから生じたものである場合、その後、ファイルに対して要求された操作の実行する前後のファイルの少なくとも一部のエントロピーを計算し、
計算されたエントロピーとの間の差分を算出し、
上記差分が閾値以下の場合、ファイルに対して要求された操作を可能にし、
上記差分が閾値を超えている場合、ファイルに対して要求された操作を拒否するように、構成される。
【００１４】
他の例示的な態様で、
悪意ある暗号化プログラムを検出するためのコンピュータ実行可能命令を格納する非一時的なコンピュータ可読媒体であって、
上記命令は、
サーバに保存されたファイルに対して、クライアントからのファイル操作要求を、サーバで傍受する命令と、
少なくとも要求されたファイルと要求された操作に関する情報を収集する命令と、
収集された情報に基づいて、上記ファイル操作要求が既知の悪意ある暗号化プログラムから生じたものであるかどうかを決定する命令と、
上記ファイル操作要求が未知のプログラムから生じたものである場合、その後、ファイルに対して要求された操作の実行する前後のファイルの少なくとも一部のエントロピーを計算する命令と、
計算されたエントロピーとの間の差分を算出する命令と、
上記差分が閾値以下の場合、ファイルに対して要求された操作を可能にする命令と、
上記差分が閾値を超えている場合、ファイルに対して要求された操作を拒否する命令を含む。
【００１５】
例示的態様における上記の簡単な概要は、本開示の基本的な理解を提供するのに役立つ。この概要は、企図される全ての態様における広範な概観ではない。つまり、すべての態様における主要または重要な要素を特定することでもなく、本開示の任意の範囲又は全ての態様を区切ることでもないということを意図している。その唯一の目的は、以下にある本開示のより詳細な説明の前置きとして、簡略化された形式で1つまたは複数の態様を提示することである。前述の達成のために、本開示の1つまたは複数の態様は、特許請求の範囲に記載され、特に指摘される特徴を含む。
【図面の簡単な説明】
【００１６】
添付の図面は、本明細書に組み込まれ、その一部を構成し、本開示における１つまたはそれ以上の例示的な態様を示し、詳細な説明と共に、それらの原理および実装を説明するのに役立つ。
【図１】図1は、サーバサイトでの悪意ある暗号化プログラムの動作の一例を示す。
【図２】図2は、悪意ある暗号化プログラムを検出する例示的なシステムを示す。
【図３】図3は、悪意ある暗号化プログラムを検出する例示的な方法を示す。
【図４】図4は、1つの例示的な態様における、確率関数を示す。
【図５】図5は、本発明のシステム及び方法の様々な態様を実装するために使用することができるコンピュータ・システムの一例を示す。
【発明を実施するための形態】
【００１７】
例示的態様は、モバイルデバイスでの悪意あるファイルを検出するためのシステム、方法、及びコンピュータプログラム製品における説明で本明細書に記載されている。当業者は、以下の説明は単なる例示であり、いかなる方法においても限定されることを意図するものではないことを理解するであろう。他の態様は、本開示の利益を有する当業者に対して容易に示される。添付の図面に示されるように、参照は例示的態様の実装に対して以下で詳細に説明される。同じ参照指標が、同一または同様の項目を参照するために、図面全体と以下の説明を通じて、可能な限り使用される。
【００１８】
図1は、サーバサイトの悪意ある暗号化プログラムの動作の一例を示す。悪意ある暗号化プログラム140は、ユーザーのコンピュータ120で起動される。そのプログラム140がクリーンなプログラムであると信じて、ユーザー自身で行うことができる。或いは、プログラム140は、例えば、自動起動用に使用されるレジストリキーを介して、コンピュータ120の起動時に、それ自身を起動することができる。サーバ110のネットワークドライブがコンピュータ120から接続されている場合は、暗号化プログラム140は、サーバ110のネットワークドライブでのファイル130を暗号化することもできる。
【００１９】
図2は、悪意ある暗号化プログラムを検出するための例示的なシステムを示す。図１と比べると、システムは、インターセプター150とアナライザー160をさらに含む。1つの例示的な態様において、インターセプター150は、ファイルフィルタドライバであってもよく、アナライザー160は、カスペルスキーアンチウイルスなどのアンチウイルスアプリケーションであってもよい。インターセプター150は、ファイル130にアクセスする要求を傍受し、そのデータをアナライザー160に送信する。1つの例示的な態様では、ファイルアクセス要求を傍受することは、CreateFile、ReadFile関数/WriteFile、DeleteFile、GetFileInformationByHandle、FindFirstFile及びその他（関数のこのリストは、Windowsオペレーティング・システムにも適用可能である)等のシステム関数コールによる傍受を含むことができる。
【００２０】
悪意ある暗号化プログラム140の実際に実行していることを検出するには、システム関数コールだけでなく、元のファイル130に取って代わって書き込みしようとする本関数のデータを傍受することが望ましい。悪意ある暗号化プログラム140は、一般的に、ファイル130の暗号化のための二つのアルゴリズムに従って動作することができる。一つ目、それらは、ファイル130のコピーを作成し、元のファイル130が削除された後に、作成されたコピーの中にあるデータを暗号化する。二つ目は、ファイル130のデータを直接上書き、バッファに元のデータを読み込み、それを暗号化し、そして、それを書き換えるものである。
【００２１】
本発明の文脈にいて、データがドライブに書かれるときにエントロピーを計算するという既存のアプローチは、悪意ある暗号化プログラム140の実行を検出することができる。情報エントロピー（以下、単にエントロピー）の定義は、イリノイ大学の評議会による記事The Mathematical Theory of Communication, (с) 1949で与えられている。
図4は、エントロピーの計算の例を示す。1つのファイルに対するエントロピーと、その暗号化前後の同じファイルのエントロピーの計算の例を示す。
X軸に沿ってバイト(byte)数(文字a、b、c等）が、Y軸に沿ってファイル内の発生確率がプロットされている。特性グラフ-確率関数-ファイル内の文字（バイト）の出現確率を決定する。エントロピーは、この情報（文字）をエンコードするために必要なビット数を示している。このように、ファイル内の情報が少ない程、エントロピーは大きくなる。たとえば、英語のみの文字が存在するテキストファイルに対して、エントロピーは、その暗号化（暗号化されたテキストはランダムな文字を混合した物のように見える）後のものよりも小さくなるだろう。
【００２２】
図4にある確率関数Aは、暗号化されていないファイルに対する特徴である。限られた一連の文字列は、最大発生確率を有し、これはテキストファイルに当てはまり、ヘッダーはファイルの種類（フォーマット）を示すものであるので、バイナリファイルヘッダーについても、同様である。ファイルが暗号化プログラム140によって暗号化された後、確率関数は、文字における個々の数がほぼ同じ頻度で発生する関数Bの形態をとる。
【００２３】
暗号化プログラム140を検出するための既知の方法の１つは、エントロピーの「収束」（"convergence"）を計算することであり、つまり、2つのエントロピーの間の差分である。「収束」（以下、引用マークなし使用される）が、特定の閾値よりも大きい場合、ファイルが変更された（例えば、暗号化された）ことは明らかである。最大の収束値は、数十バイトに等しい。収束が次の式を用いて計算することができる。
0006298849.tif 000002
ここで、P は、バイト単位の収束値である。
0006298849.tif 000003
は、ファイルの変更（暗号化）後のエントロピー値である。
0006298849.tif 000004
は、ファイルを変更する前のエントロピー値である。
【００２４】
図3は、悪意ある暗号化プログラムを検出するための例示的な方法を示す。工程310において、ユーザーのコンピュータ120からのファイル操作（ファイルへのアクセス要求）がサーバ110で傍受される。工程320において、ファイルのバックアップ・コピーが作成され、それは変更に供される。1つの例示的な態様では、バックアップファイルのコピーを作成するには、同じディレクトリ（又はバックアップ・コピーを格納するための一時的なディレクトリ）にファイルをコピーすることによって実現することができる。バックアップ・コピーを実行するアプリケーションの例としては、Acronis Backup & Recoveryである。
【００２５】
工程330では、傍受されたファイル操作に関する情報は、アナライザー160へ、解析のために振り分けられる。データは、ファイル操作の種類（例、コールされたAPI関数）、データバッファ（元のファイルの内容と変更された内容を有する）、及び、ユーザーのコンピュータ120についてのデータ、を含むが、それに限定されない。工程340で、ファイル130に書き込まれるだろうデータのバッファは解析される。データバッファの解析結果に基づいて、既知の暗号化プログラム140が要求されたファイル操作を実行しようとしていると判断された場合、その後、工程370において、ユーザーのコンピュータ120とサーバ110との接続がブロック又はクローズされる。さらなる工程は、以下に説明する。
【００２６】
しかし、データの解析に基づいて、既知の暗号化プログラム140が検出されなかった場合は、工程350で、アナライザー160は、上書きされたファイルセグメントのエントロピーを計算し、元のエントロピーと上書きされたファイルセグメントに対する収束を計算する。1つの例示的な態様では、アナライザー160は、ファイルヘッダーを解析することができ、ファイルヘッダーはファイル130のフォーマットの種類の記述を含んでいる。原則として、ファイルの初めの数キロバイトで、このような解析に対しては充分である。この解析は工程360で実行され、収束の値が所定の閾値を超えない場合、その後、工程365で、ユーザーのコンピュータ120の一部にさらにファイル操作が許可される。
【００２７】
エントロピーの収束が所定の閾値を超えた場合は、アナライザー160により、暗号化プログラム140がユーザーのコンピュータ120で実行されていると、結論づけられる。そして、工程370は、ユーザーのコンピュータ120とサーバ110との間の接続を、ブロック（又はブレイク）する。工程380では、ファイルのバックアップ・コピーは、サーバ110に復元（ロールバック）される。
【００２８】
一部のユーザーのコンピュータ120で、ファイル操作を実行することがブロックされておらず、且つ、一部のアナライザー160での遅延なく実行されている、いわゆる、非同期動作である、ということに留意することは重要である。一方、ファイル操作を実行することにより、生産性の損失はないが、元のファイルが非同期動作中に部分的に上書きされる（暗号化される）ので、バックアップ・コピーを作成する必要がある。
【００２９】
工程390で、アナライザー160とユーザーのコンピュータ120の間に、相互作用が生じる。この場合、アンチウイルスアプリケーション（図示せず）がユーザーのコンピュータ120にインストールされている場合、アナライザー160は、サーバ110でファイル130に対して現在動作しているプロセスについての情報（プロセスの名前、プロセスが動作している時間、プロセスが起動されたプロセスからのファイルのハッシュ値、デジタル署名の存在、及びその他）を、そこから取得することができる。1つの例示的な態様において、CIFSプロトコル（共通インターネットファイルシステム）は、この目的のために使用することができる。
【００３０】
アナライザー160とユーザーのコンピュータ120におけるアンチウイルスアプリケーション間の相互作用の例を提示しなければならない。サーバ110で、インターセプター150によって、ユーザーのコンピュータ120からのファイル操作を傍受した後、および、暗号化プログラム140を実際に実行してアナライザー160から評価を得た後、ファイル130を暗号化しているプロセスについての情報は、ユーザーのコンピュータ120にあるアンチウイルスアプリケーションへ送信される。
例として、情報は、以下を含むことができる。
プロセスの名前：winserv.exe
デジタル署名の存在：なし
【００３１】
取得した情報に基づいて、ユーザーのコンピュータ120のアンチウイルスアプリケーションが、システムで起動されている全てのプロセスの中で、winserv.exeと示された名前を持つプロセスの検索を開始し、それを発見した後、アンチウイルスアプリケーションは、発見されたプロセスを停止し、それが起動されたところからファイルを削除する。
【００３２】
さらに他の例示的な態様では、ファイル130は、サーバ110ではなく、サーバ110に接続されているネットワークデータストレージシステム（NAS、ネットワーク接続ストレージ、図2に示されていない）に保存される。ネットワークデータストレージシステムでの動作の特性は、それとサーバ110との間のデータ交換プロトコルのエクステンション（又はサポート）が必要とされる。1つの例示的な態様では、ICAP（インターネットコンテンツアダプテーションプロトコル）プロトコルのエクステンションが必要とされ得る。
【００３３】
図5は、例示的態様に係る、開示されたシステム及び方法が実装されることができる、汎用コンピュータ・システム（パーソナルコンピュータ又はサーバであってもよい）の例である。
示されるように、コンピュータ・システムは、中央処理ユニット21、システムメモリ22及びシステムバス23を含み、システムバスは、様々なシステムコンポーネント（中央処理ユニット21に付随するメモリを含む）に接続している。システムバス23は、先行文献で知られている任意のバス構造のように実現され、順にバスメモリ又はバスメモリコントローラ、周辺バス、及びローカルバスを含み、それは、任意の他のバスアーキテクチャと相互作用することができる。システムメモリは、読み出し専用メモリ（ROM）24およびランダムアクセスメモリ（RAM）25を含む。基本入出力システム（BOIS）26は、パーソナルコンピュータ20の要素間で情報の転送を保証する基本的な手順を含み、ROM24を使用してオペレーティング・システムをロードする時にも同様である。
【００３４】
パーソナルコンピュータ20は、順に、データの読み書き用ハードディスク27、リムーバブル磁気ディスク29への読み書き用磁気ディスクドライブ28、及び、リムーバブル光ディスク31（CD-ROM、DVD-ROM又は他の光情報媒体等）への読み書き用光ドライブ30を含む。ハードディスク27、磁気ディスクドライブ28、及び光ドライブ30は、それぞれ、ハードディスクインターフェース32、磁気ディスクインタフェース33及び光ドライブインターフェース34を介してシステムバス23に接続されている。ドライブ及び対応するコンピュータ情報媒体は、パーソナルコンピュータ20のコンピュータ命令、データ構造、プログラムモジュール、およびその他のデータにおける記憶装置に対して電力独立型モジュールである。
【００３５】
本開示は、ハードディスク27、リムーバブル磁気ディスク29およびリムーバブル光ディスク31を使用するシステムの実装を提供するが、コンピュータによって読み取り可能な形式でデータを格納することができる他の型のコンピュータ情報媒体56（ソリッドステートドライブ、フラッシュメモリカード、デジタルディスク、ランダムアクセスメモリ（RAM）等）を使用することも可能であることが理解されるべきであり、それらは、コントローラ55を介してシステムバス23に接続される。
【００３６】
コンピュータ20は、ファイルシステム36を有し、そこには記録されたオペレーティング・システム35が保持され、および、追加プログラムアプリケーション37、他のプログラムモジュール38およびプログラムデータ39、もまた同様である。ユーザーは、入力デバイス（キーボード40、マウス42）で、パーソナルコンピュータ20に、コマンドと情報を入力することができる。他の入力デバイス（図示せず）として、マイクロホン、ジョイスティック、ゲームコントローラ、スキャナ等を用いることができる。そのような入力デバイスは、通常、シリアルポート46を介してコンピュータ・システム20に接続され、それは、順番に、システムバスに接続される。それらは、他の方法（例えば、パラレルポート、ゲームポート、又はユニバーサルシリアルバス（USB））を用いて接続できる。モニター47又は他の型の表示デバイスもまた、ビデオアダプタ48などのインターフェースを介してシステムバス23に接続される。モニター47に加えて、パーソナルコンピュータは、ラウドスピーカー、プリンター等の他の周辺出力デバイス（図示せず）を搭載することができる。
【００３７】
パーソナルコンピュータ20は、1つ又は複数のリモートコンピュータ49を用いて、ネットワーク環境で作業することができる。図3に示すように、リモートコンピュータ（複数可）49も、前述の要素の大部分又は全てを有するパーソナルコンピュータ又はサーバであり、その要素は、パーソナルコンピュータ20の本質を示している。ルータ、ネットワーク局、ピアデバイスまたは他のネットワークノード等、他のデバイスも、コンピュータネットワークに存在できる。
【００３８】
ネットワーク接続は、有線および/または無線ネットワーク等のローカルエリアコンピュータネットワーク（LAN）50、およびワイドエリアコンピュータネットワーク（WAN）を生成することができる。このようなネットワークは、企業コンピュータネットワークと社内ネットワークで使用されており、これらは一般的にインターネットへのアクセス権を有している。LANまたはWANネットワークでは、パーソナルコンピュータ20は、ネットワークで使用しているネットワークアダプタまたはネットワークインタフェース51を介してローカルエリアネットワーク50に接続される。ネットワークが用いられる場合、パーソナルコンピュータ20は、インターネットのようなワイドエリアコンピュータネットワークとの通信を提供するため、モデム54または他のモジュールを使用する。モデム54は、内部または外部デバイスであり、シリアルポート46によってシステムバス23に接続される。ネットワーク接続は、単なる例であり、ネットワークの正確な構成を示す必要はないことに留意すべきである。すなわち、現実には技術的な通信モジュールによる他のコンピュータの接続を確立する他の方法がある。
【００３９】
様々な態様において、本明細書で説明するシステム及び方法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実装することができる。ソフトウェアで実装する場合、その方法は、非一時的なコンピュータ可読媒体上の1つまたは複数の命令またはコードとして格納されることができる。コンピュータ可読媒体は、データ記憶を含む。コンピュータ可読媒体を以下に例示するが、限定するものではない。コンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROM、フラッシュメモリ、又は、他の型の電気的、磁気的、または光記憶媒体、又は他の任意の媒体、を備えることができ、命令またはデータ構造の形で所望のプログラムコードを搬送又は格納するために用いられ、汎用コンピュータのプロセッサによってアクセスすることができる。
【００４０】
様々な態様では、システムおよび方法は、モジュールの観点から、本開示で説明される。本明細書で使用される用語「モジュール」とは、現実世界のデバイス、コンポーネント、または、ハードウェアを用いて実装されたコンポーネントの配置を言及しており、例えば、または、ハードウェアとソフトウェアの組み合わせとして、特定用途向け集積回路（ASIC）またはフィールド・プログラマブル・ゲート・アレイ（FPGA）などによって実装され、モジュールの機能を実装するマイクロプロセッサシステムと命令セットなどによって、（実行される間に）マイクロプロセッサシステムを専用のデバイスに変換される。モジュールも、2つの組合せとして実装されることができ、ハードウェアだけによって容易とされる特定の機能、および、ハードウェアとソフトウェアの組み合わせによって容易とされる他の機能と、これらの組み合わせとして実現することができる。特定の実施態様では、少なくとも一部、およびいくつかのケースでは、モジュールのすべては、（例えば、図3上部に詳細に説明したもののように）汎用コンピュータのプロセッサ上で実行することができる。したがって、各モジュールは、適切な様々な構成で実現することができ、そして本明細書中に任意の例示的な実施形態に限定されるものではない。
【００４１】
明瞭にするために、態様のルーチン機能のすべてが、本明細書に開示されているわけではない。本開示における任意の実際の実装における開発で、多数の実装固有の判断が、開発者の特定の目標を達成するためになされなければならないことが理解されるであろう。さらに、これらの具体的な目標は、個々の実装及び個々の開発者に対して変化することが理解されるであろう。そのような開発努力は複雑で時間がかかるかもしれないが、それでも本開示の利益を有する当業者にとっては、エンジニアリングの日常の仕事であると理解されるであろう。
【００４２】
さらに、本明細書で使用される用語又は表現は、説明のためであり、制限するものではなく、つまり、関連技術の熟練の知識と組み合わせて、本明細書の用語または表現は、ここに示される教示及び指針に照らして当業者によって解釈されるべきであることが理解されるべきである。明示的な記載がない限り、明細書または特許請求の範囲内で、任意の用語に対して、珍しいまたは特別な意味を帰することは意図されていない。
【００４３】
本明細書で開示された様々な態様は、例示のために本明細書に言及した既知のモジュールの、現在および将来の既知の均等物を包含する。さらに、態様および用途を示し、説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの改変が可能であることが、この開示の利益を有する当業者には明らかであろう。
【図１】
0006298849.tif 000005
【図２】
0006298849.tif 000006
【図３】
0006298849.tif 000007
【図４】
0006298849.tif 000008
【図５】
0006298849.tif 000009