ボット検出装置、ボット検出方法、およびプログラム
【課題】ボットに感染している可能性の高いコンピュータを確実に検出することができる通信システムを提供する。
【解決手段】本発明の通信システム10は、外部ネットワーク12から内部ネットワーク12へ同時期に流入した通信データであって、同一の送信元から複数のコンピュータ15へ送信された通信データを仮の指令通信情報として保持し、保持した仮の指令通信情報の宛先となっているコンピュータ15の中で、内部ネットワーク14から外部ネットワーク12へ同時期に通信データを送信したコンピュータ15をボットに感染している可能性の高いコンピュータと判定する。
【解決手段】本発明の通信システム10は、外部ネットワーク12から内部ネットワーク12へ同時期に流入した通信データであって、同一の送信元から複数のコンピュータ15へ送信された通信データを仮の指令通信情報として保持し、保持した仮の指令通信情報の宛先となっているコンピュータ15の中で、内部ネットワーク14から外部ネットワーク12へ同時期に通信データを送信したコンピュータ15をボットに感染している可能性の高いコンピュータと判定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不正なプログラムが埋め込まれたコンピュータを検出する技術に関する。
【背景技術】
【0002】
特許文献1には、現在知られているコンピュータウイルスの全データパターンを保持し、通信データを受信した場合に、受信した通信データを一旦バッファに取り込み、取り込んだ通信データを、保持しているコンピュータウイルスのデータパターンと比較することによって、コンピュータ内にコンピュータウイルスが侵入しないようにする技術が開示されている。この技術では、新しいコンピュータウイルスが出現した場合に、対応する新しいデータパターンを入手することにより、新たなコンピュータウイルスの侵入を防止することができる。
【0003】
また、特許文献2には、監視対象となるネットワークにIDS(侵入検知装置)を設置し、当該IDS内に予め不正侵入の複数のパターン(手口)を登録しておき、ネットワークを流れる通信データを監視して、登録されている不正侵入パターンと一致する場合に、不正侵入者からの通信を遮断したり、管理者に警告を通知したりする技術が開示されている。
【0004】
また、コンピュータに対して不正な処理を行うプログラムとしては、ウイルスやワーム等が知られているが、近年、ボットと呼ばれる新たな不正プログラムが出現してきている。ボットは、隠匿機能や自己更新機能を有するという特徴や、感染規模が小さい、亜種が多い、悪意を持った指令者によって遠隔操作されるといった特徴がある。ボットに感染したコンピュータは、指令者が操作するコンピュータによって、スパムメールの送信や中継、DoS(Denial of Services)やDDoS(Distributed Denial of Service)攻撃、あるいはフィッシングサイトを公開するためのwebサーバに扮したりする等の不正行為に使われるため、大きな社会的な問題となっている。
【0005】
【特許文献1】特開平6−337781号公報
【特許文献2】特開2002−342276号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
ボットを検知するためには、日々大量に発生する亜種に対応したデータパターンを作成する必要がある。データパターンを作成するためにはボットの検体が必要となる場合が多いが、感染規模の小さいことを特徴とするボットは検体の提供が少なく、数多くの亜種を検出するためのデータパターンが提供されないという問題がある。そのため、データパターンの作成がボット発生の後手に回ってしまい、データパターンが作成された頃には、ボットは自己を新しいボットに更新している場合があり、そのデータパターンでは検出できなくなってしまう。このように、従来のウイルスやワームと同様の対策では、ボットに感染したコンピュータを発見することができない場合があった。
【0007】
本発明は上記事情に鑑みてなされたものであり、本発明の目的は、ボットに感染している可能性の高いコンピュータを確実に検出することにある。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明は、外部ネットワークから内部ネットワークへ同時期に流入した通信データであって、同一の送信元から複数のコンピュータへ送信された通信データを仮の指令通信情報として保持し、保持した仮の指令通信情報の宛先となっているコンピュータの中で、内部ネットワークから外部ネットワークへ同時期に通信データを送信したコンピュータをボットに感染している可能性の高いコンピュータと判定する。
【0009】
例えば、本発明の第1の態様は、外部のネットワークと内部のネットワークとの間に設けられるボット検知装置であって、外部ネットワークから内部ネットワークへ流入する通信データである内向きデータを取得し、取得した内向きデータを、当該内向きデータを取得した日時を示す情報である内向きデータ取得日時と共に出力する内向きデータ取得手段と、同一の送信元から所定の時間差以内に送信された内向きデータをグループ化して、当該内向きデータに含まれる宛先IPアドレスである内向き宛先アドレスを、グループを識別するグループIDに対応付けて格納する内向き通信情報格納手段と、内部ネットワークから外部ネットワークへ流出する通信データである外向きデータを取得し、取得した外向きデータを、当該外向きデータを取得した日時を示す情報である外向きデータ取得日時と共に出力する外内向きデータ取得手段と、外向きデータ取得手段から外向きデータおよび外向きデータ取得日時が出力された場合に、内向き通信情報格納手段を参照して、外向きデータに含まれる送信元IPアドレスが内向き通信情報格納手段内に内向き宛先アドレスとして格納されている場合に、当該内向き宛先アドレスと共に格納されている内向きデータ取得日時と、当該外向きデータ取得日時との差である応答時間を算出する応答時間算出手段と、算出された応答時間を、当該内向き宛先アドレス、当該外向きデータの宛先を示す情報を含む外向き宛先情報、および当該内向き宛先アドレスに対応付けられて内向き通信情報格納手段内に格納されているグループIDに対応付けて格納する応答時間格納手段と、応答時間格納手段を参照して、グループIDおよび外向き宛先情報が同一であり、かつ、応答時間の差が所定値以内の内向き宛先アドレスを抽出し、抽出した内向き宛先アドレスを、ボットに感染している可能性の高いコンピュータであるボット感染コンピュータのIPアドレスとして出力するボット情報出力手段とを備えることを特徴とするボット検知装置を提供する。
【0010】
また、本発明の第2の態様は、外部のネットワークと内部のネットワークとの間に設けられるボット検知装置におけるボット検出方法であって、ボット検出装置は、外部ネットワークから内部ネットワークへ流入する通信データである内向きデータを取得し、取得した内向きデータを、当該内向きデータを取得した日時を示す情報である内向きデータ取得日時と共に出力する内向きデータ取得ステップと、同一の送信元から所定の時間差以内に送信された内向きデータをグループ化して、当該内向きデータに含まれる宛先IPアドレスである内向き宛先アドレスを、グループを識別するグループIDに対応付けて内向き通信情報格納手段に格納する内向き通信情報格納ステップと、内部ネットワークから外部ネットワークへ流出する通信データである外向きデータを取得し、取得した外向きデータを、当該外向きデータを取得した日時を示す情報である外向きデータ取得日時と共に出力する外内向きデータ取得ステップと、外向きデータ取得ステップにおいて外向きデータおよび外向きデータ取得日時を出力した場合に、内向き通信情報格納手段を参照して、外向きデータに含まれる送信元IPアドレスが内向き通信情報格納手段内に内向き宛先アドレスとして格納されている場合に、当該内向き宛先アドレスと共に格納されている内向きデータ取得日時と、当該外向きデータ取得日時との差である応答時間を算出する応答時間算出ステップと、算出した応答時間を、当該内向き宛先アドレス、当該外向きデータの宛先を示す情報を含む外向き宛先情報、および当該内向き宛先アドレスに対応付けられて内向き通信情報格納手段内に格納されているグループIDに対応付けて応答時間格納手段に格納する応答時間格納ステップと、応答時間格納手段を参照して、グループIDおよび外向き宛先情報が同一であり、かつ、応答時間の差が所定値以内の内向き宛先アドレスを抽出し、抽出した内向き宛先アドレスを、ボットに感染している可能性の高いコンピュータのIPアドレスとして出力するボット情報出力ステップとを実行することを特徴とするボット検知方法を提供する。
【0011】
また、本発明の第3の態様は、外部のネットワークと内部のネットワークとの間に設けられるボット検知装置を制御するプログラムであって、ボット検知装置を、外部ネットワークから内部ネットワークへ流入する通信データである内向きデータを取得し、取得した内向きデータを、当該内向きデータを取得した日時を示す情報である内向きデータ取得日時と共に出力する内向きデータ取得手段、同一の送信元から所定の時間差以内に送信された内向きデータをグループ化して、当該内向きデータに含まれる宛先IPアドレスである内向き宛先アドレスを、グループを識別するグループIDに対応付けて格納する内向き通信情報格納手段、内部ネットワークから外部ネットワークへ流出する通信データである外向きデータを取得し、取得した外向きデータを、当該外向きデータを取得した日時を示す情報である外向きデータ取得日時と共に出力する外内向きデータ取得手段、外向きデータ取得手段から外向きデータおよび外向きデータ取得日時が出力された場合に、内向き通信情報格納手段を参照して、外向きデータに含まれる送信元IPアドレスが内向き通信情報格納手段内に内向き宛先アドレスとして格納されている場合に、当該内向き宛先アドレスと共に格納されている内向きデータ取得日時と、当該外向きデータ取得日時との差である応答時間を算出する応答時間算出手段、算出された応答時間を、当該内向き宛先アドレス、当該外向きデータの宛先を示す情報を含む外向き宛先情報、および当該内向き宛先アドレスに対応付けられて内向き通信情報格納手段内に格納されているグループIDに対応付けて格納する応答時間格納手段、および応答時間格納手段を参照して、グループIDおよび外向き宛先情報が同一であり、かつ、応答時間の差が所定値以内の内向き宛先アドレスを抽出し、抽出した内向き宛先アドレスを、ボットに感染している可能性の高いコンピュータであるボット感染コンピュータのIPアドレスとして出力するボット情報出力手段として機能させることを特徴とするプログラムを提供する。
【発明の効果】
【0012】
本発明によれば、ボットに感染している可能性の高いコンピュータを確実に検出することができる。
【発明を実施するための最良の形態】
【0013】
以下に、本発明の実施の形態について説明する。
【0014】
図1は、本発明の一実施形態に係る通信システム10の構成を例示するシステム構成図である。通信システム10は、インターネット等の外部ネットワーク12と社内LAN(Local Area Network)等の内部ネットワーク14との間に設けられるボット検知装置20を備える。内部ネットワーク14には、複数のコンピュータ15が接続され、それぞれのコンピュータ15は、内部ネットワーク14およびボット検知装置20を介して、外部ネットワーク12に接続された他の通信機器と通信データの送受信を行う。
【0015】
指令コンピュータ11は、外部ネットワーク12を介して、ボットを埋め込むためのプログラムを含む通信データをコンピュータ15に送り込むことにより、コンピュータ15をボットに感染させる。また、指令コンピュータ11は、外部ネットワーク12を介してIRC(Internet Relay Chat)サーバ13等を不正に制御し、不正な処理を開始させるための指令を含む通信データをボットに感染しているコンピュータ15に送信する。なお、指令コンピュータ11は、IRCサーバ13以外のWebサーバ等を不正に制御することにより、ボットに感染しているコンピュータに指令を送る指令サーバに仕立てる場合もある。
【0016】
ボットに感染したコンピュータ15は、ボットのプログラムに従って所定のIRCサーバ13にアクセスすることにより、指令コンピュータ11からの指令を待ち受ける。そして、ボットに感染したコンピュータ15は、指令コンピュータ11からの指令に応じて、他のコンピュータ15をボットに感染させる、特定のWebサーバに対するDoS攻撃をおこなう、または不特定の電子メールアドレス宛にスパムメールを送信する等の不正な行為を実行する。
【0017】
ボット検知装置20は、外部ネットワーク12と内部ネットワーク14との間の通信データを監視することにより、外部ネットワーク12から内部ネットワーク14へ流入する指令通信と、当該指令通信に応答して内部ネットワーク14から外部ネットワーク12へ流出する応答通信との関係から、ボットに感染している可能性の高いコンピュータ15を検知し、検知結果を出力する。
【0018】
図2は、ボット検知装置20の詳細な機能構成を例示するブロック図である。ボット検知装置20は、内向きデータ取得部21、通信情報登録部22、通信情報格納部23、外向きデータ取得部24、応答時間算出部25、応答時間格納部26、およびボット情報出力部27を備える。
【0019】
内向きデータ取得部21は、外部ネットワーク12から内部ネットワーク14へ流入する通信データである内向きデータを取得し、取得した内向きデータを、当該内向きデータを取得した日時を示す情報である内向きデータ取得日時と共に通信情報登録部22へ出力する。
【0020】
通信情報格納部23は、例えば図3に示すように、内向きの通信をグループ化するための識別子であるID230および内向きデータの送信元を示す情報を含む内向き送信元情報231毎に、内向きデータ取得日時232および内向きデータに含まれる宛先IPアドレスである内向き宛先アドレス233を1つ以上格納する。
【0021】
本実施形態において、内向き送信元情報には、内向きデータに含まれる送信元IPアドレスである内向き送信元アドレス、内向きデータに含まれる送信元ポート番号である内向き送信元ポート番号、および当該内向きデータに含まれるペイロードに関する情報である内向きデータ情報が含まれる。内向きデータ情報とは、内向きデータに含まれるペイロードの先頭から所定量(例えば5バイト)のデータである。
【0022】
通信情報登録部22は、内向きデータ取得部21から内向きデータおよび内向きデータ取得日時を取得した場合に、通信情報格納部23を参照して、当該データ取得日時との時間差が所定値(本例では5秒)以内の内向きデータ取得日時が通信情報格納部23内に格納されているか否かを判定する。
【0023】
内向きデータ取得部21から取得したデータ取得日時との時間差が所定値以内の内向きデータ取得日時が通信情報格納部23内に格納されている場合、通信情報登録部22は、当該内向きデータ取得日時に対応付けられて通信情報格納部23に格納されている内向き送信元情報が、内向きデータ取得部21から取得した内向きデータに含まれる内向き送信元情報と一致するか否かを判定する。
【0024】
通信情報格納部23に格納されている内向き送信元情報が、内向きデータ取得部21から取得した内向きデータに含まれる内向き送信元情報と一致する場合、通信情報登録部22は、内向きデータ取得部21から取得した内向きデータに含まれる内向き送信元情報および当該内向き送信元情報に対応するIDに対応付けて、当該内向きデータと共に受信した内向きデータ取得日時および当該内向きデータに含まれる内向き宛先アドレスを通信情報格納部23内に追加登録する。
【0025】
一方、内向きデータ取得部21から取得したデータ取得日時との時間差が所定値以内の内向きデータ取得日時が通信情報格納部23内に格納されていない場合、または、通信情報格納部23に格納されている内向き送信元情報が、内向きデータ取得部21から取得した内向きデータに含まれる内向き送信元情報と一致しない場合、通信情報登録部22は、内向きデータ取得部21から取得した内向きデータ取得日時および内向きデータに含まれる内向き宛先アドレスを、内向きデータ取得部21から取得した内向きデータに含まれる内向き送信元情報および新たに割り当てたIDに対応付けて通信情報格納部23に新規登録する。
【0026】
このように、通信情報登録部22は、同時期に外部ネットワーク12から内部ネットワーク14へ流入した、内向き送信元情報が等しい内向きデータの内向きデータ取得日時および内向き宛先アドレスを、共通のIDでグループ化する。これにより、通信情報登録部22は、同一の送信元から同時期に内部ネットワーク14内のコンピュータ15へ送信された内向きデータに関する情報を収集することができる。このようにして収集された情報の中には、IRCサーバ13からボットに感染したコンピュータ15へ送信された指令情報が含まれている可能性が高い。以下では、通信情報格納部23に格納された情報を基に、さらにボットに感染している可能性の高いコンピュータ15を検出するための処理が行われる。
【0027】
なお、本実施形態では、内向きデータに含まれるペイロードの先頭から所定量(例えば5バイト)のデータを、内向きデータ情報の一例として説明している。これは、ペイロードの先頭数バイトには、バージョン情報等のアプリケーション毎に決まったデータが格納されることが多く、ペイロードの先頭から所定量のデータが一致するということは、同質の通信データである可能性が高いという理由からである。
【0028】
また、他の例として、内向きデータ情報は、内向きデータのペイロードの一部のデータ、内向きデータのペイロードの全データ、内向きデータのペイロードの全データに所定の演算を施すことによって得られた特徴値(例えばハッシュ値)、または内向きデータのペイロードのデータ量を示す値等であってもよい。
【0029】
また、本実施形態において、内向き送信元情報には、内向き送信元アドレス、内向き送信元ポート番号、および内向きデータ情報が含まれるが、他の例として、内向き送信元情報には、内向きデータ情報が含まれないようにしてもよい。これにより、ペイロードの一部を変えることにより、異なる通信データであることを偽装した場合であっても、通信情報登録部22は、同時期に外部ネットワーク12から内部ネットワーク14へ流入した、内向き送信元アドレスおよび内向き送信元ポート番号が等しい内向きデータを、同一の送信元から送信された通信データとしてグループ化することができる。
【0030】
外向きデータ取得部24は、内部ネットワーク14から外部ネットワーク12へ流出する通信データである外向きデータを取得し、取得した外向きデータを、当該外向きデータを取得した日時を示す情報である外向きデータ取得日時と共に応答時間算出部25へ出力する。
【0031】
応答時間算出部25は、外向きデータ取得部24から外向きデータおよび外向きデータ取得日時を取得した場合に、通信情報格納部23を参照して、取得した外向きデータに含まれる送信元IPアドレスが通信情報格納部23に内向き宛先アドレスとして格納されているか否かを判定する。
【0032】
取得した外向きデータに含まれる送信元IPアドレスが通信情報格納部23に内向き宛先アドレスとして格納されている場合、応答時間算出部25は、当該内向き宛先アドレスに対応付けられて通信情報格納部23に格納されている内向きデータ取得日時と、当該外向きデータ取得日時との差である応答時間を算出する。
【0033】
そして、応答時間算出部25は、算出した応答時間を、当該内向き宛先アドレス、当該外向きデータの宛先を示す情報を含む外向き宛先情報、当該内向き宛先アドレスに対応付けられて内向き通信情報格納手段23内に格納されているID、および外向きデータ取得日時と共に応答時間格納部26に格納する。
【0034】
応答時間格納部26は、例えば図4に示すように、複数のレコード265を有する。それぞれのレコード265は、IDを格納するフィールド260、内向き宛先アドレスを格納するフィールド261、外向き宛先情報を格納するフィールド262、応答時間を格納するフィールド263、および外向きデータ取得日時を格納するフィールド264を有する。なお、応答時間格納部26には、外向きデータ取得日時の古い順に各レコードが格納されている。
【0035】
本実施形態において、外向き宛先情報には、外向きデータに含まれる宛先IPアドレスである外向き宛先アドレス、外向きデータに含まれる宛先ポート番号である外向き宛先ポート番号、および当該外向きデータに含まれるペイロードに関する情報である外向きデータ情報が含まれる。外向きデータ情報とは、外向きデータに含まれるペイロードの先頭から所定量(例えば5バイト)のデータである。
【0036】
ボット情報出力部27は、応答時間格納部26を参照して、IDおよび外向き宛先情報が同一であり、かつ、応答時間の差が所定値以内(例えば5秒以内)のレコードに格納されている内向き宛先アドレスを抽出し、抽出した内向き宛先アドレスを、ボットに感染している可能性の高いコンピュータ15であるボット感染コンピュータのIPアドレスとして、内部ネットワーク14の管理者等へ出力する。
【0037】
ボット情報出力部27は、例えば、表示装置への表示、印字装置を介した紙等への印字、またはハードディスク等の外部記録装置への格納等により、ボット感染コンピュータのIPアドレスを外部へ出力してもよい。
【0038】
このように、ボット検知装置20は、同時期に同一の送信元から内向きデータを受信したコンピュータ15の中で、同時期に、同一の宛先へ外向きデータを送信するコンピュータ15をボット感染コンピュータと判定する。これにより、ボット検知装置20は、指令を受けてから、特定のサーバに対してDoS攻撃を行う等の、ボット感染コンピュータに特有の挙動を示すコンピュータ15を特定することができる。
【0039】
なお、本実施形態では、外向きデータに含まれるペイロードの先頭から所定量(例えば5バイト)のデータを、外向きデータ情報の一例として説明したが、本発明はこれに限られない。外向きデータ情報は、例えば、外向きデータのペイロードの一部のデータ、外向きデータのペイロードの全データ、外向きデータのペイロードの全データに所定の演算を施すことによって得られた特徴値(例えばハッシュ値)、または外向きデータのペイロードのデータ量を示す値等であってもよい。
【0040】
また、本実施形態において、外向き宛先情報には、外向き宛先アドレス、外向き宛先ポート番号、および外向きデータ情報が含まれるが、他の例として、外向き宛先情報には、外向きデータ情報が含まれないようにしてもよい。これにより、ペイロードの一部を変えることにより、異なる通信データであることを偽装した場合や、特定のサーバに対してパスワードの入力を複数回試みるパスワード総当り攻撃等であっても、ボット情報出力部27は、外向き宛先アドレスおよび外向き宛先ポート番号が一致した外向きデータを、ボット感染コンピュータから同一の宛先へ送信された外向きデータとして判定することができる。
【0041】
また、本実施形態において、ボット情報出力部27は、IDおよび外向き宛先情報が同一であり、かつ、応答時間の差が所定値以内の内向き宛先アドレスをボット感染コンピュータのIPアドレスとして判定したが、他の例として、ボット情報出力部27は、IDが同一であり、かつ、応答時間の差が所定値以内の内向き宛先アドレスをボット感染コンピュータのIPアドレスとして判定してもよい。これにより、複数のボット感染コンピュータが、それぞれ異なるメールサーバを介してスパムメールを送信する場合であっても、ボット情報出力部27は、ボット感染コンピュータのIPアドレスを検出することができる。
【0042】
図5は、ボット検知装置20の機能を実現する情報処理装置30のハードウェア構成を例示するハードウェア構成図である。情報処理装置30は、CPU(Central Processing Unit)31、RAM(Random Access Memory)32、ROM(Read Only Memory)33、HDD(Hard Disk Drive)34、通信インターフェイス35、入出力インターフェイス36、メディアインターフェイス37を備える。
【0043】
CPU31は、ROM33およびHDD34に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM33は、情報処理装置30の起動時にCPU31が実行するブートプログラムや、情報処理装置30のハードウェアに依存するプログラム等を格納する。
【0044】
HDD34は、CPU31が実行するプログラムおよびCPU31が使用するデータ等を格納する。通信インターフェイス35は、外部ネットワーク12または内部ネットワーク14を介して他の機器からデータを受信してCPU31へ送ると共に、CPU31が生成したデータを、これらのネットワークを介して他の機器へ送信する。
【0045】
CPU31は、入出力インターフェイス36を介して、キーボードやマウス、LCD(Liquid Crystal Display)等の入出力装置を制御する。CPU31は、入出力インターフェイス36を介して、キーボードやマウス等からデータを取得する。また、CPU31は、生成したデータを、入出力インターフェイス36を介してLCD等へ出力する。
【0046】
メディアインターフェイス37は、記録媒体38に格納されたプログラムまたはデータを読み取り、RAM32に提供する。RAM32を介してCPU31に提供されるプログラムは、記録媒体38に格納されている。当該プログラムは、記録媒体38から読み出されて、RAM32を介して情報処理装置30にインストールされ、CPU31によって実行される。
【0047】
HDD34には、通信情報格納部23および応答時間格納部26内のデータが格納される。情報処理装置30にインストールされて実行されるプログラムは、情報処理装置30を、内向きデータ取得部21、通信情報登録部22、外向きデータ取得部24、応答時間算出部25、およびボット情報出力部27として機能させる。
【0048】
記録媒体38は、例えばDVD、PD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。情報処理装置30は、これらのプログラムを、記録媒体38から読み取って実行するが、他の例として、他の装置から、通信媒体を介して、これらのプログラムを取得してもよい。通信媒体とは、外部ネットワーク12または内部ネットワーク14、またはこれらを伝搬するディジタル信号または搬送波を指す。
【0049】
図6は、ボット検知装置20による内向きデータ登録処理を例示するフローチャートである。例えば、電源を投入される等の所定のタイミングで、ボット検知装置20は、本フローチャートに示す内向きデータ登録処理を開始する。
【0050】
まず、内向きデータ取得部21は、内向きデータを受信したか否かを判定する(S100)。内向きデータを受信していない場合(S100:No)、内向きデータ取得部21は、内向きデータを受信するまでステップ100を繰り返す。内向きデータを受信した場合(S100:Yes)、内向きデータ取得部21は、受信した内向きデータと共に、内向きデータ取得日時を通信情報登録部22へ出力する(S101)。
【0051】
次に、通信情報登録部22は、内向きデータ取得部21から受信した内向きデータ取得日時に基づいて通信情報格納部23を参照し、当該内向きデータ取得日時との時間差が所定値(例えば5秒)以内のデータ取得日時が存在するか否かを判定する(S102)。内向きデータ取得部21から取得した内向きデータ取得日時との時間差が所定値以内のデータ取得日時が通信情報格納部23内に存在する場合(S102:Yes)、通信情報登録部22は、当該内向きデータ取得日時に対応付けられて通信情報格納部23に格納されている内向き送信元情報が、内向きデータ取得部21から取得した内向きデータに含まれる内向き送信元情報と一致するか否かを判定する(S103)。
【0052】
通信情報格納部23に格納されている内向き送信元情報が、内向きデータ取得部21から取得した内向きデータに含まれる内向き送信元情報と一致する場合(S103:Yes)、通信情報登録部22は、内向きデータ取得部21から取得した内向きデータに含まれる内向き送信元情報および当該内向き送信元情報に対応するIDに対応付けて、当該内向きデータと共に受信した内向きデータ取得日時および当該内向きデータに含まれる内向き宛先アドレスを、通信情報格納部23内に追加登録し(S104)、内向きデータ取得部21は、再びステップ100に示した処理を実行する。
【0053】
一方、内向きデータ取得部21から取得した内向きデータ取得日時との時間差が所定値以内のデータ取得日時が通信情報格納部23内に存在しない場合(S102:No)、または、通信情報格納部23に格納されている内向き送信元情報が、内向きデータ取得部21から取得した内向きデータに含まれる内向き送信元情報と一致しない場合(S103:No)、通信情報登録部22は、内向きデータ取得部21から取得した内向きデータ取得日時および内向きデータに含まれる内向き宛先アドレスを、内向きデータ取得部21から取得した内向きデータに含まれる内向き送信元情報および新たに割り当てたIDに対応付けて通信情報格納部23に新規登録し(S107)、内向きデータ取得部21は、再びステップ100に示した処理を実行する。
【0054】
図7は、ボット検知装置20による応答時間算出処理を例示するフローチャートである。例えば、電源を投入される等の所定のタイミングで、ボット検知装置20は、本フローチャートに示す応答時間算出処理を開始する。
【0055】
まず、外向きデータ取得部24は、外向きデータを受信したか否かを判定する(S200)。外向きデータを受信していない場合(S200:No)、外向きデータ取得部24は、外向きデータを受信するまでステップ200を繰り返す。外向きデータを受信した場合(S200:Yes)、外向きデータ取得部24は、受信した外向きデータと共に、外向きデータ取得日時を応答時間算出部25へ出力する(S201)。
【0056】
次に、応答時間算出部25は、通信情報格納部23を参照して、外向きデータ取得部24から取得した外向きデータに含まれる送信元IPアドレスが通信情報格納部23に内向き宛先アドレスとして格納されているか否かを判定する(S202)。外向きデータ取得部24から取得した外向きデータに含まれる送信元IPアドレスが通信情報格納部23に内向き宛先アドレスとして格納されていない場合(S202:No)、外向きデータ取得部24は、再びステップ200に示した処理を実行する。
【0057】
外向きデータ取得部24から取得した外向きデータに含まれる送信元IPアドレスが通信情報格納部23に内向き宛先アドレスとして格納されている場合(S202:Yes)、応答時間算出部25は、当該内向き宛先アドレスに対応付けられて通信情報格納部23に格納されている内向きデータ取得日時と、当該外向きデータ取得日時との差である応答時間を算出する(S203)。
【0058】
そして、応答時間算出部25は、算出した応答時間を、当該内向き宛先アドレス、当該外向きデータの宛先を示す情報を含む外向き宛先情報、当該内向き宛先アドレスに対応付けられて内向き通信情報格納手段23内に格納されているID、および外向きデータ取得日時と共に応答時間格納部26に格納し(S204)、外向きデータ取得部24は、再びステップ200に示した処理を実行する。
【0059】
図8は、ボット検知装置20によるボット判定処理を例示するフローチャートである。所定時間(1時間)毎、または、応答時間格納部26内のデータ量が所定値(応答時間格納部26の記憶容量の80%)以上になった場合等の所定のタイミングで、ボット検知装置20は、本フローチャートに示すボット判定処理を開始する。
【0060】
まず、ボット情報出力部27は、応答時間格納部26に格納されているそれぞれのレコードの外向きデータ取得日時を参照して、前回応答時間格納部26から読み出したレコードの中で、最新のレコードから所定時間(例えば5秒)以内のレコードを特定する(S300)。そして、ボット情報出力部27は、特定したレコードの中で最も古いレコードから所定数のレコードを応答時間格納部26から読み出す(S301)。
【0061】
このように、所定時間分さかのぼってレコードを読み出すことにより、ボット情報出力部27は、応答時間の差が所定時間以内のレコードを確実に検出することができる。なお、最新のレコードから所定時間(例えば5秒)以内のレコードが存在しない場合、ボット情報出力部27は、ステップ301において、前回読み出したレコードの中の最新のレコードから所定数のレコードを読み出す。
【0062】
次に、ボット情報出力部27は、読み出したレコードの中で、未選択のレコードを1つ選択し(S302)、選択したレコードに含まれる応答時間との差が所定値(例えば5秒)以内の応答時間を有するレコードが応答時間格納部26内に存在するか否かを判定する(S303)。選択したレコードに含まれる応答時間との差が所定値以内の応答時間を有するレコードが応答時間格納部26内に存在しない場合(S303:No)、ボット情報出力部27は、ステップ307に示す処理を実行する。
【0063】
選択したレコードに含まれる応答時間との差が所定値以内の応答時間を有するレコードが応答時間格納部26内に存在する場合(S303:Yes)、ボット情報出力部27は、該当するレコードを抽出し(S304)、抽出したレコードが、ステップ302において選択したレコードと同一のIDおよび外向き宛先情報を有するか否かを判定する(S305)。抽出したレコードが、ステップ302において選択したレコードと同一のIDおよび外向き宛先情報を有しない場合(S305:No)、ボット情報出力部27は、ステップ307に示す処理を実行する。
【0064】
抽出したレコードが、ステップ302において選択したレコードと同一のIDおよび外向き宛先情報を有する場合(S305:Yes)、ボット情報出力部27は、該当するレコードに含まれる内向き宛先アドレスをボット感染コンピュータのIPアドレスとして出力し(S306)、ステップ301において読み出したレコードの中に未選択のレコードが存在するか否かを判定する(S307)。
【0065】
ステップ301において読み出したレコードの中に未選択のレコードが存在する場合(S307:Yes)、ボット情報出力部27は、再びステップ302に示した処理を実行する。未選択のレコードが存在しない場合(S307:No)、ボット検知装置20は、本フローチャートに示すボット判定処理を終了する。
【0066】
上記説明から明らかなように、本実施形態の通信システム10によれば、ボットに感染している可能性の高いコンピュータを確実に検出することができる。
【0067】
なお、本発明は、上記の各実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【0068】
図9は、通信システム10の他の形態を例示するシステム構成図である。なお、以下に説明する点を除き、図9において、図1と同じ符号を付した構成は、図1における構成と同一または同様の機能を有するため説明を省略する。
【0069】
複数のデータ収集装置50は、内部ネットワーク14毎に設けられ、対応する内部ネットワーク14と外部ネットワーク12との間の通信データを監視する。ボット判定装置40は、外部ネットワーク12を介してそれぞれのデータ収集装置50から受信した情報に基づいて、ボット感染コンピュータのIPアドレスを特定する。
【0070】
図10は、データ収集装置50の詳細な機能構成を例示するブロック図である。データ収集装置50は、内向きデータ取得部51および外向きデータ取得部52を有する。
【0071】
内向きデータ取得部51は、外部ネットワーク12から内部ネットワーク14へ流入する内向きデータを取得し、取得した内向きデータを、当該内向きデータに対応する内向きデータ取得日時と共に、外部ネットワーク12を介してボット判定装置40へ送信する。
【0072】
外向きデータ取得部52は、内部ネットワーク14から外部ネットワーク12へ流出する外向きデータを取得し、取得した外向きデータを、当該外向きデータに対応する外向きデータ取得日時と共に、外部ネットワーク12を介してボット判定装置40へ送信する。
【0073】
図11は、ボット判定装置40の詳細な機能構成を例示するブロック図である。ボット判定装置40は、通信情報登録部22、通信情報格納部23、応答時間算出部25、応答時間格納部26、およびボット情報出力部27を有する。なお、以下に説明する点を除き、図11において、図2と同じ符号を付した構成は、図2における構成と同一または同様の機能を有するため説明を省略する。
【0074】
通信情報登録部22は、外部ネットワーク12を介して、それぞれのデータ収集装置50から内向きデータおよび内向きデータ取得日時を受信する。そして、通信情報登録部22は、図2において説明したように、受信した内向きデータおよび内向きデータ取得日時を通信情報格納部23に登録する処理を行う。
【0075】
応答時間算出部25は、外部ネットワーク12を介して、それぞれのデータ収集装置50から外向きデータおよび外向きデータ取得日時を受信する。そして、応答時間算出部25は、図2において説明したように、受信した外向きデータおよび外向きデータ取得日時を用いて、応答時間算出処理を行う。
【0076】
本実施形態では、複数のデータ収集装置50から取得した情報に基づいて、ボット感染コンピュータのIPアドレスを検出するので、それぞれの内部ネットワーク14内にボット感染コンピュータが1台しか存在しない場合であっても、通信システム10全体でボット感染コンピュータが複数台存在する場合には、ボット判定装置40は、ボット感染コンピュータのIPアドレスを検出することができる。
【0077】
なお、上記した実施形態において、ボット情報出力部27は、ボット感染コンピュータのIPアドレスを出力したが、他の例として、ボット情報出力部27は、当該IPアドレスと共に応答時間格納部26内に格納されているIDに基づいて通信情報格納部23を参照し、当該IDに対応付けられて通信情報格納部23内に格納されている内向き送信元情報に含まれる内向き送信元アドレスを、指令コンピュータ11または指令コンピュータ11に制御されているIRCサーバ13のIPアドレスとしてさらに出力するようにしてもよい。
【0078】
また、この場合、ボット検知装置20は、外部ネットワーク12と内部ネットワーク14との間に設けられたファイアウォールに指示して、指令コンピュータ11または指令コンピュータ11に制御されているIRCサーバ13のIPアドレスを送信元とする内向きデータを遮断させるように、当該ファイアウォールの通信制御ルールを変更させる内向きルール変更機能をさらに備えるようにしてもよい。これにより、ボット検知装置20は、指令コンピュータからボット感染コンピュータへ送信される指令通信を遮断することができ、ボット感染コンピュータを無害化することができる。
【0079】
また、ボット検知装置20は、外部ネットワーク12と内部ネットワーク14との間に設けられたファイアウォールに指示して、ボット感染コンピュータから外部ネットワーク12へ送信される外向けデータを遮断させるように、当該ファイアウォールの通信制御ルールを変更させる外向きルール変更機能をさらに備えるようにしてもよい。これにより、ボット検知装置20は、指令コンピュータからの指示に応じてボット感染コンピュータから送信された外向きデータを遮断することができ、ボット感染コンピュータを無害化することができる。
【0080】
また、他の例として、ボット検知装置20は、ボット情報出力部27からボット感染コンピュータのIPアドレスが出力された場合に、当該IPアドレスに対応するコンピュータへ、ボットに感染している旨を示す警告メッセージを通知する警告機能をさらに備えるようにしてもよい。内部ネットワーク内のコンピュータは、例えば、Windows(登録商標)の標準機能であるメッセンジャーサービスを常時起動しておくことにより、ボット検知装置20から送信された警告メッセージを画面に表示することができる。これにより、ボット感染コンピュータのユーザは、自分が使用しているコンピュータがボットに感染していることを知ることができ、通信ケーブルを外すことにより、ボットに起因する不正アクセスを防止する、あるいは、ハードディスクをフォーマットして、OSやアプリケーションソフトウェア等を再インストールすることによってボットを駆除する等の対策を実施することができる。
【0081】
また、上記した実施形態では、ボット検知装置20が、外部ネットワーク12と内部ネットワーク14との間に設けられる構成を例に説明したが、本発明はこれに限られない。他の形態として、ボット検知装置20は、内部ネットワークにのみ接続され、内部ネットワーク内を流れる通信データをモニタリングすることにより、ボットに感染している可能性の高いコンピュータ15を検知するようにしてもよい。これにより、ボット検知装置20の処理性能がボトルネックとなることによる通信速度の低下やボット検知装置20の故障による外部ネットワーク12と内部ネットワーク14との間の通信の遮断等のリスクを回避することができる。
【図面の簡単な説明】
【0082】
【図1】本発明の一実施形態に係る通信システム10の構成を例示するシステム構成図である。
【図2】ボット検知装置20の詳細な機能構成を例示するブロック図である。
【図3】通信情報格納部23に格納されるデータ構造を例示する説明図である。
【図4】応答時間格納部26に格納されるデータ構造を例示する説明図である。
【図5】ボット検知装置20の機能を実現する情報処理装置30のハードウェア構成を例示するハードウェア構成図である。
【図6】ボット検知装置20による内向きデータ登録処理を例示するフローチャートである。
【図7】ボット検知装置20による応答時間算出処理を例示するフローチャートである。
【図8】ボット検知装置20によるボット判定処理を例示するフローチャートである。
【図9】通信システム10の他の形態を例示するシステム構成図である。
【図10】データ収集装置50の詳細な機能構成を例示するブロック図である。
【図11】ボット判定装置40の詳細な機能構成を例示するブロック図である。
【符号の説明】
【0083】
10・・・通信システム、11・・・指令コンピュータ、12・・・外部ネットワーク、13・・・IRCサーバ、14・・・内部ネットワーク、15・・・コンピュータ、20・・・ボット検知装置、21・・・内向きデータ取得部、22・・・通信情報登録部、23・・・通信情報格納部、230・・・ID、231・・・内向き送信元情報、232・・・内向きデータ取得日時、233・・・内向き宛先アドレス、24・・・外向きデータ取得部、25・・・応答時間算出部、26・・・応答時間格納部、27・・・ボット情報出力部、30・・・情報処理装置、31・・・CPU、32・・・RAM、33・・・ROM、34・・・HDD、35・・・通信インターフェイス、36・・・入出力インターフェイス、37・・・メディアインターフェイス、38・・・記録媒体、40・・・ボット判定装置、50・・・データ収集装置、51・・・内向きデータ取得部、52・・・外向きデータ取得部
【技術分野】
【0001】
本発明は、不正なプログラムが埋め込まれたコンピュータを検出する技術に関する。
【背景技術】
【0002】
特許文献1には、現在知られているコンピュータウイルスの全データパターンを保持し、通信データを受信した場合に、受信した通信データを一旦バッファに取り込み、取り込んだ通信データを、保持しているコンピュータウイルスのデータパターンと比較することによって、コンピュータ内にコンピュータウイルスが侵入しないようにする技術が開示されている。この技術では、新しいコンピュータウイルスが出現した場合に、対応する新しいデータパターンを入手することにより、新たなコンピュータウイルスの侵入を防止することができる。
【0003】
また、特許文献2には、監視対象となるネットワークにIDS(侵入検知装置)を設置し、当該IDS内に予め不正侵入の複数のパターン(手口)を登録しておき、ネットワークを流れる通信データを監視して、登録されている不正侵入パターンと一致する場合に、不正侵入者からの通信を遮断したり、管理者に警告を通知したりする技術が開示されている。
【0004】
また、コンピュータに対して不正な処理を行うプログラムとしては、ウイルスやワーム等が知られているが、近年、ボットと呼ばれる新たな不正プログラムが出現してきている。ボットは、隠匿機能や自己更新機能を有するという特徴や、感染規模が小さい、亜種が多い、悪意を持った指令者によって遠隔操作されるといった特徴がある。ボットに感染したコンピュータは、指令者が操作するコンピュータによって、スパムメールの送信や中継、DoS(Denial of Services)やDDoS(Distributed Denial of Service)攻撃、あるいはフィッシングサイトを公開するためのwebサーバに扮したりする等の不正行為に使われるため、大きな社会的な問題となっている。
【0005】
【特許文献1】特開平6−337781号公報
【特許文献2】特開2002−342276号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
ボットを検知するためには、日々大量に発生する亜種に対応したデータパターンを作成する必要がある。データパターンを作成するためにはボットの検体が必要となる場合が多いが、感染規模の小さいことを特徴とするボットは検体の提供が少なく、数多くの亜種を検出するためのデータパターンが提供されないという問題がある。そのため、データパターンの作成がボット発生の後手に回ってしまい、データパターンが作成された頃には、ボットは自己を新しいボットに更新している場合があり、そのデータパターンでは検出できなくなってしまう。このように、従来のウイルスやワームと同様の対策では、ボットに感染したコンピュータを発見することができない場合があった。
【0007】
本発明は上記事情に鑑みてなされたものであり、本発明の目的は、ボットに感染している可能性の高いコンピュータを確実に検出することにある。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明は、外部ネットワークから内部ネットワークへ同時期に流入した通信データであって、同一の送信元から複数のコンピュータへ送信された通信データを仮の指令通信情報として保持し、保持した仮の指令通信情報の宛先となっているコンピュータの中で、内部ネットワークから外部ネットワークへ同時期に通信データを送信したコンピュータをボットに感染している可能性の高いコンピュータと判定する。
【0009】
例えば、本発明の第1の態様は、外部のネットワークと内部のネットワークとの間に設けられるボット検知装置であって、外部ネットワークから内部ネットワークへ流入する通信データである内向きデータを取得し、取得した内向きデータを、当該内向きデータを取得した日時を示す情報である内向きデータ取得日時と共に出力する内向きデータ取得手段と、同一の送信元から所定の時間差以内に送信された内向きデータをグループ化して、当該内向きデータに含まれる宛先IPアドレスである内向き宛先アドレスを、グループを識別するグループIDに対応付けて格納する内向き通信情報格納手段と、内部ネットワークから外部ネットワークへ流出する通信データである外向きデータを取得し、取得した外向きデータを、当該外向きデータを取得した日時を示す情報である外向きデータ取得日時と共に出力する外内向きデータ取得手段と、外向きデータ取得手段から外向きデータおよび外向きデータ取得日時が出力された場合に、内向き通信情報格納手段を参照して、外向きデータに含まれる送信元IPアドレスが内向き通信情報格納手段内に内向き宛先アドレスとして格納されている場合に、当該内向き宛先アドレスと共に格納されている内向きデータ取得日時と、当該外向きデータ取得日時との差である応答時間を算出する応答時間算出手段と、算出された応答時間を、当該内向き宛先アドレス、当該外向きデータの宛先を示す情報を含む外向き宛先情報、および当該内向き宛先アドレスに対応付けられて内向き通信情報格納手段内に格納されているグループIDに対応付けて格納する応答時間格納手段と、応答時間格納手段を参照して、グループIDおよび外向き宛先情報が同一であり、かつ、応答時間の差が所定値以内の内向き宛先アドレスを抽出し、抽出した内向き宛先アドレスを、ボットに感染している可能性の高いコンピュータであるボット感染コンピュータのIPアドレスとして出力するボット情報出力手段とを備えることを特徴とするボット検知装置を提供する。
【0010】
また、本発明の第2の態様は、外部のネットワークと内部のネットワークとの間に設けられるボット検知装置におけるボット検出方法であって、ボット検出装置は、外部ネットワークから内部ネットワークへ流入する通信データである内向きデータを取得し、取得した内向きデータを、当該内向きデータを取得した日時を示す情報である内向きデータ取得日時と共に出力する内向きデータ取得ステップと、同一の送信元から所定の時間差以内に送信された内向きデータをグループ化して、当該内向きデータに含まれる宛先IPアドレスである内向き宛先アドレスを、グループを識別するグループIDに対応付けて内向き通信情報格納手段に格納する内向き通信情報格納ステップと、内部ネットワークから外部ネットワークへ流出する通信データである外向きデータを取得し、取得した外向きデータを、当該外向きデータを取得した日時を示す情報である外向きデータ取得日時と共に出力する外内向きデータ取得ステップと、外向きデータ取得ステップにおいて外向きデータおよび外向きデータ取得日時を出力した場合に、内向き通信情報格納手段を参照して、外向きデータに含まれる送信元IPアドレスが内向き通信情報格納手段内に内向き宛先アドレスとして格納されている場合に、当該内向き宛先アドレスと共に格納されている内向きデータ取得日時と、当該外向きデータ取得日時との差である応答時間を算出する応答時間算出ステップと、算出した応答時間を、当該内向き宛先アドレス、当該外向きデータの宛先を示す情報を含む外向き宛先情報、および当該内向き宛先アドレスに対応付けられて内向き通信情報格納手段内に格納されているグループIDに対応付けて応答時間格納手段に格納する応答時間格納ステップと、応答時間格納手段を参照して、グループIDおよび外向き宛先情報が同一であり、かつ、応答時間の差が所定値以内の内向き宛先アドレスを抽出し、抽出した内向き宛先アドレスを、ボットに感染している可能性の高いコンピュータのIPアドレスとして出力するボット情報出力ステップとを実行することを特徴とするボット検知方法を提供する。
【0011】
また、本発明の第3の態様は、外部のネットワークと内部のネットワークとの間に設けられるボット検知装置を制御するプログラムであって、ボット検知装置を、外部ネットワークから内部ネットワークへ流入する通信データである内向きデータを取得し、取得した内向きデータを、当該内向きデータを取得した日時を示す情報である内向きデータ取得日時と共に出力する内向きデータ取得手段、同一の送信元から所定の時間差以内に送信された内向きデータをグループ化して、当該内向きデータに含まれる宛先IPアドレスである内向き宛先アドレスを、グループを識別するグループIDに対応付けて格納する内向き通信情報格納手段、内部ネットワークから外部ネットワークへ流出する通信データである外向きデータを取得し、取得した外向きデータを、当該外向きデータを取得した日時を示す情報である外向きデータ取得日時と共に出力する外内向きデータ取得手段、外向きデータ取得手段から外向きデータおよび外向きデータ取得日時が出力された場合に、内向き通信情報格納手段を参照して、外向きデータに含まれる送信元IPアドレスが内向き通信情報格納手段内に内向き宛先アドレスとして格納されている場合に、当該内向き宛先アドレスと共に格納されている内向きデータ取得日時と、当該外向きデータ取得日時との差である応答時間を算出する応答時間算出手段、算出された応答時間を、当該内向き宛先アドレス、当該外向きデータの宛先を示す情報を含む外向き宛先情報、および当該内向き宛先アドレスに対応付けられて内向き通信情報格納手段内に格納されているグループIDに対応付けて格納する応答時間格納手段、および応答時間格納手段を参照して、グループIDおよび外向き宛先情報が同一であり、かつ、応答時間の差が所定値以内の内向き宛先アドレスを抽出し、抽出した内向き宛先アドレスを、ボットに感染している可能性の高いコンピュータであるボット感染コンピュータのIPアドレスとして出力するボット情報出力手段として機能させることを特徴とするプログラムを提供する。
【発明の効果】
【0012】
本発明によれば、ボットに感染している可能性の高いコンピュータを確実に検出することができる。
【発明を実施するための最良の形態】
【0013】
以下に、本発明の実施の形態について説明する。
【0014】
図1は、本発明の一実施形態に係る通信システム10の構成を例示するシステム構成図である。通信システム10は、インターネット等の外部ネットワーク12と社内LAN(Local Area Network)等の内部ネットワーク14との間に設けられるボット検知装置20を備える。内部ネットワーク14には、複数のコンピュータ15が接続され、それぞれのコンピュータ15は、内部ネットワーク14およびボット検知装置20を介して、外部ネットワーク12に接続された他の通信機器と通信データの送受信を行う。
【0015】
指令コンピュータ11は、外部ネットワーク12を介して、ボットを埋め込むためのプログラムを含む通信データをコンピュータ15に送り込むことにより、コンピュータ15をボットに感染させる。また、指令コンピュータ11は、外部ネットワーク12を介してIRC(Internet Relay Chat)サーバ13等を不正に制御し、不正な処理を開始させるための指令を含む通信データをボットに感染しているコンピュータ15に送信する。なお、指令コンピュータ11は、IRCサーバ13以外のWebサーバ等を不正に制御することにより、ボットに感染しているコンピュータに指令を送る指令サーバに仕立てる場合もある。
【0016】
ボットに感染したコンピュータ15は、ボットのプログラムに従って所定のIRCサーバ13にアクセスすることにより、指令コンピュータ11からの指令を待ち受ける。そして、ボットに感染したコンピュータ15は、指令コンピュータ11からの指令に応じて、他のコンピュータ15をボットに感染させる、特定のWebサーバに対するDoS攻撃をおこなう、または不特定の電子メールアドレス宛にスパムメールを送信する等の不正な行為を実行する。
【0017】
ボット検知装置20は、外部ネットワーク12と内部ネットワーク14との間の通信データを監視することにより、外部ネットワーク12から内部ネットワーク14へ流入する指令通信と、当該指令通信に応答して内部ネットワーク14から外部ネットワーク12へ流出する応答通信との関係から、ボットに感染している可能性の高いコンピュータ15を検知し、検知結果を出力する。
【0018】
図2は、ボット検知装置20の詳細な機能構成を例示するブロック図である。ボット検知装置20は、内向きデータ取得部21、通信情報登録部22、通信情報格納部23、外向きデータ取得部24、応答時間算出部25、応答時間格納部26、およびボット情報出力部27を備える。
【0019】
内向きデータ取得部21は、外部ネットワーク12から内部ネットワーク14へ流入する通信データである内向きデータを取得し、取得した内向きデータを、当該内向きデータを取得した日時を示す情報である内向きデータ取得日時と共に通信情報登録部22へ出力する。
【0020】
通信情報格納部23は、例えば図3に示すように、内向きの通信をグループ化するための識別子であるID230および内向きデータの送信元を示す情報を含む内向き送信元情報231毎に、内向きデータ取得日時232および内向きデータに含まれる宛先IPアドレスである内向き宛先アドレス233を1つ以上格納する。
【0021】
本実施形態において、内向き送信元情報には、内向きデータに含まれる送信元IPアドレスである内向き送信元アドレス、内向きデータに含まれる送信元ポート番号である内向き送信元ポート番号、および当該内向きデータに含まれるペイロードに関する情報である内向きデータ情報が含まれる。内向きデータ情報とは、内向きデータに含まれるペイロードの先頭から所定量(例えば5バイト)のデータである。
【0022】
通信情報登録部22は、内向きデータ取得部21から内向きデータおよび内向きデータ取得日時を取得した場合に、通信情報格納部23を参照して、当該データ取得日時との時間差が所定値(本例では5秒)以内の内向きデータ取得日時が通信情報格納部23内に格納されているか否かを判定する。
【0023】
内向きデータ取得部21から取得したデータ取得日時との時間差が所定値以内の内向きデータ取得日時が通信情報格納部23内に格納されている場合、通信情報登録部22は、当該内向きデータ取得日時に対応付けられて通信情報格納部23に格納されている内向き送信元情報が、内向きデータ取得部21から取得した内向きデータに含まれる内向き送信元情報と一致するか否かを判定する。
【0024】
通信情報格納部23に格納されている内向き送信元情報が、内向きデータ取得部21から取得した内向きデータに含まれる内向き送信元情報と一致する場合、通信情報登録部22は、内向きデータ取得部21から取得した内向きデータに含まれる内向き送信元情報および当該内向き送信元情報に対応するIDに対応付けて、当該内向きデータと共に受信した内向きデータ取得日時および当該内向きデータに含まれる内向き宛先アドレスを通信情報格納部23内に追加登録する。
【0025】
一方、内向きデータ取得部21から取得したデータ取得日時との時間差が所定値以内の内向きデータ取得日時が通信情報格納部23内に格納されていない場合、または、通信情報格納部23に格納されている内向き送信元情報が、内向きデータ取得部21から取得した内向きデータに含まれる内向き送信元情報と一致しない場合、通信情報登録部22は、内向きデータ取得部21から取得した内向きデータ取得日時および内向きデータに含まれる内向き宛先アドレスを、内向きデータ取得部21から取得した内向きデータに含まれる内向き送信元情報および新たに割り当てたIDに対応付けて通信情報格納部23に新規登録する。
【0026】
このように、通信情報登録部22は、同時期に外部ネットワーク12から内部ネットワーク14へ流入した、内向き送信元情報が等しい内向きデータの内向きデータ取得日時および内向き宛先アドレスを、共通のIDでグループ化する。これにより、通信情報登録部22は、同一の送信元から同時期に内部ネットワーク14内のコンピュータ15へ送信された内向きデータに関する情報を収集することができる。このようにして収集された情報の中には、IRCサーバ13からボットに感染したコンピュータ15へ送信された指令情報が含まれている可能性が高い。以下では、通信情報格納部23に格納された情報を基に、さらにボットに感染している可能性の高いコンピュータ15を検出するための処理が行われる。
【0027】
なお、本実施形態では、内向きデータに含まれるペイロードの先頭から所定量(例えば5バイト)のデータを、内向きデータ情報の一例として説明している。これは、ペイロードの先頭数バイトには、バージョン情報等のアプリケーション毎に決まったデータが格納されることが多く、ペイロードの先頭から所定量のデータが一致するということは、同質の通信データである可能性が高いという理由からである。
【0028】
また、他の例として、内向きデータ情報は、内向きデータのペイロードの一部のデータ、内向きデータのペイロードの全データ、内向きデータのペイロードの全データに所定の演算を施すことによって得られた特徴値(例えばハッシュ値)、または内向きデータのペイロードのデータ量を示す値等であってもよい。
【0029】
また、本実施形態において、内向き送信元情報には、内向き送信元アドレス、内向き送信元ポート番号、および内向きデータ情報が含まれるが、他の例として、内向き送信元情報には、内向きデータ情報が含まれないようにしてもよい。これにより、ペイロードの一部を変えることにより、異なる通信データであることを偽装した場合であっても、通信情報登録部22は、同時期に外部ネットワーク12から内部ネットワーク14へ流入した、内向き送信元アドレスおよび内向き送信元ポート番号が等しい内向きデータを、同一の送信元から送信された通信データとしてグループ化することができる。
【0030】
外向きデータ取得部24は、内部ネットワーク14から外部ネットワーク12へ流出する通信データである外向きデータを取得し、取得した外向きデータを、当該外向きデータを取得した日時を示す情報である外向きデータ取得日時と共に応答時間算出部25へ出力する。
【0031】
応答時間算出部25は、外向きデータ取得部24から外向きデータおよび外向きデータ取得日時を取得した場合に、通信情報格納部23を参照して、取得した外向きデータに含まれる送信元IPアドレスが通信情報格納部23に内向き宛先アドレスとして格納されているか否かを判定する。
【0032】
取得した外向きデータに含まれる送信元IPアドレスが通信情報格納部23に内向き宛先アドレスとして格納されている場合、応答時間算出部25は、当該内向き宛先アドレスに対応付けられて通信情報格納部23に格納されている内向きデータ取得日時と、当該外向きデータ取得日時との差である応答時間を算出する。
【0033】
そして、応答時間算出部25は、算出した応答時間を、当該内向き宛先アドレス、当該外向きデータの宛先を示す情報を含む外向き宛先情報、当該内向き宛先アドレスに対応付けられて内向き通信情報格納手段23内に格納されているID、および外向きデータ取得日時と共に応答時間格納部26に格納する。
【0034】
応答時間格納部26は、例えば図4に示すように、複数のレコード265を有する。それぞれのレコード265は、IDを格納するフィールド260、内向き宛先アドレスを格納するフィールド261、外向き宛先情報を格納するフィールド262、応答時間を格納するフィールド263、および外向きデータ取得日時を格納するフィールド264を有する。なお、応答時間格納部26には、外向きデータ取得日時の古い順に各レコードが格納されている。
【0035】
本実施形態において、外向き宛先情報には、外向きデータに含まれる宛先IPアドレスである外向き宛先アドレス、外向きデータに含まれる宛先ポート番号である外向き宛先ポート番号、および当該外向きデータに含まれるペイロードに関する情報である外向きデータ情報が含まれる。外向きデータ情報とは、外向きデータに含まれるペイロードの先頭から所定量(例えば5バイト)のデータである。
【0036】
ボット情報出力部27は、応答時間格納部26を参照して、IDおよび外向き宛先情報が同一であり、かつ、応答時間の差が所定値以内(例えば5秒以内)のレコードに格納されている内向き宛先アドレスを抽出し、抽出した内向き宛先アドレスを、ボットに感染している可能性の高いコンピュータ15であるボット感染コンピュータのIPアドレスとして、内部ネットワーク14の管理者等へ出力する。
【0037】
ボット情報出力部27は、例えば、表示装置への表示、印字装置を介した紙等への印字、またはハードディスク等の外部記録装置への格納等により、ボット感染コンピュータのIPアドレスを外部へ出力してもよい。
【0038】
このように、ボット検知装置20は、同時期に同一の送信元から内向きデータを受信したコンピュータ15の中で、同時期に、同一の宛先へ外向きデータを送信するコンピュータ15をボット感染コンピュータと判定する。これにより、ボット検知装置20は、指令を受けてから、特定のサーバに対してDoS攻撃を行う等の、ボット感染コンピュータに特有の挙動を示すコンピュータ15を特定することができる。
【0039】
なお、本実施形態では、外向きデータに含まれるペイロードの先頭から所定量(例えば5バイト)のデータを、外向きデータ情報の一例として説明したが、本発明はこれに限られない。外向きデータ情報は、例えば、外向きデータのペイロードの一部のデータ、外向きデータのペイロードの全データ、外向きデータのペイロードの全データに所定の演算を施すことによって得られた特徴値(例えばハッシュ値)、または外向きデータのペイロードのデータ量を示す値等であってもよい。
【0040】
また、本実施形態において、外向き宛先情報には、外向き宛先アドレス、外向き宛先ポート番号、および外向きデータ情報が含まれるが、他の例として、外向き宛先情報には、外向きデータ情報が含まれないようにしてもよい。これにより、ペイロードの一部を変えることにより、異なる通信データであることを偽装した場合や、特定のサーバに対してパスワードの入力を複数回試みるパスワード総当り攻撃等であっても、ボット情報出力部27は、外向き宛先アドレスおよび外向き宛先ポート番号が一致した外向きデータを、ボット感染コンピュータから同一の宛先へ送信された外向きデータとして判定することができる。
【0041】
また、本実施形態において、ボット情報出力部27は、IDおよび外向き宛先情報が同一であり、かつ、応答時間の差が所定値以内の内向き宛先アドレスをボット感染コンピュータのIPアドレスとして判定したが、他の例として、ボット情報出力部27は、IDが同一であり、かつ、応答時間の差が所定値以内の内向き宛先アドレスをボット感染コンピュータのIPアドレスとして判定してもよい。これにより、複数のボット感染コンピュータが、それぞれ異なるメールサーバを介してスパムメールを送信する場合であっても、ボット情報出力部27は、ボット感染コンピュータのIPアドレスを検出することができる。
【0042】
図5は、ボット検知装置20の機能を実現する情報処理装置30のハードウェア構成を例示するハードウェア構成図である。情報処理装置30は、CPU(Central Processing Unit)31、RAM(Random Access Memory)32、ROM(Read Only Memory)33、HDD(Hard Disk Drive)34、通信インターフェイス35、入出力インターフェイス36、メディアインターフェイス37を備える。
【0043】
CPU31は、ROM33およびHDD34に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM33は、情報処理装置30の起動時にCPU31が実行するブートプログラムや、情報処理装置30のハードウェアに依存するプログラム等を格納する。
【0044】
HDD34は、CPU31が実行するプログラムおよびCPU31が使用するデータ等を格納する。通信インターフェイス35は、外部ネットワーク12または内部ネットワーク14を介して他の機器からデータを受信してCPU31へ送ると共に、CPU31が生成したデータを、これらのネットワークを介して他の機器へ送信する。
【0045】
CPU31は、入出力インターフェイス36を介して、キーボードやマウス、LCD(Liquid Crystal Display)等の入出力装置を制御する。CPU31は、入出力インターフェイス36を介して、キーボードやマウス等からデータを取得する。また、CPU31は、生成したデータを、入出力インターフェイス36を介してLCD等へ出力する。
【0046】
メディアインターフェイス37は、記録媒体38に格納されたプログラムまたはデータを読み取り、RAM32に提供する。RAM32を介してCPU31に提供されるプログラムは、記録媒体38に格納されている。当該プログラムは、記録媒体38から読み出されて、RAM32を介して情報処理装置30にインストールされ、CPU31によって実行される。
【0047】
HDD34には、通信情報格納部23および応答時間格納部26内のデータが格納される。情報処理装置30にインストールされて実行されるプログラムは、情報処理装置30を、内向きデータ取得部21、通信情報登録部22、外向きデータ取得部24、応答時間算出部25、およびボット情報出力部27として機能させる。
【0048】
記録媒体38は、例えばDVD、PD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。情報処理装置30は、これらのプログラムを、記録媒体38から読み取って実行するが、他の例として、他の装置から、通信媒体を介して、これらのプログラムを取得してもよい。通信媒体とは、外部ネットワーク12または内部ネットワーク14、またはこれらを伝搬するディジタル信号または搬送波を指す。
【0049】
図6は、ボット検知装置20による内向きデータ登録処理を例示するフローチャートである。例えば、電源を投入される等の所定のタイミングで、ボット検知装置20は、本フローチャートに示す内向きデータ登録処理を開始する。
【0050】
まず、内向きデータ取得部21は、内向きデータを受信したか否かを判定する(S100)。内向きデータを受信していない場合(S100:No)、内向きデータ取得部21は、内向きデータを受信するまでステップ100を繰り返す。内向きデータを受信した場合(S100:Yes)、内向きデータ取得部21は、受信した内向きデータと共に、内向きデータ取得日時を通信情報登録部22へ出力する(S101)。
【0051】
次に、通信情報登録部22は、内向きデータ取得部21から受信した内向きデータ取得日時に基づいて通信情報格納部23を参照し、当該内向きデータ取得日時との時間差が所定値(例えば5秒)以内のデータ取得日時が存在するか否かを判定する(S102)。内向きデータ取得部21から取得した内向きデータ取得日時との時間差が所定値以内のデータ取得日時が通信情報格納部23内に存在する場合(S102:Yes)、通信情報登録部22は、当該内向きデータ取得日時に対応付けられて通信情報格納部23に格納されている内向き送信元情報が、内向きデータ取得部21から取得した内向きデータに含まれる内向き送信元情報と一致するか否かを判定する(S103)。
【0052】
通信情報格納部23に格納されている内向き送信元情報が、内向きデータ取得部21から取得した内向きデータに含まれる内向き送信元情報と一致する場合(S103:Yes)、通信情報登録部22は、内向きデータ取得部21から取得した内向きデータに含まれる内向き送信元情報および当該内向き送信元情報に対応するIDに対応付けて、当該内向きデータと共に受信した内向きデータ取得日時および当該内向きデータに含まれる内向き宛先アドレスを、通信情報格納部23内に追加登録し(S104)、内向きデータ取得部21は、再びステップ100に示した処理を実行する。
【0053】
一方、内向きデータ取得部21から取得した内向きデータ取得日時との時間差が所定値以内のデータ取得日時が通信情報格納部23内に存在しない場合(S102:No)、または、通信情報格納部23に格納されている内向き送信元情報が、内向きデータ取得部21から取得した内向きデータに含まれる内向き送信元情報と一致しない場合(S103:No)、通信情報登録部22は、内向きデータ取得部21から取得した内向きデータ取得日時および内向きデータに含まれる内向き宛先アドレスを、内向きデータ取得部21から取得した内向きデータに含まれる内向き送信元情報および新たに割り当てたIDに対応付けて通信情報格納部23に新規登録し(S107)、内向きデータ取得部21は、再びステップ100に示した処理を実行する。
【0054】
図7は、ボット検知装置20による応答時間算出処理を例示するフローチャートである。例えば、電源を投入される等の所定のタイミングで、ボット検知装置20は、本フローチャートに示す応答時間算出処理を開始する。
【0055】
まず、外向きデータ取得部24は、外向きデータを受信したか否かを判定する(S200)。外向きデータを受信していない場合(S200:No)、外向きデータ取得部24は、外向きデータを受信するまでステップ200を繰り返す。外向きデータを受信した場合(S200:Yes)、外向きデータ取得部24は、受信した外向きデータと共に、外向きデータ取得日時を応答時間算出部25へ出力する(S201)。
【0056】
次に、応答時間算出部25は、通信情報格納部23を参照して、外向きデータ取得部24から取得した外向きデータに含まれる送信元IPアドレスが通信情報格納部23に内向き宛先アドレスとして格納されているか否かを判定する(S202)。外向きデータ取得部24から取得した外向きデータに含まれる送信元IPアドレスが通信情報格納部23に内向き宛先アドレスとして格納されていない場合(S202:No)、外向きデータ取得部24は、再びステップ200に示した処理を実行する。
【0057】
外向きデータ取得部24から取得した外向きデータに含まれる送信元IPアドレスが通信情報格納部23に内向き宛先アドレスとして格納されている場合(S202:Yes)、応答時間算出部25は、当該内向き宛先アドレスに対応付けられて通信情報格納部23に格納されている内向きデータ取得日時と、当該外向きデータ取得日時との差である応答時間を算出する(S203)。
【0058】
そして、応答時間算出部25は、算出した応答時間を、当該内向き宛先アドレス、当該外向きデータの宛先を示す情報を含む外向き宛先情報、当該内向き宛先アドレスに対応付けられて内向き通信情報格納手段23内に格納されているID、および外向きデータ取得日時と共に応答時間格納部26に格納し(S204)、外向きデータ取得部24は、再びステップ200に示した処理を実行する。
【0059】
図8は、ボット検知装置20によるボット判定処理を例示するフローチャートである。所定時間(1時間)毎、または、応答時間格納部26内のデータ量が所定値(応答時間格納部26の記憶容量の80%)以上になった場合等の所定のタイミングで、ボット検知装置20は、本フローチャートに示すボット判定処理を開始する。
【0060】
まず、ボット情報出力部27は、応答時間格納部26に格納されているそれぞれのレコードの外向きデータ取得日時を参照して、前回応答時間格納部26から読み出したレコードの中で、最新のレコードから所定時間(例えば5秒)以内のレコードを特定する(S300)。そして、ボット情報出力部27は、特定したレコードの中で最も古いレコードから所定数のレコードを応答時間格納部26から読み出す(S301)。
【0061】
このように、所定時間分さかのぼってレコードを読み出すことにより、ボット情報出力部27は、応答時間の差が所定時間以内のレコードを確実に検出することができる。なお、最新のレコードから所定時間(例えば5秒)以内のレコードが存在しない場合、ボット情報出力部27は、ステップ301において、前回読み出したレコードの中の最新のレコードから所定数のレコードを読み出す。
【0062】
次に、ボット情報出力部27は、読み出したレコードの中で、未選択のレコードを1つ選択し(S302)、選択したレコードに含まれる応答時間との差が所定値(例えば5秒)以内の応答時間を有するレコードが応答時間格納部26内に存在するか否かを判定する(S303)。選択したレコードに含まれる応答時間との差が所定値以内の応答時間を有するレコードが応答時間格納部26内に存在しない場合(S303:No)、ボット情報出力部27は、ステップ307に示す処理を実行する。
【0063】
選択したレコードに含まれる応答時間との差が所定値以内の応答時間を有するレコードが応答時間格納部26内に存在する場合(S303:Yes)、ボット情報出力部27は、該当するレコードを抽出し(S304)、抽出したレコードが、ステップ302において選択したレコードと同一のIDおよび外向き宛先情報を有するか否かを判定する(S305)。抽出したレコードが、ステップ302において選択したレコードと同一のIDおよび外向き宛先情報を有しない場合(S305:No)、ボット情報出力部27は、ステップ307に示す処理を実行する。
【0064】
抽出したレコードが、ステップ302において選択したレコードと同一のIDおよび外向き宛先情報を有する場合(S305:Yes)、ボット情報出力部27は、該当するレコードに含まれる内向き宛先アドレスをボット感染コンピュータのIPアドレスとして出力し(S306)、ステップ301において読み出したレコードの中に未選択のレコードが存在するか否かを判定する(S307)。
【0065】
ステップ301において読み出したレコードの中に未選択のレコードが存在する場合(S307:Yes)、ボット情報出力部27は、再びステップ302に示した処理を実行する。未選択のレコードが存在しない場合(S307:No)、ボット検知装置20は、本フローチャートに示すボット判定処理を終了する。
【0066】
上記説明から明らかなように、本実施形態の通信システム10によれば、ボットに感染している可能性の高いコンピュータを確実に検出することができる。
【0067】
なお、本発明は、上記の各実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【0068】
図9は、通信システム10の他の形態を例示するシステム構成図である。なお、以下に説明する点を除き、図9において、図1と同じ符号を付した構成は、図1における構成と同一または同様の機能を有するため説明を省略する。
【0069】
複数のデータ収集装置50は、内部ネットワーク14毎に設けられ、対応する内部ネットワーク14と外部ネットワーク12との間の通信データを監視する。ボット判定装置40は、外部ネットワーク12を介してそれぞれのデータ収集装置50から受信した情報に基づいて、ボット感染コンピュータのIPアドレスを特定する。
【0070】
図10は、データ収集装置50の詳細な機能構成を例示するブロック図である。データ収集装置50は、内向きデータ取得部51および外向きデータ取得部52を有する。
【0071】
内向きデータ取得部51は、外部ネットワーク12から内部ネットワーク14へ流入する内向きデータを取得し、取得した内向きデータを、当該内向きデータに対応する内向きデータ取得日時と共に、外部ネットワーク12を介してボット判定装置40へ送信する。
【0072】
外向きデータ取得部52は、内部ネットワーク14から外部ネットワーク12へ流出する外向きデータを取得し、取得した外向きデータを、当該外向きデータに対応する外向きデータ取得日時と共に、外部ネットワーク12を介してボット判定装置40へ送信する。
【0073】
図11は、ボット判定装置40の詳細な機能構成を例示するブロック図である。ボット判定装置40は、通信情報登録部22、通信情報格納部23、応答時間算出部25、応答時間格納部26、およびボット情報出力部27を有する。なお、以下に説明する点を除き、図11において、図2と同じ符号を付した構成は、図2における構成と同一または同様の機能を有するため説明を省略する。
【0074】
通信情報登録部22は、外部ネットワーク12を介して、それぞれのデータ収集装置50から内向きデータおよび内向きデータ取得日時を受信する。そして、通信情報登録部22は、図2において説明したように、受信した内向きデータおよび内向きデータ取得日時を通信情報格納部23に登録する処理を行う。
【0075】
応答時間算出部25は、外部ネットワーク12を介して、それぞれのデータ収集装置50から外向きデータおよび外向きデータ取得日時を受信する。そして、応答時間算出部25は、図2において説明したように、受信した外向きデータおよび外向きデータ取得日時を用いて、応答時間算出処理を行う。
【0076】
本実施形態では、複数のデータ収集装置50から取得した情報に基づいて、ボット感染コンピュータのIPアドレスを検出するので、それぞれの内部ネットワーク14内にボット感染コンピュータが1台しか存在しない場合であっても、通信システム10全体でボット感染コンピュータが複数台存在する場合には、ボット判定装置40は、ボット感染コンピュータのIPアドレスを検出することができる。
【0077】
なお、上記した実施形態において、ボット情報出力部27は、ボット感染コンピュータのIPアドレスを出力したが、他の例として、ボット情報出力部27は、当該IPアドレスと共に応答時間格納部26内に格納されているIDに基づいて通信情報格納部23を参照し、当該IDに対応付けられて通信情報格納部23内に格納されている内向き送信元情報に含まれる内向き送信元アドレスを、指令コンピュータ11または指令コンピュータ11に制御されているIRCサーバ13のIPアドレスとしてさらに出力するようにしてもよい。
【0078】
また、この場合、ボット検知装置20は、外部ネットワーク12と内部ネットワーク14との間に設けられたファイアウォールに指示して、指令コンピュータ11または指令コンピュータ11に制御されているIRCサーバ13のIPアドレスを送信元とする内向きデータを遮断させるように、当該ファイアウォールの通信制御ルールを変更させる内向きルール変更機能をさらに備えるようにしてもよい。これにより、ボット検知装置20は、指令コンピュータからボット感染コンピュータへ送信される指令通信を遮断することができ、ボット感染コンピュータを無害化することができる。
【0079】
また、ボット検知装置20は、外部ネットワーク12と内部ネットワーク14との間に設けられたファイアウォールに指示して、ボット感染コンピュータから外部ネットワーク12へ送信される外向けデータを遮断させるように、当該ファイアウォールの通信制御ルールを変更させる外向きルール変更機能をさらに備えるようにしてもよい。これにより、ボット検知装置20は、指令コンピュータからの指示に応じてボット感染コンピュータから送信された外向きデータを遮断することができ、ボット感染コンピュータを無害化することができる。
【0080】
また、他の例として、ボット検知装置20は、ボット情報出力部27からボット感染コンピュータのIPアドレスが出力された場合に、当該IPアドレスに対応するコンピュータへ、ボットに感染している旨を示す警告メッセージを通知する警告機能をさらに備えるようにしてもよい。内部ネットワーク内のコンピュータは、例えば、Windows(登録商標)の標準機能であるメッセンジャーサービスを常時起動しておくことにより、ボット検知装置20から送信された警告メッセージを画面に表示することができる。これにより、ボット感染コンピュータのユーザは、自分が使用しているコンピュータがボットに感染していることを知ることができ、通信ケーブルを外すことにより、ボットに起因する不正アクセスを防止する、あるいは、ハードディスクをフォーマットして、OSやアプリケーションソフトウェア等を再インストールすることによってボットを駆除する等の対策を実施することができる。
【0081】
また、上記した実施形態では、ボット検知装置20が、外部ネットワーク12と内部ネットワーク14との間に設けられる構成を例に説明したが、本発明はこれに限られない。他の形態として、ボット検知装置20は、内部ネットワークにのみ接続され、内部ネットワーク内を流れる通信データをモニタリングすることにより、ボットに感染している可能性の高いコンピュータ15を検知するようにしてもよい。これにより、ボット検知装置20の処理性能がボトルネックとなることによる通信速度の低下やボット検知装置20の故障による外部ネットワーク12と内部ネットワーク14との間の通信の遮断等のリスクを回避することができる。
【図面の簡単な説明】
【0082】
【図1】本発明の一実施形態に係る通信システム10の構成を例示するシステム構成図である。
【図2】ボット検知装置20の詳細な機能構成を例示するブロック図である。
【図3】通信情報格納部23に格納されるデータ構造を例示する説明図である。
【図4】応答時間格納部26に格納されるデータ構造を例示する説明図である。
【図5】ボット検知装置20の機能を実現する情報処理装置30のハードウェア構成を例示するハードウェア構成図である。
【図6】ボット検知装置20による内向きデータ登録処理を例示するフローチャートである。
【図7】ボット検知装置20による応答時間算出処理を例示するフローチャートである。
【図8】ボット検知装置20によるボット判定処理を例示するフローチャートである。
【図9】通信システム10の他の形態を例示するシステム構成図である。
【図10】データ収集装置50の詳細な機能構成を例示するブロック図である。
【図11】ボット判定装置40の詳細な機能構成を例示するブロック図である。
【符号の説明】
【0083】
10・・・通信システム、11・・・指令コンピュータ、12・・・外部ネットワーク、13・・・IRCサーバ、14・・・内部ネットワーク、15・・・コンピュータ、20・・・ボット検知装置、21・・・内向きデータ取得部、22・・・通信情報登録部、23・・・通信情報格納部、230・・・ID、231・・・内向き送信元情報、232・・・内向きデータ取得日時、233・・・内向き宛先アドレス、24・・・外向きデータ取得部、25・・・応答時間算出部、26・・・応答時間格納部、27・・・ボット情報出力部、30・・・情報処理装置、31・・・CPU、32・・・RAM、33・・・ROM、34・・・HDD、35・・・通信インターフェイス、36・・・入出力インターフェイス、37・・・メディアインターフェイス、38・・・記録媒体、40・・・ボット判定装置、50・・・データ収集装置、51・・・内向きデータ取得部、52・・・外向きデータ取得部
【特許請求の範囲】
【請求項1】
外部のネットワークと内部のネットワークとの間に設けられるボット検知装置であって、
前記外部ネットワークから前記内部ネットワークへ流入する通信データである内向きデータを取得し、取得した内向きデータを、当該内向きデータを取得した日時を示す情報である内向きデータ取得日時と共に出力する内向きデータ取得手段と、
同一の送信元から所定の時間差以内に送信された内向きデータをグループ化して、当該内向きデータに含まれる宛先IPアドレスである内向き宛先アドレスを、グループを識別するグループIDに対応付けて格納する内向き通信情報格納手段と、
前記内部ネットワークから前記外部ネットワークへ流出する通信データである外向きデータを取得し、取得した外向きデータを、当該外向きデータを取得した日時を示す情報である外向きデータ取得日時と共に出力する外内向きデータ取得手段と、
前記外向きデータ取得手段から前記外向きデータおよび前記外向きデータ取得日時が出力された場合に、前記内向き通信情報格納手段を参照して、前記外向きデータに含まれる送信元IPアドレスが前記内向き通信情報格納手段内に内向き宛先アドレスとして格納されている場合に、当該内向き宛先アドレスと共に格納されている内向きデータ取得日時と、当該外向きデータ取得日時との差である応答時間を算出する応答時間算出手段と、
算出された応答時間を、当該内向き宛先アドレス、当該外向きデータの宛先を示す情報を含む外向き宛先情報、および当該内向き宛先アドレスに対応付けられて前記内向き通信情報格納手段内に格納されているグループIDに対応付けて格納する応答時間格納手段と、
前記応答時間格納手段を参照して、前記グループIDおよび前記外向き宛先情報が同一であり、かつ、応答時間の差が所定値以内の内向き宛先アドレスを抽出し、抽出した内向き宛先アドレスを、ボットに感染している可能性の高いコンピュータであるボット感染コンピュータのIPアドレスとして出力するボット情報出力手段と
を備えることを特徴とするボット検知装置。
【請求項2】
請求項1に記載のボット検知装置であって、
前記内向き通信情報格納手段は、
前記内向き宛先アドレスと共に、当該内向き宛先アドレスが含まれる内向きデータの送信元を示す情報を含む内向き送信元情報を、グループIDに対応付けてさらに格納し、
ボット検知装置は、
前記内向きデータ取得手段から前記内向きデータおよび前記内向きデータ取得日時が出力された場合に、前記内向き通信情報格納手段を参照して、
前記内向きデータの内向き送信元情報が前記内向き通信情報格納手段内に存在し、かつ、前記内向きデータ取得日時と、当該内向き送信元情報に対応付けられて前記内向き通信情報格納手段に格納されている内向きデータ取得日時のいずれかとの差が所定値以内の場合に、前記内向きデータに含まれる内向き宛先アドレスおよび内向きデータ取得日時を、当該内向きデータの内向き送信元情報および当該内向き送信元情報に対応するグループIDに対応付けて前記内向き通信情報格納手段に追加登録し、
前記内向きデータの内向き送信元情報が前記内向き通信情報格納手段内に存在しない場合、または、前記内向きデータ取得日時と、当該内向き送信元情報に対応付けられて前記内向き通信情報格納手段に格納されている内向きデータ取得日時のいずれとの差も所定値以内にない場合のいずれかの場合に、前記内向きデータに含まれる内向き宛先アドレスおよび内向きデータ取得日時を、当該内向きデータの内向き送信元情報および新たに割り当てたグループIDに対応付けて前記内向き通信情報格納手段内に新規に登録する内向き通信情報登録手段をさらに備えることを特徴とするボット検知装置。
【請求項3】
請求項2に記載のボット検知装置であって、
前記内向き送信元情報は、
前記内向きデータの送信元IPアドレスおよび送信元ポート番号を含むこと
を特徴とするボット検知装置。
【請求項4】
請求項2に記載のボット検知装置であって、
前記内向き送信元情報は、
前記内向きデータの送信元IPアドレス、送信元ポート番号、および、当該内向きデータのペイロードの一部または特徴値を含むこと
を特徴とするボット検知装置。
【請求項5】
請求項3または4に記載のボット検知装置であって、
前記ボット情報出力手段は、
当該IPアドレスと共に前記応答時間格納手段内に格納されているグループIDに対応付けられて、前記内向き通信情報格納手段内に格納されている内向き送信元情報に含まれる送信元IPアドレスを、前記ボット感染コンピュータを制御する指令コンピュータのIPアドレスとしてさらに出力すること
を特徴とするボット検知装置。
【請求項6】
請求項5に記載のボット検知装置であって、
前記ボット情報出力手段から前記指令コンピュータのIPアドレスが出力された場合に、前記外部ネットワークと前記内部ネットワークとの間に設けられたファイアウォールに指示して、当該IPアドレスを送信元とする内向きデータを遮断させるように前記ファイアウォールの通信制御ルールを変更させる内向きルール変更手段をさらに備えることを特徴とするボット検知装置。
【請求項7】
請求項1から6のいずれか一項に記載のボット検知装置であって、
前記外向き宛先情報は、
前記外向きデータの宛先IPアドレス、宛先ポート番号、および、当該外向きデータペイロードの一部または特徴値を含むこと
を特徴とするボット検知装置。
【請求項8】
請求項1から7のいずれか一項に記載のボット検知装置であって、
前記ボット情報出力手段から前記ボット感染コンピュータのIPアドレスが出力された場合に、当該IPアドレスに対応するコンピュータへ、ボットに感染している旨を示す警告メッセージを通知する警告手段をさらに備えることを特徴とするボット検知装置。
【請求項9】
請求項1から8のいずれか一項に記載のボット検知装置であって、
前記ボット情報出力手段から前記ボット感染コンピュータのIPアドレスが出力された場合に、前記外部ネットワークと前記内部ネットワークとの間に設けられたファイアウォールに指示して、当該IPアドレスを送信元とする外向きデータを遮断させるように前記ファイアウォールの通信制御ルールを変更させる外向きルール変更手段をさらに備えることを特徴とするボット検知装置。
【請求項10】
外部のネットワークと内部のネットワークとの間に設けられるボット検知装置におけるボット検出方法であって、
前記ボット検出装置は、
前記外部ネットワークから前記内部ネットワークへ流入する通信データである内向きデータを取得し、取得した内向きデータを、当該内向きデータを取得した日時を示す情報である内向きデータ取得日時と共に出力する内向きデータ取得ステップと、
同一の送信元から所定の時間差以内に送信された内向きデータをグループ化して、当該内向きデータに含まれる宛先IPアドレスである内向き宛先アドレスを、グループを識別するグループIDに対応付けて内向き通信情報格納手段に1つ以上格納する内向き通信情報格納ステップと、
前記内部ネットワークから前記外部ネットワークへ流出する通信データである外向きデータを取得し、取得した外向きデータを、当該外向きデータを取得した日時を示す情報である外向きデータ取得日時と共に出力する外内向きデータ取得ステップと、
前記外向きデータ取得ステップにおいて前記外向きデータおよび前記外向きデータ取得日時を出力した場合に、前記内向き通信情報格納手段を参照して、前記外向きデータに含まれる送信元IPアドレスが前記内向き通信情報格納手段内に内向き宛先アドレスとして格納されている場合に、当該内向き宛先アドレスと共に格納されている内向きデータ取得日時と、当該外向きデータ取得日時との差である応答時間を算出する応答時間算出ステップと、
算出した応答時間を、当該内向き宛先アドレス、当該外向きデータの宛先を示す情報を含む外向き宛先情報、および当該内向き宛先アドレスに対応付けられて前記内向き通信情報格納手段内に格納されているグループIDに対応付けて応答時間格納手段に格納する応答時間格納ステップと、
前記応答時間格納手段を参照して、前記グループIDおよび前記外向き宛先情報が同一であり、かつ、応答時間の差が所定値以内の内向き宛先アドレスを抽出し、抽出した内向き宛先アドレスを、ボットに感染している可能性の高いコンピュータのIPアドレスとして出力するボット情報出力ステップと
を実行することを特徴とするボット検知方法。
【請求項11】
外部のネットワークと内部のネットワークとの間に設けられるボット検知装置を制御するプログラムであって、
前記ボット検知装置を、
前記外部ネットワークから前記内部ネットワークへ流入する通信データである内向きデータを取得し、取得した内向きデータを、当該内向きデータを取得した日時を示す情報である内向きデータ取得日時と共に出力する内向きデータ取得手段、
同一の送信元から所定の時間差以内に送信された内向きデータをグループ化して、当該内向きデータに含まれる宛先IPアドレスである内向き宛先アドレスを、グループを識別するグループIDに対応付けて格納する内向き通信情報格納手段、
前記内部ネットワークから前記外部ネットワークへ流出する通信データである外向きデータを取得し、取得した外向きデータを、当該外向きデータを取得した日時を示す情報である外向きデータ取得日時と共に出力する外内向きデータ取得手段、
前記外向きデータ取得手段から前記外向きデータおよび前記外向きデータ取得日時が出力された場合に、前記内向き通信情報格納手段を参照して、前記外向きデータに含まれる送信元IPアドレスが前記内向き通信情報格納手段内に内向き宛先アドレスとして格納されている場合に、当該内向き宛先アドレスと共に格納されている内向きデータ取得日時と、当該外向きデータ取得日時との差である応答時間を算出する応答時間算出手段、
算出された応答時間を、当該内向き宛先アドレス、当該外向きデータの宛先を示す情報を含む外向き宛先情報、および当該内向き宛先アドレスに対応付けられて前記内向き通信情報格納手段内に格納されているグループIDに対応付けて格納する応答時間格納手段、および
前記応答時間格納手段を参照して、前記グループIDおよび前記外向き宛先情報が同一であり、かつ、応答時間の差が所定値以内の内向き宛先アドレスを抽出し、抽出した内向き宛先アドレスを、ボットに感染している可能性の高いコンピュータであるボット感染コンピュータのIPアドレスとして出力するボット情報出力手段
として機能させることを特徴とするプログラム。
【請求項1】
外部のネットワークと内部のネットワークとの間に設けられるボット検知装置であって、
前記外部ネットワークから前記内部ネットワークへ流入する通信データである内向きデータを取得し、取得した内向きデータを、当該内向きデータを取得した日時を示す情報である内向きデータ取得日時と共に出力する内向きデータ取得手段と、
同一の送信元から所定の時間差以内に送信された内向きデータをグループ化して、当該内向きデータに含まれる宛先IPアドレスである内向き宛先アドレスを、グループを識別するグループIDに対応付けて格納する内向き通信情報格納手段と、
前記内部ネットワークから前記外部ネットワークへ流出する通信データである外向きデータを取得し、取得した外向きデータを、当該外向きデータを取得した日時を示す情報である外向きデータ取得日時と共に出力する外内向きデータ取得手段と、
前記外向きデータ取得手段から前記外向きデータおよび前記外向きデータ取得日時が出力された場合に、前記内向き通信情報格納手段を参照して、前記外向きデータに含まれる送信元IPアドレスが前記内向き通信情報格納手段内に内向き宛先アドレスとして格納されている場合に、当該内向き宛先アドレスと共に格納されている内向きデータ取得日時と、当該外向きデータ取得日時との差である応答時間を算出する応答時間算出手段と、
算出された応答時間を、当該内向き宛先アドレス、当該外向きデータの宛先を示す情報を含む外向き宛先情報、および当該内向き宛先アドレスに対応付けられて前記内向き通信情報格納手段内に格納されているグループIDに対応付けて格納する応答時間格納手段と、
前記応答時間格納手段を参照して、前記グループIDおよび前記外向き宛先情報が同一であり、かつ、応答時間の差が所定値以内の内向き宛先アドレスを抽出し、抽出した内向き宛先アドレスを、ボットに感染している可能性の高いコンピュータであるボット感染コンピュータのIPアドレスとして出力するボット情報出力手段と
を備えることを特徴とするボット検知装置。
【請求項2】
請求項1に記載のボット検知装置であって、
前記内向き通信情報格納手段は、
前記内向き宛先アドレスと共に、当該内向き宛先アドレスが含まれる内向きデータの送信元を示す情報を含む内向き送信元情報を、グループIDに対応付けてさらに格納し、
ボット検知装置は、
前記内向きデータ取得手段から前記内向きデータおよび前記内向きデータ取得日時が出力された場合に、前記内向き通信情報格納手段を参照して、
前記内向きデータの内向き送信元情報が前記内向き通信情報格納手段内に存在し、かつ、前記内向きデータ取得日時と、当該内向き送信元情報に対応付けられて前記内向き通信情報格納手段に格納されている内向きデータ取得日時のいずれかとの差が所定値以内の場合に、前記内向きデータに含まれる内向き宛先アドレスおよび内向きデータ取得日時を、当該内向きデータの内向き送信元情報および当該内向き送信元情報に対応するグループIDに対応付けて前記内向き通信情報格納手段に追加登録し、
前記内向きデータの内向き送信元情報が前記内向き通信情報格納手段内に存在しない場合、または、前記内向きデータ取得日時と、当該内向き送信元情報に対応付けられて前記内向き通信情報格納手段に格納されている内向きデータ取得日時のいずれとの差も所定値以内にない場合のいずれかの場合に、前記内向きデータに含まれる内向き宛先アドレスおよび内向きデータ取得日時を、当該内向きデータの内向き送信元情報および新たに割り当てたグループIDに対応付けて前記内向き通信情報格納手段内に新規に登録する内向き通信情報登録手段をさらに備えることを特徴とするボット検知装置。
【請求項3】
請求項2に記載のボット検知装置であって、
前記内向き送信元情報は、
前記内向きデータの送信元IPアドレスおよび送信元ポート番号を含むこと
を特徴とするボット検知装置。
【請求項4】
請求項2に記載のボット検知装置であって、
前記内向き送信元情報は、
前記内向きデータの送信元IPアドレス、送信元ポート番号、および、当該内向きデータのペイロードの一部または特徴値を含むこと
を特徴とするボット検知装置。
【請求項5】
請求項3または4に記載のボット検知装置であって、
前記ボット情報出力手段は、
当該IPアドレスと共に前記応答時間格納手段内に格納されているグループIDに対応付けられて、前記内向き通信情報格納手段内に格納されている内向き送信元情報に含まれる送信元IPアドレスを、前記ボット感染コンピュータを制御する指令コンピュータのIPアドレスとしてさらに出力すること
を特徴とするボット検知装置。
【請求項6】
請求項5に記載のボット検知装置であって、
前記ボット情報出力手段から前記指令コンピュータのIPアドレスが出力された場合に、前記外部ネットワークと前記内部ネットワークとの間に設けられたファイアウォールに指示して、当該IPアドレスを送信元とする内向きデータを遮断させるように前記ファイアウォールの通信制御ルールを変更させる内向きルール変更手段をさらに備えることを特徴とするボット検知装置。
【請求項7】
請求項1から6のいずれか一項に記載のボット検知装置であって、
前記外向き宛先情報は、
前記外向きデータの宛先IPアドレス、宛先ポート番号、および、当該外向きデータペイロードの一部または特徴値を含むこと
を特徴とするボット検知装置。
【請求項8】
請求項1から7のいずれか一項に記載のボット検知装置であって、
前記ボット情報出力手段から前記ボット感染コンピュータのIPアドレスが出力された場合に、当該IPアドレスに対応するコンピュータへ、ボットに感染している旨を示す警告メッセージを通知する警告手段をさらに備えることを特徴とするボット検知装置。
【請求項9】
請求項1から8のいずれか一項に記載のボット検知装置であって、
前記ボット情報出力手段から前記ボット感染コンピュータのIPアドレスが出力された場合に、前記外部ネットワークと前記内部ネットワークとの間に設けられたファイアウォールに指示して、当該IPアドレスを送信元とする外向きデータを遮断させるように前記ファイアウォールの通信制御ルールを変更させる外向きルール変更手段をさらに備えることを特徴とするボット検知装置。
【請求項10】
外部のネットワークと内部のネットワークとの間に設けられるボット検知装置におけるボット検出方法であって、
前記ボット検出装置は、
前記外部ネットワークから前記内部ネットワークへ流入する通信データである内向きデータを取得し、取得した内向きデータを、当該内向きデータを取得した日時を示す情報である内向きデータ取得日時と共に出力する内向きデータ取得ステップと、
同一の送信元から所定の時間差以内に送信された内向きデータをグループ化して、当該内向きデータに含まれる宛先IPアドレスである内向き宛先アドレスを、グループを識別するグループIDに対応付けて内向き通信情報格納手段に1つ以上格納する内向き通信情報格納ステップと、
前記内部ネットワークから前記外部ネットワークへ流出する通信データである外向きデータを取得し、取得した外向きデータを、当該外向きデータを取得した日時を示す情報である外向きデータ取得日時と共に出力する外内向きデータ取得ステップと、
前記外向きデータ取得ステップにおいて前記外向きデータおよび前記外向きデータ取得日時を出力した場合に、前記内向き通信情報格納手段を参照して、前記外向きデータに含まれる送信元IPアドレスが前記内向き通信情報格納手段内に内向き宛先アドレスとして格納されている場合に、当該内向き宛先アドレスと共に格納されている内向きデータ取得日時と、当該外向きデータ取得日時との差である応答時間を算出する応答時間算出ステップと、
算出した応答時間を、当該内向き宛先アドレス、当該外向きデータの宛先を示す情報を含む外向き宛先情報、および当該内向き宛先アドレスに対応付けられて前記内向き通信情報格納手段内に格納されているグループIDに対応付けて応答時間格納手段に格納する応答時間格納ステップと、
前記応答時間格納手段を参照して、前記グループIDおよび前記外向き宛先情報が同一であり、かつ、応答時間の差が所定値以内の内向き宛先アドレスを抽出し、抽出した内向き宛先アドレスを、ボットに感染している可能性の高いコンピュータのIPアドレスとして出力するボット情報出力ステップと
を実行することを特徴とするボット検知方法。
【請求項11】
外部のネットワークと内部のネットワークとの間に設けられるボット検知装置を制御するプログラムであって、
前記ボット検知装置を、
前記外部ネットワークから前記内部ネットワークへ流入する通信データである内向きデータを取得し、取得した内向きデータを、当該内向きデータを取得した日時を示す情報である内向きデータ取得日時と共に出力する内向きデータ取得手段、
同一の送信元から所定の時間差以内に送信された内向きデータをグループ化して、当該内向きデータに含まれる宛先IPアドレスである内向き宛先アドレスを、グループを識別するグループIDに対応付けて格納する内向き通信情報格納手段、
前記内部ネットワークから前記外部ネットワークへ流出する通信データである外向きデータを取得し、取得した外向きデータを、当該外向きデータを取得した日時を示す情報である外向きデータ取得日時と共に出力する外内向きデータ取得手段、
前記外向きデータ取得手段から前記外向きデータおよび前記外向きデータ取得日時が出力された場合に、前記内向き通信情報格納手段を参照して、前記外向きデータに含まれる送信元IPアドレスが前記内向き通信情報格納手段内に内向き宛先アドレスとして格納されている場合に、当該内向き宛先アドレスと共に格納されている内向きデータ取得日時と、当該外向きデータ取得日時との差である応答時間を算出する応答時間算出手段、
算出された応答時間を、当該内向き宛先アドレス、当該外向きデータの宛先を示す情報を含む外向き宛先情報、および当該内向き宛先アドレスに対応付けられて前記内向き通信情報格納手段内に格納されているグループIDに対応付けて格納する応答時間格納手段、および
前記応答時間格納手段を参照して、前記グループIDおよび前記外向き宛先情報が同一であり、かつ、応答時間の差が所定値以内の内向き宛先アドレスを抽出し、抽出した内向き宛先アドレスを、ボットに感染している可能性の高いコンピュータであるボット感染コンピュータのIPアドレスとして出力するボット情報出力手段
として機能させることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2007−323428(P2007−323428A)
【公開日】平成19年12月13日(2007.12.13)
【国際特許分類】
【出願番号】特願2006−153795(P2006−153795)
【出願日】平成18年6月1日(2006.6.1)
【国等の委託研究の成果に係る記載事項】(出願人による申告)国等の委託研究の成果に係る特許出願(平成16年度情報通信研究機構「ネットワーク環境の脆弱性レベルをリアルタイムで定量評価し、情報流通をセキュアに運用するための意志決定システムの研究開発」委託研究、産業活力再生特別措置法第30条の適用を受けるもの)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成19年12月13日(2007.12.13)
【国際特許分類】
【出願日】平成18年6月1日(2006.6.1)
【国等の委託研究の成果に係る記載事項】(出願人による申告)国等の委託研究の成果に係る特許出願(平成16年度情報通信研究機構「ネットワーク環境の脆弱性レベルをリアルタイムで定量評価し、情報流通をセキュアに運用するための意志決定システムの研究開発」委託研究、産業活力再生特別措置法第30条の適用を受けるもの)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]