(57)【特許請求の範囲】
【請求項１】
パケットのカウント機能を有する転送装置から、該転送装置を通過した監視対象フローのパケットのカウント数と、カウントされた前記監視対象フローの各パケットの通過時間とを対応付けたパケットカウント情報を取得する取得部と、
前記パケットカウント情報を基に前記監視対象フローのパケット間隔が一定時間間隔以下である状態が継続した継続期間を計測する計測部と、
前記計測部によって計測された監視対象フローの前記継続期間と所定の閾値との比較結果に基づいて前記監視対象フローに対する攻撃を検知する攻撃検知部と、
前記監視対象フローの継続期間の度数分布を一定期間作成し、該作成した度数分布を基に前記所定の閾値を設定する設定部と、
を有することを特徴とする攻撃検知装置。
【請求項２】
前記攻撃検知部は、前記計測部によって計測された監視対象フローの前記継続期間が、前記所定の閾値を超えている場合に、前記監視対象フローに対する攻撃があることを検知することを特徴とする請求項１に記載の攻撃検知装置。
【請求項３】
複数の転送装置を含むネットワークへの攻撃を検知する攻撃検知装置と、前記ネットワークへの攻撃を解析する攻撃解析装置と、を有する攻撃検知システムであって、
前記転送装置は、
当該転送装置を通過するパケットのうち監視対象フローのパケット数をカウントするカウント部と、
前記カウント部がカウントした前記監視対象フローのパケット数と、前記カウント部にカウントされた前記監視対象フローの各パケットの通過時間とを対応付けたパケットカウント情報を前記攻撃検知装置に送信する送信部と、
を有し、
前記攻撃検知装置は、
前記転送装置から、該転送装置を通過した前記監視対象フローのパケットのパケットカウント情報を取得する取得部と、
前記パケットカウント情報を基に前記監視対象フローのパケット間隔が一定時間間隔以下である状態が継続した継続期間を計測する計測部と、
前記計測部によって計測された監視対象フローの前記継続期間と所定の閾値との比較結果に基づいて前記監視対象フローに対する攻撃を検知する攻撃検知部と、
前記監視対象フローの継続期間の度数分布を一定期間作成し、該作成した度数分布を基に前記所定の閾値を設定する設定部と、
前記攻撃検知部が前記監視対象フローに対する攻撃を検知した場合には、該監視対象フローが攻撃被疑フローであることを示す攻撃検知情報を前記攻撃解析装置に通知する通知部と、
を有し、
前記攻撃解析装置は、
前記攻撃検知情報を受信した場合に、該攻撃検知情報に示された前記攻撃被疑フローの内容を解析する解析部
を有することを特徴とする攻撃検知システム。
【請求項４】
パケットのカウント機能を有する複数の転送装置を含むネットワークのトラフィックへの攻撃を検知する攻撃検知装置が行う攻撃検知方法であって、
前記攻撃検知装置が、前記転送装置から、該転送装置を通過した監視対象フローのパケットのカウント数と、カウントされた前記監視対象フローの各パケットの通過時間とを対応付けたパケットカウント情報を取得する取得工程と、
前記攻撃検知装置が、前記パケットカウント情報を基に前記監視対象フローのパケット間隔が一定時間間隔以下である状態が継続した継続期間を計測する計測工程と、
前記攻撃検知装置が、前記計測工程において計測された監視対象フローの前記継続期間と所定の閾値との比較結果に基づいて前記監視対象フローに対する攻撃を検知する攻撃検知工程と、
前記監視対象フローの継続期間の度数分布を一定期間作成し、該作成した度数分布を基に前記所定の閾値を設定する設定工程と、
を含んだことを特徴とする攻撃検知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、攻撃検知装置、攻撃検知システムおよび攻撃検知方法に関する。
【背景技術】
【０００２】
近年、サービスプロバイダが提供するネットワークを妨害するネットワーク攻撃が問題となっている。このネットワーク攻撃としては、たとえば、悪意のある攻撃者がネットワークに対して大量のパケットを送信することでネットワークに負荷をかけ、これによりネットワークサービス提供者のサービスを妨害するＤｏＳ攻撃（Denial  of  Service）やＤＤｏＳ攻撃（Distributed  Denial  of  Service）が知られている。
【０００３】
これらの攻撃からネットワークに接続された通信機器（サーバ装置など）を防御するために、種々の攻撃検知方法が提案されている。たとえば、攻撃を仕掛ける通信端末とサーバ装置とを結ぶ通信経路上に、パケットのカウント機能を有する転送装置を設け、この転送装置が、特定のフローで送信されたパケット数をカウントし、カウント数が所定の閾値以上である場合に攻撃検知をおこなう技術が提案されている（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】ISPにおけるDoS/DDoS攻撃の検知・対策技術、［online］、［平成２８年１月２９日検索］、インターネット＜ＵＲＬ：https://www.nic.ad.jp/ja/materials/iw/2013/proceedings/s2/s2-nishizuka.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、Http  Get  Flooding（HyperText  Transfer  Protocol）といったアプリケーションレイヤを対象とした攻撃は、低通信量でも攻撃対象を攻撃することが可能である。しかしながら，非特許文献１に開示されている技術従来では、パケットカウント数といったトラフィック量で攻撃検知を行うため、Http  Get  Floodingといったアプリケーションレイヤを対象とする攻撃であって、通信が継続して発生するものの低通信量で発生する攻撃に対しては、検知が難しいことが問題であった。なお、Http  Get  Flooding攻撃は、ＨＴＴＰのＧＥＴコマンドを多数回にわたって大量に送ることによって、対象サーバのリソースを消費させ、対象サーバの正常な運用を妨害する攻撃である。
【０００６】
本発明は、上記に鑑みてなされたものであって、フローのパケットカウント数を閾値と比較するだけでは検知が難しいネットワーク攻撃を適切に検知することができる攻撃検知装置、攻撃検知システムおよび攻撃検知方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明に係る攻撃検知装置は、パケットのカウント機能を有する転送装置から、該転送装置を通過した監視対象フローのパケットのカウント数と、カウントされた前記監視対象フローの各パケットの通過時間とを対応付けたパケットカウント情報を取得する取得部と、前記パケットカウント情報を基に前記監視対象フローのパケット間隔が一定時間間隔以下である状態が継続した継続期間を計測する計測部と、前記計測部によって計測された監視対象フローの前記継続期間と所定の閾値との比較結果に基づいて前記監視対象フローに対する攻撃を検知する攻撃検知部と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、フローのパケットカウント数を閾値と比較するだけでは検知が難しいネットワーク攻撃を適切に検知することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態１に係る攻撃検知システムの構成の一例を模式的に示す図である。
【図２】図２は、図１に示す転送装置の構成の一例を示すブロック図である。
【図３】図３は、図２に示す記憶部に記憶されるフローテーブルの一例を示す図である。
【図４】図４は、図１に示すサーバ装置の構成の一例を示すブロック図である。
【図５】図５は、通常時における監視対象フローのパケット到達タイミングを示す図である。
【図６】図６は、攻撃時における監視対象フローのパケット到達タイミングを示す図である。
【図７】図７は、図１に示すセキュリティ装置の構成の一例を示すブロック図である。
【図８】図８は、図７に示す記憶部が記憶する攻撃解析用のテーブルの一例を示す図である。
【図９】図９は、図１に示す攻撃検知システムによる攻撃検知処理の流れを説明するシーケンス図である。
【図１０】図１０は、プログラムが実行されることにより、攻撃検知システムが実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【００１１】
［実施の形態１］
実施の形態１に係る攻撃検知システムについて、攻撃検知システム全体の概略構成、攻撃検知システムを構成する各装置の概略構成、攻撃検知システムにおける処理の流れ及び具体例を説明する。なお、以降で説明する転送装置の台数等は、あくまで例示であり、これに限定されるものではない。
【００１２】
［攻撃検知システムの構成］
この実施の形態１では、監視対象フローのパケットカウント数が所定の閾値以上である場合に該監視対象フローに攻撃があると検知するのではなく、監視対象フローのパケット間隔が一定時間間隔以下である状態(バースト状態)が連続して続く時間が所定の閾値を超えて継続した場合に該監視対象フローにHttp  Get  Flooding攻撃等の攻撃があると検知する。
【００１３】
まず、図１を参照して、実施の形態１に係る攻撃検知システムの構成について説明する。図１は、実施の形態１に係る攻撃検知システムの構成の一例を説明するための図である。
【００１４】
図１に示すように、実施の形態１に係る攻撃検知システムは、複数の転送装置２Ａ〜２Ｄを含むネットワーク１０に対して、該ネットワーク１０を流れるトラフィックを監視するとともにネットワーク１０を流れる攻撃を検知するサーバ装置３（攻撃検知装置）と、ネットワーク１０を流れる攻撃があった場合に該攻撃を解析するセキュリティ装置４（攻撃解析装置）とを有する。図１の例では、転送装置２Ｃの接続先にＷｅｂサーバ５が位置する。また、図１の例では、転送装置２Ａ，２Ｄは、インターネット等を介して、外部の端末６Ａ，６Ｂと接続する。また、図１では、ネットワーク１０内を流れるトラフィックフローとして、フローＡ，Ｂ，Ｃを例示している。
【００１５】
転送装置２Ａ〜２Ｄは、ネットワーク１０の通信経路上に設けられたパケット転送装置である。転送装置２Ａ〜２Ｄは、それぞれ、転送先の装置の識別情報と転送先の装置のアドレスとをそれぞれ対応付けた転送テーブルに従って、到着したパケットを転送先に転送する。
【００１６】
また、転送装置２Ａ〜２Ｄは、転送装置２Ａ〜２Ｄをそれぞれ通過するパケットのフローを判別する機能と、所定の監視対象フローのパケット数をフローごとにカウントするカウント機能とを有する。そして、転送装置２Ａ〜２Ｄは、カウントした監視対象フローのパケット数と、該監視対象フローの各パケットの通過時間とを対応付けたパケットカウント情報をサーバ装置３に送信する機能を有する。本実施の形態１では、ネットワーク１０におけるフローＡ，Ｂ，Ｃのうち、フローＡを監視対象フローとして説明する。転送装置２は、仮想スイッチ、仮想ソフトウェアスイッチ、物理スイッチ或いはゲートウェイ等である。
【００１７】
サーバ装置３は、例えば、各装置との間で通信を行い、各種サービスを提供する。また、サーバ装置３は、ネットワーク１０のトラフィックを監視し、監視状況に基づいてネットワーク１０を流れる攻撃を検知する。本実施の形態１では、サーバ装置３は、転送装置２Ａ〜２Ｃから送信されたパケットカウント情報を基にネットワーク１０を流れる攻撃を検知する。
【００１８】
具体的には、サーバ装置３は、転送装置２Ａ〜２Ｃから送信されたパケットカウント情報を基に監視対象フローのバースト継続期間を計測し、該計測した監視対象フローのバースト状態の継続期間（バースト継続期間）と所定の閾値との比較結果に基づいて監視対象フローに対する攻撃を検知する。バースト状態とは、監視対象フローのパケット間隔が一定時間間隔以下である状態であり、バースト継続期間とは、このバースト状態が継続した継続期間のことをいう。
【００１９】
セキュリティ装置４は、サーバ装置３がネットワーク１０を流れる攻撃を検知した場合、サーバ装置３が攻撃を検知した監視対象フローを攻撃被疑フローとして、攻撃被疑フローの内容を解析する。例えば、セキュリティ装置４は、転送装置2Ａ〜２Ｄから論理的に接続できる場所に設けられ、転送装置２Ａ〜２Ｄを介して、サーバ装置３と通信可能に接続される。或いは、セキュリティ装置４は、ネットワーク１０の外部に設けられ、各種通信装置を介してサーバ装置３と通信可能に接続される。
【００２０】
Ｗｅｂサーバ５は、各装置との間で通信を行い、各種サービスを提供する。例えば、Ｗｅｂサーバ５は、転送装置２Ａ〜２Ｄのいずれかを経由して、端末６Ａ或いは端末６ＢからＨＴＴＰリクエストを受信した場合に、ＨＴＭＬ（HyperText  Markup  Language）ファイル等をリクエスト元の端末に返信する。
【００２１】
端末６Ａ，６Ｂは、転送装置２Ａ〜２Ｄやインターネットを介して、Ｗｅｂサーバ５などの他の端末と通信を行う通信装置である。例えば、ＰＣ（Personal  Computer）やＰＤＡ（Personal  Digital  Assistant）等である。図１に示す例では、端末６Ａ，６Ｂは、転送装置２Ａ〜２Ｄと通信可能に接続される。
【００２２】
このように、本実施の形態１に係る攻撃検知システムは、監視対象フローのパケットカウント情報を用いて計測した監視対象フローのバースト継続期間に基づいて、監視対象フローに対する攻撃を検知する。まず、パケットカウント情報を生成する転送装置２Ａ〜２Ｄの構成について説明する。
【００２３】
［転送装置の構成］
図２は、図１に示す転送装置２Ａの構成の一例を示すブロック図である。図２に示すように、転送装置２Ａは、記憶部２１、通信部２２及び制御部２３を有する。なお、他の転送装置２Ｂ〜２Ｄも転送装置２Ａと同様の構成を有する。
【００２４】
記憶部２１は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置によって実現され、転送装置２を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。記憶部２１は、転送先の装置の識別情報と転送先の装置のアドレスとをそれぞれ対応付けた転送テーブルを記憶する。また、記憶部２１は、パケット数のカウント対象となる監視対象フローをエントリしたエントリテーブル２１１を記憶する。この監視対象フローのエントリは、他の装置（例えば、サーバ装置３）からの通知に従い行われる。また、監視対象フローのエントリ方法として、転送装置に静的に設定する方法や、通過するフロー情報から動的に設定する方法等が考えられる。
【００２５】
図３は、図２に示すエントリテーブル２１１のデータ構成の一例を示す図である。エントリテーブル２１１は、図３に示すテーブルＴ１のように、各エントリされたフローＡ〜Ｃのそれぞれに、パケットカウント開始時間、パケットカウント終了時間、及び、カウントしたパケット数の記録欄が設けられている。また、各フローＡ〜Ｃを識別するための識別情報として、送信元ＩＰ（src  IP）アドレス、宛先ＩＰ（dst  IP）アドレス、宛先ポート（src  port）、送信ポート（dst  port）及びプロトコル（protocol）の組み合わせがフローＡ〜Ｃごとに示されている。
【００２６】
例えば、src  IP＝端末６Ａ、dst  IP＝Ｗｅｂサーバ５、src  port＝500001、dst  port＝80、及び、protocol＝tcpであるフローが、フローＡとして判別できる。また、src  IP＝端末６Ｂ、dst  IP＝Ｗｅｂサーバ５、src  port＝500002、dst  port＝8080、及び、protocol＝tcpであるフローが、フローＢであることが判別できる。また、このフローＡについては、「2016.02.16  09:00:00」から「2016.02.16  09:00:10」までの１０秒間にパケットのカウントを実行し、カウントしたパケット数が「1000」であることが示されている。
【００２７】
通信部２２は、ネットワークを介して接続された装置と各種情報を送受信する通信インターフェースである。例えば、通信部２２は、他の装置から送信されたパケットを受信したり、転送対象のパケットを転送先に送信したりする。
【００２８】
制御部２３は、各種の処理手順などを規定したプログラム及び所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。例えば、制御部２３は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路である。制御部２３は、フロー判別部２３１、パケットカウント部２３２（カウント部）、タイマ部２３３、パケットカウント情報生成部２３４及び転送制御部２３５を有する。
【００２９】
フロー判別部２３１は、転送装置２Ａを通過するパケットのうち所定の監視対象フローのパケットを判別し、判別した監視対象フローのパケットをパケットカウント部２３２に出力する。フロー判別部２３１は、通信部２２が受信したパケットのうち、送信元のＩＰアドレス及び宛先のＩＰアドレスの組み合わせが、エントリテーブル２１１に示された監視対象フローに対応する送信元のＩＰアドレス及び宛先のＩＰアドレスの組み合わせに一致したパケットを、監視対象フローのパケットとして判別する。或いは、フロー判別部２３１は、通信部２２が受信したパケットのうち、ポート番号の組み合わせが、エントリテーブル２１１に示された監視対象フローに対応するポート番号の組み合わせに一致したパケットを、監視対象フローのパケットとして判別する。
【００３０】
パケットカウント部２３２は、カウンターを有し、転送装置２Ａを通過するパケットのうち所定の監視対象フローのパケットをカウントする。パケットカウント部２３２は、フロー判別部２３１から出力された監視対象フローのパケットを受信すると、カウンターのカウント値に１を加算する。そして、パケットカウント部２３２は、パケットをカウントすると、エントリテーブル２１１にカウント数を保存し、定期的にエントリテーブル２１１のパケットカウント数をサーバ装置３にエクスポートする（図１の矢印Ｙ１参照）。なお、パケットカウント部２３２は、パケットカウント情報生成部２３４へのカウント数の出力後、カウンターをリセットする。
【００３１】
タイマ部２３３は、エントリテーブル２１１に時刻情報を保存する。
【００３２】
パケットカウント情報生成部２３４は、パケットカウント部２３２がカウントした監視対象フローのパケット数と、タイマ部２３３による通過時間情報とを受信し、パケットカウント部２３２がカウントした監視対象フローのパケット数と、パケットカウント部２３２にカウントされた監視対象フローの各パケットの通過時間とを対応付けたパケットカウント情報を生成する。
【００３３】
転送制御部２３５は、通信部２２におけるパケットの転送処理を制御する。転送制御部２３５は、サーバ装置３で攻撃被疑フローを決定した後に、サーバ装置３から転送装置２Ａに対して転送指示が送信される（図１の矢印Ｙ２参照）と、攻撃被疑フローをセキュリティ装置４に転送する（図１の矢印Ｙ３参照）。
【００３４】
サーバ装置３は、このパケットカウント情報を用いて、監視対象フローに対する攻撃を検知する。さらに、サーバ装置３は、攻撃のない時間帯のパケットカウント情報を用いて、攻撃検知のために使用する閾値、すなわち、バースト継続期間との比較対象の閾値を設定する。次に、サーバ装置３の構成について説明する。
【００３５】
［サーバ装置の構成］
図４は、図１に示すサーバ装置３の構成の一例を示すブロック図である。図４に示すように、サーバ装置３は、記憶部３１、通信部３２及び制御部３３を有する。
【００３６】
記憶部３１は、ＲＡＭ、フラッシュメモリ等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置によって実現され、サーバ装置３を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。記憶部３１は、転送装置２Ａ〜２Ｄから送信された監視対象フローのパケットカウント情報や、攻撃検知に用いられるバースト継続期間に関する閾値を記憶する。
【００３７】
通信部３２は、ネットワークを介して接続された装置と各種情報を送受信する通信インターフェースである。
【００３８】
制御部３３は、ＣＰＵやＭＰＵなどの電子回路であり、各種の処理手順などを規定したプログラムに従って種々の処理を実行する。制御部３３は、パケットカウント情報取得部３３１、バースト継続期間計測部３３２、攻撃検知部３３３、通信制御部３３４及び閾値設定部３３５を有する。
【００３９】
パケットカウント情報取得部３３１は、転送装置２Ａ〜２Ｄから、該転送装置２Ａ〜２Ｄを通過した監視対象フローのパケットカウント情報を取得する。具体的には、パケットカウント情報取得部３３１は、通信部３２が受信したパケットから、攻撃検知対象期間に対応するパケットカウント情報を抽出する。或いは、パケットカウント情報取得部３３１は、記憶部３１に記憶されたパケットカウント情報から、攻撃検知対象期間に対応するパケットカウント情報を読み出す。
【００４０】
バースト継続期間計測部３３２は、パケットカウント情報取得部３３１が取得したパケットカウント情報を基に、監視対象フローのバースト継続期間を計測する。
【００４１】
具体的には、バースト継続期間計測部３３２は、サーバ装置３がパケットカウント情報を取得した時間、監視対象フローのパケットカウント情報におけるパケットカウント数、及び、各パケットの通過時間を用いて、パケット間の時間間隔をそれぞれ計測し、計測結果から、監視対象フローのパケット間隔が一定時間間隔以下であるバースト状態か否かを判断する。すなわち、バースト継続期間計測部３３２は、監視対象フローのパケット間隔が一定時間間隔以下である場合には、この監視対象フローがバースト状態であると判断し、監視対象フローのパケット間隔が一定時間間隔を超えている場合には、この監視対象フローがバースト状態でないと判断する。
【００４２】
続いて、バースト継続期間計測部３３２は、この監視対象フローがバースト状態であると判断した場合には、該バースト状態が継続するバースト継続期間を計測する。なお、バースト状態の可否を判断するための一定の時間間隔は、予め設定されており、サーバ装置３等から通知され、記憶部３１に記憶されたものである。
【００４３】
図５は、通常時における監視対象フローのパケット到達タイミングを示す図である。図６は、攻撃時における監視対象フローのパケット到達タイミングを示す図である。ここで、サーバ装置３では、転送装置２Ａ〜２Ｄに流れるフローの到着タイミングを正確に把握することができないため、転送装置２Ａ〜２Ｄからサーバ装置３に送出されるパケットカウント情報を基に、サーバ装置２で転送装置２Ａ〜２Ｄに流れるフローの到着タイミングを推測する。
【００４４】
具体的には、ある監視対象フローに着目した際、サーバ装置３では、パケット到着を認識した時間スロットに到着フラグを立てて、フラグが連続して立つ時間をバースト継続時間と推測する方法が考えられる。そこで、バースト継続期間計測部３３２は、フラグが連続して立つ時間をバースト継続時間として判断する。
【００４５】
例えば、バースト継続期間計測部３３２は、図５に示す時間ｔ１及び時間ｔ２にフラグが立てられたときには、フラグ間の時間間隔Ｄ０が時間間隔Ｄｔより大きいため、時間ｔ１及び時間ｔ２の間は、バースト状態でないと判断する（図５の矢印Ｙ１０参照）。
【００４６】
また、バースト継続期間計測部３３２は、図５に示す時間ｔ３〜時間ｔ７にそれぞれフラグが立てられたときには、フラグ間の各時間間隔Ｄ１が、所定の時間間隔Ｄｔよりも小さいため、時間ｔ３〜時間ｔ７の間は、バースト状態であると判断する（図５の矢印Ｙ１１参照）。この場合には、バースト継続期間計測部３３２は、このバースト状態が継続する時間ｔ３〜時間ｔ７までのバースト継続期間Ｐ１を計測して、後段の攻撃検知部３３３に計測結果を出力する。
【００４７】
また、バースト継続期間計測部３３２は、図６に示す時間ｔ１０〜時間ｔ２７にそれぞれフラグが立てられたときには、フラグ間の各時間間隔Ｄ２が時間間隔Ｄｔより小さいため、時間ｔ１０〜時間ｔ２７の間は、バースト状態であると判断する（図６の矢印Ｙ１３参照）。この場合には、バースト継続期間計測部３３２は、このバースト状態が継続する時間ｔ１０〜時間ｔ２７までのバースト継続期間Ｐ２を計測して、後段の攻撃検知部３３３に計測結果を出力する。
【００４８】
攻撃検知部３３３は、バースト継続期間計測部３３２によって計測された監視対象フローのバースト継続期間と所定の閾値との比較結果に基づいて監視対象フローに対する攻撃を検知する。すなわち、攻撃検知部３３３は、バースト継続期間計測部３３２によって計測された監視対象フローのバースト継続期間が所定の閾値を超えている場合に、監視対象フローに対する攻撃があることを検知し、該監視対象フローが攻撃被疑フローであると判断する。
【００４９】
具体的に、図５及び図６に示すバースト継続期間Ｐ１，Ｐ２を例に説明する。ここで、所定の閾値をＰｔとした場合、図５に示すバースト継続期間Ｐ１については、閾値Ｐｔよりも短いため、攻撃検知部３３３は、バースト継続期間Ｐ１において、監視対象フローＡに対する攻撃はないと判断する（図５の矢印Ｙ１２参照）。これに対し、バースト継続期間Ｐ２については、閾値Ｐｔよりも長いため、攻撃検知部３３３は、バースト継続期間Ｐ２において監視対象フローＡに対する攻撃があると検知する（図６の矢印Ｙ１４参照）。
【００５０】
通信制御部３３４は、通信部３２における通信処理を制御し、他の装置との間で各種情報を通信する。そして、通信制御部３３４は、攻撃検知部３３３が監視対象フローに対する攻撃を検知した場合には、該監視対象フローを攻撃被疑フローとして、通信部３２を介して、転送装置２Ａ〜２Ｄ及びセキュリティ装置４に通知する。言い換えると、通信制御部３３４は、攻撃を検知した監視対象フローが攻撃被疑フローであることを示す攻撃フロー情報（攻撃検知情報）をセキュリティ装置４に通知する。
【００５１】
具体的には、通信制御部３３４は、監視対象フローＡに対して攻撃が検知された場合には、監視対象フローＡを攻撃被疑フローとしてコピー、ステアリングし、攻撃被疑フローＡを、セキュリティ装置４を経由するフローＡ´（図１参照）に変更するよう転送装置２Ａ〜２Ｄ及びセキュリティ装置４に通知する。なお、サーバ装置３は、転送装置２Ｂを介してセキュリティ装置４と通信する場合には、転送装置２Ｂに攻撃被疑フローを送信し、これによって、転送装置２Ｂがセキュリティ装置４にＵ−Ｐｌａｎｅのトラフィックを転送する。
【００５２】
閾値設定部３３５は、監視対象フローごとに、該監視対象フローのバースト継続期間の閾値を設定する。
【００５３】
具体的には、閾値設定部３３５は、閾値の設定対象である監視対象フローのパケットカウント情報の中から、攻撃のない時間帯のパケットカウント情報を収集して、該監視対象フローのバースト継続期間を計測する。例えば、閾値設定部３３５は、攻撃のない時間帯に、パケットカウント情報取得部３３１を介して、監視対象フローのパケットカウント情報の収集を行ってもよいし、記憶部３１に記憶された監視対象フローのパケットカウント情報であって攻撃のない時間帯に対応する情報を読み出すことによってパケットカウント情報の収集を行ってもよい。閾値設定部３３５は、この処理を複数回繰り返すことによって、閾値の設定対象である監視対象フローのバースト継続期間の度数分布を一定期間作成する。
【００５４】
続いて、閾値設定部３３５は、該作成した監視対象フローのバースト継続期間の度数分布を基に、バースト継続期間の所定のα（例えば、９９．９）パーセンタイル値を、該監視対象フローにおける閾値として設定する。閾値設定部３３５は、上記の閾値設定までの処理を、サーバ装置３における攻撃検知処理を開始する前に行う他、攻撃のない時間帯に適宜行って閾値を更新してもよい。閾値設定部３３５は、設定した閾値を、対応する監視対象フローの識別情報に対応付けて記憶部３１に記憶する。
【００５５】
［セキュリティ装置の構成］
次に、セキュリティ装置４の構成について説明する。図７は、図１に示すセキュリティ装置４の構成の一例を示すブロック図である。図７に示すように、セキュリティ装置４は、記憶部４１、通信部４２及び制御部４３を有する。
【００５６】
記憶部４１は、ＲＡＭ、フラッシュメモリ等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置によって実現され、セキュリティ装置４を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。記憶部４１は、攻撃解析のために用いるテーブル４１１を記憶する。
【００５７】
図８は、記憶部４１が記憶する攻撃解析用のテーブル４１１の一例を示す図である。図８のテーブルＴ２は、ＤＤｏｓ攻撃を解析するためのものであり、攻撃内容と、攻撃のトラフィックパターンとを対応付けている。例えば、テーブルＴ２には、大量のクエリーなどによるＤＮＳの攻撃トラフィックが検出できる場合には、ＤＮＳ（Domain  Name  System）サーバが攻撃の標的となっていることが示されている。
【００５８】
通信部４２は、ネットワークを介して接続された装置と各種情報を送受信する通信インターフェースである。
【００５９】
制御部４３は、ＲＡＭ、フラッシュメモリ等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置によって実現され、セキュリティ装置４を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。制御部４３は、攻撃解析部４３１を有する。
【００６０】
攻撃解析部４３１は、サーバ装置３から攻撃検知情報を受信した場合に、該攻撃検知情報に示された攻撃被疑フローの内容を解析する。攻撃解析部４３１は、攻撃検知情報である制御信号にしたがって、攻撃検知情報に示された攻撃被疑フローをコピーし、攻撃被疑フローを、セキュリティ装置４を経由するフローに変更するよう処理を行う。
【００６１】
例えば、攻撃解析部４３１は、攻撃検知情報で示された攻撃被疑フローが、図１に示す、端末６Ａから、転送装置２Ａ，２Ｂ，２Ｃを経由して、Ｗｅｂサーバ５に到達するフローＡである場合には、このフローＡを、セキュリティ装置４を経由するフローＡ´（図１参照）に変更する。すなわち、セキュリティ装置４は、転送装置２Ｂを制御して、攻撃被疑フローのパケットの全てを、セキュリティ装置４に転送させる。つまり、転送装置２Ｂで攻撃被疑フローＡ自体をセキュリティ装置４に引き込んでいる。そして、セキュリティ装置４は、このように転送させた攻撃被疑フローのパケットから、攻撃被疑フローのトラフィックパターンを検出し、検出したトラフィックパターンと、テーブルＴ２に示されたトラフィックパターンとを比較して、攻撃内容を解析する。さらに、セキュリティ装置４は、該解析結果に基づいて攻撃対処を行う。
【００６２】
［攻撃検知処理の流れ］
図９は、図１に示す攻撃検知システムによる攻撃検知処理の流れを説明するシーケンス図である。図９では、説明の簡易化のために、ある一つのフローを監視対象フローとした場合の処理手順について示す。
【００６３】
図９に示すように、転送装置２Ａは、パケットを受信すると（ステップＳ１）、所定の監視対象フローのパケットを判別し（ステップＳ２）、判別した監視対象フローのパケットをカウントする（ステップＳ３）。ステップＳ１〜ステップＳ３の処理は繰り返し行われている。転送装置２Ａは、監視対象フローのパケットのカウント数に、カウントされた監視対象フローの各パケットの通過時間情報を付与して（ステップＳ４）、パケットカウント情報を生成し、生成したパケットカウント情報をサーバ装置３に送信する（ステップＳ５）。なお、これに伴い、転送装置２Ａは、エントリテーブル２１１に保存された監視対象フローのカウンタリセットを行う。
【００６４】
サーバ装置３は、受信したパケットカウント情報を用いて、監視対象フローのバースト継続期間を計測する（ステップＳ６）。サーバ装置３は、計測された監視対象フローのバースト継続期間が閾値を超えているか否かを判断する（ステップＳ７）。サーバ装置３は、計測された監視対象フローのバースト継続期間が閾値以下であると判断した場合（ステップＳ７：Ｎｏ）、ステップＳ６に進み、新たに受信したパケットカウント情報を用いて、監視対象フローのバースト継続期間を計測する。
【００６５】
これに対し、サーバ装置３は、計測された監視対象フローのバースト継続期間が閾値を超えていると判断した場合（ステップＳ７：Ｙｅｓ）、監視対象フローに対する攻撃を検知し（ステップＳ８）、該監視対象フローが攻撃被疑フローであることを示す攻撃被疑フロー情報を転送装置２Ｂに送信する（ステップＳ９）。転送装置２Ｂは、この攻撃被疑フロー情報をセキュリティ装置４に転送する（ステップＳ１０）。なお、転送装置２Ｂで攻撃被疑フロー自体をセキュリティ装置４に引き込んでいる。
【００６６】
セキュリティ装置４は、受信した攻撃検知情報に示された攻撃被疑フローの内容を解析して（ステップＳ１１）、攻撃の内容を解析し、該解析結果に基づいて攻撃対処を行う。
【００６７】
［実施の形態１の効果］
このように、本実施の形態１に係る攻撃検知システムでは、監視対象フローのパケットカウント情報を用いて計測した監視対象フローのバースト継続期間に基づいて監視対象フローに対する攻撃を検知する。言い換えると、本実施の形態１では、監視対象フローのパケットカウント数が所定の閾値以上である場合に該監視対象フローに攻撃があると検知するのではなく、監視対象フローのバースト状態が所定の閾値以上継続した場合に該監視対象フローに攻撃があると検知する。
【００６８】
したがって、本実施の形態１によれば、フローのパケットカウント数を閾値と比較する従来の技術では検知が難しかった、低い通信量でも脅威となる攻撃が行われた場合にも、攻撃を適切に検知することができる。例えば、通信が継続して発生するものの低通信量で発生する攻撃であるHttp  Get  Flooding、HTTP  POST  Flooding、HTTP  HEAD  Flooding、SIP  INVITE  Flooding、DNS  Water  Torture等のアプリケーションレイヤのFlooding攻撃等も検知可能であると考えられる。
【００６９】
［他の実施の形態］
［システム構成等］
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７０】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００７１】
［プログラム］
図１０は、プログラムが実行されることにより、攻撃検知システムのサーバ装置３が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００７２】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００７３】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、サーバ装置３の各処理を規定するプログラムは、コンピュータ１０００により実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、サーバ装置３における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【００７４】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００７５】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ、ＷＡＮ等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【００７６】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【００７７】
２Ａ〜２Ｄ  転送装置
３  サーバ装置
４  セキュリティ装置
５  Ｗｅｂサーバ
６Ａ，６Ｂ  端末
１０  ネットワーク
２１，３１，４１  記憶部
２２，３２，４２  通信部
２３，３３，４３  制御部
２１１  エントリテーブル
２３１  フロー判別部
２３２  パケットカウント部
２３３  タイマ部
２３４  パケットカウント情報生成部
２３５  転送制御部
３３１  パケットカウント情報取得部
３３２  バースト継続期間計測部
３３３  攻撃検知部
３３４  通信制御部
３３５  閾値設定部
４１１  解析用テーブル
４３１  攻撃解析部
【図１】
0006470201.tif 000002
【図２】
0006470201.tif 000003
【図３】
0006470201.tif 000004
【図４】
0006470201.tif 000005
【図５】
0006470201.tif 000006
【図６】
0006470201.tif 000007
【図７】
0006470201.tif 000008
【図８】
0006470201.tif 000009
【図９】
0006470201.tif 000010
【図１０】
0006470201.tif 000011