(57)【要約】【課題】ネットワークの異常検出を行うこと。【解決手段】検出対象たるネットワーク中を一定時間の間に通過するパケットについて、ｋ個（ｋ：自然数）の分類ごとにパケット数をカウントするパケット数カウント部１と、カウントしたパケット数をｋ個の分類ごとに正規化し、正規化したパケット数を要素としたｋ次元ベクトルを生成するベクトル生成部２とを有する。さらに、本実施の形態１にかかるネットワーク異常検出装置は、ｋ次元特徴空間において各次元間の相関関係に基づいて定められた主成分軸を導出する主成分軸導出部３と、必要な情報を記憶する記憶部４と、生成したｋ次元ベクトルとの距離を導出する主成分軸−ｋ次元ベクトル間距離測定部５と、ネットワークの異常の有無を判定する異常判定部６とを有する。かかる構造を有することで、簡易な構成で未知の異常状態をも検出することが可能となる。【選択図】      図１
2004312064.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク回線状態の異常を検出するネットワーク異常検出装置であって、
一定時間内にネットワークを通過するパケットについて、ｋ通りの分類ごとにパケット数を検出するパケット数検出手段と、
検出されたパケット数に基づいて前記分類を要素とするｋ次元ベクトルを生成するベクトル生成手段と、
前記ｋ次元ベクトルと、ネットワーク正常状態に対応した領域としてｋ次元特徴空間上に定義された正常領域との位置関係に基づいてネットワークの異常の有無を判定する異常判定手段と、
を備えたことを特徴とするネットワーク異常検出装置。
【請求項２】
前記異常判定手段は、過去のネットワーク状態に基づいて得られた複数のｋ次元ベクトルをクラスタリングによって分類することによって得られた正常領域を用いてネットワークの異常の有無を判定することを特徴とする請求項１に記載のネットワーク異常検出装置。
【請求項３】
前記ベクトル生成手段は、過去の観測値に基づいてパケット数を正規化した値を用いてｋ次元ベクトルを生成することを特徴とする請求項１または２に記載のネットワーク異常検出装置。
【請求項４】
前記異常判定手段は、前記正常領域としてｋ次元を形成する各軸の相関関係によって定められた主成分軸を使用し、該主成分軸と前記ｋ次元ベクトルとがなす距離に基づいてネットワーク回線状態の異常を検出することを特徴とする請求項１〜３のいずれか一つに記載のネットワーク異常検出装置。
【請求項５】
異なる時刻において導出された複数のｋ次元ベクトルの分散が最大になる軸を前記主成分軸として定める主成分軸導出手段をさらに備えたことを特徴とする請求項４に記載のネットワーク異常検出装置。
【請求項６】
前記主成分軸導出手段は、前記主成分軸を導出した後、前記主成分軸からの距離が所定以上の値を有する異常ｋ次元ベクトルが存在する場合に、前記異常ｋ次元ベクトルと正常なｋ次元ベクトルとを分離する判別軸を導出した後、前記異常ｋ次元ベクトルを除去して正常なｋ次元ベクトルの分布を前記判別軸方向に圧縮し、該圧縮した分布状態において分散が最大になる軸を主成分軸に設定し直す主成分軸更新処理を行うことを特徴とする請求項５に記載のネットワーク異常検出装置。
【請求項７】
前記主成分軸導出手段は、異常ｋ次元ベクトルが消滅するまで前記主成分軸更新処理を繰り返すことを特徴とする請求項６に記載のネットワーク異常検出装置。
【請求項８】
前記主成分軸導出手段は、前記主成分軸の次に分散が大きな値となる第２主成分軸をさらに導出し、
前記異常判定手段は、前記第２主成分軸の前記主成分軸に対する寄与率に係数を乗算した値を前記主成分軸と前記ｋ次元ベクトルとの距離の閾値として、該閾値以上の場合に異常と判定することを特徴とする請求項５〜７のいずれか一つに記載のネットワーク異常検出装置。
【請求項９】
前記異常判定手段は、過去のネットワーク状態から得られた多数のｋ次元ベクトルからデンドログラムまたはｋ−ｍｅａｎｓクラスタリングによって抽出された正常領域を用いることを特徴とする請求項１〜３のいずれか一つに記載のネットワーク異常検出装置。
【請求項１０】
ネットワーク回線状態の異常を検出するネットワーク異常検出方法であって、
一定時間内にネットワークを通過するパケットについて、ｋ通りの分類ごとにパケット数を検出するパケット数検出工程と、
検出されたパケット数に基づいて前記分類を要素とするｋ次元ベクトルを生成するベクトル生成工程と、
ネットワーク正常状態に対応した領域としてｋ次元特徴空間上に定義された正常領域と、前記ｋ次元ベクトルとの位置関係に基づいてネットワークの異常の有無を判定する異常判定工程と、
を含むことを特徴とするネットワーク異常検出方法。
【請求項１１】
前記異常判定工程において、前記正常領域としてｋ次元を形成する各軸の相関関係によって定められた主成分軸を使用し、該主成分軸と前記ｋ次元ベクトルとがなす距離に基づいてネットワーク回線状態の異常を検出することを特徴とする請求項１０に記載のネットワーク異常検出方法。
【請求項１２】
異なる時刻において導出された複数のｋ次元ベクトルの分散がもっとも大きくなる軸を前記主成分軸として導出する主成分軸導出工程をさらに含むことを特徴とする請求項１１に記載のネットワーク異常検出方法。
【請求項１３】
前記主成分軸導出工程は、一度前記主成分軸導出を行った後、該導出した主成分軸からの距離が所定以上の値を有する異常ｋ次元ベクトルが存在する場合に、前記異常ｋ次元ベクトルと正常なｋ次元ベクトルとを分離する判別軸を導出した後、前記異常ｋ次元ベクトルを除去して正常なｋ次元ベクトルの分布を前記判別軸方向に圧縮し、該圧縮した分布状態において分散が最大になる軸を主成分軸に設定し直す主成分軸更新工程を含むことを特徴とする請求項１２に記載のネットワーク異常検出方法。
【請求項１４】
前記主成分軸更新工程は、前記主成分軸に対して異常ｋ次元ベクトルが存在しなくなるまで繰り返されることを特徴とする請求項１３に記載のネットワーク異常検出方法。
【請求項１５】
請求項１０〜１４のいずれか一つに記載の方法を電子計算機に実行させることを特徴とするネットワーク異常検出プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ネットワークの異常検出に関するものであり、特に簡易な構成で未知の異常をも検出可能なネットワーク異常検出装置、ネットワーク異常検出方法およびネットワーク異常検出プログラムに関するものである。
【０００２】
【従来の技術】
現在、一般的に不正アクセスに対しては、管理化ネットワークの入口にをファイアウォールや侵入検知システム（ＩＤＳ）を設置し、防御あるいは検出を行うシステムが広く普及している。ファイアウォールとＩＤＳそれぞれについて、その働きを以下に述べる。
【０００３】
（ファイアウォール）
まず、ファイアウォールまたはホストの設定によって、不要なポートに対するアクセスを遮断することが基本である。これにより、管理者の意図しない外部からのアクセスを排除することでシステムを外界から隠し、安全性を飛躍的に高めることができる。しかし、外界からの全てのアクセスを排除するとネットワークの利便性が損なわれてしまう。また、不特定多数を対象に公開しているサーバなどは、ファイアウォールによる保護の対象とできない。さらに、ファイアウォールの本質的な弱点として、ファイアウォール自身が不正アクセスを受けて不正侵入を許すと、内部のシステムは極めて無防備なものとなってしまう。よって、セキュリティ向上の手段をファイアウォールのみに頼ることは危険であり、一般的にはＩＤＳが併用されることが多い。
【０００４】
（ＩＤＳ）
ＩＤＳの研究開発は１９８０年代前半から始まり、現在でも活発な研究開発が行われている。しかし、優秀なＩＤＳが開発されれば、侵入者はより巧妙な手口を使って検出を避けようとし、こういったセキュリティ技術者と侵入者の競争は、しばしば”いたちごっこ”とも言われる。これまでに、様々な目的のために多数のＩＤＳが開発されており、標準化の動きも始まっている。例えば、ＣＩＤＦ（Ｃｏｍｍｏｎ  Ｉｎｔｒｕｓｉｏｎ  ＤｅｒｅｃｔｉｏｎＳｙｓｔｅｍ  Ｆｒａｍｅｗｏｒｋ）では、図２５に示すような、侵入検知システムの基本的なモデルを提案している。ＣＩＤＦでは、ＩＤＳはイベント生成器１０１（Ｅｖｅｎｔ  Ｇｅｎｅｒａｔｏｒｓ、  ”Ｅ−Ｂｏｘｅｓ”）、イベント解析器１０２（Ｅｖｅｎｔ  Ａｎａｌｙｚｅｒｓ、  ”Ａ−Ｂｏｘｅｓ”）、イベントデータベース１０３（Ｅｖｅｎｔ  Ｄａｔａｂａｓｅｓ、  ”Ｄ−Ｂｏｘｅｓ”）、反応器１０４（Ｒｅｓｐｏｎｓｅ  Ｕｎｉｔｓ、  ”Ｒ−Ｂｏｘｅｓ”）から構成されている。
【０００５】
イベント生成器１０１はユーザアクティビティやホスト上のプロセス、ネットワークトラヒック等の情報を収集する。これらの情報は、イベント解析器１０２、イベントデータベース１０３により使用される。イベント解析器１０２は、イベント生成器１０１から情報を受け取り、侵入が起きているかどうかの判断を行う。
【０００６】
同時に、侵入に関連した情報をイベントデータベース１０３に蓄積する。イベントデータベース１０３は、イベント生成器１０１とイベント解析器１０２からの情報を蓄積する。反応器１０４は、イベントを受け取り、イベントにより行動を起こす。例えば、イベント解析器１０２が侵入が起きていると判断した場合には、侵入を検知したことを警報として管理者に通知したり、侵入されたシステムをネットワークから切り離したり、あるいは履歴情報の保管やログの作成を行う。
【０００７】
ＩＤＳは、イベント生成器１０１が観測するデータと、イベント解析器１０２が使用する検出アルゴリズムによって分類することができる。イベント生成器１０１があるホストに関する情報を収集するシステムは、ホストベースＩＤＳである。
【０００８】
ホストベースＩＤＳは、一般的に観測対象ホストに対する侵入を検知することを目的としている。一方、ネットワークトラヒックを観測するシステムはネットワークベースＩＤＳと呼ばれる。ネットワークベースＩＤＳは、観測対象ネットワークあるいはネットワーク内のホストに対する侵入を検知することを目的としている。
【０００９】
また、イベント解析器１０２が使用するアルゴリズムは、不正検出と異常検出の２種類に大別される。この両者は、それぞれ以下のような特徴を持つ。
【００１０】
（不正検出）
不正検出とは、あらかじめ登録しておいた不正アクセスの振る舞いのデータベース（シグネチャ）と、実際のネットワークの振る舞いを比較して侵入を検出する手法である。ｓｎｏｒｔ等、既存の多くのＩＤＳではこの手法が採用されている。
【００１１】
シグネチャには、過去に発見された不正アクセスのデータをもとに、それぞれの不正アクセスに現れる特定の文字列等のデータが格納されており、観測された全てのパケットに対してマッチングを行う。よって、不正検出では、シグネチャに記録された既知の不正アクセスをほぼ確実に検出することができる。また、リアルタイムでパケット単位の比較を行うため、侵入の試みが観測された場合、そのパケットがシステムに到達する前に廃棄することも可能である。
【００１２】
例えば、ＤｏＳ攻撃の一種であるｌａｎｄアタックでは、ＴＣＰ／ＩＰの実装の弱点を利用して、ＳＹＮパケットの送信元アドレスとポート番号を宛先ホストのアドレスとポート番号と同一になるようなパケットを送りつけ、宛先ホストをフリーズさせてしまう。この攻撃は、ＴＣＰパケットのヘッダ情報から、ＳＹＮフラグビットと送信元と宛先のアドレスとポート番号を監視することで検出することができる。
【００１３】
一方、一般にシグネチャはベンダーによって提供されるため、新たなシグネチャが公開され、入手するまで、新たに発見された不正アクセスは検出できない。よって、本質的に未知の不正アクセスや、既知の不正アクセスに改造を加えた、いわゆる亜種と呼ばれるものに対しては無防備である。さらに、シグネチャの数が多くなったり、観測ネットワークを流れるデータ量が増加すると、ＩＤＳの処理能力が低下するという問題点がある。
【００１４】
また、正常なアクセスで発生したパケットの一部が偶然シグネチャに一致すると、誤警報が発生する。誤警報が大量に発生すると、悪意のある不正アクセスによって生じた警報が埋もれてしまい、本来の目的である侵入検知が困難になることも多い。
【００１５】
以上より、不正検出方式は、単純な仕組みを用いているため、既知の不正アクセスに対しては強力な検出能力を発揮するが、シグネチャを用いることによる短所も多い。未知の不正アクセスに対して無防備であることの他にも、一般的に、誤検出を減らすためには、管理者がシグネチャを管理ネットワークの特性に合わせて調整することが必要となる。
【００１６】
（異常検出）
異常検出は、シグネチャを利用せず、未知の不正アクセスをも検出するための手法である。基本的には、観測対象の振る舞いを監視し、「通常とは異なる振る舞い」を検出するという方法を採用している。
【００１７】
例えば、あるユーザが、通常朝から夕方まで仕事でシステムを使用しており、突然、ある日の深夜にシステムを利用しようとした場合は、通常の振る舞いからかけ離れた状況であるといえる。
【００１８】
１９８６年にＤｅｎｎｉｎｇによって発表された“侵入検知モデル”は、ユーザやシステムの振る舞いを監視し、通常と異なるものを異常として検出し、不正を発見する概念的なモデルを示した。現在でも、異常検出手法を用いた多くのシステムがこのモデルに基づいて開発されている。
【００１９】
異常検出の特徴は、不正検出に対してシグネチャのメンテナンスが不要であり、未知の攻撃や攻撃以外の異常（機器障害等）も検出できる点である。一方、悪意を持った攻撃と、攻撃以外の異常との区別は難しく、攻撃の検出のみを求める場合には、機器障害等の検出は誤検出となりかねないことから、誤検出を抑制することが難しい。
【００２０】
異常検出の性能は、正常な振る舞い（プロファイル）の定義方法と正常状態と異常状態の境界（閾値）によって決定される。これらの適切な定義は検出対象や適用対象によって異なり、一意に決定することは困難であるため、異常検出だけを侵入検知の手段としているシステムは少ないが、多くの研究が進んでいる。例えば、ＵＮＩＸ（Ｒ）マシンのユーザの振る舞いを統計量として学習することにより、コンピュータの不正使用を検出する手法も研究されている。
【００２１】
これらのアルゴリズムは、不正アクセスの性質によって検出能力が異なる。例えば、未知の不正アクセスを不正検出手法で検出することは難しい。そこで、不正アクセスの性質による検出可否の比較を行う。
【００２２】
（不正アクセスの性質）
１９９９  ＤＡＲＰＡＩｎｔｒｕｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ  Ｅｖａｌｕａｔｉｏｎでは、不正アクセスの性質を以下の５種類に分類している。
・Ｐｒｏｂｅ  攻撃対象に関する情報を収集する
・ＤｏＳ  攻撃対象のサービスを妨害する
・Ｒ２Ｌ  攻撃対象のリソースへのアクセス権限を不正に得る
・Ｕ２Ｒ  一般ユーザが特権ユーザ権限を不正に得る
・ＤＡＴＡ  攻撃対象から機密情報を不正に得る
【００２３】
これらのうち、Ｒ２Ｌ、  Ｕ２Ｒ、  ＤＡＴＡの３種類の攻撃の多くは、脆弱性のあるプログラムに対して特定の文字列を送信することでプログラムの誤動作を誘発する、いわゆるバッファオーバーフローと呼ばれる攻撃である。これらの攻撃は、最悪の場合、プログラムを動かしている権限を乗っ取ることで、攻撃対象マシンに関する全ての権限が攻撃者のものとなるような深刻な被害となり得るものが多い。一方、特定の文字列を送信するという特性から、これらの攻撃に対してはシグネチャの作成が容易である。また、シグネチャによる検出を回避することも困難であるため、常に最新のシグネチャを使用することで、これらの攻撃の多くは検出することが可能である。
【００２４】
これに対して、ｐｒｏｂｅ攻撃は、攻撃の前段階として、攻撃対象ホストに関する情報を収集し、脆弱性のあるプログラムが動いていないかをチェックすることが主な目的であるため、攻撃対象から情報が得られるような反応があればどのようなパケットを送信しても目的は達せられてしまう。同様にＤｏＳに関しても、攻撃対象のサービスを妨害するという目的のためには、どのようなパケットを送ってもよい。例えば、帯域の狭い回線に対しては、どのようなパケットであっても大量に送ることができれば回線を圧迫し、攻撃の目的が達成されてしまう。よって、ｐｒｏｂｅ、ＤｏＳ攻撃は、用いることのできるパケットのバリエーションが多く、シグネチャを作成することが困難となる。このような攻撃は、シグネチャ方式ＩＤＳによる検出を比較的容易に避けることができるため、異常検出方式によって検出することが望ましいといえる。
【００２５】
以上より、これまでの様々な研究によって、不正検出方式を用いた不正アクセス検出技術は成熟の域に達しており、適用範囲も明らかとなっているといえる。（たとえば、非特許文献１参照）。
【００２６】
【非特許文献１】
武田圭史、磯崎宏「ネットワーク侵入検知」、ソフトバンクパブリッシング株式会社、２０００
【００２７】
【発明が解決しようとする課題】
侵入検知手法または障害検知手法として、異常検出は広く応用されており、データマイニングを用いた手法や、ニューラルネットワークを用いた手法が報告されている。他にも多数の研究が報告されているが、その多くは入力としてＵＮＩＸ（Ｒ）マシンのシステムコールを利用する、ホストベースのシステムを想定している。ホストベースの手法を用いる場合、システムコールや様々なログをはじめ、侵入者の行動により残されたファイルや改竄の痕跡など、ネットワークベースでは得られない情報を利用することができるため、高精度な侵入検知が可能となる。しかし、ホスト毎に情報を収集するため、システム全体を適用範囲とする場合はコストが高くなる。また、侵入検知に失敗し、マシンを完全に乗っ取られた場合は、侵入者の手で侵入検知システムを無効化することができ、侵入者のその後の行動による検知が困難となる恐れがある。
【００２８】
一方、ネットワークベースの異常検出を実現するための、ネットワークベースならではの課題として、観測対象の決定が困難であることが挙げられる。ホストベースシステムの場合は、侵入によって起こるホスト内部の変化や痕跡を予測することが比較的容易であるが、ネットワークを流れるパケットのみから情報を得る場合、何をもって攻撃と判断するかの基準を設けることが困難である。
【００２９】
これまでに、ニューラルネットワークを用いて不自然なＴＣＰコネクションを検出する手法や、パケットヘッダを分析し、判別分析によってパケット単位の異常検出を行う手法が報告されている。これらの手法は、観測対象を限定し、コネクション単位あるいはパケット単位での特徴量を抜き出すことでニューラルネットワークあるいは判別分析による解析を可能としている。これらの手法の問題点は、観測対象を限定していることである。一つの異常がネットワークトラヒックに様々な影響を与えることがあり、このような攻撃に対してはトラヒック全体を観測し、様々な変化を同時に捉えて診断を行わなければ検出することができない。しかしＴＣＰコネクション単位やパケット単位でしか観測を行わない場合は、他に発生した変化が見えず、誤った検出を行ったり、検出ができない場合がある。
【００３０】
本発明は、上記した従来技術の欠点に鑑みてなされたものであり、簡易な構成で未知の異常をも検出可能なネットワーク異常検出装置、ネットワーク異常検出方法およびネットワーク異常検出プログラムを提供することを目的とする。
【００３１】
【課題を解決するための手段】
上記目的を達成するため、請求項１にかかるネットワーク異常検出装置は、ネットワーク回線状態の異常を検出するネットワーク異常検出装置であって、一定時間内にネットワークを通過するパケットについて、ｋ通りの分類ごとにパケット数を検出するパケット数検出手段と、検出されたパケット数に基づいて前記分類を要素とするｋ次元ベクトルを生成するベクトル生成手段と、ネットワーク正常状態に対応した領域としてｋ次元特徴空間上に定義された正常領域と、前記ｋ次元ベクトルとの位置関係に基づいてネットワークの異常の有無を判定する異常判定手段とを備えたことを特徴とする。
【００３２】
この請求項１の発明によれば、ネットワーク回線の状態をｋ次元ベクトル化し、ｋ次元特徴空間において正常領域を定義してｋ次元ベクトルとの位置関係に基づいてネットワークの異常の有無を検出することとしたため、ネットワーク回線の評価を定量的に行うことができるとともに、未知のネットワーク異常を検出することが可能である。
【００３３】
また、請求項２にかかるネットワーク異常検出装置は、上記の発明において、前記異常判定手段は、過去のネットワーク状態に基づいて得られた複数のｋ次元ベクトルをクラスタリングによって分類することによって得られた正常領域を用いてネットワークの異常の有無を判定することを特徴とする。
【００３４】
また、請求項３にかかるネットワーク異常検出装置は、上記の発明において、前記ベクトル生成手段は、過去の観測値に基づいてパケット数を正規化した値を用いてｋ次元ベクトルを生成することを特徴とする。
【００３５】
また、請求項４にかかるネットワーク異常検出装置は、上記の発明において、前記異常判定手段は、前記正常領域としてｋ次元を形成する各軸の相関関係によって定められた主成分軸を使用し、該主成分軸と前記ｋ次元ベクトルとがなす距離に基づいてネットワーク回線状態の異常を検出することを特徴とする。
【００３６】
また、請求項５にかかるネットワーク異常検出装置は、上記の発明において、異なる時刻において導出された複数のｋ次元ベクトルの分散が最大になる軸を前記主成分軸として定める主成分軸導出手段をさらに備えたことを特徴とする。
【００３７】
また、請求項６にかかるネットワーク異常検出装置は、上記の発明において、前記主成分軸導出手段は、前記主成分軸を導出した後、前記主成分軸からの距離が所定以上の値を有する異常ｋ次元ベクトルが存在する場合に、前記異常ｋ次元ベクトルと正常なｋ次元ベクトルとを分離する判別軸を導出した後、前記異常ｋ次元ベクトルを除去して正常なｋ次元ベクトルの分布を前記判別軸方向に圧縮し、該圧縮した分布状態において分散が最大になる軸を主成分軸に設定し直す主成分軸更新処理を行うことを特徴とする。
【００３８】
また、請求項７にかかるネットワーク異常検出装置は、上記の発明において、記主成分軸導出手段は、異常ｋ次元ベクトルが消滅するまで前記主成分軸更新処理を繰り返すことを特徴とする。
【００３９】
また、請求項８にかかるネットワーク異常検出装置は、上記の発明において、前記主成分軸導出手段は、前記主成分軸の次に分散が大きな値となる第２主成分軸をさらに導出し、前記異常判定手段は、前記第２主成分軸の前記主成分軸に対する寄与率に係数を乗算した値を前記主成分軸と前記ｋ次元ベクトルとの距離の閾値として、該閾値以上の場合に異常と判定することを特徴とする。
【００４０】
また、請求項９にかかるネットワーク異常検出装置は、上記の発明において、前記異常判定手段は、過去のネットワーク状態から得られた多数のｋ次元ベクトルからデンドログラムまたはｋ−ｍｅａｎｓクラスタリングによって抽出された正常領域を用いることを特徴とする。
【００４１】
また、請求項１０にかかるネットワーク異常検出方法は、ネットワーク回線状態の異常を検出するネットワーク異常検出方法であって、一定時間内にネットワークを通過するパケットについて、ｋ通りの分類ごとにパケット数を検出するパケット数検出工程と、検出されたパケット数に基づいて前記分類を要素とするｋ次元ベクトルを生成するベクトル生成工程と、ネットワーク正常状態に対応した領域としてｋ次元特徴空間上に定義された正常領域と、前記ｋ次元ベクトルとの位置関係に基づいてネットワークの異常の有無を判定する異常判定工程とを含むことを特徴とする。
【００４２】
また、請求項１１にかかるネットワーク異常検出方法は、上記の発明において、前記異常判定工程において、前記正常領域としてｋ次元を形成する各軸の相関関係によって定められた主成分軸を使用し、該主成分軸と前記ｋ次元ベクトルとがなす距離に基づいてネットワーク回線状態の異常を検出することを特徴とする。
【００４３】
また、請求項１２にかかるネットワーク異常検出方法は、上記の発明において、異なる時刻において導出された複数のｋ次元ベクトルの分散がもっとも大きくなる軸を前記主成分軸として導出する主成分軸導出工程をさらに含むことを特徴とする。
【００４４】
また、請求項１３にかかるネットワーク異常検出方法は、上記の発明において、前記主成分軸導出工程は、一度前記主成分軸導出を行った後、該導出した主成分軸からの距離が所定以上の値を有する異常ｋ次元ベクトルが存在する場合に、前記異常ｋ次元ベクトルと正常なｋ次元ベクトルとを分離する判別軸を導出した後、前記異常ｋ次元ベクトルを除去して正常なｋ次元ベクトルの分布を前記判別軸方向に圧縮し、該圧縮した分布状態において分散が最大になる軸を主成分軸に設定し直す主成分軸更新工程を含むことを特徴とする。
【００４５】
また、請求項１４にかかるネットワーク異常検出方法は、上記の発明において、前記主成分軸更新工程は、前記主成分軸に対して異常ｋ次元ベクトルが存在しなくなるまで繰り返されることを特徴とする。
【００４６】
また、請求項１５にかかるネットワーク異常検出プログラムは、請求項１０〜１４のいずれか一つに記載の方法を電子計算機に実行させることを特徴とする。
【００４７】
【発明の実施の形態】
以下、図面を参照して、この発明の実施の形態であるネットワーク異常検出装置について説明する。
【００４８】
（実施の形態１）
まず、実施の形態１にかかるネットワーク異常検出装置について説明する。以下では、まず実施の形態１にかかるネットワーク異常検出装置の構成および動作を説明した上で、正常領域たる主成分軸の導出プロセスについての説明を行うこととする。
【００４９】
図１は、実施の形態１にかかるネットワーク異常検出装置の構成を示すブロック図である。図１に示すように、本実施の形態１にかかるネットワーク異常検出装置は、検出対象たるネットワーク中を一定時間の間に通過するパケットについて、ｋ個（ｋ：自然数）の分類ごとにパケット数をカウントするパケット数カウント部１と、カウントしたパケット数をｋ個の分類ごとに正規化し、正規化したパケット数を要素としたｋ次元ベクトルを生成するベクトル生成部２とを有する。さらに、本実施の形態１にかかるネットワーク異常検出装置は、ｋ次元特徴空間において各次元間の相関関係に基づいて定められた主成分軸を導出する主成分軸導出部３と、必要な情報を記憶する記憶部４と、生成したｋ次元ベクトルとの距離を導出する主成分軸−ｋ次元ベクトル間距離測定部５と、ネットワークの異常の有無を判定する異常判定部６とを有する。
【００５０】
パケット数カウント部１は、異常の有無を判定する対象たるネットワーク中を流れる通信パケットをｋ通りの分類に従ってカウントするためのものである。パケット数カウント部１は、カウントしたパケット数をベクトル生成部２および記憶部４に出力する構造を有する。
【００５１】
ベクトル生成部２は、パケット数カウント部１によってカウントされたパケット数に基づいてベクトルを生成するためのものである。具体的には、ベクトル生成部２は、パケット数カウント部１における分類に従って、カウント時におけるネットワーク状態を反映したｋ次元のベクトルを形成する。なお、ベクトル生成部２は、カウントされたパケット数をそのままｋ次元ベクトルの各要素とすることとしても良いが、本実施の形態では後述する理由によりパケット数を正規化した値をベクトルの要素とする構成を有する。ベクトル生成部２は、ベクトル生成部２で生成されたｋ次元ベクトルを主成分軸−ベクトル間距離測定部５と記憶部４とに対して出力する。
【００５２】
記憶部４は、パケット数カウント部１によってカウントされたパケット数と、ベクトル生成部２で生成されたｋ次元ベクトルを記録するためのものである。記憶部４に記憶される値のうち、パケット数は、ベクトル生成部２に出力され、ｋ次元ベクトルは、主成分軸導出部３に出力される構造を有する。
【００５３】
主成分軸導出部３は、ネットワークの正常状態の基準を示す主成分軸を導出するためのものである。主成分軸とは、ネットワークが正常な状態におけるｋ次元特徴空間を形成する各成分間の相関関係を示すものであり、各成分間の相関関係に基づいた正常状態を定義する軸である。主成分軸導出部３によって導出された主成分軸は、主成分軸−ベクトル間距離測定部５に対して出力される。
【００５４】
主成分軸−ベクトル間距離測定部５は、主成分軸に対するｋ次元ベクトルの距離を導出するためのものである。主成分軸−ベクトル間距離測定部５で導出された距離は、異常判定部６に出力される。
【００５５】
異常判定部６は、主成分軸−ベクトル間距離測定部５で導出された距離に基づいて、ｋ次元ベクトルを形成したタイムスロットにおけるネットワーク状態の異常の有無を判定する。具体的には、異常判定部６は、主成分軸−ベクトル間距離測定部５で導出された主成分軸とｋ次元ベクトルとがなす距離が所定の閾値以上の場合にはネットワーク状態が異常であると判定する。
【００５６】
次に、本実施の形態１にかかるネットワーク異常検出装置の動作について説明する。図２は、本実施の形態２にかかるネットワーク異常検出装置の動作を示すフローチャートであり、フローチャートを用いて動作の流れを簡単に説明した後、各ステップについて詳細に説明する。
【００５７】
まず、ネットワーク状態の検証対象たるネットワーク中を流れるパケットに対して、パケット数カウント部１はｋ個の分類ごとにパケット数をカウントする（ステップＳ１０１）。カウントされたパケット数は、分類ごとにベクトル生成部２に出力され、次ステップにおけるベクトル生成に用いられる。
【００５８】
そして、カウントされたパケット数は、記憶部４に記憶された過去のタイムスロットにおける多数のカウント数に基づいて、ベクトル生成部２において分類ごとに正規化され、かかる正規化された値を要素として分類の個数に対応した次元を有するｋ次元ベクトルが生成される（ステップＳ１０２）。生成されたｋ次元ベクトルは記憶部４および主成分軸−ベクトル間距離測定部５に出力され、将来の主成分軸生成および次ステップにおける距離測定に用いられる。
【００５９】
その後、生成されたベクトルを用いて、主成分軸−ベクトル間距離測定部５によって主成分軸との距離が導出される（ステップＳ１０３）。導出された値は異常判定部６に出力され、次ステップの異常判定に使用される。
【００６０】
最後に、ステップＳ１０３で導出された距離の値は、あらかじめ定められた閾値と比較され（ステップＳ１０４）、導出された距離が閾値よりも大きいと判断された場合にはネットワーク状態に異常が生じたと判定し（ステップＳ１０５）、閾値よりも小さい場合には正常と判定される（ステップＳ１０６）。以上で、本実施の形態１にかかるネットワーク異常検出装置の動作は終了し、ネットワーク状態の異常の有無が判定される。
【００６１】
次に、ステップＳ１０１〜Ｓ１０４について詳細に説明する。まず、ステップＳ１０１において、パケット数をカウントする理由について説明する。ネットワーク状態の異常の検出を行う場合、検出能力を左右する最も重要なファクタは、用いるパラメータである。すなわち、何を観測するかにより、検出することのできる事象が決定される。観測すべき事象を逃してパラメータを設定してしまった場合は、そのパラメータを用いてどれほど優れたアルゴリズムを適用しても目的とする事象を検出することは不可能である。
【００６２】
異常検出に用いるパラメータを設定するにあたり、異常状態に何らかの特徴が現れるパラメータを設定しなくてはならない。異常状態を、「何らかの不正アクセスを受けている、あるいは機器障害等が発生している状態」と定義する。このような異常状態において、ネットワーク生じる変化について考える。例えば、ネットワーク管理者がトラヒックデータを眺めていた時、どのような兆候が現れた時に異常を感じるかと考えると、以下のようなものが挙げられる。
・ＳＹＮパケット、ＲＳＴパケットが大量に発生
ＳＹＮパケットを送りつけ、その反応を調べるｐｒｏｂｅ攻撃を受けており、接続が失敗したことを伝えるＲＳＴパケットが発生している可能性がある。
・特定プロトコル（ＳＹＮ、ＵＤＰ等）のパケットが大量に発生
ある特定のプロトコルのパケットを大量に送りつけ、攻撃対象ホストのサービスを妨害するＤｏＳ攻撃が行われている可能性がある。ＤｏＳ攻撃に利用されるパケットとして、ＳＹＮパケットやＵＤＰパケットがあり、それぞれＳＹＮ  ｆｌｏｏｄ、ＵＤＰ  ｆｌｏｏｄ  と呼ばれる。
・特定ポートに関するＩＣＭＰパケットやＲＳＴパケットが大量発生
ネットワーク内で特定の役割を持つサーバが何らかの原因でダウンすると、そのサーバに対するリクエストは受理されず、リクエストがサービスされないことを知らせるためのエラーパケットとしてＩＣＭＰパケットまたはＲＳＴパケットが発生する。この際、破棄されるリクエストパケットは、所望のサービスを提供するポートへ向けられており、さらに、リクエストが失敗すると、クライアントは何度か再リクエストをすることがあるため、特定のポートに関するパケットが極端に増加することがある。これらがエラーパケットとなる場合は、機器障害が発生している可能性が高い。
【００６３】
以上のように、ネットワーク管理者がネットワーク異常を感じる原因が特定のパケット数の変化であることを鑑みて、本実施の形態１では、異常検出に用いるパラメータとして特定のパケット数を用いることとしている。具体的には、本実施の形態１にかかるネットワーク異常検出装置では、ネットワーク状態を表す指標として、タイムスロット毎にカウントされる特定のプロトコル別のパケット発生数をパラメータとしている。かかるパラメータ設定により、任意のタイムスロットでのプロトコルの分布が明らかになり、行われている通信の種類や数を把握することができる。
【００６４】
次に、カウントすべきパケットの種類の導出について説明する。本実施の形態１では、カウントすべきパケットの第１の条件として、常に観測されるパケットであることとする。滅多に観測されないようなプロトコルのパケットを観測対象とすると、そのパケットの発生数ではなく、有無により異常検出を行うことになってしまうためである。従って、カウントすべきパケットの種類としては、常に観測されるパケットとすることが望ましい。
【００６５】
第２の条件としては、他のパケットとの間に相関関係、例えば量的な関係を持つこととする。例えば、総パケット数は、（総パケット数＝ＴＣＰ＋ＵＤＰ＋ＩＣＭＰ）という関係がある。この関係は厳密には正しくないが、ＩＰレベルでは、ＴＣＰ、ＵＤＰ、ＩＣＭＰの３種類のパケットがトラヒックのほとんどを占める。この関係が崩れる状態は通常ではほとんど観測されないことから、崩れた場合にはネットワークが異常状態となっていると考えることができる。上記のような相関関係を有する種類のパケットを観測量とすることで、ネットワークの正常状態を決定できると共に、決定した正常状態からの逸脱の程度を測定することによってネットワークの異常を検出することが可能となる。
【００６６】
以上の観点に基づいて、本実施の形態１では以下の１０通りの分類に従って、ステップＳ１０１でパケット数をカウントすることとしている。
・すべてのパケット
・ＴＣＰパケット
・ＴＣＰパケットのうちＳＹＮフラグのついたパケット
・ＴＣＰパケットのうちＦＩＮフラグのついたパケット
・ＴＣＰパケットのうちＰＳＨフラグのついたパケット
・ＴＣＰパケットのうちＲＳＴフラグのついたパケット
・ＴＣＰパケットのうち上記フラグのついていないパケット
・ＵＤＰパケット
・ＵＤＰパケットのうち、ＤＮＳに関するパケット
・ＩＣＭＰパケット
【００６７】
なお、かかる分類はあくまで例示にすぎず、他の分類に従ってパケット数をカウントすることとしても良い。すなわち、ネットワークの種類およびネットワークの利用者によっては常に観測されるパケットおよび相互に量的関係を有するパケットは相違する可能性があることから、異常検出対象たるネットワークの特性に応じてカウントされるパケットの分類は相違することとなる。
【００６８】
次に、ステップＳ１０２におけるｋ次元ベクトルの生成について説明する。ステップＳ１０２では、ステップＳ１０１でカウントされたｋ通り（本実施の形態１では１０通り）の分類ごとのパケット数に基づいて、測定期間におけるネットワークの状態を示すｋ次元ベクトルを生成する。具体的には、ベクトル生成部２は、記憶部４に記憶された、異なる時刻におけるｋ通りの分類ごとのパケット数に関するデータを参照して、ステップＳ１０１でカウントされた各分類のパケット数を正規化する。すなわち、過去のパケット数およびパケット数カウント部１によって得られたパケット数の平均値が０、標準偏差が１となるように正規化を施している。
【００６９】
本ステップで正規化を行うこととしたのは、上記したパケット数が分類ごとに取りうる値が一般に異なり、パケット数をそのままｋ次元ベクトルの要素とした場合、要素間の影響力に差が生じるためである。例えば、上記の分類のうち、ＩＣＭＰパケットが１０個から５０個に増加した場合と、すべてのパケットが１０００個から１１００個に増加した場合とでは、ネットワーク状態の異常を検出する観点からはＩＣＭＰパケットの増加に着目するべきである。しかしながら、パケットの絶対数をパラメータとした場合には、すべてのパケット数の変化の中にＩＣＭＰパケット数の変化が埋もれてしまい、ＩＣＭＰパケットに関する異常が検知されなくなるおそれがある。従って、ベクトル生成部２では、パケット数カウント部１によってカウントされたｋ通りの分類ごとのパケット数を正規化し、分類された各要素のネットワーク異常の判定に対する影響力を均一化している。
【００７０】
以上より、ベクトル生成部２は、上記分類に従ってカウントされたパケット数を正規化し、あるタイムスロットｉにおけるネットワーク状態Ｘｉを
Ｘｉ＝（ｘｉ１、ｘｉ２、ｘｉ３、・・・・、ｘｉｋ）
のようにｋ次元ベクトルの形で表現している。かかるｋ次元ベクトルの概念を導入することによって、あるタイムスロットにおけるネットワークの状態をｋ次元特徴空間中の一点として表現することができる。すなわち、生成されるｋ次元ベクトルは、特徴空間上での位置がデータとしての性質を示すこととなり、ｋ次元ベクトルの特徴空間上での分布を解析することによってネットワーク状態の異常の有無を判断することができる。
【００７１】
次に、ステップＳ１０３における主成分軸とｋ次元ベクトルとがなす距離の測定について説明する。本実施の形態１において、カウントされるパケットは互いに相関関係を有するように選択されることから、ｋ次元特徴空間中で各ネットワーク状態はプロトコルにより生じる相関関係を保って分布する。例えば、正常なＴＣＰ通信が行われた場合、発生するＳＹＮパケットとＦＩＮパケットの数は同じであるため、ネットワーク状態においても、タイムスロットで区切ることを考慮に入れてもＳＹＮパケットとＦＩＮパケットの数の間に大きな差は生まれないと考えられる。図３は、評価用データからネットワーク状態を作成し、ＳＹＮパケットとＦＩＮパケットの値を二次元平面にプロットした図である。図３に示すように、ＳＹＮとＦＩＮの発生数は、非常に強い相関関係にあることがわかる。実際、この分布の相関係数を求めると、ほとんどの時間帯で０．９８〜１となる。
【００７２】
同様に、評価用データより各プロトコル間の相関係数を求めると、図４のようになる。ＳＹＮ−ＦＩＮの他、ａｌｌ、ＴＣＰ、ＰＳＨ、ｎｏｆｌａｇの４項目は、いずれの組合せでも相関係数が高くなっている。これは、総パケット数のうちＴＣＰパケットの占める割合の変化が少なく、同様にＴＣＰパケット数のうち、ＰＳＨまたはｎｏｆｌａｇパケットの占める割合の変化が少ないためである。
【００７３】
ネットワークの利用状況に大きな変化がなければ総パケット数中のＴＣＰパケットの割合は一定であり、ＴＣＰパケットの中でも、通信の開始と終了により発生するＳＹＮパケットとＦＩＮパケットの数は少なく、主に通信内容が格納されているＰＳＨパケットとｎｏｆｌａｇパケットの割合が大きくなることが想定されるため、このバランスが崩れることはない。
【００７４】
このため、ｋ次元特徴空間を形成する各成分間の正常な相関関係を反映した主成分軸は、ステップＳ１０４における異常判定における判定基準たる正常領域として機能することが可能となる。従って、主成分軸からの逸脱はネットワーク状態の異常状態の程度を示すこととなり、かかる考えに基づいて本ステップでは主成分軸とｋ次元ベクトルとの間の距離を測定することとしている。
【００７５】
次に、ステップＳ１０４について説明する。上記のように、主成分軸はネットワークの正常状態の基準となるものであることから、判定対象たるｋ次元ベクトルが、主成分軸からどの程度離隔しているかを判断基準とすることによってネットワーク状態の異常の有無を判定することが可能である。従って、本ステップにおいては、主成分軸とｋ次元ベクトルとがなす距離が閾値以上か否かによってネットワークの異常の有無を判定することとしている。
【００７６】
ここで問題となるのは、異常の有無の判定基準となる閾値をいかに設定するかである。本実施の形態１では、閾値を決定するにあたって、第２主成分なる概念を導入し、かかる第２主成分の主成分寄与率に基づいて閾値を決定している。第２主成分軸は、ｋ次元特徴空間におけるｋ次元ベクトルの分布に対して、２番目に分散が大きい値となる軸のことをいい、主成分寄与率とはその分散具合を表す指標である。主成分寄与率に基づいて閾値を決定する場合、例えば第２主成分の方向の分散が大きい場合には閾値を大きくすることによって誤検出の発生を抑制することが可能となる。具体的には、本実施の形態１では、第２主成分の主成分寄与率に適当な係数を乗算した値を閾値としている。乗算する係数は実験的に求めることが可能であり、本実施の形態１では、後述の実施例における測定結果に基づいて、７０程度の値としている。
【００７７】
かかる閾値を用いて、所定のタイムスロットに得られたｋ次元ベクトルについて、ネットワークの正常状態を示す指標たる主成分軸からの距離が閾値以上か否かを判定することによって、検出対象のネットワーク状態が異常であるか否かの判定がなされる。
【００７８】
次に、ネットワーク状態の異常を検出する基準となる主成分軸の導出について説明する。簡易な構成としては、ｋ次元を構成する各成分の一般的な相関関係を用いてあらかじめ主成分軸を一意に定めることとしても良い。しかしながら、本実施の形態１では、検出対象のネットワークの特性に対応した異常検出を行うため、記憶部４に記憶された過去のｋ次元ベクトルのｋ次元特徴空間における分布状態に基づいて主成分軸を導出している。また、検出精度をさらに高める観点から、過去のｋ次元ベクトルの分布状態の中から異常状態を排除しつつ主成分軸を複数回導出することとしている。
【００７９】
図５は、主成分軸導出のプロセスを示すフローチャートである。以下、フローチャートを参照して動作の流れを簡単に説明した後、各ステップについて詳細に説明する。まず、検出対象たるネットワークについて過去に得られた複数のｋ次元ベクトルの分散が最大となる主成分軸を導出する（ステップＳ２０１）。なお、簡易な方法としては、正常状態に対応することが明らかなｋ次元ベクトルのみから主成分軸を導出することとしても良い。
【００８０】
そして、ステップＳ２０１で導出された主成分軸を基準として、過去のｋ次元ベクトルのうち、主成分軸から所定距離だけ離隔した異常状態のものを検出する（ステップＳ２０２）。かかる異常状態の検出は、上述したステップＳ１０１〜Ｓ１０４と同様のプロセスによって個々のｋ次元ベクトルについて検出動作を行う。
【００８１】
その後、ステップＳ２０２に基づいて異常状態が存在するか否かの判定を行う（ステップＳ２０３）。異常状態が存在する場合にはステップＳ２０４に移行し、異常状態が存在しない場合にはステップＳ２０１で導出された軸が主成分軸として決定され、主成分軸の導出が終了する。
【００８２】
ステップＳ２０３で異常状態が存在すると判定された場合には、検出された異常状態のｋ次元ベクトルについてクラスタリングを行う（ステップＳ２０４）。具体的には、後述のｋ−ｍｅａｎｓクラスタリングを用いて、異常状態のｋ次元ベクトルを一定数のクラスタに分類する。
【００８３】
そして、クラスタリングされた異常状態のｋ次元ベクトルと、正常状態のｋ次元ベクトルとを分離する判別軸を導出する（ステップＳ２０５）。具体的には、後述するフィッシャーの線形判別法を用いて判別軸の導出を行う。
【００８４】
その後、異常状態のｋ次元ベクトルを除去した上で、正常状態のｋ次元ベクトルの分布状態を、ステップＳ２０５で導出した判別軸の方向に圧縮する（ステップＳ２０６）。具体的には、判別軸と垂直に交差する面の分散が０となるよう正常状態のｋ次元ベクトルの分布状態を変化させる。そして、本ステップ後には再びステップＳ２０１に戻ってデータ圧縮が行われたｋ次元ベクトルの分布状態に基づいて主成分軸の導出が行われる。
【００８５】
次に、各ステップについて詳細に説明する。ステップＳ２０１では、過去に得られたｋ次元ベクトルの分布状態に基づいて主成分軸の導出を行っており、具体的には、主成分軸は、主成分分析によって導出される。主成分分析とは、多次元のデータの次元圧縮の手法であり、主成分分析を用いることによって圧縮により失われる情報量を最小にする軸を求めることができる。図６のように、２次元の要素（ｘ１、ｘ２）を合成して、１次元の軸ｚに射影することを考える。このとき、次元圧縮により失われる情報量を最小にすることは、軸ｚの分散を最大にすることと等価であり、相関を示す軸を求めることができる。かかる軸ｚが主成分軸に相当することから、主成分分析によって得られた主成分軸は相関関係に基づいたネットワークの正常状態の分布を定義するといえ、ネットワークの異常の有無を検出する指標となる。
【００８６】
ステップＳ２０２では、導出された主成分軸との距離が大きいクラスタを異常状態として検出する。まず、ステップＳ２０２において異常状態の検出を行う理由について説明する。
【００８７】
過去のｋ次元ベクトルのデータがすべて正常状態の場合には、ｋ次元ベクトルのｋ次元特徴空間上の分布に基づいて主成分軸を導出すれば足りる。しかしながら、実際にはすべてのｋ次元ベクトルが正常状態に対応している保証はなく、異常状態のｋ次元ベクトルの混在を配慮して主成分軸の導出を行う必要がある。図７は、極端に逸脱した異常状態のｋ次元ベクトルが存在する場合を示す模式図である。
【００８８】
上述のように、主成分軸はｋ次元特徴空間におけるｋ次元ベクトルの分布状態に関して、分散が最小になるよう導出される。従って、極端に逸脱したｋ次元ベクトルが存在する場合には、かかるｋ次元ベクトルも含んだ状態で分散が最大となるよう主成分軸が導出されることとなり、図７に示すように、望ましい主成分軸と異なる主成分軸が導出されることとなる。すなわち、異常状態が混在している場合には、ステップＳ２０１で導出した主成分軸は異常状態をも反映することとなり、ネットワーク状態の異常の判定基準として用いることは妥当ではない。従って、本実施の形態１における主成分軸の導出プロセスでは、導出した主成分軸に基づいて異常検出を行い、異常状態が検出された場合には、所定の処理を行った上で再び主成分軸の導出を行うこととしている。
【００８９】
ステップＳ２０４では、ステップＳ２０３で異常状態のｋ次元ベクトルが存在すると判定された場合、異常状態のｋ次元ベクトルについてクラスタリングを行っている。かかるクラスタリングを行うのは、後述の判別軸の導出に用いるためである。クラスタリングの手法としては、セントロイドからの距離を基準として行うｋ−ｍｅａｎｓクラスタリングや、デンドログラム等を用いることが可能である。
【００９０】
後述のステップＳ２０５において問題となるのは、検出される異常状態は未分類の分布に対して様々な方向に存在し、線形分離可能な分布になりにくいことである。この様子を図８に示す。かかる問題を解決するために、ステップＳ２０４では、得られた異常状態の分布に対してｋ−ｍｅａｎｓクラスタリングを用い、複数のカテゴリに分割している。充分な数のセントロイドを与えて細かく分割すると、図９に示すように、それぞれのカテゴリは線形分離可能なものとなる。この過程を経ることで、ステップＳ２０５で分布を圧縮する判定軸が複数となり、圧縮された分布も複数得られる。
【００９１】
かかるクラスタリングの際に重要となるのは、ｋ−ｍｅａｎｓクラスタリングに用いるセントロイドの数である。これは、ある段階で検出された異常状態をいくつのクラスタに分類するべきかという指標であり、与えるクラスタ数が少なければ、各クラスタと正常状態が線形分離不可能な分布となってしまい、分布を圧縮する意味が失われてしまう。一方、多すぎるクラスタ数を与えた場合は、同じ方向に圧縮される分布が複数となってしまう可能性がある。この場合は、同じ方向に圧縮された分布からは次の段階で同じ異常状態が検出されるため、計算時間は増えるが、検出精度に悪影響はないと考えられる。よって、ｋ−ｍｅａｎｓクラスタリングに用いるセントロイド数は、大きすぎても意味はないが、充分に大きな値を与えるべきである。なお、後述の実施例では、測定結果に基づいてセントロイド数を１０としている。
【００９２】
次に、ステップＳ２０５について説明する。ステップＳ２０５では、異常状態のｋ次元ベクトルと、正常状態のｋ次元ベクトルとを分離する判別軸を導出している。具体的には、異常状態のｋ次元ベクトルについて形成されたクラスタと、正常状態のｋ次元ベクトルについて形成されたクラスタとを分離する判別軸を導出する。判別軸の導出に用いられるフィッシャーの判別手法とは、図１０に示すように、複数のクラスが存在する場合に、クラス内分散が小さくなり、クラス間分散が大きくなる手法である。なお、フィッシャーの判別手法以外に、ニューラルネットワークを利用した判別軸の導出等も可能である。
【００９３】
ステップ２０６では、異常状態のｋ次元ベクトルを除去した上で、判別軸方向に正常状態のｋ次元ベクトルの分布を圧縮している。異常状態と判定されたクラスタを除去するのは、かかるクラスタが主成分軸導出の妨げとなるためである。すなわち、主成分軸導出に用いる過去のｋ次元ベクトルの中には異常状態を反映したものも存在することから、極端に逸脱したデータを除去することによって、主成分軸導出の精度を向上させる必要があるためである。
【００９４】
判別軸方向にｋ次元ベクトルを圧縮するのは次の理由による。図１１は、ｋ＝３の場合を例とした、圧縮処理を行わない場合における検出対象について示す模式図である。図１１に示すように、実際には主成分軸から様々な方向に異常状態が分布しており、まず外側の境界により異常状態の検出を行った後、別方向の異常状態を検出するために内側の境界が使用される。しかしながら、内側の境界が使用された場合には、正常状態の領域もしくは正常状態と異常状態とが混在する領域についても異常状態と判定されるおそれがある。一方で、外側の境界を用いて異常状態の領域が既に検出された横軸方向については、改めて内側の領域で異常状態の検出を行う必要性は存在しない。
【００９５】
従って、本実施の形態１では、ステップＳ２０６において正常状態のｋ次元ベクトルの分布を、判別軸方向に圧縮している。かかる圧縮を行うことによって、既に異常状態を検出した方向について、誤検出の発生を防止している。すなわち、図１２に示すように、一度横軸方向に異常状態が検出された後、かかる横軸方向について圧縮を行うことによって、横軸方向に存在する正常状態と異常状態の混在領域を誤って検出することを避けることが可能となる。
【００９６】
より具体的には図１３に示す状態となる。すなわち、検出された異常および異常状態１を含む分布が存在する場合にまず主成分軸を導出することによって異常を検出する（この段階で異常状態１を検出することはできない）。その後、フィッシャーの線形判別による判別軸を導出するとともに検出された異常をのぞいた上で、圧縮を行う。これにより、異常状態１を検出することが可能となる。
【００９７】
次に、本実施の形態１にかかるネットワーク異常検出装置の利点について説明する。まず、本実施の形態１では、ｋ次元特徴空間において正常なネットワーク状態を定義づける主成分軸を用いることとし、かかる主成分軸に対する距離に基づいてネットワーク状態の異常の有無を判定する事としている。従って、ネットワーク異常の有無の判断を定量的に行えると共に、複数のパラメータを用いた判断を簡易に行うことができる。
【００９８】
また、本実施の形態１にかかるネットワーク異常検出装置は、ネットワーク上のパケット数に基づいて異常の有無を判断することとしたため、ホスト毎に情報を収集する従来の手法と比較して、システム全体を適用した場合であっても設置コストの上昇を抑制することが可能である。例えば、あるネットワークの入口に本実施の形態１にかかるネットワーク異常検出装置を１台配置した構造とすることで、ネットワーク全体における異常を検出することが可能である。
【００９９】
また、既知のシグネチャを用いた異常検出装置と異なり、未知のネットワーク異常を検出することが可能である。本実施の形態１にかかるネットワーク異常検出装置は、異常の原因に関わらずｋ次元特徴空間上に示された主成分軸からの逸脱の程度によって判定が行われることから、未知の原因によるものであっても異常と判定することが可能である。
【０１００】
さらに、本実施の形態１にかかるネットワーク異常検出装置は、主成分軸を導出する機構を有することから、ネットワークの特性に対応した異常状態の検出が可能である。すなわち、ネットワーク上を流れるデータの態様はネットワーク毎に様々であり、画一的な判定基準を用いた場合には異常状態の誤検出が生じる可能性がある。しかしながら、本実施の形態１では、検出対象のネットワークにおける過去のｋ次元ベクトルを用いて主成分軸を形成することとしており、ネットワークの特性に合致した判定基準を得ることができる。
【０１０１】
また、本実施の形態１にかかるネットワーク異常検出装置は、同一ネットワークに関して、時間変化によるネットワーク特性が変化した場合であっても対応することが可能である。すなわち、例えば主成分軸の導出に際して用いるｋ次元ベクトルを最近導出されたものに限定することにより、現在のネットワーク特性に対応した主成分軸の導出が可能である。さらに、最近導出されたｋ次元ベクトルに基づいて一定間隔で主成分軸の導出を行うこととすれば、常に現在のネットワーク状況に対応した異常検出が可能となる。
【０１０２】
なお、本実施の形態１にかかるネットワーク異常検出装置は、正常状態からの逸脱の程度によって異常の有無を判定する構造とするため、未知の異常をも検出可能な利点を有する一方、何が原因となってネットワーク異常が発生したかを直接的に知ることはできない。しかしながら、ｋ次元特徴空間上の主成分軸に対する異常状態の分布を調べることによって、異常の原因を推定することが可能である。
【０１０３】
例えば、ある異常状態について、図１４のような、主成分軸に直交するベクトルを異常状態の位置まで延ばすことが有効である。こうして求まるベクトルの成分のうち、大きな値をとるパラメータが、この異常状態の逸脱に大きな影響を与えたパラメータであると考えられる。
【０１０４】
各異常状態について、逸脱するパラメータの組合せはいくつかのパターンに分類できる。例えば、ＩＣＭＰパケットの逸脱量の大きなグループは機器障害の可能性が高く、ＦＩＮパケット数に比べてＳＹＮパケットの数が多いために逸脱していたり、さらにＲＳＴパケットが多く発生している場合にはスキャンが行われている可能性が高い。さらに、行われている通信のデータ量が大きい場合に、総パケット数の他にＰＳＨパケットやｎｏｆｌａｇパケット、あるいはＵＤＰパケットが大量に発生するので、こういったパラメータの逸脱のために検出された状態は、不正アクセスが原因である可能性は低いと考え、異常状態としないことができる。このような分類を行うことで、発生した異常状態についての大まかな情報を管理者に与えると同時に、誤検出を減少させることもできる。
【０１０５】
（実施例）
本願発明者らは、本実施の形態１にかかるネットワーク異常検出装置を実際にネットワーク上に構築して実験を行い、その効果について確認している。実験には、公開されているトラヒックデータのサンプルを使用して、ネットワーク異常検出装置に用いる主成分軸および最適な閾値を求めた後に不正アクセス検出数の評価を行う。さらに、未知不正アクセスに対する検出能力の評価を行い、段階的分類手法の有効性を確認するために、大分類のみによる検出を行った場合との比較を行う。さらに、検出された異常状態について、どのような異常が発生しているのか、大まかな情報を与えるための分類を行い、その有効性を確認する。
【０１０６】
なお、本実施例においては、大分類および細分類の二段階の分類を行っている。まず大分類として、過去に観測された正常状態より主成分軸を求め、極端に逸脱するデータを検出するとともに取り除く。過去の正常状態より主成分軸を求める場合、ネットワークの特性が変化しており、解析対象のデータに対して最適な主成分軸ではない可能性がある。よって、大分類を行った後に細分類として、解析対象データより主成分軸を求め、同様に主成分軸から距離的に逸脱したデータを異常状態として検出する。細分類では、大分類によって極端な逸脱点が取り除かれているので、主成分軸により定義される正常状態のプロファイルがより正確なものとなる。
【０１０７】
本システムの評価実験には、侵入検知システムの性能評価用トラヒックデータである”１９９９  ＤＡＲＰＡ  Ｉｎｔｒｕｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ  Ｅｖａｌｕａｔｉｏｎ  Ｄａｔａ  Ｓｅｔｓ”（以下、「評価データセット」と称する）を使用する。このデータセットは、攻撃が行われた時刻や攻撃の種類が全て明らかにされている。実験に用いるパラメータとデータの条件は、以下の通りである。
・ネットワーク状態を作成するタイムスロットは１分間とする
・ｐｒｏｂｅ、ＤｏＳ攻撃を検出対象とする
・攻撃に関与したパケットが１つでも存在するタイムスロットは異常状態とする・ｋ−ｍｅａｎｓクラスタリングのセントロイド数は１０とする
【０１０８】
このデータセットでは、一週間（５日間）単位で、攻撃の存在するデータと存在しないことが保証されているデータそれぞれが与えられている。実験では、攻撃の存在するある一週間のデータより正常状態のみを抜き出したものを正常状態、逆に異常状態のみを抜き出したものを異常状態とする。さらに異常状態のデータ数を増やすため、異常状態に関しては２週間分のトラヒックより抽出した。
【０１０９】
細分類は繰り返し行い、検出される異常状態の数が０となった時点で終了し、その段階までに検出した攻撃の数と誤検出の数を評価する。この際、ある攻撃の存在するタイムスロットを一つでも検出できれば、その攻撃を検出したものとする。
【０１１０】
提案手法に用いられるパラメータは、ｋ−ｍｅａｎｓクラスタリングに用いるセントロイド数と、主成分軸との投影距離である。このうち、主成分分析に用いる閾値を、
閾値＝（第二主成分の主成分寄与率）×ｒａｔｉｏ
と定義する。
【０１１１】
セントロイド数とｒａｔｉｏの値による攻撃検出能力の変化を図１５に示す。
なお、提案手法において、ｋ−ｍｅａｎｓクラスタリングの初期セントロイドはランダムに決定するため、同じパラメータを与えても結果に変化が生じる。この影響を取り除くため、各パラメータの組合せについて、５回の試行による結果の平均値を採用した。
【０１１２】
図１５より、セントロイド数に関わらず、ｒａｔｉｏ値が大きくなるほど検出数は少なくなる。これは、ｒａｔｉｏ値が大きくなるほど主成分分析における閾値の値が大きくなり、異常状態として検出されるデータの数が減少するためである。また、セントロイド数が１の場合に比べ、５以上とした場合の方が高い検出数となっている。このことは、セントロイド数を１とした場合は、検出済みの異常状態と未検出の状態とが線形分離可能な分布とならないため、効果的な分布の圧縮が行われなかったためと考えられる。この結果を踏まえ、セントロイド数は１０であれば充分に大きな値と考え、これ以降の実験にはこの値を用いる。次に、適切なｒａｔｉｏ値を求めるために、ｒａｔｉｏ値による検出数と誤検出数の関係を調査した。セントロイド数を１０とした場合の結果を図１６、図１７に示す。なお、図１６、図１７における曲線ｌ１は、誤検出数の変化を示し、曲線ｌ２は、検出数の変化を示している。
【０１１３】
１９９９  ＤＡＲＰＡ  Ｉｎｔｒｕｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ  Ｅｖａｌｕａｔｉｏｎ  では、許容される誤検出数の目安として一日あたり１０件以下という値を示している。この基準に従えば、この実験では５日分のデータを用いているので、５０件以下の誤検出数であれば実用的といえる。この基準を満たすためには、図１７より、およそ７０以上の値を与えればよいことがわかる。また、より大きな値を与えると、誤検出数はさらに減少する。実際のシステムでは、この値は検出の感度を調整する指標として、管理者がニーズに合わせて調整することが望ましい。
【０１１４】
前述のｒａｔｉｏ値を７０に設定して、攻撃検出数の評価を行った結果を図１８に示す。実験では、段階的細分類の４段階目で検出された状態の数が０となり、分類を終了した。この段階で検出された攻撃数は３７であり、これは、全攻撃数６９の約５４％にあたる。評価データセットでは、優秀なシステムの検出率として４６〜８８％の数値を挙げている。しかし、これらには、シグネチャ方式のシステムや異常検出方式と組み合わせたハイブリッドシステムが含まれているため、単純な比較はできないが、これらに匹敵する検出率を得たといえる。
【０１１５】
次に、未知のネットワーク異常の検出について評価する。従来、未知あるいは亜種であるために、全てのシステムで検出率が極端に悪い攻撃がリストアップされている。このうち、ＤｏＳとｐｒｏｂｅに分類されるものについて、評価データセットにて最も性能のよかったシステムの検出数と、提案システムの検出数との比較を図１９に示す。
【０１１６】
いくつかは本手法が勝り、いくつかでは劣るという結果となっている。
分母が異なるため一概に比較することはできないが、ここで挙げられた全ての検出率をとると、評価データセットにて最も性能のよかったシステムの検出率は８／３９（２１％）であるのに対して、提案手法の検出率は７／２１（３３％）となり、提案手法が未知の攻撃に対して特に高い検出能力を持っていることがわかる。
【０１１７】
次に、検出された異常状態の分類を行った。具体的には、検出された異常状態について、主成分軸と直交し、主成分軸を始点として異常状態の位置に向かうベクトルを求め、その成分より逸脱の原因となったパラメータの推定を行った。診断の方法は以下の通りである。
・ＳＹＮ
ＳＹＮの逸脱量がＦＩＮの逸脱量より大きく、ＳＹＮパケットを利用したｐｒｏｂｅ攻撃あるいはＤｏＳ攻撃が行われた可能性がある。
・ＦＩＮ
ＦＩＮの逸脱量がＳＹＮの逸脱量より大きく、ＦＩＮパケットを利用したｐｒｏｂｅ攻撃が行われた可能性がある。
・ｆａｕｌｔ
ＲＳＴまたはＩＣＭＰの逸脱量が大きく、障害が発生している可能性が高い。
・ＤＮＳ
ＤＮＳの逸脱量が大きく、ＤＮＳサーバに障害が発生したり、ＤＮＳを利用するクライアントに設定ミスなどの障害が発生した可能性がある。
・ＵＤＰ
ＵＤＰの逸脱量が大きく、ＵＤＰを利用したＤｏＳ攻撃が行われた可能性があるが、ストリーミング等、大量のＵＤＰパケットを発生する正常な通信の可能性もある。
・ｂｉｇ  ｔｒａｆｆｉｃ
ａｌｌ、ＴＣＰ、ＰＳＨまたはａｌｌ、ＴＣＰ、ｎｏｆｌａｇの逸脱量が大きく、データ量の大きなＴＣＰ通信が行われたために検出された可能性があり、異常状態として検出しないことが望ましい。
【０１１８】
これまでの実験により検出された異常状態４９５個と、誤検出された３２個を以上の分類方法に従って分類した結果を図２０に示す。
【０１１９】
最も多くの異常状態が分類されたのはｆａｕｌｔとＳＹＮであった。ｆａｕｌｔは、ＲＳＴまたはＩＣＭＰが大量に発生した状態としている。ｐｒｏｂｅ、ＤｏＳ攻撃の中には、開いていないポートにパケットを送るために、被害者ホストからのＲＳＴパケットやＩＣＭＰパケットの発生を伴うことが多く、ｆａｕｌｔに分類されたものと考えられる。また、誤検出された状態も多くがｆａｕｌｔに分類された。これは、不正アクセス以外の要因、例えば機器障害が原因となっていると考えられる。
【０１２０】
これらの情報は大まかではあるが、管理者のポリシによって検出すべきものと検出の必要のないものを取捨選択することができる。
【０１２１】
（実施の形態２）
次に、実施の形態２にかかるネットワーク異常検出装置について説明する。実施の形態２では、実施の形態１と同様にｋ通りの分類に従ってパケット数をカウントしてｋ次元ベクトルを導出すると共に、過去のネットワーク状態に基づいたｋ次元ベクトルをクラスタリングする事によって得られた正常状態領域とｋ次元ベクトルとの位置関係に基づいてネットワーク状態の異常の有無を検出している。ｋ次元ベクトルの導出は実施の形態１と同様に行われることから説明を省略し、以下ではネットワーク異常の判定基準となる正常状態領域の導出を中心に説明を行う。
【０１２２】
まず、本実施の形態２にかかるネットワーク異常検出装置は、ネットワーク状態を反映したｋ次元ベクトルが多数存在する場合、図２１に示す状態で分布することを前提として異常状態の検出を行っている。すなわち、類似した状態同士は特徴空間内において互いに近接した状態で集合すること、異常状態を反映したｋ次元ベクトルの個数は、正常状態を反映したｋ次元ベクトルに比べてきわめて低いことを前提としている。
【０１２３】
かかる前提に基づいて、本実施の形態２では、過去のネットワーク状態等から多数得られたｋ次元ベクトルをデンドログラム、ｋ−ｍｅａｎｓクラスタリング等によってクラスタリングを行い、最も大きいクラスタについて正常状態領域として決定する。そして、判定対象たるｋ次元ベクトルが得られた場合に、正常領域に属する場合には正常状態と判定し、正常領域に属さない場合、または正常領域から所定距離だけ離隔して存在する場合には異常状態と判定することとしている。以下では、デンドログラムを用いて正常領域を導出する例について説明する。
【０１２４】
デンドログラムとは、複数の状態間で、距離の最も小さい状態同士のグループ化を繰り返すことにより、最終的に２つのクラスタを形成する手法である。デンドログラムは、互いに近接する密集に基づいて一つのクラスタを形成することから、ｋ次元ベクトルが図２１に示すような分布を示す場合に、一つの大きなクラスタを正常状態、複数の小さなクラスタを異常状態として分類することが可能である。
【０１２５】
デンドログラムを用いて異常の有無を判定する際に重要となるのは、グループ化の回数である。すなわち、グループ化開始直後のようにクラスタ数が多数存在する場合、最も大きいクラスタのみを正常状態とすると、他の多数のクラスタに属するｋ次元ベクトルが異常と判定されてしまい、本来正常であるものについてまで異常とされてしまう。一方、グループ化が進行してクラスタの数が少なくなった場合、最も大きいクラスタの中に異常状態を反映した一定数のｋ次元ベクトルが存在することとなり、本来異常であるものについてまで正常と判断されることとなる。従って、本実施の形態２では、ネットワークの特性に応じて適切な回数のグループ化を行う必要がある。
【０１２６】
本願発明者等は、正常状態か否かが既に知られた多数のｋ次元ベクトルについてデンドログラムによる正常領域導出の実験を行って最も適切なグループ化の回数を導出している。以下、かかる実験について説明する。
【０１２７】
実験では、あるネットワークの入口において、トラヒックモニタリングによってパケット情報を取得している。かかるネットワークは、２５ビットマスクのネットワークアドレスを持ち、常時１００台程度のマシンが接続され、ｈｔｔｐ、ｆｔｐなど外部に公開しているサーバが複数台存在するものである。このネットワークによって得られたパケット情報に基づいて、タイムスロットを１分として実施の形態１と同様の手法によってｋ次元ベクトルを多数導出している。なお、今回の実験ではｋ＝６として、ＳＹＮフラグ、ＦＩＮフラグ、ＲＳＴフラグのそれぞれがついたＴＣＰパケット数と、ＵＤＰパケット数と、ＵＤＰパケットのうち、ＤＮＳに関するパケット数と、ＩＣＭＰパケット数についてカウントし、かかるカウント数に基づいてｋ次元ベクトルを導出している。
【０１２８】
得られたｋ次元ベクトルは４８０個であり、かかるデータの中にはｓｎｏｒｔによりホストスキャンが行われたものが１６個含まれていることがあらかじめ明らかになっている。本実験では、デンドログラムによって分類を行った後、かかるｓｎｏｒｔに起因する１６個のデータがネットワーク状態の異常として検出されるか否かによって精度を確認している。
【０１２９】
本実験では、デンドログラムによるグループ化をするたびに、異常状態であるにもかかわらず正常状態に誤分類されたｋ次元ベクトルの個数Ｎｆｎと、正常状態であるにもかかわらず異常状態に誤分類されたｋ次元ベクトルの個数Ｎｆｐとを測定した。図２２は、かかる実験の結果を示すグラフである。図２２に示すように、グループ化の開始当初、すなわち、クラスタが多数存在する時点では、異常状態に誤分類された正常状態の数が多い。一方で、グループ化が進行するに従って、すなわちクラスタの数が減少するに従って正常状態が異常状態に誤分類されるケースが減少する一方、異常状態が正常状態に誤分類されるケースが増加する。これらの誤分類の合計が最も少なくなるのは、グループ化が４７２〜４７３回行われた時点であり、誤分類の合計は１５個であった。かかる時点でグループ化を終了した場合において、最も多数のｋ次元ベクトルを包含するクラスタを正常状態、その他のクラスタを異常状態とする。
【０１３０】
誤分類の合計が最も少なくなった状態における正常状態領域および異常状態領域の評価について、図２３に表を示す。図２３に示すように、正常状態領域に属するｋ次元ベクトル４７１個のうち、１１個の異常状態が含まれる一方、異常状態領域の中には、既知の１６個の異常状態に含まれないものが４個存在した。
【０１３１】
図２４は、異常状態と判断されたｋ次元ベクトルについて、ベクトルを構成する各要素の値を示す表である。図２４において、ｓｃａｎ１〜５は既知の異常状態を示し、ｕｎｋｎｏｗｎ１〜４は、既知の異常状態に含まれないにも関わらず、異常と判定されたｋ次元ベクトルについて示している。なお、本実験で用いられるｋ次元ベクトルは、実施の形態１と同様正規化が施されていることから、正常な値であれば０近傍の値となる。
【０１３２】
図２４に示すように、ｕｎｋｎｏｗｎ１〜４は、いずれもｋ次元ベクトルを構成する何らかの要素について０から著しく逸脱したものが存在する。このうち、ｕｎｋｎｏｗｎ１、４は、いずれもＳＹＮパケット数に対応した要素と、ＦＩＮパケットに対応した要素が０から逸脱しており、通信量が増大した状態を示しているものと推測される。一方で、ｕｎｋｎｏｗｎ２、３はＤＮＳおよびＩＣＭＰに対応した要素に逸脱が見られる。かかる結果に基づいて、実験に用いたパケット情報についてパケット単位で詳細な診断を行ったところ、実際にＤＮＳ障害の兆候が確認された。
【０１３３】
このように、本実施の形態２にかかるネットワーク異常検出装置は、実際に実験を行った結果から、良好な精度で異常状態と正常状態を区別し、正常状態に対応した正常領域を精度よく抽出することが可能であることが明らかとなった。すなわち、実施の形態２にかかるネットワーク異常検出装置における正常領域は、実施の形態１における主成分軸と同様に、ｋ次元特徴空間においてネットワークの状態を判定する基準として十分機能するといえ、かかる手法による異常検出も有効であることが示されている。
【０１３４】
なお、実施の形態１および実施の形態２は、いずれも専用の装置を用いた構造について説明したが、本発明の適用対象は、必ずしも実施の形態に限定して解釈する必要はない。例えば、主成分軸や、デンドログラムまたはｋ−ｍｉｅａｎｓクラスタリングによって導出された正常領域以外であっても、ｋ次元特徴空間上でネットワークが正常状態であることを示す領域であれば、異常検出の指標として用いることが可能である。すなわち、ネットワークを通過する特定のパケット数を用いてｋ次元ベクトルを導出し、かかるｋ次元ベクトルとｋ次元特徴空間上に形成された正常領域とを対比することによってネットワークの異常を検出する構造であれば、本発明を適用することが可能である。また、具体的構造についても、図１のブロック図に示されるものに限定して解釈する必要はなく、上記の手法を用いてネットワークの異常を検出するのであればよい。さらには、上記の手法をアルゴリズムとして記載したプログラムを用いてコンピュータ等の電子計算機に実行させる構造としてもよい。
【０１３５】
【発明の効果】
以上説明したように、この発明によれば、ネットワーク回線の状態をｋ次元ベクトル化し、ｋ次元特徴空間において正常領域を定義してｋ次元ベクトルとの位置関係に基づいてネットワークの異常の有無を検出することとしたため、ネットワーク回線の評価を定量的に行うことができるとともに、未知のネットワーク異常をも検出することが可能である。
【図面の簡単な説明】
【図１】実施の形態１にかかるネットワーク異常検出装置の構成を示すブロック図である。
【図２】実施の形態１にかかるネットワーク異常検出装置の動作を示すフローチャートである。
【図３】ＳＹＮとＦＩＮの相関関係を示すグラフである。
【図４】プロトコル間の相関係数を示す図表である。
【図５】主成分軸の導出プロセスを示すフローチャートである。
【図６】主成分分析による次元圧縮を示すグラフである。
【図７】極端な逸脱に影響される主成分軸の状態を図示した模式図である。
【図８】線形分離不可能な異常状態の分布を示す模式図である。
【図９】異常状態分布の分割を示す模式図である。
【図１０】フィッシャーの線形判別手法により求める軸を示す模式図である。
【図１１】圧縮を行った場合の検出対象を示す模式図である。
【図１２】圧縮を行った場合の検出対象を示す模式図である。
【図１３】圧縮を行った場合の状態を３次元的に図示した模式図である。
【図１４】逸脱度を表すベクトルを図示した模式図である。
【図１５】セントロイド数と検出数との関係を示すグラフである。
【図１６】ｒａｔｉｏと検出数、誤検出数との関係を示すグラフである。
【図１７】図１５の拡大図である。
【図１８】実験結果を示す図表である。
【図１９】検出率が特に悪いとされる攻撃を示す図表である。
【図２０】検出した異常状態の分類を示す図表である。
【図２１】実施の形態にかかるネットワーク異常検出装置において、異常検出の態様を示す模式図である。
【図２２】誤分類数の変化を示すグラフである。
【図２３】デンドログラムによる分類結果を示す図表である。
【図２４】デンドログラムにより検出された異常状態を示す図表である。
【図２５】従来技術にかかる侵入検知システムの構成を示すブロック図である。
【符号の説明】
１          パケット数カウント部
２          ベクトル生成部
３          主成分軸導出部
４          記憶部
５          ベクトル間距離測定部
６          異常判定部
１０１  イベント生成器
１０２  イベント解析器
１０３  イベントデータベース
１０４  反応器
【図１】
2004312064.tif 000003
【図２】
2004312064.tif 000004
【図３】
2004312064.tif 000005
【図４】
2004312064.tif 000006
【図５】
2004312064.tif 000007
【図６】
2004312064.tif 000008
【図７】
2004312064.tif 000009
【図８】
2004312064.tif 000010
【図９】
2004312064.tif 000011
【図１０】
2004312064.tif 000012
【図１１】
2004312064.tif 000013
【図１２】
2004312064.tif 000014
【図１３】
2004312064.tif 000015
【図１４】
2004312064.tif 000016
【図１５】
2004312064.tif 000017
【図１６】
2004312064.tif 000018
【図１７】
2004312064.tif 000019
【図１８】
2004312064.tif 000020
【図１９】
2004312064.tif 000021
【図２０】
2004312064.tif 000022
【図２１】
2004312064.tif 000023
【図２２】
2004312064.tif 000024
【図２３】
2004312064.tif 000025
【図２４】
2004312064.tif 000026
【図２５】
2004312064.tif 000027