説明

接続制限システムおよび接続制限方法

【課題】レイヤやプロトコルにとらわれることなく、大量接続から接続先である計算機を防御することが可能な接続制限システムおよび接続制限方法を提供する。
【解決手段】接続制限システムは、接続先宛に送信された複数の接続要求パケットを受け付け、その接続先への接続要求パケットの提供を管理する接続制限システムであって、前記複数の接続要求パケットから、接続先識別子を検出するためのキーワードを有する抽出対象パケットを検索し、当該検索された抽出対象パケットから前記接続先識別子を抽出し、前記接続先識別子の抽出数をカウントする検査手段100と、前記接続先識別子の抽出数に基づいて、前記接続先への前記接続要求パケットの提供を制御する制御手段200と、を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、インターネットなどの任意の識別子を用いて通信するオープンなネットワーク環境上に接続されたサーバなどの計算機の制御に関し、特には、計算機ネットワークにおいて、大量の接続要求により計算機がサービス不能に陥ることを防御する技術に関する。
【背景技術】
【0002】
サーバなどのホスト(計算機)は、クライアントからの大量の接続要求によって、接続数が許容可能な接続数を超えた場合または処理量が許容可能な処理量を超えた場合、サービス不能に陥る場合がある。
【0003】
例えば、SIP(Session Initiation Protocol)サーバは、ある単位時間に大量のINVITEメソッドを要求されると、サービス不能に陥る可能性がある。ある単位時間に大量のINVITEメソッドを要求することは、DoS(Denial of Services)攻撃の一種である。
【0004】
特許文献1には、VoIP(Voice over Internet Protocol)を利用したシステムにおける大量接続要求の対策技術が記載されている。具体的には、特許文献1には、IPアドレスを用いて大量接続要求を制限する技術が記載されている。
【0005】
なお、DoS攻撃は、特定のプロトコルに限定されない。例えば、HTTPのリクエストを大量に発する攻撃もある。この種の攻撃は、非特許文献1において、BruteForceとして分類されており、HTTP floodとして紹介されている。
【特許文献1】特開2004−320636号公報
【非特許文献1】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)
【発明の開示】
【発明が解決しようとする課題】
【0006】
意図的・非意図的に関わらず大量接続によって資源枯渇に陥る可能性があるサーバなどのホストへの接続数を制限することにより、その大量接続からホストを防御するためには、接続の種類毎にそれぞれの対策が必要となる。
【0007】
特許文献1に記載された対策は、IP以外のプロトコルには適用できない。また、SIPのように下位のプロトコルを限定しないプロトコルの場合、コネクションレス型のプロトコルの利用によってIPアドレスの偽装も可能となる。特許文献1に記載された対策は、IPアドレスの偽装には対応できず、接続制限が偽装によってすり抜けられる可能性がある。
【0008】
本発明の目的は、レイヤやプロトコルにとらわれることなく、大量接続から接続先である計算機を防御することが可能な接続制限システムおよび接続制限方法を提供することである。
【課題を解決するための手段】
【0009】
上記目的を達成するため、本発明の接続制限システムは、接続先宛に送信された複数の接続要求パケットを受け付け、前記接続先への前記接続要求パケットの提供を管理する接続制限システムであって、前記複数の接続要求パケットから、接続先識別子を検出するためのキーワードを有する抽出対象パケットを検索し、当該検索された抽出対象パケットから前記接続先識別子を抽出し、前記接続先識別子の抽出数をカウントする検査手段と、前記接続先識別子の抽出数に基づいて、前記接続先への前記接続要求パケットの提供を制御する制御手段と、を含む。
【0010】
本発明の接続制限方法は、接続先宛に送信された複数の接続要求パケットを受け付け、前記接続先への前記接続要求パケットの提供を管理する接続制限システムが行う接続制限方法であって、前記複数の接続要求パケットから、接続先識別子を検出するためのキーワードを有する抽出対象パケットを検索し、当該検索された抽出対象パケットから前記接続先識別子を抽出し、前記接続先識別子の抽出数をカウントする検査ステップと、前記接続先識別子の抽出数に基づいて、前記接続先への前記接続要求パケットの提供を制御する制御ステップと、を含む。
【0011】
上記発明によれば、複数の接続要求パケットから、接続先識別子を検出するためのキーワードを有する抽出対象パケットが検索され、その検索された抽出対象パケットから接続先識別子が抽出され、その接続先識別子の抽出数がカウントされる。
【0012】
このため、接続先識別子の種類に応じてキーワードが適宜設定されれば、IPアドレスに限らない接続先識別子を検出することが可能になる。よって、レイヤやプロトコルにとらわれることなく、接続先を特定することが可能になり、接続先を大量接続要求から防御することが可能になる。
【0013】
なお、前記検査手段は、前記キーワードが設定されるキーワードテーブルと、前記接続先識別子を抽出するための抽出情報が設定される抽出用テーブルと、カウンタテーブルと、前記複数の接続要求パケットから、前記キーワードテーブルに設定されたキーワードを有する抽出対象パケットを検索し、当該検索された抽出対象パケットから、前記抽出用テーブルに設定された抽出情報にしたがって前記接続先識別子を抽出し、前記カウンタテーブルを用いて前記接続先識別子の抽出数をカウントする検査部と、を含むことが望ましい。
【0014】
上記発明によれば、検査部は、接続先識別子を抽出するための抽出情報にしたがって接続先識別子を抽出する。
【0015】
このため、上記効果に加えて、接続先識別子の種類に応じて抽出情報を適宜設定することが可能となり、IPアドレスに限らない接続先識別子を検出することが可能になる。
【0016】
また、前記キーワードテーブルには、前記接続要求パケットにおいて前記キーワードの検索を開始する位置を示す検索オフセットが、前記キーワードに対応づけて設定可能であり、前記検査部は、前記検索オフセットが前記キーワードに対応づけて設定されている場合、前記接続要求パケットにおいて当該検索オフセットに示された位置から前記キーワードの検索を開始することが望ましい。
【0017】
上記発明によれば、上記効果に加えて、抽出対象パケットを効率よく検索することが可能になる。
【0018】
また、前記抽出情報は、前記抽出対象パケットにおいて前記接続先識別子の抽出を開始する位置を示す抽出オフセットと抽出される情報の長さを示す抽出長とを含むオフセット情報と、パターンマッチング用文字列を含むパターン情報と、のいずれかであり、前記検査部は、前記抽出情報として前記オフセット情報が用いられている場合には、前記抽出対象パケットにおいて前記抽出オフセットに示された位置から前記抽出長に示された長さの情報を前記接続先識別子として抽出し、前記抽出情報として前記パターン情報が用いられている場合には、前記抽出対象パケットにおいて前記パターンマッチング用文字列のパターンマッチングを行い当該パターンマッチング用文字列に続く情報を前記接続先識別子として抽出することが望ましい。
【0019】
上記発明によれば、上記効果に加えて、接続先識別子を効率よく抽出することが可能になる。
【0020】
また、前記キーワードテーブルには、前記キーワードが複数設定され、前記キーワードテーブルに設定された前記複数のキーワードから選択された複数のキーワードを特定するための特定情報が設定されるアクションテーブルをさらに含み、前記検査部は、前記複数の接続要求パケットから、前記特定情報にて特定される複数のキーワードを有するパケットを、前記抽出対象パケットとして検索することが望ましい。
【0021】
上記発明によれば、上記効果に加えて、抽出対象パケットを効率よく検索することが可能になる。
【0022】
また、前記接続先識別子の加工手法が設定される加工テーブルと、前記接続先識別子が設定される展開キーワードテーブルと、をさらに含み、前記検査部は、前記抽出された接続先識別子を前記加工テーブルに設定された加工手法にしたがって加工して前記展開キーワードテーブルに設定することが望ましい。
【0023】
上記発明によれば、例えば、接続先識別子を利用者が認識しやすい形式に変換することが可能になる。
【発明の効果】
【0024】
本発明によれば、レイヤやプロトコルにとらわれることなく、大量接続から接続先を防御することが可能になる。
【発明を実施するための最良の形態】
【0025】
以下、本発明の実施形態を図面を参照して説明する。
【0026】
図1Aは、本発明の一実施形態の接続制限システムを示したブロック図である。
【0027】
図1Aにおいて、接続制限システムは、検査装置100と、制御システム200とを含む。
【0028】
検査装置100は、検査手段の一例であり、検査機器1と、DB(データベース)1aとを含む。制御システム200は、制御手段の一例であり、判断機器2と、DB2aと、制御機器3と、DB3aと、を含む。
【0029】
検査機器1は、検査部の一例であり、例えば、計算機である接続元10から、ルータ等のネットワーク機器11、インターネット等のネットワーク12、および、ルータ等のネットワーク機器5を介して入力されるパケット、具体的には、接続先(制御対象)であるホスト(計算機)4宛に送信された複数の接続要求パケット(以下、単に「パケット」と称する。)を取得する。なお、接続元10や接続先であるホスト4は、1台に限らず複数台あってもよい。
【0030】
検査機器1は、取得されたパケット内部から必要となる情報を取得し、その取得結果を判断機器2に通知する。
【0031】
判断機器2は、検査機器1より通知された情報を元に、大量接続がされている宛先と、その接続元と、パケットの制御方法と、に関する情報を管理する。
【0032】
判断機器2は、ホスト4の資源枯渇を防御する場合は、制御方法として、ホスト4宛のパケットの廃棄またはレートリミットを選択する。
【0033】
制御機器3は、防御対象となるホスト4宛てのパケットを、判断機器2において決定された制御方法に基づいて制御する。
【0034】
制御機器3は、防御対象となる機器(本実施形態ではホスト4)の前段に具備される。
【0035】
検査機器1は、制御機器3行きのパケットを検査することが目的であるため、図1Aに示したように、インラインで制御機器3の前段に置かれてもよい。
【0036】
また、図1Bに示したように、制御機器3の手前のネットワーク機器5が、ポートミラーリング等の方法で、制御機器3行きパケットをコピーし、そのコピーを検査機器1に送信し、検査機器1が、そのコピーを検査してもよい。なお、図1Bにおいて、図1Aに示したものと同一のものには同一符号を付してある。
【0037】
判断機器2は、検査機器1と制御機器3に接続され、それらの中間にあればよく、インラインか否かは問わない。
【0038】
検査機器1と判断機器2と制御機器3は、それぞれ、情報を保持するためのDB1a、2aおよび3aを保持する。また、DB1a、2aおよび3aは、検査機器1と判断機器2と制御機器3がアクセス可能ならば一体となっていてもよい。
【0039】
検査機器1と判断機器2と制御機器3は、一体の機器として構成されてもよい。なお、検査機器1と制御機器3が一体の機器であってもよい。また、検査機器1と判断機器2が一体の機器であってもよい。また、判断機器2と制御機器3が一体の機器であってもよい。また、1つの判断機器2に、複数の検査機器1と制御機器3が接続されてもよい。また、1つの判断機器2に、検査機器1と制御機器3が一体となった機器が複数接続されてもよい。
【0040】
なお、検査装置100は、接続先宛に送信された複数のパケットから、接続先識別子を検出するためのキーワードを有する抽出対象パケットを検索する。検査装置100は、その検索された抽出対象パケットから接続先識別子を抽出し、接続先識別子の抽出数をカウントする。
【0041】
例えば、検査装置100は、任意の文字列検索方法またはバイト列検索方法を用いて、接続先の識別子と接続元の識別子を記録する。なお、接続先の識別子と、接続元の識別子は、IPアドレスに限らない任意の文字列を含むバイト列とする。
【0042】
制御システム200は、検査装置100がカウントした接続先識別子の抽出数に基づいて、接続先へのパケットの提供を制御する。
【0043】
例えば、制御システム200は、接続先に対するパケットの数が単位時間当たりの閾値を超えた場合に、接続先の接続数を制限することで、サーバなどのホスト(接続先)4の資源枯渇を回避する。
(実施例)
検査機器1の処理は、2段階に分かれる。
【0044】
具体的には、検査機器1の処理は、初期設定テーブル群を用いたパケット検索と、展開キーワードテーブル群を用いた検索とに分かれる。
【0045】
初期設定テーブル群に設定される情報は、利用者から与えられる。展開キーワードテーブル群に設定される情報は、初期設定テーブル群から自動生成される。
【0046】
図2は、初期設定テーブル群1Aの一例を示した説明図である。なお、初期設定テーブル群1Aは、DB1aに設けられている。
【0047】
図2において、初期設定テーブル群1Aは、キーワードテーブル1A1と、抽出テーブル1A2と、オフセット抽出テーブル1A3と、パターン抽出テーブル1A4と、加工テーブル1A5と、アクションテーブル1A6と、閾値テーブル1A7と、を含む。
【0048】
なお、抽出テーブル1A2と、オフセット抽出テーブル1A3と、パターン抽出テーブル1A4とで、抽出用テーブルが構成される。
【0049】
キーワードテーブル1A1は、検査機器1に入力されるパケットの中から抽出対象パケットを検索するために利用される。
【0050】
キーワードテーブル1A1では、キーワードID1A1aが、番号を保持する。キーワード1A1bが、任意のバイト列(キーワード)、すなわち、文字列かデータ列を保持する。キーワードタイプ1A1cが、そのキーワードのタイプを保持する。また、検索開始位置のオフセットを明示的に指定する場合は、その値がオフセット1A1dに保持される。
【0051】
本例では、キーワードID「1」は、30バイト目から「0x0a01010a」のデータ列を検索することを意味する。
【0052】
なお、本例のオフセットの30バイト目は、MPLS(Multi-Protocol Label Switching)やVLAN(Virtual LAN)などの第2層を拡張するヘッダがないことを前提とし、Ethernet HeaderとIP Headerが隣接している場合に、Ethernet Headerを先頭とした場合に、IP Header内の宛先IPアドレスフィールドの開始位置となる。
【0053】
「0x0a01010a」は、10進数表記での「10.1.1.10」と同意である。
【0054】
キーワードID「2」におけるオフセットの36バイト目は、上記前提に加えて、IP Headerに一切の拡張ヘッダがない場合、トランスポートヘッダ内の宛先ポートとなる。
【0055】
「0x13C4」は、10進数表記での「5060」を示している。
【0056】
同様に、キーワードID「3」、「4」、「5」、「6」の、「0x0a01010b」、「0x50」、「0x0a010178」、「B80」のそれぞれは、10進数表記での、「10.1.1.11」、「80」、「10.1.1.120」、「2944」を意味している。
【0057】
抽出テーブル1A2は、キーワードテーブル1A1に基づいて検索されたパケット(抽出対象パケット)から接続先識別子を抽出するために用いられる。抽出方法としては、オフセットを用いた抽出方法と、パターンマッチングを用いた抽出方法が存在する。
【0058】
抽出テーブル1A2では、抽出タイプ1A2bには、「オフセット方式」か、「パターンマッチング方式」が指定される。
【0059】
抽出タイプ1A2bに「オフセット方式」(オフセット)が指定された場合、その抽出タイプ1A2bに対応する関連ID1A2cには、オフセット抽出テーブル1A3内のオフセット抽出ID1A3aのいずれかの番号が指定される。
【0060】
また、抽出タイプ1A2bに「パターンマッチング方式」(パターン)が指定された場合、その抽出タイプ1A2bに対応する関連ID1A2cには、パターンマッチング抽出テーブル1A4内のパターン抽出ID1A4bのいずれかの番号が指定される。
【0061】
したがって、抽出タイプ1A2bは、次に参照するデータベースのテーブル名を指定していることとなる。
【0062】
本例では、抽出テーブル1A2内の抽出ID「1」は、オフセット抽出テーブル1A3内のオフセット抽出ID「1」と関連する。また、抽出テーブル1A2内の抽出ID「3」は、パターン抽出テーブル1A4内のパターン抽出ID「1」と関連する。
【0063】
オフセット抽出テーブル1A3では、抽出オフセット1A3bに、抽出するバイト列の開始位置を示すオフセットが指定され、抽出長1A3cに、そのバイト列の長さが指定される。なお、抽出オフセット1A3bと抽出長1A3cとで、オフセット情報を構成する。
【0064】
オフセット抽出テーブル1A3内のオフセット抽出ID「1」は、26バイト目から4バイト分情報を抽出することを意味している。上記前提においては、オフセット抽出ID「1」は、ソースIPアドレス(接続元識別子)の抽出を意味している。
【0065】
パターン抽出テーブル1A4では、抽出パターン1A4bに、抽出する文字列(パターンマッチング用文字列)のパターンマッチングの式が保持される。なお、抽出パターン1A4bは、パターン情報を構成する。
【0066】
なお、このパターンマッチングに用いる方法は、どういった手段でもよく、本例ではperl(Practical Extraction and Report Language)言語の正規表現に準じた表記を用いている。
【0067】
本例において、パターン抽出テーブル1A4内のパターン抽出ID「1」は、“INVITE sip”の文字列に続く文字列を抽出することを述べている。
【0068】
加工テーブル1A5は、後述するようにアクションテーブル1A6に基づいて取得された値(例えば、接続元識別子および接続先識別子)を、なんらかの方法(関数)に基づいて加工する場合の関数名(加工手法)を保持する。
【0069】
閾値テーブル1A7は、アクションテーブル1A6にて指定され、展開キーワードテーブル1B1に引き継がれる閾値の情報を保持し、ソース(接続元)だけのデータ量の閾値、宛先(接続先)だけのデータ量の閾値、ソースと宛先間のデータ量の閾値の3種類の情報を保持する。
【0070】
アクションテーブル1A6では、アクション1A6bに、キーワードテーブル1A1のキーワードID1A1aの組合せ条件式の情報が保持される。
【0071】
ソース抽出ID1A6cには、ソースの情報(接続元識別子)を抽出するために使用する、抽出テーブル1A2内の抽出ID1A2aの番号が保持される。
【0072】
ソース加工ID1A6dには、抽出されたソース情報を加工するために使用する、加工テーブル1A5内の加工ID1A5aの番号が保持される。
【0073】
宛先抽出ID1A6eには、宛先の情報(接続先識別子)を抽出するために使用する、抽出テーブル1A2内の抽出ID1A2aの番号が保持される。
【0074】
宛先加工ID1A6fには、抽出された宛先情報を加工するために使用する、加工テーブル1A5内の加工ID1A5aの番号が保持される。
【0075】
閾値ID1A6gには、閾値テーブル1A7内の閾値ID1A7aの番号が保持される。
【0076】
図3は、展開キーワードテーブル群1Bの一例を示した説明図である。なお、展開キーワードテーブル群1Bは、DB1a、DB1b、DB1cの何れかまたは全てに設けられており、適切な同期などを用いて検査機器1、判断機器2、制御機器3で同じ情報が参照できる状態になっている。
【0077】
図3において、展開キーワードテーブル群1Bは、展開キーワードテーブル1B1および展開キーワードパケットカウントテーブル1B2を含む。なお、図3では、展開キーワードテーブル1B1と展開キーワードパケットカウントテーブル1B2が分かれているが、これらは、対応する展開IDに基づいて結合されてもよい。
【0078】
展開キーワードテーブル1B1には、初期設定テーブル群1Aに基づいて検査機器1によって抽出されたパケットの情報が登録される。
【0079】
展開キーワードテーブル1B1では、ソース1B1bには、パケットのソースを意味する接続元識別子(例えば、データ列)が保持される。
【0080】
ソースタイプ1B1cには、接続元識別子のタイプを示す、文字列(ASCII)またはデータ列(BINARY)が保持される。
【0081】
ソースオフセット1B1dには、必要な場合は、オフセットが指定される。
【0082】
同様に、宛先1B1eには、パケットの宛先を意味する接続先識別子(例えば、データ列)が保持される。
【0083】
宛先タイプ1B1fには、接続先識別子のタイプを示す、文字列(ASCII)またはデータ列(BINARY)が保持される。
【0084】
宛先オフセット1B1gには、必要な場合は、オフセットが指定される。
【0085】
展開キーワードパケットカウントテーブル1B2内のパケットカウンタ1B2aでは、展開IDごとに、識別子の抽出数がカウントされる。
【0086】
展開キーワードテーブル1B1内の閾値1B1hには、展開ID(ソースのみ、宛先のみ、ソース宛先間)に対応する閾値が入る。
【0087】
次に、動作を説明する。
【0088】
検査機器1は、アクションテーブル1A6内のアクション1A6bの条件式に基づいて、パケットを検索し、その検索されたパケットから情報を抽出して、その抽出結果に基づき展開キーワードテーブル1B1および展開キーワードパケットカウントテーブル1B2に情報を登録する。
【0089】
具体的には、まず、検査機器1は、アクション1A6bの条件式内のキーワードID1A1aにて特定される検索を順々に行う。
【0090】
検査機器1は、任意の文字列(ASCII)またはデータ列(BINARY)の検索を使用して、入力されたパケットから、予め初期設定テーブル群1Aのキーワードテーブル1A1に保持されているキーワードを検索する。
【0091】
例として、アクションID「1」の場合、検査機器1は、キーワードID「1」、「2」および「7」に設定されている検索条件にしたがって、入力される複数のパケットから、30バイト目が「0x0a01010a」(宛先IPアドレスが10.1.1.10)で、かつ、36バイト目が「0x13c4」(宛先ポート番号が5060)で、かつ、「INVITE」の文字列が含まれているパケット(抽出対象パケット)を検索する。
【0092】
続いて、検査機器1は、アクションIDごとに、検索されたパケットから、アクションテーブル1A6内のソース抽出ID1A6cに保持された抽出IDに基づいてデータ(接続元識別子)を抽出する。
【0093】
例として、アクションID「1」の場合、検査機器1は、まず、ソース抽出ID1A6cに保持された抽出ID「1」を読み取る。続いて、検査機器1は、抽出テーブル1A2を参照して、抽出ID「1」に関連づけられているオフセット抽出テーブル1A3のオフセット抽出ID「1」を選定する。続いて、検査機器1は、検索されたパケットから、オフセット抽出ID「1」の抽出条件(26バイト目から4バイト分データを抽出するという条件)にしたがって、データ(接続元識別子)を抽出する。
【0094】
続いて、検査機器1は、アクションテーブル1A6のソース抽出ID1A6cを用いて抽出された結果を、展開キーワードテーブル1B1のソース1B1bに設定する。
【0095】
ただし、ソース抽出ID1A6cに対応するソース加工ID1A6dに、加工IDの番号が設定されている場合は、検査機器1は、その加工ID1A5aに基づいて、データ(接続元識別子)を加工する。
【0096】
加工ID「1」の「getnameinfo」は、DNS(Domain Name System)を用いた名前変換(加工手法)を意味している。
【0097】
IPアドレスを指定して行う通信はIPアドレスを覚える必要性など不便な点があるため、DNSを介したホスト名を用いて通信が行われるのが一般的である。
【0098】
したがって、同一のホストの指定方法にIPアドレスとホスト名の2種類が存在する。展開キーワードテーブル1B1に登録する際にIPアドレスのみを登録すると、ホスト名を用いられたパケットをチェックできないため、名前変換を行う。加工前状態と加工結果は共に展開キーワードテーブルに登録される。また図に示していないが、名前からアドレスへの変換(加工)を行えば、異なるアドレスファミリーの情報を取得もできる。
【0099】
展開キーワードテーブル1B1のソースオフセット1B1dには、抽出方法が「オフセット」だった場合に、オフセット抽出テーブル1A3の抽出オフセット1A3bの値が引き継がれる。
【0100】
また、検査機器1は、抽出方法が「オフセット」だった場合に、ソースタイプ1B1cに「BINARY」を設定し、一方、抽出方法が「パターンマッチ」だった場合に、ソースタイプ1B1cに「ASCII」を設定する。
【0101】
検査機器1は、同様の方法で、展開キーワードテーブル1B1内の、宛先1B1e、宛先タイプ1B1f、および、宛先オフセット1B1gに情報を設定する。
【0102】
以上のようにして、検査機器1は、生成された情報を、展開キーワードテーブル1B1に登録する。
【0103】
同時に、検査機器1は、展開キーワードパケットカウントテーブル1B2内の該当展開IDのパケットカウンタ1B2aに1を記録する。既に、該当展開IDのパケットカウンタ1B2aに数値が登録済みの場合は、検査機器1は、そのパケットカウンタ1B2aを1増加(インクリメント)する。
【0104】
検査機器1は、展開キーワードテーブル1B1へ新規にデータを登録する場合、1つの検索結果から、ソースだけ、宛先だけ、ソース宛先両方の計3種類の情報を登録する。
【0105】
その際に、検査機器1は、アクションテーブル1A6の閾値ID1A6gで設定された情報(閾値IDの番号)に基づいて、閾値テーブル1A7の該当IDのソース閾値1A7b、宛先閾値1A7c、ソース宛先間閾値1A7dのそれぞれを、展開キーワードテーブル1B1内の、ソースだけの情報、宛先だけの情報、および、ソース宛先両方の情報に対応する閾値1B1hに設定する。
【0106】
展開キーワードテーブル1B1に保持される情報は、上記が最低限の情報となり、さらに、検査機器1が、取得した情報を展開キーワードテーブル1B1に追記する場合に、例えばバイト量のカウンタ等を追記してもよい。
【0107】
展開キーワードテーブル1B1が容量等の制限で追記不可となる場合は、検査機器1は、LRU(LeastRecentlyUsed)等を用いて、最も参照されていないキーワードから削除していけばよい。
【0108】
検査機器1は、これら、展開キーワードテーブル1B1および展開キーワードパケットカウントテーブル1B2の情報を定期的に、判断機器2に通知する。通知の時間間隔は、用途に合わせて外部より設定される。例えば、リアルタイム性が求められれば、1秒といった細かい間隔になる。
【0109】
検査機器1と判断機器2が一体の場合は、内部のメモリコピー、プロセス間メッセージなどを用いて、通知が行われる。
【0110】
検査機器1と判断機器2が分離している場合は、何らかの通信方法で、それらの情報を通知する。
【0111】
例えば、検査機器1が、これらデータベースをプライベートMIB(Management Information Base)で保持しておけば、判断機器2は、SNMP(Simple Network Management Protocol)を介して、それらの情報を取得すればよい。もしくは、ベンダー独自の情報が定義可能なIPFIXなどを用いて、検査機器1が、判断機器2にデータを送信してもよい。また、DB間のレプリケーション(複製の作成技術)を用いてもよい。
【0112】
一体の場合でも分離している場合でも、検査機器1と判断機器2がデータベースを共有している場合は、データベースの相互参照で情報の通信を実現できる。
【0113】
判断機器2は、送信されたカウンタ情報(パケットカウンタ1B2aの値)を元に、閾値判定を行う。
【0114】
判断機器2は、単位時間当たりに閾値を超過した、ソースのみ、もしくは、ソースと宛先の組み合わせの情報(カウンタ情報)を含むパケットのマークを“低”とする。また、判断機器2は、一旦閾値を超過した後に閾値を下回ったカウンタ情報を有するパケットのマークを“普通”に戻す。
【0115】
判断機器2は、この結果を、制御機器3に通知する。
【0116】
この通知の方法は、検査機器1と判断機器2の場合と同じである。
【0117】
なお、判断機器2は、マークが“低”の情報だけを制御機器3に送信すればよい。
【0118】
マークが“低”の情報だけを送信する場合は、判断機器2は、過去の情報でマークが“低”となっていたが、新しく通知された情報でそれが報告されていない場合は、マークを“普通”としてみなす。
【0119】
また、判断機器2は、宛先のみの情報において、カウンタ情報が閾値を超えた場合は、マークを“保護”にする。
【0120】
単位時間当たりの判断のために、展開キーワードパケットカウンタテーブル1B2に開始時刻が記録されてもよい。
【0121】
制御機器3は、開始時刻を、単位時間毎に更新し、該当パケットが観測された時刻から開始時刻を減算して得られた時間を利用して、単位時間内か否かを判断する。ソースオフセット1B1dには、必要な場合は、接続元識別子を検索するために用いる開始オフセットが指定される。
【0122】
また上記のLRUなどを実行するために、展開キーワードパケットカウントテーブル1B2に、最終アクセス時刻が記録されてもよい。
【0123】
制御機器3は、この情報に基づいて、再度パケットの情報をチェックする。
【0124】
制御機器3は、展開キーワードテーブル1B1に示されたパケットに対して制御を行う。宛先オフセット1B1gには、必要な場合は、接続先識別子を検索するために用いる開始オフセットが指定される。
【0125】
制御機器3は、マークが“低”とされた以外のパケットについては、マークが“低”とされたパケットよりも高いマークを設定し、相対的にマークが“低”とされたパケットの優先度が低くなる。
【0126】
この制御は、もしも、後段にDiffservなどに対応したネットワーク機器があれば、DSCP(Diff-serv Code Point)などの値を、リマークするだけでもよいし、制御機器3自身が、CBWFQ(Class Based Weighted Fare Queuing)等を用いたキューイング処理をすればよい。
【0127】
また、宛先が“保護”となっている場合は、制御機器3は、トークンバケットなどを用いて、単位時間当たりに転送されるパケット数を制限(例えば、パケットを廃棄して制限)すればよい。
【0128】
なお、本例は一例であり、初期設定テーブル群1Aのキーワードテーブル1A1、抽出テーブル1A2、オフセット抽出テーブル1A3、パターン抽出テーブル1A4、閾値テーブル1A7、加工テーブル1A5は、正規化せずに単一または例示したよりも少ない数のテーブルとしてもよい。
【0129】
同様に、展開キーワードテーブル1B1と展開キーワードパケットカウントテーブル1B2は、正規化せずに単一のテーブルであってもよい。
【0130】
本実施形態によれば、以下の効果を奏する。
【0131】
レイヤやプロトコルを限定することなく、大量接続数の接続を限定することができる。
【0132】
また、その制御の判断となる情報もIPアドレスに限定されないため、IPアドレスによる偽装によるすり抜けも回避できる上に、VLAN情報などIPより下位の情報やSIP URI等の上位の情報も利用できる。
【0133】
また、展開キーワードテーブル登録時に加工を行うプロセスを挿入することで、例えば名前変換を行えば、同一ホストに対する複数の指定を統一することができる。
【0134】
本実施形態によれば、検査装置100は、接続先宛に送信された複数のパケットから、接続先識別子を検出するためのキーワードを有する抽出対象パケットを検索し、その検索された抽出対象パケットから接続先識別子を抽出し、接続先識別子の抽出数をカウントする。
【0135】
このため、接続先識別子の種類に応じてキーワードが適宜設定されれば、IPアドレスに限らない接続先識別子を検出することが可能になる。よって、レイヤやプロトコルにとらわれることなく、接続先を特定することが可能になり、接続先を大量接続要求から防御することが可能になる。
【0136】
また、検査機器1は、抽出テーブル1A2とオフセット抽出テーブル1A3とパターン抽出テーブル1A4に設定された抽出情報にしたがって接続先識別子を抽出し、展開キーワードテーブル1B1と展開キーワードパケットカウントテーブル1B2からなるカウンタテーブルを用いて、接続先識別子の抽出数をカウントする。
【0137】
この場合、接続先識別子の種類に応じて抽出情報を適宜設定することが可能となり、IPアドレスに限らない接続先識別子を検出することが可能になる。
【0138】
また、検査機器1は、検索オフセットがキーワードに対応づけて設定されている場合、パケットにおいて検索オフセットに示された位置からキーワードの検索を開始する。
【0139】
この場合、無駄な検索を不要にでき、抽出対象パケットを効率よく検索することが可能になる。
【0140】
また、検査機器1は、抽出情報としてオフセット情報が用いられている場合には、抽出対象パケットにおいて抽出オフセットに示された位置から抽出長に示された長さの情報を接続先識別子として抽出する。また、検査機器1は、抽出情報としてパターン情報が用いられている場合には、抽出対象パケットにおいて文字列のパターンマッチングを行い、その文字列に続く情報を接続先識別子として抽出する。
【0141】
この場合、抽出予定の接続先識別子の種類に応じて抽出手法を変更することが可能になり、接続先識別子を効率よく抽出することが可能になる。
【0142】
また、検査機器1は、複数のパケットから、アクション(特定情報)1A6aにて特定される複数のキーワードを有するパケットを、抽出対象パケットとして検索する。
【0143】
この場合、抽出対象パケットの検索条件を詳細にできるので、抽出対象パケットを効率よく検索することが可能になる。
【0144】
また、検査機器1は、抽出された接続先識別子を、加工テーブル1A5に設定された加工関数(加工手法)1A5bにしたがって加工して、展開キーワードテーブル1B1に登録する。
【0145】
この場合、例えば、接続先識別子を利用者が認識しやすい形式に変換することが可能になる。
【0146】
以上説明した実施形態および実施例において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
【図面の簡単な説明】
【0147】
【図1A】本発明の一実施形態の接続制限システムを示したブロック図である。
【図1B】本発明の他の実施形態の接続制限システムを示したブロック図である。
【図2】初期設定テーブル群1Aの一例を示した説明図である。
【図3】展開キーワードテーブル1B1および展開キーワードパケットカウントテーブル1B2の一例を示した説明図である。
【符号の説明】
【0148】
1 検査機器
2 判断機器
3 制御機器
1a、2a、3a DB
4 ホスト
5 ネットワーク機器
10 接続元
11 ネットワーク機器
12 ネットワーク
100 検査装置
200 制御システム
1A 初期設定テーブル群
1A1 キーワードテーブル
1A2 抽出テーブル
1A3 オフセット抽出テーブル
1A4 パターン抽出テーブル
1A5 加工テーブル
1A6 アクションテーブル
1A7 閾値テーブル
1B1 展開キーワードテーブル
1B2 展開キーワードパケットカウントテーブル

【特許請求の範囲】
【請求項1】
接続先宛に送信された複数の接続要求パケットを受け付け、前記接続先への前記接続要求パケットの提供を管理する接続制限システムであって、
前記複数の接続要求パケットから、接続先識別子を検出するためのキーワードを有する抽出対象パケットを検索し、当該検索された抽出対象パケットから前記接続先識別子を抽出し、前記接続先識別子の抽出数をカウントする検査手段と、
前記接続先識別子の抽出数に基づいて、前記接続先への前記接続要求パケットの提供を制御する制御手段と、を含む接続制限システム。
【請求項2】
前記検査手段は、
前記キーワードが設定されるキーワードテーブルと、
前記接続先識別子を抽出するための抽出情報が設定される抽出用テーブルと、
カウンタテーブルと、
前記複数の接続要求パケットから、前記キーワードテーブルに設定されたキーワードを有する抽出対象パケットを検索し、当該検索された抽出対象パケットから、前記抽出用テーブルに設定された抽出情報にしたがって前記接続先識別子を抽出し、前記カウンタテーブルを用いて前記接続先識別子の抽出数をカウントする検査部と、を含む、請求項1に記載の接続制限システム。
【請求項3】
前記キーワードテーブルには、前記接続要求パケットにおいて前記キーワードの検索を開始する位置を示す検索オフセットが、前記キーワードに対応づけて設定可能であり、
前記検査部は、前記検索オフセットが前記キーワードに対応づけて設定されている場合、前記接続要求パケットにおいて当該検索オフセットに示された位置から前記キーワードの検索を開始する、請求項2に記載の接続制限システム。
【請求項4】
前記抽出情報は、前記抽出対象パケットにおいて前記接続先識別子の抽出を開始する位置を示す抽出オフセットと抽出される情報の長さを示す抽出長とを含むオフセット情報と、パターンマッチング用文字列を含むパターン情報と、のいずれかであり、
前記検査部は、前記抽出情報として前記オフセット情報が用いられている場合には、前記抽出対象パケットにおいて前記抽出オフセットに示された位置から前記抽出長に示された長さの情報を前記接続先識別子として抽出し、前記抽出情報として前記パターン情報が用いられている場合には、前記抽出対象パケットにおいて前記パターンマッチング用文字列のパターンマッチングを行い当該パターンマッチング用文字列に続く情報を前記接続先識別子として抽出する、請求項2または3に記載の接続制限システム。
【請求項5】
前記キーワードテーブルには、前記キーワードが複数設定され、
前記キーワードテーブルに設定された前記複数のキーワードから選択された複数のキーワードを特定するための特定情報が設定されるアクションテーブルをさらに含み、
前記検査部は、前記複数の接続要求パケットから、前記特定情報にて特定される複数のキーワードを有するパケットを、前記抽出対象パケットとして検索する、請求項2から4のいずれか1項に記載の接続制限システム。
【請求項6】
前記接続先識別子の加工手法が設定される加工テーブルと、
前記接続先識別子が設定される展開キーワードテーブルと、をさらに含み、
前記検査部は、前記抽出された接続先識別子を前記加工テーブルに設定された加工手法にしたがって加工して前記展開キーワードテーブルに設定する、請求項2から5のいずれか1項に記載の接続制限システム。
【請求項7】
接続先宛に送信された複数の接続要求パケットを受け付け、前記接続先への前記接続要求パケットの提供を管理する接続制限システムが行う接続制限方法であって、
前記複数の接続要求パケットから、接続先識別子を検出するためのキーワードを有する抽出対象パケットを検索し、当該検索された抽出対象パケットから前記接続先識別子を抽出し、前記接続先識別子の抽出数をカウントする検査ステップと、
前記接続先識別子の抽出数に基づいて、前記接続先への前記接続要求パケットの提供を制御する制御ステップと、を含む接続制限方法。

【図1A】
image rotate

【図1B】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2009−44226(P2009−44226A)
【公開日】平成21年2月26日(2009.2.26)
【国際特許分類】
【出願番号】特願2007−204185(P2007−204185)
【出願日】平成19年8月6日(2007.8.6)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ETHERNET
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】