JP2010114480A - フィルタ装置及びフィルタ方法及びプログラム - Google Patents

フィルタ装置及びフィルタ方法及びプログラム Download PDF

Info

Publication number
JP2010114480A
JP2010114480A JP2008282763A JP2008282763A JP2010114480A JP 2010114480 A JP2010114480 A JP 2010114480A JP 2008282763 A JP2008282763 A JP 2008282763A JP 2008282763 A JP2008282763 A JP 2008282763A JP 2010114480 A JP2010114480 A JP 2010114480A
Authority
JP
Japan
Prior art keywords
value
counter
conversion
packet
unit
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
JP2008282763A
Other languages
English (en)
Other versions
JP5127670B2 (ja
Inventor
Kiyohiko Suzuki
清彦 鈴木
Akihiko Watanabe
明彦 渡邊
Keiji Watanabe
啓嗣 渡邊
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
Mitsubishi Electric Building Solutions Corp
Original Assignee
Mitsubishi Electric Corp
Mitsubishi Electric Building Techno Service Co Ltd
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, Mitsubishi Electric Building Techno Service Co Ltd filed Critical Mitsubishi Electric Corp
Priority to JP2008282763A priority Critical patent/JP5127670B2/ja
Publication of JP2010114480A publication Critical patent/JP2010114480A/ja
Application granted granted Critical
Publication of JP5127670B2 publication Critical patent/JP5127670B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】通信アドレスのHASH値を用いてパケットの透過、廃棄を行うアドレスフィルタ装置において、false positive通信が恒久的に透過され続ける事態を回避する。
【解決手段】アドレスフィルタ装置210は、単位時間内に許容される通信データの誤透過数を許容透過数Tとし、受信した通通信データ1700に含まれる通信アドレスのHASH値を算出するとともにHASH関数を分割して分割HASH値とし、各分割HASH値に対応するカウンタの値を1加算し、一つでも分割HASH値のカウンタ値が許容透過数Tを超えてない場合は受信した通信データ1700を透過し、すべての分割HASH値のカウンタ値が許容透過数Tを超えている場合は受信した通信データ1700を廃棄する。つまり、許容透過数Tまでは、false positive通信の透過を許容するが、Tを超えるfalse positive通信の透過は認めない。
【選択図】図2

Description

本発明は、通信パケットに含まれる通信識別値に基づいて通信パケットの透過又は廃棄を行うフィルタリング技術に関する。
ネットワークのIPアドレスに従って通信の透過/廃棄を決定するアドレスフィルタ装置は、防御すべきネットワークを外部の脅威から守る有効な手法の一つである。
このようなアドレスフィルタ装置の例として、特許文献1に記載のものがある。
また、例えばファシリティネットワークでは、管理コストの点から、センタシステムから管理対象ビルである拠点の各々を遠隔監視するサービスが普及している。
しかしながら、遠隔監視サービスの普及に伴い、外部網の第三者がセンタと拠点間の通信を装うなりすましや、拠点内ネットワークの不正な端末接続、センタシステムへのDoS(Denial of Service)攻撃あるいはDDoS(Distributed DoS)攻撃などが問題となっている。
アドレスフィルタ装置は、通信パケットの送信元とあて先を精査し、許可しない通信パケットを廃棄するものである。
上記の問題において、アドレスフィルタ装置は許可しない端末からの通信パケットを廃棄する有効な手段となる。
しかし、近年は管理拠点数が増加しており、また各拠点内に存在する監視対象ノードもまた肥大化の一途である。
アドレスフィルタ装置が識別すべき通信は大規模化、複雑化しており、例えば、IPv4のIPアドレス空間は32bitだが、IPv6においては128bitにも達する。その上、通信は送信元とあて先の対で表現される。
ファシリティネットワークでは監視網を大規模化する要求からIPv6も利用されるが、これはIPv4網の機器を換装することではなく、レガシー機器のハードウェアを用いながらプロトコルスタックをデュアルスタック化することで対応がなされる場合が多い。
この理由はコストメリットと、ハードウェアの安定性からである。
しかし、その結果として、レガシー機器を用いながらネットワークの大規模化に対応する必要がある。
上記の場合、通信パケットの透過/廃棄を決定するためにアドレスフィルタ装置内にアドレスリストを保持して検索することは、リストエントリ容量の面でも、また検索計算量の面でも現実的ではない。
計算容量、計算量ともに非力な安価な組み込み機器でも大規模なアドレスフィルタ装置を構成可能とし、アドレスリストの検索を行うことなく通信パケットの透過/廃棄を決定可能とする1つの手法が存在する。
この手法はCounting Bloom Filterと呼ばれ、非特許文献1及び非特許文献2に詳細が説明されている。
また、後述するように、Counting Bloom FilterにはHASH関数が用いられるが、このHASH関数として、例えば、非特許文献3に記載のRabin Fingerprinting等が用いられる。
特開2007−096552号公報 Li Fan,Pei Cao,Jussara Almeida,Andrei Z. Broder, "Summary cache: a scalable wide−area Web cache sharing protocol," Proceedings of the ACM SIGCOMM ’98 conference on Applications,technologies,architectures,and protocols for computer communication, p.254−265, August 31−September 04,1998. Sarang Dharmapurikar,Praveen Krishnamurthy,David E. Taylor, "Longest prefix matching using bloom filters," Proceedings of the 2003 conference on Applications,technologies,architectures,and protocols for computer communications, August 25−29,2003. M. Rabin, "Fingerprinting by random polynomials," Center for Research in Computing Technology − Harvard University,Tech.Rep.15−81,1981.
Counting Bloom Filterの課題を説明するにあたり、まず、Counting Bloom Filterの機能の説明を行う。
Counting Bloom Filterは、アドレスフィルタ装置内の主要なコンポーネントとして図15、図16、及び図17に示す構成で実装される。
アドレスフィルタ装置は、保護対象ネットワークと外部網の間に配置され、外部網から送信された通信パケットを受信し、受信した通信パケットに含まれているアドレスを解析して、通信パケットを保護対象ネットワークへ透過させるか、廃棄するかを決定する。
また、アドレスフィルタ装置は、管理装置と通信可能であり、管理装置から各種設定に関する指示を受け、管理装置の指示に従って各種設定を行う。
図15はフィルタエントリの設定に関する図である。
アドレスフィルタ装置が管理装置から通信パケットの透過用設定1210を受け取ると、アドレスフィルタ装置は透過用設定1210から透過する通信パケットを指示するアドレス設定値1211を抜き出し、Counting Bloom Filter1100に入力する。
Counting Bloom Filter1100は、アドレス設定値1211を受け取ると、HASH関数1101を用いてHASH値を計算する。
図15のHASH関数1101は、64bitのHASH値を出力するHASH関数である。
HASH値の計算を終了すると、分割器1102を用いていくつかのbit長に分割する。
図15では、64bitを4つの16bitに分割している。この分割した4つの16bitのHASH値をカウンタ配列1103のインデックスとして用い、該当する位置のカウンタ値を1加算する。なお、カウンタ値の初期値は0とする。
また、図15の例ではインデックスのbit長が16bitであるため、カウンタ配列が有するカウンタ数は2の16乗個、すなわち65536個である。
1つのカウンタのbit長は、アドレス設定値1211の最大設定数がカウントできる程度が必要であり、詳しくは図19の説明にて後述する。
次に、図16を用いて、Counting Bloom Filter1100により通信パケットの透過と廃棄を決定する動作を説明する。
ここで、Counting Bloom Filter1100には上記により既に透過すべき通信が設定済みである。
アドレスフィルタ装置に通信データ1700が到達すると、アドレスフィルタ装置は通信データ1700から送信元アドレス(Src IP Addr)とあて先アドレス(Dst IP Addr)1701を抜き出す。この両者の対が通信を特定するものである。
当該アドレス対はCounting Bloom Filter1100に入力され、HASH関数1101によりHASH値が計算された後、分割器1102によりHASH値が分割されカウンタ配列1103のインデックスが得られる。
もしも、当該通信が先に透過と設定された通信であれば、インデックスの示すカウンタの全てには0より大きい値が設定されているはずである。
逆に透過と設定されていないものであれば、インデックスの示すカウンタのいずれか1つは0であることが期待できる。
ゆえにインデックスの示すカウンタを参照することで通信パケットの透過と廃棄を決定することが可能である。
Counting Bloom Filter1100は、アドレスリストを保持する方法と同様に、設定したエントリを削除することも可能である。この動作を図17に示す。
透過設定と同様に、管理装置から透過設定の削除用設定1220をアドレスフィルタ装置に送信する。
アドレスフィルタ装置は削除用設定1220から透過設定を解除すべきアドレス対1221を抜き出し、Counting Bloom Filter1100に入力する。
Counting Bloom Filter1100はHASH計算後にカウンタ配列のインデックスを作成し、各々のインデックスが指すカウンタの全てを1減算する。ただしカウンタ値が0の場合は0を保持する。これにより透過設定は解除される。
上記に述べたCounting Bloom Filter1100は、これまでに述べた構成1100(図18(a))の他に、図18(b)に示す構成1110により実装されることもまた可能である。
両者の違いはカウンタ配列のインデックスを如何に決定するかである。
構成1100(図18(a))は64bitのHASH値を計算した後に4つの16bitに分割するが、構成1110(図18(b))は各々異なる4つのHASH関数1111、1112、1113、1114を用いる。
これら4つのHASH関数は出力長が16bitであり、ゆえに構成1110では分割器1102を用いない。
以上の例に示したCounting Bloom Filter1100は、入力値ではなく入力値のHASH値を採用し、さらにHASH値を分割することで、アドレスフィルタ装置に必要な計算容量を劇的に省力化した方式である。
例えば、IPv6通信を10000通り設定する場合、アドレスリストを用いた場合は256bit×10000エントリ=2560000bitの計算容量は必要であるが、Counting Bloom Filter1100では1つのカウンタを16bitとしても、16bit×65536エントリ=1048576bitで実現可能である。
また、通信データ1700を受けてから透過あるいは廃棄を決定するまでの計算量は、アドレスリストを用いた場合エントリとのマッチ処理が支配的であるが、Counting Bloom Filter1100はHASH関数1101の処理が支配的である。
検索を軽量化するため、Counting Bloom Filter1100のHASH関数1101には、前述したように、非特許文献3に記載されているRabin Fingerprinting等がしばしば用いられる。
Counting Bloom Filter1100は入力値のHASH値を採用することと、HASH値を分割することの2段階で計算容量を削減するが、その弊害としてエントリの重複が発生する。
先ずHASH関数自身の特性として、異なる入力であっても同一のHASH値を取り得る場合がある。
例えばIPv6通信を対象とした上記の場合、アドレスではなくそのHASH値を採用することは、128bit×2=256bitの空間を64bit空間に射影することに対応する。
次に、HASH関数を4つの16bitに分割することは、64bit空間を16bit空間の4点で扱うことに対応する。
ゆえに、エントリの重複は2段階で発生する。前者の処理による重複はHASH関数自身の特性に起因するが、後者の処理による重複はCounting Bloom Filter1100の処理に起因する。
Counting Bloom Filter1100の処理に起因する重複率は、Counting Bloom Filter1100の構成に依存する。
問題を簡略化して、カウンタは0あるいは1のみを取ると仮定する。
上述の如く、透過あるいは廃棄の決定は、参照する全てのカウンタが0以上の値であるかどうかに依存するため、この仮定は妥当である。
重複率pと、HASH値の分割数k、透過設定するエントリ数n、カウンタ配列のカウンタ数mの間には図19の式(1)の関係がある。
この関係より、重複率を最小化するためのHASH分割数kは図19の式(2)に適合する値であれば良い。
図15、図16、図17の例であれば、k=4、m=65536であるため、透過設定エントリは最大11468エントリまでであれば重複率は最小であり、この際の重複率pは0.064、すなわち6.4%であるとわかる。
アドレスフィルタ装置において、エントリの重複とは廃棄対象の通信パケットを透過してしまうことに対応する。
センタシステムへ攻撃する意図を持つ第三者がアドレスフィルタ装置の透過エントリと重複するような通信を特定した場合、Counting Bloom Filterを用いたアドレスフィルタ装置はその通信パケットが透過処理対象であると誤認識してしまい、攻撃者の通信パケットを透過してしまう。
このような、本来廃棄されるはずが透過されてしまう通信をfalse positive(偽陽性)通信と呼ぶ。
他方、Counting Bloom Filter自体は処理が単純で、多くの計算容量を必要としないため、ハードウェアによる実装も容易である。
HASH値を分割する処理と、インデックス先のカウンタを評価する処理は並列に実施可能であるが、1つのカウンタ配列を共有することから、ハードウェア実装ではカウンタの更新時にリソースの競合を調停する機構が必要となる。その結果、並列性が阻害され、ハードウェアによる高速化が阻害される。その上、論理量の肥大化をも招き、処理が単純である特性もまた阻害される。
以上の如く、Counting Bloom Filterを用いれば大規模なアドレスフィルタ装置が作成可能である。その結果、安価な組み込み機器であっても、ネットワークの大規模化へ対応することが可能となる。
しかしながら、Counting Bloom Filterは優れた特性を持つ反面、上述の通り本質的に2つの課題を抱えている。
1つ目の課題は、フィルタエントリ衝突により発生するfalse positive通信が、当該エントリの透過設定を解除しない限り恒久的に透過されてしまうことである。
2つ目の課題は、分割されたHASH値がただ1つのカウンタ配列を共有するので並列性に欠けることである。
この発明は、上記のような課題を解決することを主な目的の一つとしており、透過設定を変更しなくても、false positive通信が恒久的に透過され続ける事態を回避することを主な目的とする。
また、複数の変換値を並列に処理できる構成を得ることを主な目的とする。
本発明に係るフィルタ装置は、
通信識別値が含まれるパケットの透過又は廃棄を行うフィルタ装置であって、
単位時間内に許容されるパケットの透過数を許容透過数として記憶する許容透過数記憶部と、
通信識別値が含まれるパケットを受信するパケット受信部と、
前記パケット受信部により受信された受信パケットに含まれる通信識別値を変換する演算を行って、受信パケットに含まれる通信識別値の変換値を受信変換値として算出する変換値算出部と、
前記変換値算出部により算出された受信変換値の単位時間内の出現回数が許容透過数以下であるか否かを判断して、受信パケットの透過又は廃棄を行うフィルタ部とを有することを特徴とする。
本発明によれば、受信パケットに含まれる通信識別値の変換値である受信変換値の出現回数が許容透過数以下である否かを判断して受信パケットの透過又は廃棄を行うので、同じ通信識別値が含まれるパケットを許容透過数を超えて透過することがなく、false positive通信を恒久的に透過するという事態を回避することができる。
実施の形態1.
本実施の形態では、false positive通信が恒久的に透過され続けることを回避するため、透過対象かどうかを判断するのみならず、一定時間内に透過を許可する通信パケット数を制限する方式を説明する。
図1は、本実施意の形態に係るシステム構成例を示す。
図1において、アドレスフィルタ装置210は、保護対象ネットワーク130と外部網150の間に配置され、拠点160から送信され外部網150及びルータ140を経由して到達した通信パケットを受信し、受信した通信パケットに含まれている通信アドレス(通信識別値)を解析して、通信パケットを保護対象ネットワーク130へ透過させるか、廃棄するかを決定する。
また、アドレスフィルタ装置210は、管理装置120と通信可能であり、管理装置120から各種設定に関する指示を受け、管理装置120の指示に従って各種設定を行う。
なお、本実施の形態に係るアドレスフィルタ装置210は、フィルタ装置の例である。
次に、図2〜図4を参照して、本実施の形態に係るアドレスフィルタ装置210の動作の概要を説明する。
図2は、本実施の形態に係るアドレスフィルタ装置210においてフィルタエントリを設定する動作を示している。
図2に示すように、本実施の形態に係るアドレスフィルタ装置210は大規模通信制御部2100を有する。
大規模通信制御部2100において、カウンタ配列1103には複数のカウンタが配置され、各カウンタはHASH関数1100による演算値のいずれかに対応している。
なお、HASH関数1101及び分割器1102は、図15〜図17に示したものと同様である。
大規模通信制御部2100は、まず、カウンタ値の上限値により初期化を行う。カウンタが16bitである場合、初期化は0xFFFFで行う。
その後、管理装置120からエントリ設定データ1230を受け取り大規模通信制御部2100への入力とする。
ここでエントリ設定データ1230の1エントリの内訳はアドレス対{SIPn、DIPn}(n=0、1、2・・・)とカウンタへの設定値VALn(n=0、1、2・・・)である。
SIPn、DIPnはそれぞれ、通信パケットの送信元とあて先のアドレスであり、通信を特定する情報(通信識別値)である。
VALnはカウンタへ設定する値であり、透過設定を行うなら値0、廃棄設定を行うならカウンタの最大値を設定する。
大規模通信制御部2100はエントリ設定データ1230が入力されると、{SIPn、DIPn}の各々についてCounting Bloom Filterと同様、HASH関数1101と分割器1102により、アドレスのHASH値を算出するとともにHASH値を分割してカウンタ配列へのインデックスを得る。なお、分割されたHASH値を分割HASH値と呼ぶ。
そして、インデックスが示すカウンタの各々に、値VALnを設定する。
この値VALnが、HASH値の出現回数のカウントにおける初期値(カウント初期値)となる。
また、通信を特定する情報(通信識別値)としては、上述の{SIPn、DIPn}に対応するアドレスのみならず、UDPプロトコルかTCPプロトコルかそれ以外か、またUDPあるいはTCPであればポート番号は何番であるか、を含めることもまた可能である。
また、本実施の形態及び以下の実施の形態では、通信を特定する情報(通信識別値)として、送信元アドレス及びあて先アドレスを用いる例を説明するが、送信元アドレスのみを用いるようにしてもよい。
図3に、通信パケットの透過あるいは廃棄を決定する動作を示す。
従来法である図16と同様、アドレスフィルタ装置210に通信データ1700(パケット)が到達すると、アドレスフィルタ装置210は通信データ1700から送信元アドレスとあて先アドレス1701を抜き出す。
抜き出した値は大規模通信制御部2100へ入力され、HASH関数1101によりHASH値が計算された後、分割器1102によりHASH値が分割されカウンタ配列1103のインデックスが得られる。
他方、アドレスフィルタ装置210は、ある通信において1秒あたりに誤透過を許可するパケット数を示す値V(発)と、透過数カウントをクリアするインターバル時間間隔U(秒)を持つものとする。
得られたインデックスに従ってカウンタ配列内のカウンタを参照し、全てのカウンタの値がT=U×Vを超えていればであれば、通信パケットを廃棄する。このT=U×Vは、インターバル時間間隔(単位時間)内に許容されるパケットの透過数であり、許容透過数に相当する。
また、得られたインデックスに従ってカウンタ配列内のカウンタを参照した結果、1つでもカウンタの値がT=U×Vを超えない場合、通信パケットを透過する。
透過と決定した場合、現在参照したカウンタの全てに1をカウントする。ただしカウンタ値が0xFFFFの場合はその値を保持する。
上記説明にあるVの目安は20(発)程度、Uの目安は10(秒)程度である。
カウンタ配列のカウンタ値は、インターバル時間間隔U(秒)に従いクリア処理が行われる。この処理では、値0xFFFFではない全てのカウンタは値0にクリアされる。逆に値0xFFFFであるカウンタはその値が保持される。
カウンタ値がクリアされた後は、次のインターバル時間間隔U(秒)の間、クリアされた後のカウンタ値を用いて同様の手順により通信パケットの透過又は廃棄が判断される。
このように、本実施の形態に係るアドレスフィルタ装置210では、インターバル時間内に許容される通信データの誤透過数を許容透過数Tとし、受信した通信データ1700に含まれる通信アドレスのHASH値を算出するとともにHASH関数を分割して分割HASH値とし、各分割HASH値に対応するカウンタの値を1加算し、一つでも分割HASH値のカウンタ値が許容透過数Tを超えてない場合は受信した通信データ1700を透過し、すべての分割HASH値のカウンタ値が許容透過数Tを超えている場合は受信した通信データ1700を廃棄する。
つまり、許容透過数T=U×Vまでは、false positive通信の透過を許容するが、T=U×Vを超えるfalse positive通信の透過は認めない。
また、本実施の形態では、透過エントリを解除したり、新たな透過エントリを追加することができる。
図4は、本実施の形態に係るアドレスフィルタ装置において、設定した透過エントリを解除したり、新たな透過エントリを追加したりする際の動作を示した図である。
図2と同様、設定した透過エントリを廃棄に変更するためには管理装置120からエントリ設定データ1230をアドレスフィルタ装置210に入力する。
1エントリを構成する内訳はアドレス対{SIPn、DIPn}(n=0、1、2・・・)とカウンタへの設定値VALn(n=0、1、2・・・)である。透過設定の場合、VALnは値0であったが、VALnにカウンタの最大値を格納すれば廃棄設定に変更することが可能である。
なお、図3に示す動作において、全ての分割HASH値のカウンタの値が許容透過数T=U×Vを超えたため、受信パケットが廃棄された場合は、アドレスフィルタ装置210は、廃棄したパケットの送信元アドレス及びあて先アドレスを管理装置120に通知し、図4に示す手順に従って、廃棄したパケットのアドレスを廃棄設定に変更するようにしてもよい。
次に、本実施の形態に係るアドレスフィルタ装置210の機能ブロックの例を図9を参照して説明する。
図9において、パケット受信部2101は、通信アドレス(通信識別値)が含まれるパケットを受信し、受信したパケットから通信アドレスを抽出し、後述のハッシュ演算部2106に通信アドレスを渡す。
パケット送信部2102は、透過対象のパケットを保護対象ネットワーク130に送信する。
制御部2103はアドレスフィルタ装置210の全体の制御を行う。
エントリ設定データ入力部2104は、管理装置120からのエントリ設定データ1230を入力する。
エントリ設定部2105は、パケット受信部2101によるパケットの受信に先立ち、パケット透過の対象となるアドレスの分割HASH値(変換値)を透過分割HASH値(透過変換値)として1つ以上指定し、パケット廃棄の対象となるアドレスのHASH値を廃棄分割HASH値(廃棄変換値)として1つ以上指定する。エントリ設定部2105は、エントリ設定データ1230において、許容透過数よりも小さい値、具体的には、カウンタでとり得る最小値が値VALnとして示されているアドレスから算出される分割HASH値を透過分割HASH値とし、エントリ設定データ1230において、許容透過数よりも大きい値、具体的には、カウンタでとり得る最大の値が値VALnとして示されているアドレスから算出される分割HASH値を廃棄分割HASH値とする。
また、エントリ設定部2105は、エントリ設定データ1230の値VALnに従って、透過分割HASH値に対応するカウンタにカウント初期値として、許容透過数よりも小さい値、具体的には、カウンタでとり得る最小値を設定する。また、エントリ設定データ1230の値VALnに従って、廃棄分割HASH値に対応するカウンタにカウント初期値として、許容透過数よりも大きい値、具体的には、カウンタでとり得る最大値を設定する。
エントリ設定部は、変換値指定部及びカウント初期値設定部の例である。
ハッシュ演算部2106は、エントリ設定データ1230に示されているアドレスのHASH演算(一方向演算)及びパケット受信部2101により受信された通信データ1700(受信パケット)に含まれるアドレスのHASH演算を行う。また、ハッシュ演算部2106は、算出したHASH値を所定数に分割する。
ハッシュ演算部2106は、図2〜図4に示すHASH関数1103及び分割器1102に相当する。
また、ハッシュ演算部2106は、変換値算出部の例である。
カウンタ部2107は、複数のカウンタから構成されるカウンタ配列1103を管理する。
出現回数カウント部2108は、ハッシュ演算部2106が通信データ1700(受信パケット)に含まれているアドレスから分割HASH値(受信変換値)を算出する度に、算出された分割HASH値に対応するカウンタの値を変化させて当該分割HASH値の単位時間内の出現回数をカウントする。
また、出現回数カウント部2108は、ハッシュ演算部2106により算出された分割HASH値(受信変換値)に対応するカウンタの値が最大値であれば当該カウンタの値を変化させず、ハッシュ演算部2106により算出された分割HASH値(受信変換値)に対応するカウンタの値が最大値でなければ当該カウンタの値を変化させて当該分割HASH値の単位時間内の出現回数をカウントする。
フィルタ部2109は、ハッシュ演算部2106により分割HASH値(受信変換値)が算出される度に、算出された分割HASH値に対応するカウンタの値が許容透過数以下であるか否かを判断し、全ての分割HASH値のカウンタの値が許容透過数を超えている場合に通信データ1700(受信パケット)を廃棄し、少なくとも1つの分割HASH値のカウンタの値が許容透過数以下である場合に通信データ1700(受信パケット)を透過する。
許容透過数記憶部2110は、インターバル時間間隔(単位時間)内に許容されるパケットの透過数T=U×Vを許容透過数として記憶する。許容透過数記憶部2110は例えば磁気ディスク装置により実現される。
タイマ2111は、インターバル時間間隔を計測する。
図9において、エントリ設定データ入力部2104、エントリ設定部2105、ハッシュ演算部2106、カウンタ部2107、出現回数カウント部2108、フィルタ部2109、許容透過数記憶部2110、タイマ2111が図2〜図4に示した大規模通信制御部2100を実現する。
次に、図10及び図11を参照して、本実施の形態に係るアドレスフィルタ装置210の動作を説明する。
図10は、フィルタエントリを設定する動作を示すフローチャートであり、図2の動作に対応している。
図11は、通信パケットの透過又は廃棄を決定する動作を示すフローチャートであり、図3の動作に対応している。
図10において、カウンタ部2107が、カウンタ配列1103の各カウンタを最大値で初期化する(S1001)。
次に、エントリ設定データ入力部2104がエントリ設定データ1230を入力する(S1002)。
次に、ハッシュ演算部2106がエントリ設定データ1230に示されるアドレスのHASH値を算出するとともに、算出したHASH値を分割する(S1003)。
次に、エントリ設定部2105が、分割HASH値の各々に対応するカウンタにカウンタ部2107を通じてカウント初期値を設定する(S1004)。つまり、エントリ設定データ1230の値VALnに最小値が示されているアドレスの分割HASH値に対応するカウンタにはカウント初期値として最小値を設定し、当該カウンタを透過対象HASH値のカウンタとする。また、エントリ設定データ1230の値VALnに最大値が示されているアドレスの分割HASH値に対応するカウンタはカウント初期値として最大値のままとし、当該カウンタを廃棄対象HASH値のカウンタとする。
そして、エントリ設定データ1230に含まれている全てのアドレスに対して、S1003及びS1004を繰り返す。
図11において、まず、フィルタ部2109が、許容透過数記憶部2110に格納されている許容透過数(T=U×V)を読み出し、フィルタ部2109内部に保持しておく(S1101)(許容透過数読み出しステップ)。例えば、許容透過数をレジスタに格納する。
次に、フィルタ部2109は、インターバル時間間隔を計時するために、タイマ2111をスタートさせる(S1102)。
そして、パケット受信部2101がパケットを受信している場合(S1103でYES)(パケット受信ステップ)は、ハッシュ演算部2106が、受信パケットに含まれているアドレスのHASH値を算出するとともに、算出したHASH値を分割する(S1104)(変換値算出ステップ)。
次に、出現回数カウント部2108は、ハッシュ演算部2106により分割された分割HASH値の各々について、対応するカウンタを検出するとともに、そのカウンタの値が最大値であるか否かを判断する(S1105)。
カウンタ値が最大値でなければ(S1105でNO)、出現回数カウント部2108が、カウンタ値をインクリメントし(S1106)、全ての分割HASH値についてS1105及びS1106の処理を行ったかを判断し(S1107)、未処理の分割HASH値があれば、未処理の分割HASH値に対してS1105以降の処理を行う。
また、S1105でYESの場合、すなわち、分割HASH値に対応するカウンタの値が最大値である場合には、出現回数カウント部2108は、カウンタ値を変更せずに、S1107の判断を行う。
S1107でYESの場合、すなわち、分割HASH値のすべてに対してS1105及びS1106の処理が行われている場合は、フィルタ部2109が、全てのカウンタ値が許容透過数を超えているか否かを判断し(S1108)(フィルタ処理ステップ)、全てのカウンタ値が許容透過数を超えている場合(S1108でYES)は、受信パケットを廃棄する(S1109)(フィルタ処理ステップ)。
一方、一つの分割HASH値でも、カウンタ値が許容透過数を超えていない場合(S1108でNO)は、フィルタ部2109はパケットを透過させる(S1110)(フィルタ処理ステップ)。具体的には、フィルタ部2109は、パケット送信部2102に受信パケットを保護対象ネットワーク130に送信させる。
次に、フィルタ部2109は、インターバル時間が到来したか否かを判断し(S1111)、インターバル時間が到来している場合(S1111でNO)は、カウンタ部2107にカウンタ値が最大値でないカウンタの値をクリアにするよう指示し、カウンタ部2107がカウンタ値が最大値でないカウンタの値をクリアにする(S1112)。
そして、処理をS1102に戻す。
一方、インターバル時間が到来していない場合(S1111でNO)は、処理をS1103に戻す。
このように、本実施の形態によれば、同一の送信元アドレス及びあて先アドレスが付されている通信パケットがインターバル時間間隔内に許容透過数を超えて受信される場合は、当該通信パケットを廃棄するため、false positive通信が存在する場合でもfalse positive通信が恒久的に継続することはない。
DoS攻撃やDDoS攻撃等は、短時間に大量の通信パケットを送りつける攻撃であるため、DoS攻撃やDDoS攻撃により大量の通信パケットを短時間に受信した場合には、アドレスフィルタ装置210は、このようなDoS攻撃やDDoS攻撃による大量のパケットを破棄して、保護対象ネットワーク130を保護する。
また、本実施の形態では、分割したHASH値を用いて透過及び廃棄の決定を行っているので、フィルタリング処理に必要な計算容量が少なくてすみ、非力な組み込み機器でも大規模なアドレスフィルタ装置が構成可能である。
以上、本実施の形態では、アドレスに従って通信を識別し、透過を許可した通信以外を廃棄するアドレスフィルタ装置において、
管理装置から透過設定エントリを受け取る手段と、通信パケットから送信元アドレスとあて先アドレスを抜き出す手段とを含み、
前記アドレスフィルタ装置は通信パケットの透過と廃棄を決定する大規模通信制御部を有し、
前記大規模通信制御部はHASH関数と、HASH関数の出力値をいくつかのbit長に分割する分割器と、分割した各々と対応するカウンタ配列とを含み、
カウンタ配列は最大値で初期化され、管理装置からの設定に従い値を設定し、またあらかじめ定めたインターバル時間において、最大値以外を取っているカウンタの値を値0に初期化する機構を有する大規模通信制御方式、及びアドレスフィルタ装置を説明した。
また、本実施の形態では、前記大規模通信制御部は、IP通信の送信元アドレスとあて先アドレスの対を受け取ると、HASH値を計算し、あらかじめ定めた分割長によって該HASH値を分割器により分割し、他方、分割した先の各々にはカウンタ配列が存在し、分割したHASH値の各々をインデックスとして、対応するカウンタ配列のカウンタへアクセスすることで、通信パケットの透過と廃棄を決定する大規模通信制御方式、及びアドレスフィルタ装置を説明した。
また、本実施の形態では、透過設定エントリにおいて、アドレス対に対応するカウンタ設定値が、カウンタの最大値以外であれば該通信を透過し、カウンタの最大値であれば、透過と設定した通信を破棄設定へ変更することが可能である大規模通信制御方式、及びアドレスフィルタ装置を説明した。
また、本実施の形態では、起動後にカウンタ配列の全てのカウンタの値を最大値により初期化し、その後、予め定めたタイムインターバルに従いカウンタ配列の全てのカウンタを検査し、カウンタが最大値ではないものを全て値0にクリアする機構を有する大規模通信制御方式、及びアドレスフィルタ装置を説明した。
また、本実施の形態では、廃棄すべき通信を透過してしまうfalse positive通信の恒久的な透過を回避する大規模通信制御方式、及びアドレスフィルタ装置を説明した。
実施の形態2.
以上の実施の形態に示した方式により、false positive通信が発生しても恒久的に透過し続けることを回避することが可能である。
本実施の形態では、実施の形態1に係るアドレスフィルタ装置210の大規模通信制御部2100が実現する機能に加えて、以下の2つの機能を実現する。
いくつかの透過設定を廃棄設定に変えると、設定変更の組み合わせによっては意図しない設定まで廃棄設定に変わってしまう場合があるが、本実施の形態に係るアドレスフィルタ装置は、このような意図しない廃棄設定を回避する。
例えば、透過設定になっている1つのアドレス対(アドレス対Aとする)から得られる4つの分割HASH値のうちの1つが、透過設定になっている他のアドレス対(アドレス対Bとする)から得られる4つの分割HASH値のうちの1つと重複している場合に、アドレス対Aを廃棄設定に変更すると、アドレス対Aから得られる4つの分割HASH値の全てが廃棄分割HASH値となる。この結果、透過設定であるアドレス対Bの分割HASH値の1つが、意図せずに廃棄分割HASH値になってしまう。そして、このような分割HASH値の重複がアドレス対Bの4つの分割HASH値のすべてに発生している場合は、廃棄設定の状況によっては、アドレス対Bに対して廃棄設定を行っていないにもかかわらず、アドレス対Bに対して廃棄設定を行ったのと同様な結果になる場合がある。本実施の形態に係るアドレスフィルタ装置は、このような意図しない廃棄設定を回避するものである。
また、Counting Bloom Filterでは、分割HASH値ごとにインデックス先のカウンタを評価する処理が必要であったが、本実施の形態に係るアドレスフィルタ装置は、複数の分割HASH値を並列に処理することを可能とする。
本実施の形態に係るアドレスフィルタ装置を、図5、図6、及び図7を参照して説明する。
なお、本実施の形態に係るシステム構成例は図1に示した通りであり、また、本実施の形態に係るアドレスフィルタ装置の機能ブロック図も複数のカウンタ部2107が存在している点を除けば図9に示した通りである。
図5は、本実施の形態に係るアドレスフィルタ装置310においてフィルタエントリを設定する動作を示している。
本実施の形態に係るアドレスフィルタ装置310は、新たな大規模通信制御部3100を備えている。
新たな大規模通信制御部3100と、先の大規模通信制御部2100の違いはカウンタ配列の保持方法であり、新たな大規模通信制御部3100では分割器1102にて分割されたHASH値の各々が独立にカウンタ配列1103を有する。
つまり、例えば、64bitのHASH値を16bitずつ4つに分割する場合は、エントリ設定部2105は、1つ目の分割HASH値(16bit)はカウンタ配列1の対応するカウンタを対象とし、カウンタ配列1の対応するカウンタにエントリ設定データ1230の値VALnがカウント初期値として設定され、2つ目の分割HASH値(16bit)はカウンタ配列2の対応するカウンタを対象とし、カウンタ配列2の対応するカウンタにエントリ設定データ1230の値VALnがカウント初期値として設定され、3つ目の分割HASH値(16bit)はカウンタ配列3の対応するカウンタを対象とし、カウンタ配列3の対応するカウンタにエントリ設定データ1230の値VALnがカウント初期値として設定され、4つ目の分割HASH値(16bit)はカウンタ配列4の対応するカウンタを対象とし、カウンタ配列4の対応するカウンタにエントリ設定データ1230の値VALnがカウント初期値として設定される。
このように、本実施の形態では、1つのHASH値から分割される分割HASH値をそれぞれ順序付け、また、カウンタ配列は分割HASH値の順序に対応して順序付けられており、それぞれの分割HASH値のカウント初期値を、それぞれの分割HASH値の順序に対応するカウンタ配列の対応するカウンタに設定する。
設定におけるその他の動作は図2と同様である。
図6は通信パケットの透過あるいは廃棄を決定する動作を示している。
この際の新たな大規模通信制御部3100の動作も、図3における先の大規模通信制御部2100と同様である。
つまり、通信データ1700(受信パケット)の通信アドレスを64bitのHASH値に変換する場合、ハッシュ演算部2106が64bitのHASH値を16bitずつ4つに分割し、出現回数カウント部2108が、1つ目の分割HASH値(16bit)については、カウンタ配列1の対応するカウンタにて出現回数をカウントし、2つ目の分割HASH値(16bit)については、カウンタ配列2の対応するカウンタにて出現回数をカウントし、3つ目の分割HASH値(16bit)については、カウンタ配列3の対応するカウンタにて出現回数をカウントし、4つ目の分割HASH値(16bit)については、カウンタ配列4の対応するカウンタにて出現回数をカウントする。実施の形態1と同様に、出現回数カウント部2108は、分割HASH値に対応するカウンタの値が最大値であれば、カウンタの値をインクリメントせず、最大値でなければカウンタの値をインクリメントする。
そして、フィルタ部2109は、それぞれの分割HASH値の順序にしたがって、分割HASH値ごとに、対応するカウンタ配列の対応するカウンタの値が許容透過数(T=U×V)以下であるか否かを判断し、全てのカウンタの値が許容透過数を超えている場合は、受信した通信データ1700を破棄し、少なくとも1つのカウンタ値が許容透過数以下である場合に通信データ1700を透過する。
また、インターバル時間到来後のカウンタのクリア処理は、全てのカウンタ配列に対して行われる。
図7は新たな大規模通信制御部3100において、設定した透過エントリを解除したり、新たな透過エントリを追加したりする際の動作を示している。
当該処理もまた、図4における先の大規模通信制御部2100と同様である。
つまり、例えば、64bitのHASH値を16bitずつ4つに分割する場合は、エントリ設定部2105は、1つ目の分割HASH値(16bit)はカウンタ配列1の対応するカウンタを対象とし、カウンタ配列1の対応するカウンタにエントリ設定データ1230の値VALnがカウント初期値として設定され、2つ目の分割HASH値(16bit)はカウンタ配列2の対応するカウンタを対象とし、カウンタ配列2の対応するカウンタにエントリ設定データ1230の値VALnがカウント初期値として設定され、3つ目の分割HASH値(16bit)はカウンタ配列3の対応するカウンタを対象とし、カウンタ配列3の対応するカウンタにエントリ設定データ1230の値VALnがカウント初期値として設定され、4つ目の分割HASH値(16bit)はカウンタ配列4の対応するカウンタを対象とし、カウンタ配列4の対応するカウンタにエントリ設定データ1230の値VALnがカウント初期値として設定される。
図5、図6、及び図7に示す新たな大規模通信制御部3100であれば、false positive通信が発生しても恒久的に透過し続けることを回避することが可能であり、また、分割HASH値ごとにカウンタ配列を設けているので、いくつかの透過設定を廃棄設定に変える任意の組み合わせにおいて、意図しない設定まで廃棄設定に変わることを防ぐことが可能である。
例えば、前述の例において、アドレス対Aの4つの分割HASH値のうち2番目の分割HASH値とアドレス対Bの4つの分割HASH値のうち3番目の分割HASH値が重複している場合は、アドレス対Aを廃棄設定にする際には、カウンタ配列2の該当するカウンタの値のみが廃棄設定になり、カウンタ配列3のカウンタの値は変更にならないので、アドレス対Bの設定には影響がない。
また、カウンタ配列を並列化することで、複数の分割HASH値を並列に処理することができ、ハードウェア実装により高速化を図ることができ、かつ調停論理が不要となる。
さらに、false positive率自体もカウンタ配列の個数に従い低減することが可能である。図5の構成であれば、4段であるため、分割されたHASH値の任意の16bit値がその他のいずれかの16bit値と同じ値であっても別のカウンタにより管理される。
ゆえにCounting Bloom Filterよりも重複率を1/4に低減できる。
カウンタ配列を並列に保持することにより、構成2100あるいは構成1110と比較して計算容量が増加する。
しかしながら、段数を増やすことで計算容量の削減が可能であり、実装時の制限に合わせて柔軟に実装することが可能である。例えば、1カウンタが16bitで、HASH値を4段に分割する場合、16bit×2^(64/4)×4=4194304bitの計算容量が必要だが、8段に分割する場合、16bit×2^(64/8)×8=32768bitの計算容量にまで削減される。
段数を増やす場合、計算容量は削減されるが、重複率は図19に従い反比例して増加する。先ず1つのカウンタ配列と仮定して図19に従い重複率の計算を行い、その値から段数で割った値が新たな大規模通信制御部の重複率となる。
また、新たなアドレスフィルタ装置310の大規模通信制御部の構造は、図5、図6、及び図7に示した構造3100(図8(a))のみならず、図8(b)に示した構造3110であっても良い。
構造3100と構造3110の違いは、図18に示した構造1100と構造1110の違いと同様である。
つまり、構造31000のHASH値を4つに分割する構成に代えて、構造3110のように、アドレスを4つに分割し、それぞれの分割アドレスに対してHASH演算を行って4つのHASH値を得るようにしても同様の結果が得られる。
構造3110でも構成が可能である性質は、従来法の性質を引き継いだことに起因する。
このように、本実施の形態によれば、フィルタエントリ衝突に起因して恒久的にfalse positive通信を透過させ続けるという課題を解決することができるとともに、並列性を持たせることで、H/W実装時の高速化を図ることを可能とするのみならず、false positive率そのものを低減することが可能となる。
以上、本実施の形態では、透過設定エントリは、アドレス対と、アドレス対に対応するカウンタへ設定する値とを含み、アドレスフィルタ装置は該透過設定エントリを管理装置から受け取ると、複数のカウンタ配列の各々からカウンタを特定し、該カウンタの各々に値を設定することで、通信の透過と廃棄の設定を可能とする大規模通信制御方式、及びアドレスフィルタ装置を説明した。
また、本実施の形態では、アドレスフィルタ装置は、通信パケットを受信すると、通信パケットからアドレス対を抜き出して大規模通信制御部への入力とし、大規模通信制御部は、入力されたアドレス対から、複数のカウンタ配列の各々からカウンタを特定し、全てのカウンタが予め定めたしきい値を超えていれば該通信を廃棄し、そうでなければ該通信を透過し、該通信を透過判定した場合、特定したカウンタの全てに1を加算することを説明した。
また、本実施の形態では、起動後に全てのカウンタ配列の全てのカウンタの値を最大値により初期化し、その後、予め定めたタイムインターバルに従い全てのカウンタ配列の全てのカウンタを検査し、カウンタが最大値ではないものを全て値0にクリアすることを説明した。
また、本実施の形態では、カウンタ配列を並列化することで、ハードウェア実装により高速化を図ることを可能とし、かつカウンタ配列への調停論理を不要とする大規模通信制御方式、及びアドレスフィルタ装置を説明した。
実施の形態3.
実施の形態1及び実施の形態2では、予めカウンタ配列を用意しておき、エントリ設定データの内容に従って、各カウンタのカウント初期値を透過設定(最小値)又は廃棄設定(最大値)とするものである。
これに代えて、本実施の形態では、カウンタ配列を予め用意することなく、エントリ設定データにおいて透過設定のアドレスのみを通知し、エントリ設定データの透過設定のアドレスから得られる分割HASH値に対応させてカウンタを生成し、透過設定のカウンタのみで構成されるカウンタ配列を生成する例を説明する。
なお、本実施の形態に係るシステム構成例は図1に示した通りであり、また、本実施の形態に係るアドレスフィルタ装置の機能ブロック図も、カウンタ部2107に予めカウンタ配列が用意されていない点を除けば図9に示した通りである。
なお、以下では、実施の形態1のように、単一のカウンタ配列を生成し利用する場合を説明するが、実施の形態2のように、複数のカウンタ配列を生成し利用することも可能である。
次に、図12及び図13を参照して、本実施の形態に係るアドレスフィルタ装置の動作を説明する。
図12は、フィルタエントリを設定する動作を示すフローチャートであり、実施の形態1で示した図10に対応している。
図13は、通信パケットの透過又は廃棄を決定する動作を示すフローチャートであり、実施の形態1で示した図11に対応している。
図12において、エントリ設定データ入力部2104がエントリ設定データ1230を入力する(S1201)。エントリ設定データ入力部2104が入力したエントリ設定データ1230には、透過設定のアドレスのみが含まれる。
次に、ハッシュ演算部2106がエントリ設定データ1230に示されるアドレスのHASH値を算出するとともに、算出したHASH値を分割する(S1202)。
次に、エントリ設定部2105が、分割されたHASH値の各々に対応するカウンタをカウンタ部2107内に生成し、生成したカウンタにカウント初期値を設定する(S1204)。設定するカウント初期値は、カウンタでとり得る最小値とする。エントリ設定部2105により対応するカウンタが生成され、カウンタにカウント初期値が設定された分割HASH値(変換値)が透過分割HASH値(透過変換値)となる。
そして、エントリ設定データ1230に含まれている全てのアドレスに対して、S1202及びS1203を繰り返すことにより、透過分割HASH値に対応するカウンタのみから構成されるカウンタ配列が生成される。
図13において、まず、フィルタ部2109が、許容透過数記憶部2110に格納されている許容透過数(T=U×V)を読み出し、フィルタ部2109内部に保持しておく(S1301)(許容透過数読み出しステップ)。
次に、フィルタ部2109は、インターバル時間間隔を計時するために、タイマ2111をスタートさせる(S1302)。
そして、パケット受信部2101がパケットを受信している場合(S1303でYES)(パケット受信ステップ)は、ハッシュ演算部2106が、受信パケットに含まれているアドレスのHASH値を算出するとともに、算出したHASH値を分割する(S1304)(変換値算出ステップ)。
次に、出現回数カウント部2108は、ハッシュ演算部2106により分割された分割HASH値の各々について、対応するカウンタがあるか否かを判断する(S1305)。
対応するカウンタがあれば(S1305でYES)、出現回数カウント部2108が、カウンタ値をインクリメントし(S1306)、全ての分割HASH値についてS1305及びS1306の処理を行ったかを判断し(S1307)、未処理の分割HASH値があれば、未処理の分割HASH値に対してS1305以降の処理を行う。
また、S1305でNOの場合、すなわち、分割HASH値に対応するカウンタが存在しない場合には、出現回数カウント部2108は、そのままS1307の判断を行う。
次に、S1307でYESの場合、すなわち、分割HASH値のすべてに対してS1305及びS1306の処理が行われている場合は、フィルタ部2109が、全ての分割HASH値に対応するカウンタが存在するかどうかを判断し(S1308)(フィルタ処理ステップ)、一つの分割HASH値でもカウンタが存在しない場合(S1308でNO)は、受信パケットを廃棄する(S1310)(フィルタ処理ステップ)。
一方、全ての分割HASH値にカウンタが存在する場合(S1308でNO)は、フィルタ部2109は、それらカウンタのカウンタ値のすべてが許容透過数を超えているかどうかを判断する(S1309)(フィルタ処理ステップ)。
すべてのカウンタ値が許容透過数を超えている場合(S1309でYES)は、フィルタ部2109は受信パケットを廃棄する(S1310)(フィルタ処理ステップ)。
一方、カウンタ値のいずれか1つでも許容透過以内であれば(S1309でNO)、フィルタ部2109は受信パケットを透過させる(S1311)(フィルタ処理ステップ)。具体的には、フィルタ部2109は、パケット送信部2102に受信パケットを保護対象ネットワーク130に送信させる。
次に、フィルタ部2109は、インターバル時間が到来したか否かを判断し(S1312)、インターバル時間が到来している場合(S1312でNO)は、カウンタ部2107にカウンタの値をクリアにするよう指示し、カウンタ部2107がカウンタの値をクリアにする(S1313)。
そして、処理をS1302に戻す。
一方、インターバル時間が到来していない場合(S1312でNO)は、処理をS1303に戻す。
なお、新たに透過設定を追加する場合は、新たな透過設定のアドレスが示されたエントリ設定データ1230を管理装置120からアドレスフィルタ装置に送信し、図12に示す手順に従って、エントリ設定部2105が新たな透過設定のアドレスから得られる分割HASH値に対応するカウンタを生成する。
また、透過設定を廃棄設定にする場合は、廃棄設定のアドレスが示されたエントリ設定データ1230を管理装置120からアドレスフィルタ装置に送信し、エントリ設定部2105が廃棄設定のアドレスから得られる分割HASH値に対応するカウンタを削除する。
以上、本実施の形態に示す方式によっても、false positive通信が恒久的に継続することを回避することができる。
最後に、実施の形態1〜3に示したアドレスフィルタ装置210、310のハードウェア構成例について説明する。
図14は、実施の形態1〜3に示すアドレスフィルタ装置210、310のハードウェア資源の一例を示す図である。
なお、図14の構成は、あくまでもアドレスフィルタ装置210、310のハードウェア構成の一例を示すものであり、アドレスフィルタ装置210、310のハードウェア構成は図14に記載の構成に限らず、他の構成であってもよい。
図14において、アドレスフィルタ装置210、310は、プログラムを実行するCPU911(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907と接続していてもよい。また、磁気ディスク装置920の代わりに、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
通信ボード915、キーボード902、マウス903、スキャナ装置907、FDD904などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
通信ボード915は、図1に示すように、ネットワークに接続されている。例えば、通信ボード915は、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)などに接続されていても構わない。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
また、RAM914には、CPU911に実行させるオペレーティングシステム921のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
また、ROM913には、BIOS(Basic Input Output System)プログラムが格納され、磁気ディスク装置920にはブートプログラムが格納されている。
アドレスフィルタ装置210、310の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
上記プログラム群923には、実施の形態1〜3の説明において「〜部」として説明している機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、実施の形態1〜3の説明において、「〜の判断」、「〜の計算」、「〜の算出」、「〜の比較」、「〜の評価」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1〜3で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
また、実施の形態1〜3の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、実施の形態1〜3の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態1〜3の「〜部」の手順や方法をコンピュータに実行させるものである。
このように、実施の形態1〜3に示すアドレスフィルタ装置210、310は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
実施の形態1に係るシステム構成例を示す図面である。 実施の形態1に係るアドレスフィルタ装置において、フィルタエントリを設定する動作を示す図面である。 実施の形態1に係るアドレスフィルタ装置において、通信パケットの透過あるいは廃棄を決定する動作を示す図面である。 実施の形態1に係るアドレスフィルタ装置において、設定した透過エントリを解除したり、新たな透過エントリを追加したりする際の動作を示す図面である。 実施の形態2に係るアドレスフィルタ装置において、フィルタエントリを設定する動作を示す図面である。 実施の形態2に係るアドレスフィルタ装置において、通信パケットの透過あるいは廃棄を決定する動作を示す図面である。 実施の形態2に係るアドレスフィルタ装置において、設定した透過エントリを解除したり、新たな透過エントリを追加したりする際の動作を示す図面である。 実施の形態2に係るアドレスフィルタ装置の異なる構成を示す図面である。 実施の形態1に係るアドレスフィルタ装置の機能ブロックを示す図面である。 実施の形態1に係るアドレスフィルタ装置の動作例を説明するフローチャート図である。 実施の形態1に係るアドレスフィルタ装置の動作例を説明するフローチャート図である。 実施の形態3に係るアドレスフィルタ装置の動作例を説明するフローチャート図である。 実施の形態3に係るアドレスフィルタ装置の動作例を説明するフローチャート図である。 実施の形態1及び2に係るアドレスフィルタ装置のハードウェア構成例を示す図面である。 Counting Bloom Filterの構成、及びその設定動作を示す図面である。 Counting Bloom Filterにおいて通信パケットの透過あるいは廃棄を決定する動作を示す図面である。 Counting Bloom Filterに設定したエントリを解除する動作を示す図面である。 Counting Bloom Filterの異なる構成を示す図面である。 Counting Bloom Filterを最適に利用するための方法を示す図面である。
符号の説明
120 管理装置、130 保護対象ネットワーク、140 ルータ、150 外部網、160 拠点、210 アドレスフィルタ装置、310 アドレスフィルタ装置、1100 Counting Bloom Filter、1110 Counting Bloom Filter、1101 HASH関数、1102 分割器、1103 カウンタ配列、1230 エントリ設定データ、1700 通信データ、1701 アドレス対、2100 大規模通信制御部、2101 パケット受信部、2102 パケット送信部、2103 制御部、2104 エントリ設定データ入力部、2105 エントリ設定部、2106 ハッシュ演算部、2107 カウンタ部、2108 出現回数カウント部、2109 フィルタ部、2110 許容透過数記憶部、2111 タイマ、3100 大規模通信制御部、3110 大規模通信制御部。

Claims (14)

  1. 通信識別値が含まれるパケットの透過又は廃棄を行うフィルタ装置であって、
    単位時間内に許容されるパケットの透過数を許容透過数として記憶する許容透過数記憶部と、
    通信識別値が含まれるパケットを受信するパケット受信部と、
    前記パケット受信部により受信された受信パケットに含まれる通信識別値を変換する演算を行って、受信パケットに含まれる通信識別値の変換値を受信変換値として算出する変換値算出部と、
    前記変換値算出部により算出された受信変換値の単位時間内の出現回数が許容透過数以下であるか否かを判断して、受信パケットの透過又は廃棄を行うフィルタ部とを有することを特徴とするフィルタ装置。
  2. 前記フィルタ装置は、更に、
    前記パケット受信部によるパケットの受信に先立ち、パケット透過の対象となる通信識別値の変換値を透過変換値として1つ以上指定し、パケット廃棄の対象となる通信識別値の変換値を廃棄変換値として1つ以上指定する変換値指定部と、
    複数のカウンタを備え、各々のカウンタが透過変換値のいずれか又は廃棄変換値のいずれかに対応しているカウンタ部と、
    前記パケット受信部によるパケットの受信に先立ち、透過変換値のカウント初期値として許容透過数よりも小さな値を設定し、廃棄変換値のカウント初期値として許容透過数よりも大きな値を設定するカウント初期値設定部と、
    前記変換値算出部により受信変換値が算出される度に、算出された受信変換値に対応するカウンタの値を変化させて当該受信変換値の単位時間内の出現回数をカウントする出現回数カウント部とを有し、
    前記変換値算出部は、
    前記パケット受信部によりパケットが受信される度に、受信パケットに含まれる通信識別値を変換する演算を行って、透過変換値のいずれか又は廃棄変換値のいずれかに一致する受信変換値を算出し、
    前記フィルタ部は、
    前記変換値算出部により受信変換値が算出される度に、算出された受信変換値に対応するカウンタの値が許容透過数以下であるか否かを判断して受信パケットの透過又は廃棄を行うことを特徴とする請求項1に記載のフィルタ装置。
  3. 前記変換値算出部は、
    一つの受信パケットに含まれる通信識別値から複数の受信変換値を算出し、
    前記フィルタ部は、
    前記変換値算出部により算出された各受信変換値に対応するカウンタの値が許容透過数以下であるか否かを判断し、全ての受信変換値のカウンタの値が許容透過数を超えている場合に受信パケットを廃棄し、少なくとも1つの受信変換値のカウンタの値が許容透過数以下である場合に受信パケットを透過することを特徴とする請求項2に記載のフィルタ装置。
  4. 前記カウント初期値設定部は、
    透過変換値のカウント初期値としてカウンタでとり得る最小値を設定し、廃棄変換値のカウント初期値としてカウンタでとり得る最大値を設定し、
    前記出現回数カウント部は、
    前記変換値算出部により算出された受信変換値に対応するカウンタの値が最大値であれば当該カウンタの値を変化させず、前記変換値算出部により算出された受信変換値に対応するカウンタの値が最大値でなければ当該カウンタの値を変化させて当該受信変換値の単位時間内の出現回数をカウントすることを特徴とする請求項2又は3に記載のフィルタ装置。
  5. 前記変換値算出部は、
    一つの受信パケットに含まれる通信識別値から複数の受信変換値を順序づけて算出し、
    前記カウンタ部は、
    前記変換値算出部が算出する受信変換値の個数に対応して複数存在し、各カウンタ部は受信変換値の順序に対応して順序づけられており、
    前記カウント初期値設定部は、
    カウンタ部ごとに、透過変換値のカウント初期値として許容透過数よりも小さな値を設定し、廃棄変換値のカウント初期値として許容透過数よりも大きな値を設定し、
    前記出現回数カウント部は、
    受信変換値の順序に従って、受信変換値ごとに、対応するカウンタ部の対応するカウンタの値を変化させて当該受信変換値の単位時間内の出現回数をカウントし、
    前記フィルタ部は、
    受信変換値の順序に従って、受信変換値ごとに、対応するカウンタ部の対応するカウンタの値が許容透過数以下であるか否かを判断し、全ての受信変換値のカウンタの値が許容透過数を超えている場合に受信パケットを廃棄し、少なくとも1つの受信変換値のカウンタの値が許容透過数以下である場合に受信パケットを透過することを特徴とする請求項2に記載のフィルタ装置。
  6. 前記カウント初期値設定部は、
    カウンタ部ごとに、透過変換値のカウント初期値としてカウンタでとり得る最小値を設定し、廃棄変換値のカウント初期値としてカウンタでとり得る最大値を設定し、
    前記出現回数カウント部は、
    受信変換値の順序に従って、受信変換値ごとに、対応するカウンタ部の対応するカウンタの値が最大値であればカウンタの値を変化させず、対応するカウンタ部の対応するカウンタの値が最大値でなければカウンタの値を変化させて当該受信変換値の単位時間内の出現回数をカウントすることを特徴とする請求項5に記載のフィルタ装置。
  7. 前記出現回数カウント部は、
    カウンタ値が最大値でないカウンタのカウンタ値を単位時間ごとに最小値に更新することを特徴とする請求項4又は6に記載のフィルタ装置。
  8. 前記フィルタ装置は、更に、
    前記パケット受信部によるパケットの受信に先立ち、パケット透過の対象となる通信識別値の変換値を透過変換値として複数指定する変換値指定部と、
    複数のカウンタを備え、各々のカウンタが透過変換値の各々に対応しているカウンタ部と、
    前記パケット受信部によるパケットの受信に先立ち、透過変換値のカウント初期値として許容透過数よりも小さな値を設定するカウント初期値設定部と、
    前記変換値算出部により受信変換値が算出される度に、算出された受信変換値に対応するカウンタが前記カウンタ部に存在する場合に、対応するカウンタの値を変化させて当該受信変換値の単位時間内の出現回数をカウントする出現回数カウント部とを有し、
    前記フィルタ部は、
    前記変換値算出部により算出された受信変換値に対応するカウンタが前記カウンタ部に存在する場合に、対応するカウンタの値が許容透過数以下であるか否かを判断して受信パケットの透過又は廃棄を行うことを特徴とする請求項1に記載のフィルタ装置。
  9. 前記変換値算出部は、
    一つの受信パケットに含まれる通信識別値から複数の受信変換値を算出し、
    前記フィルタ部は、
    前記変換値算出部により算出された受信変換値ごとに、対応するカウンタが前記カウンタ部に存在するか否かを判断するとともに、対応するカウンタが前記カウンタ部に存在する場合に対応するカウンタの値が許容透過数以下であるか否かを判断し、少なくとも1つの受信変換値について対応するカウンタが存在しない場合及び全ての受信変換値のカウンタの値が許容透過数を超えている場合のいずれかにおいて受信パケットを廃棄し、全ての受信変換値のカウンタの値が許容透過数以下である場合に受信パケットを透過することを特徴とする請求項8に記載のフィルタ装置。
  10. 前記変換値算出部は、
    一つの受信パケットに含まれる通信識別値に一方向演算を行って1つの変換値を算出し、算出した変換値を分割して複数の受信変換値を算出することを特徴とする請求項3、5及び9のいずれかに記載のフィルタ装置。
  11. 前記変換値算出部は、
    一つの受信パケットに含まれる通信識別値を複数個に分割し、分割後の各々の値に一方向演算を行って複数の受信変換値を算出することを特徴とする請求項3、5及び9のいずれかに記載のフィルタ装置。
  12. 前記パケット受信部は、
    通信識別値として、少なくとも送信元アドレスが含まれているパケットを受信し、
    前記変換値算出部は、
    前記パケット受信部により受信された受信パケットに含まれる少なくとも送信元アドレスを変換する演算を行って受信変換値を算出することを特徴とする請求項1〜11のいずれかに記載のフィルタ装置。
  13. コンピュータが、通信識別値が含まれるパケットの透過又は廃棄を行うフィルタ方法であって、
    前記コンピュータが、単位時間内に許容されるパケットの透過数を許容透過数として記憶する許容透過数記憶領域から、許容透過数を読み出す許容透過数読み出しステップと、
    前記コンピュータが、通信識別値が含まれるパケットを受信するパケット受信ステップと、
    前記コンピュータが、前記パケット受信ステップにより受信された受信パケットに含まれる通信識別値を変換する演算を行って、受信パケットに含まれる通信識別値の変換値を受信変換値として算出する変換値算出ステップと、
    前記コンピュータが、前記変換値算出ステップにより算出された受信変換値の単位時間内の出現回数が許容透過数以下であるか否かを判断して、受信パケットの透過又は廃棄を行うフィルタ処理ステップとを有することを特徴とするフィルタ方法。
  14. 通信識別値が含まれるパケットの透過又は廃棄を行うコンピュータに、
    単位時間内に許容されるパケットの透過数を許容透過数として記憶する許容透過数記憶領域から、許容透過数を読み出す許容透過数読み出し処理と、
    通信識別値が含まれるパケットを受信するパケット受信処理と、
    前記パケット受信処理により受信された受信パケットに含まれる通信識別値を変換する演算を行って、受信パケットに含まれる通信識別値の変換値を受信変換値として算出する変換値算出処理と、
    前記変換値算出処理により算出された受信変換値の単位時間内の出現回数が許容透過数以下であるか否かを判断して、受信パケットの透過又は廃棄を行うフィルタ処理とを実行させることを特徴とするプログラム。
JP2008282763A 2008-11-04 2008-11-04 フィルタ装置及びフィルタ方法及びプログラム Expired - Fee Related JP5127670B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008282763A JP5127670B2 (ja) 2008-11-04 2008-11-04 フィルタ装置及びフィルタ方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008282763A JP5127670B2 (ja) 2008-11-04 2008-11-04 フィルタ装置及びフィルタ方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2010114480A true JP2010114480A (ja) 2010-05-20
JP5127670B2 JP5127670B2 (ja) 2013-01-23

Family

ID=42302737

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008282763A Expired - Fee Related JP5127670B2 (ja) 2008-11-04 2008-11-04 フィルタ装置及びフィルタ方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5127670B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013070183A (ja) * 2011-09-21 2013-04-18 Nec Corp 通信装置、制御装置、通信システム、通信制御方法及びプログラム
JP2015050598A (ja) * 2013-08-30 2015-03-16 日本電信電話株式会社 トラヒック走査方法および装置
US10007436B2 (en) 2013-03-29 2018-06-26 Fujitsu Limited Storage control apparatus and control method of storage control apparatus
US11777712B2 (en) * 2019-03-22 2023-10-03 International Business Machines Corporation Information management in a database

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004260295A (ja) * 2003-02-24 2004-09-16 Toshiba Corp 通信制御装置、通信制御方法、通信制御付サーバ装置、通信制御付サーバ装置による通信制御方法及び通信制御プログラム
JP2008211464A (ja) * 2007-02-26 2008-09-11 Oki Electric Ind Co Ltd トラフィック異常検出システム、トラフィック情報観測装置、トラフィック情報管理装置、トラフィック情報観測プログラム、及び、トラフィック情報管理プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004260295A (ja) * 2003-02-24 2004-09-16 Toshiba Corp 通信制御装置、通信制御方法、通信制御付サーバ装置、通信制御付サーバ装置による通信制御方法及び通信制御プログラム
JP2008211464A (ja) * 2007-02-26 2008-09-11 Oki Electric Ind Co Ltd トラフィック異常検出システム、トラフィック情報観測装置、トラフィック情報管理装置、トラフィック情報観測プログラム、及び、トラフィック情報管理プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013070183A (ja) * 2011-09-21 2013-04-18 Nec Corp 通信装置、制御装置、通信システム、通信制御方法及びプログラム
US10007436B2 (en) 2013-03-29 2018-06-26 Fujitsu Limited Storage control apparatus and control method of storage control apparatus
JP2015050598A (ja) * 2013-08-30 2015-03-16 日本電信電話株式会社 トラヒック走査方法および装置
US11777712B2 (en) * 2019-03-22 2023-10-03 International Business Machines Corporation Information management in a database

Also Published As

Publication number Publication date
JP5127670B2 (ja) 2013-01-23

Similar Documents

Publication Publication Date Title
EP1983717B1 (en) Network attack detection using partial deterministic finite automaton pattern matching
US7609629B2 (en) Network controller and control method with flow analysis and control function
US9495479B2 (en) Traversal with arc configuration information
US10277510B2 (en) System and method for storing lookup request rules in multiple memories
US7949683B2 (en) Method and apparatus for traversing a compressed deterministic finite automata (DFA) graph
US20090138494A1 (en) Deterministic finite automata (DFA) graph compression
US8555374B2 (en) High performance packet processing using a general purpose processor
JP6454224B2 (ja) 通信装置
KR20160019397A (ko) 네트워크 통신을 분석하기 위해 메타데이터를 추출 및 보존하기 위한 시스템 및 방법
CN110311925B (zh) DDoS反射型攻击的检测方法及装置、计算机设备与可读介质
US8438641B2 (en) Security protocol processing for anti-replay protection
US20190296990A1 (en) Logging of traffic in a computer network
JP2009110270A (ja) マルウエア検出装置、監視装置、マルウエア検出プログラム、およびマルウエア検出方法
US20100251364A1 (en) Method and apparatus for classifying harmful packet
JP5127670B2 (ja) フィルタ装置及びフィルタ方法及びプログラム
US7535909B2 (en) Method and apparatus to process packets in a network
JP2012084994A (ja) マルウェア検出方法、およびマルウェア検出装置
KR20200088289A (ko) 방화벽에 ip 주소를 추가하는 방법, 시스템 및 매체
CN105490995A (zh) 一种在nvo3网络中nve转发报文的方法和设备
US7613179B2 (en) Technique for tracing source addresses of packets
CN110958245A (zh) 一种攻击的检测方法、装置、设备和存储介质
US11736514B2 (en) Suppressing virus propagation in a local area network
TW201132055A (en) Routing device and related packet processing circuit
US12003530B2 (en) Suppressing virus propagation in a local area network
US11044197B2 (en) System and method for protecting resources using network devices

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110928

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120920

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121030

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5127670

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151109

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees