JP5952240B2 - トラヒック走査方法および装置 - Google Patents
トラヒック走査方法および装置 Download PDFInfo
- Publication number
- JP5952240B2 JP5952240B2 JP2013180555A JP2013180555A JP5952240B2 JP 5952240 B2 JP5952240 B2 JP 5952240B2 JP 2013180555 A JP2013180555 A JP 2013180555A JP 2013180555 A JP2013180555 A JP 2013180555A JP 5952240 B2 JP5952240 B2 JP 5952240B2
- Authority
- JP
- Japan
- Prior art keywords
- hash
- pattern
- traffic
- collation
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 50
- 238000004364 calculation method Methods 0.000 claims description 74
- 238000012795 verification Methods 0.000 claims description 58
- 238000013500 data storage Methods 0.000 claims description 53
- 238000004891 communication Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 238000007689 inspection Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010353 genetic engineering Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
図11は、従来のハッシュ演算部の要部構成を示す説明図である。従来、トラヒック弁別技術で用いるハッシュ演算部について、非特許文献1に示すような、照合するパターンの検査データ長に応じて複数のブルームフィルタ(Bloomfilter)を並列に構成し、トラヒックパターンの弁別をハードウェアで高速に処理する技術が提案されている。
また、データ長については、標準的なパケットでは1500バイトであるが、9000バイトや16000バイトのデータ長を有する、いわゆるジャンボフレームと呼ばれるパケットも弁別対象となる場合もある。
しかしながら、このような外部CPUを用いたエントリ登録部の構成例では、エントリ登録処理を実行する外部CPUにかかるハードウェアに加えて、この外部CPUとハッシュ演算部や照合データ記憶部との間でハッシュ値をやり取りするための周辺回路が必要となるため、エントリ登録部においても回路規模および消費電力が大幅に増大するという問題点があった。
したがって、本実施の形態によれば、従来のようにハッシュ演算部の一時出力を受けるための多数のレジスタや巨大なセレクタ回路を必要とすることなく、また外部CPUを付加する構成と比較して、より小規模な回路でエントリ登録部を実現することができ、エントリ登録に要する回路規模を大幅に削減することができる。
[第1の実施の形態]
まず、図1を参照して、本発明の第1の実施の形態にかかるトラヒック走査装置10について説明する。図1は、第1の実施の形態にかかるトラヒック走査装置の構成を示すブロック図である。
また、算術論理演算ユニット内部は、アプリケーション設計者が独自に走査処理の効率化を加味した命令および並列化論理を構成できるため、結果としてトラヒック走査に要する処理サイクル数を大幅に削減することができる。
図1に示すように、トラヒック走査装置10には、主な機能部として、ハッシュ演算部11、エントリ登録部12、照合データ記憶部13、走査パラメータ指定部14、パターン照合部15、照合結果弁別部16、信号入出力部17、および信号制御部18が設けられている。
走査パラメータ指定部14は、走査データ長や演算するハッシュ種別などの各種入力パラメータを、信号制御部18の制御に基づいて予め静的に指定する機能を有している。指定した走査データ長に応じて、エントリ登録部12およびパターン照合部15のキー長が変更される。
信号制御部18は、信号線Lを介して各機能部の値を設定し、動作命令全体を制御する機能を有している。各機能部のパラメータは、信号制御部18により走査パラメータ指定部が制御され、図2の汎用レジスタにロードされる。
本実施の形態は、これらの機能部を用いて、所定の処理手順により、柔軟かつ高速にトラヒックを走査するようにしたものである。
本実施の形態では、エントリ登録部12とハッシュ演算部11の両方が、特定用途向けプロセッサから構成されている場合を例として説明する。
次に、図3〜図5を参照して、本実施の形態にかかるトラヒック走査装置10の動作について説明する。図3は、エントリ登録処理を示すフローチャートである。図4は、パターン照合処理および照合結果弁別処理を示すフローチャートである。図5は、第1の実施の形態にかかる全体的なトラヒック走査方法を示す説明図である。
エントリ登録部12は、まず、信号制御部18の照合設定情報からハッシュ種別および走査データ長を取得するとともに(ステップ100)、エントリパターンを取得する(ステップ101)。図5の例では、エントリパターンとして「10101010」、「01010101」、および「11111111」という3つのエントリパターンが用いられている。
図5の例では、sax、sdbm、およびbernsteinからなる3種類のハッシュ種別について、それぞれのハッシュ値を生成するためのハッシュ演算専用命令sax_hash、sdbm_hash、およびbernstein_hashが、ハッシュ種別ごとに個別に設けられている。
パターン照合部15は、まず、エントリ登録処理と同様にして、走査パラメータ指定部14により信号制御部18に指定された値からハッシュ種別および走査データ長を取得する(ステップ110)。
続いて、パターン照合部15は、照合データ記憶部13から前述したエントリ登録処理で予め登録されている照合データを取得する(ステップ111)。この照合データは、走査パラメータであるハッシュ種別および走査データ長に基づき生成されたものである。
パターン照合部15は、このようにしてハッシュ演算部11で生成されたハッシュ値hcheckを受け取り、これらハッシュ値hcheckを、被疑パターンを示す照合データ(positive値)と照合する(ステップ114)。
これにより、被疑パターンを検出でき、信号制御部18を用いて該当トラヒックの分離や遮断、規制、廃棄等の制御を行うことができる。
次に、図5を参照して、本実施の形態にかかるハッシュ演算部11の詳細を説明する。
通信トラヒックの走査において目的とするトラヒックパターンを検出するため、弁別条件として、予め検出したいパターンを示すエントリパターンを、エントリ登録部12により照合データ記憶部13に登録しておく必要がある。この際、登録できるエントリパターンの数は実装するプロセッサ、論理回路およびシステムによって区々であるが、エントリパターン数nと記憶空間上のハッシュテーブルのサイズmが決定しているとき、偽陽性確率pを最小化できるようなハッシュ演算数kが定式化され、広く知られている。非特許文献1および非特許文献2に詳述されているため、詳細は割愛するが、関係式は次の式(1)の通りである。また、偽陽性確率pは次の式(2)のようになる。
次に、図7を参照して、本実施の形態にかかるエントリ登録部12の詳細を説明する。図7は、エントリ登録専用命令セットを示す説明図である。
本実施の形態にかかるエントリ登録部12は、パターン照合に用いるハッシュ種別ごとに、エントリ登録専用の命令セットを備えている。
図8は、エントリ登録専用命令による動作を示すミュレーション例である。ここでは、ハッシュ演算部およびエントリ登録部の各命令の動作関係について、1000件のエントリを登録した場合のシミュレーション結果が示されている。
命令の起動順序は、各ハッシュ演算専用命令の実行直後にエントリ登録専用命令がハッシュ演算種別ごとに起動される。つまり、sax_hashとsax_set_bitを実行後、sdbm_hashとsdbm_set_bitを実行し、最後にbernstein_hashとbernstein_set_bitを実行する。これらの専用命令は、C言語等の高級言語で実装されたエントリ登録用の関数から、組み込み関数として起動することができる。
エントリ登録部12に入力されたhentryは、エントリパターンがハッシュ値に射影された縮約表現と見なすことができ、トラヒックパターン照合時に陽性を示すための照合データ、すなわちpositive値となる。エントリ登録部12は、この照合データをビット操作により照合データ記憶部13に登録する。
照合結果弁別部16は、このhcheckを照合データ記憶部13から読み出した照合データと比較照合した結果、陽性と判別された場合、被疑パターンの検出を完了し、信号制御部18を用いてトラヒックの分離や遮断、規制、廃棄等の制御を行うことができる。
このように、本実施の形態は、エントリ登録部12を特定用途向けプロセッサにより構成するとともに、この特定用途向けプロセッサに、照合データ記憶部13への照合データの登録に用いるレジスタファイルを、パターン照合に用いる照合ハッシュ種別ごとにそれぞれ内蔵し、この特定用途向けプロセッサで、照合ハッシュ種別ごとに設けたエントリ登録専用命令を実行することにより、当該照合ハッシュ種別と対応するレジスタファイルを介して、ハッシュ演算部11で生成された当該照合ハッシュ種別のハッシュ値を照合データとして照合データ記憶部13へ登録するようにしたものである。
したがって、本実施の形態によれば、従来のようにハッシュ演算部の一時出力を受けるための多数のレジスタや巨大なセレクタ回路を必要とすることなく、また外部CPUを付加する構成と比較して、より小規模な回路でエントリ登録部を実現することができ、エントリ登録に要する回路規模を大幅に削減することができる。
これにより、ハードウェアとして別途指定したメモリ容量の範囲内で、プログラム側からメモリサイズ設定専用命令により、記憶空間の大きさを任意に設定できるため、所望の擬陽性確率でトラヒック走査を実行することができる。
次に、図9を参照して、本発明の第2の実施の形態にかかるトラヒック走査装置10について説明する。図9は、第2の実施の形態にかかるトラヒック走査装置の構成を示すブロック図である。
第1の実施の形態と比較して、本実施の形態にかかるトラヒック走査装置10には、走査パラメータ指定部14に代えて、走査ウィンドウ設定部19が追加されている。
走査ウィンドウ設定部19は、前述したアルゴリズムやオフセットおよびマスクを、対応する各機能部に指定する。
これに応じて、パターン照合部15は、ハッシュ値および照合データの全ビットをパターン照合するのではなく、プログラムで指定された走査ウィンドウ内のビットについてのみパターン照合する。このため、走査ウィンドウ設定部19によりマスクされたビット部分については、パターン照合されなくなる。
したがって、トラヒック走査パラメータを動的に調整することが可能となり、極めて柔軟性の高いトラヒック走査を実現することが可能となる。
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
Claims (6)
- 弁別条件として予め登録されたエントリパターンと、走査対象となる通信ネットワーク上のトラヒックのパケットから抽出したトラヒックパターンとをパターン照合することにより、これらパケットのデータが所定のデータ集合に属するか否かを弁別するトラヒック走査装置で用いられるトラヒック走査方法であって、
ハッシュ演算部が、前記エントリパターンまたは前記トラヒックパターンからなるキーの射像となるハッシュ値を生成するハッシュ演算ステップと、
エントリ登録部が、前記エントリパターンからなるキーをもとにハッシュ値の生成を前記ハッシュ演算ステップに要求し、得られたハッシュ値をパターン照合時に陽性と判定される照合データとして照合データ記憶部に登録するエントリ登録ステップと、
パターン照合部が、前記トラヒックの各パケットから順次抽出した前記トラヒックパターンごとに、当該トラヒックパターンからなるキーをもとにハッシュ値の生成を前記ハッシュ演算ステップに要求し、得られたハッシュ値と前記照合データ記憶部から読み出した前記照合データとを比較することにより前記パターン照合を行うパターン照合ステップと、
照合結果弁別部が、前記パターン照合の結果、前記トラヒックパターンのハッシュ値のうちから前記照合データと一致する被疑パターンが検出された場合に、当該トラヒックパターンにかかるパケットのデータを陽性と弁別し、当該被疑パターンが検出されなかった場合に当該トラヒックパターンにかかるパケットのデータを陰性と弁別する照合結果弁別ステップとを備え、
前記エントリ登録部は、特定用途向けプロセッサにより構成されるとともに、当該特定用途向けプロセッサに、前記照合データ記憶部への照合データの登録に用いるレジスタファイルを、パターン照合に用いる照合ハッシュ種別ごとにそれぞれ内蔵し、
前記エントリ登録ステップは、前記照合ハッシュ種別ごとにエントリ登録専用命令をそれぞれ有し、これらエントリ登録専用命令を前記特定用途向けプロセッサで実行することにより、当該照合ハッシュ種別と対応する前記レジスタファイルを介して、前記ハッシュ演算ステップで生成された当該照合ハッシュ種別のハッシュ値を前記照合データとして前記照合データ記憶部へ登録する
ことを特徴とするトラヒック走査方法。 - 請求項1に記載のトラヒック走査方法において、
前記特定用途向けプロセッサは、前記照合ハッシュ種別ごとのレジスタファイルとして、登録する照合データのハッシュ種別を指定するためのハッシュ種別指定用レジスタ、当該照合データを保持するための照合データ保持用レジスタ、および当該照合データの登録先アドレスを保持するためのアドレス指定用レジスタを備えることを特徴とするトラヒック走査方法。 - 請求項1または請求項2に記載のトラヒック走査方法において、
前記特定用途向けプロセッサは、前記照合データ記憶部で照合データ保持する照合データ用記憶空間の大きさを設定するためのメモリサイズ設定用レジスタを備え、
前記エントリ登録ステップは、メモリサイズ設定専用命令を前記特定用途向けプロセッサで実行することにより、入力パラメータで指定されたメモリサイズを、前記メモリサイズ設定用レジスタを用いて前記照合データ用記憶空間の大きさを設定する
ことを特徴とするトラヒック走査方法。 - 弁別条件として予め登録されたエントリパターンと、走査対象となる通信ネットワーク上のトラヒックのパケットから抽出したトラヒックパターンとをパターン照合することにより、これらパケットのデータが所定のデータ集合に属するか否かを弁別するトラヒック走査装置であって、
前記エントリパターンまたは前記トラヒックパターンからなるキーの射像となるハッシュ値を生成するハッシュ演算部と、
前記エントリパターンからなるキーをもとにハッシュ値の生成を前記ハッシュ演算部に要求し、得られたハッシュ値をパターン照合時に陽性と判定される照合データとして照合データ記憶部に登録するエントリ登録部と、
前記トラヒックの各パケットから順次抽出した前記トラヒックパターンごとに、当該トラヒックパターンからなるキーをもとにハッシュ値の生成を前記ハッシュ演算部に要求し、得られたハッシュ値と前記照合データ記憶部から読み出した前記照合データとを比較することにより前記パターン照合を行うパターン照合部と、
前記パターン照合の結果、前記トラヒックパターンのハッシュ値のうちから前記照合データと一致する被疑パターンが検出された場合に、当該トラヒックパターンにかかるパケットのデータを陽性と弁別し、当該被疑パターンが検出されなかった場合に当該トラヒックパターンにかかるパケットのデータを陰性と弁別する照合結果弁別部とを備え、
前記エントリ登録部は、特定用途向けプロセッサにより構成されるとともに、当該特定用途向けプロセッサに、前記照合データ記憶部への照合データの登録に用いるレジスタファイルを、パターン照合に用いる照合ハッシュ種別ごとにそれぞれ内蔵し、前記照合ハッシュ種別ごとにエントリ登録専用命令を当該特定用途向けプロセッサで実行することにより、当該照合ハッシュ種別と対応する前記レジスタファイルを介して、前記ハッシュ演算部で生成された当該照合ハッシュ種別のハッシュ値を前記照合データとして前記照合データ記憶部へ登録する
ことを特徴とするトラヒック走査装置。 - 請求項4に記載のトラヒック走査装置において、
前記特定用途向けプロセッサは、前記照合ハッシュ種別ごとのレジスタファイルとして、登録する照合データのハッシュ種別を指定するためのハッシュ種別指定用レジスタ、当該照合データを保持するための照合データ保持用レジスタ、および当該照合データの登録先アドレスを保持するためのアドレス指定用レジスタを備えることを特徴とするトラヒック走査装置。 - 請求項4または請求項5に記載のトラヒック走査装置において、
前記特定用途向けプロセッサは、前記照合データ記憶部で照合データ保持する照合データ用記憶空間の大きさを設定するためのメモリサイズ設定用レジスタを備え、
前記エントリ登録部は、メモリサイズ設定専用命令を前記特定用途向けプロセッサで実行することにより、入力パラメータで指定されたメモリサイズを、前記メモリサイズ設定用レジスタを用いて前記照合データ用記憶空間の大きさを設定する
ことを特徴とするトラヒック走査装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013180555A JP5952240B2 (ja) | 2013-08-30 | 2013-08-30 | トラヒック走査方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013180555A JP5952240B2 (ja) | 2013-08-30 | 2013-08-30 | トラヒック走査方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015050598A JP2015050598A (ja) | 2015-03-16 |
JP5952240B2 true JP5952240B2 (ja) | 2016-07-13 |
Family
ID=52700269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013180555A Expired - Fee Related JP5952240B2 (ja) | 2013-08-30 | 2013-08-30 | トラヒック走査方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5952240B2 (ja) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7444515B2 (en) * | 2003-08-14 | 2008-10-28 | Washington University | Method and apparatus for detecting predefined signatures in packet payload using Bloom filters |
JP5127670B2 (ja) * | 2008-11-04 | 2013-01-23 | 三菱電機株式会社 | フィルタ装置及びフィルタ方法及びプログラム |
US8788766B2 (en) * | 2010-02-18 | 2014-07-22 | Oracle America, Inc. | Software-accessible hardware support for determining set membership |
-
2013
- 2013-08-30 JP JP2013180555A patent/JP5952240B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2015050598A (ja) | 2015-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101615915B1 (ko) | 어드밴스드 피처를 갖는 정규 표현식 패턴에 대한 비결정성 유한 오토마톤 (nfa) 생성 | |
JP6804668B2 (ja) | ブロックデータ検証方法および装置 | |
US9495479B2 (en) | Traversal with arc configuration information | |
US10819633B2 (en) | Data-plane stateful processing units in packet processing pipelines | |
US20200204501A1 (en) | Data-plane stateful processing units in packet processing pipelines | |
US8180803B2 (en) | Deterministic finite automata (DFA) graph compression | |
US7949683B2 (en) | Method and apparatus for traversing a compressed deterministic finite automata (DFA) graph | |
US10523764B2 (en) | Data-plane stateful processing units in packet processing pipelines | |
US20150039626A1 (en) | Building a hash table using vectorized instructions | |
JP2021512426A (ja) | ポリシ実行処理のためのシステムおよび方法 | |
US10204046B1 (en) | High-speed and memory-efficient flow cache for network flow processors | |
US20180183574A1 (en) | Efficient cryptographically secure control flow integrity protection | |
CN115917520A (zh) | 用于通过分布式算法为可编程数据平面提供lpm实现的系统 | |
CN115917473A (zh) | 用分布式lpm实现的高度可扩展算法构建数据结构的系统 | |
US10601711B1 (en) | Lens table | |
JP5952240B2 (ja) | トラヒック走査方法および装置 | |
US12019606B1 (en) | Hash operation manipulations | |
JP5952239B2 (ja) | トラヒック走査方法および装置 | |
US10511531B1 (en) | Enhanced lens distribution | |
JP6096084B2 (ja) | トラヒック走査装置及び方法 | |
US9104866B2 (en) | Pattern matching engine, terminal apparatus using the same, and method thereof | |
US10355994B1 (en) | Lens distribution | |
US20220113969A1 (en) | Techniques for use of a large scale multi-literal matching algorithm | |
CN109802824A (zh) | 一种移位处理的方法、装置、计算机存储介质及终端 | |
US9304917B2 (en) | Flush control apparatus, flush control method and cache memory apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150703 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160527 |
|
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: 20160607 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160609 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5952240 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |