(57)【要約】データパケットを処理する方法、コンビュータプログラム製品及び装置について記載される。その方法は、データパケットを受信し、データパケットを検査し、パケットに関連する単一のフローレコードを決定し、単一のフローレコードから複数の装置（２２０、２３０）への命令を抽出する。
2006521776.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータネットワークのフローに関するデータパケットを検査する方法において、前記コンピュータネットワークは前記パケットを処理する一以上の装置を含み、各データパケットは関連するヘッダデータを含み、前記方法は、
前記データパケットを受信し、
前記データパケットを検査し、
前記パケットに関連する単一のフローレコードを決定し、
前記単一のフローレコードから複数の前記装置への命令を抽出し、この命令を対応する前記装置に送信して前記パケットの処理を行わせる
ことを特徴とするコンピュータネットワークのフローに関するデータパケットを検査する方法。
【請求項２】
請求項１の方法において、前記装置はセキュリティ装置であることを特徴とするコンピュータネットワークのフローに関するデータパケットを検査する方法。
【請求項３】
請求項２の方法において、前記装置は侵入検知システム、侵入防止システム、ファイアウォール又はフローベースルータのいずれかより選択されることを特徴とするコンピュータネットワークのフローに関するデータパケットを検査する方法。
【請求項４】
請求項１の方法において、前記データパケットの検査は、前記データパケットが許可されるべきか否かを決定するために関連するヘッダデータを検査することを含むことを特徴とするコンピュータネットワークのフローに関するデータパケットを検査する方法。
【請求項５】
請求項１の方法において、前記パケットに関連する単一のフローレコードの決定は、関連するヘッダデータを利用してフローレコードを探すことを含むことを特徴とするコンピュータネットワークのフローに関するデータパケットを検査する方法。
【請求項６】
請求項１の方法において、前記単一のフローレコードから複数の前記装置への命令の抽出は、メモリから前記データパケットを探す情報と、前記フロー中に前記データパケットの相対位置を提供する情報とを取得することを含むことを特徴とするコンピュータネットワークのフローに関するデータパケットを検査する方法。
【請求項７】
請求項１の方法において、前記パケットに関連する前記フローレコードの決定は：
少なくとも関連するヘッダデータを利用してパケットアイデンティファイアを決定し、
前記パケットアイデンティファイアを使用してフローテーブルを評価し、
もし、フローテーブルエントリがマッチすれば、マッチしたフローレコードを検索し、
もし、フローテーブルエントリがマッチしなければ、新しいフローレコードを作成し、
前記新しいフローレコードを前記フローテーブルに格納する
ことを含むことを特徴とするコンピュータネットワークのフローに関するデータパケットを検査する方法。
【請求項８】
請求項７の方法において、マッチしたフローレコードの検索は：
マッチしたフローレコードからセッションＩＤとフロー情報を抽出し、
前記セッションＩＤとフロー情報を前記装置に伝える
ことを含むことを特徴とするコンピュータネットワークのフローに関するデータパケットを検査する方法。
【請求項９】
請求項７の方法において、新しいフローレコードの作成は、
新しいセッションＩＤを作成し、
少なくとも２つの装置から前記データパケットに関連する特有のフロー情報を検索し、
前記新しいセッションＩＤと前記新しいフローレコード中の前記装置特有のフロー情報とを関連させる
ことを含むことを特徴とするコンピュータネットワークのフローに関するデータパケットを検査する方法。
【請求項１０】
請求項９記載の方法において、前記装置特有のフロー情報を利用して前記パケットを処理する各装置への命令を生成することを含むことを特徴とするコンピュータネットワークのフローに関するデータパケットを検査する方法。
【請求項１１】
請求項９記載の方法において、一以上の前記装置はセキュリティ装置であり、前記方法は各セキュリティ装置毎のセキュリティ装置特有のフロー情報を前記新しいセッションＩＤとともに前記単一のフローレコードに格納することを特徴とするコンピュータネットワークのフローに関するデータパケットを検査する方法。
【請求項１２】
請求項１記載の方法において、一以上の前記装置で抽出されたフロー命令を用いて、前記データパケットを処理することを含むことを特徴とするコンピュータネットワークのフローに関するデータパケットを検査する方法。
【請求項１３】
請求項１記載の方法において、少なくとも２つの前記装置はセキュリティ装置であり、前記方法は、さらに、
前記セキュリティ装置から、前記パケットを処理するにあたって対応する装置で生成された評価情報を取得し、
前記評価情報を使用して前記パケットを処理する
ことを含むことを特徴とするコンピュータネットワークのフローに関するデータパケットを検査する方法。
【請求項１４】
請求項１３記載の方法において、前記パケットの処理は、送信、破棄、修正、ログ又はパケットの保存のいずれか一以上であることを特徴とするコンピュータネットワークのフローに関するデータパケットを検査する方法。
【請求項１５】
請求項１３記載の方法において、前記処理ステップは前記パケットを送信するか否かを決定することを含むことを特徴とするコンピュータネットワークのフローに関するデータパケットを検査する方法。
【請求項１６】
請求項２記載の方法において、前記単一のフローレコードは、一以上のセキュリティ装置のポリシー情報を含むことを特徴とするコンピュータネットワークのフローに関するデータパケットを検査する方法。
【請求項１７】
請求項２記載の方法において、前記単一のフローレコードは、ファイアウォールポリシーと侵入防止システムポリシーを含むことを特徴とするコンピュータネットワークのフローに関するデータパケットを検査する方法。
【請求項１８】
請求項１記載の方法において、前記単一のフローレコードは、前記装置の一つによって使用される暗号化パラメータを含むことを特徴とするコンピュータネットワークのフローに関するデータパケットを検査する方法。
【請求項１９】
請求項１記載の方法において、前記単一のフローレコードは、アドレス変換パラメータを含むことを特徴とするコンピュータネットワークのフローに関するデータパケットを検査する方法。
【請求項２０】
請求項１記載の方法において、前記単一のフローレコードは、ブックキーピング又は統計情報を含むことを特徴とするコンピュータネットワークのフローに関するデータパケットを検査する方法。
【請求項２１】
請求項１記載の方法において、前記単一のフローレコードは、前記一以上の装置で使用される、所定のフローに対して適用されるポリシーを記載した情報を含むことを特徴とするコンピュータネットワークのフローに関するデータパケットを検査する方法。
【請求項２２】
請求項１記載の方法において、前記装置はセキュリティ装置であり、前記単一のフローレコードは、前記一以上のセキュリティ装置で前記パケットを処理する際に使用される、ポリシー情報を含むことを特徴とするコンピュータネットワークのフローに関するデータパケットを検査する方法。
【請求項２３】
情報媒体に実体化されたコンピュータプログラム製品において、コンピュータネットワークのフローに関するデータパケットを検査し、前記コンピュータネットワークは前記パケットを処理する一以上の装置を含み、各データパケットは関連するヘッダデータを含み、前記コンピュータプログラム製品はデータ処理装置に対して、
前記データパケットを受信し、
前記データパケットを検査し、
前記パケットに関連する単一のフローレコードを決定し、
前記単一のフローレコードから複数の前記装置への命令を抽出し、この命令を対応する前記装置に送信して前記パケットの処理を行わせる
命令を含むことを特徴とするコンピュータプログラム製品。
【請求項２４】
請求項２３の製品において、前記装置はセキュリティ装置であることを特徴とするコンピュータプログラム製品。
【請求項２５】
請求項２４の製品において、前記装置は侵入検知システム、侵入防止システム、ファイアウォール又はフローベースルータのいずれかより選択されることを特徴とするコンピュータプログラム製品。
【請求項２６】
請求項２３の製品において、前記データパケットの検査命令は、前記データパケットが許可されるべきか否かを決定するために関連するヘッダデータを検査する命令を含むことを特徴とするコンピュータプログラム製品。
【請求項２７】
請求項２３の製品において、前記パケットに関連する単一のフローレコードの決定は、関連するヘッダデータを利用してフローレコードを探す命令を含むことを特徴とするコンピュータプログラム製品。
【請求項２８】
請求項２３の製品において、前記単一のフローレコードから複数の前記装置への命令の抽出は、メモリから前記データパケットを探す情報と、前記フロー中に前記データパケットの相対位置を提供する情報とを取得する命令を含むことを特徴とするコンピュータプログラム製品。
【請求項２９】
請求項２３の製品において、前記パケットに関連する前記フローレコードの決定の命令は：
少なくとも関連するヘッダデータを利用してパケットアイデンティファイアを決定し、
前記パケットアイデンティファイアを使用してフローテーブルを評価し、
もし、フローテーブルエントリがマッチすれば、マッチしたフローレコードを検索し、
もし、フローテーブルエントリがマッチしなければ、新しいフローレコードを作成し、
前記新しいフローレコードを前記フローテーブルに格納する
命令を含むことを特徴とするコンピュータプログラム製品。
【請求項３０】
請求項２９の製品において、マッチしたフローレコードの検索命令は：
マッチしたフローレコードからセッションＩＤとフロー情報を抽出し、
前記セッションＩＤとフロー情報を前記装置に伝える
命令を含むことを特徴とするコンピュータプログラム製品。
【請求項３１】
請求項２９の製品において、新しいフローレコードの作成命令は、
新しいセッションＩＤを作成し、
少なくとも２つの装置から前記データパケットに関連する特有のフロー情報を検索し、
前記新しいセッションＩＤと前記新しいフローレコード中の前記装置特有のフロー情報とを関連させる
命令を含むことを特徴とするコンピュータプログラム製品。
【請求項３２】
請求項３１記載の製品において、前記装置特有のフロー情報を利用して前記パケットを処理する各装置への命令を生成する命令を含むことを特徴とするコンピュータプログラム製品。
【請求項３３】
請求項３１記載の製品において、一以上の前記装置はセキュリティ装置であり、前記製品は各セキュリティ装置毎のセキュリティ装置特有のフロー情報を前記新しいセッションＩＤとともに前記単一のフローレコードに格納することを特徴とするコンピュータプログラム製品。
【請求項３４】
請求項２３記載の製品において、一以上の前記装置で抽出されたフロー命令を用いて、前記データパケットを処理する命令を含むことを特徴とするコンピュータプログラム製品。
【請求項３５】
請求項２３記載の製品において、少なくとも２つの前記装置はセキュリティ装置であり、前記製品は、さらに、
前記セキュリティ装置から、前記パケットを処理するにあたって対応する装置で生成された評価情報を取得し、
前記評価情報を使用して前記パケットを処理する
命令を含むことを特徴とするコンピュータプログラム製品。
【請求項３６】
請求項３５記載の製品において、前記パケットの処理は、送信、破棄、修正、ログ又はパケットの保存のいずれか一以上であることを特徴とするコンピュータプログラム製品。
【請求項３７】
請求項３５記載の製品において、前記処理命令は前記パケットを送信するか否かを決定する命令を含むことを特徴とするコンピュータプログラム製品。
【請求項３８】
請求項２４記載の製品において、前記単一のフローレコードは、一以上のセキュリティ装置のポリシー情報を含むことを特徴とするコンピュータプログラム製品。
【請求項３９】
請求項２４記載の製品において、前記単一のフローレコードは、ファイアウォールポリシーと侵入防止システムポリシーを含むことを特徴とするコンピュータプログラム製品。
【請求項４０】
請求項２３記載の製品において、前記単一のフローレコードは、前記装置の一つによって使用される暗号化パラメータを含むことを特徴とするコンピュータプログラム製品。
【請求項４１】
請求項２３記載の方法において、前記単一のフローレコードは、アドレス変換パラメータを含むことを特徴とするコンピュータプログラム製品。
【請求項４２】
請求項２３記載の製品において、前記単一のフローレコードは、ブックキーピング又は統計情報を含むことを特徴とするコンピュータプログラム製品。
【請求項４３】
請求項２３記載の製品において、前記単一のフローレコードは、前記一以上の装置で使用される、所定のフローに対して適用されるポリシーを記載した情報を含むことを特徴とするコンピュータプログラム製品。
【請求項４４】
請求項２３記載の製品において、前記装置はセキュリティ装置であり、前記単一のフローレコードは、前記一以上のセキュリティ装置で前記パケットを処理する際に使用される、ポリシー情報を含むことを特徴とするコンピュータプログラム製品。
【請求項４５】
データパケットを処理する装置であって、
受信したデータパケット毎にフロー情報を決定するモジュールと、
前記モジュールによって検出された、複数の処理装置のフロー情報を含むところの、各フローのフローレコードを含むフローテーブルと、
前記装置に接続された複数の処理装置の各々に、装置特有のフロー情報を送信するインターフェースと
を含むことを特徴とするデータパケットを処理する装置。
【請求項４６】
請求項４５記載の装置において、さらに、所定のパケットに関する特定のフローを同定する情報を評価し、前記同定されたフローに関するフローテーブル中のフローレコードを検索し、装置特有の情報を各処理装置に送信し、一以上の前記処理装置から評価情報を受信し、前記評価情報に従って前記パケットを処理するセッションモジュールを含むことを特徴とするデータパケットを処理する装置。
【請求項４７】
請求項４６記載の装置において、前記セッションモジュールは、パケットの破棄、ログ、保存又は送信のいずれか一つを含むパケットの処理を行うことを特徴とするデータパケットを処理する装置。
【請求項４８】
請求項４５記載の装置において、前記フローテーブルはインデックスキーと前記装置に接続された複数のセキュリティ装置の装置特有のフロー情報を含むことを特徴とするデータパケットを処理する装置。
【請求項４９】
請求項４５記載の装置において、前記処理装置は、ファイアウォール、フローベースルータ、侵入検知システム又は侵入防止システムから選択されたことを特徴とするデータパケットを処理する装置。
【請求項５０】
請求項４５記載の装置において、前記フローテーブルは一以上のフローレコードを有し、このフローレコードは、前記パケットを処理するにあたり二以上のセキュリティ装置に用いるポリシー情報を含むことを特徴とするデータパケットを処理する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータネットワークセキュリティをコントロールする方法に関する。
【０００２】
ファイアウォールと侵入検知システムは、無権限または破壊的なユーザーからコンピュータネットワークを保護するために使用される装置である。ファイアウォールはローカル・エリア・ネットワークの外側のユーザーからローカル・エリア・ネットワークを守るのに使用される。ファイアウォールはローカル・エリア・ネットワークの外側のユーザーのもとへ、あるいはそのユーザーから送られたメッセージ全てにつき、検査をし、経路制御を行い、頻繁にラベル付けを行う。侵入検知システム（ＩＤＳ）は疑わしい振る舞いパターンを認識するために、ネットワーク内に通信されている情報を検査するために使用される。
ＩＤＳによって得られた情報はネットワークへのアクセスから無権限または破壊的なユーザーをブロックするために使用することができる。侵入防御システム（ＩＰＳ）はＩＤＳのインラインバージョンである。ＩＰＳはネットワーク内に通信されている情報を検査し、疑わしい振る舞いパターンを認識するために使用される。
【０００３】
フローベースのルータ（ＦＢＲ）は、ネットワーク・アドミニストレータがパケット転送と経路制御を、ネットワーク・アドミニストレータによって定義されたネットワークポリシーによって実装することを可能にする。ＦＢＲは、ネットワーク・アドミニストレータが、パケットがネットワーク中の特定のパスを通るよう選択的に経路制御するポリシーを実装することを可能にする。また、ＦＢＲは、特定のタイプのパケットが、経路制御される際に、個別の望ましいサービスを受けることを保証するために使用することができる。従来のルータは、利用可能なルーティング情報に基づき、パケットを目的アドレスに転送することができる。ＦＢＲによって、宛先アドレスのみに基づいて経路制御する代わりに、ネットワーク・アドミニストレータが、アプリケーション、プロトコル、パケットサイズおよびエンド・システムのアイデンティティを含むいくつかの基準に基づいて、パケットを許可するか拒絶するかにかかるルーティングポリシーを実装することができるようになる。
【０００４】
信頼されていないネットワークによる攻撃から信頼されたネットワークを守るため、パケットフィルータはネットワークレイヤ中のデータについて動作する。例えば、パケットフィルータは、プロトコルータイプ、送信元および宛先インターネット・プロトコル（ＩＰ）アドレス、および送信元と宛先ポートの番号等を含むところの、ＴＲＡＮＳＭＩＳＳＩＯＮ ＣＯＮＴＲＯＬ ＰＲＯＴＯＣＯＬ/ＩＮＴＥＲＮＥＴ ＰＲＯＴＯＣＯＬ（ＴＣＰ/ＩＰ）のヘッダのフィールドを検査する。パケットフィルータのデメリットは、低速であること、複雑なセキュリティ・ポリシーを備えた大きなネットワークにおける管理の困難性である。パケットフィルータはコミュニケーションのコンテキストを理解しないので、それのみでは、強固な保護を提供することはできない。加えて、パケットフィルータは、アプリケーション層においてデータを検査するのではなく、したがって、パケットフィルータは、アプリケーション層を利用して試みられたセキュリティ侵入には弱い。
【０００５】
プロキシサーバは、信頼されていないネットワークから信頼されたネットワークを隔離するため、アプリケーション層に運ばれた値を基に動作することができる。アプリケーションプロキシサーバでは、２つのＴＣＰコネクションが確立され得る。ひとつは、パケット送信元とプロキシサーバの間、いまひとつはプロキシサーバとパケットの宛先の間である。アプリケーションプロキシサーバは宛先サーバを代理して、到着パケットを受け取る。アプリケーションデータはプロキシサーバによってアセンブルされ、検査される。また、第２のＴＣＰコネクションは、宛先サーバへ許可パケットを中継するため、プロキシサーバと宛先サーバとの間で開かれる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
プロキシサーバは、アプリケーション層でパケットを検査するのに必要な付加的なプロトコル・スタック・オーバーヘッドによって、動作が遅くなることがある。更に、一義的なプロキシーが各アプリケーション毎に必要になるので、プロキシサーバの実装は複雑で、かつ新アプリケーションサポートの修正が困難である。さらに、プロキシサーバは、単にアプリケーション・パケットを検査するのみであり、プロキシサーバはＴＣＰまたはネットワークレイヤで試みられたネットワーク・セキュリティ侵入を検知しないかもしれない。
【課題を解決するための手段】
【０００７】
本発明は、データパケットを処理しおよびコンピュータネットワークセキュリティを実装する、方法及びコンピュータプログラム製品を含む装置を提供する。
【０００８】
発明の利点は、次の特徴の１つ以上を含んでいるかもしれない。開示された技術は、試みられたネットワーク・セキュリティ侵入を検知し、かつそのセキュリティ侵入に関連した現在のパケットをブロックすることができる。開示された技術は強固で効率的なネットワーク・セキュリティを提供することができ、複数のセキュリティ装置とただ一つのフローテーブルを含んでいる。ネットワーク・セキュリティ情報は他のネットワーク・セキュリティ・デバイスから得られ、フローテーブル中の一つのレコードに格納される。パケットが許可されるかどうか決める一つのフローレコードの使用によって、より速い応答時間が得られる。
【０００９】
発明の１つ以上の実装の詳細は、添付の図面と以下の説明の中で述べられる。他の特徴および発明の利点は、説明、図面および請求項から明白になるだろう。
【発明を実施するための最良の形態】
【００１０】
図１は、サーバ（１０２）、いくつかのワークステーション（Ｗ/Ｓ）（１０４）およびセキュリティシステム１２４を含むローカル・エリア・ネットワーク（ＬＡＮ）（１００）を含むネットワークトポロジーを示している。セキュリティシステム１２４はセッション・モジュール１２２および多くの他のセキュリティ装置を含むことができる。開示された実装では、セキュリティシステム１２４は２台のセキュリティ装置、すなわち、第１のセキュリティ装置１０６および第２のセキュリティ装置１０８を含んでいる。ＬＡＮ１００はインターネット（１１４）等の外部ネットワークにセキュリティシステム１２４を通じて接続される。ＬＡＮ１００は、さらに、ルータ（１１８）によって別のＬＡＮ（１１６）やサテライト（１２０）に接続される。第２のＬＡＮ１１６はウェブサーバ（１１０）、電子メールサーバ（１１２）、サーバ１０２、いくつかのワークステーション１０４およびセキュリティシステム１２４を含んでいる。コンピュータ、サーバおよびＬＡＮの中の他のデバイスは、配線、光ファイバーおよび電波のような様々なデータ伝送媒体を使用して相互に連結される。セッション・モジュール１２２は、ネットワーク内に通信されているパケットを監視する。ある実装においては、第１のセキュリティ装置１０６はファイアウォールであり、第２のセキュリティ装置１０８はＩＰＳであってもよい。セッション・モジュール１２２は、試みられたネットワーク・セキュリティ侵入にかかるパケットのブロックをするために、第１のセキュリティ装置１０６および第２のセキュリティ装置１０８と共に動作する。
【００１１】
図２に、セッション・モジュール１２２のブロック図を示す。セッション・モジュール１２２はパケットを受け取る着信パケットインターフェース２０５を含む。受け取られたパケットはフロー処理エンジン（ＦＰＥ）２０２により分析され、試みられたネットワーク・セキュリティ侵入が侵入中か否かを判断する。セッション・モジュール１２２はさらにフローテーブル２１５を含む。フローテーブル２１５は受信パケットのフロー情報を格納するために使用される。セッション・モジュール１２２は、さらにネットワーク上の他のセキュリティ装置へのインターフェースを含む。ある実装においては、セッション・モジュール１２２はファイアウォールインターフェース２２０、ＩＰＳインターフェース２２５およびフローベースのルータ・インターフェース２３０を含む。セキュリティ装置インターフェース２１８は、セッション・モジュール１２２によって使用され、受信パケットが許可されるか修正されるべきかどうかを決めるため、受信パケットにかかる情報およびそのパケットにかかるフロー情報を得ルータめに使用される。セキュリティ装置インターフェース２１８は、さらに、パケット処理をするキュリティ装置によって使用されるフロー情報を通信するため、セッション・モジュール１２２によって使用される。
【００１２】
図３は、本発明の原理にかかる実装で使用されるフローテーブル２１５の構造を示す。フローテーブル２１５は現在のＴＣＰ/ＩＰフローに関するフローレコード３０２を含む。ＴＣＰ/ＩＰフローは、送信元と宛先との間の一方向情報通信データ・パケットのシーケンスを含む。フローレコードはインデックスキー３０５を用いてインデックス付けされている。インデックスキー３０５は、受信パケットにかかる適切なフローレコードを格納し検索するために使用される。ある実装においては、インデックスキー３０５はハッシュ・キーであってもよい。また、フローテーブル２１５はハッシュ・テーブルとして実装されてもよい。セッション・モジュール１２２（図２）は、ネットワーク上の２以上のセキュリティ装置に対するインストラクションを、一つのフローレコード内に保存する。セッション・モジュール１２２のある実装においては、３つのセキュリティ装置（例えば装置３１０、３１５および３２０）の命令は、フローレコード３０２に格納されてもよい。フローレコード３０２は他の情報とともに、ポリシー情報（例えばファイアウォールポリシー、ＩＰＳポリシーなどそのフローに適用されるポリシー情報）も格納する。ここに、他の情報とは、暗号化パラメータ、アドレス変換パラメータ、ブックキーピング情報および統計等であり、これらは各セキュリティ装置によって使用されてもよい。フローレコード３０２は、さらにパケットが許可されるかどうか決定するため、セッション・モジュール１２２に使用されるフロー情報３２５を含むことができる。これら情報には、ネットワークポリシーを実装するのに必要な情報を含むことができる。これらは、例えば、接続タイム・アウト、時間課金、帯域幅使用法等である。フロー、セッションおよびフローテーブルは、「マルチ・メソッド、ゲートウェイベース・ネットワーク・セキュリティ・システムズおよびその方法」という表題の、米国特許出願１０/０７２、６８３に、より詳しく記述されている。それらの内容は、すべてここに組み入れられるものとする。
【００１３】
図４はＦＰＥ ２０２（図２）の動作を説明するフローチャートである。ここで図２および４を参照すると、着信パケットはセッション・モジュールによって受け取られる（ステップ４００）。ＩＰパケットはデフラグされ（ステップ４０２）、ＩＰヘッダは各ＩＰパケットにつき有効化される（ステップ４０３）。この有効化ステップにおいて、与えられたパケットにかかるＩＰヘッダが抽出され、基本的瑕疵の有無が検査される。その後、ＦＰＥ２０２は、セッションが許可されることになっているかどうか判断する（ステップ４１５）。
【００１４】
パケットがＴＣＰパケット（４０４）である場合、ＴＣＰヘッダが有効化され（ステップ４０５）、ＴＣＰパケットはアセンブリされる（ステップ４１０）。有効化プロセスはＴＣＰヘッダ・データを抽出し基本的瑕疵の有無にかかるヘッダの評価を含む。ステップ４１０で生成された疑似アセンブリ情報は、セッション・モジュール１２２によって他のセキュリティ装置に送信され、これらセキュリティ装置でパケットの処理がされる。リアセンブリについては、米国特許出願１０/０７２、６８３および１０/０７２、６８３により非常に詳しく記述されている。
【００１５】
ステップ４１５では、ＦＰＥ ２０２は、与えられた受信パケットにかかるＴＣＰ/ＩＰヘッダ・データを使用して、セッション分類ステップを実行する。セッション・モジュール１２２は、パケットが、受信パケットに関連し、フローテーブル４２０から検索されたＴＣＰ/ＩＰフローに関して得られた情報に基づいて許可されるかどうか決めることができる。さらに、セッション・モジュール１２２は、他のセキュリティ装置、例えばファイアウォール４２５、ＩＰＳ４３０、フローベースルータ４３５のうちの１つから戻された情報を使用してもよい。さらに、セッション・モジュール１２２は、与えられたパケットを処理するためのそれぞれのデバイスにフロー情報を伝えることにより、セキュリティ装置の動作を行ってもよい。最後に、パケットが許可されれば（ステップ４４０）、ＦＰＥ
２０２はパケットを転送する。それ以外の場合には、パケットは他の処理をする（ステップ４４５）。他の処理には、パケットに関する特別の情報のログ、パケットの保持する、あるいはパケットの修正しまたは破棄を含んでもよい。これで、ＦＰＥ２０２の動作の説明を終える。
【００１６】
図５は、セッション分類（図４のステップ４１５）にかかる処理のフローチャートである。セッション分類ステップはパケットを受け取り（ステップ５００）、パケットが許可されるかどうか決めるために使用される情報を抽出する。抽出された情報は送信元および宛先ＩＰアドレス、送信元および宛先ポート番号、およびプロトコルを含む（ステップ５０５）。抽出された情報はパケットが既知のセッション・フローに関係しているかどうか判断するために、フローテーブル２１５（ステップ５１０）を検索するために使用さる。既知のセッション・フローについては、ステップ５１０は、フローテーブル２１５中の一致するフローレコードを生成する（ステップ５１５）。一致するフローレコードが見つかった場合、ＦＰＥ２０２（図２）は一致するフローレコードから受信パケットのＴＣＰ/ＩＰセッション情報を抽出する（ステップ５２０）。ＦＰＥ２０２は、受信パケットが許可されるか否かを、ステップ５２０で得られたＴＣＰ/ＩＰセッション情報を使用して決定する。より具体的には、ＦＰＥ２０２は一致するフローレコードから情報を抽出し、セキュリティ装置へ情報を渡す（例えば、フローレコードからのセッションＩＤおよびＴＣＰ/ＩＰセッション情報、さらには他のセキュリティ装置特有の情報を送信する）（ステップ５２５）。セキュリティ装置からの戻される結果に基づき、ＦＰＥ２０２は与えられたパケット（ステップ５３０）を転送、破棄、記録、格納、修正または他の処理を行う。
【００１７】
ステップ５１５において、一致するフローレコードがフローテーブル２１５で見つからない場合、受信パケットは新しいＴＣＰ/ＩＰセッション（ステップ５３２）に関係している。新しいＴＣＰ/ＩＰセッションの場合、ＦＰＥ２０２はその新しいセッションにセッションＩＤを割り当て、新しいセッションにかかるパケット用のセキュリティ・ポリシーを決定するために、ＦＰＥ２０２は、他のセキュリティ装置（例えばファイアウォール、ＩＰＳ、フロー・ルータ）と通信する。例えば、ＦＰＥ２０２は新しいセッションにかかる受信パケットが許可されるか否かを決めるため、ファイアウォール５４０から情報を得る。ＦＰＥ２０２は、既知の試みられたネットワーク・セキュリティ侵入の攻撃署名と一致するとして、受信パケットをブロックすべきか決定するため、ＩＰＳ５４５と通信してもよい。ＦＰＥ２０２は、フロー・ルータ５５０からの新セッションにかかるネットワークポリシーも得てもよい。ＦＰＥ２０２は、異なるセキュリティ装置間の調停者の役割をし、パケットが新しいＴＣＰ/ＩＰセッションと関係すれば許可されるであろうことを決定するため、セキュリティ装置から個々にあるいはこれらの組合せによって得られた情報を利用してもよい。ＦＰＥ２０２は、新しいフローレコードを作成するためにセキュリティ装置から得た情報を使用し、フローテーブル２１５に新しいフローレコードを格納する（ステップ５５５）。新しいフローレコードは、受信パケットに関連した新しいセッションのＴＣＰ/ＩＰセッション情報および他のセキュリティ装置特有の情報を含む。その後、ＦＰＥ２０２は、図４に記載された与えられたＴＣＰ/ＩＰセッションにかかる受信パケットの処理を行う。その処理とは、対応するフローレコードからのセキュリティ装置にセッションＩＤ、ＴＣＰ/ＩＰセッション情報およびセキュリティ装置特有の情報を伝えることを含む。
【００１８】
受信パケットが様々なセキュリティ装置を使用して、試みられたネットワーク・セキュリティ侵入に関係しているかどうか判断することに加えて、セッション・モジュールは、さらに図４に記述されるような受信ＴＣＰ/ＩＰパケットの疑似リアセンブリを行なうことができる。図６に、セッション・モジュールによって生成することができる疑似リアセンブリ情報を示す。疑似リアセンブリ情報は、メモリ中の与えられたパケット６００の位置へのポインタ、およびフロー６０５中のパケットの相対的地位を含む情報へのポインタを含む。ひとつの実装において、ＩＰＳは受動的ＴＣＰ/ＩＰリアセンブリを行なうかもしれない。また、パケット６００の位置へのポインタはＩＰＳの内のパケットを見つけるために使用されてもよい。他実装においては、フローのパケットの相対的地位を含んでいる情報へのポインタ６０５は、パケットにかかるＴＣＰ/ＩＰヘッダに含まれるＴＣＰ/ＩＰシーケンス番号を得るために使用されてもよい。その疑似リアセンブリ情報は、セッション・モジュール１２２（図２）に接続されたセキュリティ装置に伝えられてもよい。セキュリティ装置は、受信パケットを処理するために疑似リアセンブリ情報を使用する。
【００１９】
上記セッション・モジュール１２２は、多くの異なるネットワークトポロジーの中で使用されてもよい。図７は、セッション・モジュール１２２がファイアウォール７０５へ統合される場合のネットワークトポロジーである。ファイアウォール７０５は、ルータ７２０およびＩＰＳ７１５へのインターフェースを含む。ファイアウォール７０５は外部ネットワークインターフェース７００からパケットを受け取る。受信パケットが既知の攻撃シグネチャに基づいてブロックされるべきかどうかを決定するため、ファイアウォール７０５はＩＰＳ７１５と通信する。ファイアウォール７０５およびＩＰＳ７１５が、パケットの通過を許可する際、ファイアウォール７０５は、ルータ７２０に受信パケットを送る。ルータ７２０は、ルータに格納されたネットワークポリシーに基づいて、内部ネットワークインターフェース７２５を使用して、望む宛先へ送信パケットを転送するかもしれない。
【００２０】
図８は、セッション・モジュール１２２を使用して、コンピュータネットワークセキュリティを実装する他の配置例を示す。この配置では、セッション・モジュール８２０は、ファイアウォール８０５、ＩＰＳ８１０およびルータ８１５からなる直列配置にて作動する。外部ネットワークインターフェース８００を通じて受け取られたパケットは、ルータ８１５に通信される前に、ファイアウォール８０５によって遮断されることがある。ファイアウォール８０５は、さらにＩＰＳ８１０に受信パケットにかかる情報を送る。ＩＰＳ８１０は受信パケットを検査し、既知の攻撃シグネチャに基づき、受信パケットがブロックされるべきときは、セッション・モジュール８２０に通知する。ルータ８１５は次の処理のためにセッション・モジュール８２０にパケットを送る。受信パケットが許可されるべきことをセッション・モジュール８２０が決定する場合、セッションモジュール８２０は内部ネットワークインターフェース８２５を使用して、所望の宛先へ受信パケットを転送する。
【００２１】
本発明の原理に基づく実施例は、ディジタル電子回路中で、コンピュータ・ハードウェア、ファームウェア、ソフトウェア、あるいはそれらの組合せ中で実装されてもよい。実施例は、コンピュータプログラム製品（つまり明確に情報媒体で固定化されたコンピュータプログラム）として実装されてもよい。情報媒体は、機械可読の記憶装置あるいは転送される信号であってもよく、これらは、プログラマブルプロセッサ、コンピュータあるいは多数のコンピュータのようなデータ処理装置によって実行されこれらを制御する。コンピュータプログラムはプログラミング言語の任意の形式で書かれるかもしれない。それはコンパイルされた言語あるいは解釈された言語を含んでいる。それは、スタンドアロンプログラム、あるいはモジュール、コンポーネント、サブルーチンあるいはコンピューティング環境で使用するにふさわしい他のユニットとして含む任意の形式で展開される。コンピュータプログラムは、一地点における一つのコンピュータによって実行され、あるいは多数地点における多数のコンピュータ上で横断分配されて展開され通信網によって相互に連結される。
【００２２】
発明の方法は、入力データ上で作動し出力の生成により発明の機能を行なうためにコンピュータプログラムを実行する、１つ以上のプログラム可能なプロセッサによって行なわれてもよい。発明の方法も、発明の装置も、特定目的論理回路（例えばＦＰＧＡ、ＡＳＩＣ（特定用途向けＩＣ））（フィールドプログラマブルゲートアレイ）によって行なわれ、実装されてもよい。
【００２３】
コンピュータプログラムの実行にふさわしいプロセッサは、例えば、一般および特定目的マイクロプロセッサ、および各種デジタルコンピュータのプロセッサのいずれでもよい。一般に、プロセッサは、読み取り専用メモリおよびランダムアクセス記憶装置の一方または両方から命令とデータを受ける。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令とデータを格納するための１以上のメモリ装置である。一般に、コンピュータは、受け取りまたは送信するところの、データを格納する、例えば磁気ディスク、光磁気ディスクあるいは光ディスク等の大記憶装置を含んでいてもよい。コンピュータプログラム命令およびデータを固定化するにふさわしい情報媒体は、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ等の半導体メモリ装置である不揮発性メモリであってもいいし、磁気ディスク（例えば内部ハードディスク、リムーバブル・ディスク）;光磁気ディスク;またＣＤ-ＲＯＭとＤＶＤ-ＲＯＭディスクでもよい。プロセッサとメモリは特定目的論理回路の補助を受け、または、これに組み入れられてもよい。
【００２４】
本発明の原理に基づく実施例は、バックエンド・コンポーネントを含む計算機システム中に（例えばデータ・サーバとして）実装されるかもしれない。あるいは、ミドルウェア・コンポーネント（例えばアプリケーションサーバ）であってもよい。あるいは、それはフロントエンドのコンポーネント（例えばユーザーが本発明の実装と対話するＧＵＩあるいはウエブブラウザがあるクライアントコンピュータ）あるいはそのようなバックエンド、ミドルウェアあるいはフロントエンドのコンポーネントのどんな組合せでもよい。システムのコンポーネントは、任意の形式あるいはデジタルデータ・コミュニケーション（例えば通信網）の媒体によって相互に連結してもよい。通信網の例は例えば、ローカル・エリア・ネットワーク（ＬＡＮ）および広域ネットワーク（例えばインターネット）（ＷＡＮ）を含んでいる。
【００２５】
計算機システムはクライアントとサーバを含んでいてもよい。クライアントとサーバは離れた場所に位置し、通信網を通ってやりとりするかもしれない。クライアントとサーバの関係は、それぞれのコンピュータ上で作動し、互いとのクライアントサーバ関係を持っているコンピュータプログラムによって発生する。
【００２６】
本発明は特別の実施例に基づき記述された。しかしながら、様々な変更が、本発明の趣旨を逸脱せずになされうることは理解されるだろう。例えば、発明のステップは異なる順に行なわれても望ましい結果を達成するかもしれない。さらに、セッション・モジュール、ＩＰＳ、ファイアウォールおよびルータはすべて、図９の中で示される構成のような単一のデバイスに組み入れられるかもしれない。さらに、１台以上のセキュリティ装置にパッケージにされたセッション・モジュールの他の構成も可能である。したがって、他の実施例も以下の特許請求の範囲の範囲に含まれる。
【図面の簡単な説明】
【００２７】
【図１】セッション・モジュールを含むネットワークトポロジーを示す。
【図２】セッション・モジュールのブロック図を示す。
【図３】フローテーブルの構造を示す。
【図４】セッション・モジュールの動作について記述するフローチャートである。
【図５】セッション分類について記述するフローチャートである。
【図６】セッション・モジュールによって生成された疑似のリアセンブリ情報を示す。
【図７】セッション・モジュールがファイアウォールに含まれている場合のネットワークトポロジーを示す。
【図８】セッション・モジュールが、ファイアウォール、ＩＰＳおよびルータからなる直列中で動作するところで、ネットワークトポロジーを示す。
【図９】セッション・モジュール、ファイアウォール、ＩＰＳおよびルータが単一のセキュリティ装置に含まれている場合のネットワークトポロジーを示す。
【図１】
2006521776.tif 000003
【図２】
2006521776.tif 000004
【図３】
2006521776.tif 000005
【図４】
2006521776.tif 000006
【図５】
2006521776.tif 000007
【図６】
2006521776.tif 000008
【図７】
2006521776.tif 000009
【図８】
2006521776.tif 000010
【図９】
2006521776.tif 000011
【国際調査報告】
2006521776.tif 000012
2006521776.tif 000013