JP4855400B2 - マルチパターン検索のための方法およびシステム - Google Patents
マルチパターン検索のための方法およびシステム Download PDFInfo
- Publication number
- JP4855400B2 JP4855400B2 JP2007523640A JP2007523640A JP4855400B2 JP 4855400 B2 JP4855400 B2 JP 4855400B2 JP 2007523640 A JP2007523640 A JP 2007523640A JP 2007523640 A JP2007523640 A JP 2007523640A JP 4855400 B2 JP4855400 B2 JP 4855400B2
- Authority
- JP
- Japan
- Prior art keywords
- state
- pattern
- search
- list
- vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/912—Applications of a database
- Y10S707/922—Communications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99939—Privileged access
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Monitoring And Testing Of Transmission In General (AREA)
Description
ャッシュから最も利益を受ける。パターン・グループが大きくなると、小さなパターン・グループしかキャッシュ内に収容することができなくなり、キャッシュ・ミスが多くなる。これにより性能が劣化する。大部分の検索アルゴリズムは、例えば、1,000のパターンを処理する場合よりも、10のパターンを処理するほうが処理速度が速くなる。パターン・グループのサイズが増大した場合の各アルゴリズムの性能の劣化は、アルゴリズムにより異なる。スケーラビリティを維持するためには、この劣化が線形に近いことが望ましい。
ckアルゴリズムは、小さなパターンにより影響を受けない。Aho−Corasickアルゴリズムの最悪の場合および平均的な場合の性能は同じである。そのため、IDS用の非常にロバストなアルゴリズムになる。
ベクトルの要素が生成される。バンド内の要素の数を識別するために、状態ベクトルの要素が生成される。バンドの各要素の状態は、状態ベクトルの各状態遷移要素内にコピーされる。
Aho−Corasick状態マシンは、特種な有限状態マシンである。有限状態マシ
ンは、システムの許容できる状態の遷移に関する情報と一緒に、システムのすべての可能な状態を示すものである。状態マシンの処理動作は、初期状態で開始し、入力イベントを受け入れ、この入力イベントに基づいて現在の状態から次の正しい状態に移行する。状態マシンを、行が状態を表し列がイベントを表すマトリクスとしてモデル化することができる。マトリクス要素は、入力イベント、および行うべき可能なある種の特定の動作、またはある状態に入りそこから抜け出した場合に処理すべき情報に基づいて移行する次の正しい状態を提供する。例えば、現在の状態が状態10であり、次の入力イベントがイベント6である場合には、状態遷移を行うために、行10および列6のところのマトリクス要素がチェックされる。現在の状態10は、行10および列6のところのマトリクス要素の値が示す状態に変化する。
スパース記憶フォーマット
スパース・マトリクスおよびベクトルは、かなりの数のゼロ要素および少数の非ゼロ要素を含む。スパース構造上で効率的に動作するために使用する方法および記憶フォーマットは、線形代数の分野で確実に開発されていて、多くの科学分野で利用されている。その方法および記憶フォーマットは、スパース・データを効率的に格納するのに十分なものではない。記憶フォーマットも、データに高速でランダム・アクセスできるものでなければならない。
0003
0401
0006
1000
0200
0050
上記マトリクスは、少数の非ゼロ要素を含む一般的な長方形のマトリクスである。圧縮行記憶(CRS)フォーマットを使用して、下記のように格納することができる。
列: 4244123
行: 124567
このCRSフォーマットは、非ゼロ・エントリを保持するためだけに3つのベクトルを必要とする。これらベクトルは、値ベクトル、列ベクトルおよび行ベクトルである。列ベクトルは、マトリクス内の値アレイ内の対応する値が属する列を示す。行ベクトルは、各
行が開始する列および値アレイ内の索引を示す。各値および列ベクトル内には7つのエントリが存在する。何故なら、マトリクス内には7つの非ゼロ・エントリが位置するからである。6つの行エントリが存在する。何故なら、マトリクス内には6つの行が存在するからである。例えば、第3の行エントリは、第3の行が列および値ベクトルの第4のエントリのところで開始することを示す。これは、以下に示すようにベクトルとなる1つの行を考慮することにより、ベクトルを処理するためにさらに分割することができるマトリクスのための最も簡単なスパース記憶スキームの1つである。
ベクトル:00024000607000000000
値: 2467
索引: 45911
この圧縮スパース・ベクトル・フォーマットにおいては、索引アレイは、対応する値のベクトル・アレイ索引を示す。4つの非ゼロ値が存在する。何故なら、索引および値アレイ内に4つのエントリが存在するからである。
スパース行:8425496117
このスパース行フォーマットには、9つのエントリが存在し、第1のエントリは、索引値の順序で数字の4つのペアを表す8つの数が後に続く後続の語の全数である。これは9つのエントリの1つのアレイであり、そのうち8つは索引値の順序で配列されている。これは、それぞれが索引および値エントリを有する4つのC言語構造のアレイとして表すこともできる。いずれの場合にも、必要なのは、非ゼロのエントリの数および非ゼロのエントリの1つのアレイだけである。この記憶装置スキームは、スパース・ベクトルの全記憶装置を最小限度に低減する場合にうまく動作し、マトリクス・ベクトル乗算のようなベクトルの各要素に順次触れなければならないアプリケーション内でうまく動作する。しかし、個々のエントリをランダムに探すためには、このフォーマットは、正しい索引を発見するためにアレイ全体を検索しなければならない。
開始索引: 4
値: 24000607
バンド・アレイ:8424000607
このバンド状行フォーマットは、第1の非ゼロ値から最後の非ゼロ値までの要素を格納する。格納した項の数は、ベクトルの帯域幅と呼ばれる。狭い帯域幅は大きな記憶セービングに対応する。データへのアクセスを管理するために、データ要素の数およびデータの最初の索引だけが追跡される。このフォーマットを使用すれば、記憶装置要件が緩和され、依然としてデータに高速でランダムにアクセスすることができる。多くの問題が自分自身をバンド状マトリクスの形で表しているが、この場合、マトリクス内の各行に対してバンド状行フォーマットを使用することができる。このタイプのバンド状記憶装置は、ある行のバンド状態を他の行のバンド状態に対応させる方法について何らの要件も課さない。最適化したAho−Corasick状態マシン
本発明の一実施形態は、IDSで使用するために設計された最適化したAho−Corasick状態マシンである。この実施形態の場合には、状態表は、幾分違った方法で管
理され、それにより検索ルーチンをもっと最適な命令の混合体にコンパイルすることができる。最適化していないAho−Corasick状態マシン・アルゴリズムを使用する典型的なIDSにおいては、状態表内の各エントリは、その状態に対する遷移のベクトル、表のNFAバージョンに対する失敗ポインタ、およびその状態に対するマッチング・パターンのリストを有している。これらのものはすべて1つの構造内に含まれている。この実施形態の場合には、状態表は、状態遷移表、状態マッチング・パターン・リスト当たりのアレイ、およびNFAに対する各状態についての別々の失敗ポインタ・リストに分割される。すなわち、状態表は、3つの別々のデータ構造に分割される。状態表を3つの別々のデータ構造にこのように分割することにより性能が改善される。状態遷移表のサイズが小さくなり、それにより状態遷移表を、主メモリ内ではなく、メモリ・キャッシュ内で操作することができ、それにより状態マシン・アルゴリズムの性能全体が改善する。
スパース記憶最適化Aho−Corasick状態マシン
本発明の他の実施形態の場合には、最適化したAho−Corasick状態マシンでバンド状行スパース記憶フォーマットが使用される。バンド状行フォーマットに対する状態遷移表のベクトルを下記に示す。最初の語は記憶フォーマットを示す。第2の語は、この状態で任意のパターンが一致しているか否かを示す。第3の語は、その行のために格納している項の数を示す。最後に、第4の語は、第1の項の索引を示す。バンド状行フォーマットにより、エントリに直接索引アクセスすることができる。しかし、各索引動作の前に境界チェックを行わなければならない。このアルゴリズムのC言語の例は下記の通りである。
状態表の作成
図1は、本発明のある実施形態によるパターン・マッチング・アプリケーション内の状態マシン・アルゴリズムの状態表を作成するための方法100を示すフローチャートである。状態マシン・アルゴリズムは、例えば、Aho−Corasickアルゴリズムである。パターン・マッチング・アプリケーションは、侵入検出システム、パッシブ・ネットワーク監視装置、アクティブ・ネットワーク監視装置、プロトコル・アナライザ、および検索エンジンを含むが、含むことができるものはこれらに限定されない。
含む。これにより大文字/小文字を区別しないでパターン検索を行うことができる。
DFAのエントリは、状態遷移表に変換される。状態ベクトルは各状態に割り当てられる。この方法の他の実施形態の場合には、状態ベクトルの各要素は16ビットである。すべての有効な文字のリストの各要素に対して状態ベクトルの状態遷移要素が存在する。すべての有効な文字のリストの各要素の状態が、状態ベクトルの各要素内にコピーされる。この方法の他の実施形態の場合には、状態ベクトル内に256の状態遷移要素が存在する。
これらのフォーマットは全およびバンド状を含むが、含むことができるものはこれらに限定されない。第2の要素は、この状態ベクトルで任意のパターンが一致しているか否かを識別する。残りの256の要素は遷移要素である。
たはパターンと一致しないとして、それぞれ1または0を使用してブール・パターン・マッチ・フラグがセットされる。
テキスト・シーケンスでの検索パターンに対する検索
図2は、本発明のある実施形態によるパターン・マッチング・アプリケーション内の状態マシン・アルゴリズムの状態表を使用するテキスト・シーケンスで検索パターンを検索するための方法200を示すフローチャートである。状態マシン・アルゴリズムは、例えば、Aho−Corasickアルゴリズムである。パターン・マッチング・アプリケーションは、侵入検出システム、パッシブ・ネットワーク監視装置、アクティブ・ネットワーク監視装置、プロトコル・アナライザ、および検索エンジンを含むが、含むことができるものはこれらに限定されない。
ステップ230において、要素が非ゼロである場合には、マッチング・パターン・フラグに対する現在の状態ベクトルのパターン・マッチング要素がチェックされる。
ステップ250において、要素の値に対応する現在の状態ベクトルが選択される。
この方法の他の実施形態の場合には、フォーマットを識別する現在の状態ベクトルの要素がチェックされる。フォーマットがバンド状である場合には、文字がバンド内に位置するか否かの判定が行われる。この判定は、バンド内の多数の要素を識別する現在の状態ベクトルの要素を使用して行われる。現在の状態ベクトルの要素は、バンドの第1の要素の索引およびバンドの要素を識別する。文字がバンド内に位置している場合には、要素の値に対応する現在の状態ベクトルが選択される。文字がバンド内に位置していない場合には、現在の状態ベクトルは、初期状態にセットされる。
状態表
図3は、本発明のある実施形態によるパターン・マッチング・アプリケーションで使用する状態マシン・アルゴリズムのための状態表300の構成要素の略図である。状態表300は、状態遷移表320、状態マッチング・パターン・リスト毎のアレイ330、およびNFAに対する各状態に対する失敗ポインタ・リスト340を含む。状態遷移表320は、各状態に対する状態ベクトルを含む。状態表300の一実施形態の場合には、状態ベクトルはスパース・ベクトル・フォーマットに格納される。スパース・ベクトル・フォーマットは、圧縮スパース・ベクトル・フォーマット、スパース行フォーマット、およびバンド状行フォーマットを含むが、含むことができるものはこれらに限定されない。状態マシン・アルゴリズムは、例えば、Aho−Corasickアルゴリズムである。状態表300および状態マシン・アルゴリズムは、侵入検出システム、パッシブ・ネットワーク
監視装置、アクティブ・ネットワーク監視装置、プロトコル・アナライザ、および検索エンジンを含むが、その他のものも含むことができるパターン・マッチング・アプリケーションで使用される。
性能メトリックス
アルゴリズム的または理論的メトリックスは、ハードウェアまたはソフトウェアから独立しているアルゴリズムの考慮に基づいている。最悪の場合の挙動は、アルゴリズム的メトリックスの一例である。通常、マルチパターン検索エンジンの最悪の場合の性能は、パターンのサイズおよび検索中のデータの長さに比例する。本発明の一実施形態は、IDS用のO(n)アルゴリズムであり、検索速度の表示は、検索中のデータの長さnに比例する。
試験結果
Snortは例示としてのIDSである。Snortですでに使用した標準Aho−Corasickアルゴリズム、Snortで実施したフルマトリクス記憶装置を使用する
本発明のある実施形態、およびSnortで実施したバンド状行記憶装置を使用する本発明のある実施形態に対する試験結果を示す。
さなパターン・グループの場合、2.5倍に速度が改善した。また、フルマトリクス記憶装置を使用する本発明のある実施形態の処理速度が有意に増大する。実際に、バンド状行記憶装置を使用する本発明のある実施形態の性能は、最大のパターン・グループの場合に最も優れていた。3つすべてのコンパイラは、最大500パターンのすべてのパターン・グループ・サイズに対して、フルマトリクス記憶装置を使用する本発明のある実施形態が、バンド状行記憶装置を使用する本発明のある実施形態より高速であることを示した。1,000パターンの場合、3つすべてのコンパイラの場合、バンド状行記憶装置を使用する本発明のある実施形態の性能は、フルマトリクス記憶装置を使用する本発明のある実施形態の性能より優れていた。
1520は、バンド状行記憶装置を使用する本発明のある実施形態の32ビット・バージョンを示す。
ルを選択した。試験は下記のように行った。各ウェブ・ページ要求の最初の300バイトをチェックするようにSnortを構成した。これが典型的なSnortの構成方法である。ユーザの処理時間を記録しながら、Unix時間コマンドを使用し、ファイルを通常の方法で処理した。次に、サーバから要求された場合に、各ウェブ・ページを完全にチェックするようにSnortを構成した。この場合も、Snortを実行し、ユーザ処理時間を記録した。時間の違いは、余分なデータをパターン・マッチするために必要な正味のパターン・マッチング時間を表していた。この試験は絶対的な性能を測定しなかった。この試験は、付加データの処理の際の各検索エンジンの相対性能の違いを示した。
Claims (21)
- 主メモリとプロセッサを備えるコンピュータが、パターン・マッチング・アプリケーション内の状態マシン・アルゴリズムの状態表を作成するための作成方法であって、前記プロセッサは、メモリ・キャッシュを備え、前記作成方法は、
前記コンピュータが、少なくとも1つの検索パターンとしての検索テキストを、前記プロセッサに入力するステップ(110)と;
前記プロセッサが、検索パターンtrieを生成するパターン生成ステップ(120)であって、前記検索パターンtrieは、前記状態マシン・アルゴリズムの状態それぞれに対するすべて有効な文字の有効文字リストからなることと;
前記プロセッサが、前記検索パターンtrieに少なくとも1つの前記検索パターンを付加するパターン付加ステップ(130)と;
前記プロセッサが、前記検索パターンtrieから非決定性有限オートマトンを作成する非決定性ステップ(140)と;
前記プロセッサが、前記非決定性有限オートマトンから決定性有限オートマトンを作成する決定性ステップ(150)と;
前記プロセッサが、前記決定性有限オートマトンを、状態遷移表(320)と、状態マッチング・パターン・リスト毎のアレイ(330)と、前記非決定性有限オートマトンの各状態に対する別々の失敗ポインタ・リスト(340)とを有する別々のデータ構造に変換する変換ステップ(160)であって、前記状態マッチング・パターン・リスト毎のアレイ(330)は、各状態におけるマッチングパターンを有するリストを格納するアレイであり、失敗ポインタは、状態遷移が失敗した場合の遷移先へのポインタであり、前記非決定性有限オートマトンの各状態に対する別々の失敗ポインタ・リスト(340)は、前記非決定性有限オートマトンの各状態からの状態遷移が失敗した場合の前記失敗ポインタを格納するリストであり、前記データ構造は、前記状態遷移表(320)が前記主メモリ内ではなく前記メモリ・キャッシュ内で操作されるように構成されることと
を有し、
前記プロセッサは、前記プロセッサにテキスト・シーケンスが入力された場合に、前記状態遷移表(320)が前記主メモリ内ではなく、前記メモリ・キャッシュ内で操作されることによって、前記検索パターンを検索するように構成されることを特徴とする、作成方法。 - 前記有効文字リストの要素はそれぞれ、有効な文字と、次の有効な状態とを有し、
少なくとも1つの前記検索パターンに一度に1文字が付加され、
前記検索パターンtrieは、リスト・フォーマットの前記非決定性有限オートマトンであるリストフォーマット非決定性有限オートマトンに置換され、
前記リストフォーマット非決定性有限オートマトンは、前記リスト・フォーマットの前記決定性有限オートマトンに置換される、
請求項1記載の作成方法。 - 前記作成方法はさらに、前記プロセッサが、少なくとも1つの前記検索パターンの文字を大文字に変換するステップを有する、
請求項1記載の作成方法。 - 前記すべての有効な文字は、すべての有効な大文字である、
請求項1記載の作成方法。 - 前記状態マシン・アルゴリズムは、Aho−Corasickアルゴリズムである、
請求項1記載の作成方法。 - 前記パターン・マッチング・アプリケーションは、侵入検出システム、パッシブ・ネットワーク監視装置、アクティブ・ネットワーク監視装置、プロトコル・アナライザ、および検索エンジンのうちの1つを有する、
請求項1記載の作成方法。 - 前記変換ステップ(160)は、
状態それぞれに状態ベクトルを割り当てるステップであって、前記有効文字リストの要素それぞれに対する前記状態ベクトルは、状態遷移要素を有することと;
前記有効文字リストの要素それぞれの次の有効な状態を、前記状態遷移要素それぞれにコピーするステップと
を有する、
請求項1記載の作成方法。 - 前記状態ベクトルは、256の前記状態遷移要素を有する、
請求項7記載の作成方法。 - 前記状態遷移要素は、16ビットである、
請求項7記載の作成方法。 - 前記状態ベクトルの要素は、前記状態ベクトルのフォーマットを識別するために使用される、
請求項7記載の作成方法。 - 前記状態ベクトルのフォーマットは、全ベクトル・フォーマットであって、
前記全ベクトル・フォーマットは、各状態からの遷移先のリストを圧縮しないフォーマットである、
請求項10記載の作成方法。 - 前記状態ベクトルの要素は、前記状態ベクトルがマッチング・パターン状態を有するか否か識別するために使用される、
請求項7記載の作成方法。 - 前記変換ステップ(160)は、
前記有効文字リストからの第1の非ゼロの次の有効な状態から、前記有効文字リストからの最後の非ゼロの次の有効な状態までの要素のリストを、バンドとして定義するステップと;
各状態に対して1つの状態ベクトルを割り当てるステップであって、前記バンドの要素それぞれに対する前記状態ベクトルは、状態遷移要素を有することと;
前記第1の非ゼロの次の有効な状態の索引を識別するために、前記状態ベクトルの要素を生成するステップと;
前記バンド内で多数の要素を識別するために前記状態ベクトルの要素を生成するステップと;
前記バンドの要素それぞれの次の有効な状態を、前記状態遷移要素それぞれにコピーするステップと
を有する、
請求項1記載の作成方法。 - 前記状態ベクトルの要素はそれぞれ、16ビットである、
請求項13記載の作成方法。 - 前記状態ベクトルの要素は、前記状態ベクトルのフォーマットを識別するために使用される、
請求項13記載の作成方法。 - 前記状態ベクトルのフォーマットは、バンド状行フォーマットであり、
前記バンド状行フォーマットは、第1の非ゼロ値から最後の非ゼロ値までの要素と、前記要素の数と、前記非ゼロ値の数とを有する、
請求項15記載の作成方法。 - 前記状態ベクトルの要素は、前記状態ベクトルがマッチング・パターン状態を有するか否かを識別するために使用される、
請求項16記載の作成方法。 - パターン・マッチング・アプリケーション内の状態マシン・アルゴリズムの状態表を使用してテキスト・シーケンス内の検索パターンを、主メモリとプロセッサとを備えるコンピュータが、検索するための検索方法であって、前記状態表は、状態遷移表(320)と、状態マッチング・パターン・リスト毎のアレイ(330)と、非決定性有限オートマトンの各状態に対する別々の失敗ポインタ・リスト(340)とを有する別々のデータ構造からなり、前記状態マッチング・パターン・リスト毎のアレイ(330)は、各状態におけるマッチングパターンのリストを格納するアレイであり、失敗ポインタは、状態遷移が失敗した場合の遷移先へのポインタであり、前記非決定性有限オートマトンの各状態に対する別々の失敗ポインタ・リスト(340)は、前記非決定性有限オートマトンの各状態からの状態遷移が失敗した場合の前記失敗ポインタを格納するリストであり、前記プロセッサは、メモリ・キャッシュを備え、前記検索方法は、
前記プロセッサが、前記テキスト・シーケンスから第1の文字を読出す第1文字読出ステップ(210)と;
前記プロセッサが、前記状態遷移表(320)の現在の状態ベクトルの要素を読出す要素読出ステップ(220)であって、現在の前記状態ベクトルの要素は、前記第1の文字に対応し、前記状態遷移表(320)は、前記主メモリ内ではなく、前記メモリ・キャッシュ内で操作されることと;
現在の前記状態ベクトルの要素が非ゼロの値である場合に、マッチング・パターン・フ
ラグのために、前記プロセッサが、現在の前記状態ベクトルのパターン・マッチング要素をチェックするチェックステップ(230)と;
前記マッチング・パターン・フラグがセットされている場合に、侵入を検出するために、前記プロセッサが、侵入検出システムにおける前記テキスト・シーケンスからのパターン・マッチングを処理する処理ステップ(240)と;
前記プロセッサが、現在の前記状態ベクトルの要素の非ゼロの値に対応する現在の前記状態ベクトルを選択する選択ステップ(250)と;
前記プロセッサが、前記第1の文字の次の文字である第2の文字を前記テキスト・シーケンスから読出す第2文字読出ステップ(260)と;
前記プロセッサが、現在の前記状態ベクトルの要素をチェックすることによって、現在の前記状態ベクトルのフォーマットを識別する識別ステップと
を有し、
バンド状行フォーマットを、第1の非ゼロ値から最後の非ゼロ値までの要素と、現在の前記状態ベクトルの要素の数と、前記第1の非ゼロ値から前記最後の非ゼロ値までの要素の数とを有する前記状態ベクトルのフォーマットとすると、
前記検索方法はさらに、前記状態ベクトルのフォーマットが前記バンド状行フォーマットである場合には、バンド内の要素の数を識別する現在の前記状態ベクトルの要素と、前記バンドの第1の要素の索引を識別する現在の前記状態ベクトルの要素と、前記バンドの要素とから、前記文字がバンド内に位置するか否か、前記プロセッサが、判定するステップと;
前記文字が前記バンド内に位置している場合には、現在の前記状態ベクトルの要素の非ゼロの値に対応する現在の前記状態ベクトルを、前記プロセッサが、選択するステップと;
前記文字が前記バンド内に位置していない場合には、前記プロセッサが、現在の前記状態ベクトルを初期状態にセットするステップと
を有し、
全ベクトル・フォーマットを、各状態からの遷移先のリストを圧縮しないフォーマットとすると、
前記検索方法はさらに、前記状態ベクトルのフォーマットが前記バンド状行フォーマットではない場合には、前記プロセッサが、前記全ベクトル・フォーマットにしたがって前記文字を操作するステップを有することを特徴とする、検索方法。 - 前記検索方法はさらに、
前記要素読出ステップ(220)の前に、前記プロセッサが、前記第1の文字を大文字に変換するステップと;
前記第2文字読出ステップ(260)の前に、前記プロセッサが、前記第2の文字を大文字に変換するステップとを有する、
請求項18記載の検索方法。 - 前記パターン・マッチングの大文字と小文字を区別するバージョンを、第1バージョンとし、
検索パターンの大文字と小文字を区別するバージョンを、第2バージョンとすると、
前記検索方法はさらに、
前記マッチング・パターン・フラグがセットされている場合に、前記プロセッサが、前記第1バージョンを、前記第2バージョンと比較するステップと;
前記マッチング・パターン・フラグがセットされ且つ前記第1バージョンが前記第2バージョンに一致する場合に、前記プロセッサが、前記第1バージョンをログするステップと
を有する、
請求項19記載の検索方法。 - 前記状態マシン・アルゴリズムは、Aho−Corasickアルゴリズムである、
請求項18記載の検索方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/898,220 | 2004-07-26 | ||
US10/898,220 US7539681B2 (en) | 2004-07-26 | 2004-07-26 | Methods and systems for multi-pattern searching |
PCT/US2005/025584 WO2006020290A2 (en) | 2004-07-26 | 2005-07-20 | Methods and systems for multi-pattern searching |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008507789A JP2008507789A (ja) | 2008-03-13 |
JP4855400B2 true JP4855400B2 (ja) | 2012-01-18 |
Family
ID=35658488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007523640A Expired - Fee Related JP4855400B2 (ja) | 2004-07-26 | 2005-07-20 | マルチパターン検索のための方法およびシステム |
Country Status (5)
Country | Link |
---|---|
US (3) | US7539681B2 (ja) |
EP (1) | EP1779268A4 (ja) |
JP (1) | JP4855400B2 (ja) |
CA (1) | CA2572360A1 (ja) |
WO (1) | WO2006020290A2 (ja) |
Families Citing this family (97)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8010469B2 (en) * | 2000-09-25 | 2011-08-30 | Crossbeam Systems, Inc. | Systems and methods for processing data flows |
US9525696B2 (en) | 2000-09-25 | 2016-12-20 | Blue Coat Systems, Inc. | Systems and methods for processing data flows |
US9800608B2 (en) | 2000-09-25 | 2017-10-24 | Symantec Corporation | Processing data flows with a data flow processor |
US20110213869A1 (en) * | 2000-09-25 | 2011-09-01 | Yevgeny Korsunsky | Processing data flows with a data flow processor |
US20100042565A1 (en) * | 2000-09-25 | 2010-02-18 | Crossbeam Systems, Inc. | Mezzazine in-depth data analysis facility |
US20020165947A1 (en) * | 2000-09-25 | 2002-11-07 | Crossbeam Systems, Inc. | Network application apparatus |
US20110219035A1 (en) * | 2000-09-25 | 2011-09-08 | Yevgeny Korsunsky | Database security via data flow processing |
US20070192863A1 (en) * | 2005-07-01 | 2007-08-16 | Harsh Kapoor | Systems and methods for processing data flows |
US20110214157A1 (en) * | 2000-09-25 | 2011-09-01 | Yevgeny Korsunsky | Securing a network with data flow processing |
US7737134B2 (en) * | 2002-03-13 | 2010-06-15 | The Texas A & M University System | Anticancer agents and use |
US7801980B1 (en) | 2003-05-12 | 2010-09-21 | Sourcefire, Inc. | Systems and methods for determining characteristics of a network |
US8321512B2 (en) * | 2003-08-22 | 2012-11-27 | Geobytes, Inc. | Method and software product for identifying unsolicited emails |
GB0320176D0 (en) * | 2003-08-28 | 2003-10-01 | Syngenta Participations Ag | Avermectins and avermectin monosaccharides substitued in the 4'-and 4"-positionhaving pesticidal properties |
US8176051B2 (en) * | 2004-05-27 | 2012-05-08 | International Business Machines Corporation | Search via fast case insensitive ASCII tree |
US7539681B2 (en) * | 2004-07-26 | 2009-05-26 | Sourcefire, Inc. | Methods and systems for multi-pattern searching |
US7600257B2 (en) | 2004-10-13 | 2009-10-06 | Sonicwall, Inc. | Method and an apparatus to perform multiple packet payloads analysis |
US7835361B1 (en) | 2004-10-13 | 2010-11-16 | Sonicwall, Inc. | Method and apparatus for identifying data patterns in a file |
JP4535130B2 (ja) * | 2004-12-09 | 2010-09-01 | 三菱電機株式会社 | 文字列照合装置および文字列照合プログラム |
US20060259498A1 (en) * | 2005-05-11 | 2006-11-16 | Microsoft Corporation | Signature set content matching |
US7979368B2 (en) * | 2005-07-01 | 2011-07-12 | Crossbeam Systems, Inc. | Systems and methods for processing data flows |
US20080229415A1 (en) * | 2005-07-01 | 2008-09-18 | Harsh Kapoor | Systems and methods for processing data flows |
US7487150B2 (en) * | 2005-07-02 | 2009-02-03 | International Business Machines Corporation | Method for matching pattern-based data |
FR2892847B1 (fr) * | 2005-11-03 | 2007-12-21 | St Microelectronics Sa | Procede de memorisation de donnees dans un circuit de memoire pour automate de reconnaissance de caracteres de type aho-corasick et citcuit de memorisation correspondant. |
US7934255B1 (en) * | 2005-11-08 | 2011-04-26 | Nvidia Corporation | Apparatus, system, and method for offloading packet classification |
US7818806B1 (en) * | 2005-11-08 | 2010-10-19 | Nvidia Corporation | Apparatus, system, and method for offloading pattern matching scanning |
US7733803B2 (en) * | 2005-11-14 | 2010-06-08 | Sourcefire, Inc. | Systems and methods for modifying network map attributes |
US7805392B1 (en) | 2005-11-29 | 2010-09-28 | Tilera Corporation | Pattern matching in a multiprocessor environment with finite state automaton transitions based on an order of vectors in a state transition table |
US8010481B2 (en) * | 2006-03-07 | 2011-08-30 | The Regents Of The University Of California | Pattern matching technique for high throughput network processing |
GB2437560A (en) * | 2006-04-28 | 2007-10-31 | Roke Manor Research | Constructing Aho Corasick trees |
US7877401B1 (en) * | 2006-05-24 | 2011-01-25 | Tilera Corporation | Pattern matching |
US7725510B2 (en) * | 2006-08-01 | 2010-05-25 | Alcatel-Lucent Usa Inc. | Method and system for multi-character multi-pattern pattern matching |
US8145650B2 (en) * | 2006-08-18 | 2012-03-27 | Stanley Hyduke | Network of single-word processors for searching predefined data in transmission packets and databases |
US8191056B2 (en) * | 2006-10-13 | 2012-05-29 | International Business Machines Corporation | Sparse vectorization without hardware gather/scatter |
KR100832539B1 (ko) | 2006-12-06 | 2008-05-27 | 한국전자통신연구원 | 다중패턴을 지원하지 않는 패턴보드를 이용한 다중패턴검색 방법 및 장치 |
US7630982B2 (en) | 2007-02-24 | 2009-12-08 | Trend Micro Incorporated | Fast identification of complex strings in a data stream |
US8863286B1 (en) | 2007-06-05 | 2014-10-14 | Sonicwall, Inc. | Notification for reassembly-free file scanning |
US7991723B1 (en) | 2007-07-16 | 2011-08-02 | Sonicwall, Inc. | Data pattern analysis using optimized deterministic finite automaton |
US7805393B1 (en) | 2007-07-30 | 2010-09-28 | Netlogic Microsystems, Inc. | Assigning encoded state values to a search tree according to failure chains |
US7610269B1 (en) * | 2007-07-30 | 2009-10-27 | Netlogic Microsystems, Inc. | Method and apparatus for constructing a failure tree from a search tree |
WO2009052039A1 (en) * | 2007-10-16 | 2009-04-23 | University Of Florida Research Foundation, Inc. | Efficient intrusion detection |
CN101499064A (zh) * | 2008-02-01 | 2009-08-05 | 华为技术有限公司 | 建立模式匹配状态机的方法及装置 |
US7949679B2 (en) * | 2008-03-05 | 2011-05-24 | International Business Machines Corporation | Efficient storage for finite state machines |
CN101551803A (zh) * | 2008-03-31 | 2009-10-07 | 华为技术有限公司 | 一种建立模式匹配状态机、模式识别的方法和装置 |
US8612723B2 (en) * | 2008-05-06 | 2013-12-17 | L-3 Communications Integrated Systems, L.P. | System and method for storing a sparse matrix |
US8620845B2 (en) * | 2008-09-24 | 2013-12-31 | Timothy John Stoakes | Identifying application metadata in a backup stream |
US8813221B1 (en) | 2008-09-25 | 2014-08-19 | Sonicwall, Inc. | Reassembly-free deep packet inspection on multi-core hardware |
US8272055B2 (en) * | 2008-10-08 | 2012-09-18 | Sourcefire, Inc. | Target-based SMB and DCE/RPC processing for an intrusion detection system or intrusion prevention system |
US20100318980A1 (en) * | 2009-06-13 | 2010-12-16 | Microsoft Corporation | Static program reduction for complexity analysis |
US9769149B1 (en) | 2009-07-02 | 2017-09-19 | Sonicwall Inc. | Proxy-less secure sockets layer (SSL) data inspection |
JP5090408B2 (ja) | 2009-07-22 | 2012-12-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ネットワーク通信において送信データの宛先を動的に制御する方法及び機器 |
US8321435B2 (en) * | 2009-08-12 | 2012-11-27 | Apple Inc. | Quick find for data fields |
US9141507B2 (en) * | 2009-12-23 | 2015-09-22 | Microsoft Technology Licensing, Llc | Visualization of states of a process |
JP5809238B2 (ja) | 2010-04-16 | 2015-11-10 | シスコ テクノロジー,インコーポレイテッド | 準リアルタイムネットワーク攻撃検出のためのシステムおよび方法、ならびに検出ルーティングによる統合検出のためのシステムおよび方法 |
US20130204582A1 (en) * | 2010-05-17 | 2013-08-08 | Dh Technologies Development Pte. Ltd | Systems and Methods for Feature Detection in Mass Spectrometry Using Singular Spectrum Analysis |
US8433790B2 (en) | 2010-06-11 | 2013-04-30 | Sourcefire, Inc. | System and method for assigning network blocks to sensors |
US8671182B2 (en) | 2010-06-22 | 2014-03-11 | Sourcefire, Inc. | System and method for resolving operating system or service identity conflicts |
US8904352B2 (en) * | 2010-06-23 | 2014-12-02 | Sap Se | Systems and methods for processing source code during debugging operations |
US8589405B1 (en) | 2010-07-16 | 2013-11-19 | Netlogic Microsystems, Inc. | Token stitcher for a content search system having pipelined engines |
US8700593B1 (en) * | 2010-07-16 | 2014-04-15 | Netlogic Microsystems, Inc. | Content search system having pipelined engines and a token stitcher |
US8572106B1 (en) | 2010-07-16 | 2013-10-29 | Netlogic Microsystems, Inc. | Memory management in a token stitcher for a content search system having pipelined engines |
JP5496853B2 (ja) | 2010-10-29 | 2014-05-21 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 構造化文書を分類するためのルールを生成するための方法、並びにそのコンピュータ・プログラム及びコンピュータ |
US8862603B1 (en) | 2010-11-03 | 2014-10-14 | Netlogic Microsystems, Inc. | Minimizing state lists for non-deterministic finite state automatons |
US8601034B2 (en) | 2011-03-11 | 2013-12-03 | Sourcefire, Inc. | System and method for real time data awareness |
US8990259B2 (en) * | 2011-06-24 | 2015-03-24 | Cavium, Inc. | Anchored patterns |
CN102609450B (zh) * | 2012-01-10 | 2014-07-23 | 顾乃杰 | 一种按字长匹配的多模式串匹配方法 |
US9280600B2 (en) * | 2012-03-20 | 2016-03-08 | Yissum Research Development Company Of The Hebrew University Of Jerusalem Ltd. | Method and system for decompression-free inspection of shared dictionary compressed traffic over HTTP |
US9098620B2 (en) * | 2012-05-12 | 2015-08-04 | Palo Alto Research Center Incorporated | System and method for parallel model checking utilizing parallel structured duplicate detection |
US20150161266A1 (en) * | 2012-06-28 | 2015-06-11 | Google Inc. | Systems and methods for more efficient source code searching |
US9389841B2 (en) | 2012-07-18 | 2016-07-12 | Micron Technology, Inc. | Methods and systems for using state vector data in a state machine engine |
US8943085B2 (en) * | 2012-10-05 | 2015-01-27 | Lsi Corporation | Start pointer tracking in NFAs |
US9558224B2 (en) * | 2014-01-09 | 2017-01-31 | Netronome Systems, Inc. | Automaton hardware engine employing memory-efficient transition table indexing |
US10362093B2 (en) * | 2014-01-09 | 2019-07-23 | Netronome Systems, Inc. | NFA completion notification |
US9465651B2 (en) * | 2014-01-09 | 2016-10-11 | Netronome Systems, Inc. | Transactional memory having local CAM and NFA resources |
US9417656B2 (en) * | 2014-01-09 | 2016-08-16 | Netronome Systems, Inc. | NFA byte detector |
US9405910B2 (en) * | 2014-06-02 | 2016-08-02 | Shape Security, Inc. | Automatic library detection |
US10885089B2 (en) * | 2015-08-21 | 2021-01-05 | Cortical.Io Ag | Methods and systems for identifying a level of similarity between a filtering criterion and a data item within a set of streamed documents |
US10496642B2 (en) * | 2014-10-03 | 2019-12-03 | The Regents Of The University Of Michigan | Querying input data |
US10339141B2 (en) | 2014-10-03 | 2019-07-02 | The Regents Of The University Of Michigan | Detecting at least one predetermined pattern in stream of symbols |
US9760538B2 (en) * | 2014-12-22 | 2017-09-12 | Palo Alto Research Center Incorporated | Computer-implemented system and method for efficient sparse matrix representation and processing |
US9602525B2 (en) | 2015-02-27 | 2017-03-21 | Cisco Technology, Inc. | Classification of malware generated domain names |
CN106067039B (zh) * | 2016-05-30 | 2019-01-29 | 桂林电子科技大学 | 基于决策树剪枝的模式匹配方法 |
CN106130762A (zh) * | 2016-06-23 | 2016-11-16 | 昆山九华电子设备厂 | 一种基于有穷自动机的网络训练综合分析方法 |
US10572221B2 (en) | 2016-10-20 | 2020-02-25 | Cortical.Io Ag | Methods and systems for identifying a level of similarity between a plurality of data representations |
CN108021569A (zh) * | 2016-11-01 | 2018-05-11 | 中国移动通信有限公司研究院 | Ac自动机的构建和中文多模式匹配方法及相关装置 |
CN107229759B (zh) * | 2017-07-27 | 2020-08-11 | 深圳市乐宜科技有限公司 | 一种字符串模式匹配的方法 |
US9967272B1 (en) | 2017-12-05 | 2018-05-08 | Redberry Systems, Inc. | Real-time regular expression search engine |
US10033750B1 (en) | 2017-12-05 | 2018-07-24 | Redberry Systems, Inc. | Real-time regular expression search engine |
CN108304467B (zh) * | 2017-12-27 | 2021-08-10 | 中国银联股份有限公司 | 用于文本间匹配的方法 |
US11418522B1 (en) * | 2018-01-22 | 2022-08-16 | United Services Automobile Association (Usaa) | Systems and methods for detecting keyboard characteristics |
CN110442321B (zh) * | 2019-07-19 | 2021-05-11 | 南京芯驰半导体科技有限公司 | 一种预取fifo电路及方法 |
US11194840B2 (en) | 2019-10-14 | 2021-12-07 | Microsoft Technology Licensing, Llc | Incremental clustering for enterprise knowledge graph |
US11709878B2 (en) | 2019-10-14 | 2023-07-25 | Microsoft Technology Licensing, Llc | Enterprise knowledge graph |
US11216492B2 (en) * | 2019-10-31 | 2022-01-04 | Microsoft Technology Licensing, Llc | Document annotation based on enterprise knowledge graph |
US11734332B2 (en) | 2020-11-19 | 2023-08-22 | Cortical.Io Ag | Methods and systems for reuse of data item fingerprints in generation of semantic maps |
US11782983B1 (en) * | 2020-11-27 | 2023-10-10 | Amazon Technologies, Inc. | Expanded character encoding to enhance regular expression filter capabilities |
KR102271489B1 (ko) * | 2020-12-04 | 2021-07-02 | (주)소만사 | 정규표현식 패턴의 탐지를 위한 아호코라식 오토마타 구축 장치 및 방법 |
US20220207085A1 (en) * | 2020-12-29 | 2022-06-30 | Imperva, Inc. | Data classification technology |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6244878A (ja) * | 1985-08-23 | 1987-02-26 | Hitachi Ltd | 文書フアイリングシステム |
JPH07129369A (ja) * | 1993-10-29 | 1995-05-19 | Matsushita Electric Ind Co Ltd | 有限状態機械作成方法とパターン照合機械作成方法とこ れらを変形する方法および駆動方法 |
JPH0887528A (ja) * | 1995-09-11 | 1996-04-02 | Hitachi Ltd | 文書ファイリングシステム |
JPH1069493A (ja) * | 1996-08-29 | 1998-03-10 | Matsushita Electric Ind Co Ltd | 辞書作成装置と語切り出し装置 |
JPH10105576A (ja) * | 1996-06-27 | 1998-04-24 | Fujitsu Ltd | スパースな状態遷移表に基づく複数記号列の照合装置および方法 |
Family Cites Families (143)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59195179A (ja) | 1983-04-20 | 1984-11-06 | Uro Denshi Kogyo Kk | 侵入警報器 |
US4550436A (en) * | 1983-07-26 | 1985-10-29 | At&T Bell Laboratories | Parallel text matching methods and apparatus |
JPH0786537B2 (ja) | 1987-09-26 | 1995-09-20 | 松下電工株式会社 | 人体検出装置 |
US4857912A (en) | 1988-07-27 | 1989-08-15 | The United States Of America As Represented By The Secretary Of The Navy | Intelligent security assessment system |
JP2790466B2 (ja) * | 1988-10-18 | 1998-08-27 | 株式会社日立製作所 | 文字列検索方法及び装置 |
US5193192A (en) * | 1989-12-29 | 1993-03-09 | Supercomputer Systems Limited Partnership | Vectorized LR parsing of computer programs |
US5404488A (en) | 1990-09-26 | 1995-04-04 | Lotus Development Corporation | Realtime data feed engine for updating an application with the most currently received data from multiple data feeds |
US5222081A (en) * | 1991-06-28 | 1993-06-22 | Universal Data Systems, Inc. | Method of performing an autobaud function using a state flow machine |
US5430842A (en) | 1992-05-29 | 1995-07-04 | Hewlett-Packard Company | Insertion of network data checksums by a network adapter |
US5497463A (en) | 1992-09-25 | 1996-03-05 | Bull Hn Information Systems Inc. | Ally mechanism for interconnecting non-distributed computing environment (DCE) and DCE systems to operate in a network system |
GB9326476D0 (en) | 1993-12-24 | 1994-02-23 | Newbridge Networks Corp | Network |
US5459841A (en) * | 1993-12-28 | 1995-10-17 | At&T Corp. | Finite state machine with minimized vector processing |
US5666293A (en) * | 1994-05-27 | 1997-09-09 | Bell Atlantic Network Services, Inc. | Downloading operating system software through a broadcast channel |
JPH09198398A (ja) * | 1996-01-16 | 1997-07-31 | Fujitsu Ltd | パターン検索装置 |
US5870554A (en) | 1996-04-01 | 1999-02-09 | Advanced Micro Devices, Inc. | Server selection method where a client selects a server according to address, operating system and found frame for remote booting |
US5995963A (en) * | 1996-06-27 | 1999-11-30 | Fujitsu Limited | Apparatus and method of multi-string matching based on sparse state transition list |
US5901307A (en) | 1996-07-22 | 1999-05-04 | International Business Machines Corporation | Processor having a selectively configurable branch prediction unit that can access a branch prediction utilizing bits derived from a plurality of sources |
US5796942A (en) | 1996-11-21 | 1998-08-18 | Computer Associates International, Inc. | Method and apparatus for automated network-wide surveillance and security breach intervention |
US6477648B1 (en) | 1997-03-23 | 2002-11-05 | Novell, Inc. | Trusted workstation in a networked client/server computing system |
US5999937A (en) * | 1997-06-06 | 1999-12-07 | Madison Information Technologies, Inc. | System and method for converting data between data sets |
US5919257A (en) | 1997-08-08 | 1999-07-06 | Novell, Inc. | Networked workstation intrusion detection system |
US6321337B1 (en) | 1997-09-09 | 2001-11-20 | Sanctum Ltd. | Method and system for protecting operations of trusted internal networks |
US5987473A (en) * | 1997-09-09 | 1999-11-16 | Beologic A/S | Interactive configuration via network |
US6002427A (en) | 1997-09-15 | 1999-12-14 | Kipust; Alan J. | Security system with proximity sensing for an electronic device |
US6141686A (en) | 1998-03-13 | 2000-10-31 | Deterministic Networks, Inc. | Client-side application-classifier gathering network-traffic statistics and application and user names using extensible-service provider plugin for policy-based network control |
JP3364207B2 (ja) | 1998-04-27 | 2003-01-08 | 株式会社デジタル | 制御システム、表示装置、および、データ伝送方法、並びに、そのプログラムが記録された記録媒体 |
EP0954139B1 (en) * | 1998-05-01 | 2005-04-06 | Hewlett-Packard Company, A Delaware Corporation | Methods of altering dynamic decision trees |
US6334121B1 (en) | 1998-05-04 | 2001-12-25 | Virginia Commonwealth University | Usage pattern based user authenticator |
US6684332B1 (en) * | 1998-06-10 | 2004-01-27 | International Business Machines Corporation | Method and system for the exchange of digitally signed objects over an insecure network |
US6324656B1 (en) | 1998-06-30 | 2001-11-27 | Cisco Technology, Inc. | System and method for rules-driven multi-phase network vulnerability assessment |
US6973455B1 (en) | 1999-03-03 | 2005-12-06 | Emc Corporation | File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator |
US6590885B1 (en) | 1998-07-10 | 2003-07-08 | Malibu Networks, Inc. | IP-flow characterization in a wireless point to multi-point (PTMP) transmission system |
US6711127B1 (en) * | 1998-07-31 | 2004-03-23 | General Dynamics Government Systems Corporation | System for intrusion detection and vulnerability analysis in a telecommunications signaling network |
US6343362B1 (en) | 1998-09-01 | 2002-01-29 | Networks Associates, Inc. | System and method providing custom attack simulation language for testing networks |
US6219786B1 (en) | 1998-09-09 | 2001-04-17 | Surfcontrol, Inc. | Method and system for monitoring and controlling network access |
US6321338B1 (en) | 1998-11-09 | 2001-11-20 | Sri International | Network surveillance |
US6499107B1 (en) | 1998-12-29 | 2002-12-24 | Cisco Technology, Inc. | Method and system for adaptive network security using intelligent packet analysis |
US6415321B1 (en) * | 1998-12-29 | 2002-07-02 | Cisco Technology, Inc. | Domain mapping method and system |
US6393474B1 (en) | 1998-12-31 | 2002-05-21 | 3Com Corporation | Dynamic policy management apparatus and method using active network devices |
US6487666B1 (en) * | 1999-01-15 | 2002-11-26 | Cisco Technology, Inc. | Intrusion detection signature analysis using regular expressions and logical operators |
US6754826B1 (en) | 1999-03-31 | 2004-06-22 | International Business Machines Corporation | Data processing system and method including a network access connector for limiting access to the network |
US6539381B1 (en) * | 1999-04-21 | 2003-03-25 | Novell, Inc. | System and method for synchronizing database information |
US6587876B1 (en) | 1999-08-24 | 2003-07-01 | Hewlett-Packard Development Company | Grouping targets of management policies |
US7073198B1 (en) | 1999-08-26 | 2006-07-04 | Ncircle Network Security, Inc. | Method and system for detecting a vulnerability in a network |
US7310688B1 (en) | 1999-08-30 | 2007-12-18 | Ciena Corporation | Relative addressing for network elements |
US7065657B1 (en) | 1999-08-30 | 2006-06-20 | Symantec Corporation | Extensible intrusion detection system |
US6789202B1 (en) | 1999-10-15 | 2004-09-07 | Networks Associates Technology, Inc. | Method and apparatus for providing a policy-driven intrusion detection system |
US6678824B1 (en) | 1999-11-02 | 2004-01-13 | Agere Systems Inc. | Application usage time limiter |
US6678734B1 (en) | 1999-11-13 | 2004-01-13 | Ssh Communications Security Ltd. | Method for intercepting network packets in a computing device |
US6957348B1 (en) | 2000-01-10 | 2005-10-18 | Ncircle Network Security, Inc. | Interoperability of vulnerability and intrusion detection systems |
US7315801B1 (en) * | 2000-01-14 | 2008-01-01 | Secure Computing Corporation | Network security modeling system and method |
US6851061B1 (en) | 2000-02-16 | 2005-02-01 | Networks Associates, Inc. | System and method for intrusion detection data collection using a network protocol stack multiplexor |
CA2375206A1 (en) | 2000-03-27 | 2001-10-04 | Network Security Systems, Inc. | Internet/network security method and system for checking security of a client from a remote facility |
JP2001285400A (ja) * | 2000-03-29 | 2001-10-12 | Kddi Corp | トラヒック統計情報収集方法 |
US7134141B2 (en) | 2000-06-12 | 2006-11-07 | Hewlett-Packard Development Company, L.P. | System and method for host and network based intrusion detection and response |
US8661539B2 (en) | 2000-07-10 | 2014-02-25 | Oracle International Corporation | Intrusion threat detection |
US20020087716A1 (en) | 2000-07-25 | 2002-07-04 | Shakeel Mustafa | System and method for transmitting customized multi priority services on a single or multiple links over data link layer frames |
US6772196B1 (en) | 2000-07-27 | 2004-08-03 | Propel Software Corp. | Electronic mail filtering system and methods |
US6766320B1 (en) | 2000-08-24 | 2004-07-20 | Microsoft Corporation | Search engine with natural language-based robust parsing for user query and relevance feedback learning |
US7181769B1 (en) | 2000-08-25 | 2007-02-20 | Ncircle Network Security, Inc. | Network security system having a device profiler communicatively coupled to a traffic monitor |
US7032114B1 (en) | 2000-08-30 | 2006-04-18 | Symantec Corporation | System and method for using signatures to detect computer intrusions |
US20020035639A1 (en) | 2000-09-08 | 2002-03-21 | Wei Xu | Systems and methods for a packet director |
US20070192863A1 (en) * | 2005-07-01 | 2007-08-16 | Harsh Kapoor | Systems and methods for processing data flows |
US20020066034A1 (en) | 2000-10-24 | 2002-05-30 | Schlossberg Barry J. | Distributed network security deception system |
US7054930B1 (en) * | 2000-10-26 | 2006-05-30 | Cisco Technology, Inc. | System and method for propagating filters |
US20020083344A1 (en) | 2000-12-21 | 2002-06-27 | Vairavan Kannan P. | Integrated intelligent inter/intra networking device |
US6792269B2 (en) | 2000-12-22 | 2004-09-14 | Bellsouth Intellectual Property Corporation | System, method and apparatus for tracking deployment of cellular telephone network sites |
JP3672242B2 (ja) * | 2001-01-11 | 2005-07-20 | インターナショナル・ビジネス・マシーンズ・コーポレーション | パターン検索方法、パターン検索装置、コンピュータプログラム及び記憶媒体 |
US7058821B1 (en) | 2001-01-17 | 2006-06-06 | Ipolicy Networks, Inc. | System and method for detection of intrusion attacks on packets transmitted on a network |
US20020165707A1 (en) * | 2001-02-26 | 2002-11-07 | Call Charles G. | Methods and apparatus for storing and processing natural language text data as a sequence of fixed length integers |
US7234168B2 (en) * | 2001-06-13 | 2007-06-19 | Mcafee, Inc. | Hierarchy-based method and apparatus for detecting attacks on a computer system |
US7096503B1 (en) | 2001-06-29 | 2006-08-22 | Mcafee, Inc. | Network-based risk-assessment tool for remotely detecting local computer vulnerabilities |
US6978223B2 (en) | 2001-09-06 | 2005-12-20 | Bbnt Solutions Llc | Systems and methods for network performance measurement using packet signature collection |
US7406526B2 (en) | 2001-09-28 | 2008-07-29 | Uri Benchetrit | Extended internet protocol network address translation system |
US6999998B2 (en) | 2001-10-04 | 2006-02-14 | Hewlett-Packard Development Company, L.P. | Shared memory coupling of network infrastructure devices |
US7472167B2 (en) | 2001-10-31 | 2008-12-30 | Hewlett-Packard Development Company, L.P. | System and method for uniform resource locator filtering |
US20030101353A1 (en) | 2001-10-31 | 2003-05-29 | Tarquini Richard Paul | Method, computer-readable medium, and node for detecting exploits based on an inbound signature of the exploit and an outbound signature in response thereto |
US20030083847A1 (en) | 2001-10-31 | 2003-05-01 | Schertz Richard L. | User interface for presenting data for an intrusion protection system |
US6546493B1 (en) * | 2001-11-30 | 2003-04-08 | Networks Associates Technology, Inc. | System, method and computer program product for risk assessment scanning based on detected anomalous events |
US7257630B2 (en) | 2002-01-15 | 2007-08-14 | Mcafee, Inc. | System and method for network vulnerability detection and reporting |
US6993706B2 (en) * | 2002-01-15 | 2006-01-31 | International Business Machines Corporation | Method, apparatus, and program for a state machine framework |
US7152105B2 (en) | 2002-01-15 | 2006-12-19 | Mcafee, Inc. | System and method for network vulnerability detection and reporting |
JP4152108B2 (ja) * | 2002-01-18 | 2008-09-17 | 株式会社コムスクエア | 脆弱点監視方法及びシステム |
US7076803B2 (en) | 2002-01-28 | 2006-07-11 | International Business Machines Corporation | Integrated intrusion detection services |
US7174566B2 (en) * | 2002-02-01 | 2007-02-06 | Intel Corporation | Integrated network intrusion detection |
US7769997B2 (en) | 2002-02-25 | 2010-08-03 | Network Resonance, Inc. | System, method and computer program product for guaranteeing electronic transactions |
US20030229726A1 (en) | 2002-03-18 | 2003-12-11 | Daseke Michael J. | Default device configuration system and method for thin devices |
US7886357B2 (en) | 2002-03-29 | 2011-02-08 | Cisco Technology, Inc. | Method and system for reducing the false alarm rate of network intrusion detection systems |
JP4047053B2 (ja) * | 2002-04-16 | 2008-02-13 | 富士通株式会社 | 繰り返しを含む順序パターンを用いた検索装置および方法 |
US7383577B2 (en) | 2002-05-20 | 2008-06-03 | Airdefense, Inc. | Method and system for encrypted network management and intrusion detection |
EP1512075A1 (en) * | 2002-05-22 | 2005-03-09 | Lucid Security Corporation | Adaptive intrusion detection system |
US6983323B2 (en) | 2002-08-12 | 2006-01-03 | Tippingpoint Technologies, Inc. | Multi-level packet screening with dynamically selected filtering criteria |
US7069438B2 (en) | 2002-08-19 | 2006-06-27 | Sowl Associates, Inc. | Establishing authenticated network connections |
US20040064726A1 (en) | 2002-09-30 | 2004-04-01 | Mario Girouard | Vulnerability management and tracking system (VMTS) |
WO2004032435A1 (ja) * | 2002-10-03 | 2004-04-15 | In4S Inc. | ビットストリングの照合方法および装置 |
US20040093582A1 (en) | 2002-11-01 | 2004-05-13 | Segura Tim E. | Method for allowing a computer to be used as an information kiosk while locked |
US7363656B2 (en) | 2002-11-04 | 2008-04-22 | Mazu Networks, Inc. | Event detection/anomaly correlation heuristics |
US7454499B2 (en) | 2002-11-07 | 2008-11-18 | Tippingpoint Technologies, Inc. | Active network defense system and method |
KR100456635B1 (ko) * | 2002-11-14 | 2004-11-10 | 한국전자통신연구원 | 분산 서비스 거부 공격 대응 시스템 및 방법 |
US7350077B2 (en) * | 2002-11-26 | 2008-03-25 | Cisco Technology, Inc. | 802.11 using a compressed reassociation exchange to facilitate fast handoff |
US7353533B2 (en) | 2002-12-18 | 2008-04-01 | Novell, Inc. | Administration of protection of data accessible by a mobile device |
US20040193943A1 (en) | 2003-02-13 | 2004-09-30 | Robert Angelino | Multiparameter network fault detection system using probabilistic and aggregation analysis |
EP1604277A2 (en) * | 2003-02-28 | 2005-12-14 | Lockheed Martin Corporation | Hardware accelerator personality compiler |
US7706378B2 (en) * | 2003-03-13 | 2010-04-27 | Sri International | Method and apparatus for processing network packets |
US8127359B2 (en) | 2003-04-11 | 2012-02-28 | Samir Gurunath Kelekar | Systems and methods for real-time network-based vulnerability assessment |
US7305708B2 (en) | 2003-04-14 | 2007-12-04 | Sourcefire, Inc. | Methods and systems for intrusion detection |
US7644275B2 (en) * | 2003-04-15 | 2010-01-05 | Microsoft Corporation | Pass-thru for client authentication |
US7349400B2 (en) | 2003-04-29 | 2008-03-25 | Narus, Inc. | Method and system for transport protocol reconstruction and timer synchronization for non-intrusive capturing and analysis of packets on a high-speed distributed network |
US20040221176A1 (en) | 2003-04-29 | 2004-11-04 | Cole Eric B. | Methodology, system and computer readable medium for rating computer system vulnerabilities |
US7317693B1 (en) | 2003-05-12 | 2008-01-08 | Sourcefire, Inc. | Systems and methods for determining the network topology of a network |
US7089383B2 (en) | 2003-06-06 | 2006-08-08 | Hewlett-Packard Development Company, L.P. | State machine and system for data redundancy |
US7636917B2 (en) | 2003-06-30 | 2009-12-22 | Microsoft Corporation | Network load balancing with host status information |
US7596807B2 (en) * | 2003-07-03 | 2009-09-29 | Arbor Networks, Inc. | Method and system for reducing scope of self-propagating attack code in network |
US7346922B2 (en) * | 2003-07-25 | 2008-03-18 | Netclarity, Inc. | Proactive network security system to protect against hackers |
US7133916B2 (en) | 2003-07-28 | 2006-11-07 | Etelemetry, Inc. | Asset tracker for identifying user of current internet protocol addresses within an organization's communications network |
US20050114700A1 (en) | 2003-08-13 | 2005-05-26 | Sensory Networks, Inc. | Integrated circuit apparatus and method for high throughput signature based network applications |
US8417673B2 (en) * | 2003-10-07 | 2013-04-09 | International Business Machines Corporation | Method, system, and program for retaining versions of files |
US7725936B2 (en) | 2003-10-31 | 2010-05-25 | International Business Machines Corporation | Host-based network intrusion detection systems |
GB2410647A (en) | 2004-01-31 | 2005-08-03 | Hewlett Packard Development Co | Identifying and Patching Vulnerabilities in a Network |
US20050188079A1 (en) | 2004-02-24 | 2005-08-25 | Covelight Systems, Inc. | Methods, systems and computer program products for monitoring usage of a server application |
US7313695B2 (en) | 2004-03-23 | 2007-12-25 | Sourcefire, Inc. | Systems and methods for dynamic threat assessment |
US7761918B2 (en) | 2004-04-13 | 2010-07-20 | Tenable Network Security, Inc. | System and method for scanning a network |
US7366728B2 (en) * | 2004-04-27 | 2008-04-29 | International Business Machines Corporation | System for compressing a search tree structure used in rule classification |
WO2005114541A2 (en) | 2004-05-19 | 2005-12-01 | Computer Associates Think, Inc. | Systems and methods for minimizing security logs |
US20050268331A1 (en) | 2004-05-25 | 2005-12-01 | Franck Le | Extension to the firewall configuration protocols and features |
US8074277B2 (en) * | 2004-06-07 | 2011-12-06 | Check Point Software Technologies, Inc. | System and methodology for intrusion detection and prevention |
US7539681B2 (en) | 2004-07-26 | 2009-05-26 | Sourcefire, Inc. | Methods and systems for multi-pattern searching |
US7496962B2 (en) | 2004-07-29 | 2009-02-24 | Sourcefire, Inc. | Intrusion detection strategies for hypertext transport protocol |
US7480245B2 (en) * | 2004-12-11 | 2009-01-20 | International Business Machines Corporation | Segmenting data packets for over-network transmission at adjustable fragment boundary |
US10015140B2 (en) | 2005-02-03 | 2018-07-03 | International Business Machines Corporation | Identifying additional firewall rules that may be needed |
US7454790B2 (en) | 2005-05-23 | 2008-11-18 | Ut-Battelle, Llc | Method for detecting sophisticated cyber attacks |
US20060294588A1 (en) | 2005-06-24 | 2006-12-28 | International Business Machines Corporation | System, method and program for identifying and preventing malicious intrusions |
US20070027913A1 (en) * | 2005-07-26 | 2007-02-01 | Invensys Systems, Inc. | System and method for retrieving information from a supervisory control manufacturing/production database |
US8046833B2 (en) | 2005-11-14 | 2011-10-25 | Sourcefire, Inc. | Intrusion event correlation with network discovery information |
US7733803B2 (en) | 2005-11-14 | 2010-06-08 | Sourcefire, Inc. | Systems and methods for modifying network map attributes |
US7873025B2 (en) * | 2006-02-23 | 2011-01-18 | Cisco Technology, Inc. | Network device that determines application-level network latency by monitoring option values in a transport layer message |
US7948988B2 (en) | 2006-07-27 | 2011-05-24 | Sourcefire, Inc. | Device, system and method for analysis of fragments in a fragment train |
US7701945B2 (en) | 2006-08-10 | 2010-04-20 | Sourcefire, Inc. | Device, system and method for analysis of segments in a transmission control protocol (TCP) session |
WO2008045302A2 (en) | 2006-10-06 | 2008-04-17 | Sourcefire, Inc. | Device, system and method for use of micro-policies in intrusion detection/prevention |
US7930747B2 (en) | 2007-01-08 | 2011-04-19 | Trend Micro Incorporated | Host intrusion prevention server |
US8069352B2 (en) | 2007-02-28 | 2011-11-29 | Sourcefire, Inc. | Device, system and method for timestamp analysis of segments in a transmission control protocol (TCP) session |
WO2008134057A1 (en) | 2007-04-30 | 2008-11-06 | Sourcefire, Inc. | Real-time awareness for a computer network |
US7936794B2 (en) * | 2007-08-07 | 2011-05-03 | Avaya Inc. | Clock management between two end points |
-
2004
- 2004-07-26 US US10/898,220 patent/US7539681B2/en active Active
-
2005
- 2005-07-20 CA CA002572360A patent/CA2572360A1/en not_active Abandoned
- 2005-07-20 EP EP05773501A patent/EP1779268A4/en not_active Withdrawn
- 2005-07-20 JP JP2007523640A patent/JP4855400B2/ja not_active Expired - Fee Related
- 2005-07-20 WO PCT/US2005/025584 patent/WO2006020290A2/en active Application Filing
-
2007
- 2007-04-19 US US11/785,609 patent/US7756885B2/en active Active
-
2008
- 2008-01-31 US US12/010,900 patent/US7996424B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6244878A (ja) * | 1985-08-23 | 1987-02-26 | Hitachi Ltd | 文書フアイリングシステム |
JPH07129369A (ja) * | 1993-10-29 | 1995-05-19 | Matsushita Electric Ind Co Ltd | 有限状態機械作成方法とパターン照合機械作成方法とこ れらを変形する方法および駆動方法 |
JPH0887528A (ja) * | 1995-09-11 | 1996-04-02 | Hitachi Ltd | 文書ファイリングシステム |
JPH10105576A (ja) * | 1996-06-27 | 1998-04-24 | Fujitsu Ltd | スパースな状態遷移表に基づく複数記号列の照合装置および方法 |
JPH1069493A (ja) * | 1996-08-29 | 1998-03-10 | Matsushita Electric Ind Co Ltd | 辞書作成装置と語切り出し装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2006020290A2 (en) | 2006-02-23 |
JP2008507789A (ja) | 2008-03-13 |
US7996424B2 (en) | 2011-08-09 |
US20070192286A1 (en) | 2007-08-16 |
EP1779268A2 (en) | 2007-05-02 |
US7539681B2 (en) | 2009-05-26 |
EP1779268A4 (en) | 2009-11-11 |
US7756885B2 (en) | 2010-07-13 |
US20080133523A1 (en) | 2008-06-05 |
US20060020595A1 (en) | 2006-01-26 |
WO2006020290A3 (en) | 2009-04-09 |
CA2572360A1 (en) | 2006-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4855400B2 (ja) | マルチパターン検索のための方法およびシステム | |
Norton | Optimizing pattern matching for intrusion detection | |
Kumar et al. | Advanced algorithms for fast and scalable deep packet inspection | |
US9021582B2 (en) | Parallelized pattern matching using non-deterministic finite automata | |
US9990583B2 (en) | Match engine for detection of multi-pattern rules | |
Liu et al. | A fast string-matching algorithm for network processor-based intrusion detection system | |
AU2003277248B2 (en) | Intrusion detection accelerator | |
US7054855B2 (en) | Method and system for performing a pattern match search for text strings | |
US7624105B2 (en) | Search engine having multiple co-processors for performing inexact pattern search operations | |
US7110540B2 (en) | Multi-pass hierarchical pattern matching | |
US20050273450A1 (en) | Regular expression acceleration engine and processing model | |
US8572106B1 (en) | Memory management in a token stitcher for a content search system having pipelined engines | |
US8370274B2 (en) | Apparatuses and methods for deterministic pattern matching | |
WO2004013777A1 (en) | System and method of parallel pattern matching | |
US8543528B2 (en) | Exploitation of transition rule sharing based on short state tags to improve the storage efficiency | |
US20060259508A1 (en) | Method and apparatus for detecting semantic elements using a push down automaton | |
US20070061884A1 (en) | Intrusion detection accelerator | |
JPH09502550A (ja) | デジタル信号集合体に対する改変検出方法 | |
EP3077922B1 (en) | Method and apparatus for generating a plurality of indexed data fields | |
KR20070003488A (ko) | 효율적인 패턴검색을 위한 tcam에서의 정규수식표현방법 및 이를 이용한 패턴 검색방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080512 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110301 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110531 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110607 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110701 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110708 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110801 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110808 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110826 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20111004 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111026 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141104 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4855400 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |