(57)【特許請求の範囲】
【請求項１】
一群のＩＰパケットに対する情報であるフロー情報を受信すると、該フロー情報の識別子毎に集計対象量を集計し、前記集計対象量の集計結果を該集計結果に基づいてソートし、ソート後の前記集計結果のグラフ形状を求める計算手段と、
所定の基準グラフの形状と、前記計算手段によって求められたグラフ形状とを比較するグラフ形状比較手段と、
前記グラフ形状比較手段における比較結果に基づいて、前記集計対象量の異常の有無を判定する異常判定手段と、
を有することを特徴とする通信監視システム。
【請求項２】
前記グラフ形状比較手段は、前記基準グラフの形状と、前記計算手段によって求められたグラフ形状との類似度を計算するものであり、
前記異常判定手段は、前記類似度と、所定の閾値との大小関係を比較することによって前記集計対象量の異常の有無を判定するものである
ことを特徴とする請求項１に記載の通信監視システム。
【請求項３】
前記計算手段は、特定の送信元ＩＰアドレスと特定の送信元ポート番号とを有するＩＰパケットに係るフロー情報に対して、前記識別子を送信先ＩＰアドレスとして、集計を行うものである
ことを特徴とする請求項１または２に記載の通信監視システム。
【請求項４】
前記集計対象量は、前記フロー情報に示されたフローのバイト数、前記フローのパケット数、または前記フローの流れた時間のうち何れかである
ことを特徴とする請求項１ないし３の何れか一項に記載の通信監視システム。
【請求項５】
前記グラフ形状比較手段は、前記類似度として、コサイン類似度またはマハラノビス距離を計算するものである
ことを特徴とする請求項２に記載の通信監視システム。
【請求項６】
一群のＩＰパケットに対する情報であるフロー情報を受信する過程と、
該フロー情報の識別子毎に集計対象量を集計し、前記集計対象量の集計結果を該集計結果に基づいてソートし、ソート後の前記集計結果のグラフ形状を求める過程と、
所定の基準グラフの形状と、前記集計結果のグラフ形状とを比較する過程と、
前記基準グラフの形状と前記集計結果のグラフ形状との比較結果に基づいて、前記集計対象量の異常の有無を判定する過程と
を有することを特徴とする通信監視方法。
【請求項７】
コンピュータを、
一群のＩＰパケットに対する情報であるフロー情報を受信すると、該フロー情報の識別子毎に集計対象量を集計し、前記集計対象量の集計結果を該集計結果に基づいてソートし、ソート後の前記集計結果のグラフ形状を求める計算手段、
所定の基準グラフの形状と、前記計算手段によって求められたグラフ形状とを比較するグラフ形状比較手段、
前記グラフ形状比較手段における比較結果に基づいて、前記集計対象量の異常の有無を判定する異常判定手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークの監視に用いて好適な通信監視システム、通信監視方法およびプログラムに関する。
【背景技術】
【０００２】
ネットワークサービスに対しては、サービスの機能を低下させることを目的とした様々な攻撃が加えられることがある。この種の攻撃を検出するために、トラフィック量を時系列で監視し、トラフィックが想定以上に増加した場合に「攻撃を受けている可能性が高い」と判断する技術が知られている。
【０００３】
しかし、トラフィック量の総量の変化を発見するだけでは、如何なる原因でその変化が生じているのか判別し難く、現状把握・対策を行うことが難しくなる。トラフィック量の変化に対する対策を実行するには、トラフィック量の変化を起こした原因トラフィックを特定することが望ましい。このため、特許文献１では、送信元ＩＰアドレス毎、あるいは一群の送信元ＩＰアドレスからなる送信元ＩＰアドレス範囲毎にトラフィック量を監視することにより、トラフィック量の総量の変化の原因となったトラフィックを特定する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−４４５０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、ネットワークサービスに対する攻撃の手口は巧妙化しつつあり、単純に送信元ＩＰアドレス単位でトラフィック量の変化を監視するだけでは、異常を検出することは困難になりつつある。
この発明は上述した事情に鑑みてなされたものであり、ネットワークサービスに対する攻撃に基づく異常状態を高確率で検出できる通信監視システム、通信監視方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため本発明にあっては、下記構成を有することを特徴とする。
請求項１記載の通信監視システムにあっては、一群のＩＰパケットに対する情報であるフロー情報を受信すると、該フロー情報の識別子毎に集計対象量を集計し、前記集計対象量の集計結果を該集計結果に基づいてソートし、ソート後の前記集計結果のグラフ形状を求める計算手段と、所定の基準グラフの形状と、前記計算手段によって求められたグラフ形状とを比較するグラフ形状比較手段と、前記グラフ形状比較手段における比較結果に基づいて、前記集計対象量の異常の有無を判定する異常判定手段と、を有することを特徴とする。
【０００７】
この構成によれば、基準グラフの形状と、計算手段によって求められたグラフ形状との比較結果に基づいて異常の有無を判定できるので、攻撃に基づく異常状態を高確率で検出することができる。さらに、例えば識別子が動的ＩＰアドレスである場合等、識別子と統計単位との関連性が一意でない場合においても、グラフ形状の全体的傾向に基づいて、集計対象量の異常の有無を検出することができる。
【０００８】
さらに、請求項２記載の構成にあっては、請求項１に記載の通信監視システムにおいて、前記グラフ形状比較手段は、前記基準グラフの形状と、前記計算手段によって求められたグラフ形状との類似度を計算するものであり、前記異常判定手段は、前記類似度と、所定の閾値との大小関係を比較することによって前記集計対象量の異常の有無を判定するものであることを特徴とする。
【０００９】
この構成によれば、グラフ形状比較手段は類似度を計算し、異常判定手段は、類似度と所定の閾値との大小関係を比較することによって集計対象量の異常の有無を判定することができる。
【００１０】
さらに、請求項３記載の構成にあっては、請求項１または２に記載の通信監視システムにおいて、前記計算手段は、特定の送信元ＩＰアドレスと特定の送信元ポート番号とを有するＩＰパケットに係るフロー情報に対して、前記識別子を送信先ＩＰアドレスとして、集計を行うものであることを特徴とする。
【００１１】
この構成によれば、特定の送信元ＩＰアドレスと特定の送信元ポート番号とを有するＩＰパケットのうち、送信先ＩＰアドレスを識別子とするグラフ形状に基づいて、異常状態を検出するので、集計対象量の異常の有無を一層精密に判定することができる。
【００１２】
さらに、請求項４記載の構成にあっては、請求項１ないし３の何れか一項に記載の通信監視システムにおいて、前記集計対象量は、前記フロー情報に示されたフローのバイト数、前記フローのパケット数、または前記フローの流れた時間のうち何れかであることを特徴とする。
【００１３】
この構成によれば、フローのバイト数、フローのパケット数、またはフローの流れた時間のうち何れかに起因してグラフ形状が変化するので、フローのバイト数、フローのパケット数、またはフローの流れた時間に基づいて、集計対象量の異常の有無を検出することができる。
【００１６】
さらに、請求項５記載の構成にあっては、請求項２に記載の通信監視システムにおいて、前記グラフ形状比較手段は、前記類似度として、コサイン類似度またはマハラノビス距離を計算するものであることを特徴とする。
【００１７】
この構成によれば、コサイン類似度またはマハラノビス距離に基づいて、集計対象量の異常の有無を検出することができる。
【００１８】
また、請求項６記載の通信監視方法にあっては、一群のＩＰパケットに対する情報であるフロー情報を受信する過程と、該フロー情報の識別子毎に集計対象量を集計し、前記集計対象量の集計結果を該集計結果に基づいてソートし、ソート後の前記集計結果のグラフ形状を求める過程と、所定の基準グラフの形状と、前記集計結果のグラフ形状とを比較する過程と、前記基準グラフの形状と前記集計結果のグラフ形状との比較結果に基づいて、前記集計対象量の異常の有無を判定する過程とを有することを特徴とする。
【００１９】
また、請求項７記載のプログラムにあっては、コンピュータを、一群のＩＰパケットに対する情報であるフロー情報を受信すると、該フロー情報の識別子毎に集計対象量を集計し、前記集計対象量の集計結果を該集計結果に基づいてソートし、ソート後の前記集計結果のグラフ形状を求める計算手段、所定の基準グラフの形状と、前記計算手段によって求められたグラフ形状とを比較するグラフ形状比較手段、前記グラフ形状比較手段における比較結果に基づいて、前記集計対象量の異常の有無を判定する異常判定手段、として機能させるためのものであることを特徴とする。
【００２０】
請求項６に係る方法および請求項７に係るプログラムによれば、請求項１と同様に、基準グラフの形状と、計算手段によって求められたグラフ形状との比較結果に基づいて異常の有無を判定できるので、攻撃に基づく異常状態を高確率で検出することができる。さらに、例えば識別子が動的ＩＰアドレスである場合等、識別子と統計単位との関連性が一意でない場合においても、グラフ形状の全体的傾向に基づいて、集計対象量の異常の有無を検出することができる。
【発明の効果】
【００２１】
このように、本発明によれば、ネットワークサービスに対する攻撃に基づく異常状態を高確率で検出することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施形態における異常検出の原理を示す図である。
【図２】一実施形態におけるグラフの形状比較の原理を示す図である。
【図３】コサイン類似度を用いたグラフの比較方法を説明する図である。
【図４】マハラノビス距離を用いたグラフの比較方法を説明する図である。
【図５】一実施形態によるデータ通信システムの構成を示すブロック図である。
【図６】一実施形態における非ソートモード処理ルーチンのフローチャートである。
【図７】一実施形態におけるソートモード処理ルーチンのフローチャートである。
【発明を実施するための形態】
【００２３】
［実施形態の原理］
＜フロー情報＞
まず、本実施形態の原理を説明する。ある送信元ＩＰアドレスからある送信先ＩＰアドレスに伝送される一連のＩＰパケットの集合をフローと呼び、フローの様々なパラメータをフロー情報と呼ぶ。本実施形態においては、ネットワークの状態を監視するため、フロー情報を利用する。
【００２４】
フロー情報には、例えば、unix_secs：フローが届いた時間、sysUpTime：エクスポータ（フロー情報を送信する装置)が起動してから経過した時間、exaddr：エクスポータのＩＰアドレス、dpkts：フローのパケット数、doctets：フローのバイト数、first：フローの開始時刻、last：フローの終了時刻、srcaddr：送信元ＩＰアドレス、dstaddr：送信先ＩＰアドレス、nexthop：ネクストホップ、input：エクスポータの受信ＩＦ、output：エクスポータの送信ＩＦ、srcport：送信元ポート番号、dstport：送信先ポート番号、prot：プロトコル種別、tos：通信サービスの種別、tcp_flags：ＴＣＰ通信に含まれるTCP FLAG制御情報、src_mask：送信元ＩＰのネットマスク、dst_mask：送信先ＩＰのネットマスク、src_as：送信元ＡＳ（自律システム）番号、dst_as：送信先ＡＳ（自律システム）番号等が含まれる。
【００２５】
なお、上述したフロー情報は一例であり、これら以外に、ＮｅｔＦｌｏｗ（登録商標）、ｓＦｌｏｗ（登録商標）、ＡｐｐＦｌｏｗ（登録商標）、ＮｅｔＳｔｒｅａｍ （登録商標）、ＲＦＣ３９５４等に規定されているフロー情報を適用してもよい。
【００２６】
＜異常検出の原理＞
ネットワーク上のサーバ機に対して攻撃が仕掛けられた際、フロー情報において様々な変化が生じる。その変化は、一定時間内に伝送される通信データ量（例えば、doctets：フローのバイト数の集計値）として現れる場合がある。ある送信元ＩＰアドレス（サーバ機のアドレス）からある時間帯に送信された通信データ量を送信先ＩＰアドレスdstIP_1〜dstIP_10（クライアント機のアドレス）毎に集計し、グラフにした結果を図１（ａ）に示す。図１（ａ）における通信データ量の分布が正常時のものであるとする。また、他の時間帯において同一の送信元ＩＰアドレスから同一の送信先ＩＰアドレスdstIP_1〜dstIP_10に送信された通信データ量を集計し、グラフにした結果を図１（ｂ）に示す。
【００２７】
図１（ａ），（ｂ）のグラフ形状を比較すると、同図（ｂ）のものは同図（ａ）のものと比較して、送信先ＩＰアドレスdstIP_2に対する通信データ量が際立って高いことが解る。この場合、送信先ＩＰアドレスdstIP_2に対応するクライアント機からサーバ機に対して、なんらかの攻撃が仕掛けられている可能性が高いと考えられる。このように、通信データ量等、フロー情報に基づいて得られる値（以下、集計対象量という）を集計するとともにグラフ化し、時間帯毎にグラフ形状を比較することにより、フロー情報の異常を検出することが可能になる。
【００２８】
＜集計対象フロー、集計対象量の選択＞
集計対象とするフロー（以下、集計対象フローという）は、特定のサービスのフローのみに限定することが望ましい場合がある。その場合は、特定のサービスに対応するポート番号（srcport：送信元ポート番号、またはdstport：送信先ポート番号）を有するフローのみを切り出し、送信元、送信先毎に集計対象量（例えば通信データ量）を取得するとよい。「集計対象量」として上述の例では「通信データ量（バイト数）」を採用したが、集計対象量として「フロー数」等を採用してもよい。これは、ＤＤｏＳ攻撃（Distributed Denial of Service attack）等が行われる場合は、「バイト数」がさほど増加しなかったとしても、「フロー数」等が顕著に増加する場合があるためである。
【００２９】
また、同様の理由により、集計対象量として「dpkts：フローのパケット数」を採用してもよく、フローの流れた時間（「first：フローの開始時刻」と「last：フローの終了時刻」との差）を採用してもよい。集計対象量は「統計単位」毎に分類され集計される。ここで統計単位とは例えば「クライアント機」である。そして、統計単位は、「識別子」によって区別される。識別子とは、図１に示した例では、ユーザのＩＰアドレス（送信先ＩＰアドレスdstIP）である。しかし、統計単位を識別できる他の情報（例えばクライアント機の端末ＩＤ）を「識別子」として採用することもできる。
【００３０】
＜ソート後の形状比較＞
図１に示した例においてグラフの横軸は、送信先ＩＰアドレスdstIP_1〜dstIP_10を単に番号順に配列したものであったが、縦軸すなわち集計対象量の集計結果（例えば通信データ量）で横軸をソートすることが望ましい場合がある。これは、例えば、識別子である送信先ＩＰアドレスが動的ＩＰアドレスである場合等、識別子と統計単位との関連性が一意ではない場合である。
【００３１】
クライアント機の個々の利用状況および稼働状況を考察すると、いわゆるヘビーユーザであれば通信データ量は多く、いわゆるライトユーザであれば少ないといった定常性があると考えられる。そして、ヘビーユーザとライトユーザの人数割合は急激には変わらず、ほぼ一定であると考えられる。すると、通信データ量の大きい順（または小さい順）にグラフの横軸をソートし、グラフ形状を求めておくと、正常状態において送信先ＩＰアドレスが変動したとしても、グラフ形状の全体的傾向は大きく変わらないものと考えられる。
【００３２】
換言すると、縦軸を通信データ量とし横軸を動的ＩＰアドレスとしたグラフを、縦軸の通信データ量の降順でソートしたときのグラフ形状は、クライアントの個々の通信データ量とヘビーユーザ：ライトユーザの割合で決まるため、定常性があると考えられる。このように、識別子と統計単位との関連性が一意ではない場合には、ソート後のグラフ形状について監視を行うことが望ましい。
【００３３】
図２（ａ）は、ある時刻ｔ1から所定時間が経過するまでの間に、所定の送信元ＩＰアドレスsrcIPから所定の送信元ポート番号srcPortを介して送信された通信データ量を、送信先ＩＰアドレスdstIP_11〜dstIP_20毎に集計し、グラフにした一例である。送信元ＩＰアドレスはコンテンツを提供するサーバ機のＩＰアドレスであり、コンテンツの大きさには、大小様々なものがあるため、送信先ＩＰアドレスdstIP_11〜dstIP_20毎に通信データ量はばらついている。図２（ａ）のグラフを通信データ量で降順にソートした結果を図２（ｂ）に示す。同図において、ソート後のグラフのなす形状は、曲線２０２によって近似することができる。
【００３４】
また、図２（ｃ）は、他の時刻ｔ2から所定時間が経過するまでの間に、同一の送信元ＩＰアドレスsrcIPから同一の送信元ポート番号srcPortを介して送信された通信データ量を、送信先ＩＰアドレスdstIP_21〜dstIP_30毎に集計し、グラフにした一例である。なお、図２（ａ），（ｂ）に示した送信先ＩＰアドレスdstIP_11〜dstIP_20と、図２（ｃ）に示した送信先ＩＰアドレスdstIP_21〜dstIP_30とは、全く同一の場合もあれば、全て異なる場合や一部が重複する場合もある。また、図２（ｃ）のグラフを通信データ量で降順にソートした結果を図２（ｄ）に示す。同図において、ソート後のグラフのなす形状は、曲線２０４によって近似することができる。
【００３５】
図２（ｂ），（ｄ）の曲線２０２，２０４を比較すると、曲線２０２は横軸に対してなだらかに変化しているのに対して、曲線２０４は横軸に対して略クランク状に変化していることが解る。後者のケースは、特にデータ量の大きいコンテンツに対して、比較的多数のクライアント機が集中してアクセスした結果であり、これは何らかの異常が生じている（攻撃が仕掛けられている）可能性が高いと判断することができる。
【００３６】
このように、個々の送信先ＩＰアドレスが動的に変動する場合であったとしても、
（１）データ切り出し条件（例えばsrcIP，srcPort）を用いて、集計対象フローの切り出しを行うこと（フィルタリング）、
（２）集計対象フローに対して、識別子（例えば送信先ＩＰアドレスdstIP）によって区別される統計単位（例えばクライアント機）ごとに集計対象量（例えば通信データ量）の集計を行うこと
（３）集計対象量の集計結果でソートした後のグラフ形状を比較すること（正常時は類似したグラフ形状になると想定する）
という段階を経ることにより、異常の有無を判別できる。
【００３７】
＜基準グラフの選択方法＞
あるグラフ形状を「正常」であるとみなし、他のグラフ形状の異常の有無を判別する基準とするとき、その「正常」とみなしたグラフを「基準グラフ」と呼ぶ。基準グラフは、ある特定の時刻（図２の例では時刻ｔ1）のグラフとすることができる。また、ある特定の期間のグラフ形状の平均を基準グラフにすることもできる。また、刻々と変化するグラフ形状の移動平均を基準グラフにしてもよい。
【００３８】
＜グラフ形状の比較方法＞
次に、グラフ形状の比較方法について説明する。比較方法として、グラフをディスプレイ等に表示し人間の目視により比較する方法も考えられるが、ここではコンピュータ等を用いて自動的に比較する方法について説明する。
【００３９】
まず、コサイン類似度を用いた比較方法を説明する。
グラフ上の監視する範囲を決めて、それぞれのデータの識別子（図２の例においては送信先ＩＰアドレスdstIP）を１，２，３，・・・ｎのように振り直す。そして、ある時刻ｔ0のデータを正常時のデータ（すなわち基準グラフ）とし、その配列を
Ｘn（ｔ0）＝（ｘ1（ｔ0），ｘ2（ｔ0），・・・ｘn（ｔ0））
とする。比較対象とする時刻ｔのデータ配列も同様に
Ｘn（ｔ）＝（ｘ1（ｔ），ｘ2（ｔ），・・・ｘn（ｔ） ）
とする。
【００４０】
配列Ｘn（ｔ0）と配列Ｘn（ｔ）とのコサイン類似度Ｋは、
Ｋ＝Ｘn（ｔ0）・Ｘn（ｔ）／（｜Ｘn（ｔ0）｜｜Ｘn（ｔ）｜）
によって得られる。従って、コサイン類似度Ｋを随時求めてゆき、コサイン類似度Ｋが所定の閾値Ｋth未満になった場合に、異常が発生したと判断することができる。図３（ａ）〜（ｃ）は、それぞれ時刻ｔ0，ｔ1，ｔ2における通信データ量をソートしたグラフであり、図３（ａ）の時刻ｔ0におけるグラフが基準グラフ２０６であるとする。図３（ｂ）のグラフは、基準グラフ２０６に近似しているため、コサイン類似度Ｋが大きくなり、時刻ｔ1の状態は正常であると考えられる。一方、図３（ｃ）のグラフは、基準グラフ２０６とは大きく相違し、コサイン類似度Ｋが小さくなるので、異常が生じたものと判断される。
【００４１】
また、比較方法の他の例として、多変量正規分布を推定すること、すなわちマハラノビス距離を求める方法を説明する。
コサイン類似度を用いる場合と同様に、ある時刻ｔのデータ配列を
Ｘn（ｔ）＝（ｘ1（ｔ），ｘ2（ｔ），・・・ｘn（ｔ） ）
とする。忘却係数をｒとすると、配列Ｘn（ｔ）の平均値（指数移動平均）μ（ｔ）および分散行列Ｃij（ｔ）は、
μ（ｔ）＝（１−ｒ）μ（ｔ−１）+ｒＸn （ｔ）
Ｃij（ｔ）＝（１−ｒ）Ｃij（ｔ−１）＋ｒ（Ｘi（ｔ）−μi（ｔ））（Ｘj（ｔ）−μj（ｔ））
によって得られる。
【００４２】
これら平均値μ（ｔ）と分散行列Ｃij（ｔ）とから、マハラノビス距離Ｐを計算するとよい。マハラノビス距離Ｐは、小さいほど類似度が高いため、大きいほど異常度が高くなると言える。従って、得られたマハラノビス距離Ｐを閾値Ｐthと比較し、マハラノビス距離Ｐが閾値Ｐth以上になった場合に、異常が発生したと判断することができる。
【００４３】
図４（ａ），（ｂ）は、それぞれ過去の時刻ｔ1，ｔ2における通信データ量をソートしたグラフであり、基準グラフは、これら過去のグラフ形状の移動平均によって求められるものとする。図４（ｃ）は、現在時刻ｔにおける通信データ量をソートしたグラフであり、そのグラフ形状は、図４（ａ），（ｂ）に示した過去のグラフ形状からは大きく相違するため、基準グラフに対するマハラノビス距離Ｐも大きくなるため、異常が生じたものと判断される。
【００４４】
［実施形態の構成］
次に、図５に示すブロック図を参照し、本実施形態によるデータ通信システムの構成を説明する。
図５において、ｎ台のクライアント機２−１〜２−ｎは、インターネット等のＷＡＮ（広域ネットワーク、Wide Area Network）４に接続されている。また、ｍ台のサーバ機８−１〜８−ｍはデータセンタ等に配置され、ネットワークスイッチ６を介してＷＡＮ４に接続されている。ネットワークスイッチ６は、クライアント機２−１〜２−ｎおよびサーバ機８−１〜８−ｍ間のＩＰパケットを仲介するとともに、これらＩＰパケットの各種トラフィック情報を収集し、その結果をフロー情報として外部に出力する。
【００４５】
フロー監視装置１００は、ネットワークスイッチ６から出力されるフロー情報に基づいて、異常なトラフィックを検出するものであり、情報保存部１１０と、演算部１２０と、入出力部１３０とを有している。情報保存部１１０は、ソートルール保存部１１１、データ範囲保存部１１２、忘却係数保存部１１３、閾値保存部１１４、データ保存部１１５および異常判定結果保存部１１６を有している。
【００４６】
また、演算部１２０は、データソート計算手段１２１と、グラフ形状比較手段１２２と、異常判定手段１２３とを有している。また、入出力部１３０は、設定入力部１３１と、データ入力部１３２と、異常判定結果出力部１３３とを有している。なお、フロー監視装置１００は、実際には汎用コンピュータによって構成され、演算部１２０は、ＣＰＵ（Central Processing Unit）と、該ＣＰＵにて実行されるプログラム（詳細は後述する）とによって実現される。情報保存部１１０は、該コンピュータに備わった、ハードディスク、半導体メモリ等によって構成され、入出力部１３０は該コンピュータに備わった入出力インタフェース等によって構成されている。
【００４７】
情報保存部１１０内に設けられたソートルール保存部１１１は、ソートルールを保存する。ここで、ソートルールとは、集計対象量の集計結果のソートを行う場合のソートの仕方を規定するものである。また、データ範囲保存部１１２は、処理対象とするフロー情報の範囲を示すデータを記憶する。また、忘却係数保存部１１３は、移動平均を算出する場合に用いられる忘却係数ｒを記憶する。また、閾値保存部１１４は、処理に用いられる閾値（上述したコサイン類似度Ｋに対する閾値Ｋth、マハラノビス距離Ｐに対する閾値Ｐth等）を記憶する。設定入力部１３１は、ユーザの操作に基づいて、上述した保存部１１１〜１１４に対応するデータを記憶させる。
【００４８】
データ入力部１３２は、ネットワークスイッチ６からフロー情報を受信し、受信したフロー情報を識別子（例えば送信先ＩＰアドレスdstIP）によって区別される統計単位（クライアント機２−１〜２−ｎ）毎に分類し、所定時間毎にデータソート計算手段１２１に供給する。データソート計算手段１２１は、保存部１１１〜１１４に記憶されたデータに基づいて、必要に応じてフロー情報をソートした後にグラフを生成し、そのグラフ形状をデータ保存部１１５に記憶させる。これにより、データ保存部１１５には、上記所定時間毎の複数のグラフ形状が記憶される。また、データ保存部１１５には、基準グラフの形状も記憶される。上述したように、基準グラフは、ある特定の時刻におけるグラフ、ある特定の期間のグラフ形状の平均、またはグラフ形状の移動平均のうち何れであってもよい。
【００４９】
グラフ形状比較手段１２２は、基準グラフの形状と最新のグラフ形状との類似度（例えば上述したコサイン類似度Ｋ、マハラノビス距離Ｐ）を計算する。異常判定手段１２３は、計算した類似度に基づいて、異常が発生したか否かを判定し、異常が発生した場合には、その内容を異常判定結果保存部１１６に記憶させるとともに、異常判定結果出力部１３３を介して出力する。
【００５０】
［実施形態の動作］
＜非ソートモード＞
次に、本実施形態の動作を説明する。
本実施形態の動作モードには、集計対象量の集計結果のソートを行うソートモードと、ソートを行わない非ソートモードとがある。まず、図６のフローチャートを参照し、非ソートモードにおける動作を説明する。なお、図６は、非ソートモードにおいて所定時間毎に実行されるプログラムである非ソートモード処理ルーチンのフローチャートである。
【００５１】
図６において処理がステップＳ２に進むと、データ入力部１３２によって、ネットワークスイッチ６から集計対象フローのフロー情報が取得される。次に、処理がステップＳ４に進むと、データ入力部１３２は、集計対象フローの全てのフロー情報を取得したか否かを判定する。ここで「Ｎｏ」と判定されると、処理はステップＳ２に戻り、フロー情報の取得が続行される。
【００５２】
集計対象フローの全てのフロー情報が取得されると、ステップＳ４において「Ｙｅｓ」と判定され、処理はステップＳ６に進む。ここでは、設定された範囲（例えば、特定の送信元ＩＰアドレスsrcIPと特定の送信元ポート番号srcPortとを有する範囲）の集計対象量（例えばデータ量）が、識別子（例えば送信先ＩＰアドレスdstIP）毎にデータソート計算手段１２１によって集計され、集計結果がグラフ化されるとともに、そのグラフ形状がデータ保存部１１５に記憶される。次に、処理がステップＳ８に進むと、グラフ形状比較手段１２２によって、データ保存部１１５から、過去に取得した基準グラフが読み出される。次に、処理がステップＳ１０に進むと、ステップＳ６にて新たに作成されたグラフと、基準グラフとの類似度がグラフ形状比較手段１２２によって、算出される。
【００５３】
次に、処理がステップＳ１２に進むと、計算した類似度と閾値との比較結果に基づいて、異常の有無が検出され、異常が検出された場合は、異常判定手段１２３によって、異常判定結果出力部１３３を介して警報が出力されるとともに、その旨が異常判定結果保存部１１６に記憶される。以上により、図６の処理が終了する。
【００５４】
＜ソートモード＞
次に、図７を参照し、集計対象量の集計結果のソートを行うソートモードにおける動作を説明する。なお、図７は、ソートモードにおいて所定時間毎に実行されるプログラムであるソートモード処理ルーチンのフローチャートである。
【００５５】
図７において処理がステップＳ２２に進むと、データ入力部１３２によって、ネットワークスイッチ６から集計対象フローのフロー情報が取得される。次に、処理がステップＳ２４に進むと、データ入力部１３２は、集計対象フローの全てのフロー情報を取得したか否かを判定する。ここで「Ｎｏ」と判定されると、処理はステップＳ２２に戻り、フロー情報の取得が続行される。
【００５６】
集計対象フローの全てのフロー情報が取得されると、ステップＳ２４において「Ｙｅｓ」と判定され、処理はステップＳ２６に進む。ここでは、データソート計算手段１２１によって、ソートルール保存部１１１からソートルールが読み出される。そして、データソート計算手段１２１においては、設定された範囲（例えば、特定の送信元ＩＰアドレスsrcIPと特定の送信元ポート番号srcPortとを有する範囲）の集計対象量（例えばデータ量）が、識別子（例えば送信先ＩＰアドレスdstIP）毎にデータソート計算手段１２１によって集計され、その集計結果がソートルールに従ってソートされる。次に、処理がステップＳ２８に進むと、ソートが完了したか否かが判定される。ここで「Ｎｏ」と判定されると、処理はステップＳ２４に戻る。
【００５７】
一方、ステップＳ２８において「Ｙｅｓ」と判定されると、処理はステップＳ３０に進む。ここでは、ソートされた集計結果がデータソート計算手段１２１によってグラフ化され、データ保存部１１５に記憶される。次に、次に、処理がステップＳ３４に進むと、グラフ形状比較手段１２２によって、データ保存部１１５から、過去に取得した基準グラフが読み出される。さらに、ステップＳ３４においては、ステップＳ３０にて新たに作成されたグラフと基準グラフとの類似度が、グラフ形状比較手段１２２によって算出される。
【００５８】
次に、処理がステップＳ３６に進むと、計算した類似度と閾値との比較結果に基づいて、異常の有無が検出され、異常が検出された場合は、異常判定手段１２３によって、異常判定結果出力部１３３を介して警報が出力されるとともに、その旨が異常判定結果保存部１１６に記憶される。以上により、図７の処理が終了する。
【００５９】
以上のように、本実施形態によれば、集計対象量（例えばデータ量）が、識別子（例えば送信先ＩＰアドレスdstIP）毎にデータソート計算手段１２１によって集計され、集計結果または集計結果をソートした結果に基づくグラフ形状と、基準グラフの形状とが比較され、比較結果に応じて異常の有無が判定されるので、ネットワークサービスに対する攻撃に基づく異常状態を高確率で検出することができる。
【００６０】
［変形例］
本発明は上述した実施形態に限定されるものではなく、種々の変形が可能である。上述した実施形態は本発明を理解しやすく説明するために例示したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について削除し、若しくは他の構成の追加・置換をすることが可能である。上記実施形態に対して可能な変形は、例えば以下のようなものである。
【００６１】
（１）上記実施形態においては、「類似度」の例としてコサイン類似度とマハラノビス距離とを例示したが、「類似度」はこれらに限られるものではなく、グラフ形状の違いを表すことができる種々の値を採用することができる。
（２）上記実施形態におけるフロー監視装置１００のハードウエアは一般的なコンピュータによって実現できるため、図６、図７に示したプログラムのみを記憶媒体に格納し、または伝送路を介して頒布してもよい。
【００６２】
（３）図６、図７に示した処理は、上記実施形態ではプログラムを用いたソフトウエア的な処理として説明したが、その一部または全部をＡＳＩＣ(Application Specific Integrated Circuit；特定用途向けＩＣ)、あるいはＦＰＧＡ(field-programmable gate array)等を用いたハードウエア的な処理に置き換えても良い。
【符号の説明】
【００６３】
２−１〜２−ｎ  クライアント機
４  ＷＡＮ
６  ネットワークスイッチ
８−１〜８−ｍ  サーバ機
１００  フロー監視装置
１１０  情報保存部
１１１  ソートルール保存部
１１２  データ範囲保存部
１１３  忘却係数保存部
１１４  閾値保存部
１１５  データ保存部
１１６  異常判定結果保存部
１２０  演算部
１２１  データソート計算手段（計算手段）
１２２  グラフ形状比較手段
１２３  異常判定手段
１３０  入出力部
１３１  設定入力部
１３２  データ入力部
１３３  異常判定結果出力部
【図１】
0006317685.tif 000002
【図２】
0006317685.tif 000003
【図３】
0006317685.tif 000004
【図４】
0006317685.tif 000005
【図５】
0006317685.tif 000006
【図６】
0006317685.tif 000007
【図７】
0006317685.tif 000008