(57)【特許請求の範囲】
【請求項１】
コンピュータウィルスによる不正な通信に係る送受信の関係を示す第１のIPアドレスおよび第２のIPアドレスを構成する各ブロックのアドレス値と、分析対象の通信に係る送受信の関係を示す第３のIPアドレスおよび第４のIPアドレスを構成する各ブロックのアドレス値とを記憶する第1の記憶手段と、
前記第１のIPアドレスおよび前記第２のIPアドレスを構成する各ブロックについて、出現したアドレス値の分散度を示す第１の値を算出する第１の算出手段と、
前記第３の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アドレスを構成する各ブロックについてのアドレス値の出現頻度に基づいた第２のエントロピー値であることを特徴とする。
【０００９】
また、本発明の不正検知装置において、前記第１の値は、前記第１の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の選択が行われる（ステップＳ１０１）。ウィルスは、特定の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の第３ブロックおよび第４ブロックのアドレス値の組合せと、第３ブロックおよび第４ブロックに関する部分テーブル４５０の第３ブロックおよび第４ブロックのアドレス値の組合せとを比較する。第３ブロックおよび第４ブロックに関する部分テーブル４５０が複数個あるため、情報エントロピー値算出部１０３は各部分テーブルについて比較処理を実行する。その結果、情報エントロピー値算出部１０３は部分テーブル４５１の頻度に１を加算する。これ以降、同様にして部分テーブル４６０，４７０，４８１の頻度に１が加算される。
【００３６】
上記のようにして、８つのブロックそれぞれについて、アドレス値の出現頻度を算出した後、情報エントロピー値算出部１０３は各ブロックの情報エントロピー値を算出する。情報エントロピー値の算出には以下の（１）式を用いる。
【００３７】
【数１】
0005046836.tif 000002
【００３８】
上記の（１）式において、ｐｉはアドレス値ｉの出現確率を示す。各ブロックにおいて、アドレス値は０〜２５５の整数値をとりうるので、ｐ０は０の出現確率、ｐ１は１の出現確率、・・・、ｐ２５５は２５５の出現確率となる。あるブロックでアドレス値が１種類の値に集中して出現した場合には、情報エントロピー値Ｈは０となり、反対にアドレス値が多種類の値に分散して出現した場合には、情報エントロピー値Ｈは０を超えた大きな値となる。
【００３９】
図５は各ブロックの情報エントロピー値の一例を示している。Source IPの４つのブロック（Ａ，Ｂ，Ｃ，Ｄ）の情報エントロピー値が図５の左側に示され、Destination IPの４つのブロック（Ａ，Ｂ，Ｃ，Ｄ）の情報エントロピー値が図５の右側に示されている。Source IPのブロックＡ，Ｂ，ＣやDestination IPのブロックＡ，Ｂ，Ｃの情報エントロピー値は小さな値となっており、これらのブロックでは特定のアドレス値の出現頻度が比較的高いことが分かる。一方、Source IPのブロックＤやDestination IPのブロックＤの情報エントロピー値は大きな値となっており、これらのブロックではアドレス値が比較的分散していることが分かる。
【００４０】
以上がステップＳ１０３における処理の内容である。ステップＳ１０３に続いて、情報エントロピー値算出部１０３は、ステップＳ１０３で算出した各ブロックの情報エントロピー値を情報エントロピー値記憶部１０４に格納する（ステップＳ１０４）。この際に、予めウィルスの名称等が分かっている場合には、ウィルスを識別するウィルス名等の情報と情報エントロピー値とが関連付けられて、情報エントロピー値記憶部１０４に格納される。
【００４１】
以上の処理によって、不正通信データに関する処理が終了する。ウィルス毎に異なる不正通信データを用いた上記の処理を繰り返し行うことによって、各ウィルスに関する情報エントロピー値を算出することが可能である。
【００４２】
次に、分析対象の通信に係る通信データに関する処理の内容を説明する。図６は、分析対象の通信に係る通信データに関する処理の手順を示している。通信データに関する処理が開始されると、通信プロトコルの選択が行われる（ステップＳ２００）。ステップＳ２００の処理は図２のステップＳ１００の処理と同様であり、制御部１１２は通信プロトコルの選択結果をデータ抽出部１０６に通知する。ステップＳ２００に続いて、Destination Portの選択が行われる（ステップＳ２０１）。ステップＳ２０１の処理は図２のステップＳ１０１の処理と同様であり、制御部１１２はDestination Portの選択結果をデータ抽出部１０６に通知する。
【００４３】
ステップＳ２０１に続いて、データ抽出部１０６は、制御部１１２から通知された選択結果を条件にして、通信データ記憶部１０５が記憶している通信データの中から一部の通信データを抽出し、情報エントロピー値算出部１０７へ出力する。すなわち、データ抽出部１０６は、選択結果が示す通信プロトコルおよびDestination Portをデータ中に有する通信データを抽出し、情報エントロピー値算出部１０７へ出力する（ステップＳ２０２）。
【００４４】
分析対象の通信に係る通信データは、過去の終了済みの通信に係る通信データであってもよいし、現在監視している継続中の通信に係る通信データであってもよい。いずれにしても、通信データは一旦通信データ記憶部１０５に格納され、適宜、データ抽出部１０６によって読み出される。
【００４５】
ステップＳ２０２に続いて、情報エントロピー値算出部１０７は、通信データに含まれるSource IPを構成する４つのブロックと、Destination IPを構成する４つのブロックとの８つのブロックそれぞれについて、出現したアドレス値に関する情報エントロピー値を算出する（ステップＳ２０３）。ステップＳ２０３の処理は図２のステップＳ１０３の処理と同様である。ステップＳ２０３に続いて、情報エントロピー値算出部１０７は、ステップＳ２０３で算出した各ブロックの情報エントロピー値を情報エントロピー値記憶部１０８に格納する（ステップＳ２０４）。
【００４６】
ステップＳ２０４に続いて、不正検知部１０９は、情報エントロピー値記憶部１０４から不正な通信に係る情報エントロピー値を読み出すと共に、情報エントロピー値記憶部１０８から分析対象の通信に係る情報エントロピー値を読み出し、相関分析を行う（ステップＳ２０５）。このステップＳ２０５では、ウィルスによる不正な通信の通信パターンと、分析対象の通信の通信パターンとの相関性（類似性）を示す相関値を算出する処理が行われる。
【００４７】
具体的には、不正検知部１０９は以下のようにして相関分析を行う。不正検知部１０９は、不正な通信に係るIPアドレスの８つのブロックについての情報エントロピー値（ｘ１，ｘ２，・・・，ｘ８）と、分析対象の通信に係るIPアドレスの８つのブロックについての情報エントロピー値（ｙ１，ｙ２，・・・，ｙ８）とを用いて、以下の（２）〜（４）式により相関値ｒを算出する。
【００４８】
【数２】
0005046836.tif 000003
【００４９】
ｘ１，ｘ２，ｘ３，ｘ４はそれぞれ、不正な通信に係るSource IPの第１ブロック、第２ブロック、第３ブロック、第４ブロックの情報エントロピー値である。また、ｘ５，ｘ６，ｘ７，ｘ８はそれぞれ、不正な通信に係るDestination IPの第１ブロック、第２ブロック、第３ブロック、第４ブロックの情報エントロピー値である。同様に、ｙ１，ｙ２，ｙ３，ｙ４はそれぞれ、分析対象の通信に係るSource IPの第１ブロック、第２ブロック、第３ブロック、第４ブロックの情報エントロピー値である。また、ｙ５，ｙ６，ｙ７，ｙ８はそれぞれ、分析対象の通信に係るDestination IPの第１ブロック、第２ブロック、第３ブロック、第４ブロックの情報エントロピー値である。
【００５０】
（２）式は、相関値ｒを算出する式である。（３）式は、不正な通信に係るIPアドレスの８つのブロックについての情報エントロピー値の平均値を算出する式である。（４）式は、分析対象の通信に係るIPアドレスの８つのブロックについての情報エントロピー値の平均値を算出する式である。（２）式によって算出される相関値ｒは-1.0〜0.0〜+1.0の範囲内の数値となる。相関値ｒが+1.0に近づくほど類似度が高い。
【００５１】
以上がステップＳ２０５の処理の内容である。ステップＳ２０５に続いて、不正検知部１０９は、ステップＳ２０５で算出した相関値ｒと所定の閾値を比較し、比較結果に基づいて、分析対象の通信が不正な通信と類似するか否かを判定する（ステップＳ２０６）。例えば、閾値を0.9とし、相関値ｒが0.9以上の場合には、分析対象の通信が不正な通信と類似すると判定され、相関値ｒが0.9未満の場合には、分析対象の通信が不正な通信と類似しないと判定される。不正検知部１０９は判定結果を制御部１１２に通知する。
【００５２】
分析対象の通信が不正な通信と類似すると判定された場合には、制御部１１２は、アラーム（警報）を発生する処理、またはフィルタリングルール（攻撃の防御を目的としてルータ等のネットワーク機器に設定するもの）を自動的に生成する処理を行う（ステップＳ２０７）。アラームの発生は、音を発生することにより行ってもよいし、表示部１１０にメッセージ等を表示することにより行ってもよい。また、フィルタリングルールを生成する場合には、ウィルスによる攻撃のみを排除するようなフィルタリングルールを生成する。
【００５３】
以上の処理によって、分析対象の通信に係る通信データに関する処理が終了する。また、分析対象の通信が不正な通信と類似しないと判定された場合には、ステップＳ２０７の処理を行うことなく、分析対象の通信に係る通信データに関する処理が終了する。複数のウィルスによる不正な通信の通信パターンと分析対象の通信の通信パターンとの相関分析を行う場合には、ステップＳ２０５において、不正な通信に係る情報エントロピー値をウィルス毎に変更しながら相関分析を行い、ステップＳ２０６において、ウィルス毎に類似性を判定すればよい。
【００５４】
（第２の動作例）
次に、第２の動作例を説明する。第２の動作例では、分析対象の通信に係る通信データに関する処理において、ウィルスによる通信パターンと類似する通信パターンを見つけやすくするため、分析対象の通信に係る通信データの絞り込みを行う。不正通信データに関する処理は第１の動作例と同様である。以下、分析対象の通信に係る通信データに関する処理の内容を説明する。図７は、分析対象の通信に係る通信データに関する処理の手順を示している。
【００５５】
通信データに関する処理が開始された後のステップＳ３００〜Ｓ３０２の処理は図６のステップＳ２００〜Ｓ２０２の処理と同様である。ステップＳ３０２に続いて、情報エントロピー値算出部１０７は、通信データに含まれるSource IPおよびDestination IPを構成する８つのブロックのうちブロックｉ（ｉは１，２，・・・，８のいずれか）について、アドレス値の出現頻度を算出する（ステップＳ３０３）。アドレス値の出現頻度の算出方法は第１の動作例と同様である。
【００５６】
ステップＳ３０３におけるアドレス値の出現頻度の算出結果は情報エントロピー値算出部１０７から制御部１１２に通知される。制御部１１２は、ブロックｉについての各アドレス値の出現頻度に基づいて、出現頻度が上位Ｎ件に入っているアドレス値をデータ抽出部１０６に通知する。データ抽出部１０６は、制御部１１２から通知されたアドレス値をブロックｉのアドレス値として有するSource IPまたはDestination IPが含まれる通信データを、通信データ記憶部１０５が記憶している通信データの中から抽出し、情報エントロピー値算出部１０７へ出力する（ステップＳ３０４）。
【００５７】
ウィルスによる通信が行われると、検出された通信データでは特定のブロックのアドレス値が特定の値に集中する。そこで、そのようなアドレス値を有する通信データを分析対象とすることによって、ウィルスによる通信パターンと類似する通信パターンが見つけやすくなる。
【００５８】
ステップＳ３０４に続いて、情報エントロピー値算出部１０７は、データ抽出部１０６から出力された通信データに含まれるSource IPを構成する４つのブロックと、Destination IPを構成する４つのブロックとの８つのブロックそれぞれについて、出現したアドレス値に関する情報エントロピー値を算出する（ステップＳ３０５）。ステップＳ３０５の処理は図２のステップＳ１０３の処理と同様である。ステップＳ３０５に続いて、情報エントロピー値算出部１０７は、ステップＳ３０５で算出した各ブロックの情報エントロピー値を情報エントロピー値記憶部１０８に格納する（ステップＳ３０６）。
【００５９】
ステップＳ３０６に続いて、不正検知部１０９は、情報エントロピー値記憶部１０４から不正な通信に係る情報エントロピー値を読み出すと共に、情報エントロピー値記憶部１０８から分析対象の通信に係る情報エントロピー値を読み出し、相関分析を行う（ステップＳ３０７）。ステップＳ３０７の処理は図６のステップＳ２０５の処理と同様である。
【００６０】
ステップＳ３０７に続くステップＳ３０８〜Ｓ３０９の処理は図６のステップＳ２０６〜Ｓ２０７の処理と同様である。続いて、制御部１１２は、８つの全ブロックについてステップＳ３０３からの処理を行ったか否かを判定する。８つの全ブロックについてステップＳ３０３からの処理が既に行われた場合には、分析対象の通信に係る通信データに関する処理が終了する。また、ステップＳ３０３からの処理がまだ行われていないブロックが存在する場合には、ステップＳ３０３からの処理が再度行われる。
【００６１】
ただし、ステップＳ３０３では、アドレス値の出現頻度の算出をまだ行っていないブロックについてアドレス値の出現頻度の算出が行われる。また、ステップＳ３０３の実行回数がＫ回目（２≦Ｋ≦８）の場合、Ｋ−１回目のステップＳ３０４で抽出された通信データをＫ回目におけるステップＳ３０３の処理対象としてもよいし、通信データ記憶部１０５に格納されている全ての通信データを再度処理対象としてもよい。
【００６２】
（第３の動作例）
次に、第３の動作例を説明する。第３の動作例でも第２の動作例と同様に、分析対象の通信に係る通信データに関する処理において、ウィルスによる通信パターンと類似する通信パターンを見つけやすくするため、分析対象の通信に係る通信データの絞り込みを行う。不正通信データに関する処理は第１の動作例と同様である。以下、分析対象の通信に係る通信データに関する処理の内容を説明する。図８は、分析対象の通信に係る通信データに関する処理の手順を示している。
【００６３】
通信データに関する処理が開始された後のステップＳ４００〜Ｓ４０３の処理は図６のステップＳ２００〜Ｓ２０３の処理と同様である。ステップＳ４０３に続いて、情報エントロピー値算出部１０７は、通信データに含まれるSource IPおよびDestination IPを構成する８つのブロックそれぞれについての情報エントロピー値を比較し、最小の情報エントロピー値が算出されたブロックｊ（ｊは１，２，・・・，８のいずれか）を決定する。さらに、情報エントロピー値算出部１０７は、ブロックｊ（注目ブロック）について、アドレス値の出現頻度を算出する（ステップＳ４０４）。アドレス値の出現頻度の算出方法は第１の動作例と同様である。
【００６４】
ステップＳ４０４におけるアドレス値の出現頻度の算出結果は情報エントロピー値算出部１０７から制御部１１２に通知される。制御部１１２は、ブロックｊについての各アドレス値の出現頻度に基づいて、出現頻度が上位Ｎ件に入っているアドレス値をデータ抽出部１０６に通知する。データ抽出部１０６は、制御部１１２から通知されたアドレス値をブロックｊのアドレス値として有するSource IPまたはDestination IPが含まれる通信データを、通信データ記憶部１０５が記憶している通信データの中から抽出し、情報エントロピー値算出部１０７へ出力する（ステップＳ４０５）。
【００６５】
ウィルスによる通信が行われると、検出された通信データでは特定のブロックのアドレス値が特定の値に集中し、そのブロックについての情報エントロピー値が小さくなる。そこで、そのようなアドレス値を有する通信データを分析対象とすることによって、ウィルスによる通信パターンと類似する通信パターンが見つけやすくなる。
【００６６】
ステップＳ４０５に続くステップＳ４０６〜Ｓ４１０の処理は図７のステップＳ３０５〜Ｓ３０９の処理と同様である。続いて、制御部１１２は、ステップＳ４０３からの処理の実行回数（ループ回数）が規定回数に達したか否かを判定する（ステップＳ４１１）。ステップＳ４０３からの処理の実行回数が既に規定回数に達した場合には、分析対象の通信に係る通信データに関する処理が終了する。また、ステップＳ４０３からの処理の実行回数がまだ規定回数に到達していない場合には、ステップＳ４０３からの処理が再度行われる。
【００６７】
ただし、ステップＳ４０４で情報エントロピー値の比較を行う際には、以前の同じステップＳ４０４で情報エントロピー値が最小であると判定されたブロックの情報エントロピー値は比較対象から除外される。また、ステップＳ４０３の実行回数がＫ回目（２≦Ｋ≦８）の場合、Ｋ−１回目のステップＳ４０４で抽出された通信データをＫ回目のステップＳ４０３における処理対象としてもよいし、通信データ記憶部１０５に格納されている全ての通信データを再度処理対象としてもよい。
【００６８】
（変形例）
次に、本実施形態の変形例を説明する。上記ではIPアドレスを構成する各ブロックについて、出現したアドレス値の分散度を示す値として情報エントロピー値を算出しているが、情報エントロピー値の代わりにアドレス値の出現種類数を算出してもよい。アドレス値の出現種類数を用いる場合の処理は、上記の第１〜第３の動作例の説明における情報エントロピー値を全てアドレス値の出現種類数に置き換えた処理となる。
【００６９】
図９は各ブロックのアドレス値の出現種類数の一例を示している。Source IPの４つのブロック（Ａ，Ｂ，Ｃ，Ｄ）のアドレス値の出現種類数が図９の左側に示され、Destination IPの４つのブロック（Ａ，Ｂ，Ｃ，Ｄ）のアドレス値の出現種類数が図９の右側に示されている。Source IPのブロックＡ，Ｂ，ＣやDestination IPのブロックＡ，Ｂ，Ｃのアドレス値の出現種類数は小さな値となっており、これらのブロックではアドレス値が特定の値に比較的集中していることが分かる。一方、Source IPのブロックＤやDestination IPのブロックＤのアドレス種類数は大きな値となっており、これらのブロックではアドレス値が多数の値に比較的分散していることが分かる。
【００７０】
上述したように、本実施形態によれば、ウィルスによる通信に係るIPアドレスの各ブロックの情報エントロピー値（またはアドレス値の出現種類数）と、分析対象の通信に係るIPアドレスの各ブロックの情報エントロピー値（またはアドレス値の出現種類数）とに基づいて、不正な通信と分析対象の通信の類似度を判定し、類似度が高い場合に不正が発生したと判定することによって、ウィルスによる不正な通信を検知することができる。特に、ウィルスによる通信では、IPアドレスを構成するブロックのアドレス値を単位として通信の偏りが生じやすいので、本実施形態は、ウィルスによる不正な通信の検知に適している。
【００７１】
また、第２および第３の動作例では、分析対象の通信に係る通信データに関する処理において、所定の条件を満たすアドレス値を有する通信データを分析対象とすることによって、第１の動作例と比較して、ウィルスによる不正な通信を検知しやすくすることができる。
【００７２】
また、前述した非特許文献１では、アドレスの種類数にしか注目しておらず、攻撃に見られる重要な特徴の１つである通信密度（頻度）の数値化は実現されていない。これに対して本実施形態では、アドレス値の出現頻度に基づいた情報エントロピー値を算出することによって、通信密度の数値化が実現されている。
【００７３】
また、非特許文献１では、Destination IPのみが分析対象となっているため、多地点のSource IPから１地点のDestination IPへ通信が行われるDDos（Distributed Denial of Service）攻撃を扱うことができない。これに対して本実施形態では、Source IPとDestination IPの組合せを分析対象とすることによって、DDos攻撃による不正な通信も検知することができる。
【００７４】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、上述した実施形態による不正検知装置の動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させてもよい。
【００７５】
ここで、「コンピュータ」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００７６】
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【図面の簡単な説明】
【００７７】
【図１】本発明の一実施形態による不正検知装置の構成を示すブロック図である。
【図２】本発明の一実施形態による不正検知装置の動作の手順を示すフローチャート（第１の動作例）である。
【図３】本発明の一実施形態において、情報エントロピー値算出部が処理に用いるテーブルの内容を示す参考図である。
【図４】本発明の一実施形態による不正検知装置が備える情報エントロピー値算出部が処理に用いるテーブルの内容を示す参考図である。
【図５】本発明の一実施形態において、各ブロックの情報エントロピー値を示す参考図である。
【図６】本発明の一実施形態による不正検知装置の動作の手順を示すフローチャート（第１の動作例）である。
【図７】本発明の一実施形態による不正検知装置の動作の手順を示すフローチャート（第２の動作例）である。
【図８】本発明の一実施形態による不正検知装置の動作の手順を示すフローチャート（第３の動作例）である。
【図９】本発明の一実施形態において、各ブロックのアドレス値の出現種類数を示す参考図である。
【符号の説明】
【００７８】
１０１・・・不正通信データ記憶部（第１の記憶手段）、１０２，１０６・・・データ抽出部（抽出手段）、１０３，１０７・・・情報エントロピー値算出部（第１の算出手段、第２の算出手段）、１０４，１０８・・・情報エントロピー値記憶部（第２の記憶手段）、１０５・・・通信データ記憶部（第１の記憶手段）、１０９・・・不正検知部（不正検知手段）、１１０・・・表示部、１１１・・・操作部、１１２・・・制御部（決定手段）
【図１】
0005046836.tif 000004
【図２】
0005046836.tif 000005
【図３】
0005046836.tif 000006
【図４】
0005046836.tif 000007
【図５】
0005046836.tif 000008
【図６】
0005046836.tif 000009
【図７】
0005046836.tif 000010
【図８】
0005046836.tif 000011
【図９】
0005046836.tif 000012