JP2015046683A - Traffic scanning device and method - Google Patents
Traffic scanning device and method Download PDFInfo
- 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
Links
Images
Abstract
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
通信ネットワーク上に流れるトラヒックには様々なデータ長のパケットが含まれており、トラヒックの検査などを目的としてパケットに含まれるデータが所定のデータ集合に含まれるか否かを判別するために、非特許文献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.
次に、本発明の好ましい実施の形態について、図面を参照して説明する。 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
上記の構成において、パターン照合部26は、具体的には、オフセット切り出し部24及び走査ウィンドウ設定部25によってトラヒックパターンから取り出されたエントリをハッシュ演算部21に与えてそのハッシュ値を計算させ、このようにして得られた各パケット固有のハッシュ値(すなわちトラヒックパターンのハッシュ値)と照合データ記憶部23に記憶されている上述した陽性の照合データとを比較し、これによって、トラヒックパターンから取り出されたエントリが目的のパターンに合致するか否かを検査する。照合結果弁別部27は、パターン照合部26での検査結果に応じ、被疑パターンを検出した場合を陽性、反対に、被疑パターンが検出されなかった場合を陰性と判別する。例えば、廃棄すべきパケットが含んでいるであろうパターンがエントリパターンとされ、そのエントリパターンのハッシュ値が陽性値として照合データ記憶部23に記憶されているときに、パターン照合部26が、トラヒックパターンから得られたハッシュ値が照合データ記憶部23に記憶されているものと合致することを検出したときは、被疑パターンが検出されたものとして、照合結果弁別部27は、陽性と判別する。
In the above configuration, specifically, the
次に、オフセット切り出し部24及び走査ウィンドウ設定部25による、トラヒックパターンからのエントリの取り出しについて説明する。
Next, extraction of entries from the traffic pattern by the
本実施形態のトラヒック走査装置では、パケットに含まれるデータのうちの任意のデータ長(これを検査長と呼ぶ)の部分をエントリとして、ユーザ設定により、あるいはプログラムによって予め指定しておく。このエントリは、パケットの先頭にあるとは限られないから、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
本実施形態のトラヒック走査装置は、各機能部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
ところで、本実施形態のトラヒック走査装置で行う処理には、ハッシュ演算やハッシュ値の比較、オフセット値に基づくフィールドの切り出し、任意のビット長でのマスク動作などといった、トラヒック走査という特定用途に特有の演算が含まれるが、これらの演算はコンピュータにおける汎用のハードウェア資源では高速で実行することが難しい。そこで、特許文献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プロセッサは、上述したような特定用途向け演算の機能を制御する命令セットを備えるが、命令セットやデータ幅のビット幅が特定の値に限定されるものではない。設計技術によっては命令セットなどについて複数の実装解がありうる。 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
ハッシュ演算部21は、ハッシュ演算のために特化した構成をとるため、高速な演算を可能とし、汎用ALUによる演算のアシストを行う。ハッシュ演算部21は、エントリ登録部22から入力されたエントリの値をキーとして、単一あるいは複数種類のハッシュ演算命令の組み合わせを任意の回数演算することで、キーとした値の写像となるハッシュ値を生成し、エントリ登録部22に出力する。図4に示した例では、2進表記で"101001010101111"がエントリパターンとしてエントリ登録部22にあらかじめ与えられており、これがキーとしてハッシュ演算部21に送られ、ハッシュ演算部21は、このエントリパターンのハッシュ値を計算してエントリ登録部22に出力する。当然のことながら複数のエントリパターンを用意してそれらの各々のハッシュ値を計算し、照合データ記憶部23に記憶することができる。
Since the
一方、信号入出力部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 /
本実施形態では、トラヒックパターン中の任意の検査長のエントリに関して所定のデータ集合に含まれるか否かを判定できるようにするため、トラヒックパターンに対するオフセットの指定とマスク動作とを使用している。その結果、トラヒックパターン中の任意の長さ、位置にあるエントリに対するハッシュ値を得ることができ、従来のハードウェアのみで実現された回路に比べ、検査長に対する高い柔軟性が得られる。 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
パターン照合部26は、この陽性値と1パケットずつトラヒックからから算出されるハッシュ値とを比較照合する。この比較照合の結果の値は照合結果弁別部27において判断され、その結果陽性と判断された場合には、被疑パターンの検出が完了となり、信号制御部29からの命令によって、トラヒックの分離や遮断、廃棄等の制御を行うことができるようになる。
The
本実施形態では、ブルームフィルタと同様の処理原理に基づいているため、偽陰性の発生の可能性はないが、偽陽性の発生の可能性がある。詳細は割愛するが、ブルームフィルタを用いるデータ照合においては、エントリ数とハッシュテーブルのサイズとが決定しているときに偽陽性を最小化できるハッシュの演算数が定式化されて広く知られている。本実施形態でも、ハッシュテーブルのサイズとエントリ数との比を適切に保つことで、実用上十分小さな偽陽性の出現確率とすることができる。ハッシュテーブルのサイズは、用途等に応じて任意に定めることができる。また、本実施形態では、エントリを登録し削除することが可能な構成としているので、ハッシュテーブルのサイズを任意に定めたとしても、ハッシュテーブルのサイズに合わせてエントリ数を変化させることにより、偽陽性の発生確率を許容水準に保つことができる。なお偽陰性の発生の可能性は原理的に存在しないことにより、照合結果弁別部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
ブルームフィルタにおけるハッシュ値の演算手順に関して数多くのアルゴリズムが提案されているが、本実施形態でのハッシュ演算部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
結局、本実施形態のトラヒック走査装置では、要約すると、検出すべき所定のエントリパターンをキーとしてハッシュ演算部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
図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
20 信号線
21 ハッシュ演算部
22 エントリ登録部
23 照合データ記憶部
24 オフセット切り出し部
25 走査ウィンドウ設定部
26 パターン照合部
27 照合結果弁別部
28 信号入出力部
29 信号制御部
30 RISCプロセッサ
31 レジスタ
32 ALUセット
33,37 セレクタ
34 メモリ
35 外部インタフェース
36 ロード/ストア部
DESCRIPTION OF SYMBOLS 20
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:
所定のエントリパターンをキーとしてハッシュ演算を実行し、該ハッシュ演算の結果を陽性の照合データとして保持する段階と、
トラヒックパターンから、その任意の位置からの任意の検査長のデータを抽出してエントリとする抽出段階と、
前記エントリをキーとして前記ハッシュ演算を実行してその結果を比較データとする段階と、
前記比較データと前記照合データとを比較照合する段階と、
を有する、トラヒック走査方法。 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:
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)
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)
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)
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 |
-
2013
- 2013-08-27 JP JP2013175567A patent/JP6096084B2/en active Active
Patent Citations (5)
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)
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 |