(57)【要約】【課題】ネットワーク上で実行された通信の所定の状態に係る通信結果を抽出する処理において、所定の状態の出現数を効率的に管理することができる情報処理装置およびプログラムを提供する。【解決手段】通信情報記憶部２は、ネットワーク上で実行された通信に係るIPアドレスを含む通信結果を記憶する。カウンタ３２は、通信情報記憶部３２によって記憶されている通信結果に基づいて、IPアドレスを構成する各ブロックのアドレス値毎に、各アドレス値を有するIPアドレスを送信元または送信先とする通信に係る所定の状態の出現数をカウントする。アドレス選択部３３は、各アドレス値に対応した出現数に基づいてアドレス値を選択する。通信情報抽出部３４は、通信情報記憶部２によって記憶されている通信結果から、アドレス選択部３３によって選択されたアドレス値を有するIPアドレスを含む通信結果を抽出する。【選択図】図２
2010103673.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上で実行された通信に係るIPアドレスを含む通信結果を記憶する記憶手段と、
前記記憶手段によって記憶されている通信結果に基づいて、IPアドレスを構成する各ブロックのアドレス値毎に、各アドレス値を有するIPアドレスを送信元または送信先とする通信に係る所定の状態の出現数をカウントするカウント手段と、
各アドレス値に対応した前記出現数に基づいてアドレス値を選択する選択手段と、
前記記憶手段によって記憶されている通信結果から、前記選択手段によって選択されたアドレス値を有するIPアドレスを含む通信結果を抽出する抽出手段と、
を備えたことを特徴とする情報処理装置。
【請求項２】
ネットワーク上で実行された通信に係るIPアドレスを含む通信結果を記憶する記憶手段と、
前記記憶手段によって記憶されている通信結果に基づいて、IPアドレスを構成する第１のブロックのアドレス値毎に、各アドレス値を有するIPアドレスを送信元または送信先とする通信に係る所定の状態の出現数をカウントする第１のカウント手段と、
前記第１のブロックの各アドレス値に対応した前記出現数に基づいてアドレス値を選択する第１の選択手段と、
前記記憶手段によって記憶されている通信結果に基づいて、IPアドレスを構成する第２のブロックのアドレス値毎に、各アドレス値を有するIPアドレスを送信元または送信先とする通信に係る前記所定の状態の出現数をカウントする第２のカウント手段と、
前記第２のブロックの各アドレス値に対応した前記出現数に基づいてアドレス値を選択する第２の選択手段と、
前記記憶手段によって記憶されている通信結果から、前記第１の選択手段によって選択された前記第１のブロックのアドレス値と、前記第２の選択手段によって選択された前記第２のブロックのアドレス値とを有するIPアドレスを含む通信結果を抽出する第２の抽出手段と、
を備えたことを特徴とする情報処理装置。
【請求項３】
ネットワーク上で実行された通信の送信元または送信先のIPアドレスを含む通信結果を記憶する記憶手段と、
前記記憶手段によって記憶されている通信結果に基づいて、IPアドレスを構成する第１のブロックのアドレス値毎に、各アドレス値を有するIPアドレスを送信元または送信先とする通信に係る所定の状態の出現数をカウントする第１のカウント手段と、
前記第１のブロックの各アドレス値に対応した前記出現数に基づいてアドレス値を選択する第１の選択手段と、
前記記憶手段によって記憶されている通信結果から、前記第１の選択手段によって選択された前記第１のブロックのアドレス値を有するIPアドレスを含む通信結果を抽出する第１の抽出手段と、
前記第１の抽出手段によって抽出された通信結果に基づいて、IPアドレスを構成する第２のブロックのアドレス値毎に、各アドレス値を有するIPアドレスを送信元または送信先とする通信に係る前記所定の状態の出現数をカウントする第２のカウント手段と、
前記第２のブロックの各アドレス値に対応した前記出現数に基づいてアドレス値を選択する第２の選択手段と、
前記第１の抽出手段によって抽出された通信結果から、前記第２の選択手段によって選択された前記第２のブロックのアドレス値を有するIPアドレスを含む通信結果を抽出する第２の抽出手段と、
を備えたことを特徴とする情報処理装置。
【請求項４】
ネットワーク上で実行された通信に係るIPアドレスを含む通信結果を記憶する記憶手段と、
前記記憶手段によって記憶されている通信結果に基づいて、IPアドレスを構成する各ブロックのアドレス値毎に、各アドレス値を有するIPアドレスを送信元または送信先とする通信に係る、ボットに感染した装置が行う通信に見られる第１の状態の出現数をカウントする第１のカウント手段と、
各アドレス値に対応した前記第１の状態の出現数に基づいてアドレス値を選択する第１の選択手段と、
前記記憶手段によって記憶されている通信結果に基づいて、IPアドレスを構成する各ブロックのアドレス値毎に、各アドレス値を有するIPアドレスを送信先とする通信に係る、ボットの指令サーバが行う通信に見られる第２の状態の出現数をカウントする第２のカウント手段と、
各アドレス値に対応した前記第２の状態の出現数に基づいてアドレス値を選択する第２の選択手段と、
前記記憶手段によって記憶されている通信結果から、前記第１の選択手段によって選択されたアドレス値を有する送信元のIPアドレスと、前記第２の選択手段によって選択されたアドレス値を有する送信先のIPアドレスとを含む通信結果を抽出する抽出手段と、
を備えたことを特徴とする情報処理装置。
【請求項５】
請求項１〜請求項４のいずれかに記載の情報処理装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上で実行された通信の結果に関する情報を処理する情報処理装置に関する。また、本発明は、本情報処理装置としてコンピュータを機能させるためのプログラムにも関する。
【背景技術】
【０００２】
近年、コンピュータウィルスに感染したコンピュータに悪質な動作を実行させる、ボットと呼ばれるコンピュータウィルスによる被害が拡大している。ボットは、ハーダと呼ばれる外部の指令サーバに通信セッションを確立して新たなコードをダウンロードする機能や、攻撃のための指令を受ける機能、指令に従って攻撃する機能などを持つ悪意のコードで構成されている。
【０００３】
ボットに感染したホスト（以下、ボット感染ホストと記載する）は、指令サーバの命令に応じて、攻撃対象のホストへのDDoS（Distributed Denial of Service）攻撃や、不特定多数の相手へのスパムメールの送信などを行う。現状、これらの攻撃に対しては、ファイアウォールや、侵入検知システム、迷惑メール検知フィルタなど、受信側における対策が主として用いられている。しかし、ボットによる被害を根本的に解決するためには、ネットワークを流れるトラヒックを収集して、そのログから、ボット感染ホストを特定し、その活動を止めることで、ボットの機能を無力化することが有効である。
【０００４】
ボット感染ホストの検知手法として、ボット感染ホストに特有のネットワーク通信の挙動を解析する手法が提案されている（例えば非特許文献１，２参照）。非特許文献１は、ボットがDNSサーバに指令サーバのFQDN（Fully Qualified Domain Name）のクエリを送信する挙動を観測することでボットを検出する方法を提案している。非特許文献２は、ボット感染ホストがIRC（Internet Relay Chat）を利用してIRCサーバに接続する際の動作の特徴を、IRC通信で用いられるポート番号に着目して調べる方法を提案している。
【非特許文献１】朝長秀誠、田中英彦、“Botnetの命令サーバドメインネームを用いたBot感染検出方法”、情処、CSEC-35、2007
【非特許文献２】釘崎裕司、笠原義晃、堀良彰、櫻井幸一、“トラフィック解析に基づくボット検知手法”、情処、CSEC-37、2007
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上記のようなネットワーク型の監視を行う場合、ゲートウェイで収集するトラヒックのログには、多量のSource/Destination IPアドレスのペアが含まれるため、個別のIPアドレス毎にコネクション状態を監視するためのメモリ量や処理負荷が膨大となる。例えば、IPアドレスを32ビットで表現するIPv4プロトコルでは、約43億個のIPアドレスが存在するため、コネクション状態を監視するためのメモリをIPアドレス毎に設けた場合、最大で約43億個のメモリが必要となり、各メモリにアクセスするための処理負荷も膨大となる。
【０００６】
本発明は、上述した課題に鑑みてなされたものであって、ネットワーク上で実行された通信の所定の状態に係る通信結果を抽出する処理において、所定の状態の出現数を効率的に管理することができる情報処理装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するためになされたもので、ネットワーク上で実行された通信に係るIPアドレスを含む通信結果を記憶する記憶手段と、前記記憶手段によって記憶されている通信結果に基づいて、IPアドレスを構成する各ブロックのアドレス値毎に、各アドレス値を有するIPアドレスを送信元または送信先とする通信に係る所定の状態の出現数をカウントするカウント手段と、各アドレス値に対応した前記出現数に基づいてアドレス値を選択する選択手段と、前記記憶手段によって記憶されている通信結果から、前記選択手段によって選択されたアドレス値を有するIPアドレスを含む通信結果を抽出する抽出手段と、を備えたことを特徴とする情報処理装置である。
【０００８】
例えばIPv4プロトコルでは、IPアドレス毎に所定の状態数をカウントすると、送信元のIPアドレスだけでも最大で約43億個分のカウント値の管理が必要となる。これに対して、本発明のようにIPアドレスを構成する各ブロックのアドレス値毎に所定の状態の出現数をカウントすると、IPv4プロトコルでは、送信元および送信先のIPアドレスのうち一方だけなら256アドレス×4ブロック分のカウント値の管理だけで済み、送信元および送信先のIPアドレスの両方でも256アドレス×8ブロック分のカウント値の管理だけで済む。したがって、所定の状態の出現数を効率的に管理することができる。
【０００９】
また、ボットなどのコンピュータウィルスに感染した装置が異常な通信を行う場合、その装置の通信量が増大するので、コンピュータウィルスに係る所定の状態が特定のIPアドレスに集中して発生する。このような状況において、本発明のようにIPアドレスを構成する各ブロックのアドレス値毎に所定の状態の出現数をカウントすると、いずれかのブロックで所定の状態の出現数が特定のアドレス値に偏ることになる。したがって、所定の状態の出現数が高いアドレス値を有するIPアドレスを含む通信結果を抽出することによって、ボットなどのコンピュータウィルスに感染した装置が行った通信に係る通信結果をより高精度に抽出することができる。
【００１０】
本発明において、所定の状態とは、例えば送受信関係の確立に失敗したという状態である。また、所定の状態とは、例えば送信先のPortとしてTCP/UDPの135から139まで、445、1433、1434のPortのいずれかが使用されたという状態であってもよい。また、所定の状態とは、例えば送信先のPortとしてTCPの1024以上（1433，1434を除く）のPortが使用されたという状態であってもよい。
【００１１】
また、所定の状態とは、例えばDNSサーバに対してドメイン名の名前解決を要求したが、エラーが発生したという応答、または当該ドメイン名に対応するIPアドレスが存在しないという応答があったという状態であってもよい。また、所定の状態とは、例えばDNSサーバに対して、所定の国名以外の国名を有するドメイン名の名前解決を要求したという状態であってもよい。また、所定の状態とは、例えばHTTP GETコマンドを使用して拡張子が.exeであるファイルを取得したという状態であってもよい。また、所定の状態とは、例えばユーザ名が不明であることを知らせるSMTP Responseがあったという状態であってもよい。
【００１２】
上記の所定の状態は、ボットに感染した装置が通信を行うことにより発生する、ボットに特有の状態である。したがって、上記の所定の状態の出現数をカウントすることによって、ボットに感染した装置が行った通信に係る通信結果をより高精度に抽出することができる。
【００１３】
また、本発明は、ネットワーク上で実行された通信に係る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番号（Source Port，Destination Port）、各種通信内容、および通信毎に付与される通信IDで構成されている。トラヒックログのフォーマットであるpcapフォーマットのデータを通信情報として利用してもよい。
【００２１】
IPアドレスに関して、本実施形態ではIPv4アドレスを用いて説明を行うが、IPv6アドレスについても同様である。以下では、IPv4アドレスをA.B.C.Dとしたときに、アドレス値Aを有するブロックを第１オクテット（最上位オクテット）、アドレス値Bを有するブロックを第２オクテット、アドレス値Cを有するブロックを第３オクテット、アドレス値Dを有するブロックを第４オクテット（最下位オクテット）と表現する。各オクテットは0〜255のアドレス値を有する。
【００２２】
図２は通信解析部３の構成を示している。解析制御部３１は、通信情報記憶部２に記録されている所定時間内の通信結果に関する通信情報に基づいて通信内容を解析し、後述する所定の状態が発生したか否かを判定する。また、解析制御部３１は、この判定結果に基づいてカウンタ３２の動作を制御する。カウンタ３２は、オクテット毎（第１オクテット〜第４オクテット）かつアドレス値毎（0〜255）に用意されたカウンタの集合である。カウンタ３２を構成する各カウンタは、対応するオクテットのアドレス値を有するIPアドレスを送信元または送信先とする通信に係る所定の状態の出現数をカウントする。
【００２３】
IPv4プロトコルでは、IPアドレス毎に所定の状態数をカウントすると、送信元のIPアドレスだけでも最大で約43億個分のカウント値の管理が必要となる。これに対して、本実施形態のようにIPアドレスを構成するオクテット毎かつアドレス値毎に所定の状態の出現数をカウントすると、Source IP（送信元IP）およびDestination IP（送信先IP）のうち一方だけなら256アドレス×4オクテット分のカウント値の管理だけで済み、Source IPおよびDestination IPの両方でも256アドレス×8オクテット分のカウント値の管理だけで済む。したがって、所定の状態の出現数を効率的に管理することができる。
【００２４】
アドレス選択部３３は、カウンタ３２がカウントした所定の状態の出現数に基づいてオクテット毎にアドレス値を選択する。通信情報抽出部３４は、通信情報記憶部２に記憶されている通信情報から、選択されたアドレス値を有する送信元または送信先のIPアドレスを含む通信情報を抽出する。
【００２５】
表示制御部３５は、通信情報抽出部３４によって抽出された通信情報を表示するためのグラフィック画像データを生成し、表示部３６へ出力する。表示部３６は、表示制御部３５から出力されたグラフィック画像データに基づいて、通信情報を視覚化する。
【００２６】
次に、本実施形態で検出対象とする７種類の状態を説明する。これら７種類の状態は、いずれもボットに感染した装置が行う通信に見られる状態である。
【００２７】
第１の状態は、送受信関係の確立に失敗したという状態である。ボットに感染した装置は、感染を拡大するために、多数のDestination IPを探索するが、送受信関係の確立に失敗する場合が多い。このため、ボットに感染した装置が行う通信では、送受信関係の確立の成功率が低いという特徴的なパターンが現れる。
【００２８】
ボットに感染した装置による送受信関係の確立が失敗する理由として、感染先のホストの探索を目的に、ネットマスク長が１６ビットもしくは２４ビットの規模のネットワーク中の全ホストを対象として探索を行うことが挙げられる。この場合、大量のホストによる単一のホストに対する１ないし低頻度の確立失敗が観測される。また、他の理由として、既に機能を停止しているなどの理由から通信不能となっているホストとの通信を繰り返し行うことが挙げられる。この場合、単一のホストに対する高頻度の確立失敗が観測される。
【００２９】
第１の状態は、ICMP Echoパケットに対するICMP Replyパケットの有無を監視することによって検出可能である。ICMP EchoパケットとICMP Replyパケットは対になっており、正常時にはICMP Echoパケットに対してICMP Replyパケットが返信されるが、ボットに感染した装置ではICMP Replyパケットの返信率が低い。したがって、ICMP EchoパケットとICMP Replyパケットの数をカウントすることによって第１の状態の出現数をカウントすることが可能となる。
【００３０】
第１の状態は、TCP-SYNパケットに対するTCP-SYN-ACKパケットの有無を監視することによっても検出可能である。TCP-SYNパケットとTCP-SYN-ACKパケットは対になっており、正常時にはTCP-SYNパケットに対してTCP-SYN-ACKパケットが返信されるが、ボットに感染した装置ではTCP-SYN-ACKパケットの返信率が低い。したがって、TCP-SYNパケットとTCP-SYN-ACKパケットの数をカウントすることによって第１の状態の出現数をカウントすることが可能となる。
【００３１】
第１の状態は、接続の拒否を示すICMP Unreachableパケットの有無を監視することによっても検出可能である。正常時にはICMP Unreachableパケットが返信されることは少ないが、ボットに感染した装置ではICMP Unreachableパケットの返信率が高い。したがって、ICMP Unreachableパケットの数をカウントすることによって第１の状態の出現数をカウントすることが可能となる。
【００３２】
第２の状態は、Destination Port（送信先Port）としてTCP/UDPの135から139まで、445、1433、1434のPortのいずれかが使用されたという状態である。ボットに感染した装置が他の装置に対して感染を拡大するとき、上記のPortに向かうパケットが観測されるという特徴的なパターンが現れる。したがって、上記のPortがDestination Portに使用されているパケットの数をカウントすることによって、第２の状態の出現数をカウントすることが可能となる。
【００３３】
第３の状態は、Destination Port（送信先Port）としてTCPの1024以上（1433，1434を除く）のPortが使用されたという状態である。ボットに感染した装置が指令サーバと通信を行うとき、上記のPortに向かうパケットが観測されるという特徴的なパターンが現れる。したがって、上記のPortがDestination Portに使用されているパケットの数をカウントすることによって、第３の状態の出現数をカウントすることが可能となる。TCPの1433，1434のPortは第２の状態として検出することにしているので、第３の状態ではこれらのPortを検出対象から除いている。
【００３４】
第４の状態は、DNSサーバに対してドメイン名の名前解決を要求したが、エラーが発生したという応答、または当該ドメイン名に対応するIPアドレスが存在しないという応答があったという状態である。指令サーバのIPアドレスが頻繁に変化するため、ボットに感染した装置は、指令サーバのドメイン名の名前解決をDNSサーバに要求し、ドメイン名に対応したIPアドレスをDNSサーバから取得する。
【００３５】
しかし、異常な文字列から構成されるFQDN（Fully Qualified Domain Name）の名前解決が要求されて名前解決に失敗することにより、検索エラーが頻発するという特徴的なパターンが現れる。このとき、DNSサーバから返信されるDNS Recursive ResponseパケットにはErrorが記録される。また、名前解決を要求されたドメイン名が既に存在しなくなっており、IPアドレスが見つからないことが頻発するという特徴的なパターンも現れる。このとき、DNSサーバから返信されるDNS Recursive ResponseパケットにはNo such Nameが記録される。したがって、Errorが記録されたDNS Recursive ResponseパケットまたはNo such Nameが記録されたDNS Recursive Responseパケット（もしくはその両方）の数をカウントすることによって、第４の状態の出現数をカウントすることが可能となる。
【００３６】
第５の状態は、DNSサーバに対して、所定の国名以外の国名を有するドメイン名の名前解決を要求したという状態である。指令サーバは、グローバルIPアドレスを持ち、インターネット上に広く分布して存在する。このため、指令サーバは様々な国に分布して存在することになり、DNSサーバに名前解決を要求する対象のドメイン名として、様々な国名コードを含むドメイン名が現れるという特徴的なパターンが現れる。したがって、DNSサーバから返信されるDNS Recursive Responseパケットとして、.jpドメイン以外のドメインを含むドメイン名が記録されたパケットの数をカウントすることによって、第５の状態の出現数をカウントすることが可能となる。
【００３７】
第６の状態は、HTTP GETコマンドを使用して拡張子が.exeであるファイルを取得したという状態である。ボットに感染した装置が指令サーバから新たなコードを取得するときには、HTTP GETコマンドを使用して拡張子が.exeであるファイルを取得するという特徴的なパターンが現れる。通常、HTTP GETコマンドを使用して拡張子が.exeであるファイルを取得することは稀である。したがって、HTTP GETコマンドを使用して拡張子が.exeであるファイルを取得する通信に係るパケットの数をカウントすることによって、第６の状態の出現数をカウントすることが可能となる。
【００３８】
第７の状態は、ユーザ名が不明であることを知らせるSMTP Responseパケットがあったという状態である。ボットに感染した装置がスパムメールを送信する場合に、スパムメールを受け取るユーザ名をランダムに指定することが多い。このため、ユーザ名が不明であることを示すUser Unknownが記録された多くのSMTP Responseパケットがメールサーバから返信されるという特徴的なパターンが現れる。したがって、User Unknownが記録されたSMTP Responseパケットの数をカウントすることによって、第７の状態の出現数をカウントすることが可能となる。
【００３９】
次に、本実施形態における通信解析処理の内容を説明する。以下では、３種類の通信解析処理（第１の通信解析処理、第２の通信解析処理、第３の通信解析処理）の内容を説明するが、これら３種類の通信解析処理のうちのどれを使用してもよい。まず、第１の通信解析処理を説明する。図３は第１の通信解析処理の手順を示している。
【００４０】
通信情報記憶部２に記録されている通信情報のうち、所定の単位時間内に行われた通信に係る通信情報が処理対象となる。解析制御部３１は処理対象の通信情報を通信情報記憶部２から読み出し、各通信情報に基づいて通信内容を解析する。解析制御部３１は、通信内容の解析により、検出対象としている所定の状態（上記第１〜第７の状態のいずれか）が発生したか否かを判定し、判定結果に基づいてカウンタ３２を制御する。カウンタ３２は、解析制御部３１による制御に従って、所定の状態の出現数をオクテット毎かつアドレス値毎にカウントする（ステップＳ１００）。
【００４１】
以下、ステップＳ１００の処理の具体例を説明する。前述したように、カウンタ３２は、オクテット毎かつアドレス値毎に用意されたカウンタの集合である。図４〜図６は、カウンタ３２が有する各カウンタによるカウントの一例を示している。以下では、第１の状態（送受信関係の確立に失敗したという状態）を検出対象とする。
【００４２】
図４〜図６では、192.168.0.20というIPアドレスに注目している。軸４０ａは第１オクテットに対応し、軸４０ｂは第２オクテットに対応し、軸４０ｃは第３オクテットに対応し、軸４０ｄは第４オクテットに対応している。各軸の上端は、8bitで表されるアドレス値の000に対応し、各軸の下端はアドレス値の255に対応している。カウンタ３２ａは第１オクテットのアドレス値192に対応している。カウンタ３２ｂは第２オクテットのアドレス値168に対応している。カウンタ３２ｃは第３オクテットのアドレス値0に対応している。カウンタ３２ｄは第４オクテットのアドレス値20に対応している。
【００４３】
図４はカウンタ３２ａ，３２ｂ，３２ｃ，３２ｄの初期状態を示している。解析制御部３１は、ICMP Echoパケットに対応する通信情報を検出した場合、通信情報に含まれるSource IP に対応するカウンタ３２のカウント値を１増加させる。例えば、192.168.0.20をSource IPとするICMP Echoパケットに対応する通信情報が検出された場合、カウンタ３２ａ，３２ｂ，３２ｃ，３２ｄのカウント値がそれぞれ１増加する。図５はこのときのカウンタ３２ａ，３２ｂ，３２ｃ，３２ｄの状態を示している。
【００４４】
また、解析制御部３１は、ICMP Replyパケットに対応する通信情報を検出した場合、通信情報に含まれるDestination IP に対応するカウンタ３２のカウント値を１減少させる。例えば、192.168.0.20をDestination IPとするICMP Replyパケットに対応する通信情報が検出された場合、カウンタ３２ａ，３２ｂ，３２ｃ，３２ｄのカウント値がそれぞれ１減少する。図５に示した状態からカウンタ３２ａ，３２ｂ，３２ｃ，３２ｄのカウント値が１減少した場合、カウンタ３２ａ，３２ｂ，３２ｃ，３２ｄの状態は図４に示す状態に戻る。
【００４５】
正常な通信では、ICMP Echoパケットに対してICMP Replyパケットが返信されるため、カウント値は増加しない。しかし、ボットに感染した装置が通信を行うと、ICMP Replyパケットの返信率が低下するため、カウント値が増加するようになる。図６は、ICMP Replyパケットの返信率の低下により、カウント値が増加した状態を示している。
【００４６】
上記では、各アドレス値に対して１個のカウンタを用意しているが、各アドレス値に対して、ICMP Echoパケットの数をカウントするためのカウンタ（第１のカウンタ）と、ICMP Replyパケットの数をカウントするためのカウンタ（第２のカウンタ）とを用意してもよい。この場合、第１の状態の出現数は、第１のカウンタがカウントした値から第２のカウンタがカウントした値を減算した数となる。これに対して、上記のように各アドレス値に対して１個のカウンタのみで第１の状態の出現数をカウントすることによって、カウンタ３２の回路規模やカウント値の管理負荷を抑えることができる。
【００４７】
TCP-SYNパケットに対するTCP-SYN-ACKパケットの有無を監視することによって第１の状態を検出する場合には次のようにすればよい。すなわち、TCP-SYNパケットに対応する通信情報の検出に伴って、通信情報に含まれるSource IP に対応するカウンタのカウント値を１増加させ、TCP-SYN-ACKパケットに対応する通信情報の検出に伴って、その通信情報に含まれるDestination IP に対応するカウンタのカウント値を１減少させればよい。
【００４８】
ICMP Unreachableパケットの有無を監視することによって第１の状態を検出する場合には、ICMP Unreachableパケットに対応する通信情報の検出に伴って、その通信情報に含まれるDestination IP に対応するカウンタのカウント値を１増加させればよい。
【００４９】
第２の状態（Destination PortとしてTCP/UDPの135から139まで、445、1433、1434のPortのいずれかが使用されたという状態）を検出する場合には、これら特定のDestination Portを含む通信情報の検出に伴って、その通信情報に含まれるSource IP に対応するカウンタのカウント値を１増加させればよい。
【００５０】
第３の状態（Destination Port（送信先Port）としてTCPの1024以上（1433，1434を除く）のPortが使用されたという状態）を検出する場合には、1024以上（1433，1434を除く）のDestination Portを含む通信情報の検出に伴って、その通信情報に含まれるSource IP に対応するカウンタのカウント値を１増加させればよい。
【００５１】
第４の状態（DNSサーバに対してドメイン名の名前解決を要求したが、エラーが発生したという応答、または当該ドメイン名に対応するIPアドレスが存在しないという応答があったという状態）を検出する場合には、Errorが記録されたDNS Recursive ResponseパケットまたはNo such Nameが記録されたDNS Recursive Responseパケット（もしくはその両方）に対応する通信情報の検出に伴って、その通信情報に含まれるDestination IP に対応するカウンタのカウント値を１増加させればよい。
【００５２】
第５の状態（DNSサーバに対して、所定の国名以外の国名を有するドメイン名の名前解決を要求したという状態）を検出する場合には、.jpドメイン以外のドメインを含むドメイン名が記録されたDNS Recursive Responseパケットに対応する通信情報の検出に伴って、その通信情報に含まれるDestination IP に対応するカウンタのカウント値を１増加させればよい。
【００５３】
第６の状態（HTTP GETコマンドを使用して拡張子が.exeであるファイルを取得したという状態）を検出する場合には、HTTP GETコマンドを使用して拡張子が.exeであるファイルを取得する通信に係るパケットに対応する通信情報の検出に伴って、その通信情報に含まれるSource IP またはDestination IP に対応するカウンタのカウント値を１増加させればよい。
【００５４】
第７の状態（ユーザ名が不明であることを知らせるSMTP Responseパケットがあったという状態）を検出する場合には、User Unknownが記録されたSMTP Responseパケットに対応する通信情報の検出に伴って、その通信情報に含まれるDestination IP に対応するカウンタのカウント値を１増加させればよい。
【００５５】
以下、第１の通信解析処理の説明に戻る。ステップＳ１００に続いて、解析制御部３１は、オクテットの番号を示す変数Ｎ（１≦Ｎ≦４）に１を設定し、アドレス選択部３３に変数Ｎを通知する（ステップＳ１０１）。続いて、アドレス選択部３３は、第Ｎオクテットを処理対象のオクテットとして選択し、第Ｎオクテットの各アドレス値に対応した所定の状態の出現数（カウンタ３２がカウントした値）を比較し、出現数が上位Ｍ位（Ｍ≧１）までのアドレス値を選択する（ステップＳ１０２）。
【００５６】
ボットに感染した装置が異常な通信を行うと、本実施形態で注目している所定の状態が特定のIPアドレスに偏って出現する。したがって、所定の状態の出現数が多いアドレス値を選択することによって、ボットに感染した装置のIPアドレスをより高精度に特定することができる。
【００５７】
続いて、解析制御部３１は変数Ｎが４であるか否かを判定する（ステップＳ１０３）。変数Ｎが４となっていれば、第１オクテットから第４オクテットまでの全てのオクテットについてステップＳ１０２の処理が行われたことになる。変数Ｎが４でない場合（ステップＳ１０３でＮＯの場合）には、解析制御部３１は変数Ｎの値を１増加させ（ステップＳ１０４）、アドレス選択部３３に再度ステップＳ１０２の処理を実行させる。
【００５８】
また、変数Ｎが４であった場合（ステップＳ１０３でＹＥＳの場合）、解析制御部３１は通信情報抽出部３４に通信情報の抽出処理を実行させる。通信情報抽出部３４は、通信情報記憶部２に記憶されている通信情報から、ステップＳ１０２で選択された各オクテットのアドレス値を有するSource IPまたはDestination IPを含む通信情報を抽出する（ステップＳ１０５）。
【００５９】
図７は、第１オクテットから第４オクテットまでの全てのオクテットについてステップＳ１０２の処理を行ったときに選択された各オクテットのアドレス値の一例を示している。各オクテットについてＭ個のアドレス値が選択されている。これらのアドレス値を組み合わせたIPアドレスのうちのいずれかが、ボットに感染した装置のIPアドレスとなる。したがって、ボットに感染した装置のIPアドレスの候補数はＭ４となる。
【００６０】
ステップＳ１０６に続いて、通信情報抽出部３４は、抽出した通信情報を表示制御部３５へ出力する。表示制御部３５は、通信情報抽出部３４によって抽出された通信情報を表示するためのグラフィック画像データを生成し、表示部３６へ出力する。表示部３６は、表示制御部３５から出力されたグラフィック画像データに基づいて、通信情報を視覚化する（ステップＳ１０６）。このとき、例えば抽出された通信情報に含まれるSource IP とDestination IPの組合せが表示される。このような視覚化によって、ボットに感染した装置による通信の状況を把握することができる。
【００６１】
上記のように、ステップＳ１０２で選択したアドレス値の組合せからなるIPアドレスを含む通信情報を抽出することによって、ボットに感染した装置が行った通信に係る通信情報をより高精度に抽出することができる。また、ネットワーク管理者などは、ステップＳ１０６で表示された情報に基づいて、ボットに感染した装置を特定するための検査を行うが、検査すべきIPアドレスの候補数は上記のようにＭ４となる。このため、監視対象のネットワーク内の全てのIPアドレスよりも少ないIPアドレスを対象に検査を行うことができ、検査効率を向上することができる。
【００６２】
次に、第２の通信解析処理を説明する。図８は第２の通信解析処理の手順を示している。通信情報記憶部２に記録されている通信情報のうち、所定の単位時間内に行われた通信に係る通信情報が最初の処理対象となる。まず、解析制御部３１は、オクテットの番号を示す変数Ｎ（１≦Ｎ≦４）に４を設定し、アドレス選択部３３に変数Ｎを通知する（ステップＳ２００）。
【００６３】
続いて、解析制御部３１は処理対象の通信情報に基づいて通信内容を解析する。解析制御部３１は、通信内容の解析により、検出対象としている所定の状態（上記第１〜第７の状態のいずれか）が発生したか否かを判定し、判定結果に基づいてカウンタ３２を制御する。カウンタ３２は、解析制御部３１による制御に従って、所定の状態の出現数を第Ｎオクテットのアドレス値毎にカウントする（ステップＳ２０１）。カウントの方法は、前述した方法と同様である。
【００６４】
続いて、アドレス選択部３３は、第Ｎオクテットの各アドレス値に対応した所定の状態の出現数（カウンタ３２がカウントした値）を比較し、出現数が上位Ｍ位（Ｍ≧１）までのアドレス値を選択する（ステップＳ２０２）。続いて、解析制御部３１は通信情報抽出部３４に通信情報の抽出処理を実行させる。通信情報抽出部３４は、処理対象の通信情報から、ステップＳ１０２で選択された第Ｎオクテットのアドレス値を有するSource IPまたはDestination IPを含む通信情報を抽出する（ステップＳ２０３）。
【００６５】
続いて、解析制御部３１は変数Ｎが１であるか否かを判定する（ステップＳ２０４）。変数Ｎが１となっていれば、第１オクテットから第４オクテットまでの全てのオクテットについてステップＳ２０１〜Ｓ２０３の処理が行われたことになる。変数Ｎが１でない場合（ステップＳ２０４でＮＯの場合）には、解析制御部３１は変数Ｎの値を１減少させ（ステップＳ２０５）、アドレス選択部３３に再度ステップＳ２０１の処理を実行させる。
【００６６】
第４オクテットについての処理に関しては、通信情報記憶部２に記録されている通信情報のうち、所定の単位時間内に行われた通信に係る通信情報が処理対象の通信情報となる。また、第３オクテットについての処理に関しては、第４オクテットについての処理中にステップＳ２０３で抽出された通信情報が処理対象の通信情報となる。同様に、第２オクテット、第１オクテットについての処理に関しては、それぞれ第３オクテット、第２オクテットについての処理中にステップＳ２０３で抽出された通信情報が処理対象の通信情報となる。
【００６７】
したがって、第ｎオクテット（１≦ｎ≦３）についての処理対象となる通信情報の個数は、第ｎ＋１オクテットについての処理対象となる通信情報の個数以下となる。これによって、処理対象となる通信情報が絞り込まれていくことになる。
【００６８】
図９は、第２の通信解析処理による通信情報の抽出の様子を示している。図９において、ｘは０〜９の任意の数字を示し、Ａ１〜ＡＭは第１オクテットのアドレス値を示し、Ｂ１〜ＢＭは第２オクテットのアドレス値を示し、Ｃ１〜ＣＭは第３オクテットのアドレス値を示し、Ｄ１〜ＤＭは第４オクテットのアドレス値を示している。
【００６９】
第４オクテットについてのステップＳ２０３の処理により、所定の単位時間に対応した通信情報９００から、第４オクテットのアドレス値Ｄ１〜ＤＭを有するIPアドレスを含む通信情報９１０が抽出される。続いて、第３オクテットについてのステップＳ２０３の処理により、通信情報９１０から、第３オクテットのアドレス値Ｃ１〜ＣＭを有するIPアドレスを含む通信情報９２０が抽出される。続いて、第２オクテットについてのステップＳ２０３の処理により、通信情報９２０から、第２オクテットのアドレス値Ｂ１〜ＢＭを有するIPアドレスを含む通信情報９３０が抽出される。続いて、第１オクテットについてのステップＳ２０３の処理により、通信情報９３０から、第１オクテットのアドレス値Ａ１〜ＡＭを有するIPアドレスを含む通信情報９４０が抽出される。以上のようにして、処理対象となる通信情報が絞り込まれていく。
【００７０】
以下、第１の通信解析処理の説明に戻る。変数Ｎが４であった場合（ステップＳ２０４でＹＥＳの場合）、通信情報抽出部３４は、抽出した通信情報を表示制御部３５へ出力する。表示制御部３５は、通信情報抽出部３４によって抽出された通信情報を表示するためのグラフィック画像データを生成し、表示部３６へ出力する。表示部３６は、表示制御部３５から出力されたグラフィック画像データに基づいて、通信情報を視覚化する（ステップＳ２０５）。
【００７１】
上記では、第４オクテットから第１オクテットへ向かって処理対象のオクテットが切り替わるが、逆に第１オクテットから第４オクテットへ向かって処理対象のオクテットが切り替わるようにしてもよい。また、第１オクテットのアドレス値は、ネットワークを提供するISP（Internet Services Provider）などの事業者毎に決まっているため、監視対象とするネットワークに対応した第１オクテットのアドレス値を有する通信情報を最初に抽出しておき、その通信情報に対して、第２の通信解析処理を行ってもよい。
【００７２】
上記の第２の通信解析処理を第１の通信解析処理と比較すると以下のようになる。第１の通信解析処理では、例えばA.B.C.D（A〜Dは0〜255のいずれか）というIPアドレスについては所定の状態の出現数が多く、E.F.G.D（E〜Gは0〜255のいずれか）というIPアドレスについては所定の状態の出現数が少ない場合でも、第４オクテットのアドレス値Dについての所定の状態の出現数が多いことにより、A.B.C.DだけでなくE.F.G.DというIPアドレスも、ボットに感染した装置のIPアドレスの候補となる。このため、オクテット単位で見ると所定の状態の出現数が多いアドレス値が選択されるのだが、各オクテットのアドレス値を組み合わせたIPアドレス単位で見ると必ずしも所定の状態の出現数が多いとは限らない。
【００７３】
これに対して、第２の通信解析処理では、処理対象のオクテット毎に所定の状態の出現数が多いアドレス値が選択されて通信情報が絞り込まれ、その通信情報に対して、次のオクテットについての処理が行われる。このため、オクテット単位だけでなく、IPアドレス単位で見ても所定の状態の出現数の多いIPアドレスが、ボットに感染した装置のIPアドレスの候補となる。したがって、ボットに感染した装置が行った通信に係る通信情報をより高精度に抽出することができる。
【００７４】
次に、第３の通信解析処理を説明する。第３の通信解析処理は、ボットに感染した可能性がある装置のIPアドレスをSource IPに含み、指令サーバの可能性がある装置のIPアドレスをDestination IPに含む通信情報を抽出するというものである。第３の通信解析処理では、所定の状態（第１〜第７の状態のいずれか）に関して第１の通信解析処理または第２の通信解析処理が実行され、選択されたアドレス値を有するIPアドレスをSource IPに含む通信情報が抽出される。このSource IPと同じIPアドレスを有する装置はボットに感染している可能性が高い。
【００７５】
また、所定の状態（第３の状態）に関して第１の通信解析処理または第２の通信解析処理が実行され、選択されたアドレス値を有するIPアドレスをDestination IPに含む通信情報が抽出される。このDestination IPと同じIPアドレスを有する装置は指令サーバである可能性が高い。第３の状態（Destination PortとしてTCPの1024以上（1433，1434を除く）のPortが使用されたという状態）は指令サーバにも見られるので、指令サーバのIPアドレスを含む通信情報を抽出する際には、第３の状態が検出対象となる。
【００７６】
最終的に通信情報抽出部３４は、ボットに感染した可能性がある装置が行った通信に係る通信情報に含まれるSource IPと同じIPアドレスをSource IPに含み、指令サーバの可能性がある装置が行った通信に係る通信情報に含まれるDestination IPと同じIPアドレスをDestination IPに含む通信情報を抽出する。この通信情報は、ボットに感染した可能性がある装置と、指令サーバの可能性がある装置との間で行われた通信に関係する。このように、ボットに感染した可能性がある装置のIPアドレスをSource IPに含み、指令サーバの可能性がある装置のIPアドレスをDestination IPに含む通信情報を抽出することによって、ボットに感染した装置が指令サーバと行った通信に係る通信結果をより高精度に抽出することができる。
【００７７】
上述したように、本実施形態によれば、IPアドレスを構成する各オクテット（ブロック）のアドレス値毎に所定の状態の出現数をカウントすることによって、所定の状態の出現数を効率的に管理することができる。また、所定の状態の出現数が高いアドレス値を有するIPアドレスを含む通信結果を抽出することによって、ボットなどのコンピュータウィルスに感染した装置が行った通信に係る通信結果をより高精度に抽出することができる。
【００７８】
本実施形態で検出対象とする状態は、ボットに感染した装置が通信を行うことにより発生する、ボットに特有の状態である。したがって、本実施形態によれば、ボットに感染した装置が行った通信に係る通信結果をより高精度に抽出することができる。
【００７９】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、上述した実施形態による通信情報記憶部２および通信解析部３の動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させてもよい。
【００８０】
ここで、「コンピュータ」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００８１】
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【図面の簡単な説明】
【００８２】
【図１】本発明の一実施形態による通信解析システムの構成を示す構成図である。
【図２】本発明の一実施形態による通信解析システムが備える通信解析部の構成を示すブロック図である。
【図３】本発明の一実施形態における第１の通信解析処理の手順を示すフローチャートである。
【図４】本発明の一実施形態による通信解析システムが備えるカウンタの動作を説明するための参考図である。
【図５】本発明の一実施形態による通信解析システムが備えるカウンタの動作を説明するための参考図である。
【図６】本発明の一実施形態による通信解析システムが備えるカウンタの動作を説明するための参考図である。
【図７】本発明の一実施形態における第１の通信解析処理で選択されるオクテット毎のアドレス値を示す参考図である。
【図８】本発明の一実施形態における第２の通信解析処理の手順を示すフローチャートである。
【図９】本発明の一実施形態における第２の通信解析処理を説明するための参考図である。
【符号の説明】
【００８３】
１・・・通信監視部、２・・・通信情報記憶部（記憶手段）、３・・・通信解析部、４・・・ゲートウェイ、３１・・・解析制御部、３２・・・カウンタ（カウント手段）、３３・・・アドレス選択部（選択手段）、３４・・・通信情報抽出部（抽出手段）、３５・・・表示制御部、３６・・・表示部
【図１】
2010103673.tif 000003
【図２】
2010103673.tif 000004
【図３】
2010103673.tif 000005
【図４】
2010103673.tif 000006
【図５】
2010103673.tif 000007
【図６】
2010103673.tif 000008
【図７】
2010103673.tif 000009
【図８】
2010103673.tif 000010
【図９】
2010103673.tif 000011