(57)【要約】【課題】データパケットを分類するため、およびコンピュータネットワークのセキュリティをインプリメントするための方法および装置を提供すること。【解決手段】コンピュータネットワークにおいて、データパケットを検査する方法であって、１つ以上のデータパケットは、関連ヘッダデータおよびコンテンツを有し、該方法は、データパケットを受信するステップと、該ヘッダおよびコンテンツに含まれる情報を用いて、該データパケットを分類することを含む、該データパケットを調べて、該データパケットを分類するステップと、該ヘッダ情報および該コンテンツの双方に基づいて、該パケットを処理するフロー命令を決定するステップと、該フロー命令を用いて、該パケットを処理するステップとを包含する、方法。【選択図】なし【特許請求の範囲】
【請求項１】
コンピュータネットワークにおいて、データパケットを検査する方法であって、１つ以上のデータパケットは、関連するヘッダデータおよびコンテンツを有しており、該方法は、
データパケットを受信するステップと、
該データパケットを調べて、該データパケットを分類するステップであって、該ヘッダおよびコンテンツに含まれる情報を用いて、該データパケットを分類することを含む、ステップと、
該ヘッダ情報および該コンテンツの双方に基づいて、該パケットを処理するためのフロー命令を決定するステップと、
該フロー命令を用いて、該パケットを処理するステップと
を包含する、方法。
【請求項２】
前記データパケットを調べることは、前記コンテンツに基づいて、前記パケットを分類することを含む、請求項１に記載の方法。
【請求項３】
前記パケットを処理することは、コンテンツベースのプロトコルデコーディングを含む、請求項１に記載の方法。
【請求項４】
前記パケットを処理することは、コンテンツベースのオブジェクト抽出を含む、請求項１に記載の方法。
【請求項５】
前記パケットを処理することは、コンテンツベースのパターンマッチングを含む、請求項１に記載の方法。
【請求項６】
前記パケットを処理することは、ログすること、格納すること、前記パケットの通過を許可すること、アラームを設定すること、ブロックすること、または該パケットをドロップすることからなるグループから選択される、請求項１に記載の方法。
【請求項７】
コンピュータネットワークにおいて、データパケットを検査する方法であって、１つ以上のデータパケットは、関連するヘッダデータおよびコンテンツを有しており、該方法は、
該データパケットを受信するステップと、
該データパケットを調べて、該データパケットを分類するステップであって、該データパケットのヘッダ部分に含まれる情報を用いて、該データパケットを分類することと、該データパケットのコンテンツ部分に基づいて、該データパケットを個別に分類することとを含む、ステップと、
該ヘッダ情報に基づいて、該データパケットを処理するためのフロー命令を決定するステップと、
該コンテンツ部分に基づいて、該データパケットを処理するための特別処理命令を決定するステップと、
該データパケットを処理するための該フロー命令および特別処理命令の中から、選択された命令を決定するステップと、
該選択された命令に従って、該データパケットを処理するステップと
を包含する、方法。
【請求項８】
前記特別処理命令は、コンテンツベースのプロトコルデコーディングを実行するための命令を含む、請求項７に記載の方法。
【請求項９】
前記特別処理命令は、コンテンツベースのオブジェクト抽出を実行するための命令を含む、請求項７に記載の方法。
【請求項１０】
前記特別処理命令は、コンテンツベースのパターンマッチングを実行するための命令を含む、請求項７に記載の方法。
【請求項１１】
前記パケットを処理することは、ログすること、格納すること、前記パケットの通過を許可すること、アラームを設定すること、ブロックすること、または該データパケットをドロップすることからなるグループから選択される、請求項７に記載の方法。
【請求項１２】
デバイスであって、該デバイスは、
受信データパケットを分類するマルチモード分類エンジンであって、該マルチモード分類エンジンは、
データパケットを、該データパケットと関連するヘッダデータに従って分類するヘッダ分類エンジンであって、該ヘッダ分類エンジンは、第一の分類データを生成する、ヘッダ分類エンジンと、
データパケットを、該データパケットのコンテンツに従って分類するコンテンツ分類エンジンであって、該コンテンツ分類エンジンは、第二の分類データを生成する、コンテンツ分類エンジンと、
を備える、マルチモード分類エンジンと、
該データパケットを評価するセキュリティブロックであって、該評価することは、該第一および第二の分類データの一方または双方を用いて、該データパケットを評価することを含む、セキュリティブロックと
を備える、デバイス。
【請求項１３】
前記マルチモード分類エンジンから前記第二の分類データを受信し、受信データパケットのコンテンツベースのプロトコルデコーディングを提供するように動作するプロトコルブロックをさらに備える、請求項１２に記載のデバイス。
【請求項１４】
前記マルチモード分類エンジンから前記第二の分類データを受信し、受信データパケットのコンテンツベースのオブジェクト抽出を提供するように動作するオブジェクト抽出ブロックをさらに備える、請求項１２に記載のデバイス。
【請求項１５】
前記マルチモード分類エンジンは、前記データパケットと関連するセッションデータを決定するセッションマネージャをさらに備える、請求項１２に記載のデバイス。
【請求項１６】
前記マルチモード分類エンジンは、前記第二の分類データによって、インデックスされたルールをさらに備える、請求項１２に記載のデバイス。
【請求項１７】
前記コンテンツ分類エンジンは、署名マッチングエンジンを含む、請求項１２に記載のデバイス。
【請求項１８】
前記マルチモード分類エンジンは、１つ以上のパターンを含む前記署名マッチングエンジンによって使用される署名データベースをさらに備える、請求項１７に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータネットワークセキュリティを制御するための方法および装置に関する。
【背景技術】
【０００２】
パケットフィルタは、ネットワーク層におけるデータ上で動作し得、信頼できないネットワークによるアタックから信頼できるネットワークを守る。パケットフィルタは、ネットワーク層において動作し得、プロトコルタイプ、発信元およびあて先のＩＰアドレス、発信元およびあて先のポート番号を含むＴＣＰ／ＩＰヘッダ（すなわち、５組の分類）のフィールドを検査する。パケットフィルタの不利は、複雑なセキュリティポリシーを有する大きなネットワークにおける、低いレベルのセキュリティと不十分な管理とを含む。パケットフィルタの単体は、頑強な保護を提供し得ない。なぜならば、パケットフィルタは、所与の通信のコンテキストに気付かないからである。すなわち、パケットを分類するときには、パケットフィルタは、所与のパケットまたは一連のパケットが形成するメッセージ内に含まれる情報に関係しない。さらに、パケットフィルタは、アプリケーション層において、データを検査しないので、パケットフィルタは、アプリケーション層を用いて試みられるセキュリティ侵入に対して脆弱である。
【０００３】
ファイアウォールおよび侵入検知システムは、認証されていない、悪意のある（ｍａｌｉｃｉｏｕｓ）、または破壊的なユーザからコンピュータネットワークを保護するために使用されるデバイスである。ファイアウォールは、ローカルエリアネットワークの外側のユーザからローカルエリアネットワークを守るために、使用され得る。ファイアウォールは、ローカルエリアネットワークの外側のユーザに送信される、または該ユーザから送信されるメッセージをチェックし、ルートし、メッセージにラベルを付け得る。侵入検出システム（ＩＤＳ）は、ネットワークと通信される情報を調べ、疑わしい挙動パターンを認識するために、使用され得る。ＩＤＳによって取得された情報は、認証されていないユーザまたは破壊的なユーザが、ネットワークにアクセスすることをブロックするために、使用され得る。侵入防止システム（ＩＰＳ）は、ＩＤＳのインライン（ｉｎ−ｌｉｎｅ）バージョンである。ＩＰＳは、情報がネットワーク内で通信されるときに、情報を調べ、疑わしい挙動パターンを認識するために使用され得る。ＩＰＳを含む従来のネットワークトポロジーが、図１ａに示される。ネットワーク１０は、１つ以上のエンドユーザワークステーション１４と結合するローカルエリアネットワーク１２を含む。ローカルエリアネットワーク１２は、インターネットのようなワイドエリアネットワーク１６と結合される。ローカルエリアネットワーク１２とワイドエリアネットワーク１６との間に、ＩＰＳ１８が結合され得る。
【０００４】
従来のＩＰＳは、図１ｂに示されるアーキテクチャを有し得、一連の機能エレメントを含み得る。パケットを通過させる、またはそうでない場合には処理する（例えば、ドロップされる）という決定がなされるまで、パケットは分類ブロックにおいて受信され、ブロックのシーケンスを介して一列に処理される。従来のＩＰＳ１８は、分類ブロック６０と、プロトコルデコードブロック６２と、オブジェクト抽出ブロック６４と、セキュリティブロック６６とを含む。
【０００５】
分類ブロック６０は、パケットが到着するときに、パケットを、所与のパケット内に含まれるヘッダ情報に基づいて分類するために使用される。典型的には、プロトコルタイプと、送信元およびあて先のＩＰアドレスと、送信元およびあて先のポート番号とを使用して、パケットフィルタと類似の方法で、分類ブロック６０が、パケットを分類する。所与のパケットに関連する分類データは、素早く、評価され得、ルールセットの１つ以上のルールにマッチされ得る。分類ブロック６０は、分類データに基づいてインデックスされ、所与のパケットを処理するためのマッチングルールを含む分類データ構造を含み得る。分類に基づいて、所与のパケットのさらなる処理は、結果として、パケットを通過させることまたはドロップすることを包含し得る。さらなる処理は同様に、ＩＰＳの他のブロックにおけるさらなる処理を包含し得る。ルールは、ＩＰＳの１つ以上の後半のブロック（例えば、セキュリティブロック６６）における特別な処理のための指示子を含み得る。
【０００６】
プロトコルデコードブロック６２は、パケット内に含まれるプロトコル情報をデコードするために使用され得る。プロトコル情報は、分類を超えたパケットに対する特別の対処を決定するために使用され得る。
【０００７】
オブジェクト抽出ブロック６４は、特別な処理のために、パケットからオブジェクトをバッファし、構築し、抽出するために使用され得る。例えば、従来の電子メールシステムにおいてファイルに添付されるオブジェクト（例えば、ｚｉｐメッセージ、実行可能ファイル（．ｅｘｅファイル）など）は、特別な処理のために抽出され得る。
【０００８】
セキュリティブロック６６は、ＩＰＳ１８における最後のブロックであり、マッチングのための独自のセキュリティアルゴリズムを含む。独自のセキュリティアルゴリズムは、ＩＰＳが、パケットに対して、アプリケーション層においてアプリケーションを検出するようにマッチするために使用する署名の形態をとり得る。問題となるのは、ＩＰＳ１８において、この時点において、マッチが検出される場合に従来のＩＰＳ１８に対する処理選択が、所与のパケットをドロップすることだけだということである。さらなるルールチェックまたは他の特別な処理は、例えば、検出されるアプリケーションに基づいて行われ得ない。
【発明の開示】
【課題を解決するための手段】
【０００９】
本発明は、データパケットを分類するための、およびコンピュータネットワークセキュリティをインプリメントするための方法および装置（コンピュータプログラム製品を含む）を提供する。
【００１０】
一局面において、方法は、データパケットを受信することと、該データパケットを調べて、該データパケットを分類することであって、ヘッダおよびコンテンツに含まれる情報を用いて、該データパケットを分類することを含み、該ヘッダ情報およびコンテンツの双方に基づいて、該パケットを処理するためのフロー命令を決定することと、該フロー命令を用いて、該パケットの処理をすることとを含む。
【００１１】
本発明の局面は、以下の特徴の１つ以上を含み得る。データパケットを調べることは、コンテンツに基づいて、パケットを分類することを含み得る。パケットを処理することは、コンテンツベースのプロトコルコーディング、コンテンツベースのオブジェクト抽出、またはコンテンツベースのパターンマッチングを含み得る。パケットを処理することは、ログすること、格納すること、パケットの通過を許可すること、アラームを設定すること、ブロックすること、またはパケットをドロップすることからなるグループから選択され得る。
【００１２】
別の局面において、コンピュータネットワークにおいてデータパケットを検査する方法が提供される。１つ以上のデータパケットは、関連するヘッダデータおよびコンテンツを有し得る。該方法は、該データパケットを受信することと、該データパケットを調べて、該データパケットを分類することであって、該データパケットのヘッダ部分に含まれる情報を用いて、該データパケットを分類することと、データパケットのコンテンツ部分に基づいて、データパケットを個別に分類することとを含む、ことと、該ヘッダ情報に基づいて、該データパケットを処理するためのフロー命令を決定することとを含み得る。該方法は、コンテンツ部分に基づいて、該データパケットを処理するための特別命令を決定することと、該データパケットを処理するための該フロー命令および特別処理命令の中から、選択された命令を決定することと、該選択された命令に従って、該データパケットを処理することとを、さらに含む。
【００１３】
本発明の局面は、以下の特徴の１つ以上を含み得る。特別処理命令は、コンテンツベースのプロトコルコーディング、コンテンツベースのオブジェクト抽出、またはコンテンツベースのパターンマッチングを実行するための命令を含み得る。
【００１４】
別の局面において、受信データパケットを分類するマルチモード分類エンジンを含むデバイスが提供される。マルチモード分類エンジンは、データパケットを、該データパケットと関連するヘッダデータに従って分類するヘッダ分類エンジンであって、該ヘッダ分類エンジンは、第一の分類データを生成する、ヘッダ分類エンジンと、データパケットをデータパケットのコンテンツに従って分類するコンテンツ分類エンジンであって、該コンテンツ分類エンジンは、第二の分類データを生成する、コンテンツ分類エンジンとを含む。該デバイスは、該データパケットを評価するためのセキュリティブロックであって、該評価することは、該第一および第二の分類データの一方または双方を用いて、該分類データを評価すること、さらに含む。
【００１５】
本発明の局面は、以下の特徴の１つ以上を含み得る。プロトコルブロックには、マルチモード分類エンジンから第二の分類のデータを受信し、受信データパケットのコンテンツベースのプロトコルデコーディングを提供するように動作するプロトコルブロックが含まれ得る。オブジェクト抽出ブロックには、マルチモード分類エンジンから第二の分類データを受信し、受信データパケットのコンテンツベースのオブジェクト抽出を提供するように動作するオブジェクト抽出ブロックが含まれる。
【００１６】
マルチモード分類エンジンは、データパケットと関連するセッションデータを決定するためのセッションマネージャと、第二の分類データによってインデックスされたルールと、署名マッチングエンジンと、１つ以上のパターンを含む署名マッチングエンジンによって使用された署名データベースと、をさらに含み得る。
【００１７】
本発明の利点は、以下の特徴の１つ以上を含み得る。開示された手法は、試みられたネットワークセキュリティの侵入を検出し、セキュリティ侵入に関連する現在のパケットを潜在的にブロックするために使用され得る。本開示された手法は、頑強かつ効果的なネットワークセキュリティを提供し得、所与のパケットに含まれるヘッダ情報だけに限定されない分類を含む。パケットの分類は、伝統的なヘッダプロセスならびに署名スキャニングの双方を含み得る。ヘッダデータまたは署名のいずれかのマッチングは、パケットデータのルールベースの処理という結果を生じ得る。さらなる情報が、パケット処理において発見される場合には、分類は追加のデータを反映するようにアップデートされ得る。
【００１８】
本発明の１つ以上のインプリメンテーションの詳細は、添付する図面および以下の記載に述べられる。本発明の他の特徴および利点は、記載、図面および特許請求の範囲から明らかになる。
【００１９】
上記目的を達成するために、本発明は、例えば、以下の手段を提供する。
【００２０】
（項目１）
コンピュータネットワークにおいて、データパケットを検査する方法であって、１つ以上のデータパケットは、関連するヘッダデータおよびコンテンツを有しており、該方法は、
データパケットを受信するステップと、
該データパケットを調べて、該データパケットを分類するステップであって、該ヘッダおよびコンテンツに含まれる情報を用いて、該データパケットを分類することを含む、ステップと、
該ヘッダ情報および該コンテンツの双方に基づいて、該パケットを処理するためのフロー命令を決定するステップと、
該フロー命令を用いて、該パケットを処理するステップと
を包含する、方法。
【００２１】
（項目２）
上記データパケットを調べることは、上記コンテンツに基づいて、上記パケットを分類することを含む、項目１に記載の方法。
【００２２】
（項目３）
上記パケットを処理することは、コンテンツベースのプロトコルデコーディングを含む、項目１に記載の方法。
【００２３】
（項目４）
上記パケットを処理することは、コンテンツベースのオブジェクト抽出を含む、項目１に記載の方法。
【００２４】
（項目５）
上記パケットを処理することは、コンテンツベースのパターンマッチングを含む、項目１に記載の方法。
【００２５】
（項目６）
上記パケットを処理することは、ログすること、格納すること、上記パケットの通過を許可すること、アラームを設定すること、ブロックすること、または該パケットをドロップすることからなるグループから選択される、項目１に記載の方法。
【００２６】
（項目７）
コンピュータネットワークにおいて、データパケットを検査する方法であって、１つ以上のデータパケットは、関連するヘッダデータおよびコンテンツを有しており、該方法は、
該データパケットを受信するステップと、
該データパケットを調べて、該データパケットを分類するステップであって、該データパケットのヘッダ部分に含まれる情報を用いて、該データパケットを分類することと、該データパケットのコンテンツ部分に基づいて、該データパケットを個別に分類することとを含む、ステップと、
該ヘッダ情報に基づいて、該データパケットを処理するためのフロー命令を決定するステップと、
該コンテンツ部分に基づいて、該データパケットを処理するための特別処理命令を決定するステップと、
該データパケットを処理するための該フロー命令および特別処理命令の中から、選択された命令を決定するステップと、
該選択された命令に従って、該データパケットを処理するステップと
を包含する、方法。
【００２７】
（項目８）
上記特別処理命令は、コンテンツベースのプロトコルデコーディングを実行するための命令を含む、項目７に記載の方法。
【００２８】
（項目９）
上記特別処理命令は、コンテンツベースのオブジェクト抽出を実行するための命令を含む、項目７に記載の方法。
【００２９】
（項目１０）
上記特別処理命令は、コンテンツベースのパターンマッチングを実行するための命令を含む、項目７に記載の方法。
【００３０】
（項目１１）
上記パケットを処理することは、ログすること、格納すること、上記パケットの通過を許可すること、アラームを設定すること、ブロックすること、または該データパケットをドロップすることからなるグループから選択される、項目７に記載の方法。
【００３１】
（項目１２）
デバイスであって、該デバイスは、
受信データパケットを分類するマルチモード分類エンジンであって、該マルチモード分類エンジンは、
データパケットを、該データパケットと関連するヘッダデータに従って分類するヘッダ分類エンジンであって、該ヘッダ分類エンジンは、第一の分類データを生成する、ヘッダ分類エンジンと、
データパケットを、該データパケットのコンテンツに従って分類するコンテンツ分類エンジンであって、該コンテンツ分類エンジンは、第二の分類データを生成する、コンテンツ分類エンジンと、
を備える、マルチモード分類エンジンと、
該データパケットを評価するセキュリティブロックであって、該評価することは、該第一および第二の分類データの一方または双方を用いて、該データパケットを評価することを含む、セキュリティブロックと
を備える、デバイス。
【００３２】
（項目１３）
上記マルチモード分類エンジンから上記第二の分類データを受信し、受信データパケットのコンテンツベースのプロトコルデコーディングを提供するように動作するプロトコルブロックをさらに備える、項目１２に記載のデバイス。
【００３３】
（項目１４）
上記マルチモード分類エンジンから上記第二の分類データを受信し、受信データパケットのコンテンツベースのオブジェクト抽出を提供するように動作するオブジェクト抽出ブロックをさらに備える、項目１２に記載のデバイス。
【００３４】
（項目１５）
上記マルチモード分類エンジンは、上記データパケットと関連するセッションデータを決定するセッションマネージャをさらに備える、項目１２に記載のデバイス。
【００３５】
（項目１６）
上記マルチモード分類エンジンは、上記第二の分類データによって、インデックスされたルールをさらに備える、項目１２に記載のデバイス。
【００３６】
（項目１７）
上記コンテンツ分類エンジンは、署名マッチングエンジンを含む、項目１２に記載のデバイス。
【００３７】
（項目１８）
上記マルチモード分類エンジンは、１つ以上のパターンを含む上記署名マッチングエンジンによって使用される署名データベースをさらに備える、項目１７に記載のデバイス。
【００３８】
（摘要）
コンピュータネットワークにおいて、データパケットを検査する方法および装置が、記載される。該ネットワークを介する１つ以上のデータパケットは、関連するヘッダデータおよびコンテンツを有する。１つの方法は、データパケットを受信するステップと、該ヘッダおよびコンテンツに含まれる情報を用いて、該データパケットを分類することを含む、該データパケットを調べて、該データパケットを分類するステップと、該ヘッダ情報および該コンテンツの双方に基づいて、該パケットを処理するためのフロー命令を決定するステップと、該フロー命令を用いて、該パケットを処理するステップとを含む。
【発明を実施するための最良の形態】
【００３９】
（詳細な説明）
図２ａは、ローカルエリアネットワーク（ＬＡＮ）２００と、サーバ２０２と、いくつかのワークステーション（Ｗ／Ｓ）２０４と、セキュリティデバイス２０６とを含む単純なネットワークトポロジーを示す。ネットワークトポロジーは、セキュリティデバイス２０６を使用するための一つのインプリメンテーションを単に代表するものである。２つ以上のネットワーク、一つまたは複数のワイドエリアネットワーク、ローカルエリアネットワーク、または分散型トポロジーを用いるかまたは用いないの両方の組み合わせを含むネットワークトポロジーを含む他のネットワークトポロジーが可能である（たとえばクライアントサーバトポロジー以外のトポロジー）。以下にさらに詳細に説明されるように、セキュリティデバイス２０６は、マルチモードの分類エンジン２１０と、受信されるパケットを処理する他の動作エレメントとを含む。
【００４０】
ＬＡＮにおけるコンピュータワークステーション、サーバ、および他のデバイスは、ワイヤ、光ファイバ、および電波などの多数のデータ送信メディアを使用して、相互接続される。セキュリティデバイス２０６は、ネットワーク内で通信されるパケットを監視することによって、試みられたネットワークセキュリティ侵入に関連するパケットをブロックすることを容易にする。
【００４１】
図２ｂは、セキュリティデバイス２０６のブロック図を示す。一つのインプリメンテーションにおいて、セキュリティデバイス２０６は、入力パケットインターフェースと、マルチモードの分類エンジン２２０と、プロトコルブロック２５０と、オブジェクト抽出ブロック２６０と、セキュリティブロック２７０とを含む。
【００４２】
セキュリティデバイス２０６は、パケットを受信するための入力パケットインターフェース２１５を含む。受信されたパケットは、マルチモードの分類エンジン２２０によって分析されることによって、試みられたネットワークセキュリティ侵入が進行中であるかどうかの決定を補助する。マルチモードの分類エンジン２２０は、より多くのパケットが受信されるときにアップデートされる入力パケットを分類するための複数のモードを含む。マルチモードの分類エンジン２２０は、ヘッダ分類エンジン２２２と、署名マッチングエンジン２２４と、オプションとしてセッションエンジン２２６とを含む。
【００４３】
ヘッダ分類エンジン２２２は、受信されたパケットのヘッダ内に位置する情報を使用することによって、さらなる処理のためにパケットを分類する。分類に基づいて、関連するルールベース２２８における一つ以上のルールが評価され得、さらなる処理が開始され得る。さらなる処理は、実施例のセキュリティブロック２７０における、特殊化した（ｓｐｅｃｉａｌｉｚｅｄ）署名マッチングイン（ｍａｔｃｈｉｎｇ  ｉｎ）を含み得る。
【００４４】
署名マッチングエンジン２２４は、たとえばアプリケーションレベルにおいて検出された署名に基づいて、さらなる処理のためにパケットを分類するために使用され得る。署名マッチングエンジン２２４は、一般的にローカルである署名データベース２３０を含み得るが、セキュリティデバイス２０６から遠隔の部分を含んで分散され得る。署名マッチングは、固定パターンマッチングと、正規（ｒｅｇｕｌａｒ）表現マッチングと、特殊化したマッチングとを含み得、それらは、たとえば、複雑なアプリケーション挙動パターンまたは上記の組み合わせを検出する特殊化したソフトウェアによって実行される。署名マッチングエンジンによって検出されたマッチは、パケットの処理において使用されるべきルールベース２２８におけるルールを識別することを含むさらなる処理のために、受信されたパケットを分類するために使用され得る。
【００４５】
ルールベース２２８は、ポリシー情報（分類されたパケットに適用するためのファイアウォールポリシー、ＩＰＳポリシーなど）、ならびに、暗号化パラメータ、アドレス翻訳パラメータ、ブックキーピング情報、および統計などの、セキュリティデバイス２０６における他のモジュールによって使用される他の情報を含む。ルールベース２２８はまた、パケットが許可されるべきかどうかを決定するためにマルチモードの分類エンジン２２０によって要求される情報を含み得る。そのような情報は、たとえば接続タイムアウト、タイムビリング、および帯域幅使用に関するネットワークポリシーをインプリメントするために要求される情報を含み得る。
【００４６】
セッションエンジン２２６はまた、フローテーブル２３２を含む。フローテーブル２３２は、受信されたパケットに関連するフローに関する情報を格納するために使用される。フローテーブル２３２において格納されるかまたは示される一つ以上のルールが、フローに関連し得る。ルールは、所与のフローに関連するパケットをさらに処理するために使用され得る。
【００４７】
図２ｃは、フローテーブル２３２の構造を図示する。フローテーブル２３２は、現在のＴＣＰ／ＩＰフローに関連するフロー記録を含む。ＴＣＰ／ＩＰフローは、ソースと宛先との間で一方向に情報を通信する一連のデータパケットを含む。フロー記録２５２は、インデックスキー２５５を使用してインデックスされる。インデックスキー２５５は、受信されたパケットに関連する適切なフロー記録を格納および検索するために使用される。一つのインプリメンテーションにおいて、インデックスキー２５５はハッシュキーであり得、フローテーブル２３２はハッシュテーブルとしてインプリメントされ得る。フローテーブル２３２は、受信されたパケットをさらに処理するために一つ以上のモジュールによって使用され得るようにセキュリティデバイス２０６に命令を格納する。フロー記録２５２は、フロー情報２５７を含み得る。フロー情報２５７は、ポリシー情報の形態（フローを適用するためのファイアウォールポリシー、ＩＰＳポリシーなど）、ならびに、暗号化パラメータ、アドレス翻訳パラメータ、ブックキーピング情報、および統計などの、セキュリティデバイス２０６における他のモジュールによって使用される他の情報であり得る。フロー情報２５７はまた、パケットが許可されるべきかどうかを決定するためにセッションエンジン２２６によって要求される情報を含み得る。そのような情報は、たとえば接続タイムアウト、タイムビリング、および帯域幅使用に関するネットワークポリシーをインプリメントするために要求される情報を含み得る。
【００４８】
プロトコルブロック２５０は、パケット内に含まれるプロトコル情報をデコードするために使用され得る。プロトコル情報は、トラフィックの各部分についてどのセキュリティ処理が必要とされるかを識別するために使用され得る。一つのインプリメンテーションにおいて、マルチモードの分類エンジン２２０は、プロトコルブロック２５０に分類情報を提供し得る。分類情報は、ブロック２５０におけるプロトコルデコーディングエンジンがトラフィックをどのプロトコルとしてデコードすべきかを決定するために使用され得る。プロトコルブロック２５０は、分類情報に基づいてコンテンツベースのプロトコルデコーディングを提供し得、これにより、検出されたコンテンツに対して一意である特殊化したプロトコルプロトコルデコーディングを提供する。
【００４９】
たとえば、マルチモードの分類エンジン２２０は、正規表現のセットをマッチングさせることに組み合わせて、ヘッダマッチングを使用することによって、２つのフローのグループを、Ｍｉｃｒｏｓｏｆｔ  Ｉｎｓｔａｎｔ  Ｍｅｓｓｅｎｇｅｒ（ＩＭ）ＴＣＰ接続として分類する。次に、プロトコルデコーダは、これらの２つのフローがＭｉｃｒｏｓｏｆｔ  ＩＭとしてデコードされる必要があると決定するために分類情報を使用し得、なかでも、実行可能なファイルを転送するためにＭｉｃｒｏｓｏｆｔ  ＩＭが使用されている状況を決定し得る。この情報は、抽出されるべきファイルがトラフィック内のどこにあるかを決定するために、後でオブジェクト抽出ブロック２６０によって使用される。
【００５０】
さらに別の実施例は、非標準ポート上のファイル転送プロトコル（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）（ＦＴＰ）接続であり得る。通常は、ＦＴＰ接続はその指定されたポート（たとえばポート２１）を使用する。しかし、非標準ポート（たとえば通常はハイパーテキスト転送プロトコル（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）（ＨＴＴＰ）のために使用されるポート８０）上でＦＴＰを実行することによって、従来のクラシファイヤ（ｃｌａｓｓｉｆｉｅｒ）をバイパスすることが試みられ得る。この場合には、マルチモードの分類エンジン２２０は、正規表現および／または固定パターン署名の組み合わせを使用して、ポート８０上のＦＴＰトラフィックを検出し、トラフィックをＦＴＰとしてデコードするようにプロトコルブロック２５０に通知する。このことは、多くのなかでも、プロトコルブロック２５０内のプロトコルデコーダが、ファイルがトラフィック内のどこにあるかを決定することと、ファイルの存在についてオブジェクト抽出ブロック２６０およびセキュリティブロック２７０に通知することとを可能にする。
【００５１】
オブジェクト抽出ブロック２６０は、特殊処理のためにパケットからのオブジェクトをバッファし、構築し、抽出するために使用され得る。たとえば、従来の電子メールシステムにおいてファイルに添付されるオブジェクトは、特殊処理のために、あるいは、ファイル転送、インスタントメッセンジャ、またはピアトゥピアプロトコルによって転送されるファイルのために抽出され得る（たとえばｚｉｐメッセージ、実行可能ファイル（．ｅｘｅファイル）など）。一つのインプリメンテーションにおいて、マルチモードの分類エンジン２２０は、オブジェクト抽出ブロック２６０に分類情報を提供し得る。分類情報は、オブジェクト抽出プロセスにおいて使用され得る。オブジェクト抽出ブロック２６０は、分類情報に基づいてコンテンツベースの抽出を提供し得、これにより、検出されたコンテンツに一意である特殊化した抽出を提供する。
【００５２】
セキュリティブロック２７０は、セキュリティデバイス２０６における最終ブロックであり、マッチングのための一意のセキュリティアルゴリズムを含む。一つのインプリメンテーションにおいて、マルチモードの分類エンジン２２０は、コンテンツに基づいて、パケットを、たとえば特定のアプリケーションに関連するものとして分類し得る。この分類に基づいて、セキュリティブロック２７０は、コンテンツ（たとえばアプリケーション）に関連するパケットに、特殊化した署名マッチング（たとえばコンテンツベースのパターンマッチング）を提供し得る。
【００５３】
たとえば、ＨＴＭＬファイルは、一連のパケットとしてネットワーク２００を介して伝送され得る。パケットは、たとえばポート８０上で伝送され得る。ＨＴＭＬファイルは、インスタントメッセージ（ＩＭ）を含み得る。マルチモードの分類エンジン２２０は、ＩＭがパケットストリームの中に含まれていることを決定し得、セキュリティブロック２７０にＩＭに関連する署名について特にスクリーニングするように命令し得る。別の例において、ＭＳＮメッセンジャメッセージは、一連のパケットとして伝送される。メッセージはウイルスを含み得る。一連のパケットは、ポートＸ（たとえば３０００）上で受信される第１のパケットを含み、最初はマルチモードの分類エンジン２２０によって未知として分類される。パケットはバッファされ得るか、または以下に説明される一つのインプリメンテーションにおいて、パケットはマルチモードの分類エンジン２２０におけるさらなる処理（以下に説明される）のためにコピーされ格納され得る。一連のパケットが受信された後で、マルチモードの分類エンジンは、署名マッチングエンジン２２４を使用して、ＭＳＮメッセージが一連のパケット関連することを検出する。マルチモードの分類エンジン２２０は、分類情報をセキュリティブロック２７０に提供し得る。セキュリティブロック２７０は、その後で、特殊化したパケット処理をＭＳＮメッセージに適用することによって、たとえば、ウイルスの存在を検出する。マルチモードの分類エンジン２２０におけるコンテンツに基づいた分類は、一意のセキュリティアルゴリズムがセキュリティブロック２７０内のコンテンツに適用されることを可能にする。この実施例において、セキュリティブロック２７０における署名マッチは、システムの中を通過するＭＳＮメッセージ内のウイルスを検出して却下する（ｄｉｓａｌｌｏｗ）ために使用され得る。しかし、ウイルスを有さない他のＭＳＮメッセージは、通過することを許可され得る。これは、従来のＩＰＳシステムとは対照的である。
【００５４】
セキュリティブロック２７０は、一つ以上の一意のセキュリティアルゴリズムを含み得る。一意のセキュリティアルゴリズムは、セキュリティデバイス２０６がパケットに対してマッチングすることによって悪意のあるまたは望ましくないコンテンツを検出するために使用する署名の形態であり得る。したがって、セキュリティデバイス２０６は、２つの互いに異なるポリシーを含み得、一つはマルチモードの分類エンジン２２０においてインプリメントされるアクセス制御のためであり、一つはセキュリティブロック２７０においてインプリメントされる攻撃緩和のためである。
【００５５】
図３は、セキュリティデバイス２０６の動作３００を説明するフロー図である。ここで図２ｂおよび３を参照すると、入力パケットは、たとえばパケットインターフェース２１５によって受信される（ステップ３０２）。パケットは、最初に必要に応じて処理され得る（たとえばフラグメンテーションの解消およびヘッダの妥当性検査）。パケットは、たとえばマルチモードの分類エンジン２２０によって、コンテンツおよびヘッダ情報の両方に従って分類される（ステップ３０４）。分類に基づいて、一つ以上のコンテンツベースのプロトコルデコーディング（ステップ３０６）、コンテンツベースのオブジェクト抽出（ステップ３０８）、およびコンテンツベースのパターンマッチング（ステップ３１０）を含む、特殊化した処理が実行され得る。ヘッダ（たとえばセッションマネージャ２２６において展開されるフロー情報を含む）、コンテンツ、または特殊化した処理に関して取得された情報に基づいて、パケットが許可されるべきかどうかの決定がなされ得る（ステップ３１２）。さもなければ、パケットはステップ３１４において別のやり方で処理される。他の処理は、パケットに関する特定の情報をログすること、パケットをホールドすること、パケットを可変すること、パケットをドロップすること、またはフロー全体を禁止することを含み得る。
【００５６】
図４は、図３に関連して、上述のパケット分類（ステップ３０４）に含まれるステップおよびプロトコルデコーディング（ステップ３０６）と、コンテンツベースの抽出（ステップ３０８）と、コンテンツベースのパターンマッチング（ステップ３１０）とに関連する付随のステップを示す流れ図である。分類は、パケットの受信（ステップ４００）および情報の抽出（ステップ４０５）（例えば、ヘッダにおけるフロー情報）で始まり、該情報の抽出は、パケットが、３つのパス（ｐａｔｈ）の内の１つにおいてどのように処理されるべきかを決定する（ステップ４１０）ために要求される。
【００５７】
第１のパスにおいて、パケットは前に分類されたフロー（例えば、それは既知のフローであり、マルチモードの分類エンジン２２０によって分類されている）と関連付けられる。分類されたフローに対して、それ以上の分類は要求されない。パケット処理は、コンテンツベースのプロトコルデコーディングを含むステップ３０６で（例えば、プロトコルブロック２５０によって）継続し得る。その後は、コンテンツベースの抽出（ステップ３０８）およびコンテンツベースのパターンマッチング（ステップ３１０）が行われ得る。
【００５８】
第２のパスにおいて、パケットは、既知であるが未だ分類されていないフローと関連付けられるという点で特徴付けられ、ヘッダデータまたはコンテンツに基づいてパケット（および付随のフロー）を分類する試み（ステップ４１５）がなされる。試みがなされた分類は、同一のフローと関連付けられた前に格納されたパケットの検索（下記のステップ４２５を参照）と、現在のパケットおよびこれら前のパケットの両方の評価とを含み得る。従来型のシステムのように、既知のセッションフローに対して、フローテーブルにおけるマッチングフロー記録は、検索され得、パケットを処理するための情報を含み得る。フロー情報に基づいて、受信されたパケットが許可されるべきかどうかの決定がなされ得る。分類プロセスと関連するポリシー情報（例えば、マルチモードの分類エンジン２２０によって用いられるポリシー情報）またはセキュリティデバイスによって生じる他の情報（例えば、プロトコル情報、オブジェクト情報またはセキュリティデバイスの他のブロックによって生じるパターンマッチ）に基づいて、決定がなされ得る。分類プロセスに戻り、パケットを分類する試みが成功する（ステップ４２０）と、次いでプロセスは、前に格納されたパケットと現在のパケットとをデコーダに送信（ステップ４２７）し、ステップ３０６においてデコーディングを許可する。さもなければ、パケットのコピーが、（例えば、さらなる分類ステップにおける使用のために）ローカルに格納（ステップ４２５）され、パケットは伝送される（ステップ４２９）。伝送は、パケットをシステムの外（例えばセキュリティデバイスの外）に転送することを含み得る。
【００５９】
第３のパスにおいて、未知のフローで特徴付けられるが（例えば、マッチングフロー記録は、ステップ４０５において抽出された情報を用いてもフローテーブルにおいて発見されない）、受信したパケットは、新たなセッションと関連付けられ得る（ステップ４３０）。新たなセッションに対して、セッションＩＤが割り振られる。新たなセッションは、該新たなセッションと関連付けられる受信したパケットが許可されるべきかどうかを（例えば、マルチモードの分類エンジン２２０と関連付けられる、抽出されたヘッダ情報およびポリシーを用いて）決定するために評価され得る（ステップ４３５）。許可される場合、新たなフロー記録が作成され、フローテーブルに格納され得る（ステップ４４０）。新たなフロー記録は、受信したパケットおよびその他任意の特定のセキュリティデバイス情報と関連付けられる、新たなセッションのためのフロー情報（例えば、ＴＣＰ／ＩＰセッション）を含む。その後は、ステップ４１５においてプロセスが継続しながら、新たなフローを分類する試みがなされ得る。
【００６０】
上記のステップ４１５において提供される分類に基づいて、コンテンツベースのプロトコルデコーディングと、コンテンツベースのオブジェクト抽出と、コンテンツベースのパターンマッチングとを含む特殊化された処理がなされ得る。コンテンツベースの処理に基づいて、受信したパケットを処理するために情報が識別（例えば、ポリシーなど）され得る。データパケットを許可する決定は、分類プロセスと関連付けられるポリシー情報（例えば、マルチモードの分類エンジン２２０によって用いられるポリシー情報）、またはセキュリティデバイスによって生じる他の情報（例えば、コンテンツベースのプロトコル情報、オブジェクト情報、またはセキュリティデバイスのその他のブロックによって生じるパターンマッチ）に基づいて行われ得る。様々なオペレータから戻ってきた結果により、パケットは、フォワードされるか、ドロップされるか、ログされるか、格納されるか、改変されるか、または処理される。
【００６１】
セキュリティデバイス２０６は、多くの異なるネットワークトポロジーにおいて用いられ得る。例えば、セキュリティデバイスは、ファイアフォールの中に一体化される。あるいは、セキュリティデバイス２０６は、ファイアウォールおよびルータと、直列に動作され得る。
【００６２】
本発明は、デジタル電子回路網、またはコンピュータハードウェア、ファームウェア、ソフトウェアにおいて、またはそれらの組み合わせによってインプリメントされ得る。本発明は、例えば機械読み取り可能ストレージデバイスまたは伝搬信号といった情報のキャリアにおいて、コンピュータプログラム製品、すなわち有形で具現化されるコンピュータプログラムとして、インプリメントされ得、例えばプログラム可能なプロセッサ、コンピュータ、または複数のコンピュータといったデータ処理装置によって実行されるか、または該データ処理装置の動作を制御する。コンピュータプログラムは、プログラミング言語の任意の形式によって書き込まれ得、該プログラム言語には、コンパイルまたは翻訳された言語を含み、任意の形式で開発され得、該形式には、スタンドアローンプログラム、あるいは、モジュール、コンポーネント、サブルーチン、またはコンピューティング環境における使用に適した他のユニットとしての形式が含まれる。コンピュータプログラムは、１つのコンピュータ上、または複数のコンピュータ上で実行されるように展開され得、１つのサイトで展開されるか、または複数のサイトを介して配信され、通信ネットワークによって相互連結され得る。
【００６３】
本発明の方法のステップは、１つ以上のプログラム可能なプロセッサによって行われ得、該プロセッサは、入力データを動作することと出力を生成することとによって本発明の機能を発揮するためのコンピュータプログラムを実行する。方法のステップは、専用ロジック回路網によっても行われ得、該回路網は、例えばＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定用途用集積回路）（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）であり、本発明の装置は該回路網としてインプリメントされる。
【００６４】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用および専用マイクロプロセッサの両方と、デジタルコンピュータの任意の種類の１つ以上の任意のプロセッサとを含む。通常、プロセッサは、命令と、リードオンリーメモリまたはランダムアクセスメモリまたはその両方からのデータとを受信する。コンピュータの重要な要素は、命令を実行するプロセッサと、命令およびデータを格納する１つ以上のメモリデバイスとである。通常、コンピュータは、例えば磁気ディスク、光磁気ディスクまたは光ディスクのようなデータを格納する１つ以上のマスストレージデバイスをも含むか、またはそれらからデータを受信したり、それらに転送したりするように動作できるように連結されている。コンピュータプログラム命令およびデータを具体化するために適した情報キャリアは、全ての形式の不揮発性メモリを含み、例として、ＥＰＲＯＭおよびＥＥＰＲＯＭおよびフラッシュメモリデバイスといった半導体メモリデバイスと、内蔵ハードディスクまたはリムーバブルディスクといった磁気ディスクと、光磁気ディスクと、ＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭディスクとを含む。プロセッサとメモリとは、専用ロジック回路網によって補われるか、または該回路網と一体化される。
【００６５】
本発明は、例えばデータサーバとしてバックエンドコンポーネントを含むか、例えばアプリケーションサーバとしてミドルウェアコンポーネントを含むか、例えばユーザーが本発明のインプリメンテーションと相互作用し得るグラフィカルユーザーインターフェースまたはウェブブラウザを有するクライアントコンピュータとしてフロントエンドコンポーネントを含むか、またはそのようなバックエンド、ミドルウェア、またはフロントエンドのコンポーネントの任意の組み合わせで、コンピューティングシステムにおいてインプリメントされ得る。システムのコンポーネントは、例えば通信ネットワークのようなデジタルデータ通信の任意の形式または媒体によって相互接続され得る。通信ネットワークの実施例は、ローカルエリアネットワーク（ＬＡＮ）、および、例えばインターネットのようなワイドエリアネットワーク（「ＷＡＮ」）を含む。
【００６６】
コンピューティングシステムは、クライアントとサーバとを含み得る。クライアントとサーバとは、一般的には互いが離れており、通常は通信ネットワークを介して相互作用する。クライアントとサーバとの関係は、それぞれのコンピュータで実行し、クライアント−サーバ間の互いの関係を有するコンピュータプログラムによって生じる。
【００６７】
本発明は、特定の実施形態の点から記述された。しかし、様々な改変が、本発明の真意および範囲から逸脱することなくなされ得ることを理解されたい。例えば、本発明のステップは、異なる順序で行われ得、それでも所望の結果を達成し得る。従って、他の実施形態は以下の特許請求の範囲内である。
【図面の簡単な説明】
【００６８】
様々な図面における同様の参照番号および記号は、同様のエレメントを示す。
【図１ａ】図１ａは、ＩＰＳを含むネットワークトポロジーのブロック図を示す。
【図１ｂ】図１ｂは、従来のＩＰＳのブロック図を図示している。
【図２ａ】図２ａは、マルチモード分類ＩＰＳを含むネットワークトポロジーのブロック図を示す。
【図２ｂ】図２ｂは、マルチモード分類エンジンを含むネットワークセキュリティデバイスのブロック図を示す。
【図２ｃ】図２ｃは、フローテーブルを示す。
【図３】図３は、マルチモード分類エンジンの動作を描写するフローチャートである。
【図４】図４は、分類プロセスを描写するフローチャートである。
【符号の説明】
【００６９】
１０  ネットワーク
１２  ローカルエリアネットワーク
１４、２０４  ワークステーション
１６  インターネット
１８  ＩＰＳ
６０  分類ブロック
６２  プロトコルデコードブロック
６４、２６０  オブジェクト抽出ブロック
６６、２７０  セキュリティブロック
２０２  サーバ
２０６  セキュリティデバイス
２１５  インターフェース
２１０、２２０  マルチモード分類エンジン
２２２  ヘッダ分類エンジン
２２４  署名マッチングエンジン
２２６  セッションマネージャ
２２８  ルール
２３２  フローテーブル
２５０  プロトコルブロック
２５２  キー
２５７  フロー情報
【図１ａ】
2008011537.tif 000002
【図１ｂ】
2008011537.tif 000003
【図２ａ】
2008011537.tif 000004
【図２ｂ】
2008011537.tif 000005
【図２ｃ】
2008011537.tif 000006
【図３】
2008011537.tif 000007
【図４】
2008011537.tif 000008