(57)【特許請求の範囲】
【請求項１】
１つまたは複数の正規表現を含む正規表現セットに基づいてデータを整合する正規表現に基づくデータ整合方法であって、
プロセッサによって、前記正規表現セット内で、相互作用の間に前記正規表現に基づいて生成される状態の数を急激に増大させる１つまたは複数の複合正規表現を探し出すステップと、
前記プロセッサによって、前記１つまたは複数の探し出された複合正規表現のそれぞれに関して、対応する簡素化表現を構築するステップと、
プロセッサによって、前記構築された簡素化表現と、前記１つまたは複数の探し出された複合正規表現を除いた前記正規表現セット内の残りの正規表現とに基づいて、簡素化状態機械をコンパイルするステップと、
前記プロセッサによって、１つまたは複数の副状態機械をコンパイルするステップであって、前記１つまたは複数の副状態機械のそれぞれを、前記１つまたは複数の複合正規表現のうちの対応する１つに基づいてコンパイルするステップと、
前記プロセッサによって、前記簡素化状態機械と前記１つまたは複数の副状態機械とに基づいてデータを整合するステップとを含むデータ整合方法。
【請求項２】
前記１つまたは複数の複合正規表現が、以下のタイプの正規表現、すなわち、
サブパターン１．＊サブパターン２などの形の正規表現、
サブパターン１．＋サブパターン２などの形の正規表現、
サブパターン｛ｍ，ｎ｝などの形の正規表現、および
サブパターン｛ｍ｝などの形の正規表現
のうちの１つまたは複数を含む、
請求項１に記載のデータ整合方法。
【請求項３】
前記プロセッサによって、前記１つまたは複数の探し出された複合正規表現のそれぞれに関して、対応する簡素化表現を構築するステップが、
前記プロセッサによって、前記複合正規表現を、前記複合正規表現内の正規構文を指す１つまたは複数の正規特徴によって分離された、前記複合正規表現内に存在し前記正規構文によって分離された固定文字列を指す１つまたは複数の文字列特徴に分割するステップと、
前記プロセッサによって、前記簡素化表現を構築するために、前記複合正規表現内の一続きの前記１つまたは複数の文字列特徴に従って、前記１つまたは複数の文字列特徴を関連付けるステップと、を含む請求項１または２に記載のデータ整合方法。
【請求項４】
前記プロセッサによって、前記簡素化表現を構築するために、前記１つまたは複数の文字列特徴を関連付けるステップが、
前記プロセッサによって、前記簡素化表現を構築するために、前記複合正規表現内のすべての前記文字列特徴を関連付けるステップをさらに含む、請求項３に記載のデータ整合方法。
【請求項５】
前記プロセッサによって、前記簡素化状態機械と前記１つまたは複数の副状態機械とに基づいてデータを整合するステップが、
前記プロセッサによって、前記簡素化状態機械を使用し、第１のデータ整合を実行するステップと、
前記プロセッサによって、前記簡素化表現に対応する前記複合正規表現に対応する前記副状態機械を使用し、前記第１のデータ整合の結果が、データが前記簡素化表現に整合することを示す場合、第２のデータ整合を実行するステップと、
前記第２のデータ整合の結果が、前記データが前記複合表現に整合することを示す場合、前記データが前記複合正規表現に整合するステップと、を含む請求項１から４のいずれか一項に記載のデータ整合方法。
【請求項６】
１つまたは複数の正規表現を含む正規表現セットに基づいてデータを整合するデータ整合デバイスであって、
前記正規表現セット内で、相互作用の間に前記正規表現に基づいて生成される状態の数を急激に増大させる１つまたは複数の複合正規表現を探し出すように構成された正規表現セットプリプロセッサと、
前記正規表現セットプリプロセッサによって探し出された前記１つまたは複数の複合正規表現のそれぞれに関して、対応する簡素化表現を構築するように構成された複合正規表現簡素化装置と、
前記複合正規表現簡素化装置からの前記簡素化表現と、前記正規表現セットプリプロセッサからの前記正規表現セット内の残りの正規表現とに基づいて、簡素化状態機械をコンパイルするように構成された簡素化表現コンパイラと、
前記正規表現セットプリプロセッサによって探し出された前記１つまたは複数の複合正規表現のそれぞれに関して、対応する副状態機械をコンパイルするように構成された副状態機械コンパイラと、
前記簡素化表現コンパイラからの前記簡素化状態機械と、前記副状態機械コンパイラからの前記副状態機械とに基づいてデータを整合するように構成されたデータ整合器とを備えるデータ整合デバイス。
【請求項７】
前記１つまたは複数の複合正規表現が、以下のタイプの正規表現、すなわち、
サブパターン１．＊サブパターン２などの形の正規表現、
サブパターン１．＋サブパターン２などの形の正規表現、
サブパターン｛ｍ，ｎ｝などの形の正規表現、および
サブパターン｛ｍ｝などの形の正規表現
のうちの１つまたは複数を含む、請求項６に記載のデータ整合デバイス。
【請求項８】
前記複合正規表現簡素化装置が、
前記複合正規表現を、前記複合正規表現内の正規構文を指す１つまたは複数の正規特徴によって分離された、前記複合正規表現内に存在し前記正規構文によって分離された固定文字列を指す１つまたは複数の文字列特徴に分割するように構成された分割装置分割装置と、
前記簡素化表現を構築するために、前記複合正規表現内の一続きの前記１つまたは複数の文字列特徴に従って、前記１つまたは複数の文字列特徴を関連付けるように構成された再構築装置と、を備える請求項６または７に記載のデータ整合デバイス。
【請求項９】
前記再構築装置が、前記簡素化表現を構築するように、前記複合正規表現内のすべての前記文字列特徴を関連付けるように構成された、請求項８に記載のデータ整合デバイス。
【請求項１０】
前記データ整合器が、
第１のデータ整合を実行するために、前記簡素化状態機械を使用するように構成された第１の整合装置と、
前記第１の整合装置によって整合することが示された前記簡素化表現に関して、第２のデータ整合を実行するために、前記簡素化表現に対応する前記複合正規表現に対応する前記副状態機械を使用するように構成された第２の整合装置と、
最終データ整合結果を出力するために、前記第１の整合装置のデータ整合結果と前記第２の整合装置のデータ整合結果とを組み合わせるように構成された整合結果組合せ装置とを備えた、請求項６から９のいずれか一項に記載のデータ整合のためのデバイス。
【請求項１１】
ネットワーク侵入検知方法であって、
プロセッサによって、ネットワークデータを取得するステップと、
前記プロセッサによって、ネットワーク侵入モードに対応する正規表現セットに基づいて、前記ネットワークデータに関するデータ整合を実行するために、請求項１から５のいずれか一項に記載のデータ整合方法を使用するステップと、
前記プロセッサによって、データ整合結果に基づいて、前記ネットワークデータがネットワーク侵入データであるかどうかを判定するステップと、を含むネットワーク侵入検知方法。
【請求項１２】
前記受信されたネットワークデータがネットワーク侵入データであるかどうかを判定する目的で、受信されたネットワークデータに関してデータ整合を実行するために、ネットワーク侵入モードに対応する正規表現セットを使用するように構成された、請求項６から１０のいずれか一項に記載のデータ整合デバイス
を備える、ネットワーク侵入検知デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークセキュリティの分野に関し、より詳細には、ネットワーク侵入検知デバイスおよび方法、ならびに１つまたは複数の正規表現を含む正規表現セットに基づいてデータを整合するための、導入された正規表現に基づくデータ整合デバイスおよび方法に関する。
【背景技術】
【０００２】
ネットワーク侵入検知の分野では、ネットワーク侵入が発生するかどうか判定するために、ネットワークデータが悪意のあるデータを特定のフォーマットで含むかどうか検知するのに正規表現を使用する場合が多い。正規表現は、柔軟性および良好な表現機能の特徴を有するため、ネットワーク侵入検知の分野で広く使用されている。
【０００３】
データを整合するための正規表現を使用するために、正規表現エンジン（ｒｅｇｅｘ  ｅｎｇｉｎｅ）は、一般に、正規表現に基づいて構築される必要がある。現在、２つのタイプの正規表現エンジン、すなわち、非決定性有限オートマトン（ＮＦＡ）正規表現エンジンと、決定性有限オートマトン（ＤＦＡ）正規表現エンジンとが存在する。しかし、ＮＦＡのバックトラック特徴は変更可能でないため、ＮＦＡの整合速度を著しく改善することはできない。したがって、ＤＦＡ正規表現エンジンが現在広く使用されている。しかし、ＤＦＡ自体が状態機械の状態拡張の問題を有する。
【０００４】
ＤＦ正規表現エンジンの基本的な動作原理は、以下の通りである。まず、特定の規則に従って、正規表現（すなわち、正規表現セット内のすべての正規表現）を決定性有限状態機械にプリコンパイルして（ｐｒｅ−ｃｏｍｐｉｌｅ）、有限状態機械の状態遷移を引き起こすための有限状態機械の入力として確認されるように文字列を使用して、状態機械の状態遷移プロセスの間に、その文字列が特定の正規表現に整合しているかどうかを確認する。有限状態機械内のそれぞれの状態は、２つの基本要素、すなわち、（１）整合リストと、（２）状態遷移アレイとを含む。整合リストは正規表現の通し番号を含み、整合リストがゼロでない場合、そのリストは、状態機械がこの状態に達するとき、入力データストリームがその通し番号に対応する正規表現と一致したことを示し、そうでない場合、整合は発生しない。状態遷移アレイに関して、現在の状態は、入力文字に従って、どの状態にジャンプすべきかを判断することが可能であることが求められ、状態遷移アレイの長さは、正にすべての考えられる入力文字の数であり、状態遷移アレイのインデックスは、正にすべての考えられる入力文字であり、状態遷移アレイの値は、そのインデックスに対応する文字が現在の状態の下で入力されるとき、正にジャンプすべき状態の通し番号である。
【０００５】
状態遷移アレイは、ＤＦＡエンジンの状態拡張の原因である。入力文字セットが情報交換用米国標準コード（ＡＳＣＩＩ）表であると仮定すると、それぞれの状態の状態遷移アレイは、正にｉｎｔ型、すなわち、２５６の長さを有する、ショートタイプのアレイであり、１Ｋまたは５１２Ｂのメモリを占有する。ネットワーク侵入の複雑さにより、実際のネットワーク侵入検知では、整合のために複数の複合正規表現（ｃｏｍｐｌｅｘ  ｒｅｇｕｌａｒ  ｅｘｐｒｅｓｓｉｏｎ）をネットワークデータの同じ区分に適用することが可能であり、それによって、コンパイルによって取得されたＤＦＡ状態機械の状態数は、１０４から１０５の大きさに達する可能性があり、これはシステムのメモリ枯渇をもたらすことになる。
【０００６】
現在、ＤＦＡ正規表現エンジンの状態拡張問題に関して３つの解決策が利用可能である。
【０００７】
１．ＤＦＡ状態機械の状態遷移の数を削減するための方法は、２００６年のＫＵＭＡＲ  Ｓ、ＤＨＡＲＭＡＰＵＲＩＫＡＲ  Ｓ、ＹＵ  Ｆらによる論文「Ａｌｇｏｒｉｔｈｍｓ  ｔｏ  ａｃｃｅｌｅｒａｔｅ  ｍｕｌｔｉｐｌｅ  ｒｅｇｕｌａｒ  ｅｘｐｒｅｓｓｉｏｎｓ  ｍａｔｃｈｉｎｇ  ｆｏｒ  ｄｅｅｐ  ｐａｃｋｅｔ  ｉｎｓｐｅｃｔｉｏｎ［ｃ］」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２００６  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ａｐｐｌｉｃａｔｉｏｎｓ、Ｔｅｃｈｎｏｌｏｇｉｅｓ、Ａｒｃｈｉｔｅｃｔｕｒｅｓ  ａｎｄ  Ｐｒｏｔｏｃｏｌｓ  ｆｏｒ  Ｃｏｍｐｕｔｅｒ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ．Ｎｅｗ  Ｙｏｒｋ：ＡＣＭ  ｐｒｅｓｓ、２００６：２２９−３５０、２００６年のＫＵＭＡＲ  Ｓ、ＹＵＲＥＮＥＲ、ＷＩＬＬＩＡＮＳ  Ｊ．らによる論文「Ａｄｖａｎｃｅｄ  ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  ｆａｓｔ  ａｎｄ  ｓｃａｌａｂｌｅ  ｄｅｅｐ  ｐａｃｋｅｔ  ｉｎｓｐｅｃｔｉｏｎ［ｃ］」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２００６  ＡＣＭ／ＩＥＥＥ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｎｅｔｗｏｒｋｉｎｇ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｙｓｔｅｍｓ．Ｎｅｗ  Ｙｏｒｋ：ＡＣＭ  Ｐｒｅｓｓ、２００６：８１−９２、および２００８年のＦＡＣＡＲＡ  Ｄ、ＥＳＴＡＮ  Ｃ、ＪＨＡ  Ｓ．、ＰＲＯＣＩＳＳＩ  Ｇらによる論文「Ａｎ  ｉｍｐｒｏｖｅｄ  ＤＦＡ  ｆｏｒ  ｆａｓｔ  ｒｅｇｕｌａｒ  ｅｘｐｒｅｓｓｉｏｎ  ｍａｔｃｈｉｎｇ［Ｊ］」、ＡＣＭ  ＳＩＧＣＯＭＭ  Ｃｏｍｐｕｔｅｒ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｒｅｖｉｅｗ、２００８、３８（５）：２９−４０で開示されている（上記の論文の内容はその全体が参照により本明細に組み込まれている）。ＤＦＡ状態機械の状態遷移の数を削減するための方法は、「エッジ」を追加することによってメモリを節約するが、この方法は以下の問題を有する。導入される「エッジ」により、状態機械の遷移経路はより長く、その結果、正規表現エンジンの整合効率は低減する。加えて、この方法は、普遍性が欠如しており、すべての状態に「エッジ」が追加されるとは限らない場合がある。この方法のメモリ節約効果は、すべての状態に「エッジ」を追加することが可能な状態の比率に依存し、それによって、最終的に、正規表現に依存する。すなわち、いくつかの正規表現に関して、この方法は、メモリをより良好に節約することができるのに対して、いくつかの他の正規表現に関して、メモリ節約効果は損なわれる。この方法は、多数の正規表現を使用する必要があるネットワーク侵入検知システムには適さない。
【０００８】
２．ＤＦＡ状態機械の状態の数を削減するための方法は、２００８年のＳＭＩＴＨ  Ｒ、ＥＳＴＡＮ  Ｃ、ＪＨＡ  Ｓらによる論文「Ｘｆａ：Ｆａｓｔｅｒ  ｓｉｇｎａｔｕｒｅ  ｍａｔｃｈｉｎｇ  ｗｉｔｈ  ｅｘｔｅｎｄｅｄ  ａｕｔｏｍａｔａ［ｃ］」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２００８  ＩＥＥＥ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｓｅｃｕｒｉｔｙ  ａｎｄ  Ｐｒｉｖａｃｙ．Ｗａｓｈｉｎｇｔｏｎ、ＤＣ：ＩＥＥＥ、２００８：１８７−２０１、ならびに２００７年のＢＥＣＣＨＩ  ＭおよびＣＡＤＡＭＢＩ  Ｓによる論文「Ｍｅｍｏｒｙ−ｅｆｆｉｃｉｅｎｔ  ｒｅｇｕｌａｒ  ｅｘｐｒｅｓｓｉｏｎ  ｓｅａｒｃｈ  ｕｓｉｎｇ  ｓｔａｔｅ  ｍｅｒｇｉｎｇ［ｃ］」、ＩＮＦＯＣＯＭ  ２００７：２６ｔｈ  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ．Ｗａｓｈｉｎｇｔｏｎ  ＤＣ：ＩＥＥＥ、２００７：１０６４−１０７２で開示されている（上記の論文の内容はその全体が参照により本明細に組み込まれている）。ＤＦＡ状態機械の状態の数を削減するための方法は、状態の数を削減するために、状態ビットを導入することによってＤＦＡ状態機械内の状態を圧縮する。しかし、ＤＦＡ状態機械の状態の数を削減するためのこの方法は以下の欠点も有する。第１に、ＤＦＡ状態機械が比較的複雑なとき、この方法によって導入される追加の情報（状態ビット）によって占有されるメモリを無視することはできず、第２に、この方法には普遍性も欠如しており、例えば、この方法は、正規表現「．＊ａｂ．＊ｃｄ｜．＊ｅｆ．＊ｇ」の状態拡張の問題をより良好に解決することができるが、正規表現「．＊ａｂ［＾＼ｎ］＊ｃｄ｜．＊ｅｆ［＾＼ｎ］＊ｇｈ」によって引き起こされる状態拡張を解決することはできない
【０００９】
３．アルファベット圧縮のための方法は、２００７年のＢＥＣＣＨＩ  ＭおよびＣＲＯＷＬＥＹ  Ｐによる論文「Ａｎ  ｉｍｐｒｏｖｅｄ  ａｌｇｏｒｉｔｈｍ  ｔｏ  ａｃｃｅｌｅｒａｔｅ  ｒｅｇｕｌａｒ  ｅｘｐｒｅｓｓｉｏｎ  ｅｖａｌｕａｔｉｏｎ［ｃ］」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ３ｒｄ  ＡＣＭ／ＩＥＥＥ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｎｅｔｗｏｒｋｉｎｇ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｓｙｓｔｅｍｓ．Ｎｅｗ  Ｙｏｒｋ：ＡＣＭ  Ｐｒｅｓｓ、２００７：１４５−１５４で開示されている（上記の論文の内容はその全体が参照により本明細に組み込まれている）。アルファベット圧縮のための方法は、ＤＦＡ状態機械のメモリ消費を削減するために、アルファベットを圧縮することによって、状態機械内のそれぞれの状態の状態遷移アレイの長さを短縮する。しかし、この方法は以下の欠点を有する。すなわち、アルファベット圧縮のための方法を採用することによって、状態遷移アレイの長さは短縮されるが、実際の状態遷移プロセスの間に、圧縮されたアルファベットと完全なアルファベットとの間のマッピングを実行する必要があり、これは、ＤＦＡ状態機械の整合効率性を低減することになる。さらに、この方法は、文字が異なるソース状態で受信されるとき、同じ目標状態に達することが可能な状況にだけ適しており、この方法の適用範囲は非常に限定される。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】ＫＵＭＡＲ  Ｓ、ＤＨＡＲＭＡＰＵＲＩＫＡＲ  Ｓ、ＹＵ  Ｆら、「Ａｌｇｏｒｉｔｈｍｓ  ｔｏ  ａｃｃｅｌｅｒａｔｅ  ｍｕｌｔｉｐｌｅ  ｒｅｇｕｌａｒ  ｅｘｐｒｅｓｓｉｏｎｓ  ｍａｔｃｈｉｎｇ  ｆｏｒ  ｄｅｅｐ  ｐａｃｋｅｔ  ｉｎｓｐｅｃｔｉｏｎ［ｃ］」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２００６  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ａｐｐｌｉｃａｔｉｏｎｓ、Ｔｅｃｈｎｏｌｏｇｉｅｓ、Ａｒｃｈｉｔｅｃｔｕｒｅｓ  ａｎｄ  Ｐｒｏｔｏｃｏｌｓ  ｆｏｒ  Ｃｏｍｐｕｔｅｒ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ．、Ｎｅｗ  Ｙｏｒｋ：ＡＣＭ  ｐｒｅｓｓ、２００６年、ｐ．２２９−３５０
【非特許文献２】ＫＵＭＡＲ  Ｓ、ＹＵＲＥＮＥＲ、ＷＩＬＬＩＡＮＳ  Ｊ．ら、「Ａｄｖａｎｃｅｄ  ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  ｆａｓｔ  ａｎｄ  ｓｃａｌａｂｌｅ  ｄｅｅｐ  ｐａｃｋｅｔ  ｉｎｓｐｅｃｔｉｏｎ［ｃ］」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２００６  ＡＣＭ／ＩＥＥＥ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｎｅｔｗｏｒｋｉｎｇ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｙｓｔｅｍｓ．、Ｎｅｗ  Ｙｏｒｋ：ＡＣＭ  Ｐｒｅｓｓ、２００６年、ｐ．８１−９２
【非特許文献３】ＦＡＣＡＲＡ  Ｄ、ＥＳＴＡＮ  Ｃ、ＪＨＡ  Ｓ．、ＰＲＯＣＩＳＳＩ  Ｇら、「Ａｎ  ｉｍｐｒｏｖｅｄ  ＤＦＡ  ｆｏｒ  ｆａｓｔ  ｒｅｇｕｌａｒ  ｅｘｐｒｅｓｓｉｏｎ  ｍａｔｃｈｉｎｇ［Ｊ］」、ＡＣＭ  ＳＩＧＣＯＭＭ  Ｃｏｍｐｕｔｅｒ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｒｅｖｉｅｗ、２００８年、３８（５）、ｐ．２９−４０
【非特許文献４】ＳＭＩＴＨ  Ｒ、ＥＳＴＡＮ  Ｃ、ＪＨＡ  Ｓら、「Ｘｆａ：Ｆａｓｔｅｒ  ｓｉｇｎａｔｕｒｅ  ｍａｔｃｈｉｎｇ  ｗｉｔｈ  ｅｘｔｅｎｄｅｄ  ａｕｔｏｍａｔａ［ｃ］」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２００８  ＩＥＥＥ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｓｅｃｕｒｉｔｙ  ａｎｄ  Ｐｒｉｖａｃｙ．Ｗａｓｈｉｎｇｔｏｎ、ＤＣ：ＩＥＥＥ、２００８年、ｐ．１８７−２０１
【非特許文献５】ＢＥＣＣＨＩ  ＭおよびＣＡＤＡＭＢＩ  Ｓ、「Ｍｅｍｏｒｙ−ｅｆｆｉｃｉｅｎｔ  ｒｅｇｕｌａｒ  ｅｘｐｒｅｓｓｉｏｎ  ｓｅａｒｃｈ  ｕｓｉｎｇ  ｓｔａｔｅ  ｍｅｒｇｉｎｇ［ｃ］」、ＩＮＦＯＣＯＭ  ２００７：２６ｔｈ  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ．、Ｗａｓｈｉｎｇｔｏｎ  ＤＣ：ＩＥＥＥ、２００７年、ｐ．１０６４−１０７２
【非特許文献６】ＢＥＣＣＨＩ  ＭおよびＣＲＯＷＬＥＹ  Ｐ、「Ａｎ  ｉｍｐｒｏｖｅｄ  ａｌｇｏｒｉｔｈｍ  ｔｏ  ａｃｃｅｌｅｒａｔｅ  ｒｅｇｕｌａｒ  ｅｘｐｒｅｓｓｉｏｎ  ｅｖａｌｕａｔｉｏｎ［ｃ］」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ３ｒｄ  ＡＣＭ／ＩＥＥＥ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｎｅｔｗｏｒｋｉｎｇ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｓｙｓｔｅｍｓ．、Ｎｅｗ  Ｙｏｒｋ：ＡＣＭ  Ｐｒｅｓｓ、２００７年、ｐ．１４５−１５４
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上記の説明から、ＤＦＡ正規表現エンジンの状態拡張問題を解決するための様々な解決策が提供されているが、これらの解決策は、依然として明らかな欠点を有することが分かる。ＤＦＡの状態拡張問題をより良好に解決することが可能な新規性のある技術的解決策が必要である。
【課題を解決するための手段】
【００１２】
したがって、本発明は、上記の問題を克服または部分的に解決するために、１つまたは複数の正規表現を含む正規表現セットに基づいてデータを整合するための正規表現に基づくデータ整合デバイスおよび方法、ならびにネットワーク侵入検知デバイスおよび方法を提供する。
【００１３】
本発明の一態様によれば、１つまたは複数の正規表現を含む正規表現セットに基づいてデータを整合する正規表現に基づくデータ整合方法が提供される。この方法は、正規表現セット内で、相互作用の間に正規表現に基づいて生成される状態の数を急激に増大させる１つまたは複数の複合正規表現を探し出すステップと、１つまたは複数の探し出された複合正規表現のそれぞれに関して、対応する簡素化表現を構築するステップと、構築された簡素化表現と、１つまたは複数の探し出された複合正規表現を除いた正規表現セット内の残りの正規表現とに基づいて、簡素化状態機械をコンパイルするステップと、１つまたは複数の副状態機械をコンパイルするステップであって、１つまたは複数の副状態機械のそれぞれを１つまたは複数の複合正規表現のうちの対応する１つに基づいてコンパイルするステップと、簡素化状態機械と１つまたは複数の副状態機械とに基づいてデータを整合するステップとを含む。
【００１４】
任意に、複合正規表現は、以下のタイプの正規表現、すなわち、「サブパターン１．＊サブパターン２」などの形の正規表現、「サブパターン１．＋サブパターン２」などの形の正規表現、「サブパターン｛ｍ，ｎ｝」などの形の正規表現、および、「サブパターン｛ｍ｝」などの形の正規表現のうちの１つまたは複数を含む。
【００１５】
任意に、複合正規表現に対応する簡素化表現を構築するステップは、複合正規表現を１つまたは複数の正規特徴によって分離された１つまたは複数の文字列特徴に分割するステップであって、この場合、正規特徴が複合正規表現内の正規構文（ｒｅｇｕｌａｒ  ｓｙｎｔａｘ）を指し、文字列特徴が、複合正規表現内に存在し、正規構文によって分離された固定文字列を指す、分割するステップと、簡素化表現を構築するために、複合正規表現内の一続きの１つまたは複数の文字列特徴に従って、１つまたは複数の文字列特徴を関連付けるステップとを含む。
【００１６】
任意に、簡素化状態機械と１つまたは複数の副状態機械とに基づいてデータを整合するステップは、第１のデータ整合を実行するために、簡素化状態機械を使用するステップと、第１のデータ整合の結果が、そのデータが簡素化表現に整合することを示す場合、第２のデータ整合を実行するために、簡素化表現に対応する複合正規表現に対応する副状態機械を使用するステップと、第２のデータ整合の結果が、そのデータが複合表現に整合することを示す場合、そのデータが複合正規表現に整合することを判断するステップとを含む。
【００１７】
本発明の別の態様によれば、１つまたは複数の正規表現を含む正規表現セットに基づいてデータを整合するデータ整合デバイスが提供される。データ整合デバイスは、正規表現セット内で、相互作用の間に正規表現に基づいて生成される状態の数を急激に増大させる１つまたは複数の複合正規表現を探し出すように構成された正規表現セットプリプロセッサと、正規表現セットプリプロセッサによって探し出された１つまたは複数の複合正規表現のそれぞれに関して、対応する簡素化表現を構築するように構成された複合正規表現簡素化装置（ｓｉｍｐｌｉｆｉｅｒ）と、複合正規表現簡素化装置からの簡素化表現と、正規表現セットプリプロセッサからの正規表現セット内の正規表現とに基づいて、簡素化状態機械をコンパイルするように構成された簡素化表現コンパイラと、正規表現セットプリプロセッサによって探し出された１つまたは複数の複合正規表現のそれぞれに関して、対応する副状態機械をコンパイルするように構成された副状態機械コンパイラと、簡素化表現コンパイラからの簡素化状態機械と、副状態機械コンパイラからの副状態機械とに基づいてデータを整合するように構成されたデータ整合器（ｄａｔａ  ｍａｔｃｈｅｒ）とを含む。
【００１８】
本発明のデータ整合方法およびデータ整合デバイスによれば、正規表現に基づいてデータを整合するプロセスは、２つの段階を含む。すなわち、第１の段階で、簡素化正規表現は、整合を実行するために、複合正規表現を置換して、簡素化正規表現が第１の段階で整合した場合だけ、第２の段階で、実際の複合正規表現に基づく整合が実行されることになる。したがって、本発明のデータ整合方法およびデバイスによれば、複合正規表現を簡素化正規表現と置換することによって、状態拡張が生成された状態機械に発生しない可能性がある。その一方で、簡素化正規表現は元の複合正規表現の特徴を大いに引き継ぐ場合があるため、この場合も第２の段階でデータを整合する確率は非常に小さく、このことは整合効率があまり低減しないことを確実にする。したがって、既存のＤＦＡ正規エンジンの状態拡張問題は、容認できる性能損失を伴って、本発明のデータ整合方法およびデバイスにより解決される。
【００１９】
本発明のさらなる態様によれば、ネットワーク侵入検知方法が提供され、この場合、本発明のデータ整合方法は、受信されたネットワークデータがネットワーク侵入データであるかどうかを判定する際に用いられる。
【００２０】
本発明のさらなる態様によれば、ネットワーク侵入検知デバイスが提供され、この場合、本発明のデータ整合デバイスは、受信されたネットワークデータがネットワーク侵入データであるかどうかを判定する際に用いられる。
【００２１】
本発明の実施形態または先行技術での技術的解決策をより明瞭に説明するために、以下の説明は、本実施形態または先行技術を説明するために必要とされる添付の図面を簡単に紹介する。明らかに、以下の説明において、添付の図面は、本発明のいくつかの実施形態のみを示し、当業者は、創造的努力なしに、添付の図面から他の図面を導き出すことが依然として可能である。
【図面の簡単な説明】
【００２２】
【図１】複合正規表現に対応する状態機械の概略図である。
【図２】２つの複合正規表現に対応する状態機械の概略図である。
【図３】別の複合正規表現に対応する状態機械の概略図である。
【図４】本発明のある実施形態による、正規表現セットに基づくデータ整合方法のフローチャートである。
【図５】図４に例示された方法において、簡素化状態機械と副状態機械とに基づいてデータを整合するステップのフローチャートである。
【図６】本発明のある実施形態による、正規表現セットに基づくデータ整合デバイスの概略ブロック図である。
【発明を実施するための形態】
【００２３】
本発明の実施形態の目標、技術的解決策、および利点をより包括的にするために、以下の記載は、本発明の実施形態の添付の図面を参照して、本発明の実施形態の技術的解決策をより明瞭かつ完全に説明する。明らかに、説明される実施形態は、本発明の実施形態のすべてではなく、単にその一部である。創造的努力なしに、本発明の実施形態に基づいて、当業者によって導き出されるすべてのその他の実施形態は、本発明の保護範囲に包含されるべきである。
【００２４】
本発明の実施形態を説明する前に、ＤＦＡ正規表現エンジン内の状態機械の状態拡張問題の原因を解析する。大部分の状態拡張問題は、正規表現の相互作用によって生み出されると見なすことができる。例えば、２つの正規表現「｛パターン１｝」および「｛パターン２｝」がそれぞれ独立してコンパイルされる場合、状態拡張問題は発生しないことになる。しかし、（新しい正規表現「パターン１｜パターン２」と同等の）正規表現グループとして正規表現「｛パターン１｝」および「｛パターン２｝」が使用されて、一緒にコンパイルされる場合、状態拡張問題が発生する可能性がある。ある特定の特徴を有する複合正規表現間の相互作用だけが状態の数を拡張させる可能性があることが研究によってさらに発見されている。そのような複合正規表現は、例えば、以下の通りである。
【００２５】
１．「｛サブパターン１｝．＊｛サブパターン２｝」または「｛サブパターン１｝．＋｛サブパターン２｝」などの形の正規表現であり、この場合、「｛サブパターン１｝．＊｛サブパターン２｝」は、副表現「サブパターン１」と副表現「サブパターン２」との間にゼロまたはゼロより多い任意の１つ／複数の文字を含むことを指し、「｛サブパターン１｝．＋｛サブパターン２｝」は、副表現「サブパターン１」と副表現「サブパターン２」との間に１つまたは１つより多い任意の文字を含むことを指す。そのような正規表現の特徴は、不特定の長さと無制限の最大可能長さとを備えた副表現（．＊）および（．+）が正規表現内に出現することである。したがって、正規表現は、同じ正規表現セット内で使用されているなど、それらの相互作用の間にＤＦＡ状態機械の状態の数を急激に増大させる可能性がある。
【００２６】
例えば、図１は、正規表現「．＊ａｂ．＊ｃｄ」をコンパイルすることによって取得される状態機械を例示するのに対して、図２は、正規表現「．＊ｅｆ．＊ｇｈ」および類似のフォーマットを備えた正規表現「．＊ａｂ．＊ｃｄ」が同じ正規表現セット内で互いと相互作用するときの対応する状態機械を例示する。図１および図２に示される状態機械によれば、複合正規表現「．＊ｅｆ．＊ｇｈ」および複合正規表現「．＊ａｂ．＊ｃｄ」が相互作用しているとき、状態の数は、線形ではなく、幾何学的に（急激に）増大することが分かる。
【００２７】
２．「サブパターン｛ｍ，ｎ｝」および「サブパターン｛ｍ｝」など形の複合正規表現であり、この場合、正規表現「サブパターン｛ｍ，ｎ｝」は、副表現サブパターンを、少なくともｍ回であるが、ｎ回を超えない複数回反復することを指す。正規表現「サブパターン｛ｍ｝」は、「サブパターン｛ｍ，ｎ｝」の特別な事例と理解することができ、サブパターンをｍ回反復することを指す。２つの正規表現は両方とも、対応する状態機械の状態の数を平方レベルで増大させる可能性がある。例えば、図３は、正規表現「ａ＋［＾＼ｎ］｛３｝ｂ」に対応するＤＦＡ状態機械を例示する（正規表現は、文字が一回を超える回数反復され、その後、３個の＼ｎ文字が存在し、１個の文字ｂが存在することを意味する）。図３に例示されるように、ＤＦＡ状態機械は、正規表現「ａ＋［＾＼ｎ］｛３｝ｂ」を記述するために約３２個の状態を必要とする。文字が１０２４回反復される場合、ＤＦＡの状態の数は１０２４２程度である。加えて、これらのタイプの表現は、相互作用の間により急激な（ｒａｄｉｃａｌ）状態拡張をさらに誘起する場合がある。
【００２８】
確かに、状態の数を拡張させる可能性がある複合正規表現は、上に提示された特定の例に限定されない。さらに、未定の長さを備えた副表現、または複数回反復される副表現を含めて、その他の正規表現を本発明で説明される複合正規表現とさらに見なすことができる。この例に基づいて、当業者は、本発明の保護範囲を超えずに、本発明で説明される複合正規表現に属する他の正規表現を発案することができる。
【００２９】
複合正規表現は対応する状態機械の状態の数を拡張する原因であることに鑑みて、複合正規表現が状態機械の構築の間に事前処理される場合、場合によっては、状態の数の拡張の問題を取り除くことが可能である。本発明はそれに応じて発案されている。
【００３０】
図４は、本発明の一実施形態による、正規表現セットに基づくデータ整合４００の方法のフローチャートである。正規表現セットは、１つまたは複数の正規表現を含む。データ整合の間、正規表現セット内のどの１つまたは複数の正規表現が整合することになるデータに整合するかを判定するために、正規表現セット内のすべての正規表現をデータ整合のために使用する必要がある。
【００３１】
データ整合４００のための方法は、正規表現セット内で、相互作用の間に正規表現に基づいて生成される状態の数を急激に増大させる１つまたは複数の複合正規表現を探し出すステップＳ４１０から開始する。複合正規表現の特定の例は、上で提示されている。
【００３２】
その後、ステップＳ４２０で、１つまたは複数の探し出された複合正規表現のそれぞれに関して、対応する簡素化表現が構築される。それぞれの複合正規表現に関して、対応する簡素化正規表現を構築する原理は、データが簡素化正規表現には整合するが、元の複合正規表現には可能な限り整合しない事例を削減するように、構築された簡素化正規表現が元の複合正規表現の特徴をかなり引き継ぐ可能性があることである。
【００３３】
任意で、本発明の一実施形態によれば、それぞれの複合正規表現に関して、対応する簡素化正規表現を構築するステップは、以下のステップを含む。
【００３４】
１．複合正規表現は、１つまたは複数の正規特徴によって分離された１つまたは複数の文字列特徴に分割され、この場合、正規特徴は複合正規表内の正規構文を指し、正規構文は、当業者によって容易に取得され得る、正規表現の分野でよく知られている構文である。文字列特徴は、複合正規表現内に存在し、正規文法によって区切られた固定文字列を指す。
【００３５】
例えば、下の２つの正規表現の場合である。
【００３６】
正規表現１：ＲＥＰＯＲＴ＼ｓ＋∨ｓｖｎ［＾＼ｎ］＊ＨＴＴＰ∨１＼．１；
正規表現１は、ハイパーテキストトランスポートプロトコル（ＨＴＴＰ）に関連する正規表現であり、この場合、「ＲＥＰＯＲＴ、∨ｓｖｎ」、および「ＨＴＴＰ∨１＼．１」は、それらの文字列特徴であり、「＼ｓ＋」および「［＾＼ｎ］＊」は、それらの正規特徴である。
【００３７】
正規表現２：ｄｂｍｓ＿ｏｕｔｐｕｔ．ｐｕｔ＿ｌｉｎｅ（ＳＹＳ．ＯＬＡＰＩＭＰＬ＿Ｔ．ＯＤＣＩＴＡＢＬＥＳＴＡＲＴ［＾）］｛３００｝；
正規表現２は、バッファオーバーフロー攻撃検出に関する正規表現であり、この場合、「ｄｂｍｓ＿ｏｕｔｐｕｔ．ｐｕｔ＿ｌｉｎｅ（ＳＹＳ．ＯＬＡＰＩＭＰＬ＿Ｔ．ＯＤＣＩＴＡＢＬＥＳＴＡＲＴ）は、それらの文字列特徴であり、「［＾）］｛３００｝」は、それらの正規特徴である。
【００３８】
２．分割することによって取得される文字列特徴は、簡素化正規表現を構築するために、複合正規表現内の一続きの１つまたは複数の文字列特徴に従って関連付けられる。
【００３９】
例えば、正規表現１：ＲＥＰＯＲＴ＼ｓ＋∨ｓｖｎ［＾＼ｎ］＊ＨＴＴＰ∨１＼．１の場合、構築された簡素化正規表現は「ＲＥＰＯＲＴ．＊∨ｓｖｎ．＊ＨＴＴＰ∨１＼．１」であるが、
【００４０】
正規表現２：ｄｂｍｓ＿ｏｕｔｐｕｔ．ｐｕｔ＿ｌｉｎｅ（ＳＹＳ．ＯＬＡＰＩＭＰＬ＿Ｔ．ＯＤＣＩＴＡＢＬＥＳＴＡＲＴ［＾）］｛３００｝の場合、構築された簡素化正規表現は、「ｄｂｍｓ＿ｏｕｔｐｕｔ．ｐｕｔ＿ｌｉｎｅ（ＳＹＳ．ＯＬＡＰＩＭＰＬ＿Ｔ．ＯＤＣＩＴＡＢＬＥＳＴＡＲＴ）である。
【００４１】
ここで、正規表現１に対応する、簡素化正規表現「ＲＥＰＯＲＴ．＊∨ｓｖｎ．＊ＨＴＴＰ∨１＼．１」内の「．＊」は、前後関係だけを表し、実際的な正規構文の意味を有さない点に留意されたい。本発明のある実施形態によれば、簡素化正規表現は、３つの正規表現「ＲＥＰＯＲＴ」、「∨ｓｖｎ」、および「ＨＴＴＰ∨１＼．１」に分割され、これら３つの正規表現は、実際的なコンパイルプロセスでそれぞれコンパイルされて、「．＊」によってこれらの３つの正規表現を一緒に関連付けるのは、それらの正規表現間の論理関係を表現するためである。これらの３つの正規表現「ＲＥＰＯＲＴ」、「∨ｓｖｎ」、および「ＨＴＴＰ∨１＼．１」が一続きで整合するときだけ、簡素化正規表現「ＲＥＰＯＲＴ．＊∨ｓｖｎ．＊ＨＴＴＰ∨１＼．１」は整合すると見なすことができる。
【００４２】
本発明のある実施形態によれば、簡素化正規表現を構築するために、複合正規表現内のすべての文字列特徴が関連付けられる。しかし、本発明の別の実施形態によれば、いくつかの重要な文字列特徴だけが関連付けられてもよく、いくつかの重要または顕著でない文字列特徴は無視されてよい。
【００４３】
例えば、この方法によれば、複合正規表現「ａｎｄ［＾＼ｎ）］＋ｂｅｔｗｅｅｎ［＾＼ｎ］＋）」は、３つの文字列特徴「ａｎｄ」、「ｂｅｔｗｅｅｎ」および「）」に分割される。簡素化正規表現を構築するために、すべての文字列特徴が関連付けられる場合、整合プロセスの間に「ａｎｄ」、「ｂｅｔｗｅｅｎ」および「）」が一続きで整合するように、簡素化正規表現「ａｎｄ．＊ｂｅｔｗｅｅｎ．＊）」が取得される。しかし、文字列特徴「）」が入力データストリーム内に比較的頻繁に出現するため、特徴「）」は顕著でない特徴と見なされる。このように、複合正規表現「ａｎｄ［＾＼ｎ）］＋ｂｅｔｗｅｅｎ［＾＼ｎ］＋）に対応する簡素化正規表現は「ａｎｄ．＊ｂｅｔｗｅｅｎ」である。
【００４４】
ステップＳ４２０における複合正規表現に対応する簡素化表現の構築を例示するいくつかの特定の実施形態が上で提示された。しかし、提示された例に基づいて、当業者は複合正規表現に対応する簡素化正規表現を構築する他の様式を考案することができる。
【００４５】
図４を再度参照すると、ステップＳ４２０で、それぞれの複合正規表現に関して、対応する簡素化表現が構築された後で、それぞれの複合正規表現の対応する簡素化表現と、複合正規表現を除いた正規表現セット内の残りの正規表現とに基づいて、簡素化状態機械はコンパイルされる。すなわち、簡素化正規表現は正規表現セット内の対応する複合正規表現を置換し、それにより、簡素化状態機械がコンパイルされる。正規表現に基づいてＤＦＡ状態機械をコンパイルするために使用される、当技術分野で知られている任意の方法を使用して、簡素化状態機械をコンパイルすることが可能である。この事例では、簡素化正規表現が複合正規表現を置換するため、正規表現間の相互作用は、簡素化状態機械の状態の数を過剰に拡張させない可能性がある。
【００４６】
その後、ステップＳ４４０で、それぞれの複合正規表現に関して、対応する副状態機械がコンパイルされる。正規表現に基づいてＤＦＡ状態機械をコンパイルするために使用される、本分野で知られている任意の方法を使用して、副状態機械をコンパイルすることも可能である。その後、データ整合４００のための方法はステップＳ４５０に進み、ここで、ステップＳ４３０で取得された、簡素化状態機械と、ステップＳ４４０で取得された副状態機械とがデータ整合のために使用される。
【００４７】
任意で、図５は、図４のステップＳ４５０を実現するための方法のフローチャートを示す。図５に例示されるように、この方法はステップＳ５１０から開始し、ここで、第１のデータ整合を実行するために、簡素化状態機械が使用され、さらに、ステップＳ５２０で、いずれかの簡素化正規表現が第１のデータ整合のデータ整合結果内で整合するとして示されるかどうかが判定される。ステップＳ５２０で、１つまたは複数の簡素化正規表現が整合することが判断された場合、複合正規表現に対応する整合結果を取得する目的で、ステップ５３０で、第２のデータ整合をそれぞれ実行するために、１つまたは複数の整合した簡素化正規表現に対応する複合正規表現に対応する副状態機械が使用される。その後、ステップＳ５４０で、整合結果が出力され、この場合、簡素化正規表現と、ステップＳ５３０で整合すると判断された複合正規表現とを除いて、ステップＳ５１０で整合すると判断された正規表現だけが整合する正規表現であると判断される。すなわち、方法５００では、第１のデータ整合の間に、簡素化正規表現が整合することが分かった場合、決定する目的で第２のデータ整合を実行するために、対応する複合正規表現を使用する必要がある。
【００４８】
例えば、ネットワークデータの特定の区分に関するデータを整合するために、パターン１、パターン２．．．パターン２０を含む２０個の正規表現が必要とされると仮定し、この場合、それぞれの正規表現は１つのタイプの攻撃を表す。パターン１からパターン１７は、状態を拡張させない可能性がある簡素化表現であるのに対して、パターン１８、パターン１９、およびパターン２０は、状態を拡張させる可能性がある複合表現であると仮定する。図４および図５に例示される本発明の実施形態のデータ整合方法によれば、パターン１８、パターン１９、およびパターン２０を含む複合正規表現がまずステップＳ４２０で探し出され、その後、複合正規表現パターン１８、パターン１９、およびパターン２０にそれぞれ対応する簡素化正規表現ニューパターン１８、ニューパターン１９、およびニューパターン２０がステップＳ４２０で構築され、この場合、簡素化正規表現は状態を拡張させない可能性がある。その後、パターン１からパターン１７、ならびにニューパターン１８、ニューパターン１９、およびニューパターン２０は、ステップＳ４３０で、簡素化状態、すなわち、機械状態機械１をコンパイルおよび取得するための規則のセットとして機能し、さらに、独立した正規表現として、パターン１８、パターン１９、およびパターン２０がそれぞれコンパイルされて、ステップＳ４４０で、状態機械２、状態機械３、および状態機械４を含む副状態機械が取得される。ステップＳ４５０で、図５で説明される整合プロセスを参照することによって、整合のために、ステップＳ５１０で、簡素化状態機械、すなわち、状態機械１がまず使用される。ステップ５２０で、パターン１８、パターン１９、およびパターン２０のいずれも整合しないことが判断された場合、整合プロセス全体が完了し、ステップＳ５１０の整合結果は、ステップＳ５４０で、最終的な整合結果として出力される。そうではなく、ステップ５２０でニューパターン１８、ニューパターン１９、およびニューパターン２０のうちの少なくとも１つが整合することが判断された場合、例えば、ニューパターン１８が整合する場合、入力データがパターン１８に整合するかどうかを判断するために、ステップＳ５３０で、第２の整合のために状態機械２を使用する必要があり、ステップＳ５４０で出力された最終的な整合結果は、ステップＳ５１０の第１の整合結果とステップＳ５３０の第２の整合結果の合併セット（ｕｎｉｏｎ  ｓｅｔ）である。
【００４９】
本発明のデータ整合のための方法によれば、状態の数が急激に拡張する問題は、簡素化状態機械およびそれぞれの副状態機械には発生しないことになる。
【００５０】
しかし、本発明のデータ整合のためのこの方法によれば、データ整合はデータの同じ区分に関して１回を超える回数実行される可能性があるため、一定の効率損失がもたらされる可能性がある。例えば、先の例では、簡素化状態機械１の使用によってデータ整合を実行するときニューパターン１８が整合する場合、第２のデータ整合のために状態機械２を使用して、パターン１８が整合するかどうかを判断する必要がある。データの同じ区分に２個の状態機械を通過させることは、データの同じ区分を二回走査させることを意味し、これはシステム効率を低減することになる。システム効率の低減を最小限に抑えるために、本発明による方法のステップＳ４２０で、簡素化正規表現は複合正規表現の主な特徴を記述することが可能であることが必要であり、したがって、そのデータが簡素化正規表現には整合するものの、複合正規表現には整合しない確率は、システム効率を改善するために可能な限り低減される。
【００５１】
図６は、本発明のある実施形態による、正規表現セットに基づくデータ整合のためのデバイス６００を概略的に例示する。データ整合デバイス６００は、上の図４および図５で例示されたデータ整合のための方法を実行するように構成される。図６で例示されるように、データ整合のためのデバイス６００は、複数の正規表現を含む正規表現セット内で、相互作用の間に正規表現に基づいて生成される状態の数を急激に増大させる１つまたは複数の複合正規表現を探し出すように構成された正規表現セットプリプロセッサ６１０を含む。複合正規表現の特徴は、詳細に説明されており、ここで再度説明されない。任意で、正規表現セットプリプロセッサ６１０は、図４でステップＳ４１０を実行することが可能である。
【００５２】
データ整合のためのデバイス６００は、正規表現セットプリプロセッサ６１０によって探し出された１つまたは複数の複合正規表現のそれぞれに関して、対応する簡素化表現を構築するように構成された複合正規表現簡素化装置６２０をさらに含む。複合正規表現簡素化装置６２０は、ステップＳ４２０で説明されたように、簡素化表現を構築することができる。具体的には、本発明のある実施形態によれば、複合正規表現簡素化装置６２０は、複合正規表現を１つまたは複数の正規特徴によって分離された１つまたは複数の文字列特徴に分割するように構成された分割装置６２２を含む。複合正規表現簡素化装置６２０は、簡素化正規表現を構築するために、複合正規表現内の一続きの１つまたは複数の文字列特徴に従って、１つまたは複数の文字列特徴を関連付けるように構成された再構成装置６２４をさらに含む。任意で、再構成装置６２４は、簡素化正規表現を構築するために、複合正規表現のすべての文字列特徴を関連付ける。しかし、本発明の別の実施形態によれば、再構成装置６２４は、いくつかの重要な文字列特徴だけを関連付けて、いくつかの重要または顕著でない文字列特徴を無視することも可能である。
【００５３】
データ整合のためのデバイス６００は、簡素化表現コンパイラ６３０と副状態機械コンパイラ６４０とをさらに含む。簡素化表現コンパイラ６３０は、複合正規表現簡素化装置６２０からの簡素化表現と、正規表現セットプリプロセッサ６１０によって提供された複合正規表現を除いた正規表現セット内の残りの正規表現とに基づいて、簡素化状態機械をコンパイルする。副状態機械コンパイラ６４０は、正規表現セットプリプロセッサ６１０によって探し出された１つまたは複数の複合正規表現のそれぞれに関して、対応する副状態機械をコンパイルする。簡素化表現コンパイラ６３０と副状態機械コンパイラ６４０は両方とも、ＤＦＡ状態機械を生成するために、当技術分野で知られている任意の手段を用いて、正規表現をコンパイルすることが可能である。任意で、簡素化表現コンパイラ６３０および副状態機械コンパイラ６４０は、図４を参照して上で説明されたステップＳ４３０およびステップＳ４４０をそれぞれ実行することができる。
【００５４】
データ整合のための、デバイス６００内のデータ整合器６５０は、簡素化表現コンパイラ６３０からの簡素化状態機械と、副状態機械コンパイラ６４０からの副状態機械とに基づいてデータを整合する。任意で、データ整合器６５０は、図４を参照して上で説明されたステップＳ４５０を実行することができる。
【００５５】
本発明のある実施形態によれば、データ整合器６５０は、第１の整合装置６５２と、第２の整合装置６５４と、整合結果組合せ装置６５６とを含む。第１の整合装置６５２は、第１のデータ整合を実行するために、簡素化表現コンパイラ６３０からの簡素化状態機械を使用する。第１の整合装置６５２の第１のデータ整合結果が、複合正規表現に対応する簡素化表現が整合することを示す場合、第２の整合装置６５４は、第２のデータ整合を実行するために、副状態機械コンパイラ６４０からの、整合した簡素化表現に対応する複合正規表現に対応する副状態機械を使用する。整合結果組合せ装置６５６は、最終データ整合結果として、第１の整合装置６５２の整合結果と、第２の整合装置６５４の整合結果の合併セットを出力する。
【００５６】
本発明のデータ整合のためのデバイスに従って、整合プロセスは２つの段階に分割される。すなわち、第１の段階で、簡素化正規表現は整合を実行するために、複合正規表現を置換し、第１の段階で簡素化正規表現が整合した場合だけ、第２の段階で、実際の複合正規表現を使用する整合が実行されることになる。このように、状態拡張が発生しないだけでなく、整合効率の大きな低減も発生しない。
【００５７】
本発明による正規表現セットに基づくデータ整合方法およびデータ整合デバイスは、データ整合が必要とされる様々なアプリケーションに適用可能である。上で説明されたように、正規表現セットに基づくデータ整合方法およびデバイスは、ネットワーク侵入検知の分野で特に必要とされる。例えば、本発明の一実施形態によるネットワーク侵入検知デバイスは、受信されたネットワークデータに関してデータ整合を実行するために、ネットワーク侵入モードに対応するそれぞれの正規表現を使用して、それによって、そのネットワークデータがネットワーク侵入データであるかどうかを判定するために、データ整合デバイスを含むことが可能である。本発明のある実施形態によるネットワーク侵入検知方法は、ネットワークデータを取得するステップと、ネットワーク侵入モードに対応する正規表現セットに従って、ネットワークデータを整合するために、本発明のデータ整合方法を使用するステップと、データ整合結果に基づいて、ネットワークデータがネットワーク侵入データであるかどうかを判定するステップとを含むことが可能である。
【００５８】
本発明のデータ整合デバイスのそれぞれの構成要素内で、これらの構成要素は、実施されることになるその機能に従って、論理的に分離される点に留意されたい。しかし、本発明はこれに限定されない。それぞれの構成要素は、需要に従って、再度、分割または組合せ可能である。例えば、複数の構成要素を組み合わせて単一の構成要素にすることが可能であり、または、複数の構成要素をさらに分解して、より多くの副構成要素にすることも可能である。
【００５９】
本発明のそれぞれの実施形態は、ハードウェアによって実施されることが可能であり、または１つもしくは複数のプロセッサ上で動作しているソフトウェアモジュールによって実施されることが可能であり、あるいはハードウェアとソフトウェアモジュールの組み合わせによって実施されることも可能である。当業者は、本発明の実施形態による、データ整合のためのデバイス内のいくつかの構成要素またはすべての構成要素の部分機能もしくは全体機能を実際にはマイクロプロセッサあるいはデジタル信号プロセッサ（ＤＳＰ）を使用することによって実施することが可能である点を理解されたい。本発明は、本明細書で説明された方法を部分的もしくは完全に実行するように構成されることになる（コンピュータプログラムおよびコンピュータプログラム製品など）デバイスまたは装置のプログラムとしてさらに実行可能である。本発明を実現するプログラムは、コンピュータ可読媒体内に記憶可能であるか、または１つもしくは複数の信号タイプを有することも可能である。信号は、インターネットウェブサイトからダウンロード可能であるか、もしくはキャリア信号によって提供可能であるか、または任意のその他の形で提供可能である。
【００６０】
上記の実施形態は、本発明の限定ではなく、例示である点に留意されたい。さらに、当業者は、添付の請求項の範囲から逸脱しない場合、代替実施形態を設計することが可能である。請求項では、括弧内の任意の参照符号は請求項の限定として解釈されるべきではない。「備える」という用語またはその変形は、請求項に列挙されていない要素またはステップの存在を除去しない。その後に要素が続く「１つの」という用語は、２つ以上のそのような要素の存在を除外しない。本発明は、複数の異なる要素を含むハードウェア、ならびに適切にプログラムされたコンピュータによって実施可能である。複数の装置ユニットを列挙する請求項では、それらの装置ユニットのうちのいくつかは、具体的には、同じハードウェア品目によって実施可能である。「第１の」、「第２の」、「第３の」などの用語の使用は、任意の順序優先を表さない。これらの用語は、名称として説明され得る。
【００６１】
最後に、これらの実施形態は、本発明の技術的解決策を限定することが意図されず、本発明の技術的解決策を説明するためだけである点に留意されたい。本発明はこれらの実施形態を参照することによって詳細に説明されているが、当業者は、これらの実施形態内でその中の技術的解決策もしくは技術的特徴の一部に修正または均等の置換を行うことが可能である点を理解されたい。しかし、これらの修正または均等の置換は、本発明の実施形態の技術的解決策の趣旨および範囲から逸脱する対応する技術的解決策の本質ではない。
【図１】
0005674956.tif 000002
【図２】
0005674956.tif 000003
【図３】
0005674956.tif 000004
【図４】
0005674956.tif 000005
【図５】
0005674956.tif 000006
【図６】
0005674956.tif 000007