(57)【特許請求の範囲】
【請求項１】
承認済みファイルのデータベースを自動的に構築及び更新するための、コンピュータによって実装される方法であって、
プロキシサーバにより、少なくとも一つのクライアント・コンピュータデバイスによる、少なくとも一つのウェブサーバから少なくとも一つのファイルをダウンロードする試みを識別するステップであって、前記ウェブサーバは、前記クライアント・コンピュータデバイスのユーザが少なくとも一つのタスクを完了することを要求することを特徴とする、ステップと、
前記クライアント・コンピュータデバイスの前記ユーザが前記ファイルをダウンロードするために要求される前記タスクを完了した後に、前記ファイルが前記ウェブサーバから前記クライアント・コンピュータデバイスに対して送信される際に前記プロキシサーバにて前記ファイルをインターセプトするステップと、
前記クライアント・コンピュータデバイスによる前記ファイルへのアクセスを許可する前に、
前記プロキシサーバにおいて、前記ファイルの発信元のＵＲＬからソースドメインを抽出することによって、前記ファイルに関連するソースドメインを識別するステップと、
前記プロキシサーバにおいて、信頼性のあるソースドメインを識別する信頼されたドメインのデータベースを識別するステップと、
前記プロキシサーバにより、抽出された前記ソースドメインを用いて、前記信頼されたドメインのデータベースを照会することによって、前記ファイルに関連するソースドメインが前記信頼されたドメインのデータベース内に存在するか決定するステップと、
前記信頼されたドメインのデータベース内に前記ファイルに関連する前記ソースドメインが存在すると決定されたことに応じて、前記プロキシサーバが、
前記ファイルのためのハッシュ値を生成するステップ、及び前記ファイルのための前記ハッシュ値を前記承認済みファイルのデータベースに対して追加するステップを経て、前記承認済みファイルのデータベースに前記ファイルを追加するステップと、
前記ファイルに関連する前記ソースドメインが前記信頼されたドメインのデータベース内に存在すると決定した後に、前記プロキシサーバから前記クライアント・コンピュータデバイスに対して前記ファイルを転送することによって、前記クライアント・コンピュータデバイスが前記ファイルにアクセスできるようにする、ステップと、
により合法的なファイルを識別する承認済みファイルのデータベースを自動的に構築することを含むことを特徴とする、方法。
【請求項２】
前記ファイルをインターセプトすることは、複数のファイルをインターセプトすることを含み、更に、そのインターセプトされたファイルの全てについてのレポートを作成することを含み、該レポートは、
前記複数のインターセプトされたファイルのそれぞれのファイル名と、
前記複数のインターセプトされたファイルのそれぞれに関連するカテゴリと、
前記複数のインターセプトされたファイルのそれぞれのためのソフトウェア提供者と、
前記各ファイルがインターセプトされた回数を詳述する、ポピュラリティーの情報と、
前記複数のインターセプトされたファイルの、それぞれのソースドメインの
少なくとも１つを含む、請求項１に記載の方法。
【請求項３】
前記レポートにアクセスを許可すること、
前記レポートを送信すること
の少なくとも１つを更に含む、請求項２に記載の方法。
【請求項４】
複数のファイルについてのそれぞれのハッシュ値を含む、合法的なファイルを識別する更なる実体によって維持される、更なる承認済みファイルのデータベースを識別し、
前記承認済みファイルのデータベースに含まれるハッシュ値を、前記更なる承認済みファイルのデータベースに含まれるハッシュ値と統合することによって、統合された承認済みファイルのデータベースを作成すること
を更に含む、請求項１に記載の方法。
【請求項５】
前記承認済みファイルのデータベースにアクセスする要求を受信し、
前記承認済みファイルのデータベースにアクセスする要求を認証し、
前記承認済みファイルのデータベースへのアクセスを許可すること
を更に含む、請求項１に記載の方法。
【請求項６】
前記第１のファイルについての前記ハッシュ値が、前記ファイル内容の代表値を含む、請求項１に記載の方法。
【請求項７】
前記ファイルについての前記ハッシュ値を作成することは、安全なハッシュ・アルゴリズムを用いて、前記ファイルについての安全なハッシュ値を作成することを含む、請求項１に記載の方法。
【請求項８】
前記ファイルについての前記ハッシュ値を前記承認済みファイルのデータベースに対して追加するステップは、
前記ファイルについての前記ハッシュ値を、前記承認済みファイルのデータベースに格納すること、
前記ファイルについての前記ハッシュ値を、前記承認済みファイルのデータベースを維持する責任がある主体に対して送信すること、
の少なくとも１つを実施する、請求項１に記載の方法。
【請求項９】
前記ファイルの発信元の前記ＵＲＬから前記ソースドメインを抽出するステップは、
前記クライアント・コンピュータデバイスから送信された要求から、ドメイン情報を抽出すること、
逆引きドメイン検索動作を実行すること、
信頼性のあるサードパーティーサーバに、ソースドメイン情報を要求すること、
ソースドメイン情報を検索するために、前記ファイルを解析すること、
の少なくとも１つを含む、請求項１に記載の方法。
【請求項１０】
前記承認済みファイルのデータベースの、ローカルコピーを作成すること、
前記ローカルコピーを、周期的に前記承認済みファイルのデータベースに同期させること
を更に含む請求項１に記載の方法。
【請求項１１】
前記ファイルについての前記ハッシュ値を前記承認済みファイルのデータベースに追加することに先立って、前記ファイルについての既に作成されているハッシュ値が、前記承認済みファイルのデータベースの範囲内に存在するか否かを決定することを更に含む、請求項１に記載の方法。
【請求項１２】
請求項１に記載の方法であって、
前記ファイルの合法性を検査するための、前記ファイルについての前記ハッシュ値を含む要求を、コンピュータデバイスから受信し、
前記ファイルについての前記ハッシュ値が前記承認済みファイルのデータベース内に存在するか否か決定し、
前記ファイルについての前記ハッシュ値が前記承認済みファイルのデータベース内に存在することが決定されたことに応じて、前記コンピュータデバイスに、前記ファイルが合法的である旨を示唆する応答を送信する、
ことを更に含む請求項１に記載の方法。
【請求項１３】
付加的なファイルの合法性を確認するために、コンピュータデバイスから前記付加的なファイルについてのハッシュ値を含む要求を受信すること、
前記付加的なファイルについての前記ハッシュ値が前記承認済みファイル・データベースの範囲内に存在しないかを決定すること、
前記付加的なファイルについての前記ハッシュ値が前記承認済みファイル・データベースの範囲内に存在しないと決定されたことに応じて、前記コンピュータ・デバイスに対して前記ファイルが違法である旨を示唆する応答を送信することを更に含む、請求項１に記載の方法。
【請求項１４】
少なくとも一つの付加的なファイルをインターセプトし、
前記付加的なファイルについてのハッシュ値を作成し、
前記承認済みファイルのデータベースにアクセスし、
前記付加的なファイルについての前記ハッシュ値が前記承認済みファイルのデータベースの範囲内に合法的なファイルとして存在するか決定し、
前記付加的なファイルについての前記ハッシュ値が前記承認済みのファイルのデータベースの範囲内で存在すると決定されたことに応じて、前記付加的なファイルへのアクセスを許諾する、
ことを更に含む請求項１に記載の方法。
【請求項１５】
少なくとも一つの付加的なファイルをインターセプトし、
前記付加的なファイルについてのハッシュ値を作成し、
前記承認済みファイルのデータベースにアクセスし、
前記付加的なファイルについての前記ハッシュ値が前記承認済みファイルのデータベースの範囲内に合法的なファイルとして存在しないか決定し、
前記付加的なファイルについての前記ハッシュ値が前記承認済みのファイルのデータベースの範囲内に存在しないと決定されたことに応じて、前記付加的なファイルへのアクセスを拒否することを更に含む、請求項１に記載の方法。
【請求項１６】
前記付加的なファイルへのアクセスを拒否することは、
前記ファイルをブロックし、
前記ファイルを隔離し、
前記ファイルを削除すること
の少なくとも１つを含む、請求項１５に記載の方法。
【請求項１７】
前記承認済みファイルのデータベースにアクセスすることは、前記承認済みファイルのデータベースにアクセスするために必要な認証プロセスを完了することを含む、請求項１４に記載の方法。
【請求項１８】
前記承認済みファイルのデータベースにアクセスすることは、既にインターセプトされたファイルのためのハッシュ値を含むローカルハッシュ値キャッシュを識別することを含み、
前記付加的なファイルのためのハッシュ値が前記ローカルハッシュ値キャッシュ内に存在しないか決定し、
前記付加的なファイルについての前記ハッシュ値が前記ローカルハッシュ値キャッシュ内に存在しないと決定されたことに応じて、前記承認済みファイルのデータベースにアクセスする、
ことを更に含む、請求項１４に記載の方法。
【請求項１９】
信頼されたドメインのデータベースを識別するステップは、
少なくとも一つのドメインからきた複数のファイルを評価し、
前記ドメインからきた前記複数のファイルが合法的か決定し、
前記ドメインから受け取った前記複数のファイルが合法的と決定されたことに応じて、前記ドメインを前記信頼されたドメインのデータベースに信頼されたドメインとして追加する、
ことにより、信頼されたドメインのデータベースを作成すること、
を含む請求項１に記載の方法。
【請求項２０】
前記ドメインからきた前記複数のファイルを評価することは、前記ドメインから来た前記複数のファイルを評価することは、期間にわたって、前記ドメインからきた前記複数のファイルを評価することを含み、
前記ドメインから受信した、前記複数のファイルが合法的かについて決定することは、前記期間にわたって前記ドメインから受信した前記複数のファイルが、合法的かについて決定することを含む、
請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
既存のアンチウィルス技術は、ウィルスやその他のマルウェアのような、悪意のあるファイルおよびプログラムからコンピューティングリソースを保護することにおいて、益々無力化しており、その代替となる技術が模索されている。１つの有望な開発領域は、ファイルの「ホワイトリスティング」に関連し、これは、定義済みのアイテムのリストに含まれるアプリケーション、ファイル又はプログラムだけが、コンピュータシステムによってアクセス又は実行でき、その他の全てのファイルまたはプログラムはコンピュータシステム上で動作できないというシステムである。
【０００２】
従来のホワイトリストシステムは、手動で作成されたホワイトリスト又はウェブ・スパイダリング（しばしばウェブクローリングと称される）技術に依存して、合法的な（または合法的な可能性のある）ファイルを識別する。しかし、新規なアプリケーションが、作成及び（しばしば、インターネット経由で）発表される速度においては、包括的な合法的ファイルのホワイトリストを手動で作成することは、現実的には不可能である。
【０００３】
さらに、従来のウェブ・スパイダリング技術は、その様々な限界のために、概して、全体の１０％しかないと推定される、一部の周知の合法的なファイルを識別するに過ぎない。例えば、ウェブ・スパイダリング技術では、ユーザがオンライン書式に記入し、および／または、電子処理を経てそのファイルを購入した後にはじめてアクセス可能となるファイルに、事前にアクセスして分析することが困難である。また、従来のウェブ・スパイダリング技術は、不正なファイルを合法的なファイルとして誤って識別するか、または、その逆に識別することもあり、ホワイトリストの実行可能性を更に制限する傾向がある。
【発明の開示】
【０００４】
少なくとも１つの実施例によれば、承認済みファイルのデータベースを作成又は更新するための、コンピュータによって実装される方法は、第１のファイルをインターセプトし、その第１のファイルに関連付けられたソースドメインを識別し、信頼されたドメインのデータベースを識別し、第１のファイルに関するソースドメインのためのデータベース記録が、信頼されたドメインのデータベース内に存在するか否か判定し、第１のファイルに関連付けられたソースドメインのためのデータベース記録が、信頼されたドメインのデータベース内に存在する場合、その第１のファイルについてのハッシュ値を作成し、第１のファイルのハッシュ値を、第１の承認済みファイルのデータベースに格納することを含む。第１のファイルをインターセプトすることは、自動的な要求又はクライアント端末からの要求に応答して、第１ドメインから送信された第１のファイルをインターセプトすることを含む。
【０００５】
第１のファイルのハッシュ値は、第１のファイル内容の代表値を含むこともできる。加えて、第１のファイルのハッシュ値を作成することは、安全なハッシュ・アルゴリズムを使用して、第１のファイルの安全なハッシュ値を作成することを含むこともできる。第１のファイルは、実行可能ファイル、アーカイブファイルおよびインストールパッケージのうちの、少なくとも１つを含むことができる。
【０００６】
更にこの方法は、インターセプトされた全てのファイルのレポートを作成でき、このレポートは、複数のインターセプトされたファイルのそれぞれについてのファイル名、機能のカテゴリ、ソフトウェア提供者、それぞれのファイルがインターセプトされた回数の詳細情報、又は、それぞれのファイルのソースドメインなどの情報を含む。更に、この方法は、レポートへのアクセスを許可するか、又は、レポートを送信することを含むことができる。
【０００７】
ある実施形態では、この方法は、複数のファイルについての複数のハッシュ値を含む、第２の承認済みファイル・データベースを識別して、第１の承認済みファイル・データベースに格納されるハッシュ値を、第２の承認済みファイル・データベースに格納されるハッシュ値と統合して、統合した承認済みファイル・データベースを構築することを含むことができる。加えて、方法は、第１の承認済みファイル・データベースにアクセスする要求を受け取り、第１の承認済みファイル・データベースにアクセスする要求を認証し、第１の承認済みファイル・データベースへのアクセスを許可することを含むことができる。
【０００８】
第１のファイルに関連付けられたソースドメインを識別することは、クライアント・コンピュータデバイスから発行されたＨＴＴＰ要求からドメイン情報を抽出して第１のファイルを検索し、第１のファイルをホストするサーバのＩＰアドレスを用いて逆引きドメイン検索動作を実行し、信頼性のあるサードパーティのサーバからのソースドメイン情報を要求し、または、第１のファイルを構文解析して、埋め込みのソースドメイン／提供者の情報を検索することを含むことができる。方法は、また、承認済みファイル・データベースのローカルコピーを作成して、定期的にそのローカルコピーと承認済みファイル・データベースを同期させることを更に含むことができる。加えて、方法は、第１のファイルのハッシュ値を格納する前に、第１のファイルについて以前に作成されたハッシュ値が、承認済みファイル・データベースの範囲内であるか否か判定することを更に含むことができる。
【０００９】
ある実施形態では、ファイルの合法性を検査する方法は、第１のコンピュータデバイスから第１の要求を受信して第１のファイルの合法性を検証し、第１のファイルについてのハッシュ値のデータベース記録が承認済みファイル・データベースの範囲内に存在するか判定し、第１のファイルについてのハッシュ値のデータベース記録が承認済みファイル・データベースの範囲内に存在する場合に、第１コンピュータデバイスに第１のファイルが合法的であることを示唆する応答を送信することを含んでも良い。また、方法は、第１のファイルについてのハッシュ値のデータベース記録が承認済みファイル・データベースの範囲内に存在しない場合に、第１のコンピュータデバイスに、第１のファイルが合法的でないことを示唆する応答を送信することを含んでも良い。
【００１０】
少なくとも１つの実施例において、ファイルの合法性を検査する方法は、第１のファイルをインターセプトし、第１のファイルについてのハッシュ値を作成し、承認済みファイルのデータベースにアクセスし、第１のファイルについてのハッシュ値のデータベース記録が、承認済みファイルのデータベースの範囲内に存在するかを判定し、そして、第１のファイルについてのハッシュ値のデータベース記録が承認済みファイルのデータベースの範囲内で存在する場合に第１のファイルへのアクセスを許可することを含んでも良い。方法は、第１のファイルについてのハッシュ値のためのデータベース記録が承認済みファイル・データベースの範囲内で存在しない場合、第１のファイルへのアクセスを拒否することも含むことができる。ある実施形態では、第１のファイルにアクセスを拒否することは、第１のファイルをブロックするか、ユーザにファイルへのアクセスを許可すべきか否かの決定を促すか、第１のファイルを隔離するか、または、第１のファイルを削除することを含むこともできる。加えて、承認済みファイル・データベースにアクセスすることは、承認済みファイル・データベースへのアクセス要求を認証することを含んでもよい。
【００１１】
ある実施形態では、方法は、ハッシュ値を承認済みファイル・データベースに格納する前に、ハッシュ値のキャッシュを作成し、そのハッシュ値のキャッシュ内から少なくとも１つのユニークなハッシュ値を識別し、そして、第１のファイルについてのユニークなハッシュ値のデータベース記録が、承認済みファイル・データベースの範囲内で存在するかどうか決定する。
【００１２】
少なくとも１つの実施例において、信頼されたドメインのデータベースを構築または更新する方法は、第１のソースドメインからきた複数のファイルを評価し、第１のソースドメイン由来の複数のファイルが合法的か否か判定し、評価済みの第１のソースドメインからの複数のファイルが合法的な場合は、第１のソースドメインのためのデータベースレコードを構築し、そして、その第１ソースドメインのためのデータベースレコードを、信頼されたドメインのデータベースに格納することを含むことができる。ある実施形態では、第１のソースドメインからの複数のファイルを評価することは、最初の一定時間にわたって、第１のソースドメインからの複数のファイルを評価することを含むことができる。同様に、評価済みの、第１のソースドメインからきた複数のファイルが合法的か否か決定することは、評価済みの、最初の一定時間にわたって第１のソースドメインからきた複数のファイルが合法的か否か決定することを含んでも良い。
【００１３】
上述の実施形態のいずれかに従う特性が、本明細書に記載の一般原理に従って、互いに組み合わせて用いられても良い。これら及び他の、実施形態、特徴および効果は、添付の図面及び請求項と共に、以下の詳細な説明を参照することでより完全に理解されるであろう。
【発明を実施するための最良の形態】
【００１４】
添付の図面は、多くの例示的実施形態を示し、また、明細書の一部を成す。以下の説明と共に、これらの図面は、本発明の種々の原理を示して、説明する。
【００１５】
図１Ａは、少なくとも１つの実施例に従う、承認済みファイルおよび信頼されたドメインのデータベースを構築または更新し、および／または、ファイルの合法性を検査するための例示的システム１００のブロック図である。この図に示したように、少なくとも１つの実施例で、例示的システム１００は、信頼されたドメインのデータベース１０２、承認済みファイルのデータベース１０４、およびファイル承認モジュール１０６を含むことができる。図２〜９と関連して、以下に更に詳述するように、システム１００は、単独若しくは他の要素と組み合わせて、本明細書に示す１つ又は複数の例示的実施形態を、達成し、および／または、達成のための手段となる。
【００１６】
信頼されたドメインのデータベース１０２は、一般に、あらゆるタイプまたは形式の、１つ又は複数のデータベースレコードを格納できる、コンピュータデバイス又はデータベースに相当する。少なくとも１つの実施例において、以下に詳述するように、信頼されたドメインのデータベース１０２は、複数の信頼されたドメインのそれぞれについてのデータベースレコードを含むことができる。信頼されたドメインのデータベース１０２の例としては、データベース、サーバ、ローカル記憶装置、リモート記憶装置または他のあらゆる適切なコンピュータが挙げられるが、必ずしもこれらに限定されるものではない。
【００１７】
承認済みファイルのデータベース１０４は、一般に、データを格納できる、あらゆるタイプ若しくは形式のコンピュータデバイス若しくはデータベースに相当する。少なくとも１つの実施例において、以下に詳述するように、承認済みファイルのデータベース１０４は、１つ以上のファイルに関するデータまたはデータベースレコードを含むことができる。承認済みファイルのデータベース１０４の例としては、サーバ、データベース、リモート記憶装置または他のあらゆる適切なコンピュータデバイスも挙げられるが、必ずしもこれに限定されるものではない。
【００１８】
ファイル承認モジュール１０６は、一般に、あらゆるタイプまたは形式のモジュール又はデバイスであって、単独または他の構成要素と組み合わせて、ファイルの合法性を検査することができるモジュール又はデバイスに相当する。ある実施形態では、ファイル承認モジュール１０６は、コンピュータデバイスによって実行されるときに、コンピュータデバイスにファイルの合法性を検査するために１つ又は複数のタスクを実行させることができる、ソフトウェア・アプリケーションまたはプログラムに相当する。例えば、ファイル承認モジュール１０６は、プロキシサーバ、ファイアウォール、エンタープライズサーバ、クライアント端末、ローカル・インターネット・サービスプロバイダ・サーバ、バックボーンネットワーク・サーバまたは他のあらゆる適切なコンピュータで動くように構成されている、ソフトウェア・モジュールに相当し得る。ファイル承認モジュール１０６は、また、ファイルの合法性の検査に不可欠な、１つ又は複数のタスクを実行するように構成された専用機に相当し得る。
【００１９】
図１Ａに示したように、ファイル承認モジュール１０６は、信頼されたドメインのデータベース１０２、および／または、承認済みファイルのデータベース１０４と通信できる。以下に詳述するように、ファイル承認モジュール１０６は、信頼されたドメインのデータベース１０２、および／または、承認済みファイルのデータベース１０４と通信することによって、１つ又は複数のファイルの合法性を検査することができる。また、ファイル承認モジュール１０６は、以下に詳述するように、承認済みファイルのデータベース１０４および信頼されたドメインのデータベース１０２内のデータベースレコードを、構築または更新するか、または、承認済みファイルのデータベース１０４および信頼されたドメインのデータベース１０２内のデータベースレコードが、構築および／または更新されることを要求することができる。
【００２０】
ある実施態様において、そして、図１Ａに示したように、コンピュータシステム１０８は、例示的システム１００と通信できる。コンピュータシステム１０８は、コンピュータ可読の命令を実行できる、あらゆるシングル／マルチ・プロセッサ・コンピュータデバイスまたはシステムに相当する。コンピュータシステム１０８の例としては、システム１００と通信する複数のコンピュータデバイス、ネットワーク化済環境における１つ又は複数のクライアント端末、分散システム、１台又は複数のサーバ、または、他のあらゆるコンピュータシステムまたはデバイスが挙げられるが、必ずしもこれに限定されるものではない。
【００２１】
ある実施形態では、ファイル承認モジュール１０６は、ネットワーク化された環境の範囲内で動作するように、配備及び構成され得る。例えば、図１Ｂに示したように、ファイル承認モジュール１０６は、特定の実施例においては、エンタープライズ・ネットワーク環境におけるプロキシサーバに相当する、コンピュータシステム１２０上で動作するように、格納及び構成され得る。この実施態様において、コンピュータシステム１２０は、クライアント１２２からの要求を他のサーバへ転送することによって、１つ又は複数のクライアント１２２の要求を処理できる。従って、以下に更に詳述するように、ファイルモジュール１０６は、クライアント１２２からの要求をインターセプトすることによって、クライアント１２２がファイルにアクセスすることを許可する前に、他のサーバから要求されたファイルの合法性を検査できる。
【００２２】
また、ファイル承認モジュール１０６は、図１Ｂのコンピュータシステム１１０のような、単一のコンピュータシステム上で動作するように格納及び構成されることができる。少なくとも１つの実施形態において、コンピュータシステム１１０は、少なくとも部分的にはファイル承認モジュール１０６によって制御される、クライアント端末に相当する。例えば、以下に詳述するように、ファイル承認モジュール１０６は、コンピュータシステム１１０が、ファイル承認モジュール１０６によって検査及び承認されていないファイルにアクセスすることを防ぐことができる。
【００２３】
図２は、承認済みファイルのデータベースを構築または更新する、例示的なコンピュータによる実装方法２００の流れ図である。この図に示したように、ステップ２０２で、第１のファイルは、インターセプトされ得る。一般に、ステップ２０２でインターセプトされる第１のファイルは、あらゆるタイプまたは形式のコンピュータ・データまたはファイルに相当する。この第１のファイルの例としては、実行形式ファイル（例えば.EXEファイル）、アーカイブファイル（例えばRPM）およびインストールパッケージ（例えばMSI）が挙げられるが、必ずしもこれらに限定されるものではない。
【００２４】
ファイルは、あらゆる方法によってインターセプトできる。例えば、第１のファイルのインターセプトは、クライアント端末又は自動要求のような要求に応じて、www.msn.comのような、特定のドメイン由来のウェブサーバから送信される際にファイルをインターセプトし、または、電子メール内のファイルをインターセプトすることを含むことができる。例えば、図１Ｂに示したように、ファイル承認モジュール１０６は、特定の実施例でエンタープライズ・ネットワーク環境におけるプロキシサーバに相当する、コンピュータシステム１２０上で動作するように、格納及び構成できる。この実施態様において、コンピュータシステム１２０は、クライアント１２２からの要求を他のサーバへ転送することによって、１つ又は複数のクライアント１２２の要求を処理できる。したがって、本実施形態において、第１のファイルをインターセプトすることは、クライアント１２２からの要求に応じて、これらの他のサーバによって転送されるファイルをインターセプトすることを含むことができる。
【００２５】
ステップ２０４では、第１のファイルに関連付けられたソースドメインおよび相対パスが、識別できる。本明細書で用いられるように、「ソースドメイン」という用語は、通常、ファイルが作成されたドメインを指す。例えば、MICROSOFT由来のファイルのソースドメインはwww.microsoft.comであり、ADOBEで作成されたファイルのソースドメインはwww.adobe.comであり得る。ステップ２０２で、第１のファイルに関連付けられたソースドメインは、あらゆる方法で識別できる。例えば、第１のファイルに関連付けられたソースドメインは、第１のファイル（これは、第１のファイルが検索されるソースドメインを含み得る）についてのクライアント要求を検査することによって識別され、逆引き操作を実行し、AKAMAIのような信頼されたサードパーティーサーバにソースドメイン情報を要求し、又は、第１のファイルを構文解析して第１のファイルの中に格納されているソースドメイン情報を識別する。加えて、いくつかのソースドメインは、多数のソフトウェア提供者のファイルをホストできるが、ソフトウェア提供者は信頼性のあるソフトウェアと信頼性の無いソフトウェアの両方を提供していることがある。例えば、あるソースドメインが、ドメイン名download.netを有し、それは、信頼できるソフトウェア提供者と信頼できないソフトウェア提供者との両方からのファイルをホストしていることがある。ソースドメインは、異なる提供者によって公開されたファイルを区別するために、相対パスを使用することができる。例えば、http://download.net/trusted/foo.exe, http://download.net/trusted/bar.exe, http://download.net/unknown/spyware１.exe,およびhttp://download.net/unknown/spyware2.exeは、ソースドメインによってホストされているファイルのパスであり得る。Download.netは、「信頼された」相対パスにおける、信頼されたファイルをホストし得る。しかし、ドメインdownload.netは、「不明の」相対パスで表される信頼性の無いファイルを含むこともある。この例において、ソースドメインによるファイルの分析は不十分であり得る。更に、コンピュータシステム１２０は、ファイルがホストされているパスのプレフィックス部分を必然的に識別し得る。コンピュータシステム１２０は、１つ又は複数のパスプレフィックスを不明な提供者と関連させ、信頼性のある提供者によってサイトに発表されるファイルのサブセットを、信頼性の無い提供者によってサイトに発表されたものから区別できる。例えば、コンピュータシステム１２０が、相対パス「/trusted」、「/trusted１」及び「/trusted2」を「download.net」ソースドメインと関連づけることができる。
【００２６】
ステップ２０６で、信頼されたドメインのデータベース（例えば、図１Ａの信頼されたドメインのデータベース１０２）は、識別できる。上に詳述したように、ステップ２０６において識別される信頼されたドメインのデータベースは、複数の信頼できるドメインのたそれぞれについてのデータベースレコードを含むことができる。ある実施形態では、「信頼されたドメイン」（信頼されたドメインのデータベース１０２に格納されるデータベースレコード）は、広義には、既に「信頼性がある」と識別されているソースドメインを指し、即ち、これらは、悪意の無いコンテンツ及びファイルを提供することが既に確認されているソースドメインである。加えて、幾つかの信頼されたドメインは、１つまたは複数の追加の相対パス指定を有し、信頼性のあるＵＲＬ空間及び／又は信頼性の無いＵＲＬ空間のサブセットを識別する。以下に詳述するように、「信頼性がある」と識別されるためには、ソースドメインは特定の基準、例えば、悪意のあるソフトウェア（例えばマルウェア、ウィルス、スパイウェア、アドウェア、その他）を配布した履歴が無いことや、および／または、それら自体の独自のドメインから未知のサードパーティーソフトウェアおよびコンテンツを配布した履歴が無いこと等を満たす必要がある。信頼されたドメインの例としては、主要又は有名な会社のドメイン（例えばwww.microsoft.comまたはwww.adobe.com）、専門ソフトウェアのベンダーのドメイン（例えば、管理データベースのためのツール、テキストエディタ、レジストリクリーンアップツール、その他）、ソフトウェアの信頼性のある地域のベンダーのドメイン、または、悪意の無いコンテンツおよびファイルのみを供給することに合意しているソフトウェア・ベンダのためのドメインが挙げられるが、必ずしもこれらに限定されるものではない。
【００２７】
ステップ２０８で、システムは、ステップ２０２で識別された第１のファイルに関連付けられたソースドメインのデータベースレコードが、信頼されたドメインのデータベースの範囲内に存在するかどうか決定できる。第１のファイルに関連付けられたソースドメインのデータベースレコードが、ドメインデータベースの範囲内に存在する場合、これは、そのソースドメインが「信頼性のある」ドメインであることを示唆し、ステップ２１０において、その第１のファイルについてのハッシュ値が作成され得る。しかし、第１のファイルに関連付けられたソースドメインのためのデータベースレコードが信頼されたドメインのデータベースの範囲内に存在しない場合は、例示的方法２００のプロセスフローは終了し得る。
【００２８】
本明細書で用いられるように、「ハッシュ値」という用語は、通常、ファイルにハッシュ関数を適用することで作成されるデータを指す。ある実施形態では、ファイルのハッシュ値は、ファイルのコンテンツの代表値またはデジタル「指紋」を含む。このハッシュ値は、さまざまな方法で作成され得る。例えば、ステップ２０２で識別される第１のファイルについてのハッシュ値は、SHA-１、SHA-２、MD５または他のあらゆる安全なハッシュ・アルゴリズムのような、安全なハッシュ・アルゴリズムを用いて作成され得る。ステップ２１０では、第１のファイルについてのハッシュ値は、図１Ａの承認済みファイルのデータベース１０４のような、承認済みファイルのデータベースに格納され得る。ステップ２１２の後、例示的方法２００のプロセスフローは、終了し得る。
【００２９】
図示していないが、例示的方法２００は、ウェブからダウンロードされるかまたは電子メールによって受け取られるファイルのような、付加的なファイルをインターセプトし、その付加的なファイルに関連付けられたソースドメインを識別し、付加的なファイルに関連付けられたソースドメインのためのデータベースレコードが、信頼されたドメインのデータベースの範囲内に存在するか否か決定し、そして、付加的なファイルに関連付けられたソースドメインのためのデータベースレコードが信頼されたドメインのデータベースの範囲内に存在する場合、承認済みファイルのデータベース内の、付加的なファイルについてのハッシュ値を作成及び格納する。
【００３０】
ある実施形態では、インターセプトされたファイルのそれぞれに関しての情報を含むレポートが、作成され得る。このレポートは、インターセプトされた各ファイルの名前、インターセプトされた各ファイルのソースドメイン、そのファイルについての機能カテゴリ（分かる場合は、例えば、「ＣＡＤソフトウェア」、「娯楽ソフトウェア」、その他）、および／または、各ファイルが何回インターセプトされたかについての情報を含み得る。このレポートは、図１Ｂの承認済みファイルのデータベース１０４のような、データベースに格納され、コンピュータデバイス（例えば、会社のサーバ）に送信されるか、又は、実体に（例えば、会社）に提供される。このレポートは、例示的システム１００（例えば、会社または組織）のユーザに、彼らの組織内におけるファイルの使用について、非常に貴重な情報を提供できる。
【００３１】
明確のため、また、例示のみにおいて、以下の詳細な説明に、例示的方法２００がどのようにして実施され得るかについての実例を示す。図１Ｂのクライアント１２２のような、クライアント端末のユーザは、インターネット上のウェブサーバから、ファイルをダウンロードすることを決定できる。この実施例では、ユーザは、種々の書式に記入することを必要とし、および／または、ファイルをダウンロードが可能になる前に、そのファイルについての電子決済を行うことができる。これらの必要事項のそれぞれを完了した後に、ウェブサーバは、ユーザの要求に応じて、ファイルをクライアント１２２に送信できる。次いで、コンピュータシステム１２０は、プロキシサーバとして作用して、そのファイルがクライアント１２２に達する前に、ファイルをインターセプトできる。
【００３２】
そして、ファイル承認モジュール１０６は、インターセプトされたファイルに関連付けられたソースドメイン内の、ソースドメイン及び相対ＵＲＬパスを、上記に詳述した技術の１つを用いて識別できる。例えば、ファイル承認モジュール１０６は、ファイルのソースドメインおよび相対パスを、クライアントにより送信された、ネットワークリクエスト・パケットから抽出できる。一旦、ファイルについてのソースドメイン情報および相対パスが識別されると、ファイル承認モジュール１０６は、承認済みファイルのデータベース１０４に照会して、そのファイルに関連付けられたソースドメインと、任意には相対パスとのためのデータベースレコードが、信頼されたドメインのデータベース１０２内に存在すか否か決定する。そのファイルに関連付けられたソースドメインと、任意には相対パスとのためのデータベースレコードが、信頼されたドメインのデータベース内に存在する場合、第１のファイルについてのハッシュ値が作成され、承認済みファイルのデータベース１０４に格納され得る。
【００３３】
ある実施形態では、１つの承認済みファイルのデータベースに格納されるハッシュ値は、付加的な承認済みファイルのデータベースに格納されるハッシュ値に統合され得る。そして、種々の認証されたクライアントは、この統合された承認済されたファイルのデータベースにアクセスし、ファイルの合法性を検査できる。例えば、第１の団体（例えば、会社）は、第２の団体と、それぞれの承認済みファイルのデータベース内の成果を共有する旨のパートナーシップ合意を有し、それぞれのデータベースは、システム１００及び／又は例示的方法２００を用いて、構築及び／又は更新され得る。要望に応じて、団体はいくつでもこのパートナーシップに加入し、それぞれの承認済みファイルのデータベース内の成果を共有することに合意することができる。この例では、団体が潜在的な何百万ものユーザから生成されたデータを共有及び結合することに従って、合法的なファイルのデータベースは、指数関数的に増大し得る。
【００３４】
共有または統合されたデータベースについての、この実施例において、例示的方法２００は、第２の承認済みファイルのデータベース（それは、複数のファイルについての複数のハッシュ値を含み得る）を識別し、第１の承認済みファイルのデータベースに格納されるハッシュ値を、第２の承認済みファイルのデータベースに格納されるハッシュ値と統合して、統合された承認済みファイルのデータベースを構築することを更に含み得る。方法は、また、統合された承認済みファイルのデータベースにアクセスする要求を受信し、統合された承認済みファイルのデータベースにアクセスする要求を認証して、統合された承認済みファイルのデータベースにアクセスを許可することを含み得る。
【００３５】
ある実施形態では、システムは第１のファイルについてのハッシュ値を格納する前に、第１のファイルについて既に作成されているハッシュ値が、第１の承認済みファイルのデータベースの範囲内で存在するか否か決定できる。例えば、図３は、ハッシュ値を承認済みファイルのデータベースに格納する前に、既に作成された、ファイルのハッシュ値が、データベースの範囲内に存在するか否かを決定するための、例示的なコンピュータによる実装方法３００の流れ図である。これらの図に示したように、ステップ３０２において、システムは、既に作成されているハッシュ値を承認済みファイルのデータベースに格納する前に、既に作成されている複数のハッシュ値から、少なくとも１つのユニークなハッシュ値を識別できる。ステップ３０４で、システムは、ステップ３０２で識別されたユニークなハッシュ値が、承認済みファイルのデータベースの範囲内で存在するか否か決定できる。ステップ３０２において識別されたユニークなハッシュ値が承認済みファイルのデータベースの範囲内に存在しない場合、ステップ３０６で、システムは、承認済みファイルのデータベースの範囲内にユニークなハッシュ値を保存できる。
【００３６】
通常の使用の間、有名又は頻繁に訪問するドメインからきたファイルのような、１つのファイルが、システム１００によって一定期間の間に何度も処理され得るので、例示的方法３００は、識別可能なハッシュ値を、何度も送信及び格納することを回避でき、従って効率性を改善できる。さらに、特定の実施形態で、ハッシュ値のローカル・キャッシュは、ハッシュ値を承認済みファイルのデータベースに送信する前に作成できる。この実施例では、システムは、このローカル・キャッシュ内から、ユニークなハッシュ値だけを識別して、それを承認済みファイルのデータベースに送信して格納する。他の実施例においては、一旦システムがファイルを発見して、ファイルを追加すると、使用頻度の少ない周知のファイルのファイル使用についての追加の統計データを送信できる。
【００３７】
ある実施形態では、ネットワークまたはサブシステムは、承認済みファイルのデータベース１０４のローカルコピーを含み、このコピーは、時間毎に承認済みファイルのデータベース１０４と同期される。図４は、承認済みファイルのデータベースのローカルコピーを作成するための、例示的なコンピュータによる実装方法４００の流れ図である。この図に示したように、ステップ４０２で、承認済みファイルのデータベースが識別できる。ステップ４０４で、承認済みファイルのデータベースのローカルコピーが作成できる。ある実施形態では、承認済みファイルのデータベースのローカルコピーの作成は、承認済みファイルのデータベースのコンテンツを、ローカル又はリモート記憶装置へコピーすることを含み得る。ステップ４０６で、承認済みファイルのデータベースのローカルコピーは、ステップ４０２において識別される、承認済みファイルのデータベースと周期的に同期できる。そして、例示的方法４００のプロセスフローが終了し得る。
【００３８】
ある種の実施形態では、付加的なハッシュ値またはデータベースレコードを格納することを別として、承認済みファイルのデータベース１０４は、単にファイルの合法性を検査するために用いてもよい。例えば、プロキシサーバは、中心的な承認済みファイルのデータベース（例えば、承認済みファイルのデータベース１０４）を照会して、プロキシサーバによってインターセプトされたファイルの合法性を検査しても良い。図５は、ファイルの合法性を検査するための、例示的なコンピュータによる実装方法５００の例である。この図に示したように、ステップ５０２で、第１のファイルの合法性を検査する第１の要求は、図１Ａのコンピュータ１０８又は、図１Ｂのコンピュータデバイス１１０及び／又は１２０のような、第１のコンピュータデバイスより受け取られ得る。例えば、クライアント１２２のためのプロキシサーバに相当するコンピュータデバイス１２０は、クライアント１２２に送信されたファイルをインターセプトした後に、承認済みファイルのデータベース１０４に要求を送信して、インターセプトされたファイルの合法性を検査できる。ある実施形態では、ステップ５０２において受信された第１の要求は、検査されるべき第１のファイルのハッシュ値を含み得る。このハッシュ値は、ファイル承認モジュール（例えば、コンピュータシステム１１０またはコンピュータシステム１２０上で動作しているファイル承認モジュール１０６）または他のあらゆる適切な装置にもよって作成され得る。
【００３９】
ステップ５０４で、システムは、第１のファイルについてのハッシュ値のデータベースレコードが、図１Ａの承認済みファイルのデータベース１０４のような、承認済みファイルのデータベース）の範囲内に存在するか否か決定できる。ある実施形態では、このことは、承認済みファイルのデータベース１０４に照会して、インターセプトされたファイルのためのハッシュ値がデータベースの範囲内で存在するか否か決定することによって達成され得る。第１のファイルについてのハッシュ値のデータベースレコードが承認済みファイルのデータベースの範囲内に存在する場合、ステップ５０６で、第１のファイルが合法的であることを示唆する第１のコンピュータデバイスへの応答が送信され得る。あるいは、第１のファイルについてのハッシュ値のデータベースレコードが、承認済みファイルのデータベースの範囲内に存在しない場合、ステップ５０８で、第１のファイルが合法的でないことを示唆する第１のコンピュータへの応答が送信され得る。そして、例示的方法５００のプロセスフローは、終了し得る。
【００４０】
例示的方法５００は、複数のプロキシサーバが、中心的な承認済みファイルのデータベース（例えば、承認済みファイルのデータベース１０４）、又は、１つ又は複数の中心的な承認済みファイルのデータベースのキャッシュしたコピーを照会して、プロキシサーバによってインターセプトされたファイルの合法性を検査することを可能にする。また、例示的方法５００は、図１Ｂのコンピュータ１１０のような、１つのコンピュータが、同一のファイルをダウンロードすることに先立って、ファイルの合法性を検査することを可能にできる。
【００４１】
図６は、付加的な実施形態に従う、ファイルの合法性を検査するための、例示的なコンピュータによる実装方法６００の例である。この図は、ファイルの合法性の決定を試みるときに、プロキシサーバのような、コンピュータデバイスによって実行され得る、種々のステップを詳細に示す。この図に示したように、ステップ６０２で、第１のファイルがインターセプトされ得る。上記に詳述したように、この第１ステップでファイルは、いかなるコンピュータデバイスによってもインターセプトでき、その様なコンピュータデバイスの例としては、エンタープライズ・ネットワーク環境のプロキシサーバまたは会社内のエンドユーザ・パソコンが挙げられる。ステップ６０４で、第１のファイルについてのハッシュ値が作成できる。ある実施形態では、第１のファイルについてのハッシュ値は、図１Ａのファイル承認モジュール１０６のようなファイル承認モジュール、および／または、図１Ａ〜１Ｂのコンピュータ１０８、１１０および１２０のようなコンピュータデバイスによって作成できる。ステップ６０６で、承認済みファイルのデータベースは、アクセスされ得る。ある実施形態では、図１Ａにおける承認済みファイルのデータベース１０４のような承認済みファイルのデータベースは、コンピュータシステム１１０および１２０上で動作している、ファイル承認モジュール１０６のようなファイル承認モジュールを動作させているコンピュータシステムによってアクセスされ得る。
【００４２】
ステップ６０８で、承認済みファイルのデータベースへのアクセス要求が、認証できる。ある実施形態では、承認済みファイルのデータベースへのアクセス要求を認証することは、コンピュータデバイスであって要求を受信されたものが、承認済みファイルのデータベースへのアクセス権を既に付与されたか確認することを含む。例えば、ステップ６０８は、アクセス要求が受信されたプロキシサーバが、承認済みファイルのデータベースへのアクセス権を付与されたか判断することを含んでもよい。
【００４３】
ステップ６１０で、システムは、第１のファイルについてのハッシュ値のデータベースレコードが、承認済みファイルのデータベースの範囲内に存在するか否か決定できる。第１のファイルについてのハッシュ値のデータベースレコードが承認済みファイルのデータベースの範囲内に存在する場合、ステップ６１２で、第１のファイルへのアクセスは許可又は付与され得る。あるいは、第１のファイルについてのハッシュ値のデータベースレコードが、承認済みファイルのデータベースの範囲内に存在しない場合、ステップ６１４で、第１のファイルへのアクセスが拒否されるか、又は、要求したユーザが、不明なソフトウェアの導入について検証することを促されることがある。第１のファイルへのアクセスは、あらゆる方法によって拒否又は許可され得る。例えば、プロキシサーバは、第１のファイルのダウンロードを回避又はブロックし、第１のファイルをダウンロード中に孤立させ、第１のファイルを削除し、又は、第１のファイルをサンドボクシング（sandboxing）することにより、クライアントによる第１のファイルへのアクセスを拒否できる。あるいは、システムはユーザに、認められていないアプリケーションをダウンロード／インストールする理由の記載を求める書式への記入と、ポリシーの侵害となるその様なファイルを利用する権利とを要求できる。ステップ６１４、および／または、ステップ６１２を完了すると、即座に、例示的方法６００のプロセスフローは終了できる。
【００４４】
上記に詳述したように、信頼されたドメインのデータベースは、複数の信頼されたドメインのそれぞれのためのデータベースレコードを含むことができる。これらの信頼されたドメインは、特定の基準を満たすと、即座に、コンピュータシステムによって、手動または自動で識別され得る。例えば、信頼されるために、ソースドメインは、悪意のあるソフトウェア（例えばマルウェア、ウィルス、スパイウェア、アドウェア、その他）を配布した履歴が無いことや、および／または、それら自体の固有のドメインから未知のサードパーティーソフトウェアおよびコンテンツを配布した履歴が無い必要がある。図７は、信頼されたドメインを識別して、これらの信頼されたドメインに基づいて、信頼されたドメインのデータベースを構築または更新する、例示的なコンピュータによる実装方法７００の流れ図である。この図に示したように、ステップ７０２で、第１のソースドメイン（例えばwww.microsoft.com）からの複数のファイルが要求され得る。ある実施形態では、図１Ａのシステム１００の１つ又は複数の構成要素は、第１のソースドメインからきた複数のファイルを評価することができる。ステップ７０４で、第１のソースドメインからきた複数のファイルが受信され得る。ステップ７０６で、システムは、第１のソースドメインからきた複数のファイルが合法的か否か決定することができる。第１のソースドメインからのファイルの合法性は、あらゆる方法で検査され得る。例えば、システムは、第１のソースドメインから受信されたファイルが、コンピュータシステムによって実行されるときに、コンピュータシステムに１つ又は複数の望ましくない行為を実行させる命令を含むか否か決定できる。
【００４５】
第１のソースドメインから受信される複数のファイルが合法的な場合、ステップ７０８で、第１のソースドメインのためのデータベースレコードが作成され得る。ステップ７１０で、第１のソースドメインのためのデータベースレコードは、図１Ａ〜１Ｂの信頼されたドメインのデータベース１０２のような信頼されたドメインのデータベースに格納され得る。あるいは、第１のソースドメインから受信される複数のファイルのうちの１つまたは複数が、合法的でない場合、例示的方法７００のプロセスフローは終了し得る。
【００４６】
ステップ７０４で、第１のソースドメインからの複数のファイルを評価することは、特定の実施例において、第１の期間にわたる第１のソースドメインからの複数のファイルを評価することを含み得る。同様に、第１のソースドメインから受信される複数のファイルが合法的か否かについて決定することは、第１の期間にわたって第１のソースドメインから受信される複数のファイルが合法的か否か決定することを含み得る。例えば、図１Ａのシステム１００のようなシステムは、一定の期間にわたってソースドメインから生成されている、複数のファイルを監視できる。それから、システムは、一定期間にわたってこのソースドメインから生じたファイルのそれぞれを分析して、何れかのファイルが違法か否かを決定する。そして、一定期間にわたってソースドメインから生じたファイルのうちの１つ又は複数が違法な場合、そのソースドメインのデータベースレコードは作成されず、また、信頼されたドメインのデータベースに格納されない。
【００４７】
本願明細書において開示される例示的実施形態は、従来技術を上回る多くの利点を提供する。例えば、例示的システム１００の、潜在的な１００万のユーザのために、承認済みファイルのデータベース１０４は、自動的に増加し、種々のファイルへのアクセスを獲得するので、従来のウェブ・スパイダリング技術の必要は、その固有の限界によって回避される。また、本願明細書において開示される例示的実施形態が多数のネットワーク環境において使用されることに従って、合法的なファイルのデータベースは、指数的に大きくなり、そして、承認済みファイルの結果は、統合及び共有され得る。さらに、合法的なファイルは自動的に識別されるので、従来の、手動の方法で必要とされていた労力の多くは低減される。
【００４８】
図面を通じて、同一の参照符号および説明は、類似であるが、必ずしも同一ではない要素を示す。本明細書に記載されている例示的実施形態が、さまざまな変更態様および代替的な形式に影響されやすいため、特定の実施形態は図面の実施例として示され、本明細書において詳述する。しかし、本明細書に記載されている例示的実施形態は、開示される特定の形に限られることを目的としない。むしろ、本発明は、添付の請求の範囲内の全ての変更態様、等価物および変形態様をカバーする。
【００４９】
図８は、本明細書に詳述及び／又は例示された実施形態のうちの１つ又は複数を実施することができる、例示的なコンピュータシステム８１０のブロック図である。コンピュータシステム８１０は、広義には、コンピュータ可読の命令を実行できる、あらゆるシングル／マルチプロセッサの、コンピュータデバイスまたはシステムを表す。コンピュータシステム８１０の例としては、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散コンピュータシステム、携帯機器または他のあらゆるコンピュータシステムまたはデバイスが挙げられるが、必ずしもこれらに限定されるものではない。その最も基本的な構成において、コンピュータシステム８１０は、少なくとも１つのプロセッサ８１４およびシステム・メモリ８１６を含むことができる。
【００５０】
プロセッサ８１４は、一般に、データを処理するかまたは命令を解釈及び実行できる、あらゆるタイプまたは形式の、処理ユニットに相当する。ある実施形態では、プロセッサ８１４は、ソフトウェア・アプリケーションまたはモジュールから命令を受信できる。これらの命令は、プロセッサ８１４に、本明細書に記載及び／又は例示された、例示的実施形態のうちの１つ又は複数の機能を実行させることができる。例えば、プロセッサ８１４は、単独で、又は、他の要素と組み合わせて、本明細書に記載された、１つ又は複数の、インターセプト、識別、決定、作成、格納、付与、送信、受信、認証、実行、要求、解析、同期、アクセス、許諾、拒否、ブロック、孤立化、削除のステップを、実施し、及び／又は、実施する手段となることができる。プロセッサ８１４は、また、本明細書に記載及び／又は例示された、他のあらゆるステップ、方法またはプロセスを、実行し、及び／又は、実行のための手段であり得る。
【００５１】
システム・メモリ８１６は、一般に、あらゆるタイプまたは形式の、データ、および／または、他のコンピュータ可読の命令を格納することができる、揮発性若しくは不揮発性記憶装置又は媒体であり得る。システム・メモリ８１６の例としては、ランダム・アクセス・メモリ（RAM）、ROM、フラッシュメモリまたは他のあらゆる適切なメモリデバイスも挙げられるが、必ずしもこれらに限定されるものではない。必須ではないが、特定の実施例においては、コンピュータデバイス８１０は、揮発性メモリ装置（例えば、システム・メモリ８１６）および不揮発性記憶装置（例えば、以下に詳述する、プライマリストレージデバイス８３２）を含むことができる。
【００５２】
また、ある実施形態では、例示的なコンピュータシステム８１０は、プロセッサ８１４およびシステム・メモリ８１６に加えて、１つ又は複数の構成要素または要素を含み得る。例えば、図８に示したように、コンピュータシステム８１０は、メモリコントローラ８１８、入力/出力（I/O）コントローラ８１８、および通信インタフェース８２２を含むことができ、これらはそれぞれ、通信基盤８１２を経て相互接続できる。通信基盤８１２は、一般に、コンピュータデバイスの１つ又は複数の構成要素間の通信を容易にすることができる、あらゆるタイプまたは形式のコンピュータの基盤に相当する。通信基盤８１２の例としては、コミュニケーションバス（例えば、ISA、PCI、PCIeまたは類似のバス）およびネットワークが挙げられるが、必ずしも、これらに限定されるものではない。
【００５３】
メモリコントローラ８１８は、一般に、メモリ若しくはデータを扱うことができ、コンピュータシステム８１０の１つ又は複数の構成要素間の通信を制御することができる、あらゆるタイプまたは形式の装置に相当する。例えば、特定の実施形態で、メモリコントローラ８１８は、通信基盤８１２を経て、プロセッサ８１４と、システム・メモリ８１６と、入出力コントローラ８２０との間の通信を制御することができる。ある実施形態では、メモリコントローラは、単独で、又は、他の要素と組み合わせて、本明細書に記載された、１つ又は複数の、インターセプト、識別、決定、作成、格納、付与、送信、受信、認証、実行、要求、解析、同期、アクセス、許諾、拒否、ブロック、孤立化、削除などのステップ又は特性を、実施し、及び／又は実施する手段となることができる。
【００５４】
入出力コントローラ８２０は、一般に、コンピュータの入出力機能を調整して、および／または、制御することができる、あらゆるタイプまたは形式のモジュールに相当する。例えば、特定の実施例で、入出力コントローラは、例えば、プロセッサ８１４、システム・メモリ８１６、通信インタフェース８２２、ディスプレイ・アダプタ８２６、入力インタフェース８３０および記憶インタフェース８３４のような、コンピュータシステム８１０の１つ又は複数の構成要素間でデータの転送を制御又は促進し得る。入出力コントローラ８２０は、例えば、単独又は他の要素と組み合わせて、本明細書に記載された、１つ又は複数の、インターセプト、識別、決定、作成、格納、付与、送信、受信、認証、実行、要求、解析、同期、アクセス、許諾、拒否、ブロック、孤立化、削除のステップを、実施し、及び／又は、実施する手段となることができる。また、入出力コントローラ８２０は、本発明において開示及び記載された、他のステップ及び特徴を、実行し、及び／または、実行の手段に用いられ得る。
【００５５】
通信インタフェース８２２は、広く、例示的なコンピュータシステム８１０と１つ又は複数の付加的な装置との間の通信を容易にすることができる、あらゆるタイプまたは形式の通信機器又はアダプタに相当する。例えば、ある実施例で、通信インタフェース８２２は、コンピュータシステム８１０と、付加的なコンピュータシステムを備える、個人または公共のネットワークとの間の通信を容易にできる。通信インタフェース８２２の例としては、有線のネットワーク・インターフェース（例えばネットワーク・インターフェース・カード）、無線ネットワーク・インターフェース（例えばワイヤレス・ネットワーク・インターフェース・カード）、モデムおよび他のあらゆる適切なインタフェースが挙げられるが、必ずしもこれらに限定されるものではない。少なくとも１つの実施例において、通信インタフェース８２２は、インターネットのようなネットワークに、ダイレクトリンクを介してリモートサーバにダイレクト接続を提供できる。例えば、通信インタフェース８２２は、また、ローカル・エリア・ネットワーク（例えばイーサネットネットワーク）、パーソナルエリアネットワーク（例えばBLUETOOTHネットワーク）、電話またはケーブル・ネットワーク、携帯電話の接続、衛星データ接続または他のあらゆる適切な接続を通じて、その様な接続を間接的に提供できる。
【００５６】
また、ある実施形態では、通信インタフェース８２２は、外部バスまたは通信チャネルを経て、コンピュータシステム８１０と１つ又は複数の付加的なネットワークまたは記憶装置との間の通信を容易にするように構成されたホストアダプタに相当する。ホストアダプタの例としてはSCSIホストアダプタ、USBホストアダプタ、IEEE 1394ホストアダプタ、SATAおよびeSATAホストアダプタ、ATAおよびPATAホストアダプタ、ファイバーチャネルインタフェースアダプタ、イーサネット・アダプタ等を含むが、必ずしもこれらに限定されない。また、通信インタフェース８２２は、コンピュータシステム８１０が分散またはリモートコンピューティングにかかわることを可能にする。例えば、通信インタフェース８２２は、リモート手段から指示を受信またはリモート手段に指示を送信して実行させることができる。ある実施形態では、通信インタフェース８２２は、単独で、又は、他の要素と組み合わせて、本明細書に記載された、１つ又は複数の、インターセプト、識別、決定、作成、格納、付与、送信、受信、認証、実行、要求、解析、同期、アクセス、許諾、拒否、ブロック、孤立化、削除などのステップを、実施し、及び／又は、実施する手段となり得る。また、通信インタフェース８２２は、本願開示に記載の、他のステップ及び特性を、実施し、及び／又は、実施する手段に用いられ得る。
【００５７】
図８にて図示したように、コンピュータシステム８１０は、また、ディスプレイ・アダプタ８２６を経て通信基盤８１２に連結する少なくとも１つのディスプレイデバイス８２４を含み得る。ディスプレイデバイス８２４は、一般に、ディスプレイ・アダプタ８２６によって転送された情報を視覚的に示すことができる、あらゆるタイプまたは形式の装置に相当する。同様に、ディスプレイ・アダプタ８２６は、概して、通信基盤８１２から（又は、当該技術分野において周知である、フレームバッファから）、グラフィックス、テキストおよび他のデータを転送して、ディスプレイデバイス８２４に表示するように構成されている、あらゆるタイプ又は形式の装置に相当する。
【００５８】
図８にて図示したように、例示的なコンピュータシステム８１０は、また、入力インタフェース８３０を経て通信基盤８１２に接続する、少なくとも１つの入力デバイス８２８を含むことができる。入力デバイス８２８は、概して、コンピュータ又は人間の何れかが生成した入力情報を提供することができる、あらゆるタイプまたは形式の入力デバイスに相当する。入力デバイス８２８の実施例としては、キーボード、ポインティング装置、音声認識装置または他のあらゆる入力デバイスも挙げられるが、必ずしもこれに限定されるものではない。少なくとも１つの実施例において、入力デバイス８２８は、単独で、又は、他の要素と組み合わせて、本明細書に記載された、１つ又は複数の、インターセプト、識別、決定、作成、格納、付与、送信、受信、認証、実行、要求、解析、同期、アクセス、許諾、拒否、ブロック、孤立化、削除のステップを、実施し、及び／又は、実施する手段となることができる。また、入力デバイス８２８は、本願開示に記載の、他のステップ及び特性を、実施し、及び／又は、実施する手段に用いられ得る。
【００５９】
また、図８にて図示したように、例示的なコンピュータシステム８１０は、主要な記憶装置８３２および記憶インタフェース８３４を経て通信基盤８１２に接続する予備記憶装置８３３を含み得る。記憶装置８３２および８３３は、一般に、データ、および／または、他のコンピュータ可読の命令を格納できる、あらゆるタイプまたは形式の記憶装置又は媒体に相当する。例えば、記憶装置８３２および８３３は、磁気ディスク・ドライブ（例えば、いわゆるハードディスク）、フロッピーディスク装置、磁気テープ装置、光ディスクドライブ、フラッシュ・ドライブ、等であってもよい。記憶インタフェース８３４は、一般に、記憶装置８３２並びに８３３と、コンピュータシステム８１０の他の構成要素との間で、データを転送する、あらゆるタイプまたは形式のインタフェースまたは装置に相当する。
【００６０】
ある実施形態では、記憶装置８３２および８３３は、コンピュータ・ソフトウェア、データまたは他のコンピュータ可読の情報を格納するように構成される、着脱可能記憶ユニットから読み込み、および／または、書き込みをするように構成され得る。適切な着脱可能記憶ユニットの例としては、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリ装置等が挙げられるが、必ずしも、これらに限定されるものではない。また、記憶装置８３２および８３３は、コンピュータ・ソフトウェア、データまたは他のコンピュータ可読の命令がコンピュータシステム８１０にロードされることができるようにする、他の類似の構造又はデバイスを含んでも良い。例えば、記憶装置８３２および８３３は、ソフトウェア、データまたは他のコンピュータ可読の情報を、読込み及び書込みするように構成され得る。記憶装置８３２および８３３は、また、コンピュータシステム８１０の一部であるか、または、他のインタフェース・システムを介してアクセスされる別の装置であってもよい。また、記憶装置８３２および８３３は、例えば、単独で、又は、他の要素と組み合わせて、本明細書に記載された、１つ又は複数の、インターセプト、識別、決定、作成、格納、付与、送信、受信、認証、実行、要求、解析、同期、アクセス、許諾、拒否、ブロック、孤立化、削除等のステップを、実施し、及び／又は、実施する手段となることができる。また、記憶装置８３２および８３３は、本願開示に記載の、他のステップ及び特性を、実施し、及び／又は、実施する手段に用いられ得る。
【００６１】
多くの他の装置またはサブシステムが、コンピュータシステム８１０に接続され得る。逆にいえば、図８に示された構成要素および装置の全てが、本明細書に記載された実施態様を実施するために必須というわけではない。上記下装置及びサブシステムは、図８に示した方法とは異なる方法でも相互接続できる。また、コンピュータシステム８１０は、あらゆるソフトウェア、ファームウェア、および／または、ハードウェア構成を使用することができる。例えば、１つ又は複数の本明細書に開示される例示的実施形態は、コンピュータ可読媒体にあるコンピュータプログラム（コンピュータ・ソフトウェア、ソフトウェア・アプリケーション、コンピュータ可読の命令またはコンピュータ制御ロジックとも称される）としてエンコードされ得る。「コンピュータ可読媒体」との用語は、一般に、コンピュータ可読の命令を格納または運搬できる、あらゆる形式の装置、キャリアまたは媒体を指す。コンピュータ可読のメディアの例としては、記録可能メディア（例えば、フロッピーディスクおよびCD／DVD-ROM）、伝送型媒体（例えば搬送波）、電子記憶媒体、磁気記録媒体、光記憶媒体および他の配電系統を含む。
【００６２】
また、コンピュータプログラムを含んでいるコンピュータ可読媒体は、コンピュータシステム８１０にロードできる。そして、コンピュータ可読媒体に格納される全てまたは一部のコンピュータプログラムは、システム・メモリ８１６、および／または、記憶装置８３２および８３３のさまざまな部分に格納され得る。プロセッサ８１４によって実行されるときに、コンピュータシステム８１０にロードされるコンピュータプログラムは、プロセッサ８１４が、本明細書に記載の、他のステップ及び特性を、実施し、及び／又は、実施する手段となるように促す。付加的又は代替的には、１つ又は複数の本明細書に記載及び／又は図示された例示的実施形態は、ファームウェア、および／または、ハードウェアにおいて実施できる。例えば、コンピュータシステム８１０は、１つ又は複数の本明細書に開示された例示的実施形態を実施するために適合されている、アプリケーション固有集積回路（ASIC）として構成され得る。
【００６３】
図９は、クライアントシステム９１０、９２０並びに９３０、および、サーバ９４０並びに９４５が、ネットワーク９５０に接続されることができる、例示的なネットワークアーキテクチャ９００のブロック図である。クライアントシステム９１０、９２０および９３０は、一般に、あらゆるタイプまたは形式のコンピュータまたはシステム、例えば図８の例示的なコンピュータシステム８１０に相当する。同様に、サーバ９４０および９４５は、一般に、アプリケーション・サーバ若しくはデータベース・サーバのような、コンピュータまたはシステムであって、さまざまなデータベース・サービスを提供して、および／または、特定のソフトウェア・アプリケーションを動作させるように構成されたコンピュータまたはシステムに相当する。ネットワーク９５０は、一般に、イントラネット、ワイド・エリア・ネットワーク（WAN）、ローカル・エリア・ネットワーク（LAN）、パーソナルエリアネットワーク（PAN）またはインターネットを含む、あらゆる電気通信またはコンピュータ・ネットワークに相当する。
【００６４】
図９に示したように、１つ又は複数の記憶装置９６０(1)-(N)は、サーバ９４０に直接取り付けられ得る。同様に、１つ又は複数の記憶装置９９０(1)-(N)は、サーバ９４５に直接取り付けられ得る。記憶装置９６０(1)-(N)及び記憶装置９９０(1)-(N)は、一般に、あらゆるタイプまたは形式の、データ及び／又は他のコンピュータ可読命令を格納できる、記憶装置又は媒体に相当する。特定の実施例において、記憶装置９６０(1)-(N)及び記憶装置９９０(1)-(N)は、サーバ９４０および９４５とNFS、 SMB、 又は、 CIFSのような種々のプロトコルを用いて通信するように構成されている、ネットワーク接続ストレージ（NAS）装置に相当する。
【００６５】
また、サーバ９４０および９４５は、ストレージエリア・ネットワーク（SAN）ファブリック９８０に接続していることができる。SANファブリック９８０は、一般に、あらゆるタイプまたは形式の、複数のストレージデバイス間の通信を容易にできる、コンピュータ・ネットワークまたはアーキテクチャに相当する。SANファブリック９８０は、サーバ９４０および９４５と、複数のストレージデバイス９９０(1)-(N)、及び／又は、インテリジェントストレージアレイ９９５との通信を容易にできる。また、SANファブリック９８０は、デバイス９９０(1)-(N)及びアレイ９９５が、クライアントシステム９１０、９２０及び９３０にローカル接続する機器に見えるような方法で、ネットワーク９５０およびサーバ９４０、９４５を介して、クライアントシステム９１０、９２０および９３０と、ストレージデバイス９９０(1)-(N)及び／又はインテリジェントストレージアレイ９９５との間の通信を容易にできる。ストレージデバイス９６０(1)-(N)及びストレージデバイス９７０(1)-(N)、ストレージデバイス９９０(1)-(N)及びインテリジェントストレージアレイ９９５は、データ及び／又は他のコンピュータ可読命令を格納できる、あらゆるタイプ又は形式のストレージデバイス又はメディアに相当する。
【００６６】
特定の実施例において、また、図８の例示的なコンピュータシステム８１０に関して、図８の通信インタフェース８２２のような通信インタフェースは、各クライアントシステム９１０、９２０および９３０と、ネットワーク９５０との間の接続性を提供するために用いられ得る。クライアントシステム９１０、９２０および９３０は、例えば、ウェブ・ブラウザまたは他のクライアントソフトウェアを用いて、サーバ９４０または９４５上の情報にアクセスできる。このようなソフトウェアは、クライアントシステム９１０、９２０および９３０が、サーバ９４０、サーバ９４５、ストレージデバイス９６０(1)-(N)、ストレージデバイス９７０(1)-(N)、ストレージデバイス９９０(1)-(N)、又は、インテリジェントストレージアレイ９９５によってホストされるデータにアクセスできるようにする。図９はデータ交換のためのネットワーク（例えば、インターネット）の利用を示すが、本明細書に記載／図示した実施形態は、インターネット又はあらゆる特定のネットワークに基づく環境に限定されるものではない。
【００６７】
少なくとも１つの実施例において、本明細書に開示された、全ての実施形態、又は、１つ若しくは複数の例示的実施形態の一部分は、コンピュータプログラムとしてエンコードでき、サーバ９４０、サーバ９４５、ストレージデバイス９６０(1)-(N)、ストレージデバイス９７０(1)-(N)、ストレージデバイス９９０(1)-(N)、インテリジェントストレージアレイ、又はこれらのあらゆる組合せにロードされ、実行される。本明細書に開示された、全ての実施形態、又は、１つ若しくは複数の例示的実施形態の一部分は、コンピュータプログラムとしてエンコードされ、サーバ９４０に格納され、サーバ９４５によって動作され、ネットワーク９５０を介してクライアントシステム９１０、９２０及び９３０に配布され得る。従って、ネットワークアーキテクチャ９００は、単独で、又は、他の要素と組み合わせて、本明細書に記載された、１つ又は複数の、インターセプト、識別、決定、作成、格納、付与、送信、受信、認証、実行、要求、解析、同期、アクセス、許諾、拒否、ブロック、孤立化、削除のステップを、実施し、及び／又は、実施する手段となることができる。
【００６８】
前述の開示は、特定のブロック図、フローチャートおよび実施例を用いた、様々な実施形態を記載したが、ブロック図の各構成要素、フローチャートのステップ、操作、及び／又は、本明細書に記載及び／又は図示された構成要素は、広範囲にわたるハードウェア、ソフトウェアまたはファームウェア（またはそれのいかなる組合せも）構成を用いて、個別的および／または集合的に実施され得る。加えて、多くの他のアーキテクチャが、同一の機能性を達成するために実装され得るので、当然に、その他の構成要素に含まれる構成要素の開示は、例示として考慮されたい。
【００６９】
本明細書に記載／図示された、プロセス・パラメータおよび一連のステップは、例示に過ぎず、要望に応じて変更を加えることができる。例えば、本明細書に記載／図示されたステップは、特定の順番で図示又は説明されたが、これらのステップは必ずしも、図示又は説明された順番で実施される必要は無い。本明細書に記載／図示された、種々の例示的方法は、１つ又は複数の記載又は図示されたステップを省略するか、又は、開示されたものに追加的なステップを含むこともできる。
【００７０】
さらに、完全に機能的なコンピュータシステムを考慮して、種々の実施形態が本明細書に記載／図示されているが、これら例示的実施形態の１つ又は複数が、実際に配布に用いられる、特定のタイプのコンピュータ可読媒体に関わらず様々な形式のプログラム製品として配布され得る。また、本明細書に開示される実施例は、特定のタスクを遂行するソフトウェア・モジュールを用いて実行できる。これらのソフトウェア・モジュールは、スクリプト、バッチまたはコンピュータ可読の記憶媒体またはコンピュータシステムに格納された他の実行形式のファイルを含んでも良い。いくつかの実施形態では、これらのソフトウェア・モジュールは、コンピュータシステムを本明細書で開示した例示的実施形態の１つ又は複数を実行するように構成することができる。
【００７１】
以上の記載は、当業者が本明細書に開示された例示的実施形態の多様な態様を、最も役立てることができるように提供されたものである。以上の例示的記述は、開示された実施態様と完全一致し、又は、それに制限することを意図するものではない。多くの修正変更が、本発明の精神及び範囲から逸脱することなく可能である。本明細書に開示された実施例は、あらゆる点で例示的であり、限定的ではないと考慮されたい。本発明の範囲を決定する際には、添付の請求の範囲およびそれらの等価物を参照されたい。
【００７２】
特に明記しない限り、明細書中に単数で示した構成要素は、「少なくとも１つの」という意味において用いられる。加えて、利用の促進のため、明細書及び特許請求の範囲に用いられた、「含む」、「有する」という言葉は、「備える」という言葉と同じ意味であり、相互に入れ替え可能である。
【図面の簡単な説明】
【００７３】
【図１Ａ】少なくとも１つの実施形態に従う、承認済みファイルおよび信頼されたドメインのデータベースを構築または更新するか、および／または、ファイルの合法性を検査するための、例示的なシステムのブロック図である。
【図１Ｂ】付加的な実施形態に従う、承認済みファイルおよび信頼されたドメインのデータベースを構築または更新し、および／または、ファイルの合法性を検査するための、例示的なシステムのブロック図である。
【図２】少なくとも１つの実施例に従う、承認済みファイルのデータベースを構築または更新する、例示的なコンピュータによる実装方法の流れ図である。
【図３】付加的な実施例に従う、承認済みファイルのデータベースを構築または更新するための、例示的なコンピュータによる実装方法の流れ図である。
【図４】付加的な実施例に従う、承認済みファイルのデータベースを構築または更新するための、例示的なコンピュータによる実装方法の流れ図である。
【図５】少なくとも１つの実施例に従う、ファイルの合法性を検査するための、例示的なコンピュータによる実装方法の具体例である。
【図６】付加的な実施例に従う、ファイルの合法性を検査するための、例示的なコンピュータによる実装方法の具体例である。
【図７】信頼されたドメインのデータベースを構築または更新するための、例示的なコンピュータによる実装方法の流れ図である。
【図８】本明細書に記載および／または例示されている、１つ以上の実施形態を実施できる、例示的なコンピュータシステムのブロック図である。
【図９】本明細書に記載および／または例示されている、１つ以上の実施形態を実施できる、例示的なコンピュータシステムのブロック図である。
【図１Ａ】
0005396051.tif 000002
【図１Ｂ】
0005396051.tif 000003
【図２】
0005396051.tif 000004
【図３】
0005396051.tif 000005
【図４】
0005396051.tif 000006
【図５】
0005396051.tif 000007
【図６】
0005396051.tif 000008
【図７】
0005396051.tif 000009
【図８】
0005396051.tif 000010
【図９】
0005396051.tif 000011