JP5532241B2 - 高パケットレートフロー検出装置及び高パケットレートフロー検出方法 - Google Patents

高パケットレートフロー検出装置及び高パケットレートフロー検出方法 Download PDF

Info

Publication number
JP5532241B2
JP5532241B2 JP2010160924A JP2010160924A JP5532241B2 JP 5532241 B2 JP5532241 B2 JP 5532241B2 JP 2010160924 A JP2010160924 A JP 2010160924A JP 2010160924 A JP2010160924 A JP 2010160924A JP 5532241 B2 JP5532241 B2 JP 5532241B2
Authority
JP
Japan
Prior art keywords
flow
packets
packet rate
packet
window
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
JP2010160924A
Other languages
English (en)
Other versions
JP2012023629A (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.)
Nippon Telegraph and Telephone Corp
Osaka University NUC
Original Assignee
Nippon Telegraph and Telephone Corp
Osaka University NUC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp, Osaka University NUC filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2010160924A priority Critical patent/JP5532241B2/ja
Publication of JP2012023629A publication Critical patent/JP2012023629A/ja
Application granted granted Critical
Publication of JP5532241B2 publication Critical patent/JP5532241B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、高パケットレートフロー検出装置及び高パケットレートフロー検出方法に関する。
近年、インターネット上では公的機関や企業のサーバなどを狙った、Denial of Service(DoS)攻撃が深刻な問題となっている。DoS攻撃とは、サーバがクライアントに対して供給するサービスを、不正なパケットを送りつけることによって妨害するという、ネットワークを利用した攻撃のことである。DoS攻撃の代表的なものとしてSYN Flood攻撃とsmurf攻撃がある。
SYN Flood攻撃とは、攻撃者が攻撃対象のサーバに対してTCPの接続要求であるSYNパケットを、ヘッダを改竄した後に大量に送りつけるというものである。SYNパケットを受け取ったサーバは送信元に対してSYN/ACKを返す。しかしSYNパケットのヘッダに書かれている送信元のIPアドレスが実際には存在しないアドレスに書き換えられているため、サーバからのSYN/ACKに対してACKを返すクライアントは存在せず、サーバは返ってこないACKをタイムアウトになるまで待ち続けなければならない。この状態はhalf−openと呼ばれ、half−open状態のコネクション情報はサーバ内のbacklog queueに蓄積される。backlog queueのサイズはサーバ毎に決められており、このbacklog queueが一杯のときは、サーバはクライアントからの接続要求に応えることができない。すなわち、送信元IPアドレスを改竄したSYNパケットが大量に送られてくると、サーバのbacklog queueは常に一杯の状態になってしまい、正常なクライアントに対してTCP接続を確立することができず、サービスを供給できなくなる。
一方、smurf攻撃とは、ICMP echo requestを用いたDoS攻撃であり、攻撃者はICMP echo requestパケットの送信元IPアドレスを攻撃対象のホストのIPアドレスに偽装し、そのパケットをネットワークのブロードキャストアドレスに送る。すると、パケットを受け取ったネットワーク内の全てのホストから攻撃対象のホストに向けてICMP echo replyパケットが一斉に返される。この大量のICMPパケットによって攻撃対象のホストやネットワークに過重負荷がかかるため、サーバなどではサービスの提供が困難になる。
どのようなDoS攻撃であっても、単一のホストからの攻撃であれば攻撃の規模には限度があるが、複数のホストから一斉にDoS攻撃を行うDistributed DoS(DDoS)攻撃は、攻撃の規模と攻撃元の分散性から攻撃を受けたサーバでの対処が難しいため、ネットワーク、とりわけバックボーンネットワークの管理者の立場において検出することが、その後の対応を行う上で重要となる。
直接の攻撃とは別に、SYN Flood攻撃が起こった際にその副産物としてバックスキャッタと呼ばれるトラヒックが観測される。これは攻撃を受けたサーバから偽装されたIPアドレスに向けて送られるSYN/ACKパケット群であり、その多くは実際には使われていないIPアドレスが指定されているため、ヘッダのTTLがゼロなるまでネットワーク内を流れつづけることになる。実際には使われていないIPアドレスに向けて送られるパケットを観測するシステムとしてNetwork telescopeがある。Network telescopeはIPv4の全アドレス空間のうちのほとんど正常なIPアドレスが存在しない部分空間を観測するためのシステムである。その性質から、バックスキャッタのトラヒックやワームによるランダムスキャンのなどの観察に適している。
また、DoS攻撃の検出に関連する研究としては以下のようなものがある。V. A. Sirisらはトラヒックに含まれるSYNパケットの数を計測し、2種類のアルゴリズムを用いて動的に閾値を定め、閾値を超えるSYNパケットが計測された場合にSYN Flood攻撃の発生を検出するという手法を提案している(非特許文献1参照)。大下らもSYN Flood攻撃を検出する手法を提案している。彼らの手法はbacklog queueのサイズとタイムアウトになる時間を考慮し、サーバがサービス停止状態になる前に検出を行う。
V. A. Siris and F. Papagalou, "Application of anomaly detection algorithms for detecting syn flooding attacks," Computer Communications, vol.29, no.9, pp.1433−1442, 2006.
V. A. Sirisらはトラヒックに含まれるSYNパケットの数を計測し、2種類のアルゴリズムを用いて動的に閾値を定め、閾値を超えるSYNパケットが計測された場合にSYN Flood攻撃の発生を検出するという手法を提案しているが、彼らの手法は、SYN Flood攻撃が発生していることは検知できても、SYN Flood攻撃のフローを特定することができないという問題がある。また大下らもSYN Flood攻撃を検出する手法を提案しているが、トラヒックを観測するポイントが、サーバ側のネットワークへのインターフェース部分を想定しており、バックボーンNWを対象としたものではない。さらにトラヒックの全パケットを観測しているため、高速な回線を測定対象とした場合のスケール性に問題がある。
本発明は、バックボーンNWの任意のルータポートを観測対象とし、パケットサンプリング技術を用いることで、回線レートが高速である場合にも対応可能な、持続的な高パケットレートフロー(パケットレートが所定値以上のトラヒックのフロー)を検出することを目的とする。
本発明の高パケットレートフロー検出装置は、
パケットレートが所定値以上のトラヒックのフローを検出する高パケットレートフロー検出装置であって、
パケットを無作為に抽出するパケット無作為抽出部と、
所定の測定期間のスライディングウィンドウを自然数k及びmを用いてkm個のベーシックウィンドウに分割し、更にh≦k且つkとは互いに素な自然数hを用いて、連続するhm個のベーシックウィンドウで構成される検査ウィンドウをスライディングウィンドウ内に(k−h)m+1個作成し検査ウィンドウ内に抽出されたパケット数をフロー毎に集計するパケット数測定部と、
スライディングウィンドウ内の全ての検査ウィンドウにおいてパケット数が閾値 以上のフローを、パケットレートが所定値以上のトラヒックフローであるとして検出し、閾値w より大きい複数の基準値ω(φ)を設け、検出されたフローから、全ての検査ウィンドウにおいてパケット数がω(φ)以上のフローを区別する高パケットレートフロー検出部と、
を有することを特徴とする。
また、本発明の高パケットレートフロー検出装置は、
パケットレートが所定値以上のトラヒックのフローを検出する高パケットレートフロー検出装置であって、
パケットを無作為に抽出するパケット無作為抽出部と、
所定の測定期間のスライディングウィンドウを自然数k及びmを用いてkm個のベーシックウィンドウに分割し、更にh≦k且つkとは互いに素な自然数hを用いて、連続するhm個のベーシックウィンドウで構成される検査ウィンドウをスライディングウィンドウ内に(k−h)m+1個作成し、検査ウィンドウ内に抽出されたパケット数をフロー毎に集計するパケット数測定部と、
部分区間においてパケット数が閾値以上のフローを、パケットレートが所定値以上のトラヒックフローであるとして検出する高パケットレートフロー検出部と、
測定対象の回線のパケットを抽出するサンプリングレートをfとし、スライディングウィンドウの大きさをT SW とし、ベーシックウィンドウの大きさをT BW とし、検出目標時間をT D_max とし、測定対象の回線の最大パケットレートをC max とし、1サンプルパケットあたりの処理時間をΔ とし、スライディングウィンドウの解析に必要なパケット数とは独立な処理時間をΔ とし、ベーシックウィンドウの幅の最大許容値をT BW_max とし、スライディングウィンドウの処理時間をτ=fC max BW Δ +Δ としたときに、T SW +T BW +τ≦T D_max 且つT BW ≦T BW_max を制約条件として、検出対象外のフローの誤検出率を最小化するfとmとを設計する第1のパラメータ設計部と、
パケットレートが所定値以上のトラヒックのフローを見逃す許容誤差をεとしたときに、設計されたfとmとに基づいて、検出対象のフローの検出を見逃す確立をε以下に抑えるよう、検査ウィンドウにおけるパケット数の閾値w を設計する第2のパラメータ設計部と、
を有することを特徴とする。
本発明の高パケットレートフロー検出方法は、
パケットレートが所定値以上のトラヒックのフローを検出する高パケットレートフロー検出装置における高パケットレートフロー検出方法であって、
パケットを無作為に抽出するステップと、
所定の測定期間のスライディングウィンドウを自然数k及びmを用いてkm個のベーシックウィンドウに分割し、更にh≦k且つkとは互いに素な自然数hを用いて、連続するhm個のベーシックウィンドウで構成される検査ウィンドウをスライディングウィンドウ内に(k−h)m+1個作成し検査ウィンドウ内に抽出されたパケット数をフロー毎に集計するステップと、
スライディングウィンドウ内の全ての検査ウィンドウにおいてパケット数が閾値 以上のフローを、パケットレートが所定値以上のトラヒックフローであるとして検出し、閾値w より大きい複数の基準値ω(φ)を設け、検出されたフローから、全ての検査ウィンドウにおいてパケット数がω(φ)以上のフローを区別するステップと、
を有することを特徴とする。
また、本発明の高パケットレートフロー検出方法は、
パケットレートが所定値以上のトラヒックのフローを検出する高パケットレートフロー検出装置における高パケットレートフロー検出方法であって、
パケットを無作為に抽出するステップと、
所定の測定期間のスライディングウィンドウを自然数k及びmを用いてkm個のベーシックウィンドウに分割し、更にh≦k且つkとは互いに素な自然数hを用いて、連続するhm個のベーシックウィンドウで構成される検査ウィンドウをスライディングウィンドウ内に(k−h)m+1個作成し、検査ウィンドウ内に抽出されたパケット数をフロー毎に集計するステップと、
部分区間においてパケット数が閾値以上のフローを、パケットレートが所定値以上のトラヒックフローであるとして検出するステップと、
測定対象の回線のパケットを抽出するサンプリングレートをfとし、スライディングウィンドウの大きさをT SW とし、ベーシックウィンドウの大きさをT BW とし、検出目標時間をT D_max とし、測定対象の回線の最大パケットレートをC max とし、1サンプルパケットあたりの処理時間をΔ とし、スライディングウィンドウの解析に必要なパケット数とは独立な処理時間をΔ とし、ベーシックウィンドウの幅の最大許容値をT BW_max とし、スライディングウィンドウの処理時間をτ=fC max BW Δ +Δ としたときに、T SW +T BW +τ≦T D_max 且つT BW ≦T BW_max を制約条件として、検出対象外のフローの誤検出率を最小化するfとmとを設計するステップと、
パケットレートが所定値以上のトラヒックのフローを見逃す許容誤差をεとしたときに、設計されたfとmとに基づいて、検出対象のフローの検出を見逃す確立をε以下に抑えるよう、検査ウィンドウにおけるパケット数の閾値w を設計するステップと、
を有することを特徴とする。
本発明によれば、パケットサンプリング技術を用いることで、パケットレートが所定値以上のトラヒックのフローを検出することが可能になる。
本発明の実施例に係る高パケットレートフロー検出装置の構成図 本発明の実施例に係る高パケットレートフロー検出装置のパケット無作為抽出部で実行される処理プロセスのフローチャート 本発明の実施例に係る高パケットレートフロー検出装置のIW情報の更新部で実行される処理プロセスのフローチャート 本発明の実施例に係る高パケットレートフロー検出装置の高パケットレートフロー検出部で実行される処理プロセスのフローチャート スライディングウィンドウの概要を示す図 制御パラメータfが制約条件を満たす領域を示す図 制御パラメータfが制約条件を満たす領域を示す図 スライディングウィンドウの母集団におけるパケット数の説明図 スライディングウィンドウのサンプルにおけるパケット数の説明図 実験に用いたトラヒックデータの概要を示す表 実験に用いた規定パラメータを示す表 実験で得られた制御パラメータ(f,m)を示す表 閾値の候補と検出率の関係を示す図(Backscatter) 閾値の候補と検出率の関係を示す図(CESCA−I(R=800)) 閾値の候補と検出率の関係を示す図(CESCA−I(R=1000)) サンプルにおける閾値を示す表 実験結果の平均と95%信頼区間を示す表
以下、図面を参照して本発明の実施例について説明する。
本発明の実施例では、長さT秒の測定期間に含まれる長さt秒の任意の部分区間において、パケットレートがR[packets/sec]以上のフローを、ランダムパケットサンプリングによって得られた情報からオンラインで検出することを特徴とする持続的な高パケットレートフローのオンライン検出法について説明する。
より具体的には、長さTSW=Tの測定期間(スライディングウィンドウSW)を自然数kとmに対してkm個のベーシックウィンドウ(BW)に分割し、さらにh≦kかつkとは互いに素な自然数hを用いて、連続するhm個のBWで構成される検査ウィンドウ(IW)をSW内に(k−h)m+1個作成し、SW内の全てのIWにおいてパケットレートがR[packets/sec]以上であるフローを検出する。なお、検査ウィンドウの大きさTIW=tはkとhとにより決まり、TIW=(h/k)TSW[sec]となることに注意する。
<高パケットレートフロー検出装置の構成>
図1は、持続的な高パケットレートフローのオンライン検出法を実現するための、本発明の実施例に係る高パケットレートフロー検出装置の構成図である。
本実施例に係る高パケットレートフロー検出装置は、パラメータfとmの設計部101と、パラメータwの設計部102と、パケット無作為抽出部103と、BW情報保存部104と、IW情報の更新部105と、IW情報保存部106と、高パケットレートフロー検出部107とを有する。
パラメータfとmの設計部101は、パケットサンプリング確率fとBWの大きさを定めるパラメータmとを設計する。パラメータfとmの設計部101は、目標時間TD_max内に検出すること、BWの幅が最大許容値TBW_max以下であること、を制約条件とし、検出対象外のフローの誤検出率を最小化するfとmとを設計する。
具体的には以下に説明するように、パラメータfとmの設計部101は、入力パラメータである、SWの長さTSW[sec]、1サンプルパケットあたりの処理時間Δ[sec]、SWの解析に必要なパケット数とは独立な処理時間Δ[sec]、検出目標時間TD_max[sec]、観測する回線の最大パケットレートCmax[packets/sec]、BWの幅の最大許容値TBW_max[sec]、に対して、
Figure 0005532241
と定義するとき、
Figure 0005532241
の場合には、mを
Figure 0005532241
に設定し、fをf=max{f(m),f(m)}に設定する。一方、
Figure 0005532241
の場合には、m=m、f=f(m)に設定する。
パラメータwの設計部102は、高パケットレートフローを検出する際のサンプルパケット数に関する閾値wを設計する。具体的には、fとmが最適設計された後で、与えられた高レートフローの見逃し許容誤差εに対して、検出対象フローの検出見逃し確率を許容値ε以下に抑えるよう、IW内のサンプルパケット数の閾値wを設計する。
パラメータwの設計部102は、検出確率が最低となる閾値フローの分布X(各BWにおけるパケット数の確率分布)に対して、このようなフローが全てのIWにおいてw個以上のパケットがサンプルされる確率をP(w|X)、高レートフローの見逃し許容誤差をεとするとき、wを、
Figure 0005532241
により設計する。ただしP(w|X)はモンテカルトシミュレーションを用いた数値実験により求める。
パケット無作為抽出部103は、測定対象となるルータポートを流れる各パケットに対して各々独立に確率fでパケットをサンプリングする。
図2に、パケット無作為抽出部103で実行される処理プロセスのフローチャートを示す。測定対象のルータポートにパケットが到着するごとに、0から1の値をとる一様乱数xを発生させ(S101)、その値がfより小さい場合には(S102:Y)、到着パケットをサンプリングし(S103)、BW情報保存部104の該当フローのサンプルパケット数を全て1だけ増加させる。
BW情報保存部104は、BW内でサンプルされたパケット数を各フローに対して保存する。
IW情報の更新部105は、BWの境界時点において、BW情報保存部104のサンプルパケット数情報を、現在のBWを含む全てのIWに対して、フローごとに足しこむ。また最古のBWを含むIWを破棄し、連続する最近のkm個のBWを用いて新しいIWを作成する。このように、IW情報の更新部は、測定期間SWを任意の部分区間IWに分割し、部分区間内に抽出されたパケット数をフロー毎に集計する。
図3に、IW情報の更新部105で実行される処理プロセスのフローチャートを示す。BWの境界時点において、BW情報保存部104のサンプルパケット数情報を、現在のBWを含む全てのIWに対して、フローごとに足しこみ(S201)、BW情報保存装置104の全エントリをゼロに初期化する(S202)。またIW情報保存部106において、最古のBWを含むIWを破棄し、連続する最近のkm個のBWを用いて新しいIWを作成する(S203)。
IW情報保存部106は、IWの情報((k−h)m+1の各IWにおける各フローのサンプルパケット数)を保存する。
高パケットレートフロー検出部107は、SWに含まれる(k−h)m+1個の全IWにおいてw個以上のパケットがサンプルされたフローを高レートフローとして検出する。
図4に、高パケットレートフロー検出部107で実行される処理プロセスのフローチャートを示す。BWの境界時点において、SWに含まれる(k−h)m+1個の全IWにおいてw個以上のパケットがサンプルされたフローを高レートフローとして検出する(S301)。
<検出の枠組み>
次に、本発明の実施例に係る持続的な高パケットレートフローのオンライン検出法の枠組みを説明する。
DoS攻撃等の異常トラヒックが発生した際、ネットワークのバックボーンにおいて迅速に検出することは、ネットワーク全体を保守管理する上で非常に重要である。本実施例ではDDoS攻撃等、高パケットレートが長時間持続するような異常トラヒックに注目し、パケットレートが予め定められた閾値を一定時間以上超え続けているフローを検出することを試みる。
ネットワークを流れるIPトラヒックにおいて、フローとは、共通のIPアドレス、ポート番号、SYNフラグなどの組み合わせをもつパケット群として定義される。例えばDoS攻撃に用いられているパケット群を一つのフローと見なそうとする場合、一般に攻撃パケットのヘッダに記載されている送信元IPアドレスは改竄されており、確実に共通するのは宛先のIPアドレスだけとなる。そのため共通の宛先IPアドレスを持つパケット群をフローと定義するとDoS攻撃の攻撃フローの検出が可能となる。また、バックスキャッタのトラヒックを観測する場合、DoS攻撃を受けたサーバから不特定多数の宛先に向けて送信されるパケットを一つのフローとして見なしたい。この場合は共通の送信元IPアドレスを持つパケット群をフローとして定義するのが適している。このようにフローの定義は検出したい対象や観測地点によって適宜定義を行うと都合が良いため、本実施例ではフローの定義は任意とする。
ここで、検出対象フローの定義を行う。上記のように、本実施例ではパケットレートが予め与えられる閾値を一定時間以上超え続けているフローを検出対象とする。この検出対象をより明確にするために、本実施例では以下のように定義する。
検出対象フローの定義:予め与えられた定数R[packets/sec]、T[sec]、t[sec](t≦T)に対して、T秒間の測定期間に含まれるt秒間の任意の区間全てについて、パケットレートがR[packets/sec]以上であるフローを検出対象とする。
この検出対象の定義には、瞬間的に大量のパケットが発生したが、その後すぐに消えてしまうようなバースト的なフローを検出対象から外すという意図がある。バースト的なフローは捉え方によれば高パケットレートフローであるが、検出した時点ですでに消えてしまっているのであれば対応することが出来ない。検出されたフローは管理者が対応するかどうかを判断しなければならないため、バースト的なフローを検出することは管理者のオーバヘッドが増えることになる。
しかし、上記で定義される検出対象フローをネットワークのバックボーンにおいて常時トラヒックを観測しながら検出を行うには大きく三つの問題がある。まず一つ目は、T秒間の測定期間に含まれる長さt秒をもつあらゆる部分区間全てについてパケットレートを調査することは極めて困難である。二つ目は、トラヒックを観測し続ける一方で検出対象のフローをオンラインで検出するためには、観測した解析対象データを更新する仕組みが必要となる。三つ目は、ネットワークのバックボーンのような高速な回線では、回線を流れる全てのパケットを対象に解析することは非現実的でありスケーラビリティを欠く。
そこで本実施例では、スライディングウィンドウ方式を用いて最初の二つの問題の解決を図る。スライディングウィンドウ方式とは、解析対象のデータを保持するスライディングウィンドウをベーシックウィンドウと呼ばれる単位に分割し、ベーシックウィンドウ単位で解析データを更新する、オンラインパケット処理アルゴリズムである。本実施例ではこのスライディングウィンドウ方式に、検査ウィンドウと呼ばれる部分ウィンドウの概念を導入し、上記で定義された検出対象フローを含む新たな検出対象フローの集合を定義することで、一つ目の問題を解決する。
三つ目の問題に関しては、パケットサンプリングを用いることで解決を図る。すなわち、パケットの標本抽出を行い、得られた情報を基にサンプリングの対象となった母集団の統計量を推定することで、処理サイクルやメモリ使用量を抑える。本実施例では、各パケットに対してフローの情報を用いず、独立に一定の確率fで無作為標本抽出を行うランダムパケットサンプリングを用いる。これにより、処理サイクルを大幅に抑えることができ、バックボーンなどの高速な回線に対しても適用可能となる。しかし、パケットサンプリングはその性質上、情報の欠如をもたらすため、特にサンプリングをする頻度が少ない場合はサンプリングの対象である母集団の統計量を推定することが困難になる。例えば、パケットが一つもサンプリングされないフローについては、母集団における統計量を推定することは不可能である。しかし、検出対象である高パケットレートのフローであれば、適切なサンプリングレートを用いることによって、母集団を推定できるだけの十分な標本を抽出できると考えられる。
<スライディングウィンドウ方式による検出とデータ更新>
バックボーンネットワークを流れているトラヒックを常時、測定管理し、高パケットレートをもつフローの検出を行うにはオンラインアルゴリズムが必要である。すなわち、データの取得、解析、破棄を継続的に行う必要がある。本実施例では、この解析対象データを更新するための手段としてスライディングウィンドウ方式を採用する。スライディングウィンドウ方式とは、解析対象となるデータを保持するスライディングウィンドウをベーシックウィンドウと呼ばれる複数の単位に分割し、解析終了後に最も古いベーシックウィンドウのデータを破棄し、新たに取得された1ベーシックウィンドウ分のデータを加えることによって解析対象のデータを更新する方式である。
スライディングウィンドウ方式には、スライディングウィンドウの大きさをパケット数で規定する方法と測定時間で規定する方法の2種類が存在する。前者は一定数のパケットが回線を通過したとき、あるいは一定数のパケットがサンプリングされたときにベーシックウィンドウを生成し、スライディングウィンドウを更新する。母集団におけるパケット数を一定にすると、トラヒックのフロー毎のパケット数分布などを求めることが容易になり、サンプル数を一定にすると、メモリの使用を一定にすることができるなどの利点がある。一方、後者は一定時間毎にベーシックウィンドウを生成し、スライディングウィンドウを更新する。母集団におけるパケット数およびサンプリングされるパケット数はスライディングウィンドウが更新される度に変わるが、測定時間を一定にすることができる。
本実施例では、パケットレート、すなわち、単位時間当たりに各フローに含まれるパケット数を対象としている。そこで、スライディングウィンドウが保持する解析対象データの測定時間が一定時間TSW[sec]になるようにスライディングウィンドウの大きさを定める。さらに自然数kとmを用いて、スライディングウィンドウをTSW/(km)[sec]刻みでkm個のベーシックウィンドウに分割する。すなわち、TSW/(km)秒毎に取得されるデータで新たなベーシックウィンドウを作成し、スライディングウィンドウに加えると共に、スライディングウィンドウ内の最も古いベーシックウィンドウのデータを破棄することによって解析対象となるデータの更新を行う。
また本実施例では、kとは互いに素な自然数h(h≦k)を用いて、連続するhm個のベーシックウィンドウで構成される検査ウィンドウをスライディングウィンドウ内に(k−h)m+1個作成する。このとき、検査ウィンドウの大きさTIWは(h/k)TSW[sec]となることに注意する。図5にk=3、m=2、h=2としたときのスライディングウィンドウの概要を示す。
このスライディングウィンドウ方式において検出対象となるフローは下記の通りである。
スライディングウィンドウ方式における検出対象フローの定義:予め与えられた定数R[packets/sec]、TSW[sec]、自然数k、m、ならびにkと互いに素な自然数h(h≦k)に対して、ベーシックウィンドウの大きさをTBW=TSW/(km)[sec]とし、連続するkm個のベーシックウィンドウから構成されるスライディングウィンドウを考え、このスライディングウィンドウ内の大きさTIW=(h/k)TSW[sec]をもつ(k−h)m+1個全ての検査ウィンドウにおいて、パケットレートがR[packets/sec]以上であるフローを検出対象とする。
ここで、上記の「検出対象フローの定義」で用いたTおよびtに対して、TSW=TかつTIW=(h/k)TSW=tを満たす互いに素な自然数kおよびh(h≦k)が存在すると仮定している。この仮定より、上記の「検出対象フローの定義」を満たす検出対象フローの集合は、スライディングウィンドウ方式で検出対象となっているフローの集合の部分集合になっている。すなわち、「スライディングウィンドウ方式における検出対象フローの定義」の条件を満たすフローを全て検出すれば、「検出対象フローの定義」で定められた検出対象フローは全て検出される。以後、検出対象フローはスライディングウィンドウ方式における「検出対象フローの定義」に基づくものとする。
<ランダムパケットサンプリングを用いた検出>
高速回線に対してスケーラビリティを確保するために、本発明の実施例ではランダムパケットサンプリングを用いる。TSW秒間に回線を通過したパケット全体を母集団し、そこから確率fで無作為標本抽出されたパケットの情報のみを用いて母集団における検出対象フローを検出することを試みる。母集団における検出対象フローは、(k−h)m+1個の検査ウィンドウ全てにおいてパケットレートが予め与えられる閾値R[packets/sec]以上のフローである。検査ウィンドウのパケットレートがR以上であることと、検査ウィンドウ内のパケット数が
Figure 0005532241
以上であることは等価である。よって、以下では
Figure 0005532241
をパケット数の閾値と呼ぶ。すなわち、検出対象フローは母集団の全ての検査ウィンドウにおいて、パケット数がz個以上のフローである。
もし全てのパケットを対象に解析が行えるのであれば、各検査ウィンドウにおいて、それぞれのフローを構成するパケットがz個以上あるかどうかを調べれば良いが、本実施例ではパケットサンプリング用いるため、新たに各検査ウィンドウにおけるサンプリングされたパケット数の閾値wを設け、スライディングウィンドウ内の全ての検査ウィンドウでw個以上のパケットがサンプリングされたフローを検出することにする。ここで wは、検出対象のフローのうち最低のパケットレート、すなわち母集団の全ての検査ウィンドウにおいてパケット数がz個であるフロー(これを閾値フローと呼ぶことにする)を十分高い確率で検出できるように定める。これは異常な高パケットレートフローが発生した際には見逃さないようにするためである。しかしサンプリングによって情報が欠如するため、閾値wを0にしない限り検出対象を確実に検出することはできない。そこで本実施例では、検出対象フローを見逃してしまう確率が十分小さい値ε以下となるようにwを定める。具体的なパラメータ設定方法は後述する。
以下に検出の手順をまとめる。ただし、スライディングウィンドウはSW、検査ウィンドウはIW、ベーシックウィンドウはBWとそれぞれ略記する。
まず、測定期間TSW秒の間に確率fで無作為標本抽出されたパケットのデータを保持するSWにおいて、SWに含まれる(k−h)m+1個全てのIWにおいてw個以上サンプリングされているフローがあれば、そのフローを検出する。
次に、SWの解析終了後、最も古いBW、ならびに、このBWを含むIWを破棄する。
一方、新たにTBW秒間に転送されたパケットのサンプリング終了後、新しいBWを作成し、それをSWに加えると共に、連続する最近のhm個のBWを用いて新しいIWを作成する。
次に、新たに作成されたIWを検査し、w個以上含まれるフローがあった場合には過去のIWの検査結果と照らし合わせ、(k−h)m+1個のIW全てにおいてサンプルされたパケット数が閾値wを超えていれば、そのフローを検出する。
スライディングウィンドウ方式によるデータ更新とランダムパケットサンプリングを用いた本実施例の手法は上記の手順を常時繰り返すものである。
本実施例の手法では、予め与えられるパラメータである、パケットレートの閾値R[packets/sec]、測定時間であるスライディングウィンドウの大きさTSW[sec]、検査ウィンドウの大きさを定める互いに素な自然数kおよびhの他に、制御可能なパラメータとして、サンプリングレートf、データ更新単位であるベーシックウィンドウの大きさを定める自然数m、ならびに、サンプリングされたパケット数の閾値wがある。よって、制御可能なこれら三つのパラメータ(以後制御パラメータと呼ぶ)の値を適切に決定する必要がある。その際、前述の検出対象のフローを見逃してしまう確率をε以下とするという条件を満たすと同時に、スライディングウィンドウ方式がオンラインアルゴリズムとして正常に機能するために、新しいベーシックウィンドウが生成される前に現在のスライディングウィンドウの解析が終了できるようにしなければならない。
この二つの制約条件下で三つの制御パラメータを設定しようとする場合には自由度が大きく、制御パラメータは一意に決定されない。そこで、以下では、検出対象フローの発生から検出までに要する時間に関する制約条件と、スライディングウィンドウ方式における検出対象フローの集合が、本来の検出対象フローの集合に近いものとなるように検査ウィンドウのスライド幅TBW=TSW/(km)に関する最大許容値を導入し、各制御パラメータを一意に定める手法を説明する。
そして、サンプリングレートf、ベーシックウィンドウの大きさを定める自然数m、並びに、サンプルにおけるパケット数の閾値wの三つの制御パラメータを、複数の制約条件を導入することにより、一意に決定する手法を説明する。
<制御パラメータと制約条件>
検出対象のフローを定義するパラメータは次の四つである。
・パケットレートの閾値R[packets/sec]
・スライディングウィンドウの大きさTSW[sec]
・検査ウィンドウの大きさを定める互いに素な自然数k及びh
一方、制御パラメータは以下の三つである。
・サンプリングレートf
・ベーシックウィンドウの大きさを定める自然数m
・サンプルにおけるパケット数の閾値w[packets]
以上七つのパラメータが決定されると、上記の「検出の枠組」みで説明した検出手法を用いることができる。
制御パラメータを設定する際にまず注意しなければならないことは、スライディングウィンドウ方式を用いた本提案手法をオンラインアルゴリズムとして正常に機能させることである。オンラインで検出を行うということは、解析対象のデータが更新される前に、現在のデータの解析処理が完了しなければならないということである。すなわち、スライディングウィンドウの解析を、新たな1ベーシックウィンドウ分のデータを取得する前に終わらせなければならない。よって、スライディングウィンドウの解析時間τ[sec]は
Figure 0005532241
を満たさなければならない。
そこで、スライディングウィンドウの解析時間τ[sec]について評価を行う。パケットの情報はサンプリングされた時点でフロー毎に仕分けられ、パケット数はカウントされているものとする。すなわち、ベーシックウィンドウはフロー毎の情報を保持しており、保持するフロー数の上限はサンプリングされるパケット数となる。以下に新しいベーシックウィンドウが生成された直後からのスライディングウィンドウの処理を列挙する。なお、解析を行う際はスライディングウィンドウ内の(k−h)m+1個の検査ウィンドウのみを対象とするが、データ処理の都合上、まだhm個揃っていない先のスライディングウィンドウで用いる検査ウィンドウも、関係するベーシックウィンドウが到着し次第順次加えながら作成していく。以下に手順を示す。
(1)新しいベーシックウィンドウをスライディングウィンドウ内の関係する全ての検査ウィンドウ(まだhm個そろっていないものも含む)に加える。
(2)最近のhm個のベーシックウィンドウで構成される検査ウィンドウを調査し、閾値wを超えるフローを検知する。
(3)以前の検査ウィンドウの検知結果を用いて、全ての検査ウィンドウで検知されたフローを検出する。
(4)最も古い検査ウィンドウおよびベーシックウィンドウを破棄する。
上記手順のうち、(1)はベーシックウィンドウに含まれる各フローについてフロー情報の比較や情報の集約などの複雑な処理を行うため、その処理時間はベーシックウィンドウ内のフロー数に依存する。(2)以降の各手順は、予め確保された空間に渡って単純な比較やデータの廃棄のみを行うため、一定時間内に処理できると考えて良い。そこで、本実施例ではスライディングウィンドウの処理時間τを、ベーシックウィンドウにサンプリングされるパケット数に依存する処理時間と、パケット数とは独立な一定の処理時間の和として考え、次式で処理時間の上界を見積もることにする。
Figure 0005532241
ここで、Cmax、ΔおよびΔは、それぞれ、観測する回線の最大パケットレート、スライディングウィンドウの解析における1サンプルパケット当りの処理時間、および、サンプルパケット数とは独立な処理時間を表している。
DoS攻撃のような異常フローは発生から検出するまでに時間がかかりすぎると、攻撃を受けているサーバが機能を停止してしまう。そこで本実施例では、検出対象のフローが発生してから目標時間TD_max[sec]以内に検出できるようにパラメータを定める。検出対象のフローを検出するために必要な時間は、対象フローの測定にかかる時間TSWとスライディングウィンドウの解析時間τの和で与えられる。しかし、検出対象のフローは多くの場合、ベーシックウィンドウの途中から発生すると考えられ、検出した時点では直前に破棄したベーシックウィンドウの途中から始まっていた可能性が高い。すなわち、最大で1ベーシックウィンドウ分の検出遅れが生じることになる。したがって、検出対象フローを目標時間以内に検出するための条件は次式で与えられる。
Figure 0005532241
上記の「検出対象フローの定義」では、T(=TSW)秒の測定期間内の任意のt(=TIW)秒の区間全てにおいてパケットレートがR以上となっているため、検査ウィンドウのスライド幅が大きすぎると、上記の「検出対象フローの定義」を満足しないフローを多数検出することになる。そこで、検査ウィンドウのスライド幅に関する最大許容値TBW_max[sec]を設ける。本実施例において、検査ウィンドウのスライド幅はベーシックウィンドウのサイズTBWとなるため、TBWは次の条件を満たす必要がある。
Figure 0005532241
上記の「検出の枠組み」で説明した検出手法では、ランダムパケットサンプリングを行い、サンプリングされたパケットの情報のみを用いて検出を行うため、検出対象フローの検出見逃しや検出対象外フローの誤検出が発生する。三つの制御パラメータのうち二つを固定し、残りの一つを変化させた場合、サンプリングレートfに関しては、fを小さくするほど検出見逃しおよび誤検出は発生しやすくなる。ベーシックウィンドウのサイズを規定するmに関しては、mを大きくするほど検査ウィンドウの数が増え、全ての検査ウィンドウでw以上となる確率が減少するため、検出見逃しは増加するが誤検出は減少する。検査ウィンドウにおけるパケット数の閾値wに関しては、wが小さいほど検出見逃しは減少するが誤検出は増加する。このようにmとwに関してはトレードオフの関係が存在することに注意する。異常フローを見逃してしまうと、その後のネットワークに大きな障害をもたらしかねないため、本実施例では検出対象のフローを見逃してしまう確率を十分小さなε以下に抑えるようにパラメータを設定する。その上で、検出対象外フローを誤検出してしまう確率もなるべく小さくなるように制御パラメータを設定する。
上記のシステムを規定するパラメータを以下にまとめておく。
・見逃し許容誤差ε(検出対象フローを1−ε以上の確率で検出)
・検出目標時間TD_max[sec]
・スライド幅の最大許容値TBW_max[sec]
・観測する回線の最大パケットレートCmax[packets/sec]
・1サンプルパケットあたりの処理時間Δ[sec]
・スライディングウィンドウの解析に必要なパケット数とは独立な処理時間Δ[sec]
<誤検出確率の最小化問題>
上記の制約条件の下、検出対象外の低パケットレートフローを誤検出する確率を最小化するように制御パラメータを設定する問題を考える。すなわち、この問題は次のように定式化される。
目的関数:検出対象外フローの誤検出確率→最小
制約条件:サンプリングレートf>0
ベーシックウィンドウの大きさを定める自然数m
サンプルにおけるパケット数の閾値w(自然数)
オンラインのアルゴリズムとして機能すること
目標時間TD_max内に検出可能なこと
検査ウィンドウのスライド幅≦最大許容値TBW_max
検出対象フローの検出見逃し確率≦ε以下
なお、対象フローの検出見逃し確率に関する制約条件は、サンプリングレートfとベーシックウィンドウの大きさを定めるmが決定した後に、wを調整することによって満たすことができるため、上記の問題とは独立な問題として考える。
まず、目的関数について説明する。サンプリングによって得られたパケットの情報を用いて母集団の統計量を推定する場合、サンプリングされたパケット数が多ければ多いほどその統計的精度は高くなる。そのため検出対象外のフローを誤検出してしまう確率を下げるためにはなるべくたくさんのパケットをサンプリングすればよい。スライディングウィンドウのサイズはTSW秒で固定されているため、サンプリングされるパケット数を多くするにはサンプリングレートfを大きくする、すなわち、上記の制約条件下でfを最大化することが検出対象外フローの誤検出確率を最小化することと等価となる。したがって、上記の問題は次のようなサンプリングレートfの最大化問題となる。
目的関数:サンプリングレートf→最大
制約条件:サンプリングレートf>0
ベーシックウィンドウの大きさを定める自然数m
オンラインのアルゴリズムとして機能すること
目標時間TD_max内に検出可能なこと
検査ウィンドウのスライド幅≦最大許容値TBW_max
次に、制約条件について説明する。スライディングウィンドウの解析時間τは式(2)に従うと仮定する。さらに上記より、オンラインのアルゴリズムとして機能するための条件は式(1)で、目標時間内の検出の条件は式(3)で、検査ウィンドウのスライド幅に関する条件は式(4)で与えられる。制約条件をこれらで置き換え、mに関してkm=TSW/TBWを加えると、上記の問題は次のように書き換えられる。
目的関数:サンプリングレートf→最大
制約条件:f>0
mは自然数
τ≦TBW
SW+TBW+τ≦TD_max
BW≦TBW_max
τ=fCmaxBWΔ+Δ
km=TSW/TBW
この制約条件下で、サンプリングレートfを最大にする自然数mを求めることが目的となる。τ≦TBWにτ=fCmaxBWΔ+Δを代入し、TSW=kmTBWを用いて変形すると、
Figure 0005532241
となる。同様に、TSW+TBW+τ≦TD_maxは、
Figure 0005532241
となる。また、TBW≦TBW_maxより、
Figure 0005532241
となる。
このとき、本実施例の手法が動作可能であるためには、サンプリングレートfが正となるようなmが存在する必要がある。式(5)の右辺が正であるためには、
Figure 0005532241
でなければならない。また、式(6)の右辺が正であるための条件は、
Figure 0005532241
で与えられる。さらに、式(7)より
Figure 0005532241
を得る。すなわち、式(8)、(9)、(10)より、本実施例の手法が動作可能となるためには、次式が成立する必要がある。
Figure 0005532241
よって、式(11)が成立しているという条件の下で、以下の最適化問題を考える。
制御パラメータ:f,m
与条件:定数TSW,k,h,Cmax,TD_max,TBW_max,Δ,Δ
SW−kΔ>0
kTD_max−(k+1)TSW−kΔ>0
SW≦kTBW_max
目的関数:f→最大
制約条件:f>0
mは自然数
Figure 0005532241
この混合線形計画問題は以下のようにして解くことができる。まず、自然数mを実数rで置き換えた以下の緩和問題を考える。
目的関数:f→最大
制約条件:f>0
Figure 0005532241
2番目と3番目の制約条件で表される領域の境界はそれぞれ次式で与えられる。
Figure 0005532241
Figure 0005532241
ここで、式(12)がrに関する減少一次関数に、式(13)がrに関する増加一次関数になっていることに注意する。この2直線の交点の座標を
Figure 0005532241
とおくと、
Figure 0005532241
である。与条件より、
Figure 0005532241
は正であることに注意する。一方、最後の制約条件で表される領域の境界を
Figure 0005532241
とおく。
Figure 0005532241
以上の準備の下でfを最大にするようなrおよびmを、
Figure 0005532241
に場合分けして求める。
Figure 0005532241
図6より、
Figure 0005532241
でfは最大となる。このとき、
Figure 0005532241
を求め、
Figure 0005532241
であればmとmのうちfを大きくする方、すなわち
Figure 0005532241
を採用する。このときのfはf=max{f(m),f(m)}となる。また、
Figure 0005532241
のときはm=mであり、fはf=f(m)となる。
Figure 0005532241
図7より、
Figure 0005532241
でfは最大となる。このときm
Figure 0005532241
となり、fはf=f(m)である。
以上のようにして求めたmとfを制御パラメータの値として用いる。
<サンプルにおける閾値の導出>
予め与えられるシステムを規定するパラメータと上記のように設定したサンプリングレートfおよびベーシックウィンドウの大きさを定めるmを用いて、検出対象フローを見逃してしまう確率をε以下となるように、検査ウィンドウ内のサンプルパケット数の閾値wを設定する。
ある測定期間において任意のフローに注目する。XおよびYをそれぞれフローを構成するパケット数およびサンプリングされたパケット数を表す確率変数とする。X=xという条件下で、y個のパケットがサンプリングされる確率q(y|x)=Pr[Y=y|X=x]は以下の二項分布で与えられる。
Figure 0005532241
閾値フローを用いた閾値の導出
スライディングウィンドウ内の全ての検査ウィンドウ内のパケット数が
Figure 0005532241
である閾値フローを1−ε以上の確率で検出できるようにwを設定すると、全ての検出対象のフローを1−ε以上の確率で検出できることに注意する。
図8に示すように、スライディングウィンドウ内のi番目のベーシックウィンドウの母集団におけるパケット数を確率変数Xで、i番目の検査ウィンドウの母集団におけるパケット数を確率変数Zで表すと、ZはXを用いて次のように表される。
Figure 0005532241
さらに、図9のように、スライディングウィンドウ内のi番目のベーシックウィンドウにサンプリングされたパケット数を確率変数Yで、i番目の検査ウィンドウにサンプリングされたパケット数を確率変数Wで表すと、WはYを用いて次のように表される。
Figure 0005532241
ここで、閾値フローのベーシックウィンドウ毎の母集団におけるパケット数を考える。各検査ウィンドウは母集団においてz個のパケットで構成されているため、ベーシックウィンドウのパケット数Xは次の式を満たす。
Figure 0005532241
上式より、閾値フローの母集団におけるパケット数の分布は1サイクルがhmの周期的な分布となることがわかる。そのため、一つ目の検査ウィンドウにおけるパケット数の分布が決定すると、スライディングウィンドウ全体の分布が決定する。
ベクトルXをi番目の要素がXである、母集団のパケット数を表すkm次元ベクトルとし、閾値フローの母集団におけるパケット数を
Figure 0005532241
で表すことにする。また、閾値フローがサンプルパケット数の閾値wをもって検出される確率、すなわち全ての検査ウィンドウにおいてw個以上のパケットがサンプリングされる確率は、
Figure 0005532241
である。ここで、式(15)の周辺確率を考える。任意の一つの検査ウィンドウにおいて
Figure 0005532241
となる確率p(w|z)は、式(14)の二項分布を用いて次のように求まる。
Figure 0005532241
このとき、
Figure 0005532241
となる確率は閾値フローの分布
Figure 0005532241
とは独立であることに注意する。
議論を式(15)の結合確率に戻す。確率変数XおよびYはiに関して独立であるが、ZおよびWは前後hm−1番目まで共通のXおよびYを有し、従属関係にあるため、式(15)の確率を数値計算によって求めることは困難である。そこで、式(16)で与えられる周辺確率を用いて、結合確率の上下界値を導く。
閾値フロー検出確率の上下界値
問題を簡単にするためにh=1の場合、すなわち、スライディングウィンドウの大きさが検査ウィンドウのk倍になっている場合を考える。このとき式(15)で与えられる閾値フローの検出確率は、スライディングウィンドウ内の独立なk個の検査ウィンドウにおいてW≧wとなる確率(式(16))と、その事象が起こったという条件の下で他の検査ウィンドウでもW≧wとなる条件付き確率の積として、
Figure 0005532241
と変形される。ここで後半部分の条件付き確率は1で上から押さえることができるため、閾値フローの検出確率は、
Figure 0005532241
として上から押さえられる。ここでh≠1の場合にも成り立つように拡張すると、スライディングウィンドウ内の独立な検査ウィンドウの数は
Figure 0005532241
であるため、
Figure 0005532241
として閾値フローの検出確率の上界値が得られる。
次に、下界値について述べる。以下では、サンプリングされたパケット数を表す確率ベクトルをY=(Y,Y,...,Ykm)とする。このとき、
Figure 0005532241
が与えられたという条件下では、
Figure 0005532241
となるため、ベクトルY=(Y,Y,...,Ykm)は互いに独立な確率変数Y(i=1,2,...,km)から構成される確率ベクトルであることに注意する。ただし、
Figure 0005532241
Figure 0005532241
のi番目の要素を表す。よって、確率ベクトルYは正の関連(positively associated)をもつ。ここで正の関連をもつとは、任意の増加関数
Figure 0005532241
に対して
Figure 0005532241
すなわち、
Figure 0005532241
が成立することをいう。
次に、以下の指示関数を定義する。
Figure 0005532241
この指示関数は、wおよび
Figure 0005532241
が与えられたとき、あるY≧Y'なるベクトルYとベクトルY'に対して、
Figure 0005532241
を満たす。ただし、Y≧Y'は各ベクトルの成分YおよびY'に対して、
Figure 0005532241
が成り立つこと意味する。式(18)より、
Figure 0005532241
は非負の増加関数となっている。以上より、
Figure 0005532241
が成立する。
さらに、非負の増加関数の積は非負の増加関数となるので
Figure 0005532241
とすると、ベクトルYが正の関連をもつため、
Figure 0005532241
が成立する。この式の右辺に式(20)を代入し、式(19)を適用すると、
Figure 0005532241
を得る。よって、数学的帰納法により
Figure 0005532241
を得る。
式(21)の左辺はW=Y+Yj+1+...+Yj+hm−1と式(15)を用いると、
Figure 0005532241
となる。同様に式(21)の右辺は、式(16)を用いると、
Figure 0005532241
となる。式(23)と式(24)を式(21)に代入することにより、
Figure 0005532241
の下界を得る。
Figure 0005532241
閾値フローの分布による検出確率の変化
上記の式(17)と式(25)より、閾値フローの検出確率
Figure 0005532241
が次のように上下界値で押さえられることがわかった。
Figure 0005532241
しかし、上界値および下界値はkやmが大きい場合、あるいはp(w|z)が小さな値をとる場合等は両者の差が大きくなり、上下界値を用いて検出確率を推定することは困難になる。
そこで、閾値フローの母集団におけるパケット数の分布
Figure 0005532241
に注目する。閾値フローの中でも検出確率が最低になるようなパケット数の分布がわかれば、その分布を基に全ての検出対象フローを検出できるようなパケット数の閾値wを決定することができる。ここで、閾値フローのパケット数の分布は一つ目の検査ウィンドウ分の分布が決まると周期性から全ての分布が決定することに注意する。
複数の条件下での数値計算の結果、h=1の場合は、一つ目の検査ウィンドウにおいてz個のパケットをまず
Figure 0005532241
個ずつ均等にベーシックウィンドウに配置し、余剰が出た場合はそのパケットを検査ウィンドウの中央のベーシックウィンドウから一つずつ前後のベーシックウィンドウに外側に向けて交互に配置したときに、検出確率が最低となることが分かった。このときウィンドウ全体の対称性から、前後のウィンドウのどちらに先に配置するかは問題とならない。反対に、検査ウィンドウ内の一つのベーシックウィンドウにz個のパケットを全て配置した場合には最も検出確率は高く、その検出確率は上界値と等しくなるため、パケットを均等に配置するときに検出確率が最低になることは直感的な理解とも一致する。
しかし、h≧2の場合は、一つ目の検査ウィンドウを用いて配置されたベーシックウィンドウ毎のパケット数の、スライディングウィンドウ全体において配置される回数が異なってくるため、h=1と同じ議論は適用できず、検出確率が最低となる分布は見出すことができない。以降、h≧2の場合は検出確率が最低となる分布が見出されているものと仮定して説明する。
検出確率が最低となる閾値フローの分布をXとおく。このとき、先の上下界値を含め、次の式が成り立っていることに注意する。
Figure 0005532241
分布Xが得られた後、検出対象のフローを1−ε以上の確率で検出するためにサンプルにおけるパケット数の閾値wを次のように設定する。
Figure 0005532241
なお、P(w|X)はモンテカルロシミュレーションを用いた数値実験によって求める。
以上で制御パラメータの設定は完了し、上記の「検出の枠組み」で説明した検出手法で用いるパラメータは全て決定した。
多段階閾値の導入
上記のように、本実施例の検出手法を用いるためのパラメータの決定は完了した。しかし、実験結果が全ての検査ウィンドウでw以上サンプリングされたかどうかの2通りでの評価では、閾値よりもかなり大きいパケットレートの検出対象フローも、たまたま誤検出された検出対象外フローも全く区別がつかない。そこで、検出されたパケット数の情報をより有効活用することを考え、閾値w以外の複数の基準値ω(φ)(ω(φ)>w)を設ける。そして、検出されたフローの中で、全ての検査ウィンドウにおいてω(φ)個以上のパケットがサンプリングされているフローは区別することにする。ここで基準値ω(φ)は次のようにして定める。
Figure 0005532241
ただし、φは1−ε未満の値を用いる。この基準値の定め方には、パケットレートが閾値フローから僅かに低いだけの検出対象外のフローを誤って検出してしまう確率をφ以下にするという意図がある。複数のφに対するω(φ)を求め、検出されたフローの中でのフローの差別化を図る。
<性能評価>
次に、実際にネットワークで測定された2種類の異なるトレースデータに対して適当な規定パラメータの下でシミュレーション実験を行い、本実施例の検出手法の性能評価を行う。まず実験に用いるトレースデータについて述べる。続いて性能を評価するための指標について述べ、最後に実験の結果を示し、その考察を行う。
性能評価を行うトレースデータとして、CAIDAによって2008年2月20日の8:00から9:00の間に測定されたバックスキャッタのトラヒックを含むBackscatterトレースデータと、NLANRのPassive Measurement and Analysis (PMA) Projectによって2004年2月19日の10:00から10:05の間にバックボーンネットワークで測定され、現在はCAIDAによって管理されているCESCA−Iトレースデータを用いた。図10にトレースデータの概要を示す。
性能評価指標
本実施例の検出手法の性能を評価するため、検出率、誤検出率、最低誤検出パケット数の三つの指標について検証する。ここで次のような二つの指示関数を用意する。
Figure 0005532241
ここで、iはスライディングウィンドウの解析回数のカウンタ値を、flow_idはフローの識別子をそれぞれ表す。a(i,flow_id)=1は母集団において、i回目の解析時点でのflow_idのフローが、全ての検査ウィンドウで
Figure 0005532241
個以上パケットが存在する検出対象のフローであることを意味し、b(i,flow_id)=1はサンプリング実験において、i回目の解析時点でのflow_idのフローが、全ての検査ウィンドウでw個以上パケットがサンプリングされ、検出されたフローであることを意味する。
トレースデータの観測時間をT[sec]とおくと、iのとる値は、i=1,2,...,imaxとなる。ただし、
Figure 0005532241
である。また、i回目の解析時点における全てのflow_idの集合を
Figure 0005532241
とする。トラヒックに含まれるフローの集合は解析を行う度に異なるため、iの関数になっていることに注意する。
このとき、検出率を次式で定義する。
Figure 0005532241
a(i,flow_id)=1となるiとflow_idの組み合わせを検出対象点としたとき、式(26)は全ての検出対象点のうち本実施例の検出手法により検出できた点の割合を表す。
一方、誤検出率は次式で定義される。
Figure 0005532241
a(i,flow_id)=0となるiとflow_idの組み合わせを、検出対象外点としたとき、式(27)は全ての検出対象外点のうち本実施例の検出手法により誤検出された点の割合を表す。
最後に、最低誤検出パケット数については、誤検出された全てのフローの母集団における検査ウィンドウ内のパケット数を全て調査し、それらの中で最少パケット数で構成される検査ウィンドウを特定し、そのパケット数を評価する。
実験結果
予め与えられるパラメータである、R[packets/sec]、TSW[sec]、k、h、TD_max[sec]、TBW_max}[sec]、Δ[sec]、Δ[sec]、Cmax[packets/sec]、εはそれぞれ図11のように与えた。また、実験ではフローを、Backscatterトレースデータに対しては送信元IPアドレスが共通のパケット群と定義し、CESCA−Iトレースデータに対しては送信元IPアドレスが共通のパケット群と宛先IPアドレスが共通のパケット群の2種類で定義した。これは、Backscatterトレースデータには、DoS攻撃を受けたサーバから偽装された様々な宛先へ送られるトラヒックが含まれていることが分かっているため、そのトラヒックを検出することを目的としている。一方、CESCA−Iトレースデータには異常フローは含まれていないように思われる。そのため2種類の定義により純粋に高パケットレートフローの検出を試みた。
図11のパラメータを基に、上記の「制御パラメータと制約条件」で説明した制御パラメータ設定法を用いた。まず、上記の「誤検出確率の最小化問題」を解き、サンプリングレートfとベーシックウィンドウの大きさを定めるmが図12のように得られた。
図11のパラメータ群と図12のfおよびmを用いて、上記の「サンプルにおける閾値の導出」の手法を用いたモンテカルロシミュレーションによる数値実験により、検査ウィンドウにおけるパケット数の閾値wを決定した。なお数値実験では、各ベーシックウィンドウにパケットを均等に配置した閾値フローを母集団とし、複数の閾値の候補wに対して10回のサンプリング実験を行い、検出された回数を10で割ることによって得られた検出率が1−ε以上となるwの中で最大のものをwとして採用した。Backscatterトレースデータに対する数値実験の結果を図13に、R=800のときのCESCA−Iトレースデータに対する数値実験の結果を図14に、R=1000のときのCESCA−Iトレースデータに対する数値実験の結果を図15にそれぞれ示した。それぞれのグラフから、閾値フローの検出率が下界値と上界値でそれぞれ押さえられていることもわかる。また、数値計算によって求まる下界値と上界値を参考にすることによって、数値実験で試行するwの範囲を絞ることができる。さらに、wと同様に数値実験においてω(φ)の値を、φ=0.5,10−1,10−2,10−3,10−4,10−5,10−6について求めた結果をwと共に図16に示す。
以上の手順により得られた制御パラメータと予め与えられるパラメータ群を用いてサンプリング実験を行った。ここで検出対象のフローは、サンプリングレートをf=1、サンプルにおけるパケット数の閾値を
Figure 0005532241
とし、その他のパラメータは実験に用いたものと同じとした場合の検出結果を用いた。
100回のサンプリング実験における、三つの評価指標の平均値を95%信頼区間と共に図17に示す。図17より、検出対象はいずれの場合においても1−ε以上の割合で検出されていることがわかる。また、検出対象外フローのうち誤検出されたフローの割合も十分小さく抑えられている。さらに、誤検出されたフローの中で検査ウィンドウに含まれるパケット数が最少のものでも検出対象の半分程度であるため、本実施例の検出手法が誤検出するフローのパケットレートの範囲はそれほど広くないことがわかる。
<実施例の効果>
以上説明したように、本発明の実施例によれば、長さT秒の測定期間に含まれる長さt秒の任意の部分区間において、パケットレートがR[packets/sec]以上のフローを、ランダムパケットサンプリングによって得られた情報からオンラインで検出できる。
説明の便宜上、本発明の実施例に係る高パケットレートフロー検出装置は機能的なブロック図を用いて説明しているが、本発明の高パケットレートフロー検出装置は、ハードウェア、ソフトウェア又はそれらの組み合わせで実現されてもよい。例えば、高パケットレートフロー検出装置の各機能部がソフトウェアで実現され、コンピュータ内に実現されてもよい。また、2以上の実施例及び実施例の各構成要素が必要に応じて組み合わせて使用されてもよい。
以上、本発明の実施例について説明したが、本発明は、上記の実施例に限定されることなく、特許請求の範囲内において、種々の変更・応用が可能である。
101 パラメータfとmの設計部
102 パラメータwの設計部
103 パケット無作為抽出部
104 BW情報保存部
105 IW情報の更新部
106 IW情報保存部
107 高パケットレートフロー検出部

Claims (4)

  1. パケットレートが所定値以上のトラヒックのフローを検出する高パケットレートフロー検出装置であって、
    パケットを無作為に抽出するパケット無作為抽出部と、
    所定の測定期間のスライディングウィンドウを自然数k及びmを用いてkm個のベーシックウィンドウに分割し、更にh≦k且つkとは互いに素な自然数hを用いて、連続するhm個のベーシックウィンドウで構成される検査ウィンドウをスライディングウィンドウ内に(k−h)m+1個作成し検査ウィンドウ内に抽出されたパケット数をフロー毎に集計するパケット数測定部と、
    スライディングウィンドウ内の全ての検査ウィンドウにおいてパケット数が閾値 以上のフローを、パケットレートが所定値以上のトラヒックフローであるとして検出し、閾値w より大きい複数の基準値ω(φ)を設け、検出されたフローから、全ての検査ウィンドウにおいてパケット数がω(φ)以上のフローを区別する高パケットレートフロー検出部と、
    を有する高パケットレートフロー検出装置。
  2. パケットレートが所定値以上のトラヒックのフローを検出する高パケットレートフロー検出装置であって、
    パケットを無作為に抽出するパケット無作為抽出部と、
    所定の測定期間のスライディングウィンドウを自然数k及びmを用いてkm個のベーシックウィンドウに分割し、更にh≦k且つkとは互いに素な自然数hを用いて、連続するhm個のベーシックウィンドウで構成される検査ウィンドウをスライディングウィンドウ内に(k−h)m+1個作成し、検査ウィンドウ内に抽出されたパケット数をフロー毎に集計するパケット数測定部と、
    部分区間においてパケット数が閾値以上のフローを、パケットレートが所定値以上のトラヒックフローであるとして検出する高パケットレートフロー検出部と、
    測定対象の回線のパケットを抽出するサンプリングレートをfとし、スライディングウィンドウの大きさをT SW とし、ベーシックウィンドウの大きさをT BW とし、検出目標時間をT D_max とし、測定対象の回線の最大パケットレートをC max とし、1サンプルパケットあたりの処理時間をΔ とし、スライディングウィンドウの解析に必要なパケット数とは独立な処理時間をΔ とし、ベーシックウィンドウの幅の最大許容値をT BW_max とし、スライディングウィンドウの処理時間をτ=fC max BW Δ +Δ としたときに、T SW +T BW +τ≦T D_max 且つT BW ≦T BW_max を制約条件として、検出対象外のフローの誤検出率を最小化するfとmとを設計する第1のパラメータ設計部と、
    パケットレートが所定値以上のトラヒックのフローを見逃す許容誤差をεとしたときに、設計されたfとmとに基づいて、検出対象のフローの検出を見逃す確立をε以下に抑えるよう、検査ウィンドウにおけるパケット数の閾値w を設計する第2のパラメータ設計部と、
    を有する高パケットレートフロー検出装置。
  3. パケットレートが所定値以上のトラヒックのフローを検出する高パケットレートフロー検出装置における高パケットレートフロー検出方法であって、
    パケットを無作為に抽出するステップと、
    所定の測定期間のスライディングウィンドウを自然数k及びmを用いてkm個のベーシックウィンドウに分割し、更にh≦k且つkとは互いに素な自然数hを用いて、連続するhm個のベーシックウィンドウで構成される検査ウィンドウをスライディングウィンドウ内に(k−h)m+1個作成し検査ウィンドウ内に抽出されたパケット数をフロー毎に集計するステップと、
    スライディングウィンドウ内の全ての検査ウィンドウにおいてパケット数が閾値 以上のフローを、パケットレートが所定値以上のトラヒックフローであるとして検出し、閾値w より大きい複数の基準値ω(φ)を設け、検出されたフローから、全ての検査ウィンドウにおいてパケット数がω(φ)以上のフローを区別するステップと、
    を有する高パケットレートフロー検出方法。
  4. パケットレートが所定値以上のトラヒックのフローを検出する高パケットレートフロー検出装置における高パケットレートフロー検出方法であって、
    パケットを無作為に抽出するステップと、
    所定の測定期間のスライディングウィンドウを自然数k及びmを用いてkm個のベーシックウィンドウに分割し、更にh≦k且つkとは互いに素な自然数hを用いて、連続するhm個のベーシックウィンドウで構成される検査ウィンドウをスライディングウィンドウ内に(k−h)m+1個作成し、検査ウィンドウ内に抽出されたパケット数をフロー毎に集計するステップと、
    部分区間においてパケット数が閾値以上のフローを、パケットレートが所定値以上のトラヒックフローであるとして検出するステップと、
    測定対象の回線のパケットを抽出するサンプリングレートをfとし、スライディングウィンドウの大きさをT SW とし、ベーシックウィンドウの大きさをT BW とし、検出目標時間をT D_max とし、測定対象の回線の最大パケットレートをC max とし、1サンプルパケットあたりの処理時間をΔ とし、スライディングウィンドウの解析に必要なパケット数とは独立な処理時間をΔ とし、ベーシックウィンドウの幅の最大許容値をT BW_max とし、スライディングウィンドウの処理時間をτ=fC max BW Δ +Δ としたときに、T SW +T BW +τ≦T D_max 且つT BW ≦T BW_max を制約条件として、検出対象外のフローの誤検出率を最小化するfとmとを設計するステップと、
    パケットレートが所定値以上のトラヒックのフローを見逃す許容誤差をεとしたときに、設計されたfとmとに基づいて、検出対象のフローの検出を見逃す確立をε以下に抑えるよう、検査ウィンドウにおけるパケット数の閾値w を設計するステップと、
    を有する高パケットレートフロー検出方法。
JP2010160924A 2010-07-15 2010-07-15 高パケットレートフロー検出装置及び高パケットレートフロー検出方法 Expired - Fee Related JP5532241B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010160924A JP5532241B2 (ja) 2010-07-15 2010-07-15 高パケットレートフロー検出装置及び高パケットレートフロー検出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010160924A JP5532241B2 (ja) 2010-07-15 2010-07-15 高パケットレートフロー検出装置及び高パケットレートフロー検出方法

Publications (2)

Publication Number Publication Date
JP2012023629A JP2012023629A (ja) 2012-02-02
JP5532241B2 true JP5532241B2 (ja) 2014-06-25

Family

ID=45777493

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010160924A Expired - Fee Related JP5532241B2 (ja) 2010-07-15 2010-07-15 高パケットレートフロー検出装置及び高パケットレートフロー検出方法

Country Status (1)

Country Link
JP (1) JP5532241B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5991549A (ja) * 1982-11-17 1984-05-26 Nec Corp 命令バツフアへの命令語格納方式
JP6148323B2 (ja) 2012-03-22 2017-06-14 ロス アラモス ナショナル セキュリティー,リミテッド ライアビリティー カンパニーLos Alamos National Security,Llc 計算機ネットワークにおいて調整グループ攻撃を識別する異常検出
JP6012077B2 (ja) * 2013-06-03 2016-10-25 日本電信電話株式会社 マルチキャスト選択受信装置およびマルチキャスト選択受信方法
JP6470201B2 (ja) * 2016-02-16 2019-02-13 日本電信電話株式会社 攻撃検知装置、攻撃検知システムおよび攻撃検知方法
JP6792532B2 (ja) * 2017-09-01 2020-11-25 日本電信電話株式会社 異常検知装置および異常検知方法
JP7006295B2 (ja) * 2018-01-19 2022-01-24 富士通株式会社 攻撃検知装置および攻撃検知方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4898648B2 (ja) * 2007-12-19 2012-03-21 日本電信電話株式会社 高パケットレートフローのオンライン検出方法およびそのためのシステムならびにそのためのプログラム

Also Published As

Publication number Publication date
JP2012023629A (ja) 2012-02-02

Similar Documents

Publication Publication Date Title
JP5532241B2 (ja) 高パケットレートフロー検出装置及び高パケットレートフロー検出方法
RU2538292C1 (ru) Способ обнаружения компьютерных атак на сетевую компьютерную систему
McHugh Testing intrusion detection systems: a critique of the 1998 and 1999 darpa intrusion detection system evaluations as performed by lincoln laboratory
US10104124B2 (en) Analysis rule adjustment device, analysis rule adjustment system, analysis rule adjustment method, and analysis rule adjustment program
US8560624B1 (en) Method of detecting compromised computers in a network
CN106471778B (zh) 攻击检测装置和攻击检测方法
KR20110067264A (ko) 네트워크 이상징후 탐지장치 및 방법
JP2006314077A (ja) ネットワーク制御装置と制御システム並びに制御方法
CN107454039B (zh) 网络攻击检测系统、方法和计算机可读存储介质
US20220279008A1 (en) Network monitoring device, network monitoring method, and storage medium having recorded thereon network monitoring program
JP5286018B2 (ja) 情報処理装置、プログラム、および記録媒体
US20220311793A1 (en) Worm Detection Method and Network Device
KR100950079B1 (ko) 은닉마코프 모델을 이용한 확률적인 네트워크 이상징후탐지 장치 및 그 방법
Yasami et al. An arp-based anomaly detection algorithm using hidden markov model in enterprise networks
JP6393010B2 (ja) 解析方法、解析装置および解析プログラム
US8966638B2 (en) System, method, and computer program product for selecting a wireless network based on security information
Rohloff et al. Deterministic and stochastic models for the detection of random constant scanning worms
JP2005203992A (ja) ネットワーク異常検出装置、ネットワーク異常検出方法およびネットワーク異常検出プログラム
JP4209897B2 (ja) 大量フロー生成ホスト特定方法およびシステム
JP6589223B2 (ja) サービス推定装置、サービス推定方法、及びプログラム
JP4898648B2 (ja) 高パケットレートフローのオンライン検出方法およびそのためのシステムならびにそのためのプログラム
CN107786524B (zh) 高级持续性威胁的检测方法和装置
JP5300642B2 (ja) 通信網における頻出フロー検出方法と装置およびプログラム
JP2018098635A (ja) 通信予測装置、通信予測方法及び通信予測プログラム
KR101068945B1 (ko) 다중 관측윈도우 상에서의 네트워크 플로우 측정장치 및 그방법

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20121029

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20121029

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130121

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131022

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131218

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140408

R150 Certificate of patent or registration of utility model

Ref document number: 5532241

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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