(57)【要約】  本発明は、メッセージプロテクションシステムにおける二段階ハッシュ値マッチング法を提供する。この発明は、さらに、可能であれば、高度なシグネチャーハッシュ値（ＳＳＨＶ）に関連する計算を避けることで、メッセージプロテクションシステムの性能を向上させる。二段階ハッシュ値マッチング法を実行するメッセージプロテクションシステムは、以前にスキャンされたオブジェクトの、大まかなアウトラインハッシュ値（ＲＯＨＶ）をキャッシュに記憶する。このシステムは、ＲＯＨＶを使用することで、一つのオブジェクトを、もう一方から、おおまかに識別することができる。このシステムは、比較的多くの時間を必要とするＳＳＨＶに関連する計算を実行する前に、ＲＯＨＶを使用することで初期チェックを実行する。【選択図】図１
2007528040.tif 000002
【特許請求の範囲】
【請求項１】
デバイスを通過するエクスプロイトを除去するための方法であって、
デバイスへ向けられたオブジェクトを受信する段階と、
オブジェクトに関連する第一の値を決定する段階と、
以前にスキャンされたことのあるオブジェクトに関連した第二の値のセットを決定する段階と、
前記第一の値が、前記第二の値のセットの中の少なくとも一つの値に一致する場合には、
オブジェクトに関連する第三の値を決定する段階と、
以前スキャンされたことがあるオブジェクトに関連する第四の値のセットを決定する段階と、
第三の値が、前記第四の値のセットの中の少なくとも一つの値に一致する場合には、オブジェクトを直ちに処理する段階と、
を備えることを特徴とする方法。
【請求項２】
請求項１に記載の方法において、オブジェクトが、メッセージ、メッセージの添付ファイル、電子メール、コンピュータ実行可能なファイル、およびデータファイルの少なくとも一つを含むことを特徴とする方法。
【請求項３】
請求項１に記載の方法において、前記第一の値、および前記第三の値の少なくとも一つが、さらに、ハッシュ値、アルゴリズム的な機能、チェックサム、公開鍵証明書、および電子署名の少なくとも一つを含むことを特徴とする方法。
【請求項４】
請求項１に記載の方法において、前記第一の値が、大まかなアウトラインハッシュ値（ＲＯＨＶ）を含むことを特徴とする方法。
【請求項５】
請求項４に記載の方法において、前記第三の値が、高度なシグネチャーハッシュ値（ＳＳＨＶ）を含み、かつ、前記ＲＯＨＶが、計算するために、前記ＳＳＨＶより少ない時間を必要とすることを特徴とする方法。
【請求項６】
請求項１に記載の方法において、オブジェクトを直ちに処理する段階が、さらに、オブジェクトをスキャンすることなくオブジェクトを処理する段階を含むことを特徴とする方法。
【請求項７】
請求項６に記載の方法において、オブジェクトを直ちに処理する段階が、さらに、オブジェクトからエクスプロイトを除去する段階を含むことを特徴とする方法。
【請求項８】
請求項６に記載の方法において、オブジェクトを直ちに処理する段階が、さらに、オブジェクトを、宛て先へ転送する段階を含むことを特徴とする方法。
【請求項９】
請求項１に記載の方法であって、さらに、前記第一の値が前記第二の値のセットにおけるいずれの値とも一致しない場合に、
エクスプロイトを、オブジェクトについてスキャンする段階と、
前記第一の値を含むように前記第二の値のセットをアップデートする段階と、
を含むことを特徴とする方法。
【請求項１０】
請求項１に記載の方法であって、さらに、前記第三の値が前記第四の値のセットにおけるいずれの値とも一致しない場合に、
エクスプロイトを、オブジェクトについてスキャンする段階と、
前記第三の値を含むように前記第四の値のセットをアップデートする段階と、
を含むことを特徴とする方法。
【請求項１１】
請求項１に記載の方法において、前記方法がファイアーウォール、ルータ、スイッチ、サーバー、および専用プラットフォームの少なくとも一つの上で動作可能であることを特徴とする方法。
【請求項１２】
データ構造を有するデータを記憶したコンピュータ読み取り可能な媒体であって、
前記データ構造が、
指標付けエントリーを有する第一の指標付けデータフィールドと、
オブジェクトに関連したエントリーを含む第二のデータフィールドと、
を含み、
各指標付けエントリーが第一の値を含み、
各オブジェクトに関連したエントリーが第二の値を有し、前記指標付けデータフィールドにおける指標付けエントリーに指標付けされ、以前にスキャンされたことのあるオブジェクトに一意に関連付けられる、
ことを特徴とするコンピュータ読み取り可能な媒体。
【請求項１３】
請求項１２に記載のコンピュータ読み取り可能な媒体において、前記第一の値、および前記第二の値の少なくとも一つが、さらに、ハッシュ値、アルゴリズム的な機能、チェックサム、公開鍵証明書、および電子署名の少なくとも一つを含むことを特徴とするコンピュータ読み取り可能な媒体。
【請求項１４】
請求項１２に記載のコンピュータ読み取り可能な媒体において、前記第一の値がＲＯＨＶであることを特徴とするコンピュータ読み取り可能な媒体。
【請求項１５】
請求項１２に記載のコンピュータ読み取り可能な媒体において、前記第二の値がＳＳＨＶであることを特徴とするコンピュータ読み取り可能な媒体。
【請求項１６】
請求項１２に記載のコンピュータ読み取り可能な媒体において、前記第二のデータフィールドにおけるオブジェクトに関連したエントリーの少なくとも一つが、関連のあるオブジェクトについての情報を含むことを特徴とするコンピュータ読み取り可能な媒体。
【請求項１７】
エクスプロイトに対してデバイスを保護するシステムであって、
二段階ハッシュ値法を使用し、オブジェクトが以前にスキャンされたか否かを決定するように構成されたメッセージ・トラッカーと、
前記メッセージ・トラッカーに接続され、かつ、スキャンされていないオブジェクトを受信し、前記スキャンされていないオブジェクトがエクスプロイトを含むか否かを決定するように構成されるスキャナ構成要素と、
を含むことを特徴とするシステム。
【請求項１８】
請求項１７に記載のシステムにおいて、オブジェクトが、メッセージ、メッセージへの添付ファイル、電子メール、コンピュータ実行可能なファイル、およびデータファイルの少なくとも一つを含むことを特徴とするシステム。
【請求項１９】
請求項１７に記載のシステムにおいて、前記二段階ハッシュ値法が、
オブジェクトに関連する第一の値を決定する段階と、
以前にスキャンされたことがあるオブジェクトに関連した第二の値のセットを決定する段階と、
前記第一の値と前記第二の値のセットにおける少なくとも一つの値とも一致しない場合に、オブジェクトは、以前にスキャンされたことがないことを決定する段階と、
を含むことを特徴とするシステム。
【請求項２０】
請求項１９に記載のシステムにおいて、前記第一の値が、さらに、ハッシュ値、アルゴリズム的な機能、チェックサム、公開鍵証明書、および電子署名の少なくとも一つを含むことを特徴とするシステム。
【請求項２１】
請求項１９に記載のシステムにおいて、前記第一の値が、さらに、ＲＯＨＶを含むことを特徴とするシステム。
【請求項２２】
請求項１９に記載のシステムにおいて、前記二段階ハッシュ値法が、さらに、
前記第一の値が、前記第二の値のセットの少なくとも一つの値に一致する場合に、
オブジェクトに関連する第三の値を決定する段階と、
以前にスキャンされたことのあるオブジェクトに関連する第四の値のセットを決定する段階と、
前記第三の値が、前記第四の値のセットにおける少なくとも一つの値と一致しない場合に、オブジェクトが以前にスキャンされたことがないことを決定する段階と、
を含むことを特徴とするシステム。
【請求項２３】
請求項２２に記載のシステムにおいて、前記第三の値が、さらに、ハッシュ値、アルゴリズム的な機能、チェックサム、公開鍵証明書、および電子署名の少なくとも一つを含むことを特徴とするシステム。
【請求項２４】
請求項２２に記載のシステムにおいて、第三の値が、さらに、ＳＳＨＶを含むことを特徴とするシステム。
【請求項２５】
請求項２２に記載のシステムにおいて、前記二段階ハッシュ値法が、さらに、
前記第三の値が、前記第四の値のセットにおける値の少なくとも一つと、おおよそ一致した場合に、オブジェクトは以前にスキャンされたことがあることを決定する段階、
を含むことを特徴とする。
【請求項２６】
請求項１７に記載のシステムにおいて、前記システムが、ファイアーウォール、ルータ、スイッチ、サーバー、専用プラットフォームの少なくとも一つの上で、動作可能であることを特徴とするシステム。
【請求項２７】
エクスプロイトに対してデバイスを保護するための装置であって、
前記デバイスへ向けられたオブジェクトを受信するための手段と、
二段階ハッシュ値法を使用して、オブジェクトが以前にスキャンされたことがあることを決定する手段と、
オブジェクトが以前にスキャンされたことがある場合に、直ちにオブジェクトを処理する手段と、
を含むことを特徴とする装置。
【請求項２８】
請求項２７に記載の装置であって、さらに、オブジェクトが、以前にスキャンされたことがない場合に、オブジェクトをスキャンする手段を含むことを特徴とする装置。
【請求項２９】
請求項２７に記載の装置であって、さらに、
前記二段階ハッシュ値法のための以前にスキャンされたオブジェクトのリストを維持する手段と、
前記リストをアップデートする手段と、
を含むことを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータネットワークセキュリティに関連している。特に、ネットワークのためのエクスプロイトプロテクションに関連する。
【背景技術】
【０００２】
インターネットは、世界中に設置された数百万のノードに接続されており、電子メール、ウェブブラウジング、ファイル転送、インスタントメッセージ、およびその他として知られている電子メッセージの形式で情報を交換することを可能とした。ボタンをクリックすることで、世界のある場所にいるユーザーは、数千マイル離れたもう一方のコンピュータ上のファイルにアクセスすることができる。情報の送信が容易であることもあって、意図されない目的のための技術の利己的な利用が存在してきた。利己的な利用の第一の良く知られたケースは、プログラムを広めるために電子メールを使用することを伴った。一度、一つのコンピュータがプログラムに「感染」すると、そのプログラムを含んだ電子メールメッセージを他のコンピュータへ送信することが考えられる。ウィルスのように、そのプログラムは、コンピュータからコンピュータへ驚くべき速さで広がっていく。現在、ほとんど毎日のようにウィルス的なプログラム（以下、「エクスプロイト（ｅｘｐｌｏｉｔ）」）が、ニュースによって報告されている。これらのエクスプロイトのいくらかは、比較的害のないものである。その他のものは、データを破壊したり、機密情報を奪ったりする。適切な対策がなされない限り、二、三のコンピュータが感染しただけでさえ、これらのエクスプロイトは、企業のネットワークやコンピュータシステムを、その膝元へ運び、また、機密情報を盗む。
【０００３】
このエクスプロイトに対応するための最も普及している方法のうちの一つは、インターネットゲートウェイにメッセージプロテクションシステムを配置するものである。その核となる部分は、スキャン・エンジンであり、すべての通過するメッセージを検査し、そういったエクスプロイトを検出する。しかし、多くのメッセージプロテクションシステムは、メッセージの中のエクスプロイトを、効果的に検出することができるが、そういったシステムのスループットは、通常、幾分必要ではあるが、多大な時間を費やす手順を原因とするボトルネックによって制限される。多くの場合、効果的なメッセージプロテクションシステムを構築することは、当業者にとって非常に困難なことである。
【発明の開示】
【課題を解決するための手段】
【０００４】
簡潔にいうと、本発明は、二段階ハッシュ値マッチング法を使用して、エクスプロイトに対してデバイスを保護するためのシステム、および方法を提供することを目的としている。システムは、そのデバイスへ向けられたオブジェクトを受信し、そのオブジェクトが以前にスキャンされたことがあるか否かを決定するために二段階ハッシュ値法を使用する。オブジェクトが、以前にスキャンされたことがある場合、システムは、再びそのオブジェクトをスキャンすることなく、直ちにそのオブジェクトを処理する。
【０００５】
一つの態様においては、本発明は、デバイスを通過するエクスプロイトを除去するための方法を対象としている。この方法は、デバイスに向けられたオブジェクトを受信し、そのオブジェクトに関連付けられた第一の値、および以前スキャンされたことがあるオブジェクトに関連した第二の値のセットを決定する。第一の値が、第二の値のセットのうちの少なくとも一つの値と一致した場合、この方法は、そのオブジェクトに関連した第三の値、および以前スキャンされたことがあるオブジェクトに関連した第四の値のセットを決定する。もし、第三の値が、第四の値のセットのうちの少なくとも一つの値と一致した場合、この方法は、直ちにそのオブジェクトを処理する。
【０００６】
もう一つの態様では、本発明は、第一の値、および第二の値のセットが一つのオブジェクトをもう一方から、大まかに識別するだけではあるが、関連付けられたオブジェクトから効果的に計算されるような上記方法を対象とする。計算するためにより多くの時間を必要とするが、第三の値、および第四の値のセットは、一つのオブジェクトをもう一方から確実に識別するために使用される。
【０００７】
さらにもう一つの態様においては、本発明は、第一の指標付けデータフィールド、および第二のデータフィールドを有するデータ構造とともに符号化されたコンピュータ読み取り媒体を対象とする。第一の指標付けデータフィールドは、指標付けエントリーを有する。この指標付けエントリーにおいては、各指標付けエントリーは、第一の値を含む。第二のデータフィールドは、オブジェクトに関連したエントリーを含む。このオブジェクトに関連したエントリーにおいては、各オブジェクトに関連したエントリーは、第二の値を有する。各オブジェクトに関連したエントリーは、第一の指標付けデータフィールドにおいて、指標付けエントリーに指標付けられ、以前にスキャンされたオブジェクトに一意的に関連付けられる。
【０００８】
さらにもう一つの態様においては、本発明は、エクスプロイトを除去するためのシステムを対象とする。このシステムは、メッセージ・トラッカー、およびスキャナ構成要素を含む。メッセージ・トラッカーは、二段階ハッシュ値法を使用し、オブジェクトが以前にスキャンされたか否かを決定するように構成される。スキャナ構成要素は、メッセージ・トラッカーに接続され、スキャンされていないオブジェクトを受信し、そのスキャンされていないオブジェクトがエクスプロイトを含むか否かを決定するように構成される。
【０００９】
長所と同様に、本発明を特徴付ける、これら、および様様なその他の特徴は以下の詳細な説明、および関連した図面の概説を読むことで、明らかとなるであろう。
【発明を実施するための最良の形態】
【００１０】
以下に記載する本発明の好適な実施形態の詳細な説明においては、添付された図面について言及するが、それらの図面は本明細書の一部を形成し、説明の一手段として示される。特定の本発明の好適な実施形態が実施され得る。これらの実施形態は、当業者が本発明を実施することができる程度に十分に細部にわたって記載され、かつ、本発明の精神または範囲から逸脱することなく、その他の実施形態が利用され得ること、およびその他の変更がなされ得ることが理解される。したがって、以下に記載の詳細な説明は、制限的な意味で解釈されるべきではなく、本発明の範囲は、添付された請求項によって定義される。
【００１１】
以下に記載の詳細な説明において、いくつかの用語で、この文書を通じて使用されるものの第一の定義が与えられる。そして、本発明が実施される動作環境の実例の説明となる構成要素が開示される。次に、本発明が実施される動作環境の実例が開示される。最後に、エクスプロイトを検出し、除去する方法が提供される。
【００１２】
“定義”
文脈が違った意味を明確に示唆しない限り、本章における定義がこの文書へ適用される。「この文書」という語句は、本出願の明細書、特許請求の範囲、および要約を意味する。
「含む」は、含むがそれに制限されないことを意味する。したがって、Ａを含んだリストは、Ｂを含むことを排除するものではない。
「パケット」は、不定の、または選択可能なデータ量をいい、一つ以上のビット列によって表現される。一つのパケットは、開放型システム間相互接続（ＯＳＩ）モデルの任意のレイヤーにおいて見られるデータユニット、例えば、セグメント、メッセージ、パケット、データグラム、フレームシンボルストリーム、若しくは、ストリーム、ＯＳＩモデルにおいて見られるデータユニットの組み合わせ、またはＯＳＩデータユニットでないデータユニットに対応する。
「クライアント」は、一のプロセス、または複数のプロセスのセットであって、一つ以上の電気デバイス上で実行するものを意味し、例えば、図３におけるコンピュータデバイス３００のようなものである。クライアントは、ワークステーション上で動作することに制限されず、ＷＷＷサーバー、ファイルサーバー、その他のサーバー、またはその他のコンピュータデバイスのようなサーバー上で動作したり、またはそういったデバイスのグループへ分散されたりすることも考えられる。必要に応じて、「クライアント」という用語は、上記定義に加えて、または代えて、一つのデバイス、または、複数のデバイスであって、その上で、例えば、ワールドワイドウェブ（ＷＷＷ）サーバーとして機能するように構成された、コンピュータデイバス３００のようなコンピュータデバイス、またはルータ、ゲートウェイ、ワークステーション等として構成されたコンピュータデバイスを一例とする、一つ以上のクライアントプロセスが処理されるものとして解釈されるべきである。
【００１３】
同様に、「サーバー」とは、一つのプロセス、または複数のプロセスのセットであって、ＷＷＷとして構成されたコンピュータデバイス３００のような一つ以上のデバイス上で動作するものをいう。クライアントのように、サーバーは、主に他のコンピュータデバイスへサービスを提供するように構成されたコンピュータデバイス上で実行されることに制限されない。それどころか、ユーザーのワークステーションとして構成されたコンピュータデバイス３００のような、通常、クライアントコンピュータと考えられるもの上で動作したり、各デバイスが、一緒に一つのサーバーアプリケーションの構成要素となる一つ以上のプロセスを含み得る、様様な電気デバイスの間で分散されたりすることも考えられる。必要に応じて、「サーバー」という用語は、上記定義に加えて、または代えて、一つのデバイス、または、複数のデバイスであって、その上で、例えば、ＷＷＷサーバーとして機能するように構成された、コンピュータデイバス３００のようなコンピュータデバイス、またはルータ、ゲートウェイ、ワークステーション等として構成されたコンピュータデバイスを一例とする、一つ以上のクライアントプロセスが処理されるものとして解釈されるべきである。
【００１４】
エクスプロイトは、不適切にコンピュータへアクセスするために使用され得る、任意の手順、および／またはソフトウェアである。エクスプロイトは、一般的にはコンピュータウィルスとして知られているものを含むが、コンピュータへのアクセスを不適切に増加させるためのその他の方法をもまた含む。エクスプロイトは、電子メール、コンピュータによって実行可能なファイル、データファイル等のコンピュータによってアクセス可能な任意のオブジェクトにも含まれ得る。図面を参照すると、図面及びこの文書を通じて、同じような番号は、同じような部分を示唆する。
【００１５】
用語の定義は、この文書を通してもまた、発見される。これらの定義は、「意味する」、または「という」を使用して専門用語を導入する必要は無く、例や実行される機能によって導入されることも考えられる。文脈が明確に違ったように示唆しない限り、そういった定義もまた、この文書へ適用される。
【００１６】
インターネットゲートウェイにメッセージプロテクションシステムを配置することは、エクスプロイトに対する保護を行なうために使用される。各メッセージプロテクションシステムは、ゲートウェイを通過するオブジェクトを検査し、そのオブジェクトがエクスプロイトを含むか否かを判断し、エクスプロイトを伴うそれらのオブジェクトに対応するための動作をとるスキャンデーモンを含むことが考えられる。この方法によって構成される多くのメッセージプロテクションシステムがエクスプロイトから効果的に保護することができる。しかし、そういったメッセージプロテクションシステムは、ゲートウェイを通過する各オブジェクトについて、無差別に、徹底的にチェックを行なうため、そういったシステムのスループットは、著しく制限される。
【００１７】
メッセージプロテクトシステムのスループットは、多くのパラメータに依存する。スループットのための最も重要なパラメータの一つは、計算リソースの稼働率である。これを受けて、メッセージプロテクションが、解凍エンジン、ウィルスとコンテンツスキャンエンジン等のような必要な処理ではあるが、多大な時間を必要とする深刻な量を実行しなければならない場合には、ボトルネックが発生する。解凍エンジンは、アーカイブ・オブジェクトを解凍するために呼び出される。そのオブジェクトは、複数の段階において圧縮され、ネストされることが考えられる。ウィルス、およびコンテンツスキャンエンジンは、オブジェクトの中でエクスプロイトを検出する。
【００１８】
上述の多大な時間を必要とする処理の必要性を削減することは、メッセージプロテクションシステムのスループットを増加させる。システムスループットを改善するための、一つのそういった方法は、既知のエクスプロイトに関連したハッシュ値をキャッシュに記憶し、そのスキャンエンジンへオブジェクトを通過させる前に、ハッシュ値に対して検査されるオブジェクトをチェックするものである。もし、あるオブジェクトが、キャッシュされたハッシュ値の一つと一致した場合、そのオブジェクトは、スキャンエンジンへ通過させられることなく、直ちに、悪意のあるものであると決定される。システムスループットを改善するためのもう一つの方法は、最近の大きくてきれいなオブジェクトのキャッシュ値をハッシュに記憶するものである。もし検査されるオブジェクトが、キャッシュに記憶されたキャッシュ値の一つに一致した場合、そのオブジェクトは、更なる計算がなされること無く、直ちに、きれいなものであると決定される。
【００１９】
上記の二つの方法が、システムスループットを改善することを可能とし得ると同時に、安心なレベルで、一つのオブジェクトがもう一方のオブジェクトから識別されることを保証するような手段で、その方法は一般的に実行される。これを実行するために、一般的に、メッセージ・ダイジェスト−５（ＭＤ−５）、セキュア・ハッシュ・アルゴリズム（ＳＨＡ）等のような、高度なシグネチャーハッシュ機能に基づいて、ハッシュ値が計算される。そういった機能から計算されたハッシュ値は、高度なシグネチャーハッシュ値（ＳＳＨＶ）として、言及される。特に、オブジェクトが大きいときに、ＳＳＨＶを得ることに関連する計算は、比較的多くの時間を必要とする。ＳＳＨＶを得ることに関連する計算を削減する機能を有するシステムは、著しくシステムスループットを増加させることが可能である。
【００２０】
従って、本発明は、メッセージプロテクションシステムにおける二段階ハッシュ値マッチング法を目的としている。この発明は、可能であれば、ＳＳＨＶに関連した計算を避けることで、メッセージプロテクションシステムの性能をさらに改善する。この発明に従うと、このメッセージプロテクションシステムは、以前スキャンされたオブジェクトの大まかなアウトラインハッシュ値（ＲＯＨＶ）をキャッシュに記憶する。このシステムは、ＲＯＨＶを使用し、大まかに一つのオブジェクトをもう一方から識別することができる。このシステムは、ＳＳＨＶに関連する比較的多くの時間を必要とする計算を実行する前に、ＲＯＨＶを使用して初期チェックを行なう。これらの、およびその他の本発明の態様が、以下の詳細な説明を読むことで、明らかとなるだろう。
【００２１】
“実例となる動作環境”
図１−３は、本発明が実施される好適な環境の構成要素を示す。本発明の実施をするためには、すべての構成要素は必要ではないかもしれないし、構成要素の配置とタイプにおける変更が、本発明の精神、および範囲から逸脱することなくなされ得る。
【００２２】
図１は、無線ネットワーク１０５、１１０、電話ネットワーク１１５、１２０、広域ネットワーク／ローカルエリアネットワーク２００への相互接続ゲートウェイ１３０Ａ−１３０Ｄをそれぞれ示している。ゲートウェイ１３０Ａ−１３０Ｄは、それぞれ、任意でファイアーウォール１４０Ａ−１４０Ｄのようなファイアーウォール構成要素を含む。各ゲートウェイ１３０Ａ−１３０Ｄの中のＦＷという文字は、ファイアーウォールを表している。
【００２３】
無線ネットワーク１０５、１１０は、無線通信機能を有したデバイスへ、およびデバイスから、情報、音声通信のトランスポートを行なう。そのデバイスとは、例えば、携帯電話、高度自動機能電話、携帯用無線電話機、無線周波数（ＲＦ）デバイス、赤外線（ＩＲ）デバイス、ＣＢｓ、一つ以上の前記デバイスを組み合わせる統合デバイス等のようなものである。無線ネットワーク１０５、１１０は、無線ネットワークへ接続するためのインターフェースを有しているその他のデバイスへ情報をトランスポートすることも考えられる。その他のデバイスとは、ＰＤＡ、ポケットＰＣ、ウェラブル・コンピュータ、パーソナル・コンピュータ、多重プロセッサシステム、マイクロプロセッサベースの、または、プログラム可能な家庭用電化製品、ネットワークＰＣ、およびその他の適切に装備されたデバイスのようなものである。無線ネットワーク１０５、１１０は、無線、および有線構成要素の両方を含むことが考えられる。例えば、無線ネットワーク１１０は、携帯電話の電波塔（図示せず）であって、有線電話ネットワークへリンクされたものを含む。その有線電話ネットワークは、電話ネットワーク１１５のようなものである。一般的には、携帯電話の電波塔は、携帯電話、ポケベル、並びにその他の無線デバイスへ、およびそれらからの通信を伝送し、有線電話ネットワークが、通常の電話、長距離通信接リンクへ伝送する。
【００２４】
同様に、電話ネットワーク１１５、１２０は、有線通信機能を有したデバイスへ、およびそのデバイスから、情報、音声通信をトランスポートする。そのデバイスは、通常の電話、および電話ネットワークと通信を行なうための、モデム、またはその他の何らかのインターフェースを有するデバイスのようなものである。電話ネットワーク１２０のような電話ネットワークは、無線、および有線構成要素の両方を含み得る。例えば、電話ネットワークは、有線ネットワークと相互接続するために、マイクロ波リンク、衛星リンク、無線リンク、およびその他の無線リンクを含むことが考えられる。
【００２５】
ゲートウェイ１３０Ａ−１３０Ｄは、有線ネットワーク無線ネットワーク１０５、１１０、および電話ネットワーク１１５、１２０をＷＡＮ／ＬＡＮ２００へ相互接続する。ゲートウェイ１３０Ａのようなゲートウェイは、無線ネットワーク１０５、およびＷＡＮ／ＬＡＮ２００のようなネットワーク間で、データを送信する。データ送信において、ゲートウェイは、データを受信ネットワークにとって適切なフォーマットへ変換することが考えられる。例えば、無線デバイスを使用するユーザーが、ある番号を呼び出したり、ある特定の周波数へチューニングしたり、デバイスのブラウジング特性を選択することで、インターネットのブラウジングを開始することが考えられる。適切にアドレッシングされ、形式をあわせられた情報の受信で、無線ネットワーク１０５は、無線デバイスとゲートウェイ１３０Ａの間でデータを送信するように構成され得る。ゲートウェイ１３０Ａは、無線デバイスからのウェブページのための要求をハイパーテキスト転送プロトコル（ＨＴＴＰ）へ変換し、それは、ＷＡＮ／ＬＡＮ２００へ送信される。ゲートウェイ１３０Ａは、その後、そういったメッセージへの応答を、無線デバイスに準拠した形式へ変換する。ゲートウェイ１３０Ａは、無線デバイスから送信されるその他のメッセージを、ＷＡＮ／ＬＡＮ２００に適したメッセージへ変換することも考えられる。そのメッセージは、電子メール、音声通信、データベースへのコンタクト、カレンダー、予約、およびその他のメッセージのようなものである。
【００２６】
どちらの方向においても、そのデータを変換する以前、または以後に、ゲートウェイは、セキュリティ、フィルタリング、またはその他の理由のために、データをファイアーウォール１４０Ａのようなファイアーウォールに通過させる。ファイアーウォール１４０Ａのようなファイアーウォールは、エクスプロイト・ディテクターを含むか、メッセージをエクスプロイト・ディテクターへ送信する。本発明の実施形態の文脈におけるファイアーウォールとそれらの操作は、図４−６に関連してさらに詳細が説明される。簡潔にいえば、ゲートウェイは、受信ネットワークへデータを転送するべきか否かを決定するために、データをファイアーウォールに通過させる。ファイアーウォールは、電子メールのようないくらかのデータをエクスプロイト・ディテクターに通過させる。そのエクスプロイト・ディテクターは、そのデータからエクスプロイトを検出し、除去し得る。もしデータがエクスプロイトを含んでいれば、ファイアーウォールは、そのデータがゲートウェイを通過することを止める。
【００２７】
本発明の他の実施形態では、エクスプロイト・ディテクターは、ゲートウェイ、および／または、ファイアーウォールから分離した構成要素上に配置される。例えば、本発明のいくらかの実施形態においては、エクスプロイト・ディテクターは、無線ネットワーク１０５のような無線ネットワークの中に配置されたルータに含まれ得る。そのルータは、無線ネットワーク１０５のような無線ネットワークへ向けられた、および無線ネットワークから来るメッセージを受信する。これは、ゲートウェイ１３０Ａのようなネットワーク間のゲートウェイ上のエクスプロイト・ディテクターを、なくすか、若しくは冗長なものとする。理想的には、エクスプロイト・ディテクターを、ネットワークへの入り口位置に配置することで、ネットワーク内のすべてのデバイスがエクスプロイトから保護されるようにする。しかし、エクスプロイト・ディテクターは、ネットワーク内のその他の位置に配置されたり、スイッチ、ハブ、サーバー、ルータ、トラヒック・マネージャーのようなその他のデバイスに統合されたり、または、そういったデバイスから分離されたりすることが考えられる。
【００２８】
本発明のもう一つの実施形態では、エクスプロイト・ディテクターは、エクスプロイトプロテクションを提供するために探し出す、ゲートウェイのようなデバイスからアクセス可能である。この文脈においてアクセス可能とは、エクスプロイト・プロテクターが、物理的にゲートウェイを実装するサーバー、またはコンピュータデバイス上に配置されること、またはエクスプロイト・ディテクターがゲートウェイからアクセス可能なもう一方のサーバー、またはコンピュータデバイス上にあることを意味するかもしれない。この実施形態においては、ゲートウェイは、アプリケーション・プログラミング・インターフェース（ＡＰＩ）を通して、エクスプロイト・ディテクターにアクセスすることが考えられる。理想的には、エクスプロイトプロテクションを探すデバイスは、すべてのメッセージを関連するエクスプロイト・ディテクターを通して方向付ける。これにより、エクスプロイト・ディテクターは、デバイスが相互接続するネットワークの間に、「論理的に」位置する。いくらかの例においては、デバイスは、すべてのメッセージを、エクスプロイト・ディテクターを通して送信しないかもしれない。例えば、エクスプロイト・ディテクターは、無効とされるかもしれないし、明示的にまたは、暗示的にエクスプロイト・ディテクターを避けることが指定されるかもしれない。
【００２９】
一般的には、図２に関連してさらに詳細が述べられるように、ＷＡＮ／ＬＡＮ２００は、コンピュータデバイスの間で、情報を送信する。ＷＡＮの一つの例は、インターネットである。インターネットは、数百万のコンピュータが、ゲートウェイ、ルータ、スイッチ、ハブ等のホストを通じて接続される。ＬＡＮの一つの例は、単一のオフィスにおいてコンピュータを接続するために使用されるネットワークである。ＷＡＮは、複数のＬＡＮを接続するために使用されることが考えられる。
【００３０】
ＷＡＮ／ＬＡＮ、電話ネットワーク、および無線ネットワークの間の識別ははっきりしないことが、認識されるであろう。これらのネットワークの種類は、一つ以上のその他のネットワークへ論理的に帰属するかもしれない一つ以上の部分を含むかもしれない。例えば、ＷＡＮ／ＬＡＮ２００は、コンピュータデバイス間で情報を送信するためのいくらかのアナログ、またはデジタル電話回線を含むかもしれない。電話ネットワーク１２０は、無線構成要素、ボイスオーバーＩＰのようなパケットベースの構成要素を含むかもしれない。無線ネットワーク１０５は有線構成要素、および／または、パケットベースの構成要素を含むかもしれない。ネットワークとは、ＷＡＮ／ＬＡＮ、電話ネットワーク、無線ネットワーク、またはそれらのあらゆる組み合わせを意味する。
【００３１】
図２は、ルータ２１０によって相互接続された複数のローカルエリアネットワーク（ＬＡＮ）２２０、および広域ネットワーク（ＷＡＮ）２３０を示す。ルータ２１０は、パケット配信を迅速に処理する通信ネットワーク上の仲介デバイスである。可能な接続網を通じて多くのコンピュータをリンクする単一のネットワーク上で、ルータは、送信されたパケットを受信し、それらを、それらの正しいあて先へ、使用可能なルータを通して転送する。ＬＡＮの相互接続されたセット上で（異なるアーキテクチャ、およびプロトコルに基づいたものを含む）、ルータは、ＬＡＮ間のリンクとして動作し、パケットを一つからもう一方へ送信されることを可能とする。特別な目的のハードウェア、図３に関連して説明されるように、コンピュータデバイス３００のような、適切なソフトウェアを実行するコンピュータデバイス、またはそれらの組み合わせを使用することで、ルータは実装されるかもしれない。
【００３２】
ＬＡＮ内の通信リンクは、典型的には、ツイストペア、光ファイバー、同軸ケーブルを含む一方、ネットワーク間の通信リンクは、アナログ電話回線、Ｔ１、Ｔ２、Ｔ３、およびＴ４を含む完全な、若しくは一部専用デジタル回線、総合デジタル通信網（ＩＳＤＮ）、デジタル加入者回線（ＤＳＬ）、無線リンク、またはその他の当業者に知られた通信リンクを利用する。さらに、遠隔コンピュータ２４０のようなコンピュータ、およびその他の関連した電気デバイスは、ＬＡＮ２２０、またはＷＡＮ２３０に、モデムまたは一時的な電話リンクを経由して、遠隔的に接続されることができる。図２におけるＷＡＮ、ＬＡＮ、およびルータの数は、本発明の精神と範囲から逸脱することなく、適宜増やしたり、減らしたりすることが考えられる。
【００３３】
当然そのようなものとして、インターネットそれ自体は、莫大な数のそういった相互接続されるネットワーク、コンピュータ、およびルータによって形成されることが認識されるであろう。一般的に、「インターネット」という用語は、ネットワーク、ゲートウェイ、ルータおよびコンピュータであって、互いに通信するためのプロトコルの通信制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）パッケージソフトを使用するものの世界的な収集物を指す。インターネットの中心には、データおよびパケットをルーチングする、数千の商業的な、政府の、教育機関の、およびその他のコンピュータシステムを含んだ主だったノード、またはホストコンピュータの間で高速データ通信回線の基幹回線が存在する。本発明の一つの実施形態が、本発明の精神、および範囲から逸脱することなくインターネット上で実施され得る。
【００３４】
上述の通信リンクにおいて、情報を送信するために使用される媒体は、一つのコンピュータ読み取り可能な媒体、すなわち通信媒体の一つの種類を説明する。一般的には、コンピュータ読み取り可能な媒体は、コンピュータデバイスによってアクセスされることができるあらゆる媒体を含む。コンピュータ読み取り可能な媒体は、コンピュータ記憶媒体、通信媒体、またはそれらのあらゆる組み合わせを含み得る。
【００３５】
通信媒体は、一般的には、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、または搬送波、またはその他のトランスポートメカニズムのような変調データ信号におけるその他のデータを具現化し、あらゆる情報配送媒体を含む。「変調データ信号」という用語は、ひとつ以上のその特徴のセットを有する、または、信号における符号化情報に関連したような方法で変更された信号を意味する。一例として、通信媒体は、ツイストペア、同軸ケーブル、光ファイバー、導波管、並びにその他の有線メディアのような有線メディア、および音響、ＲＦ、赤外線、並びにその他の無線媒体のような無線媒体を含む。
【００３６】
インターネットは、世界中に配置されたコンピュータをリンクするというその能力の長所によって、近年、爆発的な成長を遂げた。インターネットが成長したことによって、インターネットはＷＷＷを持つ。一般的に、ＷＷＷは、世界中のＨＴＴＰ（ハイパーテキスト転送プロトコル）上に存在する、相互にリンクされたハイパーテキスト文書の全体としてのセットである。ページや、ウェブページと呼ばれる、ＷＷＷ上の文書は、一般的には、ＨＴＭＬ（ハイパーテキストマークアップ言語）、またはその他のマークアップ言語で記述され、特定のマシン、およびパスネームを指定し、それによってファイルがアクセス可能となるＵＲＬ（ユニフォーム・リソース・ロケータ）によって特定され、サーバーからＨＴＴＰを使用するエンドユーザへ送信される。ＨＭＬ文書の中に埋め込まれたタグと呼ばれるコードは、文書中の特定の言葉、および画像をＵＲＬと関連付け、キーを押し、またはマウスをクリックすることで、ユーザーは、誇張なしに世界の半分くらい遠くにあるその他のファイルへアクセスすることができる。これらのファイルは、テキスト（様様なフォントおよびスタイルによる）、グラフィック画像、ムービーファイル、メディアクリップ、および音声を、Ｊａｖａアプレット、ＡｃｔｉｖｅＸコントロール、または組み込まれたその他のソフトウェアプログラムであって、ユーザーがそれらを作動させたときに、実行するものと同様に含むことが考えられる。
【００３７】
ＷＷＷサイトを提供し得るコンピュータデバイスは、図３に関連してさらに詳細が記述される。ＷＷＷサイトを提供するために使用された場合、そういったコンピュータデバイスは、一般的には、ＷＷＷサーバーとして言及される。ＷＷＷサーバーは、ＷＷＷサイトのためハイパーテキスト文書を記憶する記憶設備を有し、かつ記憶されたハイパーテキスト文書のための要求を処理するための管理ソフトウェアを実行するインターネットに接続するためのコンピュータデバイスである。ハイパーテキスト文書は、通常、多くのハイパーリンクを含んでいる。このハイパーリンクは、すなわち、テキストのハイライトされた部分であって、その部分は、インターネット上のおそらくその他の場所に記憶されたＷＷＷサイトにおけるその他のハイパーテキスト文書へ、リンクされたものである。各ハイパーリンクは、インターネットへ接続されたサーバー上のリンクされた文書の位置を提供するＵＲＬに関連付けられ、その文書を記述する。したがって、ハイパーテキスト文書が、任意のＷＷＷサーバーから取り出されたときはいつでも、その文書は、そのＷＷＷから取り出されたものと考えられる。当業者にとって周知であるように、ＷＷＷサーバーは、サン・マイクロシステムズによるＪＡＶＡプログラミング言語によって記述されたアプリケーションプログラムのような、アプリケーションプログラムを記憶し、送信するための設備もまた含むことが考えられる。同じように、ＷＷＷサーバーは、ＷＷＷサーバーそれ自身の上で、スクリプト、およびその他のアプリケーションプログラムを実行するための設備をもまた含んでいることが考えられる。
【００３８】
有線、または、無線デバイス上に配置されたＷＷＷブラウザアプリケーションプログラムを経由して、ユーザーは、ＷＷＷからハイパーテキスト文書を、取り出すことが考えられる。Ｎｅｔｓｃａｐｅ’ｓ  ＮＡＶＩＧＡＴＯＲ（登録商標）、またはＩｎｔｅｒｎｅｔ  ＥＸＰＬＯＲＥＲ（登録商標）のような、ＷＷＷブラウザは、ＷＷＷへのグラフィカルユーザーインターフェースを提供するためのソフトウェアアプリケーションである。ＷＷＷブラウザを経由したユーザーからの要求に基づいて、ＷＷＷブラウザは、文書、およびＨＴＴＰのためのＵＲＬを使用して、適切なＷＷＷサーバーから、所望のハイパーテキスト文書へアクセスし、取り出す。ＨＴＴＰは、ＴＣＰ／ＩＰより高いレベルのプロトコルであり、特にＷＷＷの要求のために設計されている。ＨＴＴＰは、ブラウザからの要求を、ウェブサーバーへ運び、ページをウェブサーバーから、要求しているブラウザ、またはクライアントへトランスポートして返すために使われる。ＷＷＷブラウザは、ＷＷＷサーバーから、クライアントコンピュータ上で実行するための、ＪＡＶＡアプレットのようなアプリケーションプログラムを取り出すことも考えられる。
【００３９】
図３は、コンピュータデバイスを示す。そういったデバイスは、例えば、サーバー、ワークステーション、ネットワーク装置、ルータ、ブリッジ、ファイアーウォール、エクスプロイト・ディテクター、ゲートウェイのような、および／または、トラヒックマネージメントデバイスのようなものとして使用される。ＷＷＷサイトを提供するために使用された場合、コンピュータデバイス３００は、ＷＷＷＷページを、要求しているデバイス上で動作するＷＷＷブラウザアプリケーションプログラムへ送信し、この処理を終了する。例えば、コンピュータデバイス３００は、アドレス、電話番号、請求書情報、クレジットカード番号等のようなユーザー情報を受信するために、ページ、およびフォームを送信するかもしれない。さらに、コンピュータデバイス３００は、ＷＷＷサイトにおいて消費者が参加することを可能にする要求デバイスへ、ＷＷＷページを送信する。トランザクションが、インターネット、ＷＡＮ／ＬＡＮ１００、またはその他の当業者に知られた通信ネットワーク上で発生する。
【００４０】
コンピュータデバイス３００は、図３に示されたもの以外に多くの構成要素を含むかもしれないことが、認識されるであろう。しかし、本発明を実施するための説明となる実施形態を開示するためには、示された構成要素は十分なものである。図３に示されるように、コンピュータデバイス３００は、ＷＡＮ／ＬＡＮ２００、またはその他の通信ネットワークへ、ネットワークインターフェースユニット３１０を経由して接続される。ネットワークインターフェースユニット３１０は、ＷＡＮ／ＬＡＮ２００へコンピュータデバイス３００を接続するために必要な回路を含み、ＴＣＰ／ＩＰプロトコルを含むことで、様様な通信プロトコルとともに使用するために構築される。一般的には、ネットワークインターフェースウニット３１０は、コンピュータデバイス３００内に包含されたカードである。
【００４１】
コンピュータデバイス３００は、処理装置３１２、ビデオ・ディスプレイ・アダプタ３１４、および大容量メモリをも含み、それらはすべてバス３２２を経由して接続される。この大容量メモリは、ランダム・アクセス・メモリ（ＲＡＭ）３１６、読み出し専用メモリ（ＲＯＭ）３３２、およびハードディスクドライブ３２８、テープドライブ（図示せず）、光ドライブ３２６のような、ＣＤ−ＲＯＭ／ＤＶＤ−ＲＯＭドライブ、および／またはフロッピーディスクドライブ（図示せず）のような一つ以上の常設の大容量メモリをも、一般的には含むことが考えられる。この大容量メモリは、コンピュータデバイス３００の操作を制御するための基本ソフト３２０を記憶する。この構成要素は、例えば、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、または、ワシントンレッドモンドのマイクロソフト社により製造されたものの一つのような、汎用基本ソフトを含み得ることが、認識されるであろう。基本入出力システム（ＢＩＯＳ）３１８もまた、コンピュータデバイス３００の低いレベルの操作を制御するために提供される。
【００４２】
上述した大容量メモリは、コンピュータ読み取り可能媒体のもう一つの種類、すなわちコンピュータ記憶媒体を明らかにする。コンピュータ記憶媒体は、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、またはその他のデータのような情報を記憶するための任意の方法、または技術によって実装される揮発性、および不揮発性の、取り外し可能な、および取り外しできない媒体を含む。コンピュータ記憶媒体の例は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、またはその他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、またはその他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、またはその他の磁気記憶デバイス、または要求された情報を記憶するために使用されることが可能であり、コンピュータデバイスによってアクセス可能であるその他の媒体を含む。
【００４３】
この大容量メモリは、ＷＷＷサイトを提供するためにプログラムコード、およびデータを記憶し得る。さらに具体的にいえば、大容量のメモリは、特別な目的のソフトウェア３３０、およびその他のプログラム３３４を含んだアプリケーションを記憶することが考えられる。特別な目的のソフトウェア３３０が、ＷＷＷサーバーアプリケーションプログラムを含むことが考えられる。そのプログラムは、上述のロジックを実行することで、コンピュータデバイス３００によって実行された場合、ＷＷＷブラウザ表示を生成する、コンピュータ実行可能な命令を含む。コンピュータデバイス３００は、ＪＡＶＡ仮想計算機、電子メールを送信し、受信するためのＳＭＴＰハンドラーアプリケーション、ＨＴＴＰ要求を受信し、処理するためのＨＴＴＰハンドラーアプリケーション、クライアントコンピュータ上で動作するＷＷＷブラウザへ送信するためのＪＡＶＡアプレット、および安全な接続を処理するためのＨＴＴＰＳハンドラーアプリケーションを含むことが考えられる。ＨＴＴＰＳハンドラーアプリケーションは、安全な方法で、クレジットカード情報のような機密情報を送受信するための外部セキュリティーアプリケーションと通信するために使用され得る。
【００４４】
コンピュータデバイス３００は、マウス、キーボード、スキャナ、または図３に示されていないその他の入力装置のような外部デバイスと通信するための入出力インターフェース３２４を含むことも考えられる。本発明のいくらかの実施形態においては、コンピュータデバイスは、入出力構成要素を含まない。例えば、コンピュータデバイス３００は、モニターに接続されるかもしれないし、されないかもしれない。加えて、コンピュータデバイス３００は、ビデオ・ディスプレイ・アダプタ３１４、または入出力インターフェース３２４を有するかもしれないし、有しないかもしれない。例えば、コンピュータデバイス３００は、ネットワークへ接続され、ユーザー入出力デバイスを直接に接続されることが必要でないルータ、ゲートウェイ、トラヒックマネージメントデバイス等のようなネットワーク装置を実装するかもしれない。例えば、ネットワーク上でそういったデバイスは、アクセス可能であるかもしれない。
【００４５】
コンピュータデバイス３００は、さらに、光ドライブ３２６、またはハードディスクドライブ３２８のような付加的な大容量記憶設備を含むことが考えられる。ハードディスクドライブ３２８は、コンピュータデバイスによって、その他のものの間で、コンピュータデバイス３００上で動作するＷＷＷサーバーアプリケーションによって使用される、アプリケーションプログラム、データベース、およびプログラムデータを記憶するために使用される。ＷＷＷサーバーアプリケーションが、特別な目的のソフトウェア３３０、および／またはその他のプログラム３３４として記憶されるかもしれない。加えて、顧客データベース、製品データベース、画像データベース、および関係を示すデータベースは、大容量メモリ、またはＲＡＭ３１６の中に記憶され得る。
【００４６】
以下の議論から認識されるように、本発明の態様は、ルータ２１０上、コンピュータデバイス３００上、ゲートウェイ上、ファイアーウォール上、その他のデバイス上、または、それらのいくらかの組み合わせ上で、具現化されるかもしれない。例えば、エクスプロイトに対する保護を行なうプログラミング段階は、特別な目的のソフトウェア３３０、および／またはその他のプログラム３３４に含まれることが考えられる。
【００４７】
“エクスプロイトから保護するための好適なシステム構成”
図４は、本発明の一つの実施形態に従って、本発明の好適な実施形態を説明する。この実施形態においては、ネットワークのためのエクスプロイトプロテクションを提供するためのシステムが動作する。このシステムは、外部ネットワーク４０５、ファイアーウォール５００、ネットワーク装置４１５、ワークステーション４２０、ファイルサーバー４２５、メールサーバー４３０、携帯デバイス４３５、アプリケーションサーバー４４０、および電話デバイスを含む。ネットワーク４５０は、ファイアーウォール５００を、ネットワーク装置４１５、ワークステーション４２０、ファイルサーバー４２５、メールサーバー４３０、携帯デバイス４３５、アプリケーションサーバー４４０、および電話デバイス４４５に接続する。ファイアーウォール５００は、ネットワーク４５０を外部ネットワーク４０５に接続する。
【００４８】
ネットワーク装置４１５、ワークステーション４２０、ファイルサーバー４２５、メールサーバー４３０、携帯デバイス４３５、アプリケーションサーバー４４０、および電話デバイス４４５は、ネットワーク４５０に接続する機能を有するデバイスである。そういったデバイスのセットは、パーソナル・コンピュータ、多重プロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な家庭用電化製品、ネットワークＰＣ等のような有線通信媒体を使用することで、一般的には接続するデバイスを含むことが考えられる。そういったデバイスのセットは、一般的には、携帯電話、高度自動機能電話、ポケベル、携帯用無線電話機、無線周波数（ＲＦ）デバイス、赤外線（ＩＲ）デバイス、ＣＢｓ、および一つ以上の前記デバイスを組み合わせる統合デバイス等のような無線通信媒体を使用して、接続するデバイスを含むことが考えられる。いくらかのデバイスは、ＰＤＡ、ポケットＰＣ、ウェラブル・コンピュータ、または有線、および／または無線通信媒体を使用するために用意された上述のその他のデバイスのような有線、または無線の通信媒体を使用して、ネットワーク４５０へ接続する機能を有することが考えられる。上述のいずれかのデバイスを実装する好適なデバイスは、適切なハードウェア、および／またはソフトウェアによって構成される図３のコンピュータデバイス３００である。
【００４９】
例えば、ネットワーク装置４１５は、ルータ、スイッチ、または何らかのその他のネットワークデバイスであることが考えられる。ワークステーション４２０は、外部ネットワークを含むことで、ネットワーク４５０を通して到達可能な、その他のコンピュータ、およびリソースへアクセスするための、ユーザーによって使用される、コンピュータであることが考えられる。携帯デバイス４３５は、ネットワーク４５０を通して到達可能なリソースへアクセスするための、ユーザーによって使用される、携帯電話、ＰＤＡ、携帯コンピュータ、または何らかのその他のデバイスであることが考えられる。アプリケーションサーバー４４０は、データベースアプリケーション、会計アプリケーション等のようなアプリケーションを記憶し、それらへのアクセス提供することが考えられる。電話デバイス４４５は、音声、ファックス、その他のメッセージを、ネットワーク４５０を経由して送信するための手段を提供し得る。これらのデバイスのそれぞれは、本発明の精神と範囲から逸脱することなく、ネットワーク４５０と接続する機能を有する多くのその他のデバイスを表す。
【００５０】
外部ネットワーク４０５、およびネットワーク４５０は、この文書において、前に定義されたようなネットワークである。例えば、外部ネットワークは、インターネット、または何らかのその他のＷＡＮ／ＬＡＮであることが考えられる。
【００５１】
ファイアーウォール５００は、ネットワーク４５０へ到達するために、外部ネットワーク４０５からのメッセージのための経路を提供する。ファイアーウォール５００は、そういったメッセージのための唯一の経路を提供するかもしれないし、提供しないかもしれない。さらに、本発明の精神、または範囲から逸脱することなく、外部ネットワーク４０５と、ネットワーク４５０の間の経路内にその他のコンピュータデバイス（図示せず）が存在するかもしれない。ファイアーウォールは、ゲートウェイ、ルータ、スイッチ、またはその他のコンピュータデバイスに含まれるかもしれないし、またはそういったデバイスへ簡単にアクセス可能であるかもしれない。
【００５２】
エクスプロイト・ディテクター（図示せず）を含み、および／またはエクスプロイト・ディテクターへアクセスすることによって、図５に関連してさらに詳細が記述されるように、ファイアーウォール５００は、ネットワーク４５０へ接続されたデバイスのためのエクスプロイトプロテクションを提供されるかもしれない。ファイアーウォール５００は、エクスプロイト・ディテクターを通過したメッセージの特定の種類を送信するように構成されるかもしれない。例えば、ファイアーウォール５００は、すべての電子メールをエクスプロイト・ディテクターに通している間に、電子メールでないデータ上の通常の処理を実行するように構成される。
【００５３】
“好適なエクスプロイト・ディテクター”
図５は、エクスプロイトプロテクションを提供するために操作可能なファイアーウォールの構成要素を、本発明の一つの実施形態に従って図示する。ファイアーウォール５００の構成要素は、メッセージ・リスナー５０５、エクスプロイト・ディテクター５１０、および出力構成要素５４５を含む。エクスプロイト・ディテクター５１０は、メッセージ待ち行列５１５、解凍構成要素５２５、メッセージ・トラッカー５２７、スキャナ構成要素５３０、およびエクスプロイト・ハンドラー５４０を含む。メッセージ・トランスポート・エージェント５５５もまた示される。
【００５４】
ファイアーウォール５００は、図４のネットワーク４５０、および外部ネットワーク４０５に接続されたデバイス間で、送信された多くのメッセージタイプを受信するかもしれない。いくらかのメッセージは、通信に参加している二つのコンピュータ間で転送されるＷＷＷトラヒック、またはデータに関連することが考えられる。一方では、その他のメッセージは、電子メールに関連し得る。メッセージ・リスナー５０５は、メッセージをリッスンし、電子メール、またはファイルのような適切なメッセージの受信に基づいて、エクスプロイトをスキャンするためのエクスプロイト・ディテクター５１０へ、メッセージを送信する。
【００５５】
電子メールメッセージを処理する場合、エクスプロイト・ディテクター５１０は、いくぶん、電子メールメッセージのフィールドをスキャンし、検査することで、エクスプロイトプロテクションを提供する。電子メールメッセージは、一般的には、ヘッダ（一定のフィールドを含むかもしれない）、ボディ（一般的には電子メールのテキストを含む）、および一つ以上の任意の添付ファイルを含む。エクスプロイト・ディテクター５１０は、電子メールのフィールド長を調査することで、それらがあるべき長さよりも、長いか否かを決定する。「あるべき長さより長い」ことは、規格や、メールサーバー仕様書によって決定されるか、または、ファイアーウォール管理者によって選択される。もし、電子メールが、あるべき長さより長いフィールドを含む場合、そのメッセージは、以下に詳細に記述されるように、エクスプロイト・ハンドラー５４０へ送信されることが考えられる。
【００５６】
エクスプロイト・ディテクター５１０は、多くの供給メーカーよるエクスプロイトプロテクションソフトウェアを利用するかもしれない。例えば、あるクライアントが、エクスプロイト・ディテクター５１０上で動作し、そのエクスプロイト・ディテクター５１０は、ウィルスプロテクトアップデートサーバーに接続されているかもしれない。定期的に、そのクライアントは、各ベンダーに関連するサーバーにポーリングし、エクスプロイトプロテクションアップデートが可能であるか否かを調べるために、フラッグを探す。もし、アップデートが可能であれば、クライアントは、アップデートを取り出し、信頼性のためにそれをチェックする。例えば、そのアップデートが、電子署名であって、送信されたファイルのハッシュに組み込まれているものを含むことが考えられる。この電子署名は、そのファイルが信用される送信者からきたファイルであることを確認するために検査されることが考えられ、そのハッシュは、データ転送中に修正されたファイルが無いことを確認するために使用されるかもしれない。もう一方の処理は、そのアップデートを解凍し、エクスプロイト・ディテクター５１０の実行を停止し、そのアップデートをインストールし、かつエクスプロイト・ディテクター５１０を再開する。
【００５７】
エクスプロイト・ディテクター５１０は、例えば、情報技術チームによって作られた、カスタマイズされた、エクスプロイトプロテクションアップデートをポーリングするように構成されているかもしれない。この処理は、上記の供給メーカーへのポーリングと同様の方法で、動作するかもしれない。
【００５８】
ポーリングに加えて、またはそれに代えて、アップデートは、エクスプロイト・ディテクター５１０へ、プッシュされることが考えられる。クライアントは、エクスプロイトプロテクションアップデートサーバーからのアップデートをリッスンする、エクスプロイト・ディテクター５１０上で動作するかもしれない。ファイアーウォール４１０上で動作するエクスプロイトプロテクションをアップデートするために、そういったサーバーは、クライアントとの接続をオープンし、エクスプロイトプロテクションアップデートを送信する。さらに、上述されたハッシュを使用して、データ転送中にファイルが変更されていないことを確認するために、クライアントは、送信されたアップデートをチェックするかもしれない。
【００５９】
エクスプロイト・ディテクター５１０の構成要素が、ここで説明される。エクスプロイトをスキャンするためのメッセージの受信に基づいて、エクスプロイト・ディテクター５１０は、メッセージ待ち行列５１５内に、メッセージを記憶する。解凍構成要素５２５は、メッセージが圧縮されているか否かを決定する。もし、メッセージが圧縮されていなければ、メッセージを構成するビットは、直列にメッセージ・トラッカー５２７へ送信される。もし、メッセージが圧縮されている場合、解凍構成要素５２５は、メッセージ・トラッカー５２７へそれを送信する前に、一回以上そのメッセージを解凍することが考えられる。メッセージが複数回にわたって圧縮されている場合には、解凍は、ネストされた方法で行なわれ得る。例えば、あるメッセージに含まれるファイルのセットが、まずジップ（ｚｉｐ）され、その後、ＵＮＩＸ（登録商標）の「ｔａｒ」コマンドを使用することで、ター（ｔａｒ）が実行される。ファイルのターを解凍した後、解凍構成要素５２５は、ターが解凍されたファイルが、ＷｉｎＺｉｐのようなジップを実行するソフトウェアによって、圧縮されているかを決定するかもしれない。ジップが解凍されたファイルを得るために、解凍構成要素５２５は、それから、ターを解凍したファイルのジップを解凍することが考えられる。解凍されたファイルを得るために、解凍構成要素５２５が解凍する二つ以上の圧縮レベルが存在するかもしれない。
【００６０】
メッセージ・トラッカー５２７は、解凍されたメッセージ、および圧縮されなかったメッセージを、解凍構成要素５２５から受信する。メッセージ・トラッカーは、以前スキャンされたメッセージ、および／またはその添付ファイルのスキャンを最小化することで、エクスプロイト・ディテクターを通過するメッセージの経路を最適化することを対象とする。メッセージ・トラッカー５２７は、メッセージ、または添付ファイルが、エクスプロイトについて以前スキャンされたか否かを決定することで、これを達成する。メッセージ・トラッカー５２７が、スキャンされていないと決定したメッセージ、および添付ファイルは、スキャナ構成要素５２７へ転送されることが考えられる。メッセージ・トラッカー５２７が、メッセージ、または添付ファイルが以前にスキャンされたことがあると決定した場合には、メッセージ・トラッカー５２７は、さらなる処理のために、そのメッセージ、または添付ファイルをその他のメッセージプロテクション構成要素へ転送するように構成される。スキャナ構成要素５３０、またはそれに関連した構成要素がアップデート、改訂、修正等される場合、メッセージ・トラッカー５２７は、以前にスキャンされたメッセージ、または添付ファイルをスキャンすることを可能とするように構成されることもまた考えられる。
【００６１】
二段階ハッシュ値マッチング法を実行することで、オブジェクト（メッセージ、添付ファイル等）がエクスプロイトについて以前スキャンされたか否かを、メッセージ・トラッカー５２７が決定するかもしれない。特に、メッセージ・トラッカー５２７は、ＲＯＨＶ、およびＳＳＨＶを、以前スキャンされたオブジェクトに関連付ける。メッセージ・トラッカー５２７は、以前にスキャンされたオブジェクトのＲＯＨＶ、およびＳＳＨＶをキャッシュに記憶し、特定のオブジェクトがスキャンされるべきか、またはすぐに処理されるべきかを決定する。ＲＯＨＶは、一般的には、簡単な計算を要求するだけの簡単な技術に基づいて決定される。例えば、あるオブジェクトのＲＯＨＶは、ファイルの最初の二、三バイト、または任意の部分のハッシュ値（ＸＯＲハッシュのような）から決定されることが考えられる。ＲＯＨＶは、メッセージ・トラッカー５２７が、おおよそ一つのオブジェクトを他のオブジェクトと識別できるようにする。あるオブジェクトが、メッセージ・トラッカー５２７によってキャッシュに記憶されたＲＯＨＶの一つに一致する場合には、そのオブジェクトがＳＳＨＶを使用するさらなる検査をされることについて正当な理由となる。
【００６２】
ＳＳＨＶは、一般的には、メッセージ・ダイジェスト−５（ＭＤ−５）、セキュア・ハッシュ・アルゴリズム（ＳＨＡ）、セキュア・ハッシュ・スタンダード等のような高度なハッシュ機能に基づいて決定される。この値は、公開鍵証明書、電子署名、チェックサム機能、または同様のアルゴリズム的メカニズムであって、一つのオブジェクトを他のオブジェクトから識別するための値を提供するものに基づいて決定されることもまた考えられる。もし、あるオブジェクトが、メッセージ・トラッカー５２７によってキャッシュに記憶されたＳＳＨＶの一つに一致した場合、そのオブジェクトは、スキャナ構成要素５３０によってスキャンされることなく、処理されることが考えられる。
【００６３】
メッセージ・トラッカー５２７によって実行される二段階ハッシュ値マッチング法は、観測に基づいている。二つのオブジェクトのＲＯＨＶ、およびＳＳＨＶの両方が一致したときは、二つのオブジェクトが本当に同一であることについて信用性が非常に高い。また、二つのオブジェクトの二つのＲＯＨＶが一致しない場合は、二つのオブジェクトは異なる。
【００６４】
メッセージ・トラッカー５２７は、そのオブジェクトをその値に関連付けるために十分な情報をＲＯＨＶ、およびＳＳＨＶに記憶するように構成されている。その値は、リスト、データベース、ファイル、表等の中に記憶される。さらに、その値は、局所的に記憶されたり、分散する方法で記憶されたりするかもしれない。メッセージ・トラッカー５２７は、システム性能を向上させるために、メモリ内のＲＯＨＶ、およびＳＳＨＶをキャッシュに記憶するように構成されることもまた考えられる。
【００６５】
スキャナ構成要素５３０は、多くの供給メーカーからのエクスプロイトプロテクションソフトウェアを使用することで、メッセージをスキャンするかもしれない。例えば、スキャナスキャナ構成要素５３０は、メッセージをトレンドマイクロ（Ｔｒｅｎｄ  Ｍｉｃｒｏ）、ノートン（Ｎｏｒｔｏｎ）、マカフィー（ＭａｃＡｆｅｅ）、ネットワークアソシエイツ（Ｎｅｔｗｏｒｋ  Ａｓｓｏｃｉａｔｅｓ，  Ｉｎｃ．）、カスパースカイ・ラボ（Ｋａｓｐｅｒｓｋｙ  Ｌａｂ），ソフォス（Ｓｏｐｈｏｓ）等のようなウィルスプロテクションソフトウェア供給メーカーによるソフトウェアにメッセージを通過させるかもしれない。加えて、スキャナ構成要素５３０は、独自仕様の、またはユーザーによって定義されたアルゴリズムをメッセージに適用し、エクスプロイトをスキャンするかもしれない。例えば、ユーザーによって定義されたアルゴリズムであってバッファオーバーフローのためのテストを実行するためのものが、エクスプロイトを検出するために使用されるかもしれない。
【００６６】
スキャナ構成要素５３０は、内部メカニズムであって、管理者がネットワークの外部において分散されることを避けたいメッセージおよびコンテンツのための電子署名を生成するものをもまた含むことが考えられる。例えば、図４を参照すると、コンピュータデバイスの一つの上でユーザーが、メッセージを生成し、または外部ネットワーク４０５には秘密であるメッセージを転送することを試みる。スキャナ構成要素５３０は、各メッセージについて、そういった電子署名の受信したかを（外部向けメッセージを含む）検査する。電子署名が、そのメッセージは転送されるべきでないことを示唆していることが発見された場合には、スキャナ構成要素５３０は、そのメッセージを誰が送信したか、そのメッセージが送信された時間、およびその他のメッセージ関連したデータについては、情報とともに構成要素を隔離するために、そのメッセージを転送する。あるメッセージがエクスプロイトを有することを決定した場合には、そのメッセージは、エクスプロイト・ハンドラー５４０へ送信されるかもしれない。エクスプロイト・ハンドラー５４０は、例えば、ネットワーク管理者によって、さらなる調査のためにエクスプロイトを含んだメッセージを記憶することが考えられる。出力構成要素５４５は、ネットワークを経由してメッセージを転送するように動作しているハードウェア、および／またはソフトウェアである。例えば、出力構成要素５４５がネットワークインターフェースユニット３１０のようなネットワークインターフェースを含むことが考えられる。
【００６７】
ファイアーウォールが、エクスプロイト・ディテクターにメッセージを通過させる傍らで、その他のタスクを実行するかもしれない。例えば、ファイアーウォールが特定のアドレスへ、または特定のアドレスからのメッセージをブロックするかもしれない。メッセージ・トランスポート・エージェント５５５は、電子メールを受信するコンピュータデバイスである。電子メールを受信するデバイスは、メールサーバーを含む。メールサーバーの例としては、マイクロソフト・エクスチェンジ（Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｈａｎｇｅ）、キューメール（Ｑ  Ｍａｉｌ）、ロータスノーツ（Ｌｏｔｕｓ  Ｎｏｔｅｓ）等を含む。図４を参照すると、ファイアーウォール５００は、メッセージをメールサーバー４３０へ転送するかもしれない。
【００６８】
“エクスプロイトをスキャンするための説明的な方法”
図６は、本発明の一つの実施形態にしたがった、オブジェクトのＳＳＨＶを使用したオブジェクト検査のための好適な処理を図式的に表現したものである。オブジェクト６１０は、エクスプロイトの検査をされるべきものである。図に示されるように、処理６００は、ホワイトリスト、およびブラックスリストチェックの両方を含む。このチェックは、オブジェクト６１０が以前にスキャンされたか否かを決定するために実行される。処理６００は、両方のチェック、または単に一つのチェックとともに実行されるかもしれない。
【００６９】
ホワイトリストチェックは、ブロック６１５によって表されている。ホワイトリストチェックは、以前にスキャンされ、きれいである（すなわち、いかなるエクスプロイトも伴わない）と決定されたオブジェクトのＳＳＨＶを使用する。オブジェクト６１０のＳＳＨＶがブロック６１５におけるＳＳＨＶに対してマッチングが行なわれる。もし、一致が発見された場合、オブジェクト６１０がきれいであると決定され、ブロック６３０へ送られる。ブロック６３０では、オブジェクト６１０は、きれいなオブジェクトとして、処理される。例えば、オブジェクト６１０は、あて先へ転送される。
【００７０】
ブロック６１５へ戻ると、もし一致が発見されなかった場合、処理６００は、ブロック６２０で継続される。ブロック６２０では、ブラックリストチェックが実行される。ブラックリストチェックは、以前スキャンして、悪意のあるもの（すなわち、エクスプロイトを有する）と決定されたオブジェクトのＳＳＨＶを使用する。オブジェクト６１０のＳＳＨＶは、ブロック６２０におけるＳＳＨＶに対してマッチングが行なわれる。もし、一致が発見されれば、オブジェクトと６１０は、悪意のあるものと決定され、ブロック６３５へ送信される。ブロック６３５においては、オブジェクト６１０は、悪意のあるオブジェクトとして処理される。例えば、オブジェクト６１０は、隔離されたり、エクスプロイトを除去するために処理されたり等されることが考えられる。
【００７１】
ブロック６２５に戻ると、もし一致が発見されなかった場合には、オブジェクト６１０は、スキャンされていないオブジェクト（すなわち、以前にスキャンされたことがない）と決定される。この場合、オブジェクト６１０は、ブロック６２５によって表されるように、スキャンエンジンへ通過される。スキャンエンジンは、オブジェクト６１０をスキャンし、そのオブジェクトがきれいか、悪意があるかを決定する。もし、オブジェクトがきれいであれば、そのオブジェクトのＳＳＨＶが計算され、ブロック６１５のホワイトリストに記憶される。もし、オブジェクトが悪意のあるものであれば、そのオブジェクトのＳＳＨＶが計算され、ブロック６２０のブラックリストに記憶される。
【００７２】
図７は、本発明の一つの実施形態にしたがった、二段階ハッシュ値マッチング法を使用した、オブジェクト検査のための好適な処理を図式的に示したものである。オブジェクト７１０は、エクスプロイトの検査をされるものである。プロセス７００は、論理的には、ＲＯＨＶ段階、および図６に関連して詳細に上述されたＳＳＨＶ段階を含む。ＲＯＨＶ段階は、可能であれば、ＳＳＨＶ段階に関連した計算を実行することを避けるために実行される。実際には、ＲＯＨＶ段階、およびＳＳＨＶ段階は、実装理由のために統合される。
【００７３】
ＲＯＨＶ段階は、ブロック７１５によって表される。ＲＯＨＶ段階は、以前スキャンされたオブジェクトのＲＯＨＶを使用する。オブジェクト７１０のＲＯＨＶは、ブロック７１５においてＲＯＨＶに対してマッチングが行なわれる。もし、一致が見つからなければ、オブジェクト７１０は、まだ、スキャンされていないオブジェクトであると決定され、スキャンされるために、スキャンエンジン７２５へ送信される。
【００７４】
ブロック７１５に戻ると、もし一致が発見された場合は、オブジェクト７１０は、以前スキャンされた可能性が高いと決定され、さらなるテストを行なうために、ブロック７２０で表されるＳＳＨＶ段階へ通過させられる。ブロック７２０においては、オブジェクト７１０のＳＳＨＶが計算され、ブロック７２０において既知のエクスプロイトのＳＳＨＶに対してマッチングが行なわれる。もし、一致が発見された場合には、オブジェクト７１０は、以前にスキャンされたことがあると決定され、ブロック７３５へ送信される。ブロック７３５では、オブジェクト７１０は、悪意のあるオブジェクトとして処理される。
【００７５】
ブロック７２０に戻ると、一致が発見されなかった場合には、オブジェクト７１０は、スキャンされていないオブジェクトとして決定される。この場合、オブジェクト７１０は、ブロック７２５で表される、スキャンエンジンへ通過させられる。スキャンエンジンは、オブジェクト７１０をスキャンして、オブジェクトがきれいであるか、または悪意があるか決定する。もし、オブジェクトが悪意があるものであれば、ＲＯＨＶ段階７１５におけるリストは、オブジェクト７１０のＲＯＨＶとともにアップデートされ、ＳＳＨＶ段階７２０は、オブジェクト７１０のＳＳＨＶとともに、アップデートされる。
【００７６】
図８は、本発明の一つの実施形態にしたがった、二段階ハッシュ値マッチング法を実行するデータ構造を図式的に示したものである。データ構造８００は、ＲＯＨＶに関連した、指標付けエントリーとともに第一の指標付けデータフィールド８１０を含む。ＲＯＨＶにともなう各指標付けエントリーは、一つ以上のＳＳＨＶエントリーを含む第二のデータフィールド８１５に関連付けられることが考えられる。各ＳＳＨＶエントリーは、特定のオブジェクトに関連付けられ、そのオブジェクトについての情報を含んでいるかもしれない。
【００７７】
図９は、本発明のひとつの実施形態にしたがった、エクスプロイトを検出するためのフローチャートを図示したものである。開始ブロックから移動すると、処理９００は、ブロック９１０へ進む。ブロック９１０では、検査するオブジェクトを決定する。ブロック９１５において、この処理は、検査のためにオブジェクトの準備を行なう。例えば、オブジェクトがメッセージである場合には、この処理は、メッセージにおけるカプセル化を処理しなければならない。各オブジェクトが別々に検査されるために、この処理は、メッセージから添付ファイルを分離しなければならないことも考えられる。メッセージ、および添付ファイルが圧縮された場合は、この処理は、それらを解凍しなければならないかもしれない。ブロック９２０において、オブジェクトのＲＯＨＶが決定され、以前スキャンされたオブジェクトのＲＯＨＶに対してマッチングが行なわれる。
【００７８】
決定ブロック９２５において、検査されているオブジェクトのＲＯＨＶが、以前スキャンされたＲＯＨＶの少なくとも一つと一致するか否かの決定をする。もし、一致があった場合には、処理９００は、ブロック９３０へ移動する。ブロック９３０においては、オブジェクトのＳＳＨＶが決定され、以前スキャンされたオブジェクトのＳＳＨＶに対してマッチングが行なわれる。
【００７９】
決定ブロック９３５において、オブジェクトのＳＳＨＶが、以前スキャンされたオブジェクトのＳＳＨＶの少なくとも一つに一致するか否かを決定する。もし、一致が見つからなかった場合には、そのオブジェクトは、スキャンされていないオブジェクトである。これは、９２０において一致するＲＯＨＶが、そのオブジェクトが以前スキャンされたオブジェクトのいずれかと同一であるかを、大まかに決定しただけであるために、発生し得ることである。もし一致がなければ、処理は、ブロック９４０へ進む。もし一致が発見されれば、そのオブジェクトは、スキャンエンジンによりスキャンされることなく、直ちに処理される。この場合は、処理９００は決定ブロック９５０へ進む。
【００８０】
ブロック９２５へ戻ると、オブジェクトのＲＯＨＶが、以前スキャンされたオブジェクトのいずれとも一致しないときは、そのオブジェクトは、スキャンされていないオブジェクトであり、処理９００はブロック９４０へ進む。
【００８１】
ブロック９４０において、オブジェクトは、スキャンエンジンによってスキャンされる。もし、エクスプロイトが発見されれば、処理９００は、ブロック９４５へ移動する。ブロック９４５においては、オブジェクトのＲＯＨＶ、およびＳＳＨＶが決定され、以前スキャンされたオブジェクトのＲＯＨＶ、およびＳＳＨＶへそれらが加えられる。具体的には、ＲＯＨＶ、およびＳＳＨＶブロック９２０、およびブロック９３０におけるブラックリストへ追加される。もし、オブジェクトの中に、エクスプロイトが発見されず、かつ、ホワイトリストが使用された場合には、オブジェクトのＳＳＨＶは、そのホワイトリストへ追加される。処理９００は、決定ブロック９５０において継続される。
【００８２】
決定ブロック９５０においては、オブジェクトが悪意のあるものであるか否かの決定がなされる。もし、オブジェクトが悪意のあるものであれば、そのオブジェクトは、ブロック９６０において、悪意のあるオブジェクトとして処理される。もし、そのオブジェクトが、悪意のないものであれば、そのオブジェクトは、ブロック９５５において、きれいなオブジェクトとして処理される。そして、この処理は終了する。ここまでで、要点が述べられたこの処理は、各受信されたオブジェクトに対して繰り返し実行されることが考えられる。
【００８３】
コンピュータシステム上で動作するコンピュータに実装された段階の順序、またはプログラムモジュールとして、および／またはコンピュータシステム内の相互接続されたマシン論理回路、または回路モジュールとして、本発明の様様な実施形態が実装され得る。この実装は、本発明を実行するコンピュータシステムの性能要求にしたがった選択の問題である。本開示を考慮すると、当業者にとっては、開示された様様な実施形態の機能、動作は、ソフトウェア、ファームウェア、特別な目的のためにデジタルロジック、またはそれらのあらゆる組み合わせにおいて、本発明の精神、および範囲から逸脱することなく、実装されることが認識され得る。
【００８４】
上記、明細書、例、およびデータは、本発明の構成を製造、使用するための完全な記述を提供する。多くの本発明の実施形態が、本発明の精神と範囲から逸脱することなくなされ得る。本発明は、特許請求の範囲によって定義される。
【図面の簡単な説明】
【００８５】
【図１】図１は、本発明の実施形態にしたがった、本発明が実施され得る好適な環境の構成要素を示す。
【図２】図２は、本発明の実施形態にしたがった、本発明が実施され得る好適な環境の構成要素を示す。
【図３】図３は、本発明の実施形態にしたがった、本発明が実施され得る好適な環境の構成要素を示す。
【図４】図４は、本発明の実施形態にしたがった、ネットワーク向けエクスプロイトプロテクションを提供するためのシステムが動作する好適な環境を図示する。
【図５】図５は、本発明の実施形態にしたがった、エクスプロイトプロテクションを提供するために動作可能なファイアーウォールの構成要素を図示する。
【図６】図６は、本発明の実施形態にしたがった、オブジェクトのＳＳＨＶを使用した、オブジェクト検査のための好適な処理を図式的に示す。
【図７】図７は、本発明の実施形態にしたがった、二段階ハッシュ値マッチング法を使用した、オブジェクトを検査する好適な処理を図式的に示す。
【図８】図８は、本発明の実施形態にしたがった、二段階ハッシュ値マッチング法を実装するデータ構造を図式的に示す。
【図９】図９は、本発明の実施形態にしたがった、エクスプロイト検出のためのフローチャートを図示する。
【図１】
2007528040.tif 000003
【図２】
2007528040.tif 000004
【図３】
2007528040.tif 000005
【図４】
2007528040.tif 000006
【図５】
2007528040.tif 000007
【図６】
2007528040.tif 000008
【図７】
2007528040.tif 000009
【図８】
2007528040.tif 000010
【図９】
2007528040.tif 000011