JP2008017371A - Character string retrieving apparatus, method and computer program - Google Patents

Character string retrieving apparatus, method and computer program Download PDF

Info

Publication number
JP2008017371A
JP2008017371A JP2006188732A JP2006188732A JP2008017371A JP 2008017371 A JP2008017371 A JP 2008017371A JP 2006188732 A JP2006188732 A JP 2006188732A JP 2006188732 A JP2006188732 A JP 2006188732A JP 2008017371 A JP2008017371 A JP 2008017371A
Authority
JP
Japan
Prior art keywords
character
search
unit
transition
output
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.)
Withdrawn
Application number
JP2006188732A
Other languages
Japanese (ja)
Inventor
Masato Yasuda
真人 安田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2006188732A priority Critical patent/JP2008017371A/en
Publication of JP2008017371A publication Critical patent/JP2008017371A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To improve security and to shorten a retrieval time by performing pattern matching between both texts containing and excluding OOB data, and to reduce storage capacity and the number of processes rather than the case where retrieval is performed while respectively preparing TCP data excluding the OOB data and TCP data containing the OOB data. <P>SOLUTION: When performing character string retrieval in a state transition, when a character retrieval point reaches OOB data, character retrieval is performed while skipping the retrieval point for one character and when a retrieval result can not be transient, retrieval is started again by returning the retrieval point to a character position before skipping. Thus, character retrieval is performed on both the text in which OOB data are inserted between characters, and the text in which OOB data share the same positions as ordinary characters, in one time of TCP text scanning. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は文字列検索装置、方法及びコンピュータプログラムに関し、特にTCP(Transmission Control Protocol)のOOB(Out-of-Band)データを含んだ文字列検索装置、方法及びコンピュータプログラムに関する。   The present invention relates to a character string search device, method, and computer program, and more particularly, to a character string search device, method, and computer program including TCP (Transmission Control Protocol) OOB (Out-of-Band) data.

近年、セキュリティの観点上、インターネットを介したサイバー攻撃を防御する手段が必要不可欠となっている。その手段として、侵入検知システム、侵入防御システムであるIDS(Intrusion Detection System),IPS(Intrusion
Prevention System)が挙げられる。これらは、インターネットを流れるデータをモニタリングすることにより、インターネット中のデータにホストのセキュリティの脆弱性を付いてホストに被害を与えるウィルスや、ワームと言ったデータを検出、排除するものである。
In recent years, from the viewpoint of security, a means for protecting cyber attacks via the Internet has become indispensable. Intrusion detection systems, IDS (Intrusion Detection System), IPS (Intrusion)
Prevention System). By monitoring the data that flows through the Internet, they detect and eliminate viruses, worms, and other data that cause host security vulnerabilities and damage the host.

これらの検出方法は、モニタリングしているデータを予め登録しておいた複数の攻撃パターンのリストとパターンマッチングさせることにより攻撃を検出する。しかしながら、インターネットを流れるデータの主要プロトコルであるTCP(Transmission Control Protocol)には、OOBデータというものが存在する。これは送信者側が受信者側に対して送る緊急用のデータで、本来のデータ受信バッファとは別の格納領域に保存されるデータである。   These detection methods detect an attack by matching the monitored data with a list of a plurality of attack patterns registered in advance. However, TCP (Transmission Control Protocol), which is a main protocol for data flowing through the Internet, includes OOB data. This is emergency data sent from the sender to the receiver, and is stored in a storage area different from the original data reception buffer.

OOBデータはTCPのUrgentデータとも呼ばれる。TCPヘッダのURGフラグが立っている時に、TCPヘッダのUrgent Pointerフィールドが指示する値から求められる。多くのOS(Operating
System)はUrgent Pointerフィールドが指示する値の次のバイトオフセットの1byteの領域をOOBデータと規定している。
The OOB data is also referred to as TCP Urgent data. It is obtained from the value indicated by the Urgent Pointer field of the TCP header when the URG flag of the TCP header is set. Many operating systems (Operating
System) defines the 1-byte area of the byte offset next to the value indicated by the Urgent Pointer field as OOB data.

送出するOOBデータはTCPのデータストリーム中に挿入される。受信者はTCPヘッダのURGフラグとUrgent Pointerフィールドから示されるOOBデータを取り出し、通常のデータストリームとは別バッファに格納する為、受信者が読み出すデータストリームはOOBデータが除外されたものとなる。この為、もし悪意ある送信者が、ウィルスやワームと言ったデータパターンの間にOOBデータを挿入した場合、受信者は、OOBを除外したデータストリームを読み込んだ際にウィルスやワームの攻撃パターンを読み込んでしまう
。そのため、データをモニタリングしているIDSやIPSは、OOBデータを除外したパターンをマッチングさせる必要がある。
The OOB data to be transmitted is inserted into a TCP data stream. Since the receiver takes out the OOB data indicated by the URG flag and the Urgent Pointer field of the TCP header and stores the OOB data in a buffer different from the normal data stream, the data stream read by the receiver has the OOB data excluded. For this reason, if a malicious sender inserts OOB data between data patterns such as viruses and worms, the recipient can specify the attack pattern of viruses and worms when reading a data stream excluding OOB. It will read. For this reason, IDS and IPS that monitor data must match a pattern excluding OOB data.

しかし、受信側は、受信側のTCPの設定変更により、OOBデータを通常のデータストリームから取り出さず、通常のデータストリームとして読み出すことも可能である(ソケットオプションのOOB_INLINEオプション)そして、IDSやIPSは、受信側はOOBデータを通常のデータストリームから除外して読み出すか、除外せずに読み出すかを知ることが出来ない。故に、IDSやIPSはOOBデータを除外したものと含んだもの両方で攻撃パターンリストに対するマッチングを行う必要がある。攻撃パターンリストに対するマッチングは、検索するデータとしてテキストを、パターンリストとして複数文字列を考えた時、テキスト中から複数文字列を検索する技術が必要となる。複数の文字列を同時に効率よく検索する方法としてはAho−Corasick(エイホ・コラシック)法が挙げられる(非特許文献1)これは、検索したい複数文字列リストから有限オートマトンを生成し、それをテキスト上で左から右へ一回走査させて各文字列の出現位置を検出する方法である。   However, the receiving side can also read the OOB data as a normal data stream without changing it from the normal data stream (socket option OOB_INLINE option) by changing the TCP setting of the receiving side. The receiving side cannot know whether the OOB data is read out from the normal data stream or not read out. Therefore, IDS and IPS need to be matched against the attack pattern list by both including and excluding OOB data. Matching against the attack pattern list requires a technique for searching for a plurality of character strings from the text when considering text as data to be searched and a plurality of character strings as the pattern list. An example of a method for efficiently searching a plurality of character strings simultaneously is the Aho-Corasick method (Non-Patent Document 1). This method generates a finite automaton from a list of a plurality of character strings to be searched, and converts it into a text. This is a method of detecting the appearance position of each character string by scanning once from left to right.

この方法によりテキストの文字数のオーダーで複数の文字列を検索することができる。同様に複数文字列パターンをテキストで検索されている特許は特許文献1に示す技術がある。この技術もオートマトン(状態遷移図)を構成し、複数文字列を検索する。   By this method, a plurality of character strings can be searched in the order of the number of characters in the text. Similarly, there is a technique shown in Patent Document 1 in which a plurality of character string patterns are searched for by text. This technology also forms an automaton (state transition diagram) and searches for a plurality of character strings.

しかしながら、従来技術は、TCPのOOBデータのような、検索したい文字列中で除外したものと除外しないものの両方でパターンマッチングしなければいけないものを一回のテキスト走査で検索することは考慮しておらず、除外したテキストパターンと除外しないテキストパターンの2種類を用意してそれぞれについて検索走査する必要がある。
特願昭62−231091 Alfred V. Aho and Margaret J.Corasick [Efficient String Matching: AnAidito Bibliographic Search] Communications of the ACM,Vol.18, No6, June1975,pp.333-340
However, the conventional technology considers that a single text scan searches for a pattern that needs to be matched both in the character string to be searched and in what is not excluded, such as TCP OOB data. There are two types of text patterns that are excluded and text patterns that are not excluded.
Japanese Patent Application No. Sho 62-231091 Alfred V. Aho and Margaret J. Corasick [Efficient String Matching: AnAidito Bibliographic Search] Communications of the ACM, Vol.18, No6, June1975, pp.333-340

第1の問題点は、受信端末側でデータをモニタする処理部はOOBを除外するのか除外しないかを知ることができないため、OOBデータを含む場合OOBデータを除外したものと除外しないテキスト両方でパターンマッチングができない。   The first problem is that the processing unit that monitors data on the receiving terminal side cannot know whether OOB is excluded or not. Therefore, when OOB data is included, both the data that excludes OOB data and the text that does not exclude it. Pattern matching is not possible.

第2の問題点は、従来技術はテキストにOOBデータが混入されていることが想定されていないためOOBデータを除外したテキストと除外しないテキストの両方でパターンマッチングを行うためには、二回の検索が必要になる。また、OOBデータを含んだものと除外したテキストの両方にデータバッファが必要となるため、記憶資源を大量に消費してしまうことである。   The second problem is that the conventional technique does not assume that OOB data is mixed in the text. Therefore, in order to perform pattern matching on both the text excluding the OOB data and the text not excluding the text, two times are required. Search is required. Further, since a data buffer is required for both the text including the OOB data and the excluded text, a large amount of storage resources is consumed.

第3の問題点は、従来技術はTCPのOOBデータを含んだテキストと除外したテキストの各にデータ保持用のバッファが必要であるため記憶資源を大きく消費してしまうことである。   The third problem is that the conventional technology requires a data holding buffer for each of the text including the TCP OOB data and the excluded text, thereby consuming a large amount of storage resources.

本発明の目的は、OOBデータを含んだものと除外したテキストの両方のパターンマッチングを行うことにより、セキュリティ向上を行うことである。   An object of the present invention is to improve security by performing pattern matching on both the text including and excluding OOB data.

また、OOBデータを含んだTCPデータと除外したTCPデータの両方についてパターンマッチングを一回の検索で行うことにより検索時間を短縮することである。   Further, the search time is shortened by performing pattern matching for both TCP data including OOB data and excluded TCP data in one search.

また、OOBデータを除外したTCPデータとOOBデータを含んだTCPデータをそれぞれ用意して検索する場合より記憶容量を少なくすることである。   Further, the storage capacity is reduced as compared with the case where TCP data excluding OOB data and TCP data including OOB data are prepared and searched.

また、OOBデータを除外したTCPデータとOOBデータを含んだTCPデータをそれぞれ用意して検索する場合より処理数を少なくすることである。   Further, the number of processes is reduced as compared with the case where TCP data excluding OOB data and TCP data including OOB data are prepared and searched.

本発明の第1の観点において、本発明の文字列検索装置は、状態遷移部と、制御部を具備し、該状態遷移部はテキストパターンの文字とその遷移状態を記憶し、外部から入力文字が供給されると該テキストパターンを検索し、該入力文字と検索された文字を相互に照合し検索結果として、一致する場合次遷移指示の判定出力を生成し、一致しない場合遷移不可の判定出力を生成し、前記制御部はTCPのOOBデータを含むTCPテキストを受信し、文字検索点を受信テキスト上で開始点から終止点方向に順次移行させ該検索点上の文字を前記状態遷移部に供給しながら該OOBデータの位置を探索し、その結果、次遷移指示の判定出力を該状態遷移部から得ると該検索点を1文字分前記終止点方向に移行させ、前記OOBデータ検知前に該状態遷移部から遷移不可の判定出力を得ると照合失敗出力を生成し、前記OOBデータの検知時点で該OOBデータの次の文字を検索文字として前記状態遷移部に供給しその判定出力が遷移不可の場合該状態遷移部に前記OOBデータの位置にある文字を検索文字として前記状態遷移部に供給し、前記OOBデータの検知後に前記状態遷移部の判定出力が遷移不可の場合照合失敗出力を生成し前記終止点を表示する場合照合成功出力を生成することを特徴とする。   In a first aspect of the present invention, a character string search device of the present invention includes a state transition unit and a control unit, the state transition unit stores text pattern characters and transition states, and externally input characters. Is supplied, the text pattern is searched, the input character and the searched character are compared with each other, and as a result of the search, if they match, a determination output of the next transition instruction is generated. The control unit receives TCP text including TCP OOB data, and sequentially shifts the character search point from the start point to the end point on the received text, and moves the character on the search point to the state transition unit. While searching, the position of the OOB data is searched. As a result, when the determination output of the next transition instruction is obtained from the state transition unit, the search point is shifted by one character in the direction of the end point, and before the OOB data is detected. The When a determination output indicating that the transition is not possible is obtained from the state transition unit, a collation failure output is generated, and when the OOB data is detected, the next character of the OOB data is supplied as a search character to the state transition unit and the determination output cannot be transitioned. In the case of the above, the character at the position of the OOB data is supplied to the state transition unit as the search character to the state transition unit, and a verification failure output is generated when the judgment output of the state transition unit cannot transition after the detection of the OOB data When the end point is displayed, a collation success output is generated.

本発明の第2の観点において、本発明の文字列検索装置は、状態遷移部と制御部とを具備し、該状態遷移部はテキストパターンの各文字とその遷移状態を記憶し、外部から入力文字が供給されると該テキストパターンを検索し、該入力文字と検索された文字を相互に照合し検索結果として、一致する場合次遷移指示の判定出力を生成し、一致しない場合遷移不可の判定出力を生成し、前記制御部はTCPのOOBデータを含むTCPテキストを受信し、文字検索点を受信テキスト上で開始点から終止点方向に順次移行させ該検索点上の文字を前記状態遷移部に供給しながら該OOBデータの位置を探索し、その結果、次遷移指示の判定出力を該状態遷移部から得ると該検索点を1文字分前記終止点方向に移行させ、前記OOBデータ検知前に該状態遷移部から遷移不可の判定出力を得ると照合失敗出力を生成し、前記OOBデータの検知時点で前記状態遷移部の判定出力が遷移不可の場合前記検索点から1文字分前記終止点方向に移行した位置の文字を検索文字として前記状態遷移部に供給し、前記OOBデータの検知後に前記状態遷移部の判定出力が遷移不可の場合照合失敗出力を生成し、前記終始点を表示する場合照合成功出力を生成することを特徴とする。   In the second aspect of the present invention, the character string search device of the present invention includes a state transition unit and a control unit, the state transition unit stores each character of the text pattern and its transition state, and is input from the outside. When a character is supplied, the text pattern is searched, the input character and the searched character are compared with each other, and as a search result, a determination output of a next transition instruction is generated if they match, and a determination that transition is not possible if they do not match The control unit receives TCP text including TCP OOB data, and sequentially shifts the character search point from the start point to the end point on the received text, and moves the character on the search point to the state transition unit. The position of the OOB data is searched while being supplied to the state. As a result, when the determination output of the next transition instruction is obtained from the state transition unit, the search point is shifted in the direction of the end point by one character, before the OOB data is detected. In When a transition impossible determination output is obtained from the state transition part, a collation failure output is generated. When the determination output of the state transition part cannot transition at the time of detection of the OOB data, one character from the search point in the direction of the end point A character at the transitioned position is supplied as a search character to the state transition unit, and after the OOB data is detected, if the determination output of the state transition unit is not transitionable, a verification failure output is generated, and the end point is displayed Generates a successful output.

本発明の第3の観点において、本発明の文字列検索装置は、モード0またはモード1に設定する動作モード設定部と、状態遷移部と、制御部を具備し、該状態遷移部はテキストパターンの各文字とその遷移状態を記憶し、外部から入力文字が供給されると該テキストパターンを検索し、該入力文字と検索された文字を相互に照合し検索結果として、一致する場合次遷移指示の判定出力を生成し、一致しない場合遷移不可の判定出力を生成し、前記制御部はTCPのOOBデータを含むTCPテキストを受信し、文字検索点を受信テキスト上で開始点から終止点方向に順次移行させ該検索点上の文字を前記状態遷移部に供給しながら該OOBデータの位置を探索し、その結果、次遷移指示の判定出力を該状態遷移部から得ると該検索点を1文字分前記終止点方向に移行させ、前記OOBデータ検知前に該状態遷移部から遷移不可の判定出力を得ると照合失敗出力を生成し、前記制御部はモード0の時、前記OOBデータの検知時点で該OOBデータの次の文字を検索文字として前記状態遷移部に供給しその判定出力が遷移不可の場合該状態遷移部に前記OOBデータの位置にある文字を検索文字として前記状態遷移部に供給し、モード1の時、
前記OOBデータの検知時点で前記状態遷移部の判定出力が遷移不可の場合前記検索点を1文字分前記終止点方向に移行した位置の文字を検索文字として前記状態遷移部に供給し、前記OOBデータの検知後に前記状態遷移部の判定出力が遷移不可の場合照合失敗出力を生成し前記終止点を表示する場合照合成功出力を生成することを特徴とする。
In a third aspect of the present invention, a character string search device of the present invention comprises an operation mode setting unit for setting mode 0 or mode 1, a state transition unit, and a control unit, and the state transition unit is a text pattern. When the input character is supplied from the outside, the text pattern is searched, and the input character and the searched character are collated with each other, and if the search result matches, the next transition instruction is stored. If there is no match, it generates a determination output indicating that transition is not possible. The control unit receives TCP text including TCP OOB data, and sets a character search point from the start point to the end point on the received text. The position of the OOB data is searched while sequentially shifting and supplying the character on the search point to the state transition unit. As a result, when the determination output of the next transition instruction is obtained from the state transition unit, the search point is set to one character. When the transition is made to the end point and a determination output indicating that the transition is not possible is obtained from the state transition unit before the OOB data is detected, a collation failure output is generated. When the control unit is in mode 0, when the OOB data is detected When the next character of the OOB data is supplied to the state transition unit as a search character and the determination output is not transitionable, the character at the position of the OOB data is supplied to the state transition unit as the search character to the state transition unit. In mode 1,
If the determination output of the state transition unit is not allowed to transition at the time of detection of the OOB data, the search point is supplied to the state transition unit as a search character at the position where the search point has shifted in the direction of the end point, and the OOB After the detection of data, when the determination output of the state transition unit is not transitionable, a collation failure output is generated, and when the end point is displayed, a collation success output is generated.

本発明の第4の観点において、本発明の文字列検索方法はテキストパターンの各文字とその遷移状態を記憶し、外部から入力文字が供給されると該テキストパターンを検索し、該入力文字と検索された文字を相互に照合し検索結果として、一致する場合次遷移指示出力を生成し、一致しない場合遷移不可表示出力を生成する状態遷移部を備えるシステムにおいて、(a)TCPのOOBデータを含むTCPテキストを受信し、(b)文字検索点を該受信テキスト上で順次開始点から終止点方向に移行させながら前記OOBデータを探索し、(c)該検索点の文字を検索文字として前記状態遷移部に供給して該状態遷移部の出力を判定し、その判定結果が次遷移指示の場合つぎの文字を検索文字として該状態遷移部に供給し、(d)前記OOBデータの検知前に前記(c)の判定結果が遷移不可表示の場合照合失敗出力を生成し、(e)前記OOBデータの検知時点で該OOBデータの次の文字を検索文字として前記(c)に戻りその判定結果が遷移不可表示の場合該状態遷移部に前記OOBデータの位置にある文字を検索文字として前記(c)に戻り、(f)前記OOBデータの検知後に前記(c)の判定結果が遷移不可表示の場合照合失敗出力を生成し、前記終止点を表示する場合照合成功出力を生成することを特徴とする。   In a fourth aspect of the present invention, the character string search method of the present invention stores each character of a text pattern and its transition state, searches for the text pattern when an input character is supplied from the outside, In a system including a state transition unit that collates the searched characters with each other and generates a next transition instruction output as a search result if they match, and generates a transition impossible display output if they do not match, (a) TCP OOB data (B) searching the OOB data while sequentially shifting the character search point from the start point to the end point on the received text; and (c) using the character at the search point as a search character. The state transition unit is supplied to determine the output of the state transition unit, and when the determination result is a next transition instruction, the next character is supplied as a search character to the state transition unit, and (d) the OOB If the determination result of (c) indicates that the transition is not possible before the data is detected, a collation failure output is generated. (E) When the OOB data is detected, the next character of the OOB data is used as a search character. Returning to (c), if the determination result is display indicating that transition is not possible, the character at the position of the OOB data is used as a search character in the state transition section, and the processing returns to (c). (F) After detecting the OOB data, A collation failure output is generated when the determination result is display indicating that transition is not possible, and a collation success output is generated when the end point is displayed.

本発明の第5の観点において、本発明の文字列検索方法はテキストパターンの各文字とその遷移状態を記憶し、外部から入力文字が供給されると該テキストパターンを検索し、該入力文字と検索された文字を相互に照合し検索結果として、一致する場合次遷移指示出力を生成し、一致しない場合遷移不可表示出力を生成する状態遷移部を備えるシステムにおいて、(a)TCPのOOBデータを含むTCPテキストを受信し、(b)文字検索点を該受信テキスト上で順次開始点から終止点方向に移行させながら前記OOBデータを探索し、(c)該検索点の文字を検索文字として前記状態遷移部に供給して該状態遷移部の出力を判定し、その判定結果が次遷移指示の場合つぎの文字を検索文字として該状態遷移部に供給し、(d)前記OOBデータの検知前に前記(c)の判定結果が遷移不可表示の場合照合失敗出力を生成し、(e)前記OOBデータの検知時点で前記(c)の判定結果が遷移不可の場合前記検索点から1文字分前記終止点方向に移行した位置の文字を検索文字として前記(c)に戻り、(f)前記OOBデータの検知後に前記(c)の判定結果が遷移不可の場合照合失敗出力を生成し、前記終止点を表示する場合照合成功出力を生成することを特徴とする。   In a fifth aspect of the present invention, the character string search method of the present invention stores each character of a text pattern and its transition state, searches for the text pattern when an input character is supplied from the outside, In a system including a state transition unit that collates the searched characters with each other and generates a next transition instruction output as a search result if they match, and generates a transition impossible display output if they do not match, (a) TCP OOB data (B) searching the OOB data while sequentially shifting the character search point from the start point to the end point on the received text; and (c) using the character at the search point as a search character. The state transition unit is supplied to determine the output of the state transition unit, and when the determination result is a next transition instruction, the next character is supplied as a search character to the state transition unit, and (d) the OOB Before the detection of the data, if the determination result of (c) is display indicating that the transition is not possible, a collation failure output is generated. (E) If the determination result of (c) is not transitionable at the time of detection of the OOB data, the search is performed. Return to (c) using the character at the position shifted from the point in the direction of the end point as the search character, and (f) If the determination result in (c) is not allowed to transition after detection of the OOB data, a verification failure output And when the end point is displayed, a collation success output is generated.

本発明の第6の観点において、本発明の文字列検索方法はテキストパターンの各文字とその遷移状態を記憶し、外部から入力文字が供給されると該テキストパターンを検索し、該入力文字と検索された文字を相互に照合し検索結果として、一致する場合次遷移指示出力を生成し、一致しない場合遷移不可表示出力を生成する状態遷移部を備えるシステムにおいて、(a)動作モードを0または1に設定し、(b)TCPのOOBデータを含むTCPテキストを受信し、(c)文字検索点を該受信テキスト上で順次開始点から終止点方向に移行させながら前記OOBデータを探索し、(d)該検索点の文字を検索文字として前記状態遷移部に供給して該状態遷移部の出力を判定し、その判定結果が次遷移指示の場合つぎの文字を検索文字として該状態遷移部に供給し、(e)前記OOBデータの検知前に前記(c)の判定結果が遷移不可表示の場合照合失敗出力を生成し、(f)動作モードが0に設定されている時、前記OOBデータの検知時点で該OOBデータの次の文字を検索文字として前記(c)に戻りその判定結果が遷移不可表示の場合該状態遷移部に前記OOBデータの位置にある文字を検索文字として前記(c)に戻り、(g)動作モードが1に設定されている時、前記OOBデータの検知時点で前記(d)の判定結果が遷移不可表示出力であれば前記検索点から1文字分前記終止点方向に移行した位置の文字を検索文字として前記(d)に戻り、(h)動作モードに関係なく、前記OOBデータの検知後に前記(d)の判定結果が(1)遷移不可表示の場合該状態遷移部に前記OOBデータの位置にある文字を検索文字として前記(d)に戻り、遷移不可表示の場合(2)照合失敗出力を生成し、(3)前記終止点を表示する場合照合成功出力を生成することを特徴とする。   In a sixth aspect of the present invention, the character string search method of the present invention stores each character of a text pattern and its transition state, searches for the text pattern when an input character is supplied from the outside, In a system including a state transition unit that collates the retrieved characters with each other and generates a next transition instruction output as a search result when they match and generates a transition impossible display output when they do not match, (a) the operation mode is set to 0 or Set to 1, (b) receive TCP text including TCP OOB data, (c) search the OOB data while sequentially shifting the character search point from the start point to the end point on the received text, (D) Supplying the character at the search point as a search character to the state transition unit to determine the output of the state transition unit, and if the determination result is a next transition instruction, the next character as the search character When it is supplied to the state transition unit, (e) before the detection of the OOB data, if the determination result of (c) is a non-transitionable display, a collation failure output is generated, and (f) when the operation mode is set to 0 When the OOB data is detected, the next character of the OOB data is used as a search character, and the process returns to (c). When the determination result indicates that the transition is not possible, the character at the position of the OOB data is searched for in the state transition portion. Returning to (c) above, (g) When the operation mode is set to 1, if the determination result of (d) is a non-transitionable display output at the time of detection of the OOB data, one character from the search point The character at the position shifted in the direction of the end point returns to (d) as a search character, and (h) regardless of the operation mode, the determination result of (d) is (1) non-transitionable after the detection of the OOB data. In case of display, the state transition In step (d), the character at the position of the OOB data is used as a search character to return to (d). When the transition is not displayed, (2) a collation failure output is generated, and (3) when the end point is displayed, a collation success output is generated. It is characterized by doing.

本発明の第1の実施の形態について図1を参照して説明する。本文字列検索装置は複数の検索パターンが有限状態のオートマトン(状態遷移図)として格納されているオートマトン状態遷移部104、オートマトン処理要求部102とオートマトン処理部103からなる制御部100、と該オートマトン処理部の出力データを一時的に保持するデータバッファ105から構成される。   A first embodiment of the present invention will be described with reference to FIG. The character string search apparatus includes an automaton state transition unit 104 in which a plurality of search patterns are stored as a finite state automaton (state transition diagram), a control unit 100 including an automaton processing request unit 102 and an automaton processing unit 103, and the automaton. The data buffer 105 temporarily stores output data of the processing unit.

状態遷移部104は、後述する図4に1例として示す如く、制御データが専用の文字位置に挿入された「挿入型またはOOB型」テキスト(virus)と制御データと通常データが同じ文字位置を共有する「共有型またはインライン型」テキスト(worm)のような複数のテキストパターンの各文字とその遷移状態を記憶し、制御部100から供給される入力テキスト1の各文字と該記憶された各文字を相互に比較し、その結果、次遷移可能な文字が存在する場合は次遷移を指示する判定出力を生成し、次遷移可能な文字が存在しない場合は遷移不可を表す判定出力を生成し、検索点がテキストの終始点に達した場合終了フラグを生成する。この終了フラグはパターンマッチング(照合)が成功したことを意味する。
なお、後述する如く、本発明において検索過程における遷移不可を表す判定出力は必ずしもパターンマッチングの失敗を意味しない。
As shown as an example in FIG. 4 to be described later, the state transition unit 104 has an “insertion type or OOB type” text (virus) in which control data is inserted at a dedicated character position, and the control data and normal data have the same character position. Each character of a plurality of text patterns such as “shared or inline type” text (worm) to be shared and its transition state are stored, and each character of the input text 1 supplied from the control unit 100 and each of the stored characters are stored. Compares the characters with each other. As a result, if there is a character that can make the next transition, a decision output that indicates the next transition is generated. When the search point reaches the start point of the text, an end flag is generated. This end flag means that the pattern matching has been successful.
Note that, as will be described later, in the present invention, a determination output indicating that transition is not possible in the search process does not necessarily mean that pattern matching has failed.

制御部100はTCPのOOBデータを含むTCPテキスト101を取得すると該テキストを文字単位で検索点を移行させながら入力テキスト上を走査する。制御部1000は検索点を順次テキスト上で移行させながら該OOBデータの位置の探索し、かつ検索点上の文字を状態遷移部104に供給する。その結果、状態遷移部104の判定出力が次遷移を指示する場合、検索点を次文字の位置に進める。一方、制御部はOOBデータの位置を検知した時点で検索点を1文字分終止点方向に進めることによりOOBデータ位置を飛ばす。従って、第1実施形態において、制御部はOOBデータについて状態遷移部104にその判定結果を求めない。このように検索点を1文字分終止点方向に進めた直後に状態遷移部104の判定出力が遷移不可を表す場合、制御部1000は検索点を次文字位置から1文字分減算した位置に後退させる。   When the control unit 100 obtains the TCP text 101 including the TCP OOB data, the control unit 100 scans the input text while shifting the search point character by character. The control unit 1000 searches the position of the OOB data while sequentially shifting the search point on the text, and supplies the character on the search point to the state transition unit 104. As a result, when the determination output of the state transition unit 104 indicates the next transition, the search point is advanced to the next character position. On the other hand, the control unit skips the OOB data position by advancing the search point by one character toward the end point when the position of the OOB data is detected. Therefore, in the first embodiment, the control unit does not obtain the determination result from the state transition unit 104 for the OOB data. When the determination output of the state transition unit 104 indicates that the transition is not possible immediately after the search point is advanced in the direction of the end point by one character in this way, the control unit 1000 moves backward to a position obtained by subtracting the search point by one character from the next character position. Let

このような検索処理を文字列の開始点から終止点まで実行することによりTCPのOOBデータが専用の文字位置に挿入された「挿入型」テキストとOOBデータと通常データが同じ文字位置を共有する「共有型」テキストのいずれも一回の検索走査でパターンマッチングさせることができる。   By executing such a search process from the start point to the end point of the character string, the “insert type” text in which the TCP OOB data is inserted at the dedicated character position, the OOB data, and the normal data share the same character position. Any “shared” text can be pattern matched in a single search scan.

次に図2及び図3は制御部100を構成するオートマトン処理要求部102とオートマン処理部103の動作をそれぞれ表すフローチャートである。入力TCPテキスト1が検索パターンにマッチするか否かの検索処理はオートマトン処理要求部102が先ずオートマトン処理部103に入力値を供給し、次に処理部103が入力テキストの文字列を文字単位に状態遷移部104に供給し検索パターンの文字列と該状態遷移部から判定結果を取得する。   Next, FIGS. 2 and 3 are flowcharts showing the operations of the automaton processing request unit 102 and the automan processing unit 103 constituting the control unit 100, respectively. In the search process to determine whether or not the input TCP text 1 matches the search pattern, the automaton processing request unit 102 first supplies the input value to the automaton processing unit 103, and then the processing unit 103 sets the character string of the input text in character units. The result is supplied to the state transition unit 104 and the determination result is acquired from the character string of the search pattern and the state transition unit.

図2において、オートマトン処理要求部102は、まず入力TCPテキスト101からTCPテキスト"T"とOOBデータフィールドの位置を示すOOBデータオフセット"U"を取得し(ステップ201)、次にステップ202において、オートマトン処理部103の複数の初期値を設定する。即ち、入力TCPテキストTに入力TCPテキスト1が設定され、OOBデータオフセット"U"にTCPデータのUrgentフラグが立っている時のTCPヘッダのUrgentポインタフィールドの値"U0"が設定され、検索文字列オフセット"P"とオートマトンステート"S"には、それぞれ、TCPテキストの先頭文字の位置を示すオフセット値"P0"と初期状態"S0"が設定される。 In FIG. 2, the automaton processing request unit 102 first acquires the TCP text “T” and the OOB data offset “U” indicating the position of the OOB data field from the input TCP text 101 (step 201), and then in step 202. A plurality of initial values of the automaton processing unit 103 are set. That is, the input TCP text 1 is set in the input TCP text T, and the value “U 0 ” of the Urgent pointer field of the TCP header when the Urgent flag of the TCP data is set in the OOB data offset “U” is set. In the character string offset “P” and the automaton state “S”, an offset value “P 0 ” and an initial state “S 0 ” indicating the position of the first character of the TCP text are set.

次に、図3において、オートマトン処理部103は初期化された入力データ(TCPテキスト"T"、OOBデータオフセット"U"、検索文字列オフセット"P"、オートマトンステート"S")の供給に応じ、ステップ301においてフラグ"i"を0に設定し、ステップ302でOOBデータオフセット"U"と検索文字列オフセット"P"を比較し互いに等しいか否かを判定する。テキスト上の検索(走査)点がOOBデータフィールドの位置にくると、OOBデータオフセット"U"と文字列オフセット"P"は互いに等しくなる。ステップ302の判定がNOであればフローはステップ303に進み、YESであればステップ307に進みフラグ"i"を1に設定し、ステップ308でデータバッファ105に現時点における文字列オフセットPと遷移状態Sを書き込み、ステップ309で文字列オフセットPに1を加算し、ステップ303に進む。   Next, in FIG. 3, the automaton processing unit 103 responds to the supply of initialized input data (TCP text “T”, OOB data offset “U”, search character string offset “P”, automaton state “S”). In step 301, the flag “i” is set to 0. In step 302, the OOB data offset “U” and the search character string offset “P” are compared to determine whether or not they are equal to each other. When the search (scanning) point on the text comes to the position of the OOB data field, the OOB data offset “U” and the character string offset “P” become equal to each other. If the determination in step 302 is NO, the flow proceeds to step 303; if YES, the process proceeds to step 307 and the flag “i” is set to 1. In step 308, the current character string offset P and the transition state are stored in the data buffer 105. S is written, 1 is added to the character string offset P in step 309, and the process proceeds to step 303.

ステップ303において、処理部103は状態遷移部104にデータT, P, Sを供給し、ステップ304で該状態遷移部から検索結果を取得する。処理部103はつぎの判定ステップ305でこの検索結果としての判定出力をチェックし、</a>判定出力が遷移指示(遷移可能)であれば状態遷移部104から出力データとして次の文字列オフセットP_oと次の遷移状態S_oを得る。これらの値で状態遷移部104の次の入力値を再初期化し(ステップ306)、判定ステップ310に進みフラグ"i"が0か1かを判定する。フラグ"i"が0であればまだOOBデータは検知されていないので、フローはステップ302に戻り、フラグ"i"が1であれば既にOOBデータは検知されているのでフローはステップ303に進む。   In step 303, the processing unit 103 supplies data T, P, S to the state transition unit 104, and acquires a search result from the state transition unit in step 304. In the next determination step 305, the processing unit 103 checks the determination output as the search result. If the determination output is a transition instruction (transition possible), the state transition unit 104 outputs the next character string offset P_o as output data. And the next transition state S_o is obtained. The next input value of the state transition unit 104 is reinitialized with these values (step 306), and the process proceeds to the determination step 310 to determine whether the flag “i” is 0 or 1. If the flag “i” is 0, the OOB data has not been detected yet, so the flow returns to Step 302. If the flag “i” is 1, the OOB data has already been detected, and the flow proceeds to Step 303. .

ステップ305の判定結果が遷移不可であれば、フローは判定ステップ203(図2)に戻りデータバッファ105を参照しデータの有無を調べる。データが格納されていなければ「パターンマッチング不成功」を表示する出力を出力部106に供給し、データバッファ105にデータが格納されていればステップ203からステップ204に進み格納されているデータを用いオートマトン処理部103の入力値を再初期化し、ステップ310(図3)に戻る。再初期化されたデータはOOBデータオフセット"U"と検索文字列オフセット"P"が互いに等しかったときのデータなので、処理部103の入力値は文字列オフセットP(U=P)、オートマトンステートS(U=P)となる。 If the determination result in step 305 is not transitionable, the flow returns to determination step 203 (FIG. 2) and refers to the data buffer 105 to check for data. If no data is stored, an output indicating “pattern matching unsuccessful” is supplied to the output unit 106. If data is stored in the data buffer 105, the process proceeds from step 203 to step 204 to use the stored data. The input value of the automaton processing unit 103 is reinitialized, and the process returns to step 310 (FIG. 3). Since the reinitialized data is data when the OOB data offset “U” and the search character string offset “P” are equal to each other, the input value of the processing unit 103 is the character string offset P (U = P) , the automaton state S (U = P) .

ステップ305の判定結果が終了フラグであれば、パターンマッチングは成功したのでフローはステップ206(図2)で「パターンマッチング成功」の出力を出力部106に供給する。   If the determination result in step 305 is an end flag, the pattern matching has succeeded, and the flow supplies an output of “pattern matching success” to the output unit 106 in step 206 (FIG. 2).

このオートマトン処理部103による「OOB位置飛び越し検索」により、OOB「挿入型」テキストの場合、状態遷移部104は全通常文字について検索結果を出力する。一方、OOB「共有型」テキストの場合、この「飛び越し検索」のためOOB位置のつぎの通常文字について状態遷移部104は遷移不可を出力することになり、その結果オートマトン処理部103は検索点をOOB位置に後退させる。この後退検索により状態遷移部104はOOB「共有型」テキストについても正常な検索結果を生成する。   In the case of an OOB “insertion type” text, the state transition unit 104 outputs a search result for all normal characters by the “OOB position jump search” by the automaton processing unit 103. On the other hand, in the case of an OOB “shared type” text, the state transition unit 104 outputs “non-transitional” for the next normal character after the OOB position for this “interlace search”, and as a result, the automaton processing unit 103 sets the search point. Retract to the OOB position. By this backward search, the state transition unit 104 generates a normal search result for the OOB “shared type” text.

次に第1実施形態の動作について具体的な例を挙げて説明する。図4の(a)を参照すると、検知したい文字列パターンとして"virus"と"worm"を仮定する。この2つの文字列パターンからオートマトンATを状態遷移部104に格納する。   Next, the operation of the first embodiment will be described with a specific example. Referring to (a) of FIG. 4, “virus” and “worm” are assumed as character string patterns to be detected. The automaton AT is stored in the state transition unit 104 from these two character string patterns.

このオートマトンATに対し、図4(b)に示すようにOOBデータが文字間に挿入された「OOB挿入型」入力文字列EX1のマッチング動作の例を示す。即ち、文字列が"virous”で、このうち"o"がOOBデータである。   An example of the matching operation of the “OOB insertion type” input character string EX1 in which OOB data is inserted between characters as shown in FIG. In other words, the character string is “virous”, and “o” is OOB data.

この文字列が入力された時のオートマトン処理要求部102が処理部103に供給する初期値は、OOBデータオフセットU=3、検索文字列オフセットP=0,オートマトンステートS=0となる。   The initial values that the automaton processing request unit 102 supplies to the processing unit 103 when this character string is input are OOB data offset U = 3, search character string offset P = 0, and automaton state S = 0.

次に処理部103は以下に示す状態遷移部104への入力の供給が行われ遷移可能であれば遷移指示出力として次オートマトンステートS_oと次検索文字列オフセットP_oを取得する。
1回目
入力:オートマトンステート0,検索文字列オフセット0
出力:オートマトンステート1,検索文字列オフセット1
2回目
入力:オートマトンステート1,検索文字列オフセット1
出力:オートマトンステート2,検索文字列オフセット2
3回目
入力:オートマトンステート2,検索文字列オフセット2
出力:オートマトンステート3,検索文字列オフセット3
状態遷移部103の3回目の出力時点で検索文字列オフセットPとOOBデータオフセットUが互いに等しくなるため(ステップ302)、検索文字列オフセット(P=3)とオートマトンステート(S=3)をデータバッファ24に書き込み(ステップ308)、文字列オフセットPを一つ進める(ステップ309)。これにより次の検索文字列オフセットPは4となる。
4回目
入力:オートマトンステート3,検索文字列オフセット4
出力:オートマトンステート4,検索文字列オフセット5
5回目
入力:オートマトンステート4,検索文字列オフセット5
出力:オートマトンステート5,結果:「終了」
上記のように5回目の要求で、入力TCPテキストEX1がテキストパターン“virus”に一致する。
Next, when the input to the state transition unit 104 shown below is performed and transition is possible, the processing unit 103 acquires the next automaton state S_o and the next search character string offset P_o as the transition instruction output.
First input: Automaton state 0, search string offset 0
Output: Automaton state 1, search string offset 1
Second input: Automaton state 1, search string offset 1
Output: Automaton state 2, search string offset 2
3rd input: automaton state 2, search string offset 2
Output: Automaton state 3, search string offset 3
Since the search character string offset P and the OOB data offset U are equal to each other at the third output time of the state transition unit 103 (step 302), the search character string offset (P = 3) and the automaton state (S = 3) are stored as data. Write to the buffer 24 (step 308) and advance the character string offset P by one (step 309). As a result, the next search character string offset P becomes 4.
4th entry: automaton state 3, search string offset 4
Output: Automaton state 4, search string offset 5
5th entry: automaton state 4, search string offset 5
Output: Automaton state 5, result: "End"
As described above, in the fifth request, the input TCP text EX1 matches the text pattern “virus”.

次に、図4(c)にOOBデータが通常の文字の位置に含まれている[共有型またはインライン型]テキストEX2、即ち文字列が“worm”で、このうちの“o”がTCPのOOBデータである例を示す。   Next, in FIG. 4 (c), the [EX type] text EX2 in which the OOB data is included in the position of the normal character, that is, the character string is “worm”, and “o” of these is TCP. An example of OOB data is shown.

このTCPテキストが入ってきた時の動作は、オートマトン処理要求部102は処理部103の初期値をOOBデータオフセットU=1、検索文字列オフセットP=0、オートマトンステートS=0に設定する。次に、処理部103と状態遷移部104の間で以下の入力と出力が生成される。
1回目
入力:オートマトンステート0,検索文字列オフセット0
出力:オートマトンステート6,検索文字列オフセット1
1回目の状態遷移部104への要求後の時点で検索文字列オフセットPがOOBデータオフセットUに等しくなるため、
処理部103はP=1とS=6をデータバッファ105に書き込み(ステップ308)、文字列オフセットPを一つ進める(ステップ309)。これにより次の検索文字列オフセットPは2となる。
2回目
入力:オートマトンステート6,検索文字列オフセット2
出力:遷移不可(=非整合)
2回目の入力時点で、遷移可能のオートマトンステートが存在しないため、
「遷移不可」を表す出力が状態遷移部104から供給される。その直後、データバッファ105にデータが保存されているので(ステップ203)、オートマトン処理要求部102はこれを取り出し、検索文字列オフセット"P"をOOBデータのオフセットの値"1"に、オートマトンステート"S"をOOBオフセット検出時のステート"6"に再初期化し(ステップ204)、ステップ303に戻る。この結果、オートマトン処理部103は検索処理を再開し状態遷移部104との間で以下の処理を行う。
3回目
入力:オートマトンステート6,検索文字列オフセット1
出力:オートマトンステート7,検索文字列オフセット2
4回目
入力:オートマトンステート7,検索文字列オフセット2
出力:オートマトンステート8,検索文字列オフセット3
5回目
入力:オートマトンステート8,検索文字列オフセット3
出力:オートマトンステート9,「終了フラグ」
上記の様にEX2の入力TCPテキストが5回の処理でパターン"worm”に整合することが判明する。
When the TCP text is entered, the automaton processing request unit 102 sets the initial values of the processing unit 103 to OOB data offset U = 1, search character string offset P = 0, and automaton state S = 0. Next, the following inputs and outputs are generated between the processing unit 103 and the state transition unit 104.
First input: Automaton state 0, search string offset 0
Output: Automaton state 6, search string offset 1
Since the search character string offset P becomes equal to the OOB data offset U at the time after the first request to the state transition unit 104,
The processing unit 103 writes P = 1 and S = 6 to the data buffer 105 (step 308), and advances the character string offset P by one (step 309). As a result, the next search character string offset P becomes 2.
Second time input: Automaton state 6, search string offset 2
Output: Transition not possible (= non-matching)
Since there is no automaton state that can be transitioned at the time of the second input,
An output indicating “non-transition possible” is supplied from the state transition unit 104. Immediately after that, since the data is stored in the data buffer 105 (step 203), the automaton processing request unit 102 retrieves this, and sets the search character string offset “P” to the offset value “1” of the OOB data, and the automaton state. “S” is reinitialized to the state “6” when the OOB offset is detected (step 204), and the process returns to step 303. As a result, the automaton processing unit 103 resumes the search process and performs the following processing with the state transition unit 104.
3rd input: automaton state 6, search string offset 1
Output: Automaton state 7, search string offset 2
4th entry: Automaton state 7, search string offset 2
Output: Automaton state 8, search string offset 3
5th entry: Automaton state 8, search string offset 3
Output: Automaton state 9, "end flag"
As described above, it is found that the input TCP text of EX2 matches the pattern “worm” after five processes.

上述の如く、「OOB挿入型」と「OOB共有型」の両TCPテキストのパターンマッチングが一回の検索走査で完了する。さらに、2種類のTCPテキストについて記憶領域を用意しなくても、検索文字列オフセットがOOBデータ上にある時の一時ステートの格納領域を用意しておくだけで双方とも検索できるので、必要とする記憶資源が少ない。   As described above, pattern matching of both “OOB insertion type” and “OOB shared type” TCP texts is completed in one search scan. Furthermore, even if two types of TCP texts are not prepared, both can be searched simply by preparing a temporary state storage area when the search character string offset is on the OOB data. There are few storage resources.

次に、本発明の第2の実施の形態について図5、6、7、8を参照して説明する。図5を参照すると、第2実施形態の文字列検索装置の図1との相違点はデータバッファ105を使用せず、制御部500をオートマトン処理要求部501,第1オートマトン処理部502と第2オートマトン処理部503により構成したことである。第2実施形態のオートマトン処理要求部501が
第1オートマトン処理部502に要求する回数は一回だけとなる。
Next, a second embodiment of the present invention will be described with reference to FIGS. Referring to FIG. 5, the difference between the character string search apparatus of the second embodiment and FIG. 1 is that the data buffer 105 is not used, and the control unit 500 is connected to the automaton processing request unit 501, the first automaton processing unit 502, and the second. It is configured by the automaton processing unit 503. The automaton processing request unit 501 of the second embodiment requests the first automaton processing unit 502 only once.

図6において、オートマトン処理要求部501は、入力TCPテキスト101からTCPテキスト"T"とOOBデータフィールドの位置を示すOOBデータオフセット"U"を取得し(ステップ601)、ステップ602において第1オートマトン処理部502の複数の初期値T,U,PとSを設定する。   In FIG. 6, the automaton processing request unit 501 obtains the TCP text “T” and the OOB data offset “U” indicating the position of the OOB data field from the input TCP text 101 (step 601). A plurality of initial values T, U, P and S of the unit 502 are set.

図7において、第1オートマトン処理部502はステップ701でフラグ“i”を0に設定し、ステップ702でOOBデータ位置をチェックし、U=Pでなければ、ステップ703でT,P,Sを状態遷移部104に供給し検索を要求し、検索結果をステップ704で取得し、その結果を判定し(ステップ705)、遷移可能であれば遷移指示の出力値を取得し判定ステップ707に至る。フラグ“i”が0であれば判定ステップ702が再び実行される。OOBデータが入力されるまで上記の処理が繰り返し実行される。遷移不可の判定出力を状態遷移部104から受け取ると第1オートマトン処理部502はステップ705からステップ603(図2)に進み、オートマトン処理要求部501から「パターンマッチング不成功」が出力部106に出力される。   In FIG. 7, the first automaton processing unit 502 sets the flag “i” to 0 in step 701, checks the OOB data position in step 702, and if not U = P, sets T, P, and S in step 703. The search is supplied to the state transition unit 104, a search is requested, the search result is acquired in step 704, and the result is determined (step 705). If transition is possible, the output value of the transition instruction is acquired and the determination step 707 is reached. If the flag “i” is 0, the determination step 702 is executed again. The above processing is repeatedly executed until OOB data is input. When the determination output indicating that the transition is impossible is received from the state transition unit 104, the first automaton processing unit 502 proceeds from step 705 to step 603 (FIG. 2), and the automaton processing request unit 501 outputs "pattern matching unsuccessful" to the output unit 106. Is done.

図7において、検索点がOOBデータ位置に達するとステップ702でUがPに等しくなり、第1オートマトン処理部502はステップ702からステップ708に進みフラグ“i”を1に設定し、現時点の値(T,P,S)を引数として第2オートマトン処理部503に引き渡し該処理部を起動し(ステップ709)、ステップ703に進む。   In FIG. 7, when the search point reaches the OOB data position, U becomes equal to P in step 702, the first automaton processing unit 502 proceeds from step 702 to step 708, sets the flag “i” to 1, and sets the current value. (T, P, S) is passed to the second automaton processing unit 503 as an argument to start the processing unit (step 709), and the process proceeds to step 703.

図8において、第2オートマトン処理部503はステップ801で第1オートマトン処理部502から引き受けたPとS値をメモリに格納し、ステップ802でPに1を加算し、ステップ803で状態遷移部104に設定された入力値を供給し、その検索結果を得る(ステップ804)。ステップ805で検索結果が判定され、遷移可能であれば遷移指示の出力値を取得しステップ803に戻る。OOBデータ検出後の各文字がパターンの対応する文字と一致する毎に上記の処理が繰り返し実行される。   In FIG. 8, the second automaton processing unit 503 stores the P and S values received from the first automaton processing unit 502 in step 801 in a memory, adds 1 to P in step 802, and the state transition unit 104 in step 803. The input value set to is supplied and the search result is obtained (step 804). In step 805, the search result is determined. If transition is possible, the output value of the transition instruction is acquired, and the process returns to step 803. The above processing is repeatedly executed each time each character after detecting the OOB data matches the corresponding character in the pattern.

ステップ805で遷移不可の判定出力が状態遷移部104から返信されると
ステップ603(図6)に戻る。ステップ805で終了フラグが検出されると図6のステップ604に戻り「パターンマッチング成功」を出力する。
When a determination output indicating that the transition is impossible is returned from the state transition unit 104 in Step 805, the process returns to Step 603 (FIG. 6). When the end flag is detected in step 805, the process returns to step 604 in FIG. 6 to output “pattern matching success”.

上述の如く第2実施形態では、OOBデータを起点として複数の処理部で並列にパターンマッチング処理ができるため、パターン検索時間がOOBを除外した時と除外しない時のどちらか一方でTCPテキストを走査した場合の時間と同じとなる。   As described above, in the second embodiment, since pattern matching processing can be performed in parallel by a plurality of processing units starting from OOB data, the TCP text is scanned either when the OOB is excluded or not. It will be the same as the time you did.

本発明の第3の実施の形態の文字検索装置について図9、10、11を参照して説明する。図9に図示の如く、該文字検索装置は検索モード選択部901を具備しており、該設定部が制御部900のオートマトン処理要求部902に接続され、第1実施形態同様、オートマトン処理部903が該処理要求部902と状態遷移部104との間に設けられている。検索モード選択部
901は動作モード0と1のいずれかを選択し、“0”の場合文字検索装置はOOBデータを除外せず検索し遷移不可が発生した場合OOBデータ位置を飛び越し(除外し)て検索を再開する。
A character search device according to a third embodiment of the present invention will be described with reference to FIGS. As shown in FIG. 9, the character search apparatus includes a search mode selection unit 901, and the setting unit is connected to the automaton processing request unit 902 of the control unit 900, and the automaton processing unit 903 is the same as in the first embodiment. Is provided between the processing request unit 902 and the state transition unit 104. The search mode selection unit 901 selects one of the operation modes 0 and 1. When “0”, the character search device searches without excluding OOB data, and jumps (excludes) the OOB data position when a transition is impossible. To resume the search.

一方、“1”の場合は第1実施形態同様、先ずOOBデータを飛び越して検索し、その直後に遷移不可が発生した場合OOBデータ位置に戻り検索を再開する。即ち、モード0の場合、「OOBデータを飛び越さない検索(即ちOOBデータを含んだ検索)」が「OOBデータ飛び越し検索」に優先するモードであり、モード1の場合はこの逆で、「OOBデータ飛び越し検索」が「OOBデータ非飛び越し検索」に優先するモードである。   On the other hand, in the case of “1”, as in the first embodiment, the OOB data is first skipped and searched, and immediately after that, when the transition is impossible, the search returns to the OOB data position and the search is resumed. That is, in the case of mode 0, “search without skipping OOB data (that is, search including OOB data)” is prioritized over “search skipping OOB data”. “OOB data interlaced search” is a mode that has priority over “OOB data non-interlaced search”.

図10を参照すると、オートマトン処理要求部902は第1実施形態同様、入力TCPテキスト101からTCPテキストTとOOBデータオフセットUを取得し(ステップ1001)、ステップ1002で、オートマトン処理部903
の初期値を設定し、該処理部を起動する。
Referring to FIG. 10, the automaton processing request unit 902 acquires the TCP text T and the OOB data offset U from the input TCP text 101 (step 1001) as in the first embodiment, and in step 1002, the automaton processing unit 903
The initial value is set, and the processing unit is activated.

図11のステップ1101で、オートマトン処理部903は起動するとフラグ“i”を0に設定し、ステップ1102でOOBデータ位置をチェックし、U=Pでなければ、ステップ1103でT,P,Sを状態遷移部104に供給し検索を要求し、検索結果をステップ1104で取得し、その結果を判定し(ステップ1105)、遷移可能であれば遷移指示の出力値を取得しステップ1106で処理部903の初期値を遷移指示の出力値に再初期化し、判定ステップ1107に進みフラグ“i”が0か1かを判定する。フラグ“i”が0であれば判定ステップ1102が再び実行され、OOBデータが入力されるまで上記の処理が繰り返し実行される。   When the automaton processing unit 903 is activated at step 1101 in FIG. 11, the flag “i” is set to 0, the OOB data position is checked at step 1102, and if U = P, T, P, and S are set at step 1103. The search is supplied to the state transition unit 104 and a search is requested. The search result is acquired in step 1104. The result is determined (step 1105). If the transition is possible, the output value of the transition instruction is acquired. The initial value is reinitialized to the output value of the transition instruction, and the process proceeds to decision step 1107 to determine whether the flag “i” is 0 or 1. If the flag “i” is 0, the determination step 1102 is executed again, and the above processing is repeatedly executed until OOB data is input.

やがて検索点がOOBデータ位置に達すると、ステップ1102でU=Pとなり、ステップ1108でi=1に設定され、つぎにモードMが0か1か判定され、0であればステップ1103に、1であればステップ1110に進みデータバッファ105にPとS値を書き込み、Pの値に1を加算し(ステップ1111)、ステップ1103に進みT,P,Sを状態遷移部104に供給し検索を要求し、ステップ1104において検索結果を状態遷移部104から取得し、その結果を判定する(ステップ1105)。ステップ1105の判定が「遷移不可」であると処理部903は図10の判定ステップ1003に戻る。   When the search point eventually reaches the OOB data position, U = P is set in step 1102, i = 1 is set in step 1108, and then it is determined whether the mode M is 0 or 1. If 0, step 1103 is set to 1 If so, the process proceeds to step 1110, P and S values are written to the data buffer 105, 1 is added to the value of P (step 1111), and the process proceeds to step 1103 to supply T, P, and S to the state transition unit 104 and search is performed. In step 1104, the search result is acquired from the state transition unit 104, and the result is determined (step 1105). If the determination in step 1105 is “impossible to transition”, the processing unit 903 returns to the determination step 1003 in FIG.

図10において、処理要求部902はステップ1003においてデータバッファ105のデータ有無を判定し、データ有りと判定するとつぎの判定ステップ1004でモードMが0か1かを判定する。   In FIG. 10, the processing request unit 902 determines the presence / absence of data in the data buffer 105 at step 1003, and if it is determined that there is data, the next determination step 1004 determines whether the mode M is 0 or 1.

M=1の場合、処理要求部903はステップ1005に進みデータバッフア105からPとSの値を取り出しオートマトン処理部103の入力値を再初期化し、ステップ1107に戻る。再初期化されたデータはOOBデータオフセット"U"と検索文字列オフセット"P"が互いに等しかったときのデータであり、処理部103の入力値は文字列オフセットP(U=P)、オートマトンステートS(U=P)となる。 If M = 1, the processing request unit 903 proceeds to step 1005, extracts the values of P and S from the data buffer 105, reinitializes the input value of the automaton processing unit 103, and returns to step 1107. The reinitialized data is data when the OOB data offset “U” and the search character string offset “P” are equal to each other. The input value of the processing unit 103 is the character string offset P (U = P) , the automaton state. S (U = P) .

M=0の場合、処理要求部903はステップ1006に進みデータバッフア105からPの値を取り出しこれに1を加算した値に再初期化しこれを文字列オフセットP(U=P+1) とし、次にSの値を取り出しこれをPの値に再初期化しオートマトンステートS(U=P)とし、ステップ1107に戻る。ステップ1103の判定がデータ無しの場合、処理要求部903はステップ1007に進み「パターンマッチング不成功」を処理要求部902に出力する。 For M = 0, the processing request unit 903 is re-initialized this string offset P (U = P + 1) to a value obtained by adding 1 to retrieve the value of P from the data buffer 105 proceeds to step 1006, then S The value is taken out and reinitialized to the value P, and the automaton state S (U = P) is set. If the determination in step 1103 is no data, the process request unit 903 proceeds to step 1007 and outputs “pattern matching unsuccessful” to the process request unit 902.

一方、図11において、処理要求部903は状態遷移部104から終了フラグを受け取ると(ステップ1105)処理要求部902に終了フラグを受け取ったことを伝える。これに応じ、処理要求部902は「パターンマッチング成功」信号を出力部106に伝達する(ステップ1008、図10)。   On the other hand, in FIG. 11, when the processing request unit 903 receives the end flag from the state transition unit 104 (step 1105), the processing request unit 903 notifies the processing request unit 902 that the end flag has been received. In response to this, the processing request unit 902 transmits a “pattern matching success” signal to the output unit 106 (step 1008, FIG. 10).

図4のオートマトンATと入力テキストEX1、EX2を利用しモード0の場合の第3実施形態の動作を図12を参照して説明する。なお、モード1の場合の動作は図4と同じなので説明は省略する。   The operation of the third embodiment in the mode 0 using the automaton AT and the input texts EX1 and EX2 in FIG. 4 will be described with reference to FIG. The operation in mode 1 is the same as that in FIG.

図12(a)図示のオートマトンATに対し、図12(b)に示す入力文字列"virous”が入力された時のオートマトン処理要求部902が処理部903に供給する初期値は、図4と同様OOBデータオフセットU=3、検索文字列オフセットP=0,オートマトンステートS=0となる。   The initial values supplied to the processing unit 903 by the automaton processing request unit 902 when the input character string “virous” shown in FIG. 12B is input to the automaton AT shown in FIG. Similarly, OOB data offset U = 3, search character string offset P = 0, and automaton state S = 0.

次に処理部903は以下に示す状態遷移部104への入力の供給が行われ遷移可能であれば遷移指示出力として次オートマトンステートS_oと次検索文字列オフセットP_oを取得する。
1回目
入力:オートマトンステート0,検索文字列オフセット0
出力:オートマトンステート1,検索文字列オフセット1
2回目
入力:オートマトンステート1,検索文字列オフセット1
出力:オートマトンステート2,検索文字列オフセット2
3回目
入力:オートマトンステート2,検索文字列オフセット2
出力:オートマトンステート3,検索文字列オフセット3
4回目
入力:オートマトンステート3,検索文字列オフセット3
出力:遷移不可
状態遷移部903はこの4回目の入力でOOBデータを検知し(i=1)、かつ、ステップ1105(図11)の判定出力が遷移不可となるためステップ1006(図10)で文字列オフセットPに1が加算され次の検索文字列オフセットPは4となる。
5回目
入力:オートマトンステート3,検索文字列オフセット4
出力:オートマトンステート4,検索文字列オフセット5
6回目
入力:オートマトンステート4,検索文字列オフセット5
出力:オートマトンステート5,「終了フラグ」
上記のように6回目の要求で、
入力TCPテキストEX1がテキストパターン“virus”に一致する。
Next, the processing unit 903 obtains the next automaton state S_o and the next search character string offset P_o as a transition instruction output if input is supplied to the state transition unit 104 shown below and transition is possible.
First input: Automaton state 0, search string offset 0
Output: Automaton state 1, search string offset 1
Second input: Automaton state 1, search string offset 1
Output: Automaton state 2, search string offset 2
3rd input: automaton state 2, search string offset 2
Output: Automaton state 3, search string offset 3
4th entry: automaton state 3, search string offset 3
Output: Transition not possible The state transition unit 903 detects OOB data with this fourth input (i = 1), and the judgment output at Step 1105 (FIG. 11) becomes impossible to transition, so at Step 1006 (FIG. 10). 1 is added to the character string offset P, and the next search character string offset P becomes 4.
5th entry: automaton state 3, search string offset 4
Output: Automaton state 4, search string offset 5
6th entry: automaton state 4, search string offset 5
Output: Automaton state 5, "End flag"
At the sixth request as above,
The input TCP text EX1 matches the text pattern “virus”.

次に、図12(c)の文字列EX2(worm)が入ってきた時、図4と同様オートマトン処理要求部902は処理部903の初期値をOOBデータオフセットU=1、検索文字列オフセットP=0、オートマトンステートS=0に設定する。次に、処理部903と状態遷移部104の間で以下の入力と出力が生成される。
1回目
入力:オートマトンステート0,検索文字列オフセット0
出力:オートマトンステート6,検索文字列オフセット1
2回目
入力:オートマトンステート6,検索文字列オフセット1
出力:オートマトンステート7,検索文字列オフセット2
3回目
入力:オートマトンステート7,検索文字列オフセット2
出力:オートマトンステート8,検索文字列オフセット3
4回目
入力:オートマトンステート8,検索文字列オフセット3
出力:オートマトンステート9,「終了フラグ」
この様に4回の処理で入力文字列"worm”の検索結果が判明する。
Next, when the character string EX2 (worm) in FIG. 12C is entered, the automaton processing request unit 902 uses the initial value of the processing unit 903 as the OOB data offset U = 1 and the search character string offset P as in FIG. = 0, automaton state S = 0. Next, the following inputs and outputs are generated between the processing unit 903 and the state transition unit 104.
First input: Automaton state 0, search string offset 0
Output: Automaton state 6, search string offset 1
Second input: Automaton state 6, search string offset 1
Output: Automaton state 7, search string offset 2
3rd input: Automaton state 7, search string offset 2
Output: Automaton state 8, search string offset 3
4th entry: Automaton state 8, search string offset 3
Output: Automaton state 9, "end flag"
In this way, the search result of the input character string “worm” is determined by four processes.

この第3実施形態は、パターンマッチングを行うTCPストリームに対してOOBデータを除外したパターンと除外しないパターンのいずれを優先させるべきかが予め分かっている場合に便利である。   This third embodiment is convenient when it is known in advance which of the patterns excluding OOB data and the patterns not excluded should be prioritized for a TCP stream to be subjected to pattern matching.

次に本発明の第4の実施の形態について図面を参照して説明する。文字列のパターン検索に使われる状態遷移のオートマトンは、状態と入力によって次に遷移すべき状態が一意に定まる有限オートマトンである公知のDFA(Deterministic Finite Automaton)と、次の遷移先が一意に決定しない公知のNFA(Nondeterministic Finite Automaton)の2種類に分けられる。本実施形態は次の遷移先が一意に決定しないNFAの場合、遷移分岐点の情報を「バックトラックスタック」という状態保持部に格納し、遷移先のうちの一つに進み、その遷移先の処理終了後にバックトラックスタックの情報を取得して遷移点からのもう1つの遷移先を辿るという処理を行う。   Next, a fourth embodiment of the present invention will be described with reference to the drawings. The state transition automaton used for character string pattern search is a known DFA (Deterministic Finite Automaton), which is a finite automaton that uniquely determines the next state to be transitioned by the state and input, and the next transition destination is uniquely determined. It is divided into two types of known NFA (Nondeterministic Finite Automaton). In this embodiment, in the case of an NFA in which the next transition destination is not uniquely determined, information on the transition branch point is stored in a state holding unit called “backtrack stack”, and the process proceeds to one of the transition destinations. After the process is completed, the backtrack stack information is acquired and another transition destination from the transition point is traced.

本実施形態に置いて検知したいパターンが正規表現パターンの”([ab]*c)*ad”というパターンであるとする。(ここで、”[ab]”の正規表現はaかbのどちらか、*は直前の表現の0個以上の繰り返しを示す。)オートマトンステート0の時に、検索文字列オフセットの文字が"a”であると、ステート1に遷移する経路と、ステート2に遷移する経路の両方が存在することになり、次に遷移する状態が一意に決まらない。文字列“ab”が入力された場合状態遷移部104に要求する動作は以下のようになる。   Assume that the pattern to be detected in the present embodiment is a regular expression pattern “([ab] * c) * ad”. (Here, the regular expression “[ab]” is either a or b, and * indicates zero or more repetitions of the previous expression.) When the automaton state is 0, the character of the search string offset is “a ", There will be both a path to transition to state 1 and a path to transition to state 2, and the next transition state is not uniquely determined. When the character string “ab” is input, the operation requested to the state transition unit 104 is as follows.

図16に一例を示す。初期値がオートマトンステート0,検索文字列オフセット0の時、同一文字"a"について2つの遷移先(ステート1とステート2)が存在する仮定すると、現在の状態であるオートマトンステート0と文字列オフセット0をバックトラックスタックに保存しそのうちの1つであるステート1を遷移先として任意に選び遷移する。
1回目
入力:“S=0”,“P=0”
出力:“S_o =1”,“P_o =1”
2回目
入力:“S=1”,“P=1”
出力:遷移不可
2回目の入力時点で、遷移可能なオートマトンステートが存在しないので状態遷移部104は遷移不可の判定を下しバックトラックスタックから“S=0”と“P=0”を読み出し、ステート2に遷移する。
3回目
入力:“S=0”,“P=0”
出力:“S_o=2”,“P_o =1”
4回目
入力:“S=2”,“P=1”
出力:“S_o =3”,終了フラグ
第4実施形態はNFAで使われるバックトラックスタックに検索文字列オフセットがOOBデータ上にある時の一時状態を共存させるというものである。
An example is shown in FIG. Assuming that there are two transition destinations (state 1 and state 2) for the same character “a” when the initial value is automaton state 0 and search character string offset 0, automaton state 0 and character string offset that are the current state 0 is stored in the backtrack stack, and one of them, state 1 is arbitrarily selected as a transition destination and a transition is made.
First input: “S = 0”, “P = 0”
Output: “S_o = 1”, “P_o = 1”
Second time input: “S = 1”, “P = 1”
Output: Transition impossible Since there is no transitionable automaton state at the second input time, the state transition unit 104 determines that transition is not possible and reads “S = 0” and “P = 0” from the backtrack stack, Transition to state 2.
3rd input: “S = 0”, “P = 0”
Output: “S_o = 2”, “P_o = 1”
4th input: “S = 2”, “P = 1”
Output: “S_o = 3”, end flag In the fourth embodiment, the temporary state when the search character string offset is on the OOB data coexists in the backtrack stack used in the NFA.

図13を参照すると、本実施の形態は第一の実施の形態で存在した図1のOOB用データバッファ105の代わりに、バックトラックスタック1301を使用している点が異なる。第4実施形態の文字列検索装置の制御部1300は、第1実施形態で使用したデータバッファ105の代わりにバックトラックスタック1301からデータを取り込んで再初期化を行う。該制御部はオートマトン処理要求部1302とオートマトン処理部1303からなる。   Referring to FIG. 13, this embodiment is different in that a backtrack stack 1301 is used instead of the OOB data buffer 105 of FIG. 1 existing in the first embodiment. The control unit 1300 of the character string search apparatus according to the fourth embodiment fetches data from the backtrack stack 1301 instead of the data buffer 105 used in the first embodiment and performs reinitialization. The control unit includes an automaton processing request unit 1302 and an automaton processing unit 1303.

図14において、オートマトン処理要求部1302が実行するステップ1401乃至1406は図2の処理要求部103が実行するステップ201乃至206にそれぞれ対応しており処理内容は同じである。   In FIG. 14, steps 1401 to 1406 executed by the automaton process request unit 1302 correspond to steps 201 to 206 executed by the process request unit 103 of FIG. 2, and the processing contents are the same.

図15において、オートマトン処理部1303は初期化された入力データ(T,U,P,S)の供給に応じ、ステップ1501においてフラグ"i”を0に設定し、ステップ1502でOOBデータオフセットUと検索文字列オフセットPを比較し互いに等しいか否かを判定する。ステップ1502の判定がNOであればフローはステップ1503に進み、YESであればステップ1511に進みフラグ"i”を1に設定し、ステップ1512でバックトラックスタック1301にPとSを書き込み、ステップ1513でPに1を加算し、ステップ1503に進む。   In FIG. 15, the automaton processing unit 1303 sets the flag “i” to 0 in step 1501 in response to the supply of the initialized input data (T, U, P, S), and sets the OOB data offset U in step 1502. The search character string offsets P are compared to determine whether they are equal to each other. If the determination in step 1502 is NO, the flow proceeds to step 1503. If YES, the flow proceeds to step 1511 and the flag “i” is set to 1. In step 1512, P and S are written in the backtrack stack 1301. 1 is added to P, and the process proceeds to Step 1503.

ステップ1503において、同一条件で複数の遷移状態が存在するか否かが判定され、NOであればフローはステップ1506に進み、YESであればステップ1504でバックトラックスタックにPとSを書き込み、ステップ1505でつぎの遷移先として任意の遷移状態を選択し、ステップ1506に進む。   In step 1503, it is determined whether or not a plurality of transition states exist under the same conditions. If NO, the flow proceeds to step 1506, and if YES, P and S are written to the backtrack stack in step 1504. In 1505, an arbitrary transition state is selected as the next transition destination, and the process proceeds to step 1506.

ステップ1506で、処理部903は状態遷移部104にデータT, P, Sを供給し、ステップ1507で該状態遷移部から検索結果を取得する。 処理部903はつぎの判定ステップ1508でこの検索結果としての判定出力をチェックし、判定出力が遷移指示(遷移可能)であれば状態遷移部104から出力データとして次の文字列オフセットP_oと次の遷移状態S_oを得る。これらの値で状態遷移部104の次の入力値を再初期化し(ステップ1509)、判定ステップ1510に進みフラグ"i”が0か1かを判定する。フラグ"i”が0であればまだOOBデータは検知されていないので、フローはステップ1502に戻り、フラグ"i”が1であれば既にOOBデータは検知されているのでフローはステップ1503に進む。   In step 1506, the processing unit 903 supplies data T, P, S to the state transition unit 104, and in step 1507, obtains a search result from the state transition unit. The processing unit 903 checks the determination output as the search result in the next determination step 1508. If the determination output is a transition instruction (transition is possible), the state transition unit 104 outputs the next character string offset P_o and the next transition as output data. Get state S_o. These values are used to reinitialize the next input value of the state transition unit 104 (step 1509), and the process proceeds to a determination step 1510 to determine whether the flag “i” is 0 or 1. If the flag “i” is 0, the OOB data has not been detected yet, so the flow returns to step 1502. If the flag “i” is 1, the OOB data has already been detected, and the flow proceeds to step 1503. .

第4実施形態は、バックトラックを実装したオートマトンによる検索処理であれば、検索文字列オフセットがOOBデータ上にある時の一時情報を別に設けたバッファを使用せずバックトラックスタックを共有することにより、記憶領域の構成とアクセスする為の処理が簡潔になる。   In the fourth embodiment, if search processing is performed by an automaton with backtracking, the backtrack stack is shared without using a buffer provided with temporary information separately when the search character string offset is on the OOB data. The configuration of the storage area and the process for accessing it are simplified.

本発明の第1の実施の形態における文字列検索装置のブロック図。The block diagram of the character string search apparatus in the 1st Embodiment of this invention. 第1実施形態のオートマトン処理要求部のフローチャート。The flowchart of the automaton process request part of 1st Embodiment. 第1実施形態のオートマトン処理部のフローチャート。The flowchart of the automaton process part of 1st Embodiment. 第1実施形態の動作例を説明する図。The figure explaining the operation example of 1st Embodiment. 本発明の第2の実施の形態における文字列検索装置のブロック図。The block diagram of the character string search apparatus in the 2nd Embodiment of this invention. 第2実施形態のオートマトン処理要求部のフローチャート。The flowchart of the automaton process request part of 2nd Embodiment. 第2実施形態の第1オートマトン処理部のフローチャート。The flowchart of the 1st automaton process part of 2nd Embodiment. 第2実施形態の第2オートマトン処理部のフローチャート。The flowchart of the 2nd automaton process part of 2nd Embodiment. 本発明の第3の実施の形態における文字列検索装置のブロック図。The block diagram of the character string search apparatus in the 3rd Embodiment of this invention. 第3実施形態のオートマトン処理要求部のフローチャート。The flowchart of the automaton process request part of 3rd Embodiment. 第3実施形態のオートマトン処理部のフローチャート。The flowchart of the automaton process part of 3rd Embodiment. 第3実施形態の動作例を説明する図。The figure explaining the operation example of 3rd Embodiment. 本発明の第4の実施の形態における文字列検索装置のブロック図。The block diagram of the character string search apparatus in the 4th Embodiment of this invention. 第4実施形態のオートマトン処理要求部のフローチャート。The flowchart of the automaton process request part of 4th Embodiment. 第4実施形態のオートマトン処理部のフローチャート。The flowchart of the automaton process part of 4th Embodiment. 第4実施形態の動作例を説明する図。The figure explaining the operation example of 4th Embodiment.

符号の説明Explanation of symbols

101 入力TCPテキスト
100 制御部
102、502,902,1302 オートマトン処理要求部
103、503,903,1303 オートマトン処理部
104 オートマトン状態遷移部
105 データバッファ
106 パターンマッチング結果出力部
901 検索モード選択部
1301 バックトラックスタック
AT オートマトン
EX1 文字列例
EX2 文字列例
AT2 NFAのオートマトン
EX3 NFAの文字列例
DESCRIPTION OF SYMBOLS 101 Input TCP text 100 Control part 102,502,902,1302 Automaton process request part 103,503,903,1303 Automaton process part 104 Automaton state transition part 105 Data buffer 106 Pattern matching result output part 901 Search mode selection part 1301 Backtrack Stack AT Automaton EX1 Character string example EX2 Character string example AT2 NFA automaton EX3 NFA character string example

Claims (13)

状態遷移部と、制御部を具備し、
該状態遷移部はテキストパターンの文字とその遷移状態を記憶し、外部から入力文字が供給されると該テキストパターンを検索し、該入力文字と検索された文字を相互に照合し検索結果として、一致する場合次遷移指示の判定出力を生成し、一致しない場合遷移不可の判定出力を生成し、
前記制御部はTCPのOOBデータを含むTCPテキストを受信し、文字検索点を受信テキスト上で開始点から終止点方向に順次移行させ該検索点上の文字を前記状態遷移部に供給しながら該OOBデータの位置を探索し、その結果、次遷移指示の判定出力を該状態遷移部から得ると該検索点を1文字分前記終止点方向に移行させ、前記OOBデータ検知前に該状態遷移部から遷移不可の判定出力を得ると照合失敗出力を生成し、前記OOBデータの検知時点で該OOBデータの次の文字を検索文字として前記状態遷移部に供給しその判定出力が遷移不可の場合該状態遷移部に前記OOBデータの位置にある文字を検索文字として前記状態遷移部に供給し、前記OOBデータの検知後に前記状態遷移部の判定出力が遷移不可の場合照合失敗出力を生成し前記終止点を表示する場合照合成功出力を生成することを特徴とする文字列検索装置。
A state transition unit and a control unit;
The state transition unit stores text pattern characters and their transition states. When an input character is supplied from the outside, the text pattern is searched. The input character and the searched character are collated with each other as a search result. If there is a match, a determination output for the next transition instruction is generated.
The control unit receives TCP text including TCP OOB data, sequentially shifts the character search point from the start point to the end point on the received text, and supplies the character on the search point to the state transition unit. When the position of the OOB data is searched and, as a result, the determination output of the next transition instruction is obtained from the state transition unit, the search point is shifted in the direction of the end point by one character, and the state transition unit is detected before the OOB data is detected. When the determination output indicating that the transition is not possible is obtained, a collation failure output is generated, and when the OOB data is detected, the next character of the OOB data is supplied to the state transition unit as a search character. If the character at the position of the OOB data is supplied to the state transition unit as the search character to the state transition unit, and the determination output of the state transition unit cannot transition after detection of the OOB data, a verification failure occurs String search apparatus characterized by generating a verification success output when generating and displaying the end point.
請求項1において、前記制御部は前記OOBデータの位置を検知すると前記検索点の現在位置情報を一時記憶部に保存し、
前記検索点を現在位置に1を加算した位置に移行させ、前記OOBデータ検知後に遷移不可表示出力を前記状態遷移部から得ると前記検索点を該一時記憶部に保存した位置情報の示す位置に移行させることを特徴とする文字列検索装置。
In Claim 1, if the said control part detects the position of the said OOB data, it will preserve | save the present position information of the said search point in a temporary memory part,
When the search point is shifted to a position obtained by adding 1 to the current position and a transition impossible display output is obtained from the state transition unit after the OOB data is detected, the search point is moved to the position indicated by the position information stored in the temporary storage unit. A character string search device characterized by being transferred.
状態遷移部と、制御部を具備し、
該状態遷移部はテキストパターンの各文字とその遷移状態を記憶し、外部から入力文字が供給されると該テキストパターンを検索し、該入力文字と検索された文字を相互に照合し検索結果として、一致する場合次遷移指示の判定出力を生成し、一致しない場合遷移不可の判定出力を生成し、
前記制御部はTCPのOOBデータを含むTCPテキストを受信し、文字検索点を受信テキスト上で開始点から終止点方向に順次移行させ該検索点上の文字を前記状態遷移部に供給しながら該OOBデータの位置を探索し、その結果、次遷移指示の判定出力を該状態遷移部から得ると該検索点を1文字分前記終止点方向に移行させ、前記OOBデータ検知前に該状態遷移部から遷移不可の判定出力を得ると照合失敗出力を生成し、前記OOBデータの検知時点で前記状態遷移部の判定出力が遷移不可の場合前記検索点から1文字分前記終止点方向に移行した位置の文字を検索文字として前記状態遷移部に供給し、前記OOBデータの検知後に前記状態遷移部の判定出力が遷移不可の場合照合失敗出力を生成し、前記終始点を表示する場合照合成功出力を生成することを特徴とする文字列検索装置。
A state transition unit and a control unit;
The state transition unit stores each character of the text pattern and its transition state, searches for the text pattern when an input character is supplied from the outside, and collates the input character with the retrieved character as a search result. If there is a match, a determination output of the next transition instruction is generated. If they do not match, a determination output indicating that the transition is impossible is generated.
The control unit receives TCP text including TCP OOB data, sequentially shifts the character search point from the start point to the end point on the received text, and supplies the character on the search point to the state transition unit. When the position of the OOB data is searched and, as a result, the determination output of the next transition instruction is obtained from the state transition unit, the search point is shifted in the direction of the end point by one character, and the state transition unit is detected before the OOB data is detected. When a determination output indicating that a transition is impossible is obtained, a collation failure output is generated, and when the determination output of the state transition unit is not transitionable at the time of detection of the OOB data, a position shifted from the search point toward the end point by one character Is supplied to the state transition unit as a search character, and after the OOB data is detected, if the determination output of the state transition unit is not transitionable, a collation failure output is generated and the end point is displayed. String search device and generates a success output.
モード0またはモード1に設定する動作モード設定部と、状態遷移部と、制御部を具備し、
該状態遷移部はテキストパターンの各文字とその遷移状態を記憶し、外部から入力文字が供給されると該テキストパターンを検索し、該入力文字と検索された文字を相互に照合し検索結果として、一致する場合次遷移指示の判定出力を生成し、一致しない場合遷移不可の判定出力を生成し、
前記制御部はTCPのOOBデータを含むTCPテキストを受信し、文字検索点を受信テキスト上で開始点から終止点方向に順次移行させ該検索点上の文字を前記状態遷移部に供給しながら該OOBデータの位置を探索し、その結果、次遷移指示の判定出力を該状態遷移部から得ると該検索点を1文字分前記終止点方向に移行させ、前記OOBデータ検知前に該状態遷移部から遷移不可の判定出力を得ると照合失敗出力を生成し、
前記制御部はモード0の時、前記OOBデータの検知時点で該OOBデータの次の文字を検索文字として前記状態遷移部に供給しその判定出力が遷移不可の場合該状態遷移部に前記OOBデータの位置にある文字を検索文字として前記状態遷移部に供給し、モード1の時、前記OOBデータの検知時点で前記状態遷移部の判定出力が遷移不可の場合前記検索点を1文字分前記終止点方向に移行した位置の文字を検索文字として前記状態遷移部に供給し、
前記OOBデータの検知後に前記状態遷移部の判定出力が遷移不可の場合照合失敗出力を生成し前記終止点を表示する場合照合成功出力を生成することを特徴とする文字列検索装置。
An operation mode setting unit for setting mode 0 or mode 1, a state transition unit, and a control unit;
The state transition unit stores each character of the text pattern and its transition state, searches for the text pattern when an input character is supplied from the outside, and collates the input character with the retrieved character as a search result. If there is a match, a determination output of the next transition instruction is generated. If they do not match, a determination output indicating that the transition is impossible is generated.
The control unit receives TCP text including TCP OOB data, sequentially shifts the character search point from the start point to the end point on the received text, and supplies the character on the search point to the state transition unit. When the position of the OOB data is searched and, as a result, the determination output of the next transition instruction is obtained from the state transition unit, the search point is shifted in the direction of the end point by one character, and the state transition unit is detected before the OOB data is detected. When a judgment output indicating that transition is impossible is obtained from, a collation failure output is generated,
When the control unit is in mode 0, when the OOB data is detected, the control unit supplies the next character of the OOB data as a search character to the state transition unit, and when the determination output cannot be changed, the state transition unit receives the OOB data. The character at the position is supplied as a search character to the state transition unit, and when the OOB data is detected at the time of the mode 1 in the mode 1, if the judgment output of the state transition unit is not transitionable, the search point is terminated by one character. Supply the character at the position moved in the point direction to the state transition unit as a search character,
A character string search device that generates a collation failure output when the determination output of the state transition unit is not transitionable after detection of the OOB data, and generates a collation success output when the end point is displayed.
請求項1、2,3または4において、前記OOBデータの検知時点において文字位置情報を記憶部に保存し、前記状態遷移部の判定出力が遷移不可の場合該記憶部から保存された文字位置情報を読み出し、該文字位置情報の文字を検索文字として前記状態遷移部に供給することを特徴とする文字列検索装置。   5. The character position information stored in claim 1, 2, 3, or 4 when character position information is stored in a storage unit at the time of detection of the OOB data, and the determination output of the state transition unit is not transitionable. , And supplies the character of the character position information to the state transition unit as a search character. 請求項5において、前記記憶部はバックトラックスタックであることを特徴とする文字列検索装置。   6. The character string search device according to claim 5, wherein the storage unit is a backtrack stack. 状態遷移部と、記憶部と、オートマトン処理要求部と、オートマトン処理部を具備し、
該状態遷移部はテキストパターンの各文字とその遷移状態を記憶し、外部から入力文字が供給されると該テキストパターンを検索し、該入力文字と検索された文字を相互に照合し検索結果として、一致する場合次遷移指示出力を生成し、一致しない場合遷移不可表示出力を生成し、
前記オートマトン処理要求部はTCPのOOBデータを含むTCPテキストからなる入力データを受信し、該OOBデータの位置情報を該入力データから取得し、前記オートマトン処理部の入力値を初期化し、
前記オートマトン処理部は現時点の検索文字列オフセットと前記OOBデータ位置の間の一致または不一致を検出し、該一致を検出した場合該検索文字列オフセットと遷移状態を前記記憶部に保存し、該検索文字列オフセットに1を加算し、該加算された検索文字列オフセットと該遷移状態を前記状態遷移部に供給し、
該不一致を検出した場合現時点の検索文字列オフセットと遷移状態を前記状態遷移部に供給しその出力を判定し遷移不可であれば前記オートマトン処理要求部に前記記憶部を検索させ、検索文字列オフセットと遷移状態が保存されていれば保存されている情報で前記入力値を再初期化し、該記憶部に検索文字列オフセットと遷移状態が保存されていない場合照合失敗出力を生成することを特徴とする文字列検索装置。
A state transition unit, a storage unit, an automaton processing request unit, and an automaton processing unit;
The state transition unit stores each character of the text pattern and its transition state, searches for the text pattern when an input character is supplied from the outside, and collates the input character with the retrieved character as a search result. If there is a match, a next transition instruction output is generated. If they do not match, a transition impossible display output is generated.
The automaton processing request unit receives input data composed of TCP text including TCP OOB data, acquires position information of the OOB data from the input data, initializes an input value of the automaton processing unit,
The automaton processing unit detects a match or mismatch between a current search character string offset and the OOB data position, and when the match is detected, stores the search character string offset and a transition state in the storage unit, and performs the search. 1 is added to the character string offset, and the added search character string offset and the transition state are supplied to the state transition unit,
When the mismatch is detected, the current search character string offset and the transition state are supplied to the state transition unit, the output is determined, and if the transition is not possible, the automaton processing request unit is searched for the storage unit, and the search character string offset If the transition state is stored, the input value is reinitialized with the stored information, and if the search string offset and the transition state are not stored in the storage unit, a collation failure output is generated. Character string search device.
請求項7において、前記記憶部はバックトラックスタックであることを特徴とする文字列検索装置。   The character string search device according to claim 7, wherein the storage unit is a backtrack stack. 状態遷移部と、オートマトン処理要求部と、第1オートマトン処理部と、第2オートマトン処理部を具備し、
該状態遷移部はテキストパターンの各文字とその遷移状態を記憶し、外部から入力文字が供給されると該テキストパターンを検索し、該入力文字と検索された文字を相互に照合し検索結果として、一致する場合次遷移指示出力を生成し、一致しない場合遷移不可表示出力を生成し、
前記オートマトン処理要求部はTCPのOOBデータを含むTCPテキストからなる入力データを受信し、該OOBデータの位置情報を該入力データから取得し、前記オートマトン処理部の入力値を初期化し、
前記第1オートマトン処理部は現時点の検索文字列オフセットと前記OOBデータ位置の間の一致または不一致を検出し、一致を検出すると前記第2オートマトン処理部を起動し、現時点の検索文字列オフセットと遷移状態を該第2オートマトン処理部に引数として供給し、不一致を検出すると現時点の検索文字列オフセットと遷移状態を前記状態遷移部に供給し、
該第2オートマトン処理部は、
前記第1オートマトン処理部により起動されると、該検索文字列オフセットに1を加算し、該加算された検索文字列オフセットと該遷移状態を前記状態遷移部に供給し、 該不一致を検出した場合現時点の検索文字列オフセットと遷移状態を前記状態遷移部に供給しその出力を判定し、遷移不可出力であれば前記引数に基づき検索前記入力値を再初期化することを特徴とする文字列検索装置。
A state transition unit, an automaton processing request unit, a first automaton processing unit, and a second automaton processing unit;
The state transition unit stores each character of the text pattern and its transition state, searches for the text pattern when an input character is supplied from the outside, and collates the input character with the retrieved character as a search result. If there is a match, a next transition instruction output is generated. If they do not match, a transition impossible display output is generated.
The automaton processing request unit receives input data composed of TCP text including TCP OOB data, acquires position information of the OOB data from the input data, initializes an input value of the automaton processing unit,
The first automaton processing unit detects a match or mismatch between the current search character string offset and the OOB data position, and when the match is detected, activates the second automaton processing unit to change the current search character string offset and transition The state is supplied as an argument to the second automaton processing unit, and when a mismatch is detected, the current search string offset and the transition state are supplied to the state transition unit,
The second automaton processor is
When activated by the first automaton processing unit, 1 is added to the search character string offset, and the added search character string offset and the transition state are supplied to the state transition unit, and the mismatch is detected. Character string search characterized in that the current search character string offset and transition state are supplied to the state transition unit, the output is determined, and if the output is not transitionable, the search is re-initialized based on the argument. apparatus.
テキストパターンの各文字とその遷移状態を記憶し、外部から入力文字が供給されると該テキストパターンを検索し、該入力文字と検索された文字を相互に照合し検索結果として、一致する場合次遷移指示出力を生成し、一致しない場合遷移不可表示出力を生成する状態遷移部を備えるシステムにおいて、
a)TCPのOOBデータを含むTCPテキストを受信し、
b)文字検索点を該受信テキスト上で順次開始点から終止点方向に移行させながら前記OOBデータを探索し、
c)該検索点の文字を検索文字として前記状態遷移部に供給して該状態遷移部の出力を判定し、その判定結果が次遷移指示の場合つぎの文字を検索文字として該状態遷移部に供給し、
d)前記OOBデータの検知前に前記(c)の判定結果が遷移不可表示の場合照合失敗出力を生成し、
e)前記OOBデータの検知時点で該OOBデータの次の文字を検索文字として前記(c)に戻りその判定結果が遷移不可表示の場合該状態遷移部に前記OOBデータの位置にある文字を検索文字として前記(c)に戻り、
f)前記OOBデータの検知後に前記(c)の判定結果が遷移不可表示の場合照合失敗出力を生成し、前記終止点を表示する場合照合成功出力を生成することを特徴とする文字列検索方法。
Each character of the text pattern and its transition state are stored, and when the input character is supplied from the outside, the text pattern is searched, and the input character and the searched character are compared with each other as a search result. In a system including a state transition unit that generates a transition instruction output and generates a transition impossible display output if they do not match,
a) Receive TCP text containing TCP OOB data,
b) Searching the OOB data while sequentially shifting the character search point on the received text from the start point to the end point;
c) Supply the character at the search point as a search character to the state transition unit to determine the output of the state transition unit. If the determination result is a next transition instruction, the next character is used as the search character to the state transition unit. Supply
d) Before the detection of the OOB data, if the determination result of (c) is a non-transitionable display, a collation failure output is generated,
e) When the OOB data is detected, the next character of the OOB data is used as a search character and the process returns to (c). Return to (c) as a character,
f) After detecting the OOB data, a character string search method characterized by generating a collation failure output when the determination result of (c) is non-transitionable display and generating a collation success output when displaying the end point. .
テキストパターンの各文字とその遷移状態を記憶し、外部から入力文字が供給されると該テキストパターンを検索し、該入力文字と検索された文字を相互に照合し検索結果として、一致する場合次遷移指示出力を生成し、一致しない場合遷移不可表示出力を生成する状態遷移部を備えるシステムにおいて、
a)TCPのOOBデータを含むTCPテキストを受信し、
b)文字検索点を該受信テキスト上で順次開始点から終止点方向に移行させながら前記OOBデータを探索し、
c)該検索点の文字を検索文字として前記状態遷移部に供給して該状態遷移部の出力を判定し、その判定結果が次遷移指示の場合つぎの文字を検索文字として該状態遷移部に供給し、
d)前記OOBデータの検知前に前記(c)の判定結果が遷移不可表示の場合照合失敗出力を生成し、
e)前記OOBデータの検知時点で前記(c)の判定結果が遷移不可の場合前記検索点から1文字分前記終止点方向に移行した位置の文字を検索文字として前記(c)に戻り、
f)前記OOBデータの検知後に前記(c)の判定結果が遷移不可の場合照合失敗出力を生成し、前記終止点を表示する場合照合成功出力を生成することを特徴とする文字列検索方法。
Each character of the text pattern and its transition state are stored, and when the input character is supplied from the outside, the text pattern is searched, and the input character and the searched character are compared with each other as a search result. In a system including a state transition unit that generates a transition instruction output and generates a transition impossible display output if they do not match,
a) Receive TCP text containing TCP OOB data,
b) Searching the OOB data while sequentially shifting the character search point on the received text from the start point to the end point;
c) Supply the character at the search point as a search character to the state transition unit to determine the output of the state transition unit. If the determination result is a next transition instruction, the next character is used as the search character to the state transition unit. Supply
d) Before the detection of the OOB data, if the determination result of (c) is a non-transitionable display, a collation failure output is generated,
e) When the determination result of (c) is not transitionable at the time of detection of the OOB data, the character at the position shifted from the search point toward the end point by one character is returned as the search character to (c),
f) A character string search method, wherein after the detection of the OOB data, a collation failure output is generated when the determination result of (c) is not transitionable, and a collation success output is generated when the end point is displayed.
テキストパターンの各文字とその遷移状態を記憶し、外部から入力文字が供給されると該テキストパターンを検索し、該入力文字と検索された文字を相互に照合し検索結果として、一致する場合次遷移指示出力を生成し、一致しない場合遷移不可表示出力を生成する状態遷移部を備えるシステムにおいて、
a)動作モードを0または1に設定し、
b)TCPのOOBデータを含むTCPテキストを受信し、
c)文字検索点を該受信テキスト上で順次開始点から終止点方向に移行させながら前記OOBデータを探索し、
d)該検索点の文字を検索文字として前記状態遷移部に供給して該状態遷移部の出力を判定し、その判定結果が次遷移指示の場合つぎの文字を検索文字として該状態遷移部に供給し、
e)前記OOBデータの検知前に前記(c)の判定結果が遷移不可表示の場合照合失敗出力を生成し、
f)動作モードが0に設定されている時、前記OOBデータの検知時点で該OOBデータの次の文字を検索文字として前記(c)に戻りその判定結果が遷移不可表示の場合該状態遷移部に前記OOBデータの位置にある文字を検索文字として前記(c)に戻り、
g)動作モードが1に設定されている時、前記OOBデータの検知時点で前記(d)の判定結果が遷移不可表示出力であれば前記検索点から1文字分前記終止点方向に移行した位置の文字を検索文字として前記(d)に戻り、
h)動作モードに関係なく、前記OOBデータの検知後に前記(d)の判定結果が(1)遷移不可表示の場合該状態遷移部に前記OOBデータの位置にある文字を検索文字として前記(d)に戻り、遷移不可表示の場合(2)照合失敗出力を生成し、(3)前記終止点を表示する場合照合成功出力を生成することを特徴とする文字列検索方法。
Each character of the text pattern and its transition state are stored, and when the input character is supplied from the outside, the text pattern is searched, and the input character and the searched character are compared with each other as a search result. In a system including a state transition unit that generates a transition instruction output and generates a transition impossible display output if they do not match,
a) Set the operation mode to 0 or 1,
b) Receive TCP text containing TCP OOB data,
c) searching the OOB data while sequentially shifting the character search point from the start point to the end point on the received text;
d) Supply the character at the search point as a search character to the state transition unit to determine the output of the state transition unit, and if the determination result is a next transition instruction, the next character is used as the search character to the state transition unit. Supply
e) Before the detection of the OOB data, if the determination result of (c) is a transition impossible display, a collation failure output is generated,
f) When the operation mode is set to 0, when the OOB data is detected, the next character of the OOB data is used as a search character and the process returns to the step (c), and the state transition portion is displayed when the determination result is non-transitional display. The character at the position of the OOB data is used as a search character to return to (c),
g) When the operation mode is set to 1, if the determination result of (d) at the time of detection of the OOB data is a non-transitionable display output, the position shifted from the search point toward the end point by one character Return to (d) as a search character,
h) Regardless of the operation mode, after the OOB data is detected, if the determination result of (d) is (1) non-transition display, the character at the position of the OOB data is used as the search character in the state transition part (d) ), The character string search method is characterized in that (2) a collation failure output is generated when transition is not possible, and (3) a collation success output is generated when the end point is displayed.
請求項10乃至12のいずれかに記載の文字検索方法を実施するためのプログラム。   A program for carrying out the character search method according to any one of claims 10 to 12.
JP2006188732A 2006-07-08 2006-07-08 Character string retrieving apparatus, method and computer program Withdrawn JP2008017371A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006188732A JP2008017371A (en) 2006-07-08 2006-07-08 Character string retrieving apparatus, method and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006188732A JP2008017371A (en) 2006-07-08 2006-07-08 Character string retrieving apparatus, method and computer program

Publications (1)

Publication Number Publication Date
JP2008017371A true JP2008017371A (en) 2008-01-24

Family

ID=39073955

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006188732A Withdrawn JP2008017371A (en) 2006-07-08 2006-07-08 Character string retrieving apparatus, method and computer program

Country Status (1)

Country Link
JP (1) JP2008017371A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111199156A (en) * 2018-10-31 2020-05-26 北京国双科技有限公司 Named entity recognition method, device, storage medium and processor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111199156A (en) * 2018-10-31 2020-05-26 北京国双科技有限公司 Named entity recognition method, device, storage medium and processor
CN111199156B (en) * 2018-10-31 2023-04-07 北京国双科技有限公司 Named entity recognition method, device, storage medium and processor

Similar Documents

Publication Publication Date Title
US7685637B2 (en) System security approaches using sub-expression automata
US7725510B2 (en) Method and system for multi-character multi-pattern pattern matching
US9990583B2 (en) Match engine for detection of multi-pattern rules
US9245007B2 (en) Dynamically detecting near-duplicate documents
US20090320134A1 (en) Detecting Secondary Infections in Virus Scanning
US9158893B2 (en) System for finding code in a data flow
US7721334B2 (en) Detection of code-free files
US20150135256A1 (en) Disambiguating conflicting content filter rules
CA2743273C (en) Method and device for intercepting junk mail
US20110277033A1 (en) Identifying Malicious Threads
US9838418B1 (en) Detecting malware in mixed content files
US7216364B2 (en) System security approaches using state tables
KR102104610B1 (en) Fuzzing method and device for network protocol vulnerability detection
CN109413016B (en) Rule-based message detection method and device
EP1607823A2 (en) Method and system for virus detection based on finite automata
JP2008017371A (en) Character string retrieving apparatus, method and computer program
US8291505B2 (en) Detecting computer data containing compressed video data as banned computer data
KR101851330B1 (en) Apparatus and method for detecting code reuse attack
CN113849813A (en) Data detection method and device, electronic equipment and storage medium
CN114547628A (en) Vulnerability detection method and device
KR20160089995A (en) Apparatus and method for collecting and analysing HTML5 documents based a distributed parallel processing
JP6599053B1 (en) Information processing apparatus, information processing method, and information processing program
CN109688043A (en) A kind of IMAP protocol multi-link association analytic method and system
JP2005295208A (en) Data processing apparatus and program
JP2009205373A (en) Information processor, information processing method and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090612

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20090804

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20100416