JP6355836B2 - パケットフィルタ装置、及びパケットフィルタ方法 - Google Patents

パケットフィルタ装置、及びパケットフィルタ方法 Download PDF

Info

Publication number
JP6355836B2
JP6355836B2 JP2017518626A JP2017518626A JP6355836B2 JP 6355836 B2 JP6355836 B2 JP 6355836B2 JP 2017518626 A JP2017518626 A JP 2017518626A JP 2017518626 A JP2017518626 A JP 2017518626A JP 6355836 B2 JP6355836 B2 JP 6355836B2
Authority
JP
Japan
Prior art keywords
packet
zdd
rule
logical
value
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
Application number
JP2017518626A
Other languages
English (en)
Other versions
JPWO2016185513A1 (ja
Inventor
孝一 清水
孝一 清水
晃由 山口
晃由 山口
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2016185513A1 publication Critical patent/JPWO2016185513A1/ja
Application granted granted Critical
Publication of JP6355836B2 publication Critical patent/JP6355836B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、サイバー攻撃を防ぐ技術であるパケットフィルタのルールセットを、論理式の計算に適した木構造で表現し、処理効率を向上させるパケットフィルタ装置、及びそのパケットフィルタ方法に関する。
情報システムに対するサイバー攻撃が急増しており、サイバー攻撃への対策が求められている。サイバー攻撃の侵入経路として、ネットワークやUSBメモリが代表的である。従来、ネットワークからのサイバー攻撃を防ぐ技術として、パケットフィルタがある。パケットフィルタは、ルールセットに従って、パケットの通過を許可、または拒否する仕組みである。ルールセットは、パケットが満たすべき条件と、パケットが条件を満たしたときのアクションを記述したルールとからなる。ここでアクションとは、パケット通過の許可、または拒否である。ルールセット内でのルールの並びには順序があり、その順序に従ってパケットとルールとの照合が行なわれる。パケットがルールに記述された条件を満たすことを、「パケットがルールにマッチする」、「パケットとルールがマッチする」などという。パケットフィルタは、パケットを受信すると、ルールセット内での順序に従ってパケットとルールとの照合を行ない、ルールにマッチすればそのルールに定められたアクションに従ってパケットを許可または拒否し、マッチしなければ次のルールとの照合に進む。ルールセットの最後には、デフォルトルールと呼ばれる全てのパケットにマッチするルールが置かれる。これにより、パケットが、他のどのルールにもマッチしない場合であっても、必ずデフォルトルールによって処理される仕組みになっている。
システムやシステムに対する攻撃が複雑化するに従って、対応するパケットフィルタのルールセットは大きくなる。一方、パケットとルールとの照合は順序に従って1つ1つ行われるため、ルールの数が増えれば、それに比例して照合が完了するまでにかかる時間が増える。従って、処理を効率化するための技術が必要である。
特許文献1には、ルールセット内でルールの順序を入れ替えることでパケットフィルタを高速化する技術が開示されている。特許文献1のアイデアは、パケットに頻繁にマッチするルールほど前方に、頻繁にマッチしないルールほど後方に置くことで処理が効率化されるというもので、その目的のためルールセット内でのルールの入れ替えを動的に行なう。すなわち、パケットフィルタの動作時に、各ルールがパケットにマッチした回数を記録し、その回数に従ってルールの入れ替えを行なう。ただし、ルールの入れ替えによってルールセットの意味が変わることは許されないので、2つのルール同士が衝突しない場合に限り、それら2つのルールを入れ替える。ここで、2つのルールが衝突するとは、それらのアクションが異なり、かつ、それらに記述されたいずれかの条件に重複があることである。例えば、宛先アドレスによって指定される条件を考える。一方のルールでは、192.168.0.1〜192.168.0.100という範囲が条件として記述され、他方のルールでは、192.168.0.50〜192.168.0.150という範囲が条件として記述されているとすると、これらの条件は重複している。
非特許文献1には、通常の照合を行なう前に、それとは別の照合処理を行なって大部分のパケットを高速にふるい落とすことで、パケットフィルタを高速化する技術が開示されている。ルールを論理式と見なし、パケットのビット列を論理式に代入する値と見なすと、パケットがルールにマッチするのは論理式の値が1になるときであり、そのときに限られる。従って、パケットとルールとの照合を、論理式の計算で実現することができる。そこで、論理式の値の計算に適したデータ構造を用いることで、高速な照合が実現できる。非特許文献1は、BDDと呼ばれる木構造のデータ構造によって高速な照合を実現している。ただし、BDDでルールセットを表現するには、大きな記憶領域が必要であるため、ルールセット全体をBDDで表すことは難しい。そこで、BDDの木の走査は、一定の深さまでで打ち切ることとしている。これを本来のパケットフィルタの前処理として行ない、大部分のパケットをふるい落とし、残ったパケットに対して通常の照合処理を行なうことで、パケットフィルタ全体の処理時間を短縮することができる。
特開2000−174808号公報
非特許文献1に記載のBDDを用いるパケットフィルタは、BDDが木構造のデータ構造であるため、木構造の深さが増えるにつれ必要な記憶領域が指数関数的に増大する。従って、ルールセット全体を記憶領域に保持することができないため、BDDによる処理を一定の深さまでで打ち切る必要があるという課題があった。
本発明は、上記のような課題を解決するためになされたもので、論理式の計算に適した木構造でルールセット全体を処理できるようにすることにより、高速なパケットフィルタを実現することを目的とする。
上記で述べた課題を解決するため、本発明のパケットフィルタ装置は、条件とアクションとを対応付けたルールと、前記ルールの前記条件を論理変数で記述した論理式を表現するZDD(Zero−Suppressed Binary Decision Diagram)とを格納するルールセットと、ネットワークから受信したパケットを解析して照合対象となる文字列である照合情報を抽出するパケット解析部と、前記パケット解析部が抽出した前記照合情報と前記ZDDとを照合し、前記照合情報が合致する前記条件に対応付けられた前記アクションを実行して、前記パケットの通信を許可または拒否するフィルタ部とを備える。
また、本発明のパケットフィルタ方法は、条件とアクションとを対応付けたルールと、前記ルールの前記条件を論理変数で記述した論理式を表現するZDD(Zero−Suppressed Binary Decision Diagram)とを格納するルールセットを記憶する記憶部とパケット解析部とフィルタ部とを備えるパケットフィルタ装置のパケットフィルタ方法であって、前記パケット解析部が、ネットワークから受信したパケットを解析して照合対象となる文字列である照合情報を抽出するパケット解析ステップと、前記フィルタ部が、前記パケット解析部が抽出した前記照合情報と前記記憶部に格納された前記ZDDとを照合し、前記照合情報が合致する前記条件に対応付けられた前記アクションを実行して、前記パケットの通信を許可または拒否するフィルタステップとを備える。
本発明によれば、論理式をZDDによって記述するようにしているので、論理式の計算のために保持すべきデータサイズを小さくでき、また、ZDDを論理式の計算に使用すると計算間違いが生じるが、それを訂正する仕組みを備えるので、論理式を正しく高速に計算できるという効果が得られる。
実施の形態1に係るパケットフィルタ装置の一構成例を示す図である。 実施の形態1に係るパケットフィルタ装置の適用対象となる侵入検知装置のネットワーク構成例(その1)を示す図である。 実施の形態1に係るパケットフィルタ装置の適用対象となる侵入検知装置のネットワーク構成例(その2)を示す図である。 侵入検知装置1のハードウェア構成例を示す図である。 侵入検知のルールセットの一例を示す図である。 パケットとルールの文字列の照合を説明する図である。 ルールセットを論理式として記述する例を説明する図である。 論理式を木構造で表現する例を説明する図である。 論理式をZDDによるデータ構造で表現する例を示す図である。 二分決定木の簡約化規則を説明する図である。 ZDDによる論理式の計算結果の例を示す図である。 ZDDによる論理式の計算の流れを示すフローチャートである。 実施の形態2に係るビット反転処理を説明する図である。
実施の形態1.
以下、図を参照しながら、本実施の形態のパケットフィルタ装置の構成と動作を説明する。
図1は、実施の形態1に係るパケットフィルタ装置の一構成例を示す図である。
図2は、実施の形態1に係るパケットフィルタ装置の適用対象となる侵入検知装置のネットワーク構成例(その1)を示す図である。
図3は、実施の形態1に係るパケットフィルタ装置の適用対象となる侵入検知装置のネットワーク構成例(その2)を示す図である。
まず、図2と図3を用いて、パケットフィルタ装置が適用されるネットワーク構成例について説明する。
社内LANをインターネットに接続する際、社内LANのセキュリティを守る目的で、社内LANとインターネットとの間の通信を制御するファイアウォールと呼ばれる装置を、社内LANとインターネットの境界に設置するのが通常である。図2では、上述のような標準的なネットワーク構成に侵入検知装置が加わった構成となっている。すなわち、社内LANなどの内部ネットワーク10が、侵入検知装置1とファイアウォール9を介して、インターネットなどの外部ネットワーク8に接続されている。ここで、ファイアウォール9と侵入検知装置1は、機能的な違いから別々のブロックとして表記しているが、物理的な装置としては、別の装置であっても良いし、同じ装置であっても良い。
また、図3のネットワーク構成は、パケットフィルタ装置が適用されるネットワーク構成のもう1つの例を示す。図2との違いは、侵入検知装置1を設置している位置である。図2では、ファイアウォール9と内部ネットワーク10を接続する通信回線の途中に侵入検知装置1を設置し、ファイアウォール9と内部ネットワーク10の間の通信を遮っている。しかし、図では、ファイアウォール9と内部ネットワーク10の途中で通信回線を分岐させた先に侵入検知装置1を設置しており、ファイアウォール9と内部ネットワーク10の間の通信は遮られていない。この設置位置の違いは、パケットに対する侵入検知の結果、パケットをどう処理するかに対応している。すなわち、侵入検知の結果、パケットを遮断する場合には、図2の構成が必要となるが、パケットの遮断はせず、例えばアラートを上げるのみに留める場合は、図3の構成で十分である。
次に、図1を用いて、実施の形態1に係るパケットフィルタ装置の構成を説明する。
図1において、侵入検知装置1は、ファイアウォール9を通過したパケットを受信する受信部2、受信したパケットの通信を許可、または拒否するパケットフィルタ装置3、通信を許可されたパケットを内部ネットワークに送信する送信部7を備える。
パケットフィルタ装置3は、パケット解析部4、ルールセット5、フィルタ部6を備える。
パケット解析部4は、受信したパケットを解析して、ルールの条件と照合する照合情報を抽出する。ルールセット5は、条件とアクションとを対応付けたルールを格納する。フィルタ部6は、パケットから抽出した照合情報とルールの条件とを照合し、両者が合致したルールのアクションを実行する。
図4は、侵入検知装置1のハードウェア構成例を示す図である。
図4において、侵入検知装置1は、一般的なコンピュータと同様のハードウェア構成として実現され、バス11に、プロセッサ12とメモリ13、そして、LANなどのネットワークポート14と15が接続された構成となっている。図4では、図2のシステム構成を想定した2個のネットワークポートを備えた構成であり、ネットワークポート14が外部ネットワーク側、ネットワークポート15が内部ネットワーク側に接続される構成となっている。
受信部2は、ネットワークポート14であり、送信部7は、ネットワークポート15である。
プロセッサ12は、プログラムを実行するCPU(Central Processing Unit)等である。メモリ13は、例えばRAM(Random Access Memory)等である。
プログラムは、メモリ13にロードされた状態で、順次、プロセッサ12に読み込まれ、実行される。このプログラムは、パケットフィルタ装置3を構成するパケット解析部4、フィルタ部6として説明している機能を実現するプログラムである。
また、ルールセット5が記憶する情報やデータ、フィルタ部6の処理の結果を示す情報やデータや信号値や変数値が、メモリ13にファイルとして記憶されている。
なお、図4の構成は、あくまでも各装置のハードウェア構成の一例を示すものであり、各装置のハードウェア構成は図4に記載の構成に限らず、他の構成であってもよい。
次に、パケットフィルタ装置3のルールセット5に格納されるルールについて詳細に説明する。
図5は、侵入検知のルールセットの一例を示す図である。
図5では、侵入検知のルールセットの例として、3つのルールからなるルールセット16を示している。ルールセット16は、ルールの例として、IPパケットの送信元アドレスと送信先アドレスを条件として照合を行ない、照合結果に応じたアクションとして、通信の許可、または拒否を行なう例を示している。ルールに含まれるアスタリスク*は、任意の値を許すワイルドカードを表わす。ルールR1は、パケットの送信元アドレスが 192.168.0.* であり、かつ、送信先アドレスが 192.168.0.* であれば、そのパケットの通信を許可することを意味している。ルールR2は、送信元アドレスが 192.168.1.10 であり、かつ、送信先アドレスが 192.168.0.* であれば、そのパケットの通信を許可することを意味している。ルールR3は、送信元アドレスが 192.168.1.* であり、かつ、送信先アドレスが 192.168.0.* であれば、そのパケットの通信を拒否することを意味している。
通常、パケットとルールの照合は、ルールセット16の上に書かれたルールから順番に行なわれる。従って、送信元アドレスが 192.168.1.10 で、送信先アドレスが 192.168.0.* であるパケットは、ルールR2とR3の両方を満たすが、ルールR2の方が先に照合されるため、ルールR2との照合結果に従って通信を許可される。ただし、通常このような送信元および送信先アドレスに基づく通信の制御は、ファイアウォール9の機能である。侵入検知装置1は、アドレス以外のより詳細なデータも利用して通信の制御を行なうのが普通であるが、ここでは説明のためアドレスのみで通信の制御を行なう例を示している。
通常、図5のルールセット16は、テキストファイルとして記述されており、上述したパケットとルールの照合は、文字列の照合として実現される。
図6は、パケットとルールの文字列の照合を説明する図である。
図6において、ルールに記述された送信元アドレスの文字列17と、パケットの送信元アドレスの文字列18とを、1文字列ずつ比較することで、ルールとパケットがマッチするかどうか判定される。
次に、パケットフィルタのルールセットを論理式として記述する例を説明する。
図7は、ルールセットを論理式として記述する例を説明する図である。
図7では、簡単のため、アドレスを3ビット値(0から7までの整数値)とし、ルールとパケットがマッチした場合のアクションは省略している。そして、マッチの条件となる送信元と送信先の値を2進法で表記している。例えば、ルールR1は、送信元アドレスが11*で、送信先アドレスが***であるようなパケットとマッチするが、これを10進法で表せば、送信元アドレスが6、または7で、送信先アドレスが0〜7であるようなパケットとマッチするということである。
ここで、送信元と送信先のアドレスを合わせて6ビットが条件として使用されているが、このそれぞれのビットを、論理変数x1,x2,・・・,x6と見なすことを考える。すると、ルールR1が満たされるのは、x1とx2がともに1であるときであり、それ以外の論理変数の値は何でも良い。このような条件は、論理変数の論理積で表すことが可能であり、ルールR1の場合は、論理積19のように表すことができる。実際、論理積19は、x1とx2がともに1であるとき、そのときに限り1になるので、論理積19の値が1であるかどうかで、パケットとルールのマッチングを判定することができる。
ルールR2も同様に、論理積20のように表すことができ、ルールR1とR2を合わせたルールは、それらの論理和21として表すことができる。ただし、一般には、ルール間には依存関係があり、ルールを照合する順番によってフィルタリング結果が変わる。従って、単純に21のような論理和を取ると、そのような依存関係が失われることに注意が必要である。それを防ぐには、論理和を取る前にルールの変形を行ない、22に示すような論理和を取る必要がある。22において、f(R)は、ルールRに対応する論理式を表すとする。22において、論理積23は、「ルールR1を満たさない、かつ、ルールR2を満たす」ことを意味しているので、ルールR1が満たされる場合は、論理積23は満たされない、すなわち、ルールR2が満たされるかどうかは無視される。従って、ルールR1を先に照合するという元の依存関係が実現されていることがわかる。
次に、上述した論理式を木構造で表現する例について説明する。
図8は、論理式を木構造で表現する例を説明する図である。
図8の24では、論理式25が、二分決定木と呼ばれる木構造で表現されている。二分決定木では、論理変数の値に従って枝を辿ると、論理式の値が終端ノードとして与えられる。例えば、(x1,x2,x3)=(1,0,1)に対する論理式25の値は1であるが、その計算は、二分決定木において、枝26、27、28を辿り、終端ノード29の値を確認することに対応している。このように、二分決定木を用いれば、論理変数の数と同じ回数の枝の走査によって論理式の値を求めることができるため、特に、論理変数の数が増えて論理式が複雑になった場合、論理式を四則演算するよりも高速に値を求めることができる。従って、パケットフィルタのルールを図7のように論理式で表現することと併せて、図8のように木構造で表現することにより、高速なパケットフィルタを実現することができる。
しかし、24のような最も単純な二分決定木では、各論理変数の値0、1に対応する分岐を全てデータとして保持するため、論理変数の数が増えるとデータを保持するために必要な記憶領域が指数関数的に増え、全てのデータを保持することができなくなる。
そこで、本発明の基本アイデアとして、二分決定木を簡約化したZDD(Zero−Suppressed Binary Decision Diagram)と呼ばれるデータ構造を利用して論理式の計算を行なう。
図9は、論理式をZDDによるデータ構造で表現する例を示す図である。
図9において、30のZDDは、24の二分決定木を、後述する簡約化規則に従って簡約化したものである。ZDDは、31のような組み合わせ集合に対する演算を行なうのに適したデータ構造である。組み合わせ集合とは、変数の組み合わせを要素とする集合であり、ZDDでは、データが組み合わせ集合を満たすかどうかを効率的に判定できる。30のZDDでは、データが、組み合わせx1x3、もしくはx2を満たすかどうかを判定できる。例えば、枝32、33を辿ると、終端ノード34に到達し、終端ノード34の値は1である。これは、(x1,x3)=(1,1)が組み合わせ集合を満たす、具体的には、組み合わせx1x3を満たすことに対応している。ここで本来は、x2=0であることもチェックする必要があるが、そのチェックは省略されており、ZDDでは1のチェックのみを行なっているといえる。従って、大部分のビットが0であるような疎データであれば、大部分のチェックが省略される。このようにして、ZDDでは、データを保持するために必要な記憶領域を、場合によっては指数関数的に減らせることが知られている。
次に、二分決定木の簡約化規則について説明する。
図10は、二分決定木の簡約化規則を説明する図である。
図10の35が、簡約化規則を模式的に示している。二分決定木36において、ノード38に注目する。ノード38の分岐元は部分木37であり、ノード38から値0で分岐した先は部分木39であり、ノード38から値1で分岐した先は終端ノード40であるとし、終端ノード40の値は0であるとする。このように、あるノードから値1で分岐した先が値0の終端ノードであるとき、そのノードを削除し、前後の部分木をつなぐ。二分決定木36の場合、ノード38を削除し、部分木37と部分木39をつなぐ簡約化が実行され、簡約化された二分決定木41が得られる。
本発明では、ZDDを、組み合わせ集合の演算ではなく、論理式の計算に利用する。
図11は、ZDDによる論理式の計算結果の例を示す図である。
図11において、計算対象の論理式は42であり、これは、図8の25と同じものである。この論理式が、図の30で示したZDDで表され、この論理式の値の計算は、30で示したZDDの枝を辿ることによって行なわれる。そのようにして求めた計算結果を、図11に示している。
しかし、図11の計算結果では、(x1,x2,x3)=(0,1,1)、および(1,1,1)の場合に、ZDDによる計算結果が間違っていることが分かる。これは、ZDDでは値が0であることのチェックが省略されるためである。例えば、(x1,x2,x3)=(1,1,1)の場合、図のZDD30において、枝32と枝33を辿り、終端ノード34に到達することによって論理式の値が1と決定されるが、この過程において、変数x2の値が0であることのチェックは省略され、(x1,x3)=(1,1)であることのみチェックされている。(x1,x3)=(1,1)であるとき、それに加え、もしx2=0であれば、(x1,x2,x3)=(1,0,1)であり、この値の組を論理式42に代入すれば1になるので、ZDDによる計算結果は正しいことになる。この結果は、表43のパケット6に対応している。しかし、もしx2=1であれば、(x1,x2,x3)=(1,1,1)であり、この値の組を論理式42に代入すれば0になるので、ZDDによる計算結果は間違っていることになる。この結果は、表43のパケット8に対応している。一方、ZDDによる計算結果が0になる場合、すなわち枝を辿った結果、値が0の終端ノードに達する場合は、途中で0のチェックを省略していたとしても、すなわちチェックを省略した論理変数の値が何であっても、この計算結果は正しい。この事実は、図10の35で示した簡約化規則から従う。
以上のように、ZDDでは論理式の計算が正確には行なえないため、それを訂正する仕組みが必要である。ZDDによる計算間違いが生じるのは、ZDDによる計算結果が1であるとき、かつ、ZDDによる計算過程で値のチェックを省略した論理変数の中に、値が1であるものが含まれるときである。従って、ZDDによる計算結果が1であるとき、ZDDの計算過程で値のチェックを省略した変数の値が全て0であれば、ZDDによる計算結果は正しい。そうでなければ、ZDDによる計算結果は間違っており、正しい結果は0である。このことから、ZDDによる計算結果が1であるときは、ZDDの計算過程で値のチェックを省略した変数について、値が全て0であるか、そうでないかをチェックすることにより、正しい結果が得られる。
しかし、特定の論理変数の値のみをチェックするには、その論理変数の番号を記憶する必要があるなどコストがかかる。そこで本発明は、全ての論理変数を一括でチェックするため、以下の仕組みをフィルタ部6に備える。フィルタ部6では、ZDDによる計算過程で、論理変数の値をチェックする度に、その論理変数の値を0に書き換えていく。ただし、元から0である場合は、そのままで良い。このような処理を行なうと、ZDDによる計算結果が1であるとき、値が1であるべき論理変数は全て0に書き換わっており、値のチェックを省略した残りの論理変数は値が0でなければならない。そこで、個々の論理変数ではなく、全ての論理変数をまとめた全体として値が0に等しいかどうかを判定し、等しければ全体の判定結果は1で確定、等しくなければ全体の判定結果は0で確定とする。このような0判定は、通常、CPUの1命令で実行可能である。一方、既に述べた通り、ZDDによる計算結果が0であるときは、このような最後の0判定は不要で、論理式の値は0で確定している。
上記で説明したZDDによる論理式の計算を、計算間違いの訂正処理も含めて、フローチャートを用いて以下で詳細に説明する。
図12は、ZDDによる論理式の計算の流れを示すフローチャートである。
図12の処理は、フィルタ部6により実行される。
まず、ステップS101で、nビットの入力データ44がフィルタ部6に入力される。この入力データは、パケット解析部4が出力する、ルールの条件と照合する照合情報に相当する。ステップS102で、フィルタ部6は、入力データ44を、nビットの一時変数45に保持する。ここで、入力データの第kビットが、論理変数x(k)に対応しているとし、一時変数45の第kビットをx(k)と表すことにする。また、一時変数45のnビット全体としてxと表すことにすると、x=(x(1),…,x(n))である。
次に、ステップS104からS110は、ZDDにおいて枝を辿る処理に対応するループであり、これによってZDDによる論理式の計算が実行される。ZDDにおいて現在注目しているノードの論理変数をx(k)とすると、ステップS106で、一時変数の第kビットであるx(k)の値をチェックし、その値に従って、ステップS107で枝を辿る。そして、ステップS108で、一時変数の第kビットであるx(k)を0にする。ZDDの計算が完了するとループを抜け、ステップS111でZDDの計算結果に従って処理を分岐させる。計算結果が0であれば、これは正しい結果であることが確定しているので、ステップS113において最終結果として0を出力する。一方、ステップS111の計算結果が1であれば、この計算結果は、まだ正しいかどうかが確定していないので、それを確定させるため、ステップS112の0判定に進む。
ステップS112では、一時変数xが0であるかどうかを判定し、0であればステップS114において最終結果1を出力し、0でなければ、ステップS113において、最終結果0を出力する。ただし、ステップS112の0判定は、各ビットx(k)に対する0判定を合計n回行なうのではなく、nビット値xに対する0判定を1回行なう。
以上のように、本実施の形態1のパケットフィルタ装置は、論理式をZDDによって記述するようにしているので、論理式の計算のために保持すべきデータサイズを小さくでき、また、ZDDを論理式の計算に使用すると計算間違いが生じるが、それを訂正する仕組みを備えるので、論理式を正しく高速に計算できるという効果が得られる。
実施の形態2.
ZDDは、多くのビットが0であるような疎データに対して、簡約化によるサイズの縮小効果が高くなる。そこで、パケットフィルタのルールを論理式として記述する前に、対象システムで発生する実通信の統計的な性質を利用し、データが疎になるように論理変数を変換することによって、論理式をZDDで記述した際のサイズをさらに小さくできる可能性がある。そこで本実施の形態2では、パケットデータにおける各ビットが0となる割合が高いか、1となる割合が高いかに応じて、パケットデータに対するビット反転処理を行なうことによって、反転後のパケットデータにおいては、各ビットが0となる割合の方が高くなるようにする。パケットデータの各ビットが0または1となる割合は、対象システムの本格運用前に、あらかじめ実通信を観測することによって得られる。
図13は、実施の形態2に係るビット反転処理を説明する図である。
図13では、論理変数の値を反転させることによって、パケットデータの各ビットが0になる割合が高くなるようにする方法を示している。
図13では、パケットデータは4ビット長で、各ビットは、論理変数x1,…,x4に対応付けられているとする。実通信で流れるパケットを、例えば100個観測すると、パケットの第1ビットに関して100個の値が得られ、その内の何個が0で、何個が1であるかの統計データが得られる。このようにして、あるシステムで実通信を観測した結果得られた統計データの例を、表48に示す。
表48では、パケットの第1ビットx1が0である割合は90%、1である割合は10%であり、第1ビットでは、0が出る割合の方が高い。従って、ZDDで論理式を表現した際に、x1に関する部分は大きく簡約化されると期待できる。一方、第2ビットx2が0である割合は20%、1である割合は80%であり、第2ビットでは1が出る割合の方が高い。従って、ZDDで論理式を表現した際に、x2に関する部分はあまり簡約化されないと考えられる。そこで、第2ビットの値を反転させることによって、0である割合が80%、1である割合が20%であるようにする。その結果、反転させた第2ビットでは0が出る割合の方が高くなり、ZDDで論理式を表現した際に、反転させたx2に関する部分は大きく簡約化されると期待できる。
なお、ビットの反転は、論理変数に対しては論理否定を取ることに対応しており、「反転させたx2」とは「x2の論理否定」を意味する。第3、第4ビットに関しても同様であり、全体として、論理式49で示すように、4ビット値(x1,x2,x3,x4)に対して、4ビット値0110との排他的論理和を行なって第2、第3ビットの値を反転させておけば、表50に示すように、全てのビットにおいて0が出る割合の方が高くなるようにできる。このように、ビット反転処理を行なったパケットに対するルールを論理式として表わし、ZDDに変換すれば、疎データに対するZDDを作成したこととなり、サイズが小さいZDDが得られる。このようにビット反転処理を行なって作成したZDDを、ビット反転ZDDと呼ぶ。ここで、元のビットとその値を反転させたビットは1対1対応しているので、ビット反転後のパケットに対するフィルタリング結果は、元のパケットに対するフィルタリング結果に等しい。従って、ビット反転処理によって、ZDDのサイズを小さくしつつ、元と同じフィルタリング結果が得られる。
以上のように、対象システムの実通信の観測結果に基づき、必要に応じてビット反転処理を行ない、全てのビットにおいて値が0である割合の方が高くなるようにして、データが疎になるようにしているので、それに対応する論理変数を用いた論理式によってパケットフィルタのルールを表わし、そのルールをZDDで表わした際に、ZDDのサイズを小さくすることができるという効果が得られる。
1 侵入検知装置、2 受信部、3 パケットフィルタ装置、4 パケット解析部、5 ルールセット、6 フィルタ部、7 送信部、8 外部ネットワーク、9 ファイアウォール、10 内部ネットワーク、11 バス、12 プロセッサ、13 メモリ、14,15 ネットワークポート、16 ルールセットの例、17 ルールに記述された送信元アドレスの文字列、18 パケットの送信元アドレスの文字列、19〜23,25,42,49 論理式、24,36 二分決定木、26〜28 枝、29,40 終端ノード、30 ZDD、31 組み合わせ集合、32,33 枝、34 終端ノード、35 簡約化規則、37,39 部分木、38 ノード、41 簡約化された二分決定木、43 ZDDによる計算結果、44 入力データ、4一時変数、48 実通信を観測した結果得られた統計データの例、50 ビット反転処理の例。

Claims (5)

  1. 条件とアクションとを対応付けたルールと、前記ルールの前記条件を論理変数で記述した論理式を表現するZDD(Zero−Suppressed Binary Decision Diagram)とを格納するルールセットと、
    ネットワークから受信したパケットを解析して照合対象となる文字列である照合情報を抽出するパケット解析部と、
    前記パケット解析部が抽出した前記照合情報と前記ZDDとを照合し、前記照合情報が合致する前記条件に対応付けられた前記アクションを実行して、前記パケットの通信を許可または拒否するフィルタ部と
    を備え
    前記フィルタ部は、前記照合情報と前記ZDDとの照合において、照合が完了した前記論理変数の値を0で上書きし、前記ZDDの全体に対して照合が完了した際に、0で上書きされた前記論理変数を含む前記論理式の値が0であるか否かを判定するパケットフィルタ装置。
  2. 前記フィルタ部は、前記ZDDの全体に対して照合が完了した際に、前記ZDDにより計算された前記論理式の値が0である場合に前記論理式の値の判定結果を0とし、前記ZDDにより計算された前記論理式の値が1である場合に、0で上書きされた前記論理変数を含む前記論理式の値が0であれば前記論理式の値の判定結果を1とし、0で上書きされた前記論理変数を含む前記論理式の値が0でないならば前記論理式の値の判定結果を0とする請求項記載のパケットフィルタ装置。
  3. 条件とアクションとを対応付けたルールと、前記ルールの前記条件を論理変数で記述した論理式を表現するZDD(Zero−Suppressed Binary Decision Diagram)とを格納するルールセットと、
    ネットワークから受信したパケットを解析して照合対象となる文字列である照合情報を抽出するパケット解析部と、
    前記パケット解析部が抽出した前記照合情報と前記ZDDとを照合し、前記照合情報が合致する前記条件に対応付けられた前記アクションを実行して、前記パケットの通信を許可または拒否するフィルタ部と
    を備え
    前記ルールセットは、前記パケットを観測して得られた前記照合情報の統計的な0と1の出現傾向に従って前記論理変数のビットの値を反転させた前記論理式を表現するビット反転ZDDを格納し、
    前記フィルタ部は、前記ルールセットに格納された前記ビット反転ZDDを用いて、前記照合情報と前記ZDDとを照合するパケットフィルタ装置。
  4. 条件とアクションとを対応付けたルールと、前記ルールの前記条件を論理変数で記述した論理式を表現するZDD(Zero−Suppressed Binary Decision Diagram)とを格納するルールセットを記憶する記憶部とパケット解析部とフィルタ部とを備えるパケットフィルタ装置のパケットフィルタ方法であって、
    前記パケット解析部が、ネットワークから受信したパケットを解析して照合対象となる文字列である照合情報を抽出するパケット解析ステップと、
    前記フィルタ部が、前記パケット解析部が抽出した前記照合情報と前記記憶部に格納された前記ZDDとを照合し、前記照合情報が合致する前記条件に対応付けられた前記アクションを実行して、前記パケットの通信を許可または拒否するフィルタステップと
    を備え
    前記フィルタ部は、前記照合情報と前記ZDDとの照合において、照合が完了した前記論理変数の値を0で上書きし、前記ZDDの全体に対して照合が完了した際に、0で上書きされた前記論理変数を含む前記論理式の値が0であるか否かを判定するパケットフィルタ方法。
  5. 条件とアクションとを対応付けたルールと、前記ルールの前記条件を論理変数で記述した論理式を表現するZDD(Zero−Suppressed Binary Decision Diagram)とを格納するルールセットを記憶する記憶部とパケット解析部とフィルタ部とを備えるパケットフィルタ装置のパケットフィルタ方法であって、
    前記パケット解析部が、ネットワークから受信したパケットを解析して照合対象となる文字列である照合情報を抽出するパケット解析ステップと、
    前記フィルタ部が、前記パケット解析部が抽出した前記照合情報と前記記憶部に格納された前記ZDDとを照合し、前記照合情報が合致する前記条件に対応付けられた前記アクションを実行して、前記パケットの通信を許可または拒否するフィルタステップと
    を備え
    前記ルールセットは、前記パケットを観測して得られた前記照合情報の統計的な0と1の出現傾向に従って前記論理変数のビットの値を反転させた前記論理式を表現するビット反転ZDDを格納し、
    前記フィルタ部は、前記ルールセットに格納された前記ビット反転ZDDを用いて、前記照合情報と前記ZDDとを照合するパケットフィルタ方法。
JP2017518626A 2015-05-15 2015-05-15 パケットフィルタ装置、及びパケットフィルタ方法 Expired - Fee Related JP6355836B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/064024 WO2016185513A1 (ja) 2015-05-15 2015-05-15 パケットフィルタ装置、及びパケットフィルタ方法

Publications (2)

Publication Number Publication Date
JPWO2016185513A1 JPWO2016185513A1 (ja) 2017-07-20
JP6355836B2 true JP6355836B2 (ja) 2018-07-11

Family

ID=57319573

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017518626A Expired - Fee Related JP6355836B2 (ja) 2015-05-15 2015-05-15 パケットフィルタ装置、及びパケットフィルタ方法

Country Status (6)

Country Link
US (1) US9979697B2 (ja)
EP (1) EP3288222B1 (ja)
JP (1) JP6355836B2 (ja)
CN (1) CN107534601B (ja)
TW (1) TWI598763B (ja)
WO (1) WO2016185513A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3618389B1 (en) 2018-08-27 2020-10-07 Ovh Systems and methods for operating a networking device
JP7186637B2 (ja) * 2019-02-21 2022-12-09 三菱電機株式会社 検知ルール群調整装置および検知ルール群調整プログラム
CN112583763B (zh) * 2019-09-27 2022-09-09 财团法人资讯工业策进会 入侵侦测装置以及入侵侦测方法
TWI736457B (zh) * 2020-10-27 2021-08-11 財團法人資訊工業策進會 動態網路特徵處理裝置以及動態網路特徵處理方法
JP2022167309A (ja) * 2021-04-23 2022-11-04 富士通株式会社 要素追加プログラム及び要素追加方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493504A (en) 1992-10-28 1996-02-20 Nippon Telegraph And Telephone Corporation System and method for processing logic function and fault diagnosis using binary tree representation
JP2985922B2 (ja) 1992-10-28 1999-12-06 日本電信電話株式会社 論理関数データ処理装置
CA2287689C (en) 1998-12-03 2003-09-30 P. Krishnan Adaptive re-ordering of data packet filter rules
US6651096B1 (en) 1999-04-20 2003-11-18 Cisco Technology, Inc. Method and apparatus for organizing, storing and evaluating access control lists
US6473763B1 (en) 2000-03-31 2002-10-29 International Business Machines Corporation System, method and computer program for filtering multi-action rule set
US7188091B2 (en) * 2001-03-21 2007-03-06 Resolutionebs, Inc. Rule processing system
US7761397B2 (en) * 2001-03-21 2010-07-20 Huelsman David L Rule processing method and apparatus providing automatic user input selections
US7366910B2 (en) 2001-07-17 2008-04-29 The Boeing Company System and method for string filtering
US8027330B2 (en) 2004-06-23 2011-09-27 Qualcomm Incorporated Efficient classification of network packets
US7962591B2 (en) 2004-06-23 2011-06-14 Mcafee, Inc. Object classification in a capture system
US7540025B2 (en) 2004-11-18 2009-05-26 Cisco Technology, Inc. Mitigating network attacks using automatic signature generation
JP4774307B2 (ja) 2006-02-06 2011-09-14 アラクサラネットワークス株式会社 不正アクセス監視装置及びパケット中継装置
US8429749B2 (en) * 2007-03-27 2013-04-23 National Institute Of Advanced Industrial Science And Technology Packet data comparator as well as virus filter, virus checker and network system using the same
JP5223380B2 (ja) * 2008-03-03 2013-06-26 富士通株式会社 評価方法および検索装置
US8290934B2 (en) 2008-08-06 2012-10-16 Fujitsu Limited Method and system for processing access control lists using a hashing scheme
US8254502B2 (en) 2008-12-22 2012-08-28 Qualcomm Incorporated Post decoding soft interference cancellation
CN102262707B (zh) * 2010-05-28 2016-01-13 南德克萨斯加速研究治疗有限责任公司 用于管理临床研究数据的机器和方法
US20130235884A1 (en) * 2012-03-11 2013-09-12 Broadcom Corporation Mixed serial and parallel stream channel bonding architecture
US9578061B2 (en) * 2013-03-13 2017-02-21 FireMon, LLC System and method for modeling a networking device policy
US9838729B2 (en) * 2013-11-06 2017-12-05 Avago Technologies General Ip (Singapore) Pte. Ltd. Recovering channel bonded program streams
CN104202303A (zh) * 2014-08-11 2014-12-10 华中科技大学 一种sdn应用的策略冲突检测方法及系统
CN108028077B (zh) * 2015-09-10 2023-04-14 豪夫迈·罗氏有限公司 用于整合临床护理的信息学平台

Also Published As

Publication number Publication date
WO2016185513A1 (ja) 2016-11-24
EP3288222A1 (en) 2018-02-28
TWI598763B (zh) 2017-09-11
JPWO2016185513A1 (ja) 2017-07-20
US20180069835A1 (en) 2018-03-08
CN107534601A (zh) 2018-01-02
EP3288222B1 (en) 2019-11-13
TW201640403A (zh) 2016-11-16
US9979697B2 (en) 2018-05-22
EP3288222A4 (en) 2018-12-05
CN107534601B (zh) 2018-11-20

Similar Documents

Publication Publication Date Title
JP6355836B2 (ja) パケットフィルタ装置、及びパケットフィルタ方法
US9578061B2 (en) System and method for modeling a networking device policy
JP6450845B2 (ja) ファイルベースコンテンツが持つリスク判定のための統計分析手法
US9270704B2 (en) Modeling network devices for behavior analysis
US9727307B2 (en) Calculating consecutive matches using parallel computing
US9762595B2 (en) Secure cross domain solution systems and methods
JP2017021778A (ja) 変更されたウェブページを判定するためのシステム及び方法
CN111224941B (zh) 一种威胁类型识别方法及装置
WO2016127555A1 (zh) 控制应用程序权限的方法及控制器
CN111971931A (zh) 在区块链网络中验证交易的方法以及构成该网络的节点
CN112883688B (zh) 富文本过滤方法、富文本过滤装置、计算机可读存储介质
CN112887304A (zh) 基于字符级神经网络的web应用入侵检测方法及系统
DE102015107073A1 (de) Vorrichtung und Verfahren zur Steuerung eines Kommunikationsnetzwerks
US20100281260A1 (en) Hash function based on polymorphic code
EP4127981A1 (en) Systems, methods, and storage media for creating secured transformed code from input code using a neural network to obscure a function
US10419346B1 (en) Hash computation using memristor-implemented dot product engine
CN109660499B (zh) 攻击拦截方法和装置、计算设备及存储介质
CN106657104B (zh) 一种防护策略的匹配方法及装置
CN100461091C (zh) 用可重新配置硬件进行内容检测的方法和系统
CN110868388B (zh) 用于操作联网设备的系统和方法
Dvořák et al. Gray codes extending quadratic matchings
CN108667822B (zh) 一种用于检验片上网络硬件安全的方法
CN105471839A (zh) 一种判断路由器数据是否被窜改的方法
WO2023223445A1 (ja) 攻撃検知装置、攻撃検知方法、及び攻撃検知プログラム
Chang et al. A memory efficient pattern matching scheme for regular expressions

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170322

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170322

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: 20180515

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180612

R150 Certificate of patent or registration of utility model

Ref document number: 6355836

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees