(57)【特許請求の範囲】
【請求項１】
参照対象の通信に係る送受信の関係を示す第１のIPアドレスおよび第２のIPアドレスを構成する各ブロックのアドレス値と、分析対象の通信に係る送受信の関係を示す第３のIPアドレスおよび第４のIPアドレスを構成する各ブロックのアドレス値とを記憶する記憶手段と、
前記第１のIPアドレスおよび前記第２のIPアドレスを構成する各ブロックについて、出現したアドレス値の分散度を示す第１の値を算出する第１の算出手段と、
前記第３のIPアドレスおよび前記第４のIPアドレスを構成する各ブロックについて、出現したアドレス値の分散度を示す第２の値を算出する第２の算出手段と、
各ブロックの前記第１の値および前記第２の値に基づいて、前記参照対象の通信と前記分析対象の通信の類似度を判定し、当該類似度が低い場合に異常が発生したと判定する異常検知手段と、
を備えたことを特徴とする異常検知装置。
【請求項２】
前記第１の値は、前記第１のIPアドレスおよび前記第２のIPアドレスを構成する各ブロックについてのアドレス値の出現頻度に基づいた第１のエントロピー値であり、前記第２の値は、前記第３のIPアドレスおよび前記第４のIPアドレスを構成する各ブロックについてのアドレス値の出現頻度に基づいた第２のエントロピー値であることを特徴とする請求項１に記載の異常検知装置。
【請求項３】
前記異常検知手段は、各ブロックについての前記第１のエントロピー値の信頼区間を算出し、各ブロックの前記第２のエントロピー値が前記信頼区間に含まれるか否かを判定し、１または複数のブロックについて、前記第２のエントロピー値が前記信頼区間から外れた場合に異常が発生したと判定することを特徴とする請求項２に記載の異常検知装置。
【請求項４】
前記異常検知手段は、各ブロックについての前記第１のエントロピー値および前記第２のエントロピー値の相関分析により、相関度を示す相関値を算出し、当該相関値と所定値を比較し、当該相関値が所定値以下である場合に異常が発生したと判定することを特徴とする請求項２に記載の異常検知装置。
【請求項５】
前記第１の値は、前記第１のIPアドレスおよび前記第２のIPアドレスを構成する各ブロックについてのアドレス値の第１の出現種類数であり、前記第２の値は、前記第３のIPアドレスおよび前記第４のIPアドレスを構成する各ブロックについてのアドレス値の第２の出現種類数であることを特徴とする請求項１に記載の異常検知装置。
【請求項６】
前記異常検知手段は、各ブロックについての前記第１の出現種類数の信頼区間を算出し、各ブロックの前記第２の出現種類数が前記信頼区間に含まれるか否かを判定し、１または複数のブロックについて、前記第２の出現種類数が前記信頼区間から外れた場合に異常が発生したと判定することを特徴とする請求項５に記載の異常検知装置。
【請求項７】
前記異常検知手段は、各ブロックについての前記第１の出現種類数および前記第２の出現種類数の相関分析により、相関度を示す相関値を算出し、当該相関値と所定値を比較し、当該相関値が所定値以下である場合に異常が発生したと判定することを特徴とする請求項５に記載の異常検知装置。
【請求項８】
請求項１〜請求項７のいずれかに記載の異常検知装置としてコンピュータを機能させるためのプログラム。
【請求項９】
請求項８に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータウィルス等による異常な通信を検知する異常検知装置に関する。また、本発明は、異常検知装置としてコンピュータを機能させるためのプログラム、およびそのプログラムを記録した記録媒体にも関する。
【背景技術】
【０００２】
コンピュータウィルス（以下、ウィルスと記載）による攻撃がネットワーク上の各地で発生している。このような状況において、非特許文献１では、IPv4通信における受信側のIPアドレス（Destination IP）を分析してウィルスを分類する方法が記載されている。IPv4プロトコルでは、IPアドレスは例えば192.168.0.1（３２ビット）と表現され、８ビットずつの４ブロックのアドレス値で構成される。そこで、非特許文献１では、ウィルスによる通信に係るDestination IPを４ブロックに分割し、それぞれのブロック毎にアドレス値の出現種類数を数値化している。この操作をウィルス毎に実施し、さらにウィルス間のアドレス種類数の類似性を分析することによって、ウィルスを分類している。
【非特許文献１】仲小路博史、寺田真敏、州崎誠一、“ワームのノード探索特性の定量化に関する提案”、情報処理学会、第38回CSEC研究会、情処研報、Vol. 2007, No. 71、2007年7月
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、非特許文献１に記載された方法では、個々のウィルスの通信パターンを分類することしかできず、様々な通信パターンから異常な通信を検知することはできなかった。
【０００４】
本発明は、上述した課題に鑑みてなされたものであって、異常な通信を検知することができる異常検知装置、プログラム、および記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、上記の課題を解決するためになされたもので、参照対象の通信に係る送受信の関係を示す第１のIPアドレスおよび第２のIPアドレスを構成する各ブロックのアドレス値と、分析対象の通信に係る送受信の関係を示す第３のIPアドレスおよび第４のIPアドレスを構成する各ブロックのアドレス値とを記憶する記憶手段と、前記第１のIPアドレスおよび前記第２のIPアドレスを構成する各ブロックについて、出現したアドレス値の分散度を示す第１の値を算出する第１の算出手段と、前記第３のIPアドレスおよび前記第４のIPアドレスを構成する各ブロックについて、出現したアドレス値の分散度を示す第２の値を算出する第２の算出手段と、各ブロックの前記第１の値および前記第２の値に基づいて、前記参照対象の通信と前記分析対象の通信の類似度を判定し、当該類似度が低い場合に異常が発生したと判定する異常検知手段とを備えたことを特徴とする異常検知装置である。
【０００６】
また、本発明の異常検知装置において、前記第１の値は、前記第１のIPアドレスおよび前記第２のIPアドレスを構成する各ブロックについてのアドレス値の出現頻度に基づいた第１のエントロピー値であり、前記第２の値は、前記第３のIPアドレスおよび前記第４のIPアドレスを構成する各ブロックについてのアドレス値の出現頻度に基づいた第２のエントロピー値であることを特徴とする。
【０００７】
また、本発明の異常検知装置において、前記異常検知手段は、各ブロックについての前記第１のエントロピー値の信頼区間を算出し、各ブロックの前記第２のエントロピー値が前記信頼区間に含まれるか否かを判定し、１または複数のブロックについて、前記第２のエントロピー値が前記信頼区間から外れた場合に異常が発生したと判定することを特徴とする。
【０００８】
また、本発明の異常検知装置において、前記異常検知手段は、各ブロックについての前記第１のエントロピー値および前記第２のエントロピー値の相関分析により、相関度を示す相関値を算出し、当該相関値と所定値を比較し、当該相関値が所定値以下である場合に異常が発生したと判定することを特徴とする。
【０００９】
また、本発明の異常検知装置において、前記第１の値は、前記第１のIPアドレスおよび前記第２のIPアドレスを構成する各ブロックについてのアドレス値の第１の出現種類数であり、前記第２の値は、前記第３のIPアドレスおよび前記第４のIPアドレスを構成する各ブロックについてのアドレス値の第２の出現種類数であることを特徴とする。
【００１０】
また、本発明の異常検知装置において、前記異常検知手段は、各ブロックについての前記第１の出現種類数の信頼区間を算出し、各ブロックの前記第２の出現種類数が前記信頼区間に含まれるか否かを判定し、１または複数のブロックについて、前記第２の出現種類数が前記信頼区間から外れた場合に異常が発生したと判定することを特徴とする。
【００１１】
また、本発明の異常検知装置において、前記異常検知手段は、各ブロックについての前記第１の出現種類数および前記第２の出現種類数の相関分析により、相関度を示す相関値を算出し、当該相関値と所定値を比較し、当該相関値が所定値以下である場合に異常が発生したと判定することを特徴とする。
【００１２】
また、本発明は、上記の異常検知装置としてコンピュータを機能させるためのプログラムである。
【００１３】
また、本発明は、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００１４】
本発明によれば、参照対象の通信に係るIPアドレスの各ブロックのアドレス値の分散度を示す第１の値と、分析対象の通信に係るIPアドレスの各ブロックのアドレス値の分散度を示す第２の値とに基づいて、参照対象の通信と分析対象の通信の類似度を判定し、類似度が低い場合に異常が発生したと判定することによって、異常な通信を検知することができるという効果が得られる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照し、本発明の実施形態を説明する。図１は、本発明の一実施形態による異常検知装置の構成を示している。図１に示す各部の機能は以下の通りである。
【００１６】
参照通信データ記憶部１０１は、過去の所定期間内にネットワーク上の１または複数のコンピュータが行った通常時の通信を監視して取得した通信データ（参照通信データ）を記憶する。本実施形態の通信データは、ネットワーク上で実行された通信の特徴を示すデータであり、時刻（Start Time，End Time）、通信プロトコル（ICMP，TCP，UDP）、送受信関係を示すIPアドレスの組合せ（Source IP，Destination IP）、およびPort番号（送信側・受信側のTCP Port，UDP Port）の各データを含んでいる。
【００１７】
IPアドレスに関して、本実施形態ではIPv4アドレスを用いて説明を行うが、IPv6アドレスについても同様である。以下では、IPv4アドレスをＡ．Ｂ．Ｃ．Ｄとしたときに、アドレス値Ａを有するブロックを第１ブロック（最上位ブロック）、アドレス値Ｂを有するブロックを第２ブロック、アドレス値Ｃを有するブロックを第３ブロック、アドレス値Ｄを有するブロックを第４ブロック（最下位ブロック）と表現する。
【００１８】
また、通信の種類には、ICMPやUDP等のステートレス通信と、TCP等のステートフル通信とがある。ステートフル通信であるTCPでは、２地点間で複数のパケットのやり取りが行われるが、それらのパケットの個々に注目して、個々のパケットから個別に通信データを生成することによって、ICMP，UDP，TCPの全てについて、ステートレスな通信パターンを得ることが可能となる。また、ステートフル通信の場合に、第１のIPアドレスから第２のIPアドレスへのパケットと、第２のIPアドレスから第１のIPアドレスへのパケットとの２種類のパケットが観測されるが、第１のIPアドレスと第２のIPアドレスの一方を本実施形態のSource IPに固定し、他方を本実施形態のDestination IPに固定してもよい。
【００１９】
参照通信データ記憶部１０１に格納されている参照通信データは、分析対象の通信が異常な通信であるか否かを判定する際の参照対象の通信データとして利用される。この参照通信データは、ウィルス等による異常が報告されず、ネットワークが正常な状態を維持している期間に取得したデータであると保証されていることがより望ましい。
【００２０】
データ抽出部１０２は、参照通信データ記憶部１０１が記憶している参照通信データから、所定の条件に従って一部の参照通信データを抽出する。情報エントロピー値算出部１０３は、データ抽出部１０２によって抽出された参照通信データに含まれるSource IPとDestination IPを構成する８つの各ブロックについて、出現したアドレス値の分散度を示す情報エントロピー値を算出する。また、情報エントロピー値算出部１０３は情報エントロピー値の統計量も算出する。情報エントロピー値記憶部１０４は、情報エントロピー値算出部１０３によって算出された情報エントロピー値を記憶する。また、情報エントロピー値記憶部１０４は情報エントロピー値の統計量も記憶する。
【００２１】
通信データ記憶部１０５は、ウィルス等による異常な通信であるか否かを分析する対象となる通信に係る通信データを記憶する。データ抽出部１０６は、通信データ記憶部１０５が記憶している通信データから、所定の条件に従って一部の通信データを抽出する。情報エントロピー値算出部１０７は、データ抽出部１０６によって抽出された通信データに含まれるSource IPとDestination IPを構成する８つの各ブロックについて、出現したアドレス値の分散度を示す情報エントロピー値を算出する。情報エントロピー値記憶部１０８は、情報エントロピー値算出部１０７によって算出された情報エントロピー値を記憶する。
【００２２】
異常検知部１０９は、情報エントロピー値記憶部１０４に格納された各ブロックの情報エントロピー値または統計量と、情報エントロピー値記憶部１０８に格納された各ブロックの情報エントロピー値とに基づいて、参照対象の通信と分析対象の通信の類似度を判定し、その類似度が低い場合に異常が発生したと判定することによって、異常な通信を検知する。表示部１１０は各種情報を表示する。操作部１１１は、ユーザが操作可能なキー、ボタン、スイッチ、マウス等を有しており、ユーザからの各種情報の入力を受け付ける。制御部１１２は、異常検知装置内の各部を制御する。
【００２３】
本実施形態では、参照通信データ記憶部１０１、通信データ記憶部１０５、情報エントロピー値記憶部１０４、情報エントロピー値記憶部１０８の８つの記憶部が設けられているが、これらを適宜、統合または分割してもよい。
【００２４】
次に、本実施形態による異常検知装置の動作を説明する。図２は、参照通信データに関する処理の手順を示している。参照通信データに関する処理が開始されると、まず処理対象期間の選択が行われる（ステップＳ１００）。例えば、処理対象期間を日単位で設定する場合、制御部１１２は所定の日付を選択し、その選択結果をデータ抽出部１０２に通知する。
【００２５】
ステップＳ１００に続いて、通信プロトコルの選択が行われる（ステップＳ１０１）。これは、後述する分析対象の通信に係る通信データに関する処理において、通信プロトコルの選択が行われることに対応した処理である。多くの攻撃に関わる通信は、ICMP、TCP、UDP、またはそれら以外の単独の通信プロトコルを用いて行われる場合が多い。そこで、通信データが有する通信パターンの数値化を行うにあたり、これらの通信プロトコルを区別して通信パターンの数値化を行う。ただし、攻撃によってはICMPとUDP、またはICMPとTCP等、複数の通信プロトコルが組み合わされて攻撃が行われる場合もあるので、各通信プロトコルを区別しないで通信パターンの数値化を行う場合もある。
【００２６】
ステップＳ１０１では、ユーザによる通信プロトコルの選択の結果を示す信号が操作部１１１から制御部１１２へ出力される。制御部１１２は、その信号に基づいて通信プロトコルの選択結果を認識し、その選択結果をデータ抽出部１０２に通知する。あるいは、過去の選択結果を所定の記憶部に格納するようにしておき、ステップＳ１０１では制御部１１２が過去の選択結果を所定の記憶部から読み出し、その選択結果をデータ抽出部１０２に通知してもよい。
【００２７】
ステップＳ１０１に続いて、Destination Portの選択が行われる（ステップＳ１０２）。これも、後述する分析対象の通信に係る通信データに関する処理において、Destination Portの選択が行われることに対応した処理である。ウィルスは、特定のPortに攻撃を行うことが多いので、Destination Portを選択することによって、特定のウィルスを検出しやすくなる。ステップＳ１０２では、ステップＳ１０１と同様にして、Destination Portの選択結果が制御部１１２からデータ抽出部１０２に通知される。
【００２８】
ステップＳ１０２に続いて、データ抽出部１０２は、制御部１１２から通知された選択結果を条件にして、参照通信データ記憶部１０１が記憶している参照通信データの中から一部の参照通信データを抽出し、情報エントロピー値算出部１０３へ出力する。すなわち、データ抽出部１０２は、選択結果が示す日の時刻、通信プロトコル、およびDestination Portをデータ中に有する参照通信データを抽出し、情報エントロピー値算出部１０３へ出力する（ステップＳ１０３）。
【００２９】
ステップＳ１０３に続いて、情報エントロピー値算出部１０３は、参照通信データに含まれるSource IPを構成する４つのブロックと、Destination IPを構成する４つのブロックとの８つのブロックそれぞれについて、出現したアドレス値に関する情報エントロピー値を算出する（ステップＳ１０４）。具体的には、情報エントロピー値算出部１０３は以下のようにして情報エントロピー値を算出する。
【００３０】
まず、情報エントロピー値算出部１０３は、８つのブロックそれぞれについて、アドレス値の出現頻度を算出する。図３は、各ブロックのアドレス値の出現頻度の算出に用いるテーブルの内容を示している。図３に示すテーブル３００は、通信Ａ（Source IP：192.168.0.20、Destination IP：192.26.48.201）に係るデータを管理するためのテーブルであり、テーブル３１０は、通信Ｂ（Source IP：31.41.128.110、Destination IP：211.225.190.22）に係るデータを管理するためのテーブルである。以下、テーブル３００を例としてテーブルの構造を説明する。
【００３１】
テーブル３００は、隣接するブロックのアドレス値の対応関係と頻度を示す部分テーブル３０１〜３０６、Source IP３０７、およびDestination IP３０８で構成される。部分テーブル３０１は、Source IPの第１ブロックおよび第２ブロックのアドレス値と頻度を関連付けたものである。部分テーブル３０２は、Source IPの第２ブロックおよび第３ブロックのアドレス値と頻度を関連付けたものである。部分テーブル３０３は、Source IPの第３ブロックおよび第４ブロックのアドレス値と頻度を関連付けたものである。部分テーブル３０４，３０５，３０６は、Destination IPについての同様の部分テーブルである。
【００３２】
本実施形態では、複数の通信に係る通信データを扱うため、図３に示したテーブルを統合した、図４に示すテーブルを用いる。図４に示すテーブル４００では、第３ブロックおよび第４ブロックのアドレス値と頻度の関係を示す部分テーブルが複数個ある。Source IPおよびDestination IPが複数個あるため、テーブル４００のSource IP４１０およびDestination IP４２０には複数のIPアドレスが格納される。
【００３３】
以下、１つの通信データ（Source IP：192.168.0.64、Destination IP：192.26.48.156）を処理対象とした例を用いて、情報エントロピー値算出部１０３の処理内容を説明する。情報エントロピー値算出部１０３は、Source IPの第１ブロックのアドレス値とテーブル４００のSource IP４１０の第１ブロックのアドレス値（あるいは部分テーブル４３０の第１ブロックのアドレス値）を比較すると共に、通信データに含まれるDestination IPの第１ブロックのアドレス値とテーブル４００のDestination IP４２０の第１ブロックのアドレス値（あるいは部分テーブル４６０の第１ブロックのアドレス値）を比較する。
【００３４】
共にアドレス値が一致するので、情報エントロピー値算出部１０３は、処理対象の通信データに対応したテーブルがテーブル４００であると認識する。もし、いずれかのアドレス値が一致しなかった場合には、他のテーブルについて同様の処理を行うことになる。また、全てのテーブルについて同様の処理を行っても、アドレス値が一致するテーブルが存在しなかった場合には、新たなテーブルの作成が必要となる。
【００３５】
続いて、情報エントロピー値算出部１０３はSource IPの第１ブロックおよび第２ブロックのアドレス値の組合せと、部分テーブル４３０の第１ブロックおよび第２ブロックのアドレス値の組合せとを比較する。両者が一致するので、情報エントロピー値算出部１０３は部分テーブル４３０の頻度に１を加算する。もし、両者が一致しなかった場合には、新たな部分テーブルの追加が必要となる。
【００３６】
続いて、情報エントロピー値算出部１０３は同様にSource IPの第２ブロックおよび第３ブロックのアドレス値の組合せと、部分テーブル４４０の第２ブロックおよび第３ブロックのアドレス値の組合せとを比較する。両者が一致するので、情報エントロピー値算出部１０３は部分テーブル４４０の頻度に１を加算する。
【００３７】
続いて、情報エントロピー値算出部１０３はSource IPの第３ブロックおよび第４ブロックのアドレス値の組合せと、第３ブロックおよび第４ブロックに関する部分テーブル４５０の第３ブロックおよび第４ブロックのアドレス値の組合せとを比較する。第３ブロックおよび第４ブロックに関する部分テーブル４５０が複数個あるため、情報エントロピー値算出部１０３は各部分テーブルについて比較処理を実行する。その結果、情報エントロピー値算出部１０３は部分テーブル４５１の頻度に１を加算する。これ以降、同様にして部分テーブル４６０，４７０，４８１の頻度に１が加算される。
【００３８】
上記のようにして、８つのブロックそれぞれについて、アドレス値の出現頻度を算出した後、情報エントロピー値算出部１０３は各ブロックの情報エントロピー値を算出する。情報エントロピー値の算出には以下の（１）式を用いる。
【００３９】
【数１】
0004825767.tif 000002
【００４０】
上記の（１）式において、ｐｉはアドレス値ｉの出現確率を示す。各ブロックにおいて、アドレス値は０〜２５５の整数値をとりうるので、ｐ０は０の出現確率、ｐ１は１の出現確率、・・・、ｐ２５５は２５５の出現確率となる。あるブロックでアドレス値が１種類の値に集中して出現した場合には、情報エントロピー値Ｈは０となり、反対にアドレス値が多種類の値に分散して出現した場合には、情報エントロピー値Ｈは０を超えた大きな値となる。
【００４１】
図５は各ブロックの情報エントロピー値の一例を示している。Source IPの４つのブロック（Ａ，Ｂ，Ｃ，Ｄ）の情報エントロピー値が図５の左側に示され、Destination IPの４つのブロック（Ａ，Ｂ，Ｃ，Ｄ）の情報エントロピー値が図５の右側に示されている。Source IPのブロックＡ，Ｂ，ＣやDestination IPのブロックＡ，Ｂ，Ｃの情報エントロピー値は小さな値となっており、これらのブロックでは特定のアドレス値の出現頻度が比較的高いことが分かる。一方、Source IPのブロックＤやDestination IPのブロックＤの情報エントロピー値は大きな値となっており、これらのブロックではアドレス値が比較的分散していることが分かる。
【００４２】
以上がステップＳ１０４における処理の内容である。ステップＳ１０４に続いて、情報エントロピー値算出部１０３は、ステップＳ１０４で算出した各ブロックの情報エントロピー値を情報エントロピー値記憶部１０４に格納する（ステップＳ１０５）。この時点で、情報エントロピー値の算出処理の終了を示す情報が情報エントロピー値算出部１０３から制御部１１２に通知される。情報エントロピー値の算出処理の終了が通知されると制御部１１２は、情報エントロピー値の個数が統計量の算出に十分であるか否かを判定する（ステップＳ１０６）。情報エントロピー値の個数が、予め設定された値を超えた場合には、情報エントロピー値の個数が統計量の算出に十分であると判定され、情報エントロピー値の個数が、予め設定された値以下である場合には、情報エントロピー値の個数が統計量の算出に十分ではないと判定される。
【００４３】
情報エントロピー値の個数が統計量の算出に十分ではないと判定された場合には、ステップＳ１００に戻り、処理対象期間が再度選択される。このとき、以前に選択された処理対象期間とは別の処理対象期間が選択される。また、情報エントロピー値の個数が統計量の算出に十分であると判定された場合には、情報エントロピー値算出部１０３は、情報エントロピー値記憶部１０４が記憶する情報エントロピー値の統計量である平均値と標準偏差を算出する（ステップＳ１０７）。
【００４４】
具体的には、情報エントロピー値算出部１０３は以下のようにして平均値と標準偏差を算出する。情報エントロピー値算出部１０３は、複数の処理対象期間それぞれについて算出された同一ブロックの情報エントロピー値を情報エントロピー値記憶部１０４から読み出し、その平均値と標準偏差を算出する。以下の（２）式は、平均値を算出する式であり、（３）式は、標準偏差を算出する式である。また、（２）式および（３）式において、ｉ（ｉ＝１，２，・・・，８）はブロックの番号であり、ｊ（ｊ＝１，２，・・・，ｎ）は処理対象期間の番号である。また、ａｉ，ｊはブロックｉについての処理対象期間ｊの情報エントロピー値である。
【００４５】
【数２】
0004825767.tif 000003
【００４６】
情報エントロピー値算出部１０３は、８つのブロックそれぞれについて上記の処理を行う。この結果、８つのブロックそれぞれについて、平均値と標準偏差が算出される。平均値と標準偏差の算出は異常検知部１０９が行ってもよい。上記のようにして算出された各ブロックについての統計量（平均値および標準偏差）は情報エントロピー値記憶部１０４に格納される。以上の処理により、参照通信データに関する処理が終了する。
【００４７】
次に、分析対象の通信に係る通信データに関する処理の内容を説明する。図６は、分析対象の通信に係る通信データに関する処理の手順を示している。通信データに関する処理が開始されると、通信プロトコルの選択が行われる（ステップＳ２００）。ステップＳ２００の処理は図２のステップＳ１０１の処理と同様であり、制御部１１２は通信プロトコルの選択結果をデータ抽出部１０６に通知する。ステップＳ２００に続いて、Destination Portの選択が行われる（ステップＳ２０１）。ステップＳ２０１の処理は図２のステップＳ１０２の処理と同様であり、制御部１１２はDestination Portの選択結果をデータ抽出部１０６に通知する。
【００４８】
ステップＳ２０１に続いて、データ抽出部１０６は、制御部１１２から通知された選択結果を条件にして、通信データ記憶部１０５が記憶している通信データの中から一部の通信データを抽出し、情報エントロピー値算出部１０７へ出力する。すなわち、データ抽出部１０６は、選択結果が示す通信プロトコルおよびDestination Portをデータ中に有する通信データを抽出し、情報エントロピー値算出部１０７へ出力する（ステップＳ２０２）。
【００４９】
分析対象の通信に係る通信データは、過去の終了済みの通信に係る通信データであってもよいし、現在監視している継続中の通信に係る通信データであってもよい。いずれにしても、通信データは一旦通信データ記憶部１０５に格納され、適宜、データ抽出部１０６によって読み出される。
【００５０】
ステップＳ２０２に続いて、情報エントロピー値算出部１０７は、通信データに含まれるSource IPを構成する４つのブロックと、Destination IPを構成する４つのブロックとの８つのブロックそれぞれについて、出現したアドレス値に関する情報エントロピー値を算出する（ステップＳ２０３）。ステップＳ２０３の処理は図２のステップＳ１０４の処理と同様である。ステップＳ２０３に続いて、情報エントロピー値算出部１０７は、ステップＳ２０３で算出した各ブロックの情報エントロピー値を情報エントロピー値記憶部１０８に格納する（ステップＳ２０４）。
【００５１】
ステップＳ２０４に続いて、異常検知部１０９は、情報エントロピー値記憶部１０４から参照対象の通信に係る統計量を読み出すと共に、情報エントロピー値記憶部１０８から分析対象の通信に係る情報エントロピー値を読み出し、信頼区間の算出と異常判定を行う（ステップＳ２０５）。具体的には、異常検知部１０９は以下の処理を行う。
【００５２】
まず、異常検知部１０９は、分析対象の通信に係る情報エントロピー値を評価するための信頼区間を算出する。信頼区間として、一般的に９５％信頼区間が用いられる傾向にある。これは、平均値を中心とした上下２σ（σ：標準偏差）までの範囲を許容するものである。信頼区間は９５％信頼区間以外でもよいが、以下では９５％信頼区間を用いて説明を行う。
【００５３】
図７は情報エントロピー値の平均値と信頼区間を示している。折れ線７００は、各ブロックの情報エントロピー値の平均値を結んだ線である。平均値をμ、標準偏差をσとすると、［μ，μ＋２σ］の区間が上側信頼区間であり、［μ−２σ，μ］の区間が下側信頼区間である。折れ線７１０は各ブロックの上側信頼区間の上側の境界値（上側信頼限界）を結んだ線であり、折れ線７２０は各ブロックの下側信頼区間の下側の境界値（下側信頼限界）を結んだ線である。折れ線７１０と折れ線７２０によって挟まれた区間が信頼区間である。異常検知部１０９は、情報エントロピー値記憶部１０４から読み出した平均値と標準偏差に基づいて、各ブロックの信頼区間の上下の境界値を算出する。
【００５４】
通常時の通信との類似度が高い通信が観測された場合、その通信に係る情報エントロピー値は信頼区間に含まれることになる。また、通常時の通信との類似度が低い異常な通信が観測された場合、その通信に係る情報エントロピー値は信頼区間から外れることになる。異常検知部１０９は、この特徴を利用して異常判定を行う。
【００５５】
信頼区間の算出に続いて、異常検知部１０９は、分析対象の通信に係る各ブロックの情報エントロピー値を各ブロックの信頼区間の上下の境界値と比較し、各ブロックの情報エントロピー値が信頼区間に含まれるか否かを判定する。８個のブロックのうちＭ個（Ｍは１，２，・・・，８のいずれか）以上のブロックについて、情報エントロピー値が信頼区間から外れた場合に、異常検知部１０９は異常が発生したと判定する。異常検知部１０９は判定結果を制御部１１２に通知する。以上がステップＳ２０５の処理の内容である。
【００５６】
制御部１１２は、異常検知部１０９から通知された判定結果に基づいて、異常が発生したか否かを判定する（ステップＳ２０６）。異常が発生した場合には、制御部１１２は、異常を通知する処理を行う（ステップＳ２０７）。異常の通知は、音を発生することにより行ってもよいし、表示部１１０にメッセージ等を表示することにより行ってもよい。
【００５７】
以上の処理によって、分析対象の通信に係る通信データに関する処理が終了する。また、異常が発生しなかった場合には、ステップＳ２０７の処理を行うことなく、分析対象の通信に係る通信データに関する処理が終了する。
【００５８】
次に、本実施形態の変形例を説明する。上記ではIPアドレスを構成する各ブロックについて、出現したアドレス値の分散度を示す値として情報エントロピー値を算出しているが、情報エントロピー値の代わりにアドレス値の出現種類数を算出してもよい。アドレス値の出現種類数を用いる場合の処理は、上記の説明における情報エントロピー値を全てアドレス値の出現種類数に置き換えた処理となる。
【００５９】
図８は各ブロックのアドレス値の出現種類数の一例を示している。Source IPの４つのブロック（Ａ，Ｂ，Ｃ，Ｄ）のアドレス値の出現種類数が図８の左側に示され、Destination IPの４つのブロック（Ａ，Ｂ，Ｃ，Ｄ）のアドレス値の出現種類数が図８の右側に示されている。Source IPのブロックＡ，Ｂ，ＣやDestination IPのブロックＡ，Ｂ，Ｃのアドレス値の出現種類数は小さな値となっており、これらのブロックではアドレス値が特定の値に比較的集中していることが分かる。一方、Source IPのブロックＤやDestination IPのブロックＤのアドレス種類数は大きな値となっており、これらのブロックではアドレス値が多数の値に比較的分散していることが分かる。
【００６０】
また、情報エントロピー値とアドレス値の出現種類数の両方を算出し、それぞれの値による異常判定の結果を組み合わせて総合的に異常判定を行ってもよい。例えば、情報エントロピー値に基づいた異常判定と、アドレス値の出現種類数に基づいた異常判定との結果、いずれか一方の異常判定において、８個のブロックのうちＮ個（Ｎは１，２，・・・，８のいずれか）以上のブロックについて、値が信頼区間から外れた場合に異常が発生したと判定してもよい。または、上記の両方の異常判定において、８個のブロックのうちＮ個（Ｎは１，２，・・・，８のいずれか）以上のブロックについて、値が信頼区間から外れた場合に異常が発生したと判定してもよい。さらに、通常時の通信量から逸脱する通信量が観測されたときに上記の判定を行うようにしてもよい。
【００６１】
また、上記では、統計量に基づいた信頼区間を利用して異常判定を行っているが、相関分析により異常判定を行ってもよい。以下、相関分析による異常判定の方法を説明する。相関分析では、参照対象の通信の通信パターンと、分析対象の通信の通信パターンとの相関性（類似性）を示す相関値を算出する処理が行われる。具体的には、まず異常検知部１０９は、情報エントロピー値記憶部１０４から参照対象の通信に係る情報エントロピー値を読み出すと共に、情報エントロピー値記憶部１０８から分析対象の通信に係る情報エントロピー値を読み出す。
【００６２】
続いて、異常検知部１０９は、参照対象の通信に係るIPアドレスの８つのブロックについての情報エントロピー値（ｘ１，ｘ２，・・・，ｘ８）と、分析対象の通信に係るIPアドレスの８つのブロックについての情報エントロピー値（ｙ１，ｙ２，・・・，ｙ８）とを用いて、以下の（４）〜（６）式により相関値ｒを算出する。
【００６３】
【数３】
0004825767.tif 000004
【００６４】
ｘ１，ｘ２，ｘ３，ｘ４はそれぞれ、参照対象の通信に係るSource IPの第１ブロック、第２ブロック、第３ブロック、第４ブロックの情報エントロピー値である。また、ｘ５，ｘ６，ｘ７，ｘ８はそれぞれ、参照対象の通信に係るDestination IPの第１ブロック、第２ブロック、第３ブロック、第４ブロックの情報エントロピー値である。同様に、ｙ１，ｙ２，ｙ３，ｙ４はそれぞれ、分析対象の通信に係るSource IPの第１ブロック、第２ブロック、第３ブロック、第４ブロックの情報エントロピー値である。また、ｙ５，ｙ６，ｙ７，ｙ８はそれぞれ、分析対象の通信に係るDestination IPの第１ブロック、第２ブロック、第３ブロック、第４ブロックの情報エントロピー値である。
【００６５】
（４）式は、相関値ｒを算出する式である。（５）式は、参照対象の通信に係るIPアドレスの８つのブロックについての情報エントロピー値の平均値を算出する式である。（６）式は、分析対象の通信に係るIPアドレスの８つのブロックについての情報エントロピー値の平均値を算出する式である。（４）式によって算出される相関値ｒは-1.0〜0.0〜+1.0の範囲内の数値となる。相関値ｒが+1.0に近づくほど類似度が高い。
【００６６】
続いて、異常検知部１０９は、ステップＳ２０５で算出した相関値ｒと所定の閾値を比較し、比較結果に基づいて、分析対象の通信が異常な通信であるか否かを判定する。例えば、閾値を0.1とし、相関値ｒが0.1以下の場合には、分析対象の通信が通常時の通信と類似しない異常な通信であると判定され、相関値ｒが0.1を超える場合には、分析対象の通信が通常時の通信であると判定される。
【００６７】
上述したように、本実施形態によれば、参照対象の通信に係るIPアドレスの各ブロックの情報エントロピー値（またはアドレス値の出現種類数）と、分析対象の通信に係るIPアドレスの各ブロックの情報エントロピー値（またはアドレス値の出現種類数）とに基づいて、参照対象の通信と分析対象の通信の類似度を判定し、類似度が低い場合に異常が発生したと判定することによって、異常な通信を検知することができる。特に、ウィルスによる通信では、IPアドレスを構成するブロックのアドレス値を単位として通信の偏りが生じやすいので、本実施形態は、ウィルスによる異常な通信の検知に適している。
【００６８】
また、予め取得することが可能なウィルスによる通信の通信パターンと分析対象の通信の通信パターンの類似度に基づいてウィルスによる通信を検知する方法では、検知できる通信が既知のウィルスによる通信に限定されるが、本実施形態によれば、未知のウィルスによる異常な通信も検知することができる。
【００６９】
また、前述した非特許文献１では、アドレスの種類数にしか注目しておらず、攻撃に見られる重要な特徴の１つである通信密度（頻度）の数値化は実現されていない。これに対して本実施形態では、アドレス値の出現頻度に基づいた情報エントロピー値を算出することによって、通信密度の数値化が実現されている。
【００７０】
また、非特許文献１では、Destination IPのみが分析対象となっているため、多地点のSource IPから１地点のDestination IPへ通信が行われるDDos（Distributed Denial of Service）攻撃を扱うことができない。これに対して本実施形態では、Source IPとDestination IPの組合せを分析対象とすることによって、DDos攻撃による異常な通信も検知することができる。
【００７１】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、上述した実施形態による異常検知装置の動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させてもよい。
【００７２】
ここで、「コンピュータ」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００７３】
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【図面の簡単な説明】
【００７４】
【図１】本発明の一実施形態による異常検知装置の構成を示すブロック図である。
【図２】本発明の一実施形態による異常検知装置の動作の手順を示すフローチャートである。
【図３】本発明の一実施形態において、情報エントロピー値算出部が処理に用いるテーブルの内容を示す参考図である。
【図４】本発明の一実施形態による異常検知装置が備える情報エントロピー値算出部が処理に用いるテーブルの内容を示す参考図である。
【図５】本発明の一実施形態において、各ブロックの情報エントロピー値を示す参考図である。
【図６】本発明の一実施形態による異常検知装置の動作の手順を示すフローチャートである。
【図７】本発明の一実施形態において、情報エントロピー値の平均値と信頼区間を示す参考図である。
【図８】本発明の一実施形態において、各ブロックのアドレス値の出現種類数を示す参考図である。
【符号の説明】
【００７５】
１０１・・・参照通信データ記憶部（記憶手段）、１０２，１０６・・・データ抽出部、１０３，１０７・・・情報エントロピー値算出部（第１の算出手段、第２の算出手段）、１０４，１０８・・・情報エントロピー値記憶部、１０５・・・通信データ記憶部（記憶手段）、１０９・・・異常検知部（異常検知手段）、１１０・・・表示部、１１１・・・操作部、１１２・・・制御部
【図１】
0004825767.tif 000005
【図２】
0004825767.tif 000006
【図３】
0004825767.tif 000007
【図４】
0004825767.tif 000008
【図５】
0004825767.tif 000009
【図６】
0004825767.tif 000010
【図７】
0004825767.tif 000011
【図８】
0004825767.tif 000012