(57)【特許請求の範囲】
【請求項１】
ユーザコンピュータにおいて、ソフトウェア・アプリケーションによるコンピュータファイルのオープンを制御する方法であって、
前記ソフトウェア・アプリケーションは、1つ又は複数のソース・アプリケーションを含み、前記ソース・アプリケーションは、前記コンピュータファイルとコンシューマー・アプリケーションを生成し、前記コンシューマー・アプリケーションは、前記ユーザコンピュータにある前記コンピュータファイルのオープンを要求し、
前記方法は、
ユーザコンピュータでコンピュータファイルをオープンするというソフトウェア・アプリケーションからの要求を、ハードウェアプロセッサにより検出する工程と、
前記コンピュータファイルの1つ又は複数のパラメータを、前記ハードウェアプロセッサにより決定する工程と、
前記コンピュータファイルのパラメータに基づいて、要求された前記コンピュータファイルに関連するファイル・アクセス・ポリシーを、前記ハードウェアプロセッサにより決定する工程であって、
前記ファイル・アクセス・ポリシーは、前記要求されたコンピュータファイルの動作中、前記ユーザコンピュータのリソースに対する前記ソフトウェア・アプリケーションのアクセス権を少なくとも規定する工程と、
前記ハードウェアプロセッサにより前記ソフトウェア・アプリケーションの脆弱性を特定する工程と、
前記決定された脆弱性に少なくとも基づいて、前記ハードウェアプロセッサによりアプリケーション起動ポリシーを決定する工程であって、
前記アプリケーション起動ポリシーは、前記ファイルのオープンを許可又は禁止するかどうかを、少なくとも規定する工程と、
前記オープンされたファイルの動作中、前記ファイル・アクセス・ポリシー及び前記アプリケーション起動ポリシーに少なくとも基づいて、前記ハードウェアプロセッサにより、前記ソフトウェア・アプリケーションによる前記コンピュータファイルのオープン及び前記コンピュータ・リソースへのアクセスを、制御する工程と、
を備える、方法。
【請求項２】
前記ソース・アプリケーションによって作成されるコンピュータファイルは、プロセス、実行可能ファイル、スクリプトファイルとダイナミックライブラリの１つを含む、請求項1に記載の方法。
【請求項３】
前記ソース・アプリケーションが前記コンピュータファイルを生成する時を次の手段を用いて決定する工程をさらに備え、
前記手段は、
ファイルシステムフィルターのドライバを用いる手段、
前記ユーザコンピュータでのオペレーティングシステム（OS）のアプリケーションプログラミングインターフェース（API）のコールを傍受する手段、
及び、
前記ソース・アプリケーションにより前記ユーザコンピュータに提供されるAPIを用いる手段、
の少なくとも１つを用いる工程を含む、
請求項1に記載の方法。
【請求項４】
前記ハードウェアプロセッサによって決定された前記コンピュータファイルのパラメータは、前記コンピュータファイルの種類、前記コンピュータファイルのサイズ、前記コンピュータファイルのデジタル署名、及び前記コンピュータファイルの拡張子、の少なくとも１つを含む。
請求項1に記載の方法。
【請求項５】
前記ハードウェアプロセッサによって、前記コンピュータファイルの１つ又は複数のパラメータを決定する工程は、前記コンピュータファイルに対するウイルス対策用の解析を実行する工程をさらに含み、前記コンピュータファイルのパラメータは前記ウイルス対策用の解析結果を含む、
請求項1に記載の方法。
【請求項６】
前記ソフトウェア・アプリケーションの脆弱性を特定する工程と、
前記ソフトウェア・アプリケーションの修正された脆弱性を決定する工程と、
以前のバージョンの前記ソフトウェア・アプリケーションでの脆弱性を決定する工程と、
以前のバージョンの前記ソフトウェア・アプリケーションでの修正された脆弱性を決定する工程と、
を含む、
請求項1に記載の方法。
【請求項７】
前記ファイル・アクセス・ポリシー及びアプリケーション起動ポリシーの優先順位を規定する工程をさらに含み、
前記ソフトウェア・アプリケーションによる前記コンピュータファイルのオープン及び前記コンピュータ・リソースへのアクセスを制御する工程は、前記ファイル・アクセス・ポリシー及びアプリケーション起動ポリシーのそれぞれの優先順位に基づいている、
請求項1に記載の方法。
【請求項８】
前記コンピュータリソースのアクセス権は、前記ソフトウェア・アプリケーションが次の操作の1つ又は複数の操作の実行を禁止する工程を含み、
前記操作は、
前記コンピュータファイルシステムに対する低いレベルでのアクセスを実行する操作、
ディスクに対する低いレベルでアクセスを実行する操作、
前記コンピュータでドライバを起動する操作、
前記コンピュータのレジストリを変更する操作、
前記コンピュータのメモリに直接アクセスする操作、
プロセス記述子を取得する操作、
ブラウザのAPIを使用する操作、
全サブディレクトリを含む、"%SystemRoot%"及び"%ProgramFiles%"ディレクトリにあり、拡張子が.exe 及び.dllであるファイルを変更する操作、
前記コンピュータのStartupディレクトリにあるファイルを生成及び変更する操作、
自動実行キーを生成及び変更する操作、
環境変数を含むアドレスを使用してファイルのリソースにアクセスする操作、
及び、前記コンピュータのユーザ・レジストリのリソースにアクセスする操作、
である、
請求項1に記載の方法。
【請求項９】
1つ又は複数の手段に基づいて、前記ソフトウェア・アプリケーションが信頼のないファイル起源であるどうかについて、前記ハードウェアプロセッサによって決定される工程と、
前記ソフトウェア・アプリケーションが、信頼のないファイル起源であるかどうかという決定に基づいて、前記ハードウェアプロセッサにより、前記ソフトウェア・アプリケーションが前記ユーザコンピュータで前記コンピュータファイルをオープン及び前記コンピュータ・リソースへのアクセスする制御を行う工程とをさらに含み、
前記手段は、
信頼のない既知の前記ソース・アプリケーションのデータベース内を検索する手段と、
脆弱なモジュール又は前記信頼のないファイルをロードすることに対する前記ソース・アプリケーションの振る舞いを解析する手段、
及び、前記ソフトウェア・アプリケーションのメタデータの解析する手段、である、
請求項1に記載の方法。
【請求項１０】
ユーザコンピュータでのソフトウェア・アプリケーションによるコンピュータファイルのオープンを制御するためのシステムであって、
前記ソフトウェア・アプリケーションは、1つ又は複数のソース・アプリケーションを含み、前記ソース・アプリケーションは、前記コンピュータファイルとコンシューマー・アプリケーションを生成し、前記コンシューマー・アプリケーションは、前記ユーザコンピュータにある前記コンピュータファイルのオープンを要求し、
システムは、ハードウェアプロセッサを備え、
前記ハードウェアプロセッサは、
前記ユーザコンピュータで前記コンピュータファイルをオープンするという、前記ソフトウェア・アプリケーションからの要求を検出し、
前記コンピュータファイルの1つまたは複数のパラメータを決定し、
前記コンピュータファイルのパラメータに基づいて、要求された前記コンピュータファイルに関連するファイル・アクセス・ポリシーを決定し、
前記ファイル・アクセス・ポリシーは、前記要求されたコンピュータファイルの動作中、前記ユーザコンピュータのリソースに対する前記ソフトウェア・アプリケーションのアクセス権を少なくとも規定し、
前記ソフトウェア・アプリケーションの脆弱性を特定し、
前記決定された脆弱性に少なくとも基づいて、前記ソフトウェア・アプリケーションに対するアプリケーション起動ポリシーを決定し、
前記アプリケーション起動ポリシーは、前記ファイルのオープンを許可又は禁止されるかどうかを少なくとも規定し、
前記オープンされたファイルの動作中、前記ファイル・アクセス・ポリシー及びアプリケーション起動ポリシーに少なくとも基づいて、前記ユーザコンピュータでの前記ソフトウェア・アプリケーションによる、前記コンピュータファイルのオープン及び前記コンピュータ・リソースへのアクセスを制御する、
ように構成される、
システム。
【請求項１１】
前記プロセッサは、
前記ソース・アプリケーションが前記コンピュータファイルを生成する時を次の手段を用いて決定するように、さらに構成され、
前記手段は、
ファイルシステムフィルターのドライバを用いる手段、
前記ユーザコンピュータでのオペレーティングシステム(OS)のアプリケーションプログラミングインターフェース(API)のコールを用いる手段、
及び、前記ソース・アプリケーションにより前記ユーザコンピュータに提供されるAPIを用いる手段、
の少なくとも1つの手段である、
請求項10に記載のシステム。
【請求項１２】
前記ハードウェアプロセッサにより決定される前記コンピュータのパラメータは、
前記コンピュータファイルの種類、
前記コンピュータファイルのサイズ、
前記コンピュータファイルのデジタル署名、
及び、前記コンピュータファイルの拡張子、
の少なくとも1つを含む、
請求項10に記載のシステム。
【請求項１３】
前記ハードウェアプロセッサは、
前記ソフトウェア・アプリケーションの脆弱性の特定については、
前記ソフトウェア・アプリケーションでの修正された脆弱性を決定し、
以前のバージョンの前記ソフトウェア・アプリケーションでの脆弱性を決定し、
及び、以前のバージョンの前記ソフトウェア・アプリケーションでの修正された脆弱性を決定するように構成されることをさらに含む、
請求項10に記載のシステム。
【請求項１４】
前記プロセッサは、
前記ファイル・アクセス・ポリシー及びアプリケーション起動ポリシーの優先順位を規定するようにさらに構成され、
前記ソフトウェア・アプリケーションによる、前記コンピュータファイルのオープン及び前記コンピュータ・リソースへのアクセスを制御することは、前記ファイル・アクセス・ポリシー及びアプリケーション起動ポリシーのそれぞれの優先順位に基づいている、
請求項10に記載のシステム。
【請求項１５】
前記コンピュータ・リソースへのアクセス権は、前記ソフトウェア・アプリケーションが、次の操作の1つ又は複数の操作の実行を禁止することを含み、
前記操作は、
前記コンピュータファイルシステムに対する低いレベルでアクセスを実行する操作、
ディスクに対する低いレベルでアクセスを実行する操作、
前記コンピュータでドライバを起動する操作、
前記コンピュータのレジストリを変更する操作、
前記コンピュータのメモリに直接アクセスする操作、
プロセス記述子を取得する操作、
ブラウザのAPIを使用する操作、
全サブディレクトリを含む、"%SystemRoot%"及び"%ProgramFiles%"ディレクトリにあり、拡張子が.exe 及び.dllであるファイルを変更する操作、
前記コンピュータのStartupディレクトリにあるファイルを生成及び変更する操作、
自動実行キーを生成及び変更する操作、
環境変数を含むアドレスを使用してファイルのリソースにアクセスする操作、
及び、前記コンピュータのユーザ・レジストリのリソースにアクセスする操作、
である、
請求項10に記載のシステム。
【請求項１６】
前記プロセッサは、
次の1つまたは複数の手段に基づいて、前記ソフトウェア・アプリケーションが信頼のないファイル起源であるかどうかを決定し、
前記ソフトウェア・アプリケーションが信頼のないファイル起源であるかどうかの決定に基づいて、前記ユーザコンピュータで、前記ソフトウェア・アプリケーションが、前記コンピュータファイルをオープン及び、前記コンピュータ・リソースへのアクセスをさらに制御するように、
さらに構成される、
前記手段は、
前記信頼のないファイルの既知のソース・アプリケーションのデータベース内を検索する手段、
脆弱なモジュール又は前記信頼のないファイルのロードすることに対する前記ソース・アプリケーションの振る舞いを解析する手段、
前記ソース・アプリケーションのメタデータの解析する手段である、
請求項10に記載のシステム。
【請求項１７】
ユーザコンピュータでのソフトウェア・アプリケーションによるコンピュータファイルのオープンを制御するためのコンピュータ実行可能命令を備える、非一時的なコンピュータ可読媒体であって、
前記ソフトウェア・アプリケーションは、1つ又は複数のソース・アプリケーションを含み、
前記コンピュータファイルとコンシューマー・アプリケーションを生成し、
前記コンシューマー・アプリケーションは、前記ユーザコンピュータにある前記コンピュータファイルのオープンを要求し、
前記命令は、
前記ユーザコンピュータで前記コンピュータファイルをオープンするという前記ソフトウェア・アプリケーションからの要求を検出する命令と、
前記コンピュータファイルの1つまたは複数のパラメータを決定する命令と、
前記コンピュータファイルのパラメータに基づいて、要求された前記コンピュータファイルに関連するファイル・アクセス・ポリシーを決定する命令と、
ここで、前記ファイル・アクセス・ポリシーは、前記要求されたコンピュータファイルの動作中に、前記ユーザコンピュータのリソースに対する前記ソフトウェア・アプリケーションのアクセス権を少なくとも規定し、
前記ソフトウェア・アプリケーションの脆弱性を特定する命令と、
前記決定された脆弱性に少なくとも基づいて、前記ソフトウェア・アプリケーションに対するアプリケーション起動ポリシーを決定する命令と、
前記アプリケーション起動ポリシーは、前記ファイルのオープンが許可又は禁止されるかどうかについて、少なくとも規定し、
前記オープンされたファイルの動作中、前記ファイル・アクセス・ポリシー及びアプリケーション起動ポリシーに少なくとも基づいて、前記ユーザコンピュータでの、前記ソフトウェア・アプリケーションによる、前記コンピュータファイルのオープン及び前記コンピュータ・リソースへのアクセスを制御する命令、
を含む、非一時的なコンピュータ可読媒体。
【請求項１８】
前記命令は、
前記ソフトウェア・アプリケーションの脆弱性を特定する命令と、
前記ソフトウェア・アプリケーションでの修正された脆弱性を決定する命令と、
以前のバージョンの前記ソフトウェア・アプリケーションでの脆弱性を決定する命令と、
以前のバージョンの前記ソフトウェア・アプリケーションでの修正された脆弱性を決定する命令とをさらに備える、
請求項17に記載の非一時的なコンピュータ可読媒体。
【請求項１９】
前記命令は、次の1つまたは複数の手段に基づいて、
前記ソフトウェア・アプリケーションが信頼のないファイル起源であるかどうかを決定する命令と、
前記ソフトウェア・アプリケーションが信頼のないファイル起源であるかどうかの決定に基づいて、前記ソフトウェア・アプリケーションが、前記ユーザコンピュータで、前記コンピュータファイルをオープン及び前記コンピュータ・リソースへのアクセスする制御を行う命令と、
をさらに備え、
前記手段は、
信頼のないファイルに関する既知のソース・アプリケーションのデータベース内の検索する手段と、
脆弱なモジュール又は信頼のないファイルをロードすることに対する前記ソース・アプリケーションの振る舞いを解析する手段、及び、
前記ソース・アプリケーションのメタデータを解析する手段である、
請求項17に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、コンピュータセキュリティの分野に関するものであり、より具体的には、脆弱なソフトウェア・アプリケーションによるコンピュータファイルのオープンを、制御するためのシステムおよび方法である。
【背景技術】
【０００２】
パーソナルコンピュータ、タブレット、及びスマートフォン（一般に「コンピュータ」としてここでは呼ばれる）を含む、コンピュータデバイスに用いられているソフトウェア・アプリケーションの数は、今日、驚異的な割合で増加している。コンピュータに備えられるソフトウェア・アプリケーションがコンピュータファイルを受取った時又は開いた時に、コンピュータが悪質なソフトウェアによる攻撃に対して脆弱になることが多々ある。悪意のあるソフトウェア、すなわち“マルウェア”は、ハッカーによって開発されたウイルス、トロイの木馬、スパイウェア、ワーム、ボットなどを含み得る。マルウェアは、コンピュータとそのユーザに対して多くの問題を引き起こし続けているので、マルウェアから守ることを目的として、非常に高度なウイルス対策のアプリケーションの開発に多くの努力が成されている。
【０００３】
ウイルス対策のアプリケーションは、通常、コンピュータでのすべての疑わしいファイルをスキャンする。それにより、アプリケーションがコンピュータのリソースのかなりの割合を消費しかねないという、課題が生じる。しかし、マルウェアが引き起こす可能性がある潜在的な損傷の重症性を懸念して、コンピュータシステムでは、コンピュータで実行する他のアプリケーションからリソースの適用を外し、実行しているウイルス対策のアプリケーションに対してリソースを適用するという対応をせざる得ない。
【０００４】
コンピュータにおけるリソースの枯渇は、コンピュータに新しいソフトウェアファイルを導入して直ぐの期間に限定されるものではない。新たに発見されたマルウェアからファイルを保護できるように、ウイルス対策のアプリケーションが定期的に更新されるので、ソフトウェアファイルは、再度スキャンされる。すなわち、あるファイルが、始めに、マルウェアがないと判断されたとしても、後々、更新されたウイルス対策のアプリケーションによって再度スキャンされた後に、マルウェアが含まれていると判断されることもありえる。したがって、複数のスキャンをするためのリソースは、マルウェアに対する保護の品質を向上させるために必要とされる。
【０００５】
残念ながら、マルウェアは、より洗練され、コンピュータとそのユーザに対してより危険になり続けている。故に、ウイルス対策のアプリケーションは、効果的に動作できるように、多くのコンピュータ・リソースを必要とする。従って、現在の状況において、特定条件でソフトウェア・アプリケーションがコンピュータファイルをオープンする承諾を制限するルール又は基準を作成することができるシステムを提供することは望ましいであろう。それにより、マルウェアの可能性から保護するために、使用されるコンピュータ・リソースの総計を制限することができる。
【発明の概要】
【０００６】
脆弱なアプリケーションによるコンピュータファイルのオープンを制御する例示的なシステム、方法及びコンピュータプログラム製品が開示される。
例示的な方法は、
ユーザコンピュータでコンピュータファイルをオープンするという、ソフトウェア・アプリケーションからの要求を検出する工程と、
ファイルの1つ又は複数のパラメータを決定する工程であって、
ファイルのパラメータに基づいて、ファイル・アクセス・ポリシーを決定する工程と、
ファイル・アクセス・ポリシーは、ユーザコンピュータのリソースに対するソフトウェア・アプリケーションのアクセス権を少なくとも規定する工程と、
ソフトウェア・アプリケーションの脆弱性を特定する工程と、
決定された脆弱性に少なくとも基づいて、ソフトウェア・アプリケーションに対するアプリケーション起動ポリシーを決定する工程であって、
アプリケーション起動ポリシーは、ファイルオープンを許可又は禁止するかどうかを、少なくとも規定する工程と、
オープンされたファイルの動作中、ファイル・アクセス・ポリシー及びアプリケーション起動ポリシーに基づいて、ソフトウェア・アプリケーションによるユーザコンピュータでのファイルオープン及びコンピュータ・リソースへのアクセスを制御する工程を含む。
【０００７】
他の例示的な態様で、ソフトウェア・アプリケーションは、1つ又は複数のソース・アプリケーションを含み、ソース・アプリケーションは、コンピュータファイルとコンシューマー・アプリケーションを生成し、コンシューマー・アプリケーションは、ユーザコンピュータにあるコンピュータファイルのオープンを要求する。
【０００８】
他の例示的な態様で、ソース・アプリケーションによって生成されるコンピュータファイルは、プロセス、実行ファイル、スクリプトファイル、及びダイナミックライブラリの1つを含む。
【０００９】
他の例示的な態様で、本方法は、ソース・アプリケーションがコンピュータファイルを生成する時を決定する工程をさらに含み、それは、
ファイルシステムフィルターのドライバを用いる手段、
ユーザコンピュータでオペレーティングシステム（OS）のアプリケーションプログラミングインターフェース（API）のコールを傍受する手段、及び、
ソース・アプリケーションによりユーザコンピュータに提供されるAPIを用いる手段、
の少なくとも1つの手段を用いることによって決定する。
【００１０】
他の例示的な態様で、ハードウェアプロセッサによって決定されるコンピュータファイルのパラメータは、コンピュータファイルの種類、コンピュータファイルのサイズ、コンピュータファイルのデジタル署名、及び、コンピュータファイルの拡張子、の少なくとも1つを含む。
【００１１】
他の例示的な態様では、
ハードウェアプロセッサによって、コンピュータファイルの1つ又は複数のパラメータを決定する工程は、
コンピュータファイルに対するウイルス対策用の解析を実行する工程を含み、コンピュータファイルのパラメータは、ウイルス対策用の解析結果を含む。
【００１２】
他の例示的な態様では、
ソフトウェア・アプリケーションの脆弱性を特定する工程と、
ソフトウェア・アプリケーションの修正された脆弱性を決定する工程と、
以前のバージョンのソフトウェア・アプリケーションでの脆弱性を決定する工程と、
以前のバージョンのソフトウェア・アプリケーションでの修正された脆弱性を決定する工程、
をさらに備える。
【００１３】
他の例示的な態様では、
本方法は、
ファイル・アクセス・ポリシー及びアプリケーション起動ポリシーの優先順位を規定する工程をさらに含む。
ソフトウェア・アプリケーションによるコンピュータファイルのオープン及びコンピュータ・リソースのアクセスを制御する工程は、ファイル・アクセス・ポリシー及びアプリケーション起動ポリシーのそれぞれの優先順位に基づいている。
【００１４】
他の例示的な態様では、コンピュータ・リソースへのアクセス権は、
ソフトウェア・アプリケーションが次の操作の1つ又は複数の操作の実行を禁止する工程を含み、その操作は、
コンピュータファイルシステムに対する低いレベルでのアクセスを実行する操作、
ディスクに対する低いレベルでのアクセスを実行する操作、
コンピュータでドライバを起動する操作、
コンピュータのレジストリを変更する操作、
コンピュータのメモリに直接アクセスする操作、
プロセス記述子を取得する操作、
ブラウザのAPIを使用する操作、
“%SystemRoot%”及び“%ProgramFiles%”ディレクトリ（全サブディレクトリを含む）にあり、拡張子が、“.exe“及び”.dll“であるファイルを変更する操作、
コンピュータのStartupディレクトリにあるファイルを生成及び変更する操作、
自動実行キーを生成及び変更する操作、
環境変数を含むアドレスを使用してファイルのリソースにアクセスする操作、
及び、コンピュータのユーザ・レジストリのリソースにアクセスする操作、
である。
【００１５】
他の例示的な態様では、本方法は、
次の1つまたは複数の手段に基づいて、ソフトウェア・アプリケーションが信頼のないファイル起源であるかどうかについて、ハードウェアプロセッサによって決定される工程と、
ソフトウェア・アプリケーションが信頼のないファイル起源であるかどうかという決定に基づいて、ハードウェアプロセッサにより、ソフトウェア・アプリケーションがユーザコンピュータでコンピュータファイルをオープン及びコンピュータ・リソースへアクセスする制御を行う工程をさらに含み、
その手段は、
信頼のないファイルに関する既知のソース・アプリケーションのデータベース内を検索する手段、
脆弱なモジュール又は信頼のないファイルをロードすることに対するソース・アプリケーションの振る舞いを解析する手段、及び、ソフトウェア・アプリケーションのメタデータを解析する手段、
である。
【００１６】
他の態様では、ユーザコンピュータにおいて、ソフトウェア・アプリケーションによるコンピュータファイルのオープンを制御する例示的なシステムであって、
システムは、
ユーザコンピュータでコンピュータファイルをオープンするという、ソフトウェア・アプリケーションから要求を検出し、
コンピュータファイルの1つまたは複数のパラメータを決定し、
コンピュータファイルのパラメータに基づいて、要求されたコンピュータファイルに関連するファイル・アクセス・ポリシーを決定し、
ファイル・アクセス・ポリシーは、要求されたコンピュータファイルが動作している場合、ユーザコンピュータのリソースに対するソフトウェア・アプリケーションのアクセス権を少なくとも規定し、
ソフトウェア・アプリケーションの脆弱性を特定し、
決定された脆弱性に少なくとも基づいて、ソフトウェア・アプリケーションに対するアプリケーション起動ポリシーを決定し、
アプリケーション起動ポリシーは、ファイルのオープンを許可又は禁止するかどうかについて、少なくとも規定し、
オープンされたファイルの動作中、ファイル・アクセス・ポリシー及びアプリケーション起動ポリシーに少なくとも基づいて、ユーザコンピュータでのソフトウェア・アプリケーションによるコンピュータファイルのオープン及びコンピュータ・リソースへアクセスを制御するように構成されるハードウェアプロセッサを備える。
【００１７】
他の態様では、ユーザコンピュータにおいて、ソフトウェア・アプリケーションによるコンピュータファイルのオープンを制御するコンピュータ実行命令を備える例示的な非一時的コンピュータ可読媒体は、次の命令を含む。
ユーザコンピュータにおいてコンピュータファイルをオープンするという、ソフトウェア・アプリケーションからの要求を検出する命令と、
コンピュータファイルの1つ又は複数のパラメータを決定する命令と、
コンピュータファイルのパラメータに基づいて、要求されたコンピュータファイルに関連するファイル・アクセス・ポリシーを決定する命令と、
要求されたコンピュータファイルの動作中、ファイル・アクセス・ポリシーは、ユーザコンピュータのリソースに対するソフトウェア・アプリケーションのアクセス権を少なくとも規定し、
ソフトウェア・アプリケーションの脆弱性を特定する命令と、
少なくとも決定された脆弱性に基づいて、ソフトウェア・アプリケーションに対するアプリケーション起動ポリシーを決定する命令と、
アプリケーション起動ポリシーは、ファイルのオープンを許可又は禁止するかどうかを、少なくとも規定し、
オープンされたファイルの動作中、ファイル・アクセス・ポリシー及びアプリケーション起動ポリシーに少なくとも基づいて、ユーザコンピュータでのソフトウェア・アプリケーションによるコンピュータファイルのオープン及びコンピュータ・リソースへのアクセスを制御する命令を含む。
【００１８】
例示的態様における上記の簡単な概要は、本開示の基本的な理解を提供するのに役立つ。本概要は、すべての企図される態様の広範な概観ではなく、すべての態様の主要または重大な要素を特定することも意図されておらず、本開示における、任意又は全ての態様の範囲を線引きもしないということが意図される。その唯一の目的は、以下の開示のより詳細な説明の前置きとして簡略化された形式で1または複数の態様を提示することである。前述の達成のために、本開示の1つまたは複数の態様について、説明され、特に特許請求の範囲に示してある特徴を含む。
【図面の簡単な説明】
【００１９】
添付図面は、詳細な説明と共に、本明細書に組み込まれ、その一部を構成し、本開示における1つまたは複数の実施態様を示しており、それらの原理および実装を説明するのに役立つ。
【図１】図1は、脆弱なアプリケーションによりファイルオープンの制御をするための例示的なシステムの概略図を示す。
【図２】図2は、脆弱なアプリケーションによりファイルオープンの制御をするための例示的な方法のフローチャートを示す。
【図３】図3は、開示されたシステムおよび方法を実装することができる汎用コンピュータシステムの一例を示す図である。
【発明を実施するための形態】
【００２０】
例示的な態様は、脆弱なソフトウェア・アプリケーションによってコンピュータファイルのオープンを制御するために、システム、方法、及びコンピュータプログラム製品に関連して本明細書に開示される。当業者は、以下の説明は単なる例示であり、決して限定であることを意図するものではないことを理解するであろう。他の態様は、本開示の利益を有する当業者にとって、容易に示唆となりえる。参照は、添付の図面に示されるように、現在の例示の態様の実装について詳細に説明するものである。同じ参照指標は、同一または同様の項目を参照するため、図面及び以下の説明の全体を通じて、可能な限り使用される。
【００２１】
図1は、脆弱なソフトウェア・アプリケーションにより生成されたコンピュータファイルをオープンする制御を行うためのシステム100を示している。“アプリケーション”という用語は、１つ又は複数のバージョンにおけるコンピュータプログラム（マイクロソフトワード、インターネットエクスプローラー等）を示す。“脆弱なアプリケーション”という用語は、脆弱性を持っている、又は、持っていたことが知られているアプリケーションを示す。“脆弱性”という用語は、ソフトウェアコード又はロジックにおける任意の誤差、弱点又は見落としを含むが、それに限定されない。それは、ソフトウェアを実行しているコンピュータシステム又はネットワークへのアクセス権を得るために悪人によって悪用されることができる。また、信頼のないファイル又は他の不要なオブジェクト（例えば、悪意のあるソフトウェアのような）におけるコンピュータへの配信に用いられることができるアプリケーションは、“脆弱なアプリケーション”（例えば、ウェブブラウザ、IMクライアント等）と考えることができる。一実施態様では、コンピュータが信頼のないファイルを露呈できる手段を用いることにより、脆弱なアプリケーションのリストは、ウイルス対策のアプリケーション開発者の側に予め形成されていてもよく、且つ、ユーザコンピュータ・アプリケーション・データベース106に格納されてもよい。信頼のないファイルは、潜在的にコンピュータシステムに害を引き起こす可能性があるファイル（悪意のある又は脆弱なファイル等）であることを含むが、それに限定されない。
【００２２】
一実施態様では、システム100は監視モジュール103を含み、それは、ファイル102がソース・アプリケーション101により作成された時、又は、コンシューマー・アプリケーション101aにより開くことを試みられた時を特定するように構成される。監視モジュール103は、また、ファイル102のパラメータを決定するように構成される。システム100は、さらに解析モジュール104を含み、それは、ソース・アプリケーション101及び/又はコンシューマー・アプリケーション101aにおけるセキュリティ脆弱性を特定するように、及び、ソース・アプリケーション101及び/又はコンシューマー・アプリケーション101aが、任意の信頼のないファイルソースに関連付けられている否かを特定するように構成される。これを達成するために、一実施態様では、解析モジュール104は、既知の脆弱なアプリケーションとその脆弱性におけるリストと、信頼のないファイル起源であることが知られているアプリケーションのリストとを含むアプリケーションデータベース106を使用してもよい。他の例示的態様において、解析モジュール104は、例えば、脆弱なモジュール又は信頼のないオブジェクトのソース・アプリケーションがロードすることに対して、ソース・アプリケーション101aの振る舞いを解析することができる。システム100は、ポリシー決定モジュール105と制御モジュール107を含む。ポリシー決定モジュール105は、ファイル102用のファイル・オープン・ポリシーを決定するように構成され、及び、制御モジュール107は、アプリケーション101及び/又は101aによってファイル102のオープンを妨げるように構成される。
【００２３】
一実施態様では、監視モジュール103は、ファイル102のパラメータを決定するように構成され、例えば、ソース・アプリケーション101により生成された時、又は、コンシューマー・アプリケーション101aによりオープンされた時に、パラメータを決定するように構成される。ファイル102のパラメータは、ファイルの種類（例えば、テキスト、画像、PDFファイル、マクロ、実行可能ファイル、等）、ファイルサイズ、電子デジタル署名（EDS）の存在、EDSの認証機関の名前、ファイル起源（例えば、ソースサーバのアドレス）、信頼のないファイルのリスト（データベース106に保存される）におけるファイルの有無、ファイル拡張子、及びその他を含むが、それに限定されない。
【００２４】
一実施態様では、ファイル102を開く試みをするコンシューマー・アプリケーション101аは、ソース・アプリケーション101と同じであってもよい（たとえば、Microsoft Word（登録商標）は、その後、Microsoft Wordでも開くことができるテキストファイルを作成する場合等）。他の例示態様では、コンシューマー・アプリケーションの101аは、それが、実行可能ファイル、スクリプトファイル、またはダイナミックリンクライブラリである場合には、ファイル102であってもよい。（例えば、実行可能ファイルは、インターネットブラウザの助けを借りて、ダウンロードされ、ディスクに保存され、その後、外部アプリケーションを使用せずにコンピュータで実行される）。ファイルを開くということは、ファイルが実行可能ファイルでない場合、コンシューマー・アプリケーション101aによりファイルを直接開くという場合と、ファイル102が実行可能ファイルである場合、ファイル102を実行するという場合の両方を含むと考えられる。
【００２５】
一実施態様では、解析モジュール104は、さらに、以前のバージョンのアプリケーション101における脆弱性の有無を決定するように構成することができる。解析モジュールは、脆弱性のリストを含むアプリケーションデータベース106を使用して、脆弱性の有無を決定することができる。さらに他の態様では、パッチを当てたアプリケーション101及び以前のバージョンのアプリケーション101における脆弱性の有無を決定するようにさらに構成されてもよい。さらに他の態様では、解析モジュール104は、コンシューマー・アプリケーション101aにおける脆弱性の有無を決定するように構成されてもよい。本明細書に用いられるように、パッチされた脆弱性とは、ソフトウェアの製造元により、ハッカー、マルウェア等によって悪用される可能性があるミスを修正する更新プログラム（パッチ）をリリースされ、その更新プログラムによりパッチされた脆弱性が含まれる。さらに、そのような更新は、ユーザコンピュータシステムにインストールされるべきである。更新がまだなされていない、又は、インストールされていない脆弱性は、以下、“脆弱性”という用語を用いる。
【００２６】
一実施態様では、ポリシー決定モジュール105は、監視モジュール103及び解析モジュール104によって決定される情報に基づいて、コンシューマー・アプリケーション101aのファイル102に対するファイル・オープン・ポリシーを決定するように構成される。一実施態様では、ファイル102のファイル・オープン・ポリシーは、コンシューマー・アプリケーション101aに対するファイル・アクセス・ポリシー及びアプリケーション起動ポリシーに基づいて決定される。
【００２７】
一実施態様では、ファイル・アクセス・ポリシーは、ファイル102が動作中に、ユーザコンピュータのリソースに対する、ファイル102を用いるコンシューマー・アプリケーション101aのアクセス権を規定する。
一実施態様では、アクセス権は、コンピュータ・リソースを使用する各種操作の実行において、コンシューマー・アプリケーション101aの制限（例えば、禁止または承諾）を含むことができる。
このような操作は、以下を含むが、それらに限定されない。
ファイルシステムに対する低いレベルでのアクセスの実行する操作、ハードウェアディスクに対する低いレベルでアクセスを実行する操作、ドライバを起動する操作、OSレジストリを変更する操作、コンピュータメモリに直接アクセスする操作、プロセス記述子を取得する操作、ウェブブラウザのアプリケーションプログラミングインターフェース（API）を使用する操作、
“%SystemRoot%”及び“%ProgramFiles%”ディレクトリ（全サブディレクトリを含む）にあり、拡張子が“.exe”及び“.dll”であるファイルを変更する操作、
“Startup”ディレクトリにあるファイルを生成及び変更する操作、
自動実行キーの生成及び変更する操作、
環境変数を含むアドレスへのファイルリソースにアクセスする操作、及び、ユーザ・レジストリのリソースにアクセスする操作、及び、その他の操作である。
【００２８】
一実施態様で、コンシューマー・アプリケーション101аに対するアプリケーション起動ポリシーは、コンシューマー・アプリケーション101аを起動するルール（ファイル102のオープンを許可または禁止する等）を規定する。
ソフトウェア・アプリケーションに対するアプリケーション起動ポリシーは、少なくともコンシューマー・アプリケーション101及び/又はコンシューマー・アプリケーション101aの決定された脆弱性に基づいて、特に、各々のバージョンのアプリケーションで、修正された、及び修正されてない、脆弱性の有無に基づいてもよい。
【００２９】
他の態様で、アプリケーションデータベース106は、対応するファイル・オープン・ポリシーとともにアプリケーションのリストをさらに含んでもよく、すべてのバージョンのアプリケーションに入っている脆弱性であって、パッチ前及びパッチ後の脆弱性の対応するリストを含んでもよい。
【００３０】
一実施態様で、制御モジュール107はポリシー決定モジュール105と接続され、コンシューマー・アプリケーション101aによるファイル102オープンの要求を傍受するように構成される。他の例示的態様で、制御モジュール107は、ファイル・オープン・ポリシーに基づいて、コンシューマー・アプリケーション101aによるファイル102オープンの制御をするように構成されてもよい。
【００３１】
図2は、脆弱なソフトウェア・アプリケーションによるファイルオープンの制御をする例示的な方法を示す。工程201で、監視モジュール103は、ソース・アプリケーション101によるファイル102の生成のインスタンスを検出する。
監視モジュール103は、ファイル102の生成を検出するために、以下の様々な既知の手段を用いてもよい。例えば、ファイルオープンを制御するドライバ（例：ファイルシステムフィルターのドライバ）を用いる手段、
システムAPI関数のコールを傍受する手段、
アプリケーションによって提供されるAPIを用いる手段、
又はその他の手段がある。
工程202で、解析モジュール104は、アプリケーション101における脆弱性の有無を決定する。一実施態様で、解析モジュール104は、最新及び以前のバージョンのソース・アプリケーション101における脆弱性の有無、且つ、コンシューマー・アプリケーション101aにおける脆弱性の有無をさらに決定してもよい。ソース・アプリケーション101が脆弱性を全く含まない場合、解析モジュール104は、例えば、アプリケーションデータベース106を用いて、ソース・アプリケーション101が信頼のないファイル起源であるかどうか、を決定してもよい。
【００３２】
工程203で、解析モジュール104は、生成されたファイル102の各パラメータを決定し、パラメータは、ファイル種類、ファイルサイズ、ファイルのEDS、EDSの認証機関の名前、ファイル起源、信頼のないファイルのリストにおけるファイルの有無、ファイル拡張子、その他のファイルパラメータ、及びメタデータを含んでもよいが、それに限定されない。
【００３３】
一実施態様で、工程202で決定された情報に従って、解析モジュール104は、ファイル102にウイルス対策のスキャンを実行してもよい。ファイル102に対するウイルス対策のスキャンは、例えば、パッチされてない脆弱性がソース・アプリケーション101で発見された場合に、実行されることができる。ファイルのウイルス対策スキャンは、マルウェアテストの1つ又は複数の既知の方法（署名ベース及びヒューリスティック分析、エミュレーション及びその他の方法等）を含んでもよい。さらに、ファイル102に対するウイルス対策スキャンは、信頼のないファイルのリストに対してファイルをチェックする事、及び、ウイルス対策ソフトウェアの製造元に対するユーザ間でのファイルの評判を用いる事を含んでもよい。さらに、ソース・アプリケーション101が、脆弱性を含まない場合、ファイル102のウイルス対策スキャンは、省略してもよい。ウイルス対策スキャンの結果は、ファイルパラメータとして考慮されるであろう（例えば、ファイルは、悪意のあるソフトウェアのデータベースで見つけられず、ファイルは広告プログラムなどである場合）。
【００３４】
工程204で、ポリシー決定モジュール105は、工程202および203で決定された情報に基づいて、ファイル102に対するファイル・アクセス・ポリシーを決定する。一実施態様で、ファイル・アクセス・ポリシーは、コンピュータ・リソースに対する、コンシューマー・アプリケーション101aのアクセス権を規定し、それは、以前に図1の説明で列挙されたものである。他の実施態様で、ファイル・アクセス・ポリシーは、例えば、コンシューマー・アプリケーション101aによってファイル102のオープンを許可又は禁止するか等のファイル102オープンに関するルールを規定する。
【００３５】
一実施態様で、コンシューマー・アプリケーション101aは、ファイル102を生成するソース・アプリケーション101であってもよい。同時に、ファイル102が実行可能ファイル、スクリプトファイル、またはリンクライブラリである場合、コンシューマー・アプリケーション101aがファイル102であってもよい。
【００３６】
他の態様で、コンシューマー・アプリケーション101aは、工程204で決定されたファイル・オープン・ポリシーに従って、ファイル102のオープンを実行してもよい。
【００３７】
表１は、コンシューマー・アプリケーション101aのファイル・アクセス・ポリシーの例を示す。
表１
0006482489.tif 000002
【００３８】
示されるように、表1における最初の2行は、以前のバージョンのソース・アプリケーション101と最新バージョンのソース・アプリケーション101において、脆弱性の有無に関する情報を含むものである。
ソース・アプリケーション101は、重大な脆弱性を含むこともありえ、ユーザコンピュータシステムを相当な危険にさらすことができる（例えば、パスワード又は財務情報を盗むことを目的としたマルウェアがコンピュータにインストールされる可能性がある）。それは、重大ではない脆弱性も同様であり、拡大した脆弱性による非常に制限される権限と脆弱性による局所的に悪用可能なDos攻撃を含み得る。
このような評価をするのに、センシティブではないシステムの情報開示の脆弱性（例えば、アプリケーションのインストールパスのリモート開示）を使用してもよい。さらに、修正された脆弱性についても、表1に考慮されている。ソース・アプリケーション101が、信頼のないアプリケーションのソースである場合についても、表1に考慮されている。
【００３９】
さらに、最初の2列は、ファイルのパラメータに関する情報が含まれている。表1に示す例では、パラメータの「ファイルの種類」が考慮されており、コンシューマー・アプリケーション101aが、そのファイルを開くことを許可又は拒否される。例えば、アプリケーションのMicrosoft Word（登録商標）は、マルチメディア又は実行可能ファイルとしてではなく、テキストファイルで作業することが意図されるものである。同時に、マイクロソフトWord（登録商標）は、拡張子“.doc”のファイル（スクリプトファイル等のマクロを含む）を作成することができる。この場合に、ファイルの種類としては、（ファイルオープンを）許可されることができるが、ハッカーによるマクロ使用の可能性があるので、このファイルの動作中に、アプリケーションがMicrosoft Word（登録商標）をアクセスする権限は制限される。
【００４０】
表1はまた、ファイル・オープン・ポリシーを含み、それは、ソース・アプリケーション101での脆弱性の有無とファイル102のパラメータに依存している。例示的な態様において、表1によると、最新バージョンのアプリケーションが重大な脆弱性（パッチがあてられていない）を含んでいる場合、ファイル種類が許可される種類のファイルであっても、ファイル102が実行可能ファイルか又は実行可能ではないファイルかによらず、ファイルのオープンは拒否される。他の例示では、アプリケーション101が重大ではない脆弱性を含んでいる場合、実行可能ではないファイルのオープンが許可される一方で、実行可能ファイルのオープンは拒否される。しかしながら、コンシューマー・アプリケーション101aは、コンピュータ・リソースに対するアクセス権を拒否又は制限される。
例示的な態様に従って、コンピュータ・リソースに対する制限されたアクセス権は、一部のコンピュータ・リソースへのアクセスを拒否することを含むことが意図される。例えば、コンシューマー・アプリケーション101aは、OSのレジストリの変更を制限され、一方、図1の説明で述べられている他のアクションは許可されることができる。
さらに、どちらの例においても、禁止される種類のファイル102のオープンは拒否される。
【００４１】
さらに他の例では、最新バージョンのアプリケーションで脆弱性が検出されなかった場合であって、しかし、以前のバージョンのアプリケーションで、脆弱性があり、修正アップデートが（例えば、パッチ）は既にリリースされている場合、そのアプリケーションが、実行可能でないファイルをオープンすることは、制限なく許可される。同時に、ウイルス対策チェックは、許可された種類の実行可能ファイルを実行することができる。
【００４２】
表1の最後の列に示されるように、最初のルールに従って、許可された種類の実行可能ファイル102は、ソース・アプリケーション101が信頼のないファイル起源である場合、コンピュータ・リソースへのアクセスを拒否される。
【００４３】
工程205では、制御モジュール107は、コンシューマー・アプリケーション101aによるファイル102オープンの要求を傍受する。工程206で、ポリシー決定モジュール105は、コンシューマー・アプリケーション101aのためのアプリケーション起動ポリシーを決定する。制御モジュール107は、コンシューマー・アプリケーション101aからのファイル102をオープンするという要求を傍受するために、任意の既知の手段を使用することができる。それは、ファイルシステムフィルターのドライバを用いる手段、システムAPIのコールを傍受する手段、又は、アプリケーションによって提供されるAPIを用いる手段、を含むが、それに限定されない。
【００４４】
工程207では、ポリシー決定モジュール105は、コンシューマー・アプリケーション101aにおけるファイル・アクセス・ポリシーとアプリケーション起動ポリシーに応じて、コンシューマー・アプリケーション101aに対するファイル102のファイル・オープン・ポリシーを決定する。
【００４５】
表2は、コンシューマー・アプリケーション101aによるファイル102のファイル・オープン・ポリシーの例を示す。
表 2
0006482489.tif 000003
【００４６】
一例示態様では、コンシューマー・アプリケーション101aによるファイル・オープン・ポリシーは、コンシューマー・アプリケーション101aのアプリケーション起動ポリシー及びファイル102のファイル・オープン・ポリシーの最も制限（禁止）されたものとして選択することができ、例として、表2にあるルール1に設けられている。
他の例示態様では、ファイル・オープン・ポリシーは、ファイル・アクセス・ポリシー及びアプリケーション起動ポリシー（すなわち、リソースへのアクセスを許可する）の最も制約の少ないものとして選択されることができ、例として、表2にあるルール2に設けられている。
【００４７】
他の例示態様では、表2のポリシーに含まれる制限は、様々な優先順位を有することができる。ルール3は、コンシューマー・アプリケーション101aに対する、ファイル・アクセス・ポリシー及びアプリケーション起動ポリシーにおける規定された制限の優先順位に応じて、ファイル・オープン・ポリシーを選択する例である。
例えば、優先順位1を有するファイル・アクセス・ポリシーは、OSレジストリの変更に制限を課すことができ、一方、コンシューマー・アプリケーション101aに対する、より高い優先順位2を有するアプリケーション起動ポリシーは、レジスタの変更を許可できる。結果として、コンシューマー・アプリケーション101aに対する、最終的なファイル・オープン・ポリシーは、より高い優先順位2であるポリシーが優先されるため、OSのレジストリの変更を許可するルールが含まれるだろう。さらに、コンシューマー・アプリケーション101aに対するファイル・オープン・ポリシーでの許容ルールも、自動実行キーの変更承諾と優先順位2を有する承諾を含むであろう。それは、ファイル・アクセス・ポリシーから継承されたものであり、ファイルリソースへの低いレベルでのアクセス承諾と同様に、このような制限は、コンシューマー・アプリケーション101aのアプリケーション起動ポリシーにだけ見受けられる。結果として生じたファイル・オープン・ポリシーは、低レベルディスクアクセスの禁止が含まれ、それは、コンシューマー・アプリケーション101aに対する、アプリケーション起動ポリシーでの同様の許容ルールよりも高い優先順位であるディスク・アクセス・ポリシーから継承されたものである。
低い優先度にかかわらず、ダイレクト・メモリ・アクセスの禁止は、ファイル・アクセス・ポリシーで見られ、したがって、ファイル・オープン・ポリシーによって継承される。
【００４８】
図3は、開示されたシステム及び方法を実装できる汎用コンピュータシステム（パーソナルコンピュータ又はサーバであってもよい）の一例を示す図である。コンピュータシステム20は、中央処理装置21、システムメモリ22及び、システムバス23を含み、それは、様々なシステムコンポーネント（中央処理装置21に関連するメモリを含む）を接続される。システムバス23は、従来技術から知られている任意のバス構造のように実現され、順に、バスメモリ、又はバスメモリコントローラー、周辺バス及びローカルバスを含み、それは、任意の他のバスアーキテクチャと相互作用できる。システムメモリは、読み出し専用メモリ（ROM）24およびランダムアクセスメモリ（RAM）25を含む。基本入力/出力システム（BIOS）26は、ROM24を使用してオペレーティングシステムをロードする時にあるようなもの等の、パーソナルコンピュータ20の要素間の情報の転送を保証する、基本的な手順を含む。
【００４９】
パーソナルコンピュータ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にコマンドと情報を入力することが可能である。他の入力デバイス（図示せず）は、マイクロフォン、ジョイスティック、ゲームコントローラー、スキャナー、等を用いることができる。
そのような入力デバイスは、通常コンピュータシステム20に、シリアルポート46を介して、接続され、それは、順に、システムバスに接続されるが、それらは、他の方法で、例えば、パラレルポート、ゲームポート及びユニバーサルシリアルバス(USB)の助けを借りて、接続される。モニター47又は他の種類のディスプレイデバイスも、ビデオアダプター48等のインターフェースを介してシステムバス23に接続される。モニター47に加えて、パーソナルコンピュータは、ラウドスピーカー、プリンタ等他の周辺外部デバイス（図示せず）に備えてもよい。
【００５２】
パーソナルコンピュータ20は、1つ又は複数のリモートコンピュータ49とのネットワーク接続を用いて、ネットワーク環境で操作できる。リモートコンピュータ（またはコンピュータ）49も、図3に示すように、前述の要素（パーソナルコンピュータ20の特質を説明したもの）の大部分又は全てを有するパーソナルコンピュータ又はサーバである。他のデバイスも、ルータ、ネットワーク局、ピアデバイス又は他のネットワークノード等、コンピュータネットワークに存在してもよい。
【００５３】
ネットワーク接続は、有線及び/又は無線ネットワーク等のローカル・エリア・コンピュータ・ネットワーク（LAN）50、及びワイドエリア・コンピュータ・ネットワーク（WAN）を形成することができる。そのようなネットワークは、企業コンピュータネットワーク又は社内ネットワークで使用され、それらは、概してインターネットアクセスを有している。LAN又はWANネットワークで、パーソナルコンピュータ20は、ネットワークアダプター又はネットワークインターフェース51を介して、ローカル・エリア・ネットワーク50に接続される。ネットワークが用いられる場合、パーソナルコンピュータ20は、インターネット等のワイド・エリア・ネットワークでのコミュニケーションを提供するために、モデム54又は他のモジュールを採用する。モデム54は、内部的又は外部的デバイスであり、シリアルポート46によって、システムバス23と接続される。ネットワーク接続は、一例であり、ネットワークの正確な構成を示す必要はないことを留意されたい。すなわち、実際には、Bluetooth（登録商標）などの技術的な通信モジュールによる、あるコンピュータと他のコンピュータとの接続を確立する他の方法がある。
【００５４】
様々な態様において、本明細書で説明するシステム及び方法は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせで実現されてもよい。ソフトウェアで実装される場合、本方法は、非一時的なコンピュータ可読媒体の1つ又は複数の命令又はコードとして格納されてもよい。コンピュータ可読媒体は、データ記憶装置を含む。例として、限定するものではないが、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROM、フラッシュメモリ、又は、電気的、磁気的、又は他の種類の光学記憶媒体を備えてもよい。それは、命令又はデータ構造の形式で、所望のプログラムコードを搬送又は格納されてもよく、且つ、汎用コンピュータのプロセッサにアクセスできる。
【００５５】
様々な側面で、モジュールの観点から、システム及び方法は本開示に記載される。本明細書で使用される用語“モジュール”は、特定用途向け集積回路（ASIC）又はフィールド・プログラマブル・ゲート・アレイ（FPGA）（例えば、ハードウェアとソフトウェアの組み合わせ）などによって、ハードウェアを用いて実装される、実世界のデバイス、構成要素、又は構成要素の配置を意味している。例えば、マイクロプロセッサシステム及びジュールの機能を実装するための命令セットによって、それは、（実行時）マイクロプロセッサシステムを専用機に変換する。モジュールも、これらの組み合わせとして実装されてもよく、ハードウェア単体で容易である特定の機能で、及び、ハードウェアとソフトウェアの組み合わせによって容易である他の機能で実装されてもよい。ある実施態様で、モジュールの少なくとも一部、及び、場合によっては、全てが、汎用コンピュータ（上記、図3により詳細に説明したもの等）のプロセッサで実行することができる。したがって、各モジュールは、様々な適切である構成で実現することができ、本明細書において例示される任意の特定の実装に限定されるものではない。
【００５６】
明瞭にするために、本態様における繰り返される機能の全てが、本明細書に開示されるわけではない。本開示の任意で実際の実装における開発で、多数の実装固有の決定が、開発者の特定の目標を達成するために、成されなければならないことが理解されるであろう。これらの具体的な目標は、実装及び開発者ごとに変化するであろう。そのような開発努力は複雑で時間がかかるかもしれないことが、それにもかかわらず、本開示の利益を有する当業者にとっては、エンジニアにとっては日常の仕事であることが、理解されるであろう。
【００５７】
さらに、本明細書で使用される表現又は用語は、説明の目的のためであり、制限を目的としていないことを理解すべきである。本明細書の用語又は表現は、関連技術での熟練の知識と組み合わせて、本明細書に提示される教示及び指針に照らして当業者によって解釈されるべきである。さらに、明示的記載がない限り、本明細書又は特許請求の範囲における任意の用語に対して、一般的でない又は特別な意味を帰することは意図されていない。
【００５８】
本明細書に開示される様々な態様は、例示により本明細書に言及される既知のモジュールに、現在及び将来の既知の均等物を包含する。さらに、態様および用途を図示し、且つ、説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの改変が可能であることは、この開示の利益を有する当業者には明らかであろう。
【図１】
0006482489.tif 000004
【図２】
0006482489.tif 000005
【図３】
0006482489.tif 000006