説明

情報処理装置、プログラム、および記録媒体

【課題】所定の状態の出現数を効率的に管理することができる情報処理装置、プログラム、および記録媒体を提供する。
【解決手段】通信情報記憶部11は、ネットワーク上で実行された通信に係る通信結果を記憶する。カウンタ13は、IPアドレスを構成する各ブロックのアドレス値毎に、各アドレス値を有するIPアドレスを送信元または送信先とする通信に係る所定の状態の出現数をカウントする。エントロピー算出部14は、出現数に基づいて、各アドレス値に対応した出現数の分散の度合いを示すエントロピー値をブロック毎に算出する。アドレス選択部15は、各ブロックのエントロピー値に基づいてブロックを選択し、選択したブロックの各アドレス値に対応した出現数に基づいてアドレス値を選択する。通信情報抽出部16は、選択されたアドレス値を有するIPアドレスを含む通信結果を抽出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワーク上で実行された通信の結果に関する情報を処理する情報処理装置に関する。また、本発明は、本情報処理装置としてコンピュータを機能させるためのプログラム、およびそのプログラムを記録した記録媒体にも関する。
【背景技術】
【0002】
近年、コンピュータウィルスに感染したコンピュータに悪質な動作を実行させる、ボットと呼ばれるコンピュータウィルスによる被害が拡大している。ボットは、外部の指令サーバに通信セッションを確立して新たなコードをダウンロードする機能や、攻撃のための指令を受ける機能、指令に従って攻撃する機能などを持つ悪意のコードで構成されている。
【0003】
ネットワーク上に分布する、ボットに感染した端末が実行する通信(以下、ボット通信とする)を特定することは重要である。従来、未割当てのIPアドレス空間に設置したハニーポットへアクセスしてくる通信を、感染先を探索しているボット通信とみなして特定する手法が注目されてきた(例えば非特許文献1参照)。しかし、ハニーポット用のIPアドレス空間が悪意の攻撃者に漏洩した場合には、ハニーポットへのアクセスを避けることができる。また、IPアドレス空間の広さに依存して、特定できるボット通信の数も限られてしまう。
【0004】
そこで、ネットワーク回線を監視しておき、ボットと指令サーバ間のIRC(Internet Relay Chat)通信に含まれる特定の文字列を検知してボット通信を抽出する手法が提案されている(例えば非特許文献2参照)。また、侵入検知システム(Intrusion Detection System:IDS)のアラートシナリオからボットらしさを評価する手法も提案されている(例えば非特許文献3参照)。しかし、IRC通信を伴わないボット通信が増えてきていることや、IDSのシグネチャによって検知されないボット通信が増えてきていることなどから、検知精度について問題がある。
【0005】
ところで、ボットの通信活動ではないが、ネットワーク上を流れるP2P通信を特定する手法として、Source IP(送信側IPアドレス)毎のコネクションの確立成功率に着目して、成功率の低いSource IPをP2P端末と判定する手法が提案されている(例えば非特許文献4参照)。
【非特許文献1】須藤年章,富士原圭,“仮想インターネットを用いたボットネット挙動解析システムの評価”,情処,CSS2006,PP.513-518,2006年10月
【非特許文献2】J. Goebel,“Rishi: Identify Bot Contaminated Hosts by IRC Nickname Evaluation”,In Proceeding of the HotBots'07,USENIX,April,2007
【非特許文献3】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
【非特許文献4】重本倫宏,大河内一弥,寺田真敏,“コネクション解析によるP2P通信端末検知手法”,情処研報,CSEC-42,PP.329-334,2008年7月
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかし、多数のSource IPが通信を実行するネットワークに対して、非特許文献4に記載の手法を適用した場合には、Source IP毎にコネクション状態を監視するためのメモリ量や処理負荷が膨大となる。例えば、IPアドレスを32ビットで表現するIPv4プロトコルでは、約43億個のIPアドレスが存在するため、コネクション状態を監視するためのメモリをSource IP毎に設けた場合、最大で約43億個のメモリが必要となり、各メモリにアクセスするための処理負荷も膨大となる。
【0007】
本発明は、上述した課題に鑑みてなされたものであって、ネットワーク上で実行された通信の所定の状態に係る通信結果を抽出する処理において、所定の状態の出現数を効率的に管理することができる情報処理装置、プログラム、および記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0008】
<第1の発明>
本発明は、上記の課題を解決するためになされたもので、ネットワーク上で実行された通信に係るIPアドレスを含む通信結果を記憶する記憶手段と、前記通信結果に基づいて、IPアドレスを構成する各ブロックのアドレス値毎に、各アドレス値を有するIPアドレスを送信元または送信先とする通信に係る所定の状態の出現数をカウントするカウント手段と、前記出現数に基づいて、各アドレス値に対応した前記出現数の分散の度合いを示すエントロピー値をブロック毎に算出する算出手段と、各ブロックの前記エントロピー値に基づいてブロックを選択し、選択したブロックの各アドレス値に対応した前記出現数に基づいてアドレス値を選択する選択手段と、前記通信結果から、選択されたアドレス値を有するIPアドレスを含む通信結果を抽出する抽出手段と、を備えたことを特徴とする情報処理装置である。
【0009】
例えばIPv4プロトコルでは、IPアドレス毎に所定の状態数をカウントすると、送信元のIPアドレスだけでも最大で約43億個分のカウント値の管理が必要となる。これに対して、上記第1の発明のようにIPアドレスを構成する各ブロックのアドレス値毎に所定の状態の出現数をカウントすると、IPv4プロトコルでは、送信元および送信先のIPアドレスのうち一方だけなら256アドレス×4ブロック分のカウント値の管理だけで済み、送信元および送信先のIPアドレスの両方でも256アドレス×8ブロック分のカウント値の管理だけで済む。したがって、所定の状態の出現数を効率的に管理することができる。
【0010】
また、ボットなどのコンピュータウィルスに感染した装置が異常な通信を行う場合、その装置の通信量が増大するので、コンピュータウィルスに係る所定の状態が特定のIPアドレスに集中して発生する。このような状況において、上記第1の発明のようにIPアドレスを構成する各ブロックのアドレス値毎に所定の状態の出現数をカウントすると、いずれかのブロックで所定の状態の出現数が特定のアドレス値に偏ることになる。上記第1の発明によれば、出現数の分散の度合いを示すエントロピー値に基づいてブロックを選択することによって、所定の状態の出現数が特定のアドレス値に偏っているブロックを客観的な指標に従って選択することが可能となり、ボットなどのコンピュータウィルスに感染した装置が行った通信に係る通信結果をより高精度に抽出することができる。
【0011】
<第2の発明>
また、本発明の情報処理装置において、前記カウント手段は、送受信関係の確立に失敗したという状態の出現数をカウントすることを特徴とする。
【0012】
<第3の発明>
また、本発明の情報処理装置において、前記カウント手段は、送信先のPortとしてTCP/UDPの135から139まで、445、1433、1434のPortのいずれかが使用されたという状態の出現数をカウントすることを特徴とする。
【0013】
<第4の発明>
また、本発明の情報処理装置において、前記カウント手段は、送信先のPortとしてTCPの1024以上(1433,1434を除く)のPortが使用されたという状態の出現数をカウントすることを特徴とする。
【0014】
<第5の発明>
また、本発明の情報処理装置において、前記カウント手段は、DNSサーバに対してドメイン名の名前解決を要求したが、エラーが発生したという応答、または当該ドメイン名に対応するIPアドレスが存在しないという応答があったという状態の出現数をカウントすることを特徴とする。
【0015】
<第6の発明>
また、本発明の情報処理装置において、前記カウント手段は、DNSサーバに対して、所定の国名以外の国名を有するドメイン名の名前解決を要求したという状態の出現数をカウントすることを特徴とする。
【0016】
<第7の発明>
また、本発明の情報処理装置において、前記カウント手段は、HTTP GETコマンドを使用して拡張子が.exeであるファイルを取得したという状態の出現数をカウントすることを特徴とする。
【0017】
<第8の発明>
また、本発明の情報処理装置において、前記カウント手段は、ユーザ名が不明であることを知らせるSMTP Responseがあったという状態の出現数をカウントすることを特徴とする。
【0018】
上記第2〜第8の発明において、カウント手段が出現数をカウントする状態は、ボットに感染した装置が通信を行うことにより発生する、ボットに特有の状態である。したがって、上記第2〜第8の発明によれば、ボットに感染した装置が行った通信に係る通信結果をより高精度に抽出することができる。
【0019】
<第9の発明>
また、本発明の情報処理装置において、前記カウント手段は、ボットに感染した装置が行う通信に見られる少なくとも2種類の状態の出現数を状態毎にカウントし、前記算出手段は、状態毎に前記エントロピー値を算出し、前記選択手段は、状態毎にアドレス値を選択し、前記抽出手段は、状態毎に選択されたアドレス値を有するIPアドレスのうち状態間で共通するIPアドレスを含む通信結果を抽出することを特徴とする。
【0020】
上記第9の発明によれば、ボットに見られる少なくとも2種類の状態に関して、状態毎に選択されたアドレス値を有するIPアドレスのうち状態間で共通するIPアドレスを含む通信結果を抽出することによって、ボットに感染した装置が行った通信に係る通信結果をより高精度に抽出することができる。
【0021】
<第10の発明>
また、本発明の情報処理装置において、前記カウント手段は、ボットに感染した装置が行う通信に見られる第1の状態と、ボットの指令サーバが行う通信に見られる第2の状態との出現数を状態毎にカウントし、前記算出手段は、状態毎に前記エントロピー値を算出し、前記選択手段は、状態毎にアドレス値を選択し、前記抽出手段は、前記第1の状態について選択されたアドレス値を有する送信元のIPアドレスと、前記第2の状態について選択されたアドレス値を有する送信先のIPアドレスとを含む通信結果を抽出することを特徴とする。
【0022】
ボットに感染した装置が行う通信に見られる第1の状態の出現数に基づいて選択されたアドレス値を有する送信元のIPアドレスは、ボットに感染した装置のIPアドレスである可能性が高い。一方、ボットの指令サーバに見られる第2の状態の出現数に基づいて選択されたアドレス値を有する送信先のIPアドレスは、指令サーバのIPアドレスである可能性が高い。したがって、上記第10の発明によれば、ボットに感染した装置が指令サーバと行った通信に係る通信結果をより高精度に抽出することができる。
【0023】
<第11の発明>
また、本発明は、上記の情報処理装置としてコンピュータを機能させるためのプログラムである。
【0024】
<第12の発明>
また、本発明は、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【0025】
本発明によれば、所定の状態の出現数を効率的に管理することができる。また、ボットなどのコンピュータウィルスに感染した装置が行った通信に係る通信結果をより高精度に抽出することができる。
【発明を実施するための最良の形態】
【0026】
以下、図面を参照し、本発明の実施形態を説明する。図1は、本発明の一実施形態による情報処理装置の構成を示している。通信監視部10は、ネットワーク上を伝送するパケットを取得し、そのパケットから通信情報を抽出する。通信情報記憶部11は、通信監視部10によって抽出された通信情報を記憶する。
【0027】
通信情報は、通信の実行に係る送信側と受信側の関係を把握するのに必要な情報である。また、通信情報は、ネットワーク上で実行された通信の特徴を示す情報でもあり、この通信情報に基づいて異常な通信を検知することが可能である。本実施形態の通信情報は、時刻(Start Time,End Time)、通信プロトコル(ICMP,TCP,UDP等)、IPアドレス(Source IP,Destination IP)、Port番号(Source Port,Destination Port)、各種通信内容、および装置内で通信毎に付与される通信IDで構成されている。
【0028】
IPアドレスに関して、本実施形態ではIPv4アドレスを用いて説明を行うが、IPv6アドレスについても同様である。以下では、IPv4アドレスをA.B.C.Dとしたときに、アドレス値Aを有するブロックを第1ブロック(最上位ブロック)、アドレス値Bを有するブロックを第2ブロック、アドレス値Cを有するブロックを第3ブロック、アドレス値Dを有するブロックを第4ブロック(最下位ブロック)と表現する。各ブロックは0〜255のアドレス値を有する。
【0029】
通信解析部12は、通信情報記憶部11に記録されている所定時間内の通信結果に関する通信情報に基づいて通信内容を解析し、後述する所定の状態が発生したか否かを判定する。また、通信解析部12は、この判定結果に基づいてカウンタ13の動作を制御する。カウンタ13は、ブロック毎(第1ブロック〜第4ブロック)かつアドレス値毎(0〜255)に用意されたカウンタの集合である。カウンタ13を構成する各カウンタは、対応するブロックのアドレス値を有するIPアドレスを送信元または送信先とする通信に係る所定の状態の出現数をカウントする。
【0030】
IPv4プロトコルでは、IPアドレス毎に所定の状態数をカウントすると、送信元のIPアドレスだけでも最大で約43億個分のカウント値の管理が必要となる。これに対して、本実施形態のようにIPアドレスを構成するブロック毎かつアドレス値毎に所定の状態の出現数をカウントすると、送信元および送信先のIPアドレスのうち一方だけなら256アドレス×4ブロック分のカウント値の管理だけで済み、送信元および送信先のIPアドレスの両方でも256アドレス×8ブロック分のカウント値の管理だけで済む。したがって、所定の状態の出現数を効率的に管理することができる。
【0031】
エントロピー算出部14は、カウンタ13がカウントした所定の状態の出現数に基づいて、その出現数の分散の度合いを示すエントロピー値(情報エントロピー値)をブロック毎に算出する。所定の状態が特定のアドレス値に集中して出現している場合、エントロピー値は小さくなり、所定の状態が特定のアドレス値に集中せずに分散して出現している場合、エントロピー値は大きくなる。
【0032】
アドレス選択部15は、エントロピー値に基づいて、所定の状態が特定のアドレス値に集中して出現しているブロックを選択し、選択したブロックの各アドレス値に対応した出現数に基づいてアドレス値を選択する。通信情報抽出部16は、通信情報記憶部11に記憶されている通信情報から、選択されたアドレス値を有する送信元または送信先のIPアドレスを含む通信情報を抽出する。
【0033】
表示制御部17は、通信情報抽出部16によって抽出された通信情報を表示するためのグラフィック画像データを生成し、表示部18へ出力する。表示部18は、表示制御部17から出力されたグラフィック画像データに基づいて、通信情報を視覚化する。
【0034】
次に、本実施形態で検出対象とする7種類の状態を説明する。これら7種類の状態は、いずれもボットに感染した装置が行う通信に見られる状態である。
【0035】
第1の状態は、送受信関係の確立に失敗したという状態である。ボットに感染した装置は、感染を拡大するために、多数のDestination IP(送信先IP)を探索するが、送受信関係の確立に失敗する場合が多い。このため、ボットに感染した装置が行う通信では、送受信関係の確立の成功率が低いという特徴的なパターンが現れる。
【0036】
第1の状態は、ICMP Echoパケットに対するICMP Replyパケットの有無を監視することによって検出可能である。ICMP EchoパケットとICMP Replyパケットは対になっており、正常時にはICMP Echoパケットに対してICMP Replyパケットが返信されるが、ボットに感染した装置ではICMP Replyパケットの返信率が低い。したがって、ICMP EchoパケットとICMP Replyパケットの数をカウントすることによって第1の状態の出現数をカウントすることが可能となる。
【0037】
第1の状態は、TCP-SYNパケットに対するTCP-SYN-ACKパケットの有無を監視することによっても検出可能である。TCP-SYNパケットとTCP-SYN-ACKパケットは対になっており、正常時にはTCP-SYNパケットに対してTCP-SYN-ACKパケットが返信されるが、ボットに感染した装置ではTCP-SYN-ACKパケットの返信率が低い。したがって、TCP-SYNパケットとTCP-SYN-ACKパケットの数をカウントすることによって第1の状態の出現数をカウントすることが可能となる。
【0038】
第1の状態は、接続の拒否を示すICMP Unreachableパケットの有無を監視することによっても検出可能である。正常時にはICMP Unreachableパケットが返信されることは少ないが、ボットに感染した装置ではICMP Unreachableパケットの返信率が高い。したがって、ICMP Unreachableパケットの数をカウントすることによって第1の状態の出現数をカウントすることが可能となる。
【0039】
第2の状態は、Destination Port(送信先Port)としてTCP/UDPの135から139まで、445、1433、1434のPortのいずれかが使用されたという状態である。ボットに感染した装置が他の装置に対して感染を拡大するとき、上記のPortに向かうパケットが観測されるという特徴的なパターンが現れる。したがって、上記のPortがDestination Portに使用されているパケットの数をカウントすることによって、第2の状態の出現数をカウントすることが可能となる。
【0040】
第3の状態は、Destination Port(送信先Port)としてTCPの1024以上(1433,1434を除く)のPortが使用されたという状態である。ボットに感染した装置が指令サーバと通信を行うとき、上記のPortに向かうパケットが観測されるという特徴的なパターンが現れる。したがって、上記のPortがDestination Portに使用されているパケットの数をカウントすることによって、第3の状態の出現数をカウントすることが可能となる。TCPの1433,1434のPortは第2の状態として検出することにしているので、第3の状態ではこれらのPortを検出対象から除いている。
【0041】
第4の状態は、DNSサーバに対してドメイン名の名前解決を要求したが、エラーが発生したという応答、または当該ドメイン名に対応するIPアドレスが存在しないという応答があったという状態である。指令サーバのIPアドレスが頻繁に変化するため、ボットに感染した装置は、指令サーバのドメイン名の名前解決をDNSサーバに要求し、ドメイン名に対応したIPアドレスをDNSサーバから取得する。
【0042】
しかし、異常な文字列から構成される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パケット(もしくはその両方)の数をカウントすることによって、第4の状態の出現数をカウントすることが可能となる。
【0043】
第5の状態は、DNSサーバに対して、所定の国名以外の国名を有するドメイン名の名前解決を要求したという状態である。指令サーバは、グローバルIPアドレスを持ち、インターネット上に広く分布して存在する。このため、指令サーバは様々な国に分布して存在することになり、DNSサーバに名前解決を要求する対象のドメイン名として、様々な国名コードを含むドメイン名が現れるという特徴的なパターンが現れる。したがって、DNSサーバから返信されるDNS Recursive Responseパケットとして、.jpドメイン以外のドメインを含むドメイン名が記録されたパケットの数をカウントすることによって、第5の状態の出現数をカウントすることが可能となる。
【0044】
第6の状態は、HTTP GETコマンドを使用して拡張子が.exeであるファイルを取得したという状態である。ボットに感染した装置が指令サーバから新たなコードを取得するときには、HTTP GETコマンドを使用して拡張子が.exeであるファイルを取得するという特徴的なパターンが現れる。通常、HTTP GETコマンドを使用して拡張子が.exeであるファイルを取得することは稀である。したがって、HTTP GETコマンドを使用して拡張子が.exeであるファイルを取得する通信に係るパケットの数をカウントすることによって、第6の状態の出現数をカウントすることが可能となる。
【0045】
第7の状態は、ユーザ名が不明であることを知らせるSMTP Responseパケットがあったという状態である。ボットに感染した装置がスパムメールを送信する場合に、スパムメールを受け取るユーザ名をランダムに指定することが多い。このため、ユーザ名が不明であることを示すUser Unknownが記録された多くのSMTP Responseパケットがメールサーバから返信されるという特徴的なパターンが現れる。したがって、User Unknownが記録されたSMTP Responseパケットの数をカウントすることによって、第7の状態の出現数をカウントすることが可能となる。
【0046】
次に、本実施形態による情報処理装置の動作を説明する。図2は情報処理装置の動作の手順を示している。通信監視部10は、ネットワーク上を伝送するパケットを取得し、そのパケットから通信情報を抽出して通信情報記憶部11に格納する(ステップS100)。通信監視部10がパケットの監視を開始してから所定の単位時間が経過するまで、この動作が繰り返し実行される。
【0047】
通信監視部10がパケットの監視を開始してから所定の単位時間が経過した場合(ステップS102でYESの場合)、通信解析部12は、上記の単位時間内に通信情報記憶部11に格納された通信情報を読み出し、各通信情報に基づいて通信内容を解析する。通信解析部12は、通信内容の解析により、検出対象としている所定の状態(上記第1〜第7の状態のいずれか)が発生したか否かを判定し、判定結果に基づいてカウンタ13を制御する。カウンタ13は、通信解析部12による制御に従って、所定の状態の出現数をブロック毎かつアドレス値毎にカウントする(ステップS104)。
【0048】
以下、ステップS104の処理の具体例を説明する。前述したように、カウンタ13は、ブロック毎かつアドレス値毎に用意されたカウンタの集合である。図3〜図5は、カウンタ13が有する各カウンタによるカウントの一例を示している。以下では、第1の状態(送受信関係の確立に失敗したという状態)を検出対象とする。
【0049】
図3〜図5では、192.168.0.20というIPアドレスに注目している。軸30aは第1ブロックに対応し、軸30bは第2ブロックに対応し、軸30cは第3ブロックに対応し、軸30dは第4ブロックに対応している。各軸の上端は、8bitで表されるアドレス値の000に対応し、各軸の下端はアドレス値の255に対応している。カウンタ13aは第1ブロックのアドレス値192に対応している。カウンタ13bは第2ブロックのアドレス値168に対応している。カウンタ13cは第3ブロックのアドレス値0に対応している。カウンタ13dは第4ブロックのアドレス値20に対応している。
【0050】
図3はカウンタ13a,13b,13c,13dの初期状態を示している。通信解析部12は、ICMP Echoパケットに対応する通信情報を検出した場合、通信情報に含まれるSource IP に対応するカウンタ13のカウント値を1増加させる。例えば、192.168.0.20をSource IPとするICMP Echoパケットに対応する通信情報が検出された場合、カウンタ13a,13b,13c,13dのカウント値がそれぞれ1増加する。図4はこのときのカウンタ13a,13b,13c,13dの状態を示している。
【0051】
また、通信解析部12は、ICMP Replyパケットに対応する通信情報を検出した場合、通信情報に含まれるDestination IP に対応するカウンタ13のカウント値を1減少させる。例えば、192.168.0.20をDestination IPとするICMP Replyパケットに対応する通信情報が検出された場合、カウンタ13a,13b,13c,13dのカウント値がそれぞれ1減少する。図4に示した状態からカウンタ13a,13b,13c,13dのカウント値が1減少した場合、カウンタ13a,13b,13c,13dの状態は図3に示す状態に戻る。
【0052】
正常な通信では、ICMP Echoパケットに対してICMP Replyパケットが返信されるため、カウント値は増加しない。しかし、ボットに感染した装置が通信を行うと、ICMP Replyパケットの返信率が低下するため、カウント値が増加するようになる。図5は、ICMP Replyパケットの返信率の低下により、カウント値が増加した状態を示している。
【0053】
上記では、各アドレス値に対して1個のカウンタを用意しているが、各アドレス値に対して、ICMP Echoパケットの数をカウントするためのカウンタ(第1のカウンタ)と、ICMP Replyパケットの数をカウントするためのカウンタ(第2のカウンタ)とを用意してもよい。この場合、第1の状態の出現数は、第1のカウンタがカウントした値から第2のカウンタがカウントした値を減算した数となる。これに対して、上記のように各アドレス値に対して1個のカウンタのみで第1の状態の出現数をカウントすることによって、カウンタ13の回路規模やカウント値の管理負荷を抑えることができる。
【0054】
TCP-SYNパケットに対するTCP-SYN-ACKパケットの有無を監視することによって第1の状態を検出する場合には次のようにすればよい。すなわち、TCP-SYNパケットに対応する通信情報の検出に伴って、通信情報に含まれるSource IP に対応するカウンタのカウント値を1増加させ、TCP-SYN-ACKパケットに対応する通信情報の検出に伴って、その通信情報に含まれるDestination IP に対応するカウンタのカウント値を1減少させればよい。
【0055】
ICMP Unreachableパケットの有無を監視することによって第1の状態を検出する場合には、ICMP Unreachableパケットに対応する通信情報の検出に伴って、その通信情報に含まれるDestination IP に対応するカウンタのカウント値を1増加させればよい。
【0056】
第2の状態(Destination PortとしてTCP/UDPの135から139まで、445、1433、1434のPortのいずれかが使用されたという状態)を検出する場合には、これら特定のDestination Portを含む通信情報の検出に伴って、その通信情報に含まれるSource IP に対応するカウンタのカウント値を1増加させればよい。
【0057】
第3の状態(Destination Port(送信先Port)としてTCPの1024以上(1433,1434を除く)のPortが使用されたという状態)を検出する場合には、1024以上(1433,1434を除く)のDestination Portを含む通信情報の検出に伴って、その通信情報に含まれるSource IP に対応するカウンタのカウント値を1増加させればよい。
【0058】
第4の状態(DNSサーバに対してドメイン名の名前解決を要求したが、エラーが発生したという応答、または当該ドメイン名に対応するIPアドレスが存在しないという応答があったという状態)を検出する場合には、Errorが記録されたDNS Recursive ResponseパケットまたはNo such Nameが記録されたDNS Recursive Responseパケット(もしくはその両方)に対応する通信情報の検出に伴って、その通信情報に含まれるDestination IP に対応するカウンタのカウント値を1増加させればよい。
【0059】
第5の状態(DNSサーバに対して、所定の国名以外の国名を有するドメイン名の名前解決を要求したという状態)を検出する場合には、.jpドメイン以外のドメインを含むドメイン名が記録されたDNS Recursive Responseパケットに対応する通信情報の検出に伴って、その通信情報に含まれるDestination IP に対応するカウンタのカウント値を1増加させればよい。
【0060】
第6の状態(HTTP GETコマンドを使用して拡張子が.exeであるファイルを取得したという状態)を検出する場合には、HTTP GETコマンドを使用して拡張子が.exeであるファイルを取得する通信に係るパケットに対応する通信情報の検出に伴って、その通信情報に含まれるSource IP またはDestination IP に対応するカウンタのカウント値を1増加させればよい。
【0061】
第7の状態(ユーザ名が不明であることを知らせるSMTP Responseパケットがあったという状態)を検出する場合には、User Unknownが記録されたSMTP Responseパケットに対応する通信情報の検出に伴って、その通信情報に含まれるDestination IP に対応するカウンタのカウント値を1増加させればよい。
【0062】
以下、情報処理装置の動作の説明に戻る。ステップS104に続いて、エントロピー算出部14は、カウンタ13がカウントした所定の状態の出現数に基づいて、ブロック毎にエントロピー値を算出する(ステップS106)。ブロックiのエントロピー値Hは以下の(1)式で算出される。
【0063】
【数1】

【0064】
上式において、Pijは、ブロックiのアドレス値jにおける所定の状態の出現確率を示しており、ブロックiのアドレス値jに対応したカウンタがカウントした値を、ブロックiに対応した全カウンタがカウントした値の合計で割り算した値である。所定の状態の出現数が多数のアドレス値に分散してばらつきが大きくなると、エントロピー値は大きくなり、所定の状態の出現数が特定のアドレス値に偏ってばらつきが小さくなると、エントロピー値は小さくなる。ボットに感染した装置が異常な通信を行うと、本実施形態で注目している所定の状態が特定のIPアドレスに偏って出現するので、所定の状態に注目した上記のエントロピー値が小さくなる。
【0065】
基本的には、所定の状態の出現数が多いブロックに注目して、これ以降のステップS108からの処理を行えばよい。しかし、本実施形態のように、所定の状態の出現数が特定のアドレス値に偏っているブロックを、客観的な指標値であるエントロピー値に基づいて選択することによって、ボットに感染した装置が行った通信に係る通信結果をより高精度に抽出することができる。
【0066】
ステップS106に続いて、アドレス選択部15は、処理回数を示す変数N(0≦N≦3)に1を設定する(ステップS108)。続いて、アドレス選択部15は、エントロピー算出部14によって算出された各ブロックのエントロピー値のうち、未処理のブロックのエントロピー値を比較し、最小のエントロピー値に対応したブロックを処理対象のブロックとして選択する(ステップS110)。続いて、アドレス選択部15は、選択したブロックの各アドレス値に対応した所定の状態の出現数(カウンタ13がカウントした値)を比較し、出現数が上位m位(m≧1)までのアドレス値を選択する(ステップS112)。
【0067】
処理対象のブロックのアドレス値を選択した後、アドレス選択部15は変数Nが規定回数(0≦規定回数≦3)を超えたか否かを判定する(ステップS114)。変数Nが規定回数を超えていない場合(ステップS114でNOの場合)には、アドレス選択部15は変数Nの値を1増加させ、再度ステップS110の処理を実行する。
【0068】
また、変数Nが規定回数を超えた場合(ステップS114でYESの場合)、通信情報抽出部16は、通信情報記憶部11に記憶されている通信情報から、ステップS112で選択されたアドレス値を有するSource IPまたはDestination IPを含む通信情報を抽出する(ステップS118)。例えば、第1の状態に関してステップS110,S112の処理が2回繰り返して実行され、第3ブロックのアドレス値として0、第4ブロックのアドレス値として20が選択された場合、Source IPまたはDestination IPがxxx.xxx.0.20である通信情報が抽出される。ただし、xは0〜9の任意の数字である。以上の処理により、ボットに感染した装置が行った通信に係る通信情報をより高精度に抽出することができる。
【0069】
通信情報抽出部16は、抽出した通信情報を表示制御部17へ出力する。表示制御部17は、通信情報抽出部16によって抽出された通信情報を表示するためのグラフィック画像データを生成し、表示部18へ出力する。表示部18は、表示制御部17から出力されたグラフィック画像データに基づいて、通信情報を視覚化する(ステップS120)。
【0070】
図6は、ステップS120で表示部18が表示する画像の一例を示している。左側がSource IPを示しており、右側がDestination IPを示している。左側の4本の軸は、Source IPを構成する各ブロックに対応しており、右側の4本の軸は、Destination IPを構成する各ブロックに対応している。各軸の上端は、8bitで表されるアドレス値の000に対応し、各軸の下端はアドレス値の255に対応している。各軸の上には各ブロックのアドレス値が表示されている。
【0071】
各ブロックのアドレス値に対応した位置にある各軸上の点は線で結ばれている。例えば、Source IPの第1ブロックのアドレス値192に対応した点と、第2ブロックのアドレス値168に対応した点とが線で結ばれている。Destination IP側も同様である。また、Source IPの第4ブロックのアドレス値20に対応した点と、Destination IPの第1ブロックのアドレス値192に対応した点とが線で結ばれており、左から右への方向を向いた矢印が付いている。この方向は通信方向を示しており、矢印によって通信方向が視覚的に分かりやすくなる。
【0072】
Destination IPの第4ブロックでは5個のアドレス値が表示されている。すなわち、図6は、1個のSource IPから5個のDestination IPへ向けて行われた通信の様子を示している。このような視覚化によって、ボットに感染した装置による通信の状況を把握することができる。
【0073】
ステップS120の後、処理を中止するなどの指示がなければ(ステップS122でYESの場合)、処理が再度ステップS100に戻る。また、処理を中止するなどの指示があった場合(ステップS122でNOの場合)には、一連の処理が終了する。
【0074】
次に、本実施形態の変形例を説明する。まず、第1の変形例を説明する。第1の変形例は、図2のステップS104〜S118の処理を複数の状態について状態毎に実行し、状態毎に選択されたアドレス値を有するIPアドレスのうち状態間で共通するIPアドレスを含む通信結果を抽出するというものである。
【0075】
以下、図7を参照しながら、第1の変形例の詳細を説明する。まず、状態A(第1〜第7の状態のいずれか)に関して図2のステップS104〜S118の処理が実行され、80.151.182.10、192.26.48.156、192.168.0.20の3つのIPアドレスを例えばSource IPに含む通信情報が抽出される。続いて、状態Aとは異なる状態B(第1〜第7の状態のいずれか)に関して図2のステップS104〜S118の処理が実行され、60.0.84.57、192.168.0.20、202.216.239.122の3つのIPアドレスを例えばSource IPに含む通信情報が抽出される。
【0076】
通信情報抽出部16は、状態Aに関する処理により抽出された通信情報に含まれるIPアドレスと、状態Bに関する処理により抽出された通信情報に含まれるIPアドレスとを比較し、共通するIPアドレスを抽出する。図7では、共通するIPアドレスは192.168.0.20である。したがって、最終的に通信情報抽出部16は、192.168.0.20を例えばSource IPに含む通信情報を抽出する。この192.168.0.20をIPアドレスとして有する装置は、ボットに見られる複数の状態に関係していることから、ボットに感染した可能性がより高い。
【0077】
このように、状態毎に実行された処理により特定されるIPアドレスのうち状態間で共通するIPアドレスを含む通信情報を抽出することによって、ボットに感染した装置が行った通信に係る通信結果をより高精度に抽出することができる。上記では、2種類の状態に関して処理を行う例を説明したが、3種類以上の状態に関して同様の処理を行ってもよい。状態数が増えるほど、ボットに感染した装置が行った通信に係る通信結果をより高精度に抽出することができる。
【0078】
次に、第2の変形例を説明する。第2の変形例は、ボットに感染した可能性がある装置のIPアドレスをSource IPに含み、指令サーバの可能性がある装置のIPアドレスをDestination IPに含む通信情報を抽出するというものである。第2の変形例では、所定の状態(第1〜第7の状態のいずれか)に関して図2のステップS104〜S118の処理が実行され、選択されたアドレス値を有するIPアドレスをSource IPに含む通信情報が抽出される。このSource IPと同じIPアドレスを有する装置はボットに感染している可能性が高い。
【0079】
また、所定の状態(第3の状態)に関して図2のステップS104〜S118の処理が実行され、選択されたアドレス値を有するIPアドレスをDestination IPに含む通信情報が抽出される。このDestination IPと同じIPアドレスを有する装置は指令サーバである可能性が高い。第3の状態(Destination Port(送信先Port)としてTCPの1024以上(1433,1434を除く)のPortが使用されたという状態)は指令サーバにも見られるので、指令サーバのIPアドレスを含む通信情報を抽出する際には、第3の状態が検出対象となる。
【0080】
最終的に通信情報抽出部16は、ボットに感染した可能性がある装置が行った通信に係る通信情報に含まれるSource IPと同じIPアドレスをSource IPに含み、指令サーバの可能性がある装置が行った通信に係る通信情報に含まれるDestination IPと同じIPアドレスをDestination IPに含む通信情報を抽出する。この通信情報は、ボットに感染した可能性がある装置と、指令サーバの可能性がある装置との間で行われた通信に関係する。このように、ボットに感染した可能性がある装置のIPアドレスをSource IPに含み、指令サーバの可能性がある装置のIPアドレスをDestination IPに含む通信情報を抽出することによって、ボットに感染した装置が指令サーバと行った通信に係る通信結果をより高精度に抽出することができる。
【0081】
上述したように、本実施形態によれば、IPアドレスを構成する各ブロックのアドレス値毎に所定の状態の出現数をカウントすることによって、所定の状態の出現数を効率的に管理することができる。また、ブロック毎にアドレス値を選択する本実施形態において、エントロピー値に基づいてブロックを選択することによって、ボットなどのコンピュータウィルスに感染した装置が行った通信に係る通信結果をより高精度に抽出することができる。
【0082】
本実施形態で検出対象とする状態は、ボットに感染した装置が通信を行うことにより発生する、ボットに特有の状態である。したがって、本実施形態によれば、ボットに感染した装置が行った通信に係る通信結果をより高精度に抽出することができる。
【0083】
また、第1の変形例によれば、ボットに見られる少なくとも2種類の状態に関して、状態毎に選択されたアドレス値を有するIPアドレスのうち状態間で共通するIPアドレスを含む通信結果を抽出することによって、ボットに感染した装置が行った通信に係る通信結果をより高精度に抽出することができる。
【0084】
また、第2の変形例によれば、ボットに感染した可能性がある装置のIPアドレスをSource IPに含み、指令サーバの可能性がある装置のIPアドレスをDestination IPに含む通信情報を抽出することによって、ボットに感染した装置が指令サーバと行った通信に係る通信結果をより高精度に抽出することができる。
【0085】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、上述した実施形態による情報処理装置の動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させてもよい。
【0086】
ここで、「コンピュータ」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0087】
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【図面の簡単な説明】
【0088】
【図1】本発明の一実施形態による情報処理装置の構成を示すブロック図である。
【図2】本発明の一実施形態による情報処理装置の動作の手順を示すフローチャートである。
【図3】本発明の一実施形態による情報処理装置が備えるカウンタの動作を説明するための参考図である。
【図4】本発明の一実施形態による情報処理装置が備えるカウンタの動作を説明するための参考図である。
【図5】本発明の一実施形態による情報処理装置が備えるカウンタの動作を説明するための参考図である。
【図6】本発明の一実施形態における処理結果の表示例を示す参考図である。
【図7】本発明の一実施形態の変形例を説明するための参考図である。
【符号の説明】
【0089】
10・・・通信監視部、11・・・通信情報記憶部(記憶手段)、12・・・通信解析部、13・・・カウンタ(カウント手段)、14・・・エントロピー算出部(算出手段)、15・・・アドレス選択部(選択手段)、16・・・通信情報抽出部(抽出手段)、17・・・表示制御部、18・・・表示部

【特許請求の範囲】
【請求項1】
ネットワーク上で実行された通信に係るIPアドレスを含む通信結果を記憶する記憶手段と、
前記通信結果に基づいて、IPアドレスを構成する各ブロックのアドレス値毎に、各アドレス値を有するIPアドレスを送信元または送信先とする通信に係る所定の状態の出現数をカウントするカウント手段と、
前記出現数に基づいて、各アドレス値に対応した前記出現数の分散の度合いを示すエントロピー値をブロック毎に算出する算出手段と、
各ブロックの前記エントロピー値に基づいてブロックを選択し、選択したブロックの各アドレス値に対応した前記出現数に基づいてアドレス値を選択する選択手段と、
前記通信結果から、選択されたアドレス値を有するIPアドレスを含む通信結果を抽出する抽出手段と、
を備えたことを特徴とする情報処理装置。
【請求項2】
前記カウント手段は、送受信関係の確立に失敗したという状態の出現数をカウントすることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記カウント手段は、送信先のPortとしてTCP/UDPの135から139まで、445、1433、1434のPortのいずれかが使用されたという状態の出現数をカウントすることを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記カウント手段は、送信先のPortとしてTCPの1024以上(1433,1434を除く)のPortが使用されたという状態の出現数をカウントすることを特徴とする請求項1に記載の情報処理装置。
【請求項5】
前記カウント手段は、DNSサーバに対してドメイン名の名前解決を要求したが、エラーが発生したという応答、または当該ドメイン名に対応するIPアドレスが存在しないという応答があったという状態の出現数をカウントすることを特徴とする請求項1に記載の情報処理装置。
【請求項6】
前記カウント手段は、DNSサーバに対して、所定の国名以外の国名を有するドメイン名の名前解決を要求したという状態の出現数をカウントすることを特徴とする請求項1に記載の情報処理装置。
【請求項7】
前記カウント手段は、HTTP GETコマンドを使用して拡張子が.exeであるファイルを取得したという状態の出現数をカウントすることを特徴とする請求項1に記載の情報処理装置。
【請求項8】
前記カウント手段は、ユーザ名が不明であることを知らせるSMTP Responseがあったという状態の出現数をカウントすることを特徴とする請求項1に記載の情報処理装置。
【請求項9】
前記カウント手段は、ボットに感染した装置が行う通信に見られる少なくとも2種類の状態の出現数を状態毎にカウントし、
前記算出手段は、状態毎に前記エントロピー値を算出し、
前記選択手段は、状態毎にアドレス値を選択し、
前記抽出手段は、状態毎に選択されたアドレス値を有するIPアドレスのうち状態間で共通するIPアドレスを含む通信結果を抽出する
ことを特徴とする請求項1〜請求項8のいずれかに記載の情報処理装置。
【請求項10】
前記カウント手段は、ボットに感染した装置が行う通信に見られる第1の状態と、ボットの指令サーバが行う通信に見られる第2の状態との出現数を状態毎にカウントし、
前記算出手段は、状態毎に前記エントロピー値を算出し、
前記選択手段は、状態毎にアドレス値を選択し、
前記抽出手段は、前記第1の状態について選択されたアドレス値を有する送信元のIPアドレスと、前記第2の状態について選択されたアドレス値を有する送信先のIPアドレスとを含む通信結果を抽出する
ことを特徴とする請求項1〜請求項8のいずれかに記載の情報処理装置。
【請求項11】
請求項1〜請求項10のいずれかに記載の情報処理装置としてコンピュータを機能させるためのプログラム。
【請求項12】
請求項11に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2010−92235(P2010−92235A)
【公開日】平成22年4月22日(2010.4.22)
【国際特許分類】
【出願番号】特願2008−261026(P2008−261026)
【出願日】平成20年10月7日(2008.10.7)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】