JP2015046683A - Traffic scanning device and method - Google Patents

Traffic scanning device and method Download PDF

Info

Publication number
JP2015046683A
JP2015046683A JP2013175567A JP2013175567A JP2015046683A JP 2015046683 A JP2015046683 A JP 2015046683A JP 2013175567 A JP2013175567 A JP 2013175567A JP 2013175567 A JP2013175567 A JP 2013175567A JP 2015046683 A JP2015046683 A JP 2015046683A
Authority
JP
Japan
Prior art keywords
data
traffic
unit
entry
pattern
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.)
Granted
Application number
JP2013175567A
Other languages
Japanese (ja)
Other versions
JP6096084B2 (en
Inventor
悠介 関原
Yusuke Sekihara
悠介 関原
晃嗣 山崎
Akitsugu Yamazaki
晃嗣 山崎
浦野 正美
Masami Urano
正美 浦野
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013175567A priority Critical patent/JP6096084B2/en
Publication of JP2015046683A publication Critical patent/JP2015046683A/en
Application granted granted Critical
Publication of JP6096084B2 publication Critical patent/JP6096084B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To quickly and flexibly discriminate whether or not data included in a packet to be transferred on a communication network are belonging to a predetermined data group.SOLUTION: A hash value is generated with a predetermined entry pattern to be detected as a key, and the hash value is stored as collation data. Also, a mask for using data having desired inspection length included in traffic as an entry is generated and stored. Data from a desired position designated by an offset value are segmented from a traffic pattern, and the mask is applied to the segmented data such that a hash value is generated as an entry having the inspection length. Thus obtained hash value of each packet is compared with the stored collation data such that whether or not a suspicious pattern is included is determined.

Description

本発明は、通信ネットワーク上で転送されるパケットに含まれるデータを識別するトラヒック走査装置及び方法に関する。   The present invention relates to a traffic scanning apparatus and method for identifying data included in a packet transferred on a communication network.

2つのデータがビット列、バイト列、文字列などとして一致するかどうかを照合するデータ一致照合問題は、多くのアプリケーションにおいて頻出する重要な問題であり、例えば、テキスト検索、データベース工学、通信工学などの分野において重要な技術課題の要素技術として利用されている。とりわけ、通信ネットワークにおいてパケットを比較し、一致するものを検出し弁別する技術は、セキュリティの確保や異常トラヒックの検出によるインフラの安定化などに利用される重要な要素技術となっている。   The data matching problem that checks whether two pieces of data match as a bit string, a byte string, a character string, etc. is an important problem that frequently appears in many applications, such as text search, database engineering, communication engineering, etc. It is used as an elemental technology for important technical issues in the field. In particular, a technique for comparing packets in a communication network and detecting and discriminating matching packets is an important elemental technique used for ensuring security and stabilizing infrastructure by detecting abnormal traffic.

データを照合して一致するものを判別するため用いられる技術として、非特許文献1に示されるブルームフィルタ(Bloom filter)がよく知られている。ブルームフィルタは、データサイエンス分野で考案された古典的なデータ構造の一種であり、ある程度の偽陽性(false-positive)検出を許容することにより空間計算効率の向上を図ったものである。ブルームフィルタは、効率のよいデータ探索・一致判定を行えるため、通信分野においても一般的に利用されている。   A Bloom filter shown in Non-Patent Document 1 is well known as a technique used for collating data to determine what matches. The Bloom filter is a kind of classic data structure devised in the field of data science, and is intended to improve spatial calculation efficiency by allowing a certain amount of false-positive detection. The Bloom filter is generally used also in the communication field because it can perform efficient data search and match determination.

通信分野におけるブルームフィルタの利用例として、非特許文献2に示すようなものが挙げられる。非特許文献2に示すものでは、ブルームフィルタの高速性を維持しながら様々のデータ長のパケットに対応させるために、図1に示すように、複数のブルームフィルタを並列に配置している。この構成では、パケットのデータ長の最小値Lminが3バイト、最大値Lmaxがwバイトであるとして、長さがLmaxバイトであってパケットデータが1クロックにつき1バイトずつシフトするウィンドウバッファ91と、相互に並列に設けられたLmax−Lmin+1個のブルームフィルタ92とを備えている。これらのブルームフィルタ92は、それぞれ、ウィンドウキャッシュ91の先頭の3バイトが入力するデータ長がLmin(=3バイト)用のブルームフィルタ、ウィンドウキャッシュ91の先頭の4バイトが入力するデータ長が4バイト用のブルームフィルタ、…、ウィンドウキャッシュ91内の全データが入力するデータ長がLmax(=wバイト)用のブルームフィルタである。図1に示した構成では、データ長ごとのブルームフィルタを設けることによって、種々のデータ長のパケットデータをハードウェアにより高速に処理することができる。 As an example of using the Bloom filter in the communication field, the one shown in Non-Patent Document 2 can be cited. In the non-patent document 2, a plurality of bloom filters are arranged in parallel as shown in FIG. 1 in order to cope with packets of various data lengths while maintaining the high speed of the bloom filter. In this configuration, assuming that the minimum value L min of the packet data length is 3 bytes and the maximum value L max is w bytes, the length is L max bytes and the packet data is shifted by 1 byte per clock. 91 and L max −L min +1 Bloom filters 92 provided in parallel with each other. Each of these Bloom filters 92 is a Bloom filter whose data length inputted by the first 3 bytes of the window cache 91 is L min (= 3 bytes), and whose data length inputted by the first 4 bytes of the window cache 91 is 4 Bloom filter for bytes,..., Bloom filter for which the data length input by all data in the window cache 91 is L max (= w bytes). In the configuration shown in FIG. 1, by providing a Bloom filter for each data length, packet data of various data lengths can be processed at high speed by hardware.

特表2005−522781号公報JP-T-2005-522781

Burton H. Bloom, "Space/Time Trade-offs in Hash Coding with Allowable Errors", Communications of the ACM, Vol. 13, No. 7, pp. 422-426 (July, 1970).Burton H. Bloom, "Space / Time Trade-offs in Hash Coding with Allowable Errors", Communications of the ACM, Vol. 13, No. 7, pp. 422-426 (July, 1970). S. Dharmapurikar, et al., "Deep Packet Inspection Using Parallel Bloom Filters", IEEE Micro, Vol. 24, Issue 1, pp. 52-61 (January/February 2004).S. Dharmapurikar, et al., "Deep Packet Inspection Using Parallel Bloom Filters", IEEE Micro, Vol. 24, Issue 1, pp. 52-61 (January / February 2004).

通信ネットワーク上に流れるトラヒックには様々なデータ長のパケットが含まれており、トラヒックの検査などを目的としてパケットに含まれるデータが所定のデータ集合に含まれるか否かを判別するために、非特許文献1に示されるもののように、それぞれ対象とするデータ長が異なるような複数のブルームフィルタを配置する構成がある。この構成では高速に処理を行うことができる反面、検査するパケットのデータ長ごとにハードウェアを用意することとなるから、回路規模及び配線複雑度が増大するという課題がある。またこの構成は、予め用意されたレジスタ長以外の検査長には対応できず、柔軟性が十分に大きいとは言い難い。   The traffic flowing on the communication network includes packets of various data lengths, and in order to determine whether or not the data included in the packet is included in a predetermined data set for the purpose of traffic inspection or the like, As shown in Patent Document 1, there is a configuration in which a plurality of Bloom filters having different target data lengths are arranged. In this configuration, processing can be performed at high speed, but hardware is prepared for each data length of the packet to be inspected, which causes a problem that the circuit scale and wiring complexity increase. In addition, this configuration cannot cope with inspection lengths other than the register length prepared in advance, and it is difficult to say that the flexibility is sufficiently large.

一方、ソフトウェア処理によってパケットのデータが所定のデータ集合に含まれるか否かを判定することも可能であるが、ハードウェアによる処理に比べてソフトウェア処理は時間がかかり、広帯域化する通信トラヒックにおけるパケットデータのデータの比較及び一致の判定を行うことに対しては、ソフトウェアによる処理では十分な処理性能を得ることができない。   On the other hand, although it is possible to determine whether or not the packet data is included in a predetermined data set by software processing, the software processing takes time compared to the processing by hardware, and the packet in communication traffic having a wider bandwidth With respect to performing comparison of data and determination of coincidence, sufficient processing performance cannot be obtained by processing by software.

本発明の目的は、通信ネットワーク上で転送されるデータを識別するためのトラヒック走査方法であって、転送されるパケットに含まれるデータが所定のデータ集合に属するか否かを高速かつ柔軟に弁別することができるトラヒック走査装置及び方法を提供することにある。   An object of the present invention is a traffic scanning method for identifying data transferred on a communication network, and discriminates whether or not data included in a transferred packet belongs to a predetermined data set at high speed and flexibly. It is an object of the present invention to provide a traffic scanning apparatus and method that can be used.

本発明のトラヒック走査装置は、通信ネットワーク上で転送されるパケットに含まれるデータが所定のデータ集合に属するか否かを判別するトラヒック走査装置であって、キーが与えられてキーの写像となるハッシュ値を生成するハッシュ演算を実行するハッシュ演算手段と、所定のエントリパターンをキーとしてハッシュ演算部によりハッシュ演算を実行して得た結果を陽性の照合データとして保持する記憶手段と、トラヒックパターンから、その任意の位置からの任意の検査長のデータを抽出してエントリとする抽出手段と、抽出手段で抽出されたエントリをキーとしてハッシュ演算手段に与えてハッシュ演算を実行させて結果を取得し、その結果と記憶手段に保持されている照合データとを比較照合する検査手段と、を有する。   The traffic scanning device of the present invention is a traffic scanning device that determines whether or not data included in a packet transferred on a communication network belongs to a predetermined data set, and is given a key to be a mapping of the key. A hash calculation means for executing a hash calculation for generating a hash value, a storage means for holding a result obtained by executing a hash calculation by a hash calculation unit using a predetermined entry pattern as a key, as positive matching data, and a traffic pattern , An extraction means that extracts data of an arbitrary inspection length from the arbitrary position as an entry, and gives the entry calculated by the extraction means as a key to the hash calculation means to execute a hash operation to obtain a result And an inspection means for comparing and collating the result with the collation data held in the storage means.

本発明のトラヒック走査方法は、通信ネットワーク上で転送されるパケットに含まれるデータが所定のデータ集合に属するか否かを判別するトラヒック走査方法であって、所定のエントリパターンをキーとしてハッシュ演算を実行し、そのハッシュ演算の結果を陽性の照合データとして保持する段階と、トラヒックパターンから、その任意の位置からの任意の検査長のデータを抽出してエントリとする抽出段階と、エントリをキーとしてハッシュ演算を実行してその結果を比較データとする段階と、比較データと照合データとを比較照合する段階と、を有する。   The traffic scanning method of the present invention is a traffic scanning method for determining whether or not data included in a packet transferred on a communication network belongs to a predetermined data set, and performs a hash operation using a predetermined entry pattern as a key. Executing and holding the result of the hash operation as positive collation data, extracting the data of an arbitrary inspection length from the arbitrary position from the traffic pattern as an entry, and using the entry as a key A step of executing a hash operation and using the result as comparison data, and a step of comparing and comparing the comparison data and the verification data.

本発明によれば、トラヒックパターンから、その任意の位置からの任意の検査長のデータを抽出してエントリとしてハッシュ値を演算し、このハッシュ値と照合用のハッシュ値とを比較照合するようにしたので、複数のブルームフィルタを用いることなく任意の検査長に対応でき、パケットに含まれるデータが所定のデータ集合に属するか否かを高速かつ柔軟に弁別することができるようになる、という効果が得られる。   According to the present invention, from the traffic pattern, data of an arbitrary inspection length from an arbitrary position is extracted, a hash value is calculated as an entry, and the hash value and the hash value for verification are compared and verified. Therefore, it is possible to cope with an arbitrary inspection length without using a plurality of Bloom filters, and it is possible to quickly and flexibly discriminate whether or not data included in a packet belongs to a predetermined data set. Is obtained.

複数のブルームフィルタを用いてパケットの照合を行う回路の一例を示すブロック図である。It is a block diagram which shows an example of the circuit which collates a packet using a some Bloom filter. 本発明の実施の一形態のトラヒック走査装置の構成を示すブロック図である。It is a block diagram which shows the structure of the traffic scanning apparatus of one Embodiment of this invention. RISCプロセッサの構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of a RISC processor. トラヒック走査の処理を説明する図である。It is a figure explaining the process of traffic scanning.

次に、本発明の好ましい実施の形態について、図面を参照して説明する。   Next, a preferred embodiment of the present invention will be described with reference to the drawings.

図2に示す本発明の実施の一形態のトラヒック走査装置は、通信ネットワーク上で転送されるパケットに含まれるデータが所定のデータ集合に属するか否かを弁別するためのものである。このトラヒック走査装置は、トラヒックパターン及び所定の参照用のエントリパターンの値をキーとして、その写像となるハッシュ値を生成するハッシュ演算部21と、ハッシュ値生成に利用したエントリパターンを記録し、その出力及びビット操作を実現するエントリ登録部22と、比較対象として利用するために、ハッシュ演算部21において得られた任意のハッシュ値を陽性(positive)の照合データとして記憶する照合データ記憶部23と、1パケットずつ到着するトラヒックパターンから任意の検査長のエントリを取り出すためのオフセット切り出し部24及び走査ウィンドウ設定部25と、ハッシュ値によって表されているパターンを照合するパターン照合部26と、パターン照合部26での照合を判別する照合結果弁別部27と、これらの各機能部21〜27相互の間やそれらと外部のメモリとの間でトラヒックや制御命令を含むデータの転送を行う信号入出力部28と、各機能部21〜28の全体を制御するために一般的なCPU(Central Processing Unit)命令及び拡張された命令セットを備え、設定と操作をユーザからの任意の指示に応じて実行させる信号制御部29と、を備えている。特にハッシュ演算部21はハッシュ演算手段に対応し、照合データ記憶部23は記憶手段に対応し、オフセット切り出し部24及び走査ウィンドウ設定部25は抽出手段に対応し、パターン照合部26は検査手段に対応する。各機能部、すなわちハッシュ演算部21、エントリ登録部22、照合データ記憶部23、オフセット切り出し部24、走査ウィンドウ設定部25、パターン照合部26、照合結果弁別部27、信号入出力部28及び信号制御部29は、バス形態の信号線20に接続することによって、相互にデータや信号等をやり取りできるようになっている。   The traffic scanning apparatus according to the embodiment of the present invention shown in FIG. 2 is for discriminating whether or not data included in a packet transferred on a communication network belongs to a predetermined data set. This traffic scanning device records the entry pattern used for the hash value generation, and the hash calculation unit 21 that generates a hash value that becomes the mapping using the traffic pattern and the value of a predetermined reference entry pattern as a key. An entry registration unit 22 that realizes output and bit manipulation; a collation data storage unit 23 that stores an arbitrary hash value obtained in the hash calculation unit 21 as positive collation data for use as a comparison target; An offset cutout unit 24 and a scan window setting unit 25 for extracting an entry of an arbitrary inspection length from a traffic pattern arriving one packet at a time; a pattern matching unit 26 for matching a pattern represented by a hash value; A collation result discriminating unit 27 for discriminating collation in the unit 26; The signal input / output unit 28 for transferring data including traffic and control commands between these functional units 21 to 27 and between them and an external memory, and the entire functional units 21 to 28 are controlled. For this purpose, a signal control unit 29 is provided that includes a general CPU (Central Processing Unit) instruction and an extended instruction set, and executes settings and operations in accordance with arbitrary instructions from the user. In particular, the hash calculation unit 21 corresponds to a hash calculation unit, the collation data storage unit 23 corresponds to a storage unit, the offset cutout unit 24 and the scanning window setting unit 25 correspond to an extraction unit, and the pattern matching unit 26 serves as an inspection unit. Correspond. Each functional unit, that is, hash calculation unit 21, entry registration unit 22, collation data storage unit 23, offset cutout unit 24, scanning window setting unit 25, pattern collation unit 26, collation result discrimination unit 27, signal input / output unit 28, and signal The control unit 29 can exchange data and signals with each other by connecting to the signal line 20 in the bus form.

上記の構成において、パターン照合部26は、具体的には、オフセット切り出し部24及び走査ウィンドウ設定部25によってトラヒックパターンから取り出されたエントリをハッシュ演算部21に与えてそのハッシュ値を計算させ、このようにして得られた各パケット固有のハッシュ値(すなわちトラヒックパターンのハッシュ値)と照合データ記憶部23に記憶されている上述した陽性の照合データとを比較し、これによって、トラヒックパターンから取り出されたエントリが目的のパターンに合致するか否かを検査する。照合結果弁別部27は、パターン照合部26での検査結果に応じ、被疑パターンを検出した場合を陽性、反対に、被疑パターンが検出されなかった場合を陰性と判別する。例えば、廃棄すべきパケットが含んでいるであろうパターンがエントリパターンとされ、そのエントリパターンのハッシュ値が陽性値として照合データ記憶部23に記憶されているときに、パターン照合部26が、トラヒックパターンから得られたハッシュ値が照合データ記憶部23に記憶されているものと合致することを検出したときは、被疑パターンが検出されたものとして、照合結果弁別部27は、陽性と判別する。   In the above configuration, specifically, the pattern matching unit 26 gives an entry extracted from the traffic pattern by the offset cutout unit 24 and the scanning window setting unit 25 to the hash calculation unit 21 to calculate the hash value. The hash value peculiar to each packet (that is, the hash value of the traffic pattern) obtained in this way is compared with the above-described positive matching data stored in the matching data storage unit 23, and is thereby extracted from the traffic pattern. Check whether the entry matches the target pattern. The collation result discriminating unit 27 discriminates that the case where the suspicious pattern is detected is positive and the case where the suspicious pattern is not detected is negative according to the inspection result of the pattern collating unit 26. For example, when a pattern that a packet to be discarded is supposed to be an entry pattern and the hash value of the entry pattern is stored as a positive value in the verification data storage unit 23, the pattern verification unit 26 When it is detected that the hash value obtained from the pattern matches that stored in the collation data storage unit 23, the collation result discriminating unit 27 determines that the suspected pattern has been detected and determines that the hash value is positive.

次に、オフセット切り出し部24及び走査ウィンドウ設定部25による、トラヒックパターンからのエントリの取り出しについて説明する。   Next, extraction of entries from the traffic pattern by the offset cutout unit 24 and the scanning window setting unit 25 will be described.

本実施形態のトラヒック走査装置では、パケットに含まれるデータのうちの任意のデータ長(これを検査長と呼ぶ)の部分をエントリとして、ユーザ設定により、あるいはプログラムによって予め指定しておく。このエントリは、パケットの先頭にあるとは限られないから、1パケットずつ順次到着するトラヒックパターンにおいてエントリに対応するフィールドの値の始まりがオフセット値として指定されると、オフセット切り出し部24は、各パケットごとにそのパケットの先頭からオフセット値で示される長さの部分を取り除いて残ったフィールドの部分を切り出して走査ウィンドウ設定部25に送る。走査ウィンドウ設定部25は、前述した検査長のエントリを生成するためのマスク機能を有しており、オフセット切り出し部24によって切り出されたフィールドに対してマスク操作を実行する。例えば、検査長に相当するビット数だけ“1”のビットが連続しそれに引き続いて“0”のビットが連続するマスクを使用し、オフセット切り出し部24によって切り出されたフィールドに対してビットごとの論理積(AND)演算を実行することによって、走査ウィンドウ設定部25は、検査長の長さを有するエントリを生成する。このエントリは、上述したように、パターン照合部26によってハッシュ演算部21に送られてハッシュ演算の対象となる。   In the traffic scanning device of the present embodiment, an arbitrary data length (referred to as inspection length) portion of data included in a packet is used as an entry and designated in advance by a user setting or by a program. Since this entry is not necessarily at the beginning of the packet, when the start of the field value corresponding to the entry is specified as an offset value in the traffic pattern that sequentially arrives one packet at a time, the offset extraction unit 24 For each packet, the length of the field indicated by the offset value is removed from the beginning of the packet, and the remaining field portion is cut out and sent to the scanning window setting unit 25. The scanning window setting unit 25 has a mask function for generating the above-described inspection length entry, and performs a mask operation on the field cut out by the offset cutout unit 24. For example, by using a mask in which “1” bits are continued for the number of bits corresponding to the inspection length, followed by “0” bits, the logic for each bit is applied to the field cut out by the offset cutout unit 24. By executing the product (AND) operation, the scanning window setting unit 25 generates an entry having the inspection length. As described above, this entry is sent to the hash calculation unit 21 by the pattern matching unit 26 and subjected to hash calculation.

本実施形態のトラヒック走査装置は、各機能部21〜29がそれぞれ別個のハードウェア要素であるようにして構成することもできるし、あるいは、各機能部21〜29の動作に相当する処理をコンピュータに実行させるプログラムにより、ソフトウェアによって実現することもできる。例えば、コンピュータとして一般的なRISC(Reduced Instruction Set Compuer:縮小命令セットコンピュータ)プロセッサを用いることができる。   The traffic scanning device according to the present embodiment can be configured such that each of the function units 21 to 29 is a separate hardware element, or processing corresponding to the operation of each of the function units 21 to 29 is performed by a computer. It can also be realized by software by a program to be executed. For example, a general RISC (Reduced Instruction Set Computer) processor can be used as a computer.

ところで、本実施形態のトラヒック走査装置で行う処理には、ハッシュ演算やハッシュ値の比較、オフセット値に基づくフィールドの切り出し、任意のビット長でのマスク動作などといった、トラヒック走査という特定用途に特有の演算が含まれるが、これらの演算はコンピュータにおける汎用のハードウェア資源では高速で実行することが難しい。そこで、特許文献1に開示されているような特定用途向けプロセッサ設計手法を一般的なRISCプロセッサに適用して、ハッシュ演算やハッシュ値の比較、オフセット値に基づくフィールドの切り出し、任意のビット長でのマスク動作などの演算を特定用途向けの専用命令として実行するための演算ユニットないしレジスタをプロセッサに追加することができる。特定用途向けの専用命令を実行する演算ユニットないしレジスタを追加することによって、ソフトウェア制御でありながらトラヒック走査のための演算処理を高速で実行するトラヒック走査装置を実現できることは、当業者が容易に理解できることである。   By the way, the processing performed by the traffic scanning device of the present embodiment is specific to a specific application called traffic scanning, such as hash calculation, hash value comparison, field extraction based on an offset value, and mask operation with an arbitrary bit length. Although operations are included, these operations are difficult to execute at high speed with general-purpose hardware resources in a computer. Therefore, application-specific processor design methods as disclosed in Patent Document 1 are applied to a general RISC processor to compare hash operations, hash values, cut out fields based on offset values, and use arbitrary bit lengths. An arithmetic unit or a register for executing an operation such as a masking operation as a dedicated instruction for a specific application can be added to the processor. A person skilled in the art can easily understand that a traffic scanning device that executes arithmetic processing for traffic scanning at high speed while being software-controlled can be realized by adding arithmetic units or registers that execute dedicated instructions for specific applications. It can be done.

図3は、本実施形態において使用できる一般的なRISCプロセッサの構成を示している。このRISCプロセッサ30は、複数のレジスタ31と、複数のALU(算術論理演算ユニット:Arithmetic Logical Unit)からなるALUセット32と、ALUセット32にデータを送出するレジスタを選択するセレクタ33と、メモリ(RAM)34と、外部インタフェース(I/F)35と、RAM34及び外部インタフェース35に対してロード及びストアの処理を実行するロード/ストア部36と、ALUセット32及びロード/ストア部36からのデータが供給されるレジスタを選択するセレクタ37と、を備えている。一般的にプロセッサにおいては、メモリ及びレジスタファイル間の頻繁なデータ移動を伴うため、これが高性能な処理を要求した際のボトルネックとなる。本実施形態において用いられるRISCプロセッサは、ハードウェアアシストを含む特定処理への拡張および最適化を行ったALUと一般的なALUとを組み合わせたALUセット32として実行ステージを構成し、さらにそれらを効率的に稼働させる論理を含む処理命令を備えるようにすることにより、トラヒック操作の処理に要求される演算における所要サイクル数を大幅に削減することができる。   FIG. 3 shows the configuration of a general RISC processor that can be used in this embodiment. The RISC processor 30 includes a plurality of registers 31, an ALU set 32 composed of a plurality of ALUs (Arithmetic Logical Units), a selector 33 that selects a register for sending data to the ALU set 32, and a memory ( RAM) 34, an external interface (I / F) 35, a load / store unit 36 for executing processing of loading and storing to the RAM 34 and the external interface 35, and data from the ALU set 32 and the load / store unit 36 And a selector 37 for selecting a register supplied with the. In general, a processor involves frequent data movement between a memory and a register file, and this becomes a bottleneck when high-performance processing is required. The RISC processor used in the present embodiment configures an execution stage as an ALU set 32 in which an ALU that has been expanded and optimized for specific processing including hardware assist and a general ALU are combined, and the execution stage is further improved. By providing the processing instruction including the logic to be operated automatically, it is possible to greatly reduce the number of required cycles in the operation required for the traffic operation processing.

本実施形態で用いられるRISCプロセッサは、上述したような特定用途向け演算の機能を制御する命令セットを備えるが、命令セットやデータ幅のビット幅が特定の値に限定されるものではない。設計技術によっては命令セットなどについて複数の実装解がありうる。   The RISC processor used in the present embodiment includes an instruction set that controls the function for a specific application as described above, but the bit width of the instruction set and the data width is not limited to a specific value. Depending on the design technology, there may be multiple implementation solutions for the instruction set.

次に、本実施形態のトラヒック走査装置の動作について説明する。   Next, the operation of the traffic scanning device of this embodiment will be described.

通信トラヒックの走査を行って目的とするトラヒックパターンを検出するために、あらかじめ、検出対象となるパターンをエントリパターンとして、エントリ登録部22によって照合データ記憶部23に登録しておく。本実施形態においては、検出対象となるパターンを変更することを含意しているため、エントリ登録部22及び照合データ記憶部23は、エントリパターンの削除に対応しているものとする。   In order to detect a target traffic pattern by scanning communication traffic, the entry registration unit 22 registers the pattern to be detected as an entry pattern in advance in the verification data storage unit 23. In the present embodiment, since it implies that the pattern to be detected is changed, it is assumed that the entry registration unit 22 and the collation data storage unit 23 correspond to deletion of the entry pattern.

ハッシュ演算部21は、ハッシュ演算のために特化した構成をとるため、高速な演算を可能とし、汎用ALUによる演算のアシストを行う。ハッシュ演算部21は、エントリ登録部22から入力されたエントリの値をキーとして、単一あるいは複数種類のハッシュ演算命令の組み合わせを任意の回数演算することで、キーとした値の写像となるハッシュ値を生成し、エントリ登録部22に出力する。図4に示した例では、2進表記で"101001010101111"がエントリパターンとしてエントリ登録部22にあらかじめ与えられており、これがキーとしてハッシュ演算部21に送られ、ハッシュ演算部21は、このエントリパターンのハッシュ値を計算してエントリ登録部22に出力する。当然のことながら複数のエントリパターンを用意してそれらの各々のハッシュ値を計算し、照合データ記憶部23に記憶することができる。   Since the hash calculation unit 21 has a configuration specialized for hash calculation, it enables high-speed calculation and assists calculation by a general-purpose ALU. The hash calculation unit 21 calculates the number of combinations of single or multiple types of hash calculation commands as an arbitrary number of times using the entry value input from the entry registration unit 22 as a key, and becomes a hash that becomes a mapping of the value as the key A value is generated and output to the entry registration unit 22. In the example shown in FIG. 4, “101001010101111” in binary notation is given in advance to the entry registration unit 22 as an entry pattern, which is sent as a key to the hash calculation unit 21, and the hash calculation unit 21 Is calculated and output to the entry registration unit 22. As a matter of course, a plurality of entry patterns can be prepared and the hash values of each of them can be calculated and stored in the collation data storage unit 23.

一方、信号入出力部28からパターン照合部26に入力されたトラヒックパターンに対しては、プログラムあるいはユーザによって指定されたオフセット値に応じてオフセット命令によって切り出し位置が指定され、オフセット切り出し部24が上述したように切り出し処理を行う。続いて、切り出されたトラヒックパターンに対し、マスク命令に応じて、走査ウィンドウ設定部25によってマスク処理を実行する。マスク処理に用いられるマスクは、上述したように、例えば、プログラムあるいはユーザによって指定される検査長に一致するビット数の“1”が連続しそれに引き続いて“0”のビットが連続したものである。これらの処理の結果、最初のトラヒックパターンから、オフセット命令で指定された切り出し位置から開始して検査長に一致する長さのエントリが取り出されることになる。図4に示した例では、オフセット値として2進表現で"1000"、すなわち8ビットが指定されており、マスクとして、検査長20ビットに対応する"11111111 11111111 11110000 00000000"が用いられている。その結果、"00000000 10101010 11101110 01010101 00000000"で表されるトラヒックパターンが入力したときに、最初の8ビットがオフセットとして除去され、引き続く20ビットの部分、すなわち"10101010 11101110 0101"がマスクによる有効値、すなわちエントリパターンに対応するフィールドとして取り出されることになる。ハッシュ演算部21は、このようにして取り出されたエントリパターンによる値をキーとして、単一あるいは複数種類のハッシュ演算命令の組み合わせを任意の回数演算し、写像となるハッシュ値を生成してパターン照合部26に出力する。   On the other hand, for the traffic pattern input from the signal input / output unit 28 to the pattern matching unit 26, the cutout position is designated by an offset command according to the offset value designated by the program or the user, and the offset cutout unit 24 is described above. Cutout processing is performed as described above. Subsequently, a mask process is executed by the scanning window setting unit 25 in response to the mask command on the extracted traffic pattern. As described above, the mask used for the mask processing is, for example, one in which “1” of the number of bits corresponding to the inspection length designated by the program or the user is continuous, followed by “0” bits. . As a result of these processes, an entry having a length matching the inspection length is extracted from the first traffic pattern starting from the cut-out position specified by the offset command. In the example shown in FIG. 4, “1000”, that is, 8 bits is specified as an offset value in binary representation, and “11111111 11111111 11110000 00000000” corresponding to an inspection length of 20 bits is used as a mask. As a result, when the traffic pattern represented by “00000000 10101010 11101110 01010101 00000000” is input, the first 8 bits are removed as an offset, and the subsequent 20-bit portion, that is, “10101010 11101110 0101” is a valid value by masking. That is, it is extracted as a field corresponding to the entry pattern. The hash calculation unit 21 calculates the number of combinations of single or plural types of hash calculation instructions any number of times using the value of the entry pattern extracted in this way as a key, and generates a hash value that becomes a mapping to perform pattern matching. To the unit 26.

本実施形態では、トラヒックパターン中の任意の検査長のエントリに関して所定のデータ集合に含まれるか否かを判定できるようにするため、トラヒックパターンに対するオフセットの指定とマスク動作とを使用している。その結果、トラヒックパターン中の任意の長さ、位置にあるエントリに対するハッシュ値を得ることができ、従来のハードウェアのみで実現された回路に比べ、検査長に対する高い柔軟性が得られる。   In the present embodiment, in order to be able to determine whether or not an entry of an arbitrary inspection length in the traffic pattern is included in a predetermined data set, designation of an offset for the traffic pattern and a mask operation are used. As a result, it is possible to obtain a hash value for an entry at an arbitrary length and position in the traffic pattern, and to obtain a higher flexibility with respect to the inspection length than a circuit realized only with conventional hardware.

本実施形態のトラヒック走査は、エントリから算出されるハッシュ値どうしの照合に基づくものであり、基本的にはブルームフィルタと同様の処理原理に依存している。しかしながら上述したように、トラヒックパターン中の任意の長さ、位置にあるエントリに対するハッシュ値を得ることができるようにしているから、本実施形態のトラヒック走査は、複数のブルームフィルタを設けることなく、単一のハッシュ演算部と単一のパターン照合部とを用いることにより、任意の検査長に対応することができるという利点を有する。これにより本実施形態によれば、複数のブルームフィルタを設ける場合と同様の処理の高速さを維持しつつ、ハードウェア規模を大幅に縮小することができる。   The traffic scanning of this embodiment is based on matching hash values calculated from entries, and basically depends on the same processing principle as the Bloom filter. However, as described above, since it is possible to obtain a hash value for an entry at an arbitrary length and position in the traffic pattern, the traffic scanning of this embodiment does not provide a plurality of bloom filters. By using a single hash calculation unit and a single pattern matching unit, there is an advantage that an arbitrary inspection length can be handled. Thus, according to the present embodiment, the hardware scale can be greatly reduced while maintaining the same processing speed as when a plurality of Bloom filters are provided.

エントリ登録部22に入力されたハッシュ値は、エントリパターンがハッシュ値に写像された縮約表現とみなすことができ、通信トラヒックパターンの照合時に陽性(positive)を表すためのデータ(陽性値)となる。エントリ登録部22はこの陽性値をビット操作により照合データ記憶部23に登録する。   The hash value input to the entry registration unit 22 can be regarded as a contracted expression in which the entry pattern is mapped to the hash value, and data (positive value) for representing positive when the communication traffic pattern is verified. Become. The entry registration unit 22 registers this positive value in the collation data storage unit 23 by bit operation.

パターン照合部26は、この陽性値と1パケットずつトラヒックからから算出されるハッシュ値とを比較照合する。この比較照合の結果の値は照合結果弁別部27において判断され、その結果陽性と判断された場合には、被疑パターンの検出が完了となり、信号制御部29からの命令によって、トラヒックの分離や遮断、廃棄等の制御を行うことができるようになる。   The pattern matching unit 26 compares and matches this positive value with the hash value calculated from the traffic for each packet. The value of the result of the comparison and collation is determined by the collation result discriminating unit 27. If the result is determined to be positive, detection of the suspicious pattern is completed, and traffic is separated or blocked by an instruction from the signal control unit 29. It becomes possible to perform control such as disposal.

本実施形態では、ブルームフィルタと同様の処理原理に基づいているため、偽陰性の発生の可能性はないが、偽陽性の発生の可能性がある。詳細は割愛するが、ブルームフィルタを用いるデータ照合においては、エントリ数とハッシュテーブルのサイズとが決定しているときに偽陽性を最小化できるハッシュの演算数が定式化されて広く知られている。本実施形態でも、ハッシュテーブルのサイズとエントリ数との比を適切に保つことで、実用上十分小さな偽陽性の出現確率とすることができる。ハッシュテーブルのサイズは、用途等に応じて任意に定めることができる。また、本実施形態では、エントリを登録し削除することが可能な構成としているので、ハッシュテーブルのサイズを任意に定めたとしても、ハッシュテーブルのサイズに合わせてエントリ数を変化させることにより、偽陽性の発生確率を許容水準に保つことができる。なお偽陰性の発生の可能性は原理的に存在しないことにより、照合結果弁別部27において陰性を判断された場合には、信号制御部29は、陰性に合致するパケットに対する通過等の制御を実施する。   In this embodiment, since it is based on the same processing principle as the Bloom filter, there is no possibility of occurrence of false negatives, but there is a possibility of occurrence of false positives. Although details are omitted, in data matching using a Bloom filter, the number of hash operations that can minimize false positives when the number of entries and the size of the hash table are determined is well known. . Also in this embodiment, by maintaining an appropriate ratio between the size of the hash table and the number of entries, a false positive appearance probability that is sufficiently small in practice can be obtained. The size of the hash table can be arbitrarily determined according to the application. In this embodiment, since entries can be registered and deleted, even if the size of the hash table is arbitrarily determined, by changing the number of entries according to the size of the hash table, false The probability of positive occurrence can be maintained at an acceptable level. Since the possibility of false negatives does not exist in principle, the signal control unit 29 performs control such as passage of packets that match negative when the collation result discriminating unit 27 determines negative. To do.

ブルームフィルタにおけるハッシュ値の演算手順に関して数多くのアルゴリズムが提案されているが、本実施形態でのハッシュ演算部21において用いられるアルゴリズムとしてもこれらの既に提案されているアルゴリズムを用いることもできるし、さらに、これら以外のアルゴルズムを採用してハッシュ値の分散特性の改善を図ることもできる。   A number of algorithms have been proposed for the hash value calculation procedure in the Bloom filter, but these already proposed algorithms can also be used as the algorithm used in the hash calculation unit 21 in the present embodiment. It is also possible to improve the distribution characteristics of the hash value by adopting an algorithm other than these.

結局、本実施形態のトラヒック走査装置では、要約すると、検出すべき所定のエントリパターンをキーとしてハッシュ演算部21においてハッシュ値を生成し、このハッシュ値を照合データとして照合データ記憶部23に保存する。また、トラヒックに含まれる所望の検査長のデータをエントリとして利用するためのマスクを生成・記憶しておく。トラヒックパターンから、オフセット切り出し部24によって、オフセット値で指定される所望の位置からのデータを切り出し、走査ウィンドウ設定部25によって、切り出されたデータに対してマスクを適用して検査長の長さを有するエントリとして、ハッシュ演算部21によりこのエントリハッシュ値を生成する。パターン照合部26は、このようにして得られた各パケットのハッシュ値を記憶されている照合データと比較し、照合結果弁別部27が、被疑パターンが含まれるか否かを判定する。   After all, in the traffic scanning device of the present embodiment, in summary, a hash value is generated in the hash calculation unit 21 using a predetermined entry pattern to be detected as a key, and this hash value is stored in the verification data storage unit 23 as verification data. . In addition, a mask for using data of a desired inspection length included in the traffic as an entry is generated and stored. Data from a desired position specified by the offset value is cut out from the traffic pattern by the offset cutout unit 24, and a mask is applied to the cut out data by the scanning window setting unit 25 to set the length of the inspection length. This entry hash value is generated by the hash calculator 21 as an entry having. The pattern matching unit 26 compares the hash value of each packet obtained in this way with the stored matching data, and the matching result discrimination unit 27 determines whether or not a suspicious pattern is included.

図2に示した本実施形態のトラヒック走査装置において、各機能部21〜29(すなわちハッシュ演算部21、エントリ登録部22、照合データ記憶部23、オフセット切り出し部24、走査ウィンドウ設定部25、パターン照合部26、照合結果弁別部27、信号入出力部28及び信号制御部29)あるいは各手段は、いずれも、回路、装置、機器等であってもよく、また、ソフトウェア処理によって実現されるものであってもよい。さらにはこれらの機能部あるいは手段は、ファームウエアによって実現されても、あるいは、再構成型デバイス・素子・基盤・配線などのハードウェアで実現されていても構わない。ソフトウェアあるいはファームウェアによってトラヒック走査装置を実現する場合、ソフトウェアあるいはファームウェアはプログラムとして記憶媒体に記憶され、CPUによって読み出されて実行される。したがってこのプログラムは、上述した機能部あるいは手段としてコンピュータを機能させるものに他ならず、本発明の範疇に含まれるものである。   In the traffic scanning apparatus according to the present embodiment shown in FIG. 2, the function units 21 to 29 (that is, the hash calculation unit 21, the entry registration unit 22, the collation data storage unit 23, the offset cutout unit 24, the scanning window setting unit 25, the pattern) The collating unit 26, the collation result discriminating unit 27, the signal input / output unit 28, and the signal control unit 29) or each means may be a circuit, a device, a device, or the like, or realized by software processing. It may be. Furthermore, these functional units or means may be realized by firmware, or may be realized by hardware such as a reconfigurable device, element, substrate, and wiring. When the traffic scanning device is realized by software or firmware, the software or firmware is stored in a storage medium as a program, and is read and executed by the CPU. Therefore, this program is nothing but a program that causes a computer to function as the functional unit or means described above, and is included in the scope of the present invention.

20 信号線
21 ハッシュ演算部
22 エントリ登録部
23 照合データ記憶部
24 オフセット切り出し部
25 走査ウィンドウ設定部
26 パターン照合部
27 照合結果弁別部
28 信号入出力部
29 信号制御部
30 RISCプロセッサ
31 レジスタ
32 ALUセット
33,37 セレクタ
34 メモリ
35 外部インタフェース
36 ロード/ストア部
DESCRIPTION OF SYMBOLS 20 Signal line 21 Hash calculating part 22 Entry registration part 23 Collation data storage part 24 Offset extraction part 25 Scan window setting part 26 Pattern collation part 27 Collation result discrimination part 28 Signal input / output part 29 Signal control part 30 RISC processor 31 Register 32 ALU Set 33, 37 Selector 34 Memory 35 External interface 36 Load / Store part

Claims (6)

通信ネットワーク上で転送されるパケットに含まれるデータが所定のデータ集合に属するか否かを判別するトラヒック走査装置であって、
キーが与えられて前記キーの写像となるハッシュ値を生成するハッシュ演算を実行するハッシュ演算手段と、
所定のエントリパターンを前記キーとして前記ハッシュ演算部により前記ハッシュ演算を実行して得た結果を陽性の照合データとして保持する記憶手段と、
トラヒックパターンから、その任意の位置からの任意の検査長のデータを抽出してエントリとする抽出手段と、
前記抽出手段で抽出されたエントリを前記キーとして前記ハッシュ演算手段に与えて前記ハッシュ演算を実行させて結果を取得し、該結果と前記記憶手段に保持されている前記照合データとを比較照合する検査手段と、
を有する、トラヒック走査装置。
A traffic scanning device for determining whether data included in a packet transferred on a communication network belongs to a predetermined data set,
Hash operation means for performing a hash operation for generating a hash value that is given a key and is a mapping of the key;
Storage means for holding a result obtained by executing the hash calculation by the hash calculation unit using a predetermined entry pattern as the key as positive matching data;
An extraction means for extracting data of an arbitrary inspection length from an arbitrary position from the traffic pattern as an entry;
The entry extracted by the extraction means is given as the key to the hash calculation means, the hash calculation is executed to obtain a result, and the result is compared with the verification data held in the storage means Inspection means;
A traffic scanning device.
前記抽出手段は、
オフセット値が指定されて前記トラヒックパターンの先頭から前記オフセット値で表される位置からフィールドの切り出しを行うオフセット切り出し部と、
前記検査長に相当するデータを取り出すためのマスクが指定されて、前記オフセット切り出し手段で切り出された前記フィールドに対して前記マスクによるマスク処理を実行する走査ウィンドウ設定部と、
を有する、請求項1に記載のトラヒック走査装置。
The extraction means includes
An offset cutout unit that cuts out a field from the position represented by the offset value from the beginning of the traffic pattern in which an offset value is specified;
A scanning window setting unit that performs mask processing using the mask for the field that is specified by a mask for extracting data corresponding to the inspection length and is cut out by the offset cutout unit;
The traffic scanning device according to claim 1, comprising:
前記ハッシュ演算手段、前記抽出手段及び前記検査手段の少なくとも1つの機能を特定用途向け専用命令としてハードウェアにより実装するプロセッサを備える請求項1または2に記載のトラヒック走査装置。   The traffic scanning device according to claim 1, further comprising a processor that implements at least one function of the hash calculation unit, the extraction unit, and the inspection unit as a dedicated instruction for a specific application by hardware. 通信ネットワーク上で転送されるパケットに含まれるデータが所定のデータ集合に属するか否かを判別するトラヒック走査方法であって、
所定のエントリパターンをキーとしてハッシュ演算を実行し、該ハッシュ演算の結果を陽性の照合データとして保持する段階と、
トラヒックパターンから、その任意の位置からの任意の検査長のデータを抽出してエントリとする抽出段階と、
前記エントリをキーとして前記ハッシュ演算を実行してその結果を比較データとする段階と、
前記比較データと前記照合データとを比較照合する段階と、
を有する、トラヒック走査方法。
A traffic scanning method for determining whether data included in a packet transferred on a communication network belongs to a predetermined data set,
Performing a hash operation using a predetermined entry pattern as a key and holding the result of the hash operation as positive matching data;
An extraction stage that extracts data of an arbitrary inspection length from an arbitrary position from a traffic pattern as an entry;
Performing the hash operation with the entry as a key and using the result as comparison data;
Comparing and comparing the comparison data and the verification data;
A traffic scanning method.
前記抽出段階は、
オフセット値が指定されて前記トラヒックパターンの先頭から前記オフセット値で表される位置からフィールドの切り出しを行う段階と、
前記検査長に相当するデータを取り出すためのマスクが指定されて、前記切り出されたフィールドに対して前記マスクによるマスク処理を実行する段階と、
を有する、請求項4に記載のトラヒック走査方法。
The extraction step includes
Cutting out a field from the position represented by the offset value from the beginning of the traffic pattern with an offset value specified;
A mask for extracting data corresponding to the inspection length is designated, and a mask process using the mask is performed on the cut-out field;
The traffic scanning method according to claim 4, comprising:
コンピュータに請求項5または6に記載のトラヒック走査方法での各段階の処理を実行させるプログラム。   The program which makes a computer perform the process of each step in the traffic scanning method of Claim 5 or 6.
JP2013175567A 2013-08-27 2013-08-27 Traffic scanning apparatus and method Active JP6096084B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013175567A JP6096084B2 (en) 2013-08-27 2013-08-27 Traffic scanning apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013175567A JP6096084B2 (en) 2013-08-27 2013-08-27 Traffic scanning apparatus and method

Publications (2)

Publication Number Publication Date
JP2015046683A true JP2015046683A (en) 2015-03-12
JP6096084B2 JP6096084B2 (en) 2017-03-15

Family

ID=52671892

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013175567A Active JP6096084B2 (en) 2013-08-27 2013-08-27 Traffic scanning apparatus and method

Country Status (1)

Country Link
JP (1) JP6096084B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023112175A1 (en) * 2021-12-14 2023-06-22 日本電信電話株式会社 Traffic monitoring device, traffic monitoring method, and program

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NO20055593D0 (en) 2005-11-25 2005-11-25 Age Jorgen Skomsvold HEAD (Hydrogen and Oxygen Difference Energy) By exposing a medium in a U-chamber to large G forces and splitting the medium in one chamber (eg electrolysis), a pressure will build up on the top of this chamber due to of the density difference

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003298648A (en) * 2002-03-29 2003-10-17 Yokogawa Electric Corp Packet log recorder
JP2004282364A (en) * 2003-03-14 2004-10-07 Ntt Data Corp Packet tracing method and packet tracing program
JP2005223673A (en) * 2004-02-06 2005-08-18 Matsushita Electric Ind Co Ltd Method and apparatus for processing receiving packet
JP2005303417A (en) * 2004-04-07 2005-10-27 Nippon Telegr & Teleph Corp <Ntt> Packet classifier device
US20130156036A1 (en) * 2010-12-14 2013-06-20 International Business Machines Corporation Analysis of network packets using a generated hash code

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003298648A (en) * 2002-03-29 2003-10-17 Yokogawa Electric Corp Packet log recorder
JP2004282364A (en) * 2003-03-14 2004-10-07 Ntt Data Corp Packet tracing method and packet tracing program
JP2005223673A (en) * 2004-02-06 2005-08-18 Matsushita Electric Ind Co Ltd Method and apparatus for processing receiving packet
JP2005303417A (en) * 2004-04-07 2005-10-27 Nippon Telegr & Teleph Corp <Ntt> Packet classifier device
US20130156036A1 (en) * 2010-12-14 2013-06-20 International Business Machines Corporation Analysis of network packets using a generated hash code

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023112175A1 (en) * 2021-12-14 2023-06-22 日本電信電話株式会社 Traffic monitoring device, traffic monitoring method, and program

Also Published As

Publication number Publication date
JP6096084B2 (en) 2017-03-15

Similar Documents

Publication Publication Date Title
US9990583B2 (en) Match engine for detection of multi-pattern rules
US20180083770A1 (en) Detecting encoding attack
US9645828B2 (en) Method of searching character string, character string searching device, and recording medium
WO2018099151A1 (en) Instruction generation process multiplexing method and device
US10678914B2 (en) Virus program detection method, terminal, and computer readable storage medium
US11080398B2 (en) Identifying signatures for data sets
JP2011248897A (en) Pattern matching method and system
CN111370064A (en) Rapid gene sequence classification method and system based on SIMD hash function
US8700918B2 (en) Data masking
US8868584B2 (en) Compression pattern matching
JP6096084B2 (en) Traffic scanning apparatus and method
CN112789831A (en) Abnormality detection method and abnormality detection device
US10339297B2 (en) Determining whether continuous byte data of inputted data includes credential
WO2016107297A1 (en) Clustering method based on local density on mapreduce platform
CN111324890B (en) Processing method, detection method and device of portable executive body file
CN114301671A (en) Network intrusion detection method, system, device and storage medium
US11025650B2 (en) Multi-pattern policy detection system and method
CN112559497A (en) Data processing method, information transmission method and device and electronic equipment
US20220113969A1 (en) Techniques for use of a large scale multi-literal matching algorithm
JP5952239B2 (en) Traffic scanning method and apparatus
JP5952240B2 (en) Traffic scanning method and apparatus
US9843442B2 (en) Operation method and apparatus for providing compression function for fast message hashing
CN117171759A (en) Vulnerability detection method and device based on clone codes and computer equipment
Petrović A Constrained Approximate Search Scenario for Intrusion Detection in Hosts and Networks
JP2020154489A (en) Information processing device, information processing method, information processing program, and information processing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150701

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20151001

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20151005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160712

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160908

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170214

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170215

R150 Certificate of patent or registration of utility model

Ref document number: 6096084

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150