(57)【要約】【課題】所定の状態の出現数を効率的に管理することができる情報処理装置、プログラム、および記録媒体を提供する。【解決手段】通信情報記憶部１１は、ネットワーク上で実行された通信に係る通信結果を記憶する。カウンタ１３は、IPアドレスを構成する各ブロックのアドレス値毎に、各アドレス値を有するIPアドレスを送信元または送信先とする通信に係る所定の状態の出現数をカウントする。エントロピー算出部１４は、出現数に基づいて、各アドレス値に対応した出現数の分散の度合いを示すエントロピー値をブロック毎に算出する。アドレス選択部１５は、各ブロックのエントロピー値に基づいてブロックを選択し、選択したブロックの各アドレス値に対応した出現数に基づいてアドレス値を選択する。通信情報抽出部１６は、選択されたアドレス値を有するIPアドレスを含む通信結果を抽出する。【選択図】図１
2010092235.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上で実行された通信に係るIPアドレスを含む通信結果を記憶する記憶手段と、
前記通信結果に基づいて、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アドレス空間の広さに依存して、特定できるボット通信の数も限られてしまう。
【０００４】
そこで、ネットワーク回線を監視しておき、ボットと指令サーバ間のIRC（Internet Relay Chat）通信に含まれる特定の文字列を検知してボット通信を抽出する手法が提案されている（例えば非特許文献２参照）。また、侵入検知システム（Intrusion Detection System：IDS）のアラートシナリオからボットらしさを評価する手法も提案されている（例えば非特許文献３参照）。しかし、IRC通信を伴わないボット通信が増えてきていることや、IDSのシグネチャによって検知されないボット通信が増えてきていることなどから、検知精度について問題がある。
【０００５】
ところで、ボットの通信活動ではないが、ネットワーク上を流れるP2P通信を特定する手法として、Source IP（送信側IPアドレス）毎のコネクションの確立成功率に着目して、成功率の低いSource IPをP2P端末と判定する手法が提案されている（例えば非特許文献４参照）。
【非特許文献１】須藤年章，富士原圭，“仮想インターネットを用いたボットネット挙動解析システムの評価”，情処，CSS2006，PP.513-518，2006年10月
【非特許文献２】J. Goebel，“Rishi: Identify Bot Contaminated Hosts by IRC Nickname Evaluation”，In Proceeding of the HotBots'07，USENIX，April，2007
【非特許文献３】G. Gu，P. Porras，V. Yegneswaran，M. Fong，and W. Lee，“BotHunter: Detecting Malware Infection Through IDS-Driven Dialog Correlataion”，In Proceedings of the Security'07，USENIX，August 2007
【非特許文献４】重本倫宏，大河内一弥，寺田真敏，“コネクション解析によるP2P通信端末検知手法”，情処研報，CSEC-42，PP.329-334，2008年7月
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、多数のSource IPが通信を実行するネットワークに対して、非特許文献４に記載の手法を適用した場合には、Source IP毎にコネクション状態を監視するためのメモリ量や処理負荷が膨大となる。例えば、IPアドレスを32ビットで表現するIPv4プロトコルでは、約43億個のIPアドレスが存在するため、コネクション状態を監視するためのメモリをSource IP毎に設けた場合、最大で約43億個のメモリが必要となり、各メモリにアクセスするための処理負荷も膨大となる。
【０００７】
本発明は、上述した課題に鑑みてなされたものであって、ネットワーク上で実行された通信の所定の状態に係る通信結果を抽出する処理において、所定の状態の出現数を効率的に管理することができる情報処理装置、プログラム、および記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００８】
＜第１の発明＞
本発明は、上記の課題を解決するためになされたもので、ネットワーク上で実行された通信に係るIPアドレスを含む通信結果を記憶する記憶手段と、前記通信結果に基づいて、IPアドレスを構成する各ブロックのアドレス値毎に、各アドレス値を有するIPアドレスを送信元または送信先とする通信に係る所定の状態の出現数をカウントするカウント手段と、前記出現数に基づいて、各アドレス値に対応した前記出現数の分散の度合いを示すエントロピー値をブロック毎に算出する算出手段と、各ブロックの前記エントロピー値に基づいてブロックを選択し、選択したブロックの各アドレス値に対応した前記出現数に基づいてアドレス値を選択する選択手段と、前記通信結果から、選択されたアドレス値を有するIPアドレスを含む通信結果を抽出する抽出手段と、を備えたことを特徴とする情報処理装置である。
【０００９】
例えばIPv4プロトコルでは、IPアドレス毎に所定の状態数をカウントすると、送信元のIPアドレスだけでも最大で約43億個分のカウント値の管理が必要となる。これに対して、上記第１の発明のようにIPアドレスを構成する各ブロックのアドレス値毎に所定の状態の出現数をカウントすると、IPv4プロトコルでは、送信元および送信先のIPアドレスのうち一方だけなら256アドレス×4ブロック分のカウント値の管理だけで済み、送信元および送信先のIPアドレスの両方でも256アドレス×8ブロック分のカウント値の管理だけで済む。したがって、所定の状態の出現数を効率的に管理することができる。
【００１０】
また、ボットなどのコンピュータウィルスに感染した装置が異常な通信を行う場合、その装置の通信量が増大するので、コンピュータウィルスに係る所定の状態が特定の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アドレスである可能性が高い。したがって、上記第１０の発明によれば、ボットに感染した装置が指令サーバと行った通信に係る通信結果をより高精度に抽出することができる。
【００２３】
＜第１１の発明＞
また、本発明は、上記の情報処理装置としてコンピュータを機能させるためのプログラムである。
【００２４】
＜第１２の発明＞
また、本発明は、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００２５】
本発明によれば、所定の状態の出現数を効率的に管理することができる。また、ボットなどのコンピュータウィルスに感染した装置が行った通信に係る通信結果をより高精度に抽出することができる。
【発明を実施するための最良の形態】
【００２６】
以下、図面を参照し、本発明の実施形態を説明する。図１は、本発明の一実施形態による情報処理装置の構成を示している。通信監視部１０は、ネットワーク上を伝送するパケットを取得し、そのパケットから通信情報を抽出する。通信情報記憶部１１は、通信監視部１０によって抽出された通信情報を記憶する。
【００２７】
通信情報は、通信の実行に係る送信側と受信側の関係を把握するのに必要な情報である。また、通信情報は、ネットワーク上で実行された通信の特徴を示す情報でもあり、この通信情報に基づいて異常な通信を検知することが可能である。本実施形態の通信情報は、時刻（Start Time，End Time）、通信プロトコル（ICMP，TCP，UDP等）、IPアドレス（Source IP，Destination IP）、Port番号（Source Port，Destination Port）、各種通信内容、および装置内で通信毎に付与される通信IDで構成されている。
【００２８】
IPアドレスに関して、本実施形態ではIPv4アドレスを用いて説明を行うが、IPv6アドレスについても同様である。以下では、IPv4アドレスをA.B.C.Dとしたときに、アドレス値Aを有するブロックを第１ブロック（最上位ブロック）、アドレス値Bを有するブロックを第２ブロック、アドレス値Cを有するブロックを第３ブロック、アドレス値Dを有するブロックを第４ブロック（最下位ブロック）と表現する。各ブロックは0〜255のアドレス値を有する。
【００２９】
通信解析部１２は、通信情報記憶部１１に記録されている所定時間内の通信結果に関する通信情報に基づいて通信内容を解析し、後述する所定の状態が発生したか否かを判定する。また、通信解析部１２は、この判定結果に基づいてカウンタ１３の動作を制御する。カウンタ１３は、ブロック毎（第１ブロック〜第４ブロック）かつアドレス値毎（0〜255）に用意されたカウンタの集合である。カウンタ１３を構成する各カウンタは、対応するブロックのアドレス値を有するIPアドレスを送信元または送信先とする通信に係る所定の状態の出現数をカウントする。
【００３０】
IPv4プロトコルでは、IPアドレス毎に所定の状態数をカウントすると、送信元のIPアドレスだけでも最大で約43億個分のカウント値の管理が必要となる。これに対して、本実施形態のようにIPアドレスを構成するブロック毎かつアドレス値毎に所定の状態の出現数をカウントすると、送信元および送信先のIPアドレスのうち一方だけなら256アドレス×4ブロック分のカウント値の管理だけで済み、送信元および送信先のIPアドレスの両方でも256アドレス×8ブロック分のカウント値の管理だけで済む。したがって、所定の状態の出現数を効率的に管理することができる。
【００３１】
エントロピー算出部１４は、カウンタ１３がカウントした所定の状態の出現数に基づいて、その出現数の分散の度合いを示すエントロピー値（情報エントロピー値）をブロック毎に算出する。所定の状態が特定のアドレス値に集中して出現している場合、エントロピー値は小さくなり、所定の状態が特定のアドレス値に集中せずに分散して出現している場合、エントロピー値は大きくなる。
【００３２】
アドレス選択部１５は、エントロピー値に基づいて、所定の状態が特定のアドレス値に集中して出現しているブロックを選択し、選択したブロックの各アドレス値に対応した出現数に基づいてアドレス値を選択する。通信情報抽出部１６は、通信情報記憶部１１に記憶されている通信情報から、選択されたアドレス値を有する送信元または送信先のIPアドレスを含む通信情報を抽出する。
【００３３】
表示制御部１７は、通信情報抽出部１６によって抽出された通信情報を表示するためのグラフィック画像データを生成し、表示部１８へ出力する。表示部１８は、表示制御部１７から出力されたグラフィック画像データに基づいて、通信情報を視覚化する。
【００３４】
次に、本実施形態で検出対象とする７種類の状態を説明する。これら７種類の状態は、いずれもボットに感染した装置が行う通信に見られる状態である。
【００３５】
第１の状態は、送受信関係の確立に失敗したという状態である。ボットに感染した装置は、感染を拡大するために、多数のDestination IP（送信先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 に対応するカウンタのカウント値を１増加させればよい。
【００６２】
以下、情報処理装置の動作の説明に戻る。ステップＳ１０４に続いて、エントロピー算出部１４は、カウンタ１３がカウントした所定の状態の出現数に基づいて、ブロック毎にエントロピー値を算出する（ステップＳ１０６）。ブロックｉのエントロピー値Ｈｉは以下の（１）式で算出される。
【００６３】
【数１】
2010092235.tif 000003
【００６４】
上式において、Ｐｉｊは、ブロックｉのアドレス値ｊにおける所定の状態の出現確率を示しており、ブロックｉのアドレス値ｊに対応したカウンタがカウントした値を、ブロックｉに対応した全カウンタがカウントした値の合計で割り算した値である。所定の状態の出現数が多数のアドレス値に分散してばらつきが大きくなると、エントロピー値は大きくなり、所定の状態の出現数が特定のアドレス値に偏ってばらつきが小さくなると、エントロピー値は小さくなる。ボットに感染した装置が異常な通信を行うと、本実施形態で注目している所定の状態が特定のIPアドレスに偏って出現するので、所定の状態に注目した上記のエントロピー値が小さくなる。
【００６５】
基本的には、所定の状態の出現数が多いブロックに注目して、これ以降のステップＳ１０８からの処理を行えばよい。しかし、本実施形態のように、所定の状態の出現数が特定のアドレス値に偏っているブロックを、客観的な指標値であるエントロピー値に基づいて選択することによって、ボットに感染した装置が行った通信に係る通信結果をより高精度に抽出することができる。
【００６６】
ステップＳ１０６に続いて、アドレス選択部１５は、処理回数を示す変数Ｎ（０≦Ｎ≦３）に１を設定する（ステップＳ１０８）。続いて、アドレス選択部１５は、エントロピー算出部１４によって算出された各ブロックのエントロピー値のうち、未処理のブロックのエントロピー値を比較し、最小のエントロピー値に対応したブロックを処理対象のブロックとして選択する（ステップＳ１１０）。続いて、アドレス選択部１５は、選択したブロックの各アドレス値に対応した所定の状態の出現数（カウンタ１３がカウントした値）を比較し、出現数が上位ｍ位（ｍ≧１）までのアドレス値を選択する（ステップＳ１１２）。
【００６７】
処理対象のブロックのアドレス値を選択した後、アドレス選択部１５は変数Ｎが規定回数（０≦規定回数≦３）を超えたか否かを判定する（ステップＳ１１４）。変数Ｎが規定回数を超えていない場合（ステップＳ１１４でＮＯの場合）には、アドレス選択部１５は変数Ｎの値を１増加させ、再度ステップＳ１１０の処理を実行する。
【００６８】
また、変数Ｎが規定回数を超えた場合（ステップＳ１１４でＹＥＳの場合）、通信情報抽出部１６は、通信情報記憶部１１に記憶されている通信情報から、ステップＳ１１２で選択されたアドレス値を有するSource IPまたはDestination IPを含む通信情報を抽出する（ステップＳ１１８）。例えば、第１の状態に関してステップＳ１１０，Ｓ１１２の処理が２回繰り返して実行され、第３ブロックのアドレス値として0、第４ブロックのアドレス値として20が選択された場合、Source IPまたはDestination IPがxxx.xxx.0.20である通信情報が抽出される。ただし、xは0〜9の任意の数字である。以上の処理により、ボットに感染した装置が行った通信に係る通信情報をより高精度に抽出することができる。
【００６９】
通信情報抽出部１６は、抽出した通信情報を表示制御部１７へ出力する。表示制御部１７は、通信情報抽出部１６によって抽出された通信情報を表示するためのグラフィック画像データを生成し、表示部１８へ出力する。表示部１８は、表示制御部１７から出力されたグラフィック画像データに基づいて、通信情報を視覚化する（ステップＳ１２０）。
【００７０】
図６は、ステップＳ１２０で表示部１８が表示する画像の一例を示している。左側がSource IPを示しており、右側がDestination IPを示している。左側の４本の軸は、Source IPを構成する各ブロックに対応しており、右側の４本の軸は、Destination IPを構成する各ブロックに対応している。各軸の上端は、8bitで表されるアドレス値の000に対応し、各軸の下端はアドレス値の255に対応している。各軸の上には各ブロックのアドレス値が表示されている。
【００７１】
各ブロックのアドレス値に対応した位置にある各軸上の点は線で結ばれている。例えば、Source IPの第１ブロックのアドレス値192に対応した点と、第２ブロックのアドレス値168に対応した点とが線で結ばれている。Destination IP側も同様である。また、Source IPの第４ブロックのアドレス値20に対応した点と、Destination IPの第１ブロックのアドレス値192に対応した点とが線で結ばれており、左から右への方向を向いた矢印が付いている。この方向は通信方向を示しており、矢印によって通信方向が視覚的に分かりやすくなる。
【００７２】
Destination IPの第４ブロックでは５個のアドレス値が表示されている。すなわち、図６は、１個のSource IPから５個のDestination IPへ向けて行われた通信の様子を示している。このような視覚化によって、ボットに感染した装置による通信の状況を把握することができる。
【００７３】
ステップＳ１２０の後、処理を中止するなどの指示がなければ（ステップＳ１２２でＹＥＳの場合）、処理が再度ステップＳ１００に戻る。また、処理を中止するなどの指示があった場合（ステップＳ１２２でＮＯの場合）には、一連の処理が終了する。
【００７４】
次に、本実施形態の変形例を説明する。まず、第１の変形例を説明する。第１の変形例は、図２のステップＳ１０４〜Ｓ１１８の処理を複数の状態について状態毎に実行し、状態毎に選択されたアドレス値を有するIPアドレスのうち状態間で共通するIPアドレスを含む通信結果を抽出するというものである。
【００７５】
以下、図７を参照しながら、第１の変形例の詳細を説明する。まず、状態Ａ（第１〜第７の状態のいずれか）に関して図２のステップＳ１０４〜Ｓ１１８の処理が実行され、80.151.182.10、192.26.48.156、192.168.0.20の３つのIPアドレスを例えばSource IPに含む通信情報が抽出される。続いて、状態Ａとは異なる状態Ｂ（第１〜第７の状態のいずれか）に関して図２のステップＳ１０４〜Ｓ１１８の処理が実行され、60.0.84.57、192.168.0.20、202.216.239.122の３つのIPアドレスを例えばSource IPに含む通信情報が抽出される。
【００７６】
通信情報抽出部１６は、状態Ａに関する処理により抽出された通信情報に含まれるIPアドレスと、状態Bに関する処理により抽出された通信情報に含まれるIPアドレスとを比較し、共通するIPアドレスを抽出する。図７では、共通するIPアドレスは192.168.0.20である。したがって、最終的に通信情報抽出部１６は、192.168.0.20を例えばSource IPに含む通信情報を抽出する。この192.168.0.20をIPアドレスとして有する装置は、ボットに見られる複数の状態に関係していることから、ボットに感染した可能性がより高い。
【００７７】
このように、状態毎に実行された処理により特定されるIPアドレスのうち状態間で共通するIPアドレスを含む通信情報を抽出することによって、ボットに感染した装置が行った通信に係る通信結果をより高精度に抽出することができる。上記では、２種類の状態に関して処理を行う例を説明したが、３種類以上の状態に関して同様の処理を行ってもよい。状態数が増えるほど、ボットに感染した装置が行った通信に係る通信結果をより高精度に抽出することができる。
【００７８】
次に、第２の変形例を説明する。第２の変形例は、ボットに感染した可能性がある装置のIPアドレスをSource IPに含み、指令サーバの可能性がある装置のIPアドレスをDestination IPに含む通信情報を抽出するというものである。第２の変形例では、所定の状態（第１〜第７の状態のいずれか）に関して図２のステップＳ１０４〜Ｓ１１８の処理が実行され、選択されたアドレス値を有するIPアドレスをSource IPに含む通信情報が抽出される。このSource IPと同じIPアドレスを有する装置はボットに感染している可能性が高い。
【００７９】
また、所定の状態（第３の状態）に関して図２のステップＳ１０４〜Ｓ１１８の処理が実行され、選択されたアドレス値を有するIPアドレスをDestination IPに含む通信情報が抽出される。このDestination IPと同じIPアドレスを有する装置は指令サーバである可能性が高い。第３の状態（Destination Port（送信先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アドレスのうち状態間で共通するIPアドレスを含む通信結果を抽出することによって、ボットに感染した装置が行った通信に係る通信結果をより高精度に抽出することができる。
【００８４】
また、第２の変形例によれば、ボットに感染した可能性がある装置のIPアドレスをSource IPに含み、指令サーバの可能性がある装置のIPアドレスをDestination IPに含む通信情報を抽出することによって、ボットに感染した装置が指令サーバと行った通信に係る通信結果をより高精度に抽出することができる。
【００８５】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、上述した実施形態による情報処理装置の動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させてもよい。
【００８６】
ここで、「コンピュータ」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００８７】
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【図面の簡単な説明】
【００８８】
【図１】本発明の一実施形態による情報処理装置の構成を示すブロック図である。
【図２】本発明の一実施形態による情報処理装置の動作の手順を示すフローチャートである。
【図３】本発明の一実施形態による情報処理装置が備えるカウンタの動作を説明するための参考図である。
【図４】本発明の一実施形態による情報処理装置が備えるカウンタの動作を説明するための参考図である。
【図５】本発明の一実施形態による情報処理装置が備えるカウンタの動作を説明するための参考図である。
【図６】本発明の一実施形態における処理結果の表示例を示す参考図である。
【図７】本発明の一実施形態の変形例を説明するための参考図である。
【符号の説明】
【００８９】
１０・・・通信監視部、１１・・・通信情報記憶部（記憶手段）、１２・・・通信解析部、１３・・・カウンタ（カウント手段）、１４・・・エントロピー算出部（算出手段）、１５・・・アドレス選択部（選択手段）、１６・・・通信情報抽出部（抽出手段）、１７・・・表示制御部、１８・・・表示部
【図１】
2010092235.tif 000004
【図２】
2010092235.tif 000005
【図３】
2010092235.tif 000006
【図４】
2010092235.tif 000007
【図５】
2010092235.tif 000008
【図６】
2010092235.tif 000009
【図７】
2010092235.tif 000010