(57)【要約】【課題】レイヤやプロトコルにとらわれることなく、大量接続から接続先である計算機を防御することが可能な接続制限システムおよび接続制限方法を提供する。【解決手段】接続制限システムは、接続先宛に送信された複数の接続要求パケットを受け付け、その接続先への接続要求パケットの提供を管理する接続制限システムであって、前記複数の接続要求パケットから、接続先識別子を検出するためのキーワードを有する抽出対象パケットを検索し、当該検索された抽出対象パケットから前記接続先識別子を抽出し、前記接続先識別子の抽出数をカウントする検査手段１００と、前記接続先識別子の抽出数に基づいて、前記接続先への前記接続要求パケットの提供を制御する制御手段２００と、を含む。【選択図】図１Ａ
2009044226.tif 000002
【特許請求の範囲】
【請求項１】
接続先宛に送信された複数の接続要求パケットを受け付け、前記接続先への前記接続要求パケットの提供を管理する接続制限システムであって、
前記複数の接続要求パケットから、接続先識別子を検出するためのキーワードを有する抽出対象パケットを検索し、当該検索された抽出対象パケットから前記接続先識別子を抽出し、前記接続先識別子の抽出数をカウントする検査手段と、
前記接続先識別子の抽出数に基づいて、前記接続先への前記接続要求パケットの提供を制御する制御手段と、を含む接続制限システム。
【請求項２】
前記検査手段は、
前記キーワードが設定されるキーワードテーブルと、
前記接続先識別子を抽出するための抽出情報が設定される抽出用テーブルと、
カウンタテーブルと、
前記複数の接続要求パケットから、前記キーワードテーブルに設定されたキーワードを有する抽出対象パケットを検索し、当該検索された抽出対象パケットから、前記抽出用テーブルに設定された抽出情報にしたがって前記接続先識別子を抽出し、前記カウンタテーブルを用いて前記接続先識別子の抽出数をカウントする検査部と、を含む、請求項１に記載の接続制限システム。
【請求項３】
前記キーワードテーブルには、前記接続要求パケットにおいて前記キーワードの検索を開始する位置を示す検索オフセットが、前記キーワードに対応づけて設定可能であり、
前記検査部は、前記検索オフセットが前記キーワードに対応づけて設定されている場合、前記接続要求パケットにおいて当該検索オフセットに示された位置から前記キーワードの検索を開始する、請求項２に記載の接続制限システム。
【請求項４】
前記抽出情報は、前記抽出対象パケットにおいて前記接続先識別子の抽出を開始する位置を示す抽出オフセットと抽出される情報の長さを示す抽出長とを含むオフセット情報と、パターンマッチング用文字列を含むパターン情報と、のいずれかであり、
前記検査部は、前記抽出情報として前記オフセット情報が用いられている場合には、前記抽出対象パケットにおいて前記抽出オフセットに示された位置から前記抽出長に示された長さの情報を前記接続先識別子として抽出し、前記抽出情報として前記パターン情報が用いられている場合には、前記抽出対象パケットにおいて前記パターンマッチング用文字列のパターンマッチングを行い当該パターンマッチング用文字列に続く情報を前記接続先識別子として抽出する、請求項２または３に記載の接続制限システム。
【請求項５】
前記キーワードテーブルには、前記キーワードが複数設定され、
前記キーワードテーブルに設定された前記複数のキーワードから選択された複数のキーワードを特定するための特定情報が設定されるアクションテーブルをさらに含み、
前記検査部は、前記複数の接続要求パケットから、前記特定情報にて特定される複数のキーワードを有するパケットを、前記抽出対象パケットとして検索する、請求項２から４のいずれか１項に記載の接続制限システム。
【請求項６】
前記接続先識別子の加工手法が設定される加工テーブルと、
前記接続先識別子が設定される展開キーワードテーブルと、をさらに含み、
前記検査部は、前記抽出された接続先識別子を前記加工テーブルに設定された加工手法にしたがって加工して前記展開キーワードテーブルに設定する、請求項２から５のいずれか１項に記載の接続制限システム。
【請求項７】
接続先宛に送信された複数の接続要求パケットを受け付け、前記接続先への前記接続要求パケットの提供を管理する接続制限システムが行う接続制限方法であって、
前記複数の接続要求パケットから、接続先識別子を検出するためのキーワードを有する抽出対象パケットを検索し、当該検索された抽出対象パケットから前記接続先識別子を抽出し、前記接続先識別子の抽出数をカウントする検査ステップと、
前記接続先識別子の抽出数に基づいて、前記接続先への前記接続要求パケットの提供を制御する制御ステップと、を含む接続制限方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネットなどの任意の識別子を用いて通信するオープンなネットワーク環境上に接続されたサーバなどの計算機の制御に関し、特には、計算機ネットワークにおいて、大量の接続要求により計算機がサービス不能に陥ることを防御する技術に関する。
【背景技術】
【０００２】
サーバなどのホスト（計算機）は、クライアントからの大量の接続要求によって、接続数が許容可能な接続数を超えた場合または処理量が許容可能な処理量を超えた場合、サービス不能に陥る場合がある。
【０００３】
例えば、ＳＩＰ（Session Initiation Protocol）サーバは、ある単位時間に大量のINVITEメソッドを要求されると、サービス不能に陥る可能性がある。ある単位時間に大量のINVITEメソッドを要求することは、ＤｏＳ（Denial of Services）攻撃の一種である。
【０００４】
特許文献１には、ＶｏＩＰ（Voice over Internet Protocol）を利用したシステムにおける大量接続要求の対策技術が記載されている。具体的には、特許文献１には、ＩＰアドレスを用いて大量接続要求を制限する技術が記載されている。
【０００５】
なお、ＤｏＳ攻撃は、特定のプロトコルに限定されない。例えば、ＨＴＴＰのリクエストを大量に発する攻撃もある。この種の攻撃は、非特許文献１において、BruteForceとして分類されており、HTTP floodとして紹介されている。
【特許文献１】特開２００４−３２０６３６号公報
【非特許文献１】Jelena Mirkovic and Peter Reiher,“A taxonomy of DDoS attack and DDoS defense mechanisms”, ACM SIGCOMM Computer Communications Review archive, Volume 34, Issue 2 (April 2004)
【発明の開示】
【発明が解決しようとする課題】
【０００６】
意図的・非意図的に関わらず大量接続によって資源枯渇に陥る可能性があるサーバなどのホストへの接続数を制限することにより、その大量接続からホストを防御するためには、接続の種類毎にそれぞれの対策が必要となる。
【０００７】
特許文献１に記載された対策は、ＩＰ以外のプロトコルには適用できない。また、ＳＩＰのように下位のプロトコルを限定しないプロトコルの場合、コネクションレス型のプロトコルの利用によってＩＰアドレスの偽装も可能となる。特許文献１に記載された対策は、ＩＰアドレスの偽装には対応できず、接続制限が偽装によってすり抜けられる可能性がある。
【０００８】
本発明の目的は、レイヤやプロトコルにとらわれることなく、大量接続から接続先である計算機を防御することが可能な接続制限システムおよび接続制限方法を提供することである。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明の接続制限システムは、接続先宛に送信された複数の接続要求パケットを受け付け、前記接続先への前記接続要求パケットの提供を管理する接続制限システムであって、前記複数の接続要求パケットから、接続先識別子を検出するためのキーワードを有する抽出対象パケットを検索し、当該検索された抽出対象パケットから前記接続先識別子を抽出し、前記接続先識別子の抽出数をカウントする検査手段と、前記接続先識別子の抽出数に基づいて、前記接続先への前記接続要求パケットの提供を制御する制御手段と、を含む。
【００１０】
本発明の接続制限方法は、接続先宛に送信された複数の接続要求パケットを受け付け、前記接続先への前記接続要求パケットの提供を管理する接続制限システムが行う接続制限方法であって、前記複数の接続要求パケットから、接続先識別子を検出するためのキーワードを有する抽出対象パケットを検索し、当該検索された抽出対象パケットから前記接続先識別子を抽出し、前記接続先識別子の抽出数をカウントする検査ステップと、前記接続先識別子の抽出数に基づいて、前記接続先への前記接続要求パケットの提供を制御する制御ステップと、を含む。
【００１１】
上記発明によれば、複数の接続要求パケットから、接続先識別子を検出するためのキーワードを有する抽出対象パケットが検索され、その検索された抽出対象パケットから接続先識別子が抽出され、その接続先識別子の抽出数がカウントされる。
【００１２】
このため、接続先識別子の種類に応じてキーワードが適宜設定されれば、ＩＰアドレスに限らない接続先識別子を検出することが可能になる。よって、レイヤやプロトコルにとらわれることなく、接続先を特定することが可能になり、接続先を大量接続要求から防御することが可能になる。
【００１３】
なお、前記検査手段は、前記キーワードが設定されるキーワードテーブルと、前記接続先識別子を抽出するための抽出情報が設定される抽出用テーブルと、カウンタテーブルと、前記複数の接続要求パケットから、前記キーワードテーブルに設定されたキーワードを有する抽出対象パケットを検索し、当該検索された抽出対象パケットから、前記抽出用テーブルに設定された抽出情報にしたがって前記接続先識別子を抽出し、前記カウンタテーブルを用いて前記接続先識別子の抽出数をカウントする検査部と、を含むことが望ましい。
【００１４】
上記発明によれば、検査部は、接続先識別子を抽出するための抽出情報にしたがって接続先識別子を抽出する。
【００１５】
このため、上記効果に加えて、接続先識別子の種類に応じて抽出情報を適宜設定することが可能となり、ＩＰアドレスに限らない接続先識別子を検出することが可能になる。
【００１６】
また、前記キーワードテーブルには、前記接続要求パケットにおいて前記キーワードの検索を開始する位置を示す検索オフセットが、前記キーワードに対応づけて設定可能であり、前記検査部は、前記検索オフセットが前記キーワードに対応づけて設定されている場合、前記接続要求パケットにおいて当該検索オフセットに示された位置から前記キーワードの検索を開始することが望ましい。
【００１７】
上記発明によれば、上記効果に加えて、抽出対象パケットを効率よく検索することが可能になる。
【００１８】
また、前記抽出情報は、前記抽出対象パケットにおいて前記接続先識別子の抽出を開始する位置を示す抽出オフセットと抽出される情報の長さを示す抽出長とを含むオフセット情報と、パターンマッチング用文字列を含むパターン情報と、のいずれかであり、前記検査部は、前記抽出情報として前記オフセット情報が用いられている場合には、前記抽出対象パケットにおいて前記抽出オフセットに示された位置から前記抽出長に示された長さの情報を前記接続先識別子として抽出し、前記抽出情報として前記パターン情報が用いられている場合には、前記抽出対象パケットにおいて前記パターンマッチング用文字列のパターンマッチングを行い当該パターンマッチング用文字列に続く情報を前記接続先識別子として抽出することが望ましい。
【００１９】
上記発明によれば、上記効果に加えて、接続先識別子を効率よく抽出することが可能になる。
【００２０】
また、前記キーワードテーブルには、前記キーワードが複数設定され、前記キーワードテーブルに設定された前記複数のキーワードから選択された複数のキーワードを特定するための特定情報が設定されるアクションテーブルをさらに含み、前記検査部は、前記複数の接続要求パケットから、前記特定情報にて特定される複数のキーワードを有するパケットを、前記抽出対象パケットとして検索することが望ましい。
【００２１】
上記発明によれば、上記効果に加えて、抽出対象パケットを効率よく検索することが可能になる。
【００２２】
また、前記接続先識別子の加工手法が設定される加工テーブルと、前記接続先識別子が設定される展開キーワードテーブルと、をさらに含み、前記検査部は、前記抽出された接続先識別子を前記加工テーブルに設定された加工手法にしたがって加工して前記展開キーワードテーブルに設定することが望ましい。
【００２３】
上記発明によれば、例えば、接続先識別子を利用者が認識しやすい形式に変換することが可能になる。
【発明の効果】
【００２４】
本発明によれば、レイヤやプロトコルにとらわれることなく、大量接続から接続先を防御することが可能になる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施形態を図面を参照して説明する。
【００２６】
図１Ａは、本発明の一実施形態の接続制限システムを示したブロック図である。
【００２７】
図１Ａにおいて、接続制限システムは、検査装置１００と、制御システム２００とを含む。
【００２８】
検査装置１００は、検査手段の一例であり、検査機器１と、ＤＢ（データベース）１ａとを含む。制御システム２００は、制御手段の一例であり、判断機器２と、ＤＢ２ａと、制御機器３と、ＤＢ３ａと、を含む。
【００２９】
検査機器１は、検査部の一例であり、例えば、計算機である接続元１０から、ルータ等のネットワーク機器１１、インターネット等のネットワーク１２、および、ルータ等のネットワーク機器５を介して入力されるパケット、具体的には、接続先（制御対象）であるホスト（計算機）４宛に送信された複数の接続要求パケット（以下、単に「パケット」と称する。）を取得する。なお、接続元１０や接続先であるホスト４は、１台に限らず複数台あってもよい。
【００３０】
検査機器１は、取得されたパケット内部から必要となる情報を取得し、その取得結果を判断機器２に通知する。
【００３１】
判断機器２は、検査機器１より通知された情報を元に、大量接続がされている宛先と、その接続元と、パケットの制御方法と、に関する情報を管理する。
【００３２】
判断機器２は、ホスト４の資源枯渇を防御する場合は、制御方法として、ホスト４宛のパケットの廃棄またはレートリミットを選択する。
【００３３】
制御機器３は、防御対象となるホスト４宛てのパケットを、判断機器２において決定された制御方法に基づいて制御する。
【００３４】
制御機器３は、防御対象となる機器（本実施形態ではホスト４）の前段に具備される。
【００３５】
検査機器１は、制御機器３行きのパケットを検査することが目的であるため、図１Ａに示したように、インラインで制御機器３の前段に置かれてもよい。
【００３６】
また、図１Ｂに示したように、制御機器３の手前のネットワーク機器５が、ポートミラーリング等の方法で、制御機器３行きパケットをコピーし、そのコピーを検査機器１に送信し、検査機器１が、そのコピーを検査してもよい。なお、図１Ｂにおいて、図１Ａに示したものと同一のものには同一符号を付してある。
【００３７】
判断機器２は、検査機器１と制御機器３に接続され、それらの中間にあればよく、インラインか否かは問わない。
【００３８】
検査機器１と判断機器２と制御機器３は、それぞれ、情報を保持するためのＤＢ１ａ、２ａおよび３ａを保持する。また、ＤＢ１ａ、２ａおよび３ａは、検査機器１と判断機器２と制御機器３がアクセス可能ならば一体となっていてもよい。
【００３９】
検査機器１と判断機器２と制御機器３は、一体の機器として構成されてもよい。なお、検査機器１と制御機器３が一体の機器であってもよい。また、検査機器１と判断機器２が一体の機器であってもよい。また、判断機器２と制御機器３が一体の機器であってもよい。また、１つの判断機器２に、複数の検査機器１と制御機器３が接続されてもよい。また、１つの判断機器２に、検査機器１と制御機器３が一体となった機器が複数接続されてもよい。
【００４０】
なお、検査装置１００は、接続先宛に送信された複数のパケットから、接続先識別子を検出するためのキーワードを有する抽出対象パケットを検索する。検査装置１００は、その検索された抽出対象パケットから接続先識別子を抽出し、接続先識別子の抽出数をカウントする。
【００４１】
例えば、検査装置１００は、任意の文字列検索方法またはバイト列検索方法を用いて、接続先の識別子と接続元の識別子を記録する。なお、接続先の識別子と、接続元の識別子は、ＩＰアドレスに限らない任意の文字列を含むバイト列とする。
【００４２】
制御システム２００は、検査装置１００がカウントした接続先識別子の抽出数に基づいて、接続先へのパケットの提供を制御する。
【００４３】
例えば、制御システム２００は、接続先に対するパケットの数が単位時間当たりの閾値を超えた場合に、接続先の接続数を制限することで、サーバなどのホスト（接続先）４の資源枯渇を回避する。
（実施例）
検査機器１の処理は、２段階に分かれる。
【００４４】
具体的には、検査機器１の処理は、初期設定テーブル群を用いたパケット検索と、展開キーワードテーブル群を用いた検索とに分かれる。
【００４５】
初期設定テーブル群に設定される情報は、利用者から与えられる。展開キーワードテーブル群に設定される情報は、初期設定テーブル群から自動生成される。
【００４６】
図２は、初期設定テーブル群１Ａの一例を示した説明図である。なお、初期設定テーブル群１Ａは、ＤＢ１ａに設けられている。
【００４７】
図２において、初期設定テーブル群１Ａは、キーワードテーブル１Ａ１と、抽出テーブル１Ａ２と、オフセット抽出テーブル１Ａ３と、パターン抽出テーブル１Ａ４と、加工テーブル１Ａ５と、アクションテーブル１Ａ６と、閾値テーブル１Ａ７と、を含む。
【００４８】
なお、抽出テーブル１Ａ２と、オフセット抽出テーブル１Ａ３と、パターン抽出テーブル１Ａ４とで、抽出用テーブルが構成される。
【００４９】
キーワードテーブル１Ａ１は、検査機器１に入力されるパケットの中から抽出対象パケットを検索するために利用される。
【００５０】
キーワードテーブル１Ａ１では、キーワードＩＤ１Ａ１ａが、番号を保持する。キーワード１Ａ１ｂが、任意のバイト列（キーワード）、すなわち、文字列かデータ列を保持する。キーワードタイプ１Ａ１ｃが、そのキーワードのタイプを保持する。また、検索開始位置のオフセットを明示的に指定する場合は、その値がオフセット１Ａ１ｄに保持される。
【００５１】
本例では、キーワードＩＤ「１」は、３０バイト目から「０ｘ０ａ０１０１０ａ」のデータ列を検索することを意味する。
【００５２】
なお、本例のオフセットの３０バイト目は、ＭＰＬＳ（Multi-Protocol Label Switching）やＶＬＡＮ（Virtual LAN）などの第２層を拡張するヘッダがないことを前提とし、Ethernet HeaderとIP Headerが隣接している場合に、Ethernet Headerを先頭とした場合に、IP Header内の宛先ＩＰアドレスフィールドの開始位置となる。
【００５３】
「０ｘ０ａ０１０１０ａ」は、１０進数表記での「１０．１．１．１０」と同意である。
【００５４】
キーワードＩＤ「２」におけるオフセットの３６バイト目は、上記前提に加えて、IP Headerに一切の拡張ヘッダがない場合、トランスポートヘッダ内の宛先ポートとなる。
【００５５】
「０ｘ１３Ｃ４」は、１０進数表記での「５０６０」を示している。
【００５６】
同様に、キーワードＩＤ「３」、「４」、「５」、「６」の、「０ｘ０ａ０１０１０ｂ」、「０ｘ５０」、「０ｘ０ａ０１０１７８」、「Ｂ８０」のそれぞれは、１０進数表記での、「１０．１．１．１１」、「８０」、「１０．１．１．１２０」、「２９４４」を意味している。
【００５７】
抽出テーブル１Ａ２は、キーワードテーブル１Ａ１に基づいて検索されたパケット（抽出対象パケット）から接続先識別子を抽出するために用いられる。抽出方法としては、オフセットを用いた抽出方法と、パターンマッチングを用いた抽出方法が存在する。
【００５８】
抽出テーブル１Ａ２では、抽出タイプ１Ａ２ｂには、「オフセット方式」か、「パターンマッチング方式」が指定される。
【００５９】
抽出タイプ１Ａ２ｂに「オフセット方式」（オフセット）が指定された場合、その抽出タイプ１Ａ２ｂに対応する関連ＩＤ１Ａ２ｃには、オフセット抽出テーブル１Ａ３内のオフセット抽出ＩＤ１Ａ３ａのいずれかの番号が指定される。
【００６０】
また、抽出タイプ１Ａ２ｂに「パターンマッチング方式」（パターン）が指定された場合、その抽出タイプ１Ａ２ｂに対応する関連ＩＤ１Ａ２ｃには、パターンマッチング抽出テーブル１Ａ４内のパターン抽出ＩＤ１Ａ４ｂのいずれかの番号が指定される。
【００６１】
したがって、抽出タイプ１Ａ２ｂは、次に参照するデータベースのテーブル名を指定していることとなる。
【００６２】
本例では、抽出テーブル１Ａ２内の抽出ＩＤ「１」は、オフセット抽出テーブル１Ａ３内のオフセット抽出ＩＤ「１」と関連する。また、抽出テーブル１Ａ２内の抽出ＩＤ「３」は、パターン抽出テーブル１Ａ４内のパターン抽出ＩＤ「１」と関連する。
【００６３】
オフセット抽出テーブル１Ａ３では、抽出オフセット１Ａ３ｂに、抽出するバイト列の開始位置を示すオフセットが指定され、抽出長１Ａ３ｃに、そのバイト列の長さが指定される。なお、抽出オフセット１Ａ３ｂと抽出長１Ａ３ｃとで、オフセット情報を構成する。
【００６４】
オフセット抽出テーブル１Ａ３内のオフセット抽出ＩＤ「１」は、２６バイト目から４バイト分情報を抽出することを意味している。上記前提においては、オフセット抽出ＩＤ「１」は、ソースＩＰアドレス（接続元識別子）の抽出を意味している。
【００６５】
パターン抽出テーブル１Ａ４では、抽出パターン１Ａ４ｂに、抽出する文字列（パターンマッチング用文字列）のパターンマッチングの式が保持される。なお、抽出パターン１Ａ４ｂは、パターン情報を構成する。
【００６６】
なお、このパターンマッチングに用いる方法は、どういった手段でもよく、本例ではperl（Practical Extraction and Report Language）言語の正規表現に準じた表記を用いている。
【００６７】
本例において、パターン抽出テーブル１Ａ４内のパターン抽出ＩＤ「１」は、“INVITE sip”の文字列に続く文字列を抽出することを述べている。
【００６８】
加工テーブル１Ａ５は、後述するようにアクションテーブル１Ａ６に基づいて取得された値（例えば、接続元識別子および接続先識別子）を、なんらかの方法（関数）に基づいて加工する場合の関数名（加工手法）を保持する。
【００６９】
閾値テーブル１Ａ７は、アクションテーブル１Ａ６にて指定され、展開キーワードテーブル１Ｂ１に引き継がれる閾値の情報を保持し、ソース（接続元）だけのデータ量の閾値、宛先（接続先）だけのデータ量の閾値、ソースと宛先間のデータ量の閾値の３種類の情報を保持する。
【００７０】
アクションテーブル１Ａ６では、アクション１Ａ６ｂに、キーワードテーブル１Ａ１のキーワードＩＤ１Ａ１ａの組合せ条件式の情報が保持される。
【００７１】
ソース抽出ＩＤ１Ａ６ｃには、ソースの情報（接続元識別子）を抽出するために使用する、抽出テーブル１Ａ２内の抽出ＩＤ１Ａ２ａの番号が保持される。
【００７２】
ソース加工ＩＤ１Ａ６ｄには、抽出されたソース情報を加工するために使用する、加工テーブル１Ａ５内の加工ＩＤ１Ａ５ａの番号が保持される。
【００７３】
宛先抽出ＩＤ１Ａ６ｅには、宛先の情報（接続先識別子）を抽出するために使用する、抽出テーブル１Ａ２内の抽出ＩＤ１Ａ２ａの番号が保持される。
【００７４】
宛先加工ＩＤ１Ａ６ｆには、抽出された宛先情報を加工するために使用する、加工テーブル１Ａ５内の加工ＩＤ１Ａ５ａの番号が保持される。
【００７５】
閾値ＩＤ１Ａ６ｇには、閾値テーブル１Ａ７内の閾値ＩＤ１Ａ７ａの番号が保持される。
【００７６】
図３は、展開キーワードテーブル群１Ｂの一例を示した説明図である。なお、展開キーワードテーブル群１Ｂは、ＤＢ１ａ、ＤＢ１ｂ、ＤＢ１ｃの何れかまたは全てに設けられており、適切な同期などを用いて検査機器１、判断機器２、制御機器３で同じ情報が参照できる状態になっている。
【００７７】
図３において、展開キーワードテーブル群１Ｂは、展開キーワードテーブル１Ｂ１および展開キーワードパケットカウントテーブル１Ｂ２を含む。なお、図３では、展開キーワードテーブル１Ｂ１と展開キーワードパケットカウントテーブル１Ｂ２が分かれているが、これらは、対応する展開ＩＤに基づいて結合されてもよい。
【００７８】
展開キーワードテーブル１Ｂ１には、初期設定テーブル群１Ａに基づいて検査機器１によって抽出されたパケットの情報が登録される。
【００７９】
展開キーワードテーブル１Ｂ１では、ソース１Ｂ１ｂには、パケットのソースを意味する接続元識別子（例えば、データ列）が保持される。
【００８０】
ソースタイプ１Ｂ１ｃには、接続元識別子のタイプを示す、文字列（ＡＳＣＩＩ）またはデータ列（ＢＩＮＡＲＹ）が保持される。
【００８１】
ソースオフセット１Ｂ１ｄには、必要な場合は、オフセットが指定される。
【００８２】
同様に、宛先１Ｂ１ｅには、パケットの宛先を意味する接続先識別子（例えば、データ列）が保持される。
【００８３】
宛先タイプ１Ｂ１ｆには、接続先識別子のタイプを示す、文字列（ＡＳＣＩＩ）またはデータ列（ＢＩＮＡＲＹ）が保持される。
【００８４】
宛先オフセット１Ｂ１ｇには、必要な場合は、オフセットが指定される。
【００８５】
展開キーワードパケットカウントテーブル１Ｂ２内のパケットカウンタ１Ｂ２ａでは、展開ＩＤごとに、識別子の抽出数がカウントされる。
【００８６】
展開キーワードテーブル１Ｂ１内の閾値１Ｂ１ｈには、展開ＩＤ（ソースのみ、宛先のみ、ソース宛先間）に対応する閾値が入る。
【００８７】
次に、動作を説明する。
【００８８】
検査機器１は、アクションテーブル１Ａ６内のアクション１Ａ６ｂの条件式に基づいて、パケットを検索し、その検索されたパケットから情報を抽出して、その抽出結果に基づき展開キーワードテーブル１Ｂ１および展開キーワードパケットカウントテーブル１Ｂ２に情報を登録する。
【００８９】
具体的には、まず、検査機器１は、アクション１Ａ６ｂの条件式内のキーワードＩＤ１Ａ１ａにて特定される検索を順々に行う。
【００９０】
検査機器１は、任意の文字列（ＡＳＣＩＩ）またはデータ列（ＢＩＮＡＲＹ）の検索を使用して、入力されたパケットから、予め初期設定テーブル群１Ａのキーワードテーブル１Ａ１に保持されているキーワードを検索する。
【００９１】
例として、アクションＩＤ「１」の場合、検査機器１は、キーワードＩＤ「１」、「２」および「７」に設定されている検索条件にしたがって、入力される複数のパケットから、３０バイト目が「０ｘ０ａ０１０１０ａ」（宛先ＩＰアドレスが１０．１．１．１０）で、かつ、３６バイト目が「０ｘ１３ｃ４」（宛先ポート番号が５０６０）で、かつ、「ＩＮＶＩＴＥ」の文字列が含まれているパケット（抽出対象パケット）を検索する。
【００９２】
続いて、検査機器１は、アクションＩＤごとに、検索されたパケットから、アクションテーブル１Ａ６内のソース抽出ＩＤ１Ａ６ｃに保持された抽出ＩＤに基づいてデータ（接続元識別子）を抽出する。
【００９３】
例として、アクションＩＤ「１」の場合、検査機器１は、まず、ソース抽出ＩＤ１Ａ６ｃに保持された抽出ＩＤ「１」を読み取る。続いて、検査機器１は、抽出テーブル１Ａ２を参照して、抽出ＩＤ「１」に関連づけられているオフセット抽出テーブル１Ａ３のオフセット抽出ＩＤ「１」を選定する。続いて、検査機器１は、検索されたパケットから、オフセット抽出ＩＤ「１」の抽出条件（２６バイト目から４バイト分データを抽出するという条件）にしたがって、データ（接続元識別子）を抽出する。
【００９４】
続いて、検査機器１は、アクションテーブル１Ａ６のソース抽出ＩＤ１Ａ６ｃを用いて抽出された結果を、展開キーワードテーブル１Ｂ１のソース１Ｂ１ｂに設定する。
【００９５】
ただし、ソース抽出ＩＤ１Ａ６ｃに対応するソース加工ＩＤ１Ａ６ｄに、加工ＩＤの番号が設定されている場合は、検査機器１は、その加工ＩＤ１Ａ５ａに基づいて、データ（接続元識別子）を加工する。
【００９６】
加工ＩＤ「１」の「getnameinfo」は、ＤＮＳ（Domain Name System）を用いた名前変換（加工手法）を意味している。
【００９７】
ＩＰアドレスを指定して行う通信はＩＰアドレスを覚える必要性など不便な点があるため、ＤＮＳを介したホスト名を用いて通信が行われるのが一般的である。
【００９８】
したがって、同一のホストの指定方法にＩＰアドレスとホスト名の２種類が存在する。展開キーワードテーブル１Ｂ１に登録する際にＩＰアドレスのみを登録すると、ホスト名を用いられたパケットをチェックできないため、名前変換を行う。加工前状態と加工結果は共に展開キーワードテーブルに登録される。また図に示していないが、名前からアドレスへの変換（加工）を行えば、異なるアドレスファミリーの情報を取得もできる。
【００９９】
展開キーワードテーブル１Ｂ１のソースオフセット１Ｂ１ｄには、抽出方法が「オフセット」だった場合に、オフセット抽出テーブル１Ａ３の抽出オフセット１Ａ３ｂの値が引き継がれる。
【０１００】
また、検査機器１は、抽出方法が「オフセット」だった場合に、ソースタイプ１Ｂ１ｃに「ＢＩＮＡＲＹ」を設定し、一方、抽出方法が「パターンマッチ」だった場合に、ソースタイプ１Ｂ１ｃに「ＡＳＣＩＩ」を設定する。
【０１０１】
検査機器１は、同様の方法で、展開キーワードテーブル１Ｂ１内の、宛先１Ｂ１ｅ、宛先タイプ１Ｂ１ｆ、および、宛先オフセット１Ｂ１ｇに情報を設定する。
【０１０２】
以上のようにして、検査機器１は、生成された情報を、展開キーワードテーブル１Ｂ１に登録する。
【０１０３】
同時に、検査機器１は、展開キーワードパケットカウントテーブル１Ｂ２内の該当展開ＩＤのパケットカウンタ１Ｂ２ａに１を記録する。既に、該当展開ＩＤのパケットカウンタ１Ｂ２ａに数値が登録済みの場合は、検査機器１は、そのパケットカウンタ１Ｂ２ａを１増加（インクリメント）する。
【０１０４】
検査機器１は、展開キーワードテーブル１Ｂ１へ新規にデータを登録する場合、１つの検索結果から、ソースだけ、宛先だけ、ソース宛先両方の計３種類の情報を登録する。
【０１０５】
その際に、検査機器１は、アクションテーブル１Ａ６の閾値ＩＤ１Ａ６ｇで設定された情報（閾値ＩＤの番号）に基づいて、閾値テーブル１Ａ７の該当ＩＤのソース閾値１Ａ７ｂ、宛先閾値１Ａ７ｃ、ソース宛先間閾値１Ａ７ｄのそれぞれを、展開キーワードテーブル１Ｂ１内の、ソースだけの情報、宛先だけの情報、および、ソース宛先両方の情報に対応する閾値１Ｂ１ｈに設定する。
【０１０６】
展開キーワードテーブル１Ｂ１に保持される情報は、上記が最低限の情報となり、さらに、検査機器１が、取得した情報を展開キーワードテーブル１Ｂ１に追記する場合に、例えばバイト量のカウンタ等を追記してもよい。
【０１０７】
展開キーワードテーブル１Ｂ１が容量等の制限で追記不可となる場合は、検査機器１は、ＬＲＵ（LeastRecentlyUsed）等を用いて、最も参照されていないキーワードから削除していけばよい。
【０１０８】
検査機器１は、これら、展開キーワードテーブル１Ｂ１および展開キーワードパケットカウントテーブル１Ｂ２の情報を定期的に、判断機器２に通知する。通知の時間間隔は、用途に合わせて外部より設定される。例えば、リアルタイム性が求められれば、１秒といった細かい間隔になる。
【０１０９】
検査機器１と判断機器２が一体の場合は、内部のメモリコピー、プロセス間メッセージなどを用いて、通知が行われる。
【０１１０】
検査機器１と判断機器２が分離している場合は、何らかの通信方法で、それらの情報を通知する。
【０１１１】
例えば、検査機器１が、これらデータベースをプライベートＭＩＢ（Management Information Base）で保持しておけば、判断機器２は、ＳＮＭＰ（Simple Network Management Protocol）を介して、それらの情報を取得すればよい。もしくは、ベンダー独自の情報が定義可能なＩＰＦＩＸなどを用いて、検査機器１が、判断機器２にデータを送信してもよい。また、ＤＢ間のレプリケーション（複製の作成技術）を用いてもよい。
【０１１２】
一体の場合でも分離している場合でも、検査機器１と判断機器２がデータベースを共有している場合は、データベースの相互参照で情報の通信を実現できる。
【０１１３】
判断機器２は、送信されたカウンタ情報（パケットカウンタ１Ｂ２ａの値）を元に、閾値判定を行う。
【０１１４】
判断機器２は、単位時間当たりに閾値を超過した、ソースのみ、もしくは、ソースと宛先の組み合わせの情報（カウンタ情報）を含むパケットのマークを“低”とする。また、判断機器２は、一旦閾値を超過した後に閾値を下回ったカウンタ情報を有するパケットのマークを“普通”に戻す。
【０１１５】
判断機器２は、この結果を、制御機器３に通知する。
【０１１６】
この通知の方法は、検査機器１と判断機器２の場合と同じである。
【０１１７】
なお、判断機器２は、マークが“低”の情報だけを制御機器３に送信すればよい。
【０１１８】
マークが“低”の情報だけを送信する場合は、判断機器２は、過去の情報でマークが“低”となっていたが、新しく通知された情報でそれが報告されていない場合は、マークを“普通”としてみなす。
【０１１９】
また、判断機器２は、宛先のみの情報において、カウンタ情報が閾値を超えた場合は、マークを“保護”にする。
【０１２０】
単位時間当たりの判断のために、展開キーワードパケットカウンタテーブル１Ｂ２に開始時刻が記録されてもよい。
【０１２１】
制御機器３は、開始時刻を、単位時間毎に更新し、該当パケットが観測された時刻から開始時刻を減算して得られた時間を利用して、単位時間内か否かを判断する。ソースオフセット１Ｂ１ｄには、必要な場合は、接続元識別子を検索するために用いる開始オフセットが指定される。
【０１２２】
また上記のＬＲＵなどを実行するために、展開キーワードパケットカウントテーブル１Ｂ２に、最終アクセス時刻が記録されてもよい。
【０１２３】
制御機器３は、この情報に基づいて、再度パケットの情報をチェックする。
【０１２４】
制御機器３は、展開キーワードテーブル１Ｂ１に示されたパケットに対して制御を行う。宛先オフセット１Ｂ１ｇには、必要な場合は、接続先識別子を検索するために用いる開始オフセットが指定される。
【０１２５】
制御機器３は、マークが“低”とされた以外のパケットについては、マークが“低”とされたパケットよりも高いマークを設定し、相対的にマークが“低”とされたパケットの優先度が低くなる。
【０１２６】
この制御は、もしも、後段にDiffservなどに対応したネットワーク機器があれば、ＤＳＣＰ（Diff-serv Code Point）などの値を、リマークするだけでもよいし、制御機器３自身が、ＣＢＷＦＱ（Class Based Weighted Fare Queuing）等を用いたキューイング処理をすればよい。
【０１２７】
また、宛先が“保護”となっている場合は、制御機器３は、トークンバケットなどを用いて、単位時間当たりに転送されるパケット数を制限（例えば、パケットを廃棄して制限）すればよい。
【０１２８】
なお、本例は一例であり、初期設定テーブル群１Ａのキーワードテーブル１Ａ１、抽出テーブル１Ａ２、オフセット抽出テーブル１Ａ３、パターン抽出テーブル１Ａ４、閾値テーブル１Ａ７、加工テーブル１Ａ５は、正規化せずに単一または例示したよりも少ない数のテーブルとしてもよい。
【０１２９】
同様に、展開キーワードテーブル１Ｂ１と展開キーワードパケットカウントテーブル１Ｂ２は、正規化せずに単一のテーブルであってもよい。
【０１３０】
本実施形態によれば、以下の効果を奏する。
【０１３１】
レイヤやプロトコルを限定することなく、大量接続数の接続を限定することができる。
【０１３２】
また、その制御の判断となる情報もＩＰアドレスに限定されないため、ＩＰアドレスによる偽装によるすり抜けも回避できる上に、ＶＬＡＮ情報などＩＰより下位の情報やＳＩＰ  ＵＲＩ等の上位の情報も利用できる。
【０１３３】
また、展開キーワードテーブル登録時に加工を行うプロセスを挿入することで、例えば名前変換を行えば、同一ホストに対する複数の指定を統一することができる。
【０１３４】
本実施形態によれば、検査装置１００は、接続先宛に送信された複数のパケットから、接続先識別子を検出するためのキーワードを有する抽出対象パケットを検索し、その検索された抽出対象パケットから接続先識別子を抽出し、接続先識別子の抽出数をカウントする。
【０１３５】
このため、接続先識別子の種類に応じてキーワードが適宜設定されれば、ＩＰアドレスに限らない接続先識別子を検出することが可能になる。よって、レイヤやプロトコルにとらわれることなく、接続先を特定することが可能になり、接続先を大量接続要求から防御することが可能になる。
【０１３６】
また、検査機器１は、抽出テーブル１Ａ２とオフセット抽出テーブル１Ａ３とパターン抽出テーブル１Ａ４に設定された抽出情報にしたがって接続先識別子を抽出し、展開キーワードテーブル１Ｂ１と展開キーワードパケットカウントテーブル１Ｂ２からなるカウンタテーブルを用いて、接続先識別子の抽出数をカウントする。
【０１３７】
この場合、接続先識別子の種類に応じて抽出情報を適宜設定することが可能となり、ＩＰアドレスに限らない接続先識別子を検出することが可能になる。
【０１３８】
また、検査機器１は、検索オフセットがキーワードに対応づけて設定されている場合、パケットにおいて検索オフセットに示された位置からキーワードの検索を開始する。
【０１３９】
この場合、無駄な検索を不要にでき、抽出対象パケットを効率よく検索することが可能になる。
【０１４０】
また、検査機器１は、抽出情報としてオフセット情報が用いられている場合には、抽出対象パケットにおいて抽出オフセットに示された位置から抽出長に示された長さの情報を接続先識別子として抽出する。また、検査機器１は、抽出情報としてパターン情報が用いられている場合には、抽出対象パケットにおいて文字列のパターンマッチングを行い、その文字列に続く情報を接続先識別子として抽出する。
【０１４１】
この場合、抽出予定の接続先識別子の種類に応じて抽出手法を変更することが可能になり、接続先識別子を効率よく抽出することが可能になる。
【０１４２】
また、検査機器１は、複数のパケットから、アクション（特定情報）１Ａ６ａにて特定される複数のキーワードを有するパケットを、抽出対象パケットとして検索する。
【０１４３】
この場合、抽出対象パケットの検索条件を詳細にできるので、抽出対象パケットを効率よく検索することが可能になる。
【０１４４】
また、検査機器１は、抽出された接続先識別子を、加工テーブル１Ａ５に設定された加工関数（加工手法）１Ａ５ｂにしたがって加工して、展開キーワードテーブル１Ｂ１に登録する。
【０１４５】
この場合、例えば、接続先識別子を利用者が認識しやすい形式に変換することが可能になる。
【０１４６】
以上説明した実施形態および実施例において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
【図面の簡単な説明】
【０１４７】
【図１Ａ】本発明の一実施形態の接続制限システムを示したブロック図である。
【図１Ｂ】本発明の他の実施形態の接続制限システムを示したブロック図である。
【図２】初期設定テーブル群１Ａの一例を示した説明図である。
【図３】展開キーワードテーブル１Ｂ１および展開キーワードパケットカウントテーブル１Ｂ２の一例を示した説明図である。
【符号の説明】
【０１４８】
１      検査機器
２      判断機器
３      制御機器
１ａ、２ａ、３ａ  ＤＢ
４      ホスト
５      ネットワーク機器
１０      接続元
１１      ネットワーク機器
１２      ネットワーク
１００      検査装置
２００      制御システム
１Ａ      初期設定テーブル群
１Ａ１    キーワードテーブル
１Ａ２    抽出テーブル
１Ａ３    オフセット抽出テーブル
１Ａ４    パターン抽出テーブル
１Ａ５    加工テーブル
１Ａ６    アクションテーブル
１Ａ７    閾値テーブル
１Ｂ１    展開キーワードテーブル
１Ｂ２    展開キーワードパケットカウントテーブル
【図１Ａ】
2009044226.tif 000003
【図１Ｂ】
2009044226.tif 000004
【図２】
2009044226.tif 000005
【図３】
2009044226.tif 000006