(58)【調査した分野】(Int.Cl.,DB名)
前記記憶部に記憶されるコネクションを更新する更新部をさらに備え、前記更新部は、前記記憶部に記憶されるコネクションが終了したとき、または、前記中継部が当該コネクションに対応するデータを所定の期間中継しなかったとき、当該コネクションを前記記憶部から削除することを特徴とする請求項1に記載の検知システム。
【発明を実施するための形態】
【0011】
(第1の実施形態)
第1の実施形態に係る検知システム、検知方法および検知プログラムは、ネットワーク上を流れるデータをコネクション単位で抽出して監視する。ここで、「コネクション」とは、所定の装置間において確立される通信経路を指す。通信経路とはたとえば、論理的な通信路である。たとえば、「コネクション」は、所定のIPアドレスとポート番号によって特定される複数の装置間において確立される論理的通信路を指す。またたとえば、「コネクション」は、TCPコネクションを指す。
【0012】
第1の実施形態に係る検知システムは、たとえばネットワーク上に確立されるTCPコネクションのうち、一部のコネクションを選択する。そして、検知システムは、選択したコネクションに対応するパケットを抽出して監視する。選択したコネクションに対応するパケットとは、たとえば、確立されたTCPコネクションのうち選択されたコネクションを用いて送受信されるパケットである。たとえば、所定の宛先IPアドレス、宛先ポート番号、送信元IPアドレス、送信元ポート番号をヘッダに含むTCPパケットである。またたとえば、同様に、所定の宛先IPアドレス、送信元IPアドレス、宛先ポート番号、送信元ポート番号を含むUDP(User Datagram Protocol)パケットである。
【0013】
[検知システム1の構成の一例]
図1は、第1の実施形態に係る検知システム1の構成の一例を示す図である。
図1を参照して検知システム1の構成の一例につき説明する。
【0014】
検知システム1は、中継装置10と、解析装置20と、を備える。中継装置10は、ネットワーク上を流れるパケットを受信して中継する。中継装置10は、ホスト(ウェブサーバ等)30A〜30Dとネットワークを介して接続される。中継装置10はまた、ネットワークを介して解析装置20と接続される。中継装置10は、受信したパケットを宛先であるホスト30A〜30Dに中継する。また、中継装置10は、所定のコネクションに対応するパケットを受信すると、当該パケットを解析装置20にミラーリングする。なお、
図1には、4つのホスト30A〜30Dを示すが、中継装置がパケットの中継先とするホストの数はこれに限定されない。
【0015】
[中継装置10の構成の一例]
中継装置10は、記憶部110と、中継部120と、選択部130と、抽出部140と、更新部150と、を備える。
【0016】
記憶部110はたとえば、半導体メモリ素子や記憶装置である。例えば、半導体メモリ素子としては、VRAM(Video Random Access Memory)、RAM(Random Access Memory)、ROM(Read Only Memory)やフラッシュメモリ(flash memory)などを用いることができる。また、記憶装置としては、ハードディスク、光ディスクなどの記憶装置を用いることができる。記憶部110に記憶する情報の詳細については後述する。
【0017】
中継部120は、パケット等を送受信して中継する通信部である。中継部120は、パケットを受信すると、受信したパケットを当該パケットのヘッダ等によって指定される宛先に中継する。また、中継部120は、受信したパケットを選択部130、抽出部140および更新部150に渡す。
【0018】
選択部130は、受信したパケットからコネクションの情報を抽出し、当該コネクションの情報が記憶部110に記憶されていない場合、当該情報を記憶部110に記憶する。また、選択部130は、記憶部110に記憶された情報を参照し、抽出したコネクションを監視対象コネクションとして選択するか否かを判定する。監視対象コネクションとは、攻撃等に用いられるデータを検知するため、解析装置20が監視すなわち解析の対象とするコネクションを指す。選択部130は、抽出したコネクションを監視対象コネクションとして選択すると判定した場合、当該コネクションの情報を監視対象コネクション情報として記憶部110に記憶する。選択部130による監視対象コネクションの選択処理の詳細については後述する。
【0019】
抽出部140は、受信したパケットからコネクションの情報を抽出し、当該コネクションの情報が、監視対象コネクション情報として記憶部110に記憶されているか否かを判定する。抽出部140は、当該コネクションの情報が、監視対象コネクション情報として記憶されていると判定した場合、当該パケットを解析装置20にミラーリングする。
【0020】
更新部150は、記憶部110に記憶される監視対象コネクション情報を更新する。更新部150はたとえば、確立されていたコネクションが終了したことを検知した場合に、記憶部110に記憶された監視対象コネクション情報から、当該コネクションの情報を削除する。
【0021】
更新部150は、たとえば、TCPコネクションの終了を示すFINパケットやTCPコネクションの中断や拒否を示すRSTパケットを受信した場合、当該パケットに含まれるコネクションの情報を抽出する。そして、更新部150は、当該コネクションの情報を記憶部110に記憶された監視対象コネクション情報から削除する。
【0022】
更新部150は、また、監視対象コネクション情報として記憶されているコネクションの情報を含むパケットを所定期間受信しなかった場合(タイムアウト)、当該コネクションの情報を記憶部110に記憶された監視対象コネクション情報から削除する。
【0023】
なお、中継部120、選択部130、抽出部140および更新部150における処理は、CPU(Central Processing Unit)等の制御部が統括的に制御し実行するものとして構成すればよい。また、各部の処理は適宜統合分散することができる。
【0024】
[記憶部110に格納される情報の一例]
次に、中継装置10の記憶部110に記憶される情報について説明する。記憶部110は、コネクション記憶部111と、監視対象コネクション記憶部112と、ウェブサイト記憶部113と、上限値記憶部114と、を備える。
【0025】
コネクション記憶部111は、中継装置10を介して確立されるコネクションの情報を記憶する。第1の実施形態においては、コネクション記憶部111は、中継装置10を介して確立されるコネクションの情報をすべて記憶する。
【0026】
コネクション記憶部111に記憶する情報は、選択部130によって抽出される。選択部130は、受信したパケットに含まれるコネクションの情報を抽出し、当該コネクションの情報がすでにコネクション記憶部111に記憶されていない場合、当該コネクションの情報をコネクション記憶部111に記憶させる。
【0027】
図2は、第1の実施形態に係る中継装置10が記憶するコネクション情報の構成の一例を示す図である。
図2に示すように、コネクション記憶部111が記憶するコネクション情報は、「コネクションID」、「宛先IPアドレス」、「宛先ポート番号」、「送信元IPアドレス」、「送信元ポート番号」を含む。「コネクションID」は、各コネクションを一意に識別するための識別子(Identifier)である。「宛先IPアドレス」は、中継装置10が受信したパケットの宛先を示すIPアドレスである。「宛先ポート番号」は、中継装置10が受信したパケットの宛先を特定するためのポート番号である。「送信元IPアドレス」は、中継装置10が受信したパケットの送信元を示すIPアドレスである。「送信元ポート番号」は、中継装置10が受信したパケットの送信元を特定するためのポート番号である。選択部130は、たとえば、パケットのヘッダ部分に格納される情報に基づき、コネクション記憶部111に記憶する情報を抽出する。
【0028】
図2中、たとえば、コネクションID「C001」に対応づけて、「宛先IPアドレス、192.168.0.1」、「宛先ポート番号、80」、「送信元IPアドレス、221.34.76.54」、「送信元ポート番号、13556」が記憶されている。なお、同じコネクションに属するパケットには、同じクライアントとウェブサーバとの間で送受信される上りパケットと下りパケットとが含まれる。つまり、宛先IPアドレスと送信元IPアドレス、宛先ポートと送信元ポートがそれぞれ逆になっているパケットは同一のコネクションに属する。上記の例では、「宛先IPアドレス、192.168.0.1」、「宛先ポート番号、80」、「送信元IPアドレス、221.34.76.54」、「送信元ポート番号、13556」のパケットと、「宛先IPアドレス、221.34.76.54」、「宛先ポート番号、13556」、「送信元IPアドレス、192.168.0.1」、「送信元ポート番号、80」のパケットと、は同じコネクションに属するものとして扱う。
【0029】
監視対象コネクション記憶部112は、中継装置10が監視対象とするコネクションの情報を記憶する。監視対象コネクション記憶部112に記憶する情報は、選択部130によって選択される。選択部130は、コネクション記憶部111に記憶するコネクションのうち、所定のコネクションを監視対象として選択し、監視対象コネクション記憶部112に記憶させる。
【0030】
図3は、第1の実施形態に係る中継装置10が記憶する監視対象コネクション情報の構成の一例を示す図である。監視対象コネクション情報の構成は、
図2に示したコネクション情報の構成と同様である。ただし、監視対象コネクション情報はさらに、「ウェブサイトID」を含む。「ウェブサイトID」は、コネクションの宛先または送信元のウェブサイトを一意に識別するための情報である。
図3の例では、「ウェブサイトID、W001」によって特定されるウェブサイトに対応付けて、「コネクションID」が「C010」、「C014」、「C026」である3つのコネクションの情報が記憶されている。コネクションID「C010」のコネクションの宛先IPアドレス「192.158.9.3」および宛先ポート番号「80」は、コネクションID「C014」のコネクションの宛先IPアドレスおよび宛先ポート番号とそれぞれ同一である。すなわち、コネクション「C010」を介して送信されるパケットの宛先は、コネクション「C014」を介して送信されるパケットの送信元と同一である。選択部130は、後述するウェブサイト記憶部113に記憶されるウェブサイトの情報を参照して、パケットの宛先および送信元のウェブサイトを特定する。そして、同一のウェブサイトを宛先または送信元とするパケットを当該ウェブサイトに対応付けて記憶する。
図3の例では、IPアドレス「192.158.9.3」、ポート番号「80」で特定されるウェブサイトのウェブサイトIDは「W001」である(
図4参照)。監視対象コネクション記憶部112は、このように、各コネクションの宛先または送信元であるウェブサイトごとにコネクションを記憶する。
【0031】
ウェブサイト記憶部113は、中継装置10を経由するデータの送信元または宛先となるウェブサイトの情報を記憶する。
図4は、第1の実施形態に係る中継装置10が記憶するウェブサイト情報の構成の一例を示す図である。
図4に示すように、ウェブサイト記憶部113は、「ウェブサイトID」と「IPアドレス」とを対応づけて記憶する。「ウェブサイトID」は、ウェブサイトを一意に識別するための識別子であり、
図3に示したものと同様である。「IPアドレス」は、ウェブサイトを一意に特定するための、当該ウェブサイトのIPアドレスを示す情報である。「IPアドレス」はたとえば、
図2、
図3に示す「宛先IPアドレス」や「送信元IPアドレス」と同様である。
図4の例ではたとえば、「ウェブサイトID、W001」に対応付けて、「IPアドレス、192.158.9.3」が記憶されている。なお、
図4の例では、IPアドレスによってウェブサイトを特定するものとしたが、これに限定されず、IPアドレスとポート番号との組によってウェブサイトを特定する構成としてもよい。
【0032】
上限値記憶部114は、中継装置10において監視対象とするコネクションの上限値を記憶する。ここで、上限値とは、検知システム1において解析装置20が同時に解析対象とするコネクションの数の上限数である。解析装置20が同時に解析可能な情報量には限りがあるため、解析装置20の処理能力等に基づき、上限値を予め算出する。選択部130は、予め定められた上限値の範囲内で、監視対象コネクションを選択する。
【0033】
第1の実施形態に係る検知システム1では、選択部130は、上限値の範囲内で選択可能な監視対象コネクションの数を各ウェブサイトに割り当てる。たとえば、予め定められた上限値が1000であり、監視対象となるウェブサイトの数が100であるとする。この場合、たとえば、各ウェブサイトに監視対象コネクションを均等に割り当てるとすれば、各ウェブサイトを宛先または送信元とするコネクションのうち10のコネクションを監視対象コネクションとすることができる。第1の実施形態では、このように検知システム1全体として同時に解析可能な監視対象コネクションの上限値を設定するとともに、各ウェブサイトに対応して監視対象とすることができるコネクションの数を設定する。以下、各ウェブサイトに割り当てられる監視対象コネクションの上限数を解析コネクション枠と呼ぶ。第1の実施形態では、各ウェブサイトに均等に解析コネクション枠を割り当てるものとする。ただし、解析コネクション枠の割当手法はこれに限定されない。
【0034】
上限値記憶部114は、このようにして算出された解析コネクション枠を記憶する。
図5は、第1の実施形態に係る中継装置10が記憶する上限値情報の構成の一例を示す図である。
図5に示すように、上限値記憶部114は、「ウェブサイトID」と「解析コネクション枠」とを対応づけて記憶する。「ウェブサイトID」はウェブサイトを一意に識別するための識別子であり、「解析コネクション枠」は各ウェブサイトに対応づけて割り当てられる監視対象コネクションの上限数を示す。
図5の例では、「ウェブサイトID、W001」のウェブサイトに対応付けて、「解析コネクション枠、10」が記憶されている。これは、ウェブサイトID「W001」で識別されるウェブサイトを宛先または送信元とするコネクションを、10個まで監視対象とすることができることを意味する。
【0035】
[解析装置20の構成の一例]
次に再び
図1を参照し、解析装置20の構成の一例について説明する。解析装置20は、中継装置10がミラーリングしたパケットを解析して不正なパケットまたはコネクションを検知する。解析装置20はまた、検知した不正なパケットまたはコネクションについて中継装置10に通知する。
【0036】
図1に示すように、解析装置20は、記憶部210と、検知部220とを備える。
【0037】
記憶部210は、記憶部110と同様たとえば、半導体メモリ素子や記憶装置である。記憶部210はたとえば、中継装置10から送信される監視対象パケットを一時的に記憶し、検知した不正なパケットまたはコネクションに関する情報を記憶する。記憶部210は、不正コネクション記憶部211を備える。不正コネクション記憶部211は、解析装置20が検知した不正な通信に関する情報を記憶する。
【0038】
検知部220は、中継装置10からミラーリングされたパケットを解析して、不正な通信を検知する。検知部220はたとえば、クライアントからウェブサイトへの通信間隔が所定のパターンに合致するコネクションを検知して、不正コネクションとして不正コネクション記憶部211に記憶する。また、検知部220は、検知した不正なパケットまたはコネクションの情報を中継装置10に通知する。
【0039】
[第1の実施形態に係る検知方法の処理の流れの一例]
図6は、第1の実施形態に係る検知方法の処理の流れの一例を示すフローチャートである。
図6に示すように、処理が開始するとまず、中継装置10の中継部120がパケットを受信する(ステップS201)。中継部120は、受信したパケットを当該パケットの宛先に送信するとともに、選択部130に渡す。選択部130は、パケットに含まれるコネクション情報を抽出する(ステップS202)。選択部130は、記憶部110に記憶されている情報を参照して、抽出した情報を監視対象コネクションの情報として選択するか否かを判定する(ステップS203)。選択部130は、当該コネクションの情報を監視対象コネクションの情報として選択する、と判定した場合(ステップS203、肯定)、当該コネクションの情報を監視対象コネクション記憶部112に記憶する(ステップS204)。他方、選択部130は、当該コネクションの情報を監視対象コネクションの情報として選択しない、と判定した場合(ステップS203、否定)、ステップS201に戻る。次に、抽出部140は、受信したパケットからコネクション情報を抽出して、監視対象コネクション記憶部112に記憶された情報と照合し、記憶されたコネクション情報を含むパケットを抽出し、解析装置20にミラーリングする(ステップS205)。解析装置20は、ミラーリングされたパケットを解析し不正な通信を検知する(ステップS206)。解析装置20は、不正な通信を検知した場合は、当該通信を構成するパケットまたはコネクションの情報を不正コネクション記憶部211に記憶し、中継装置10に通知する。これで第1の実施形態に係る検知処理が終了する。
【0040】
[監視対象コネクションの選択:パケット受信時の選択部の処理]
次に、中継装置10の選択部130による監視対象コネクションの選択処理についてさらに説明する。
図7は、第1の実施形態に係る監視対象コネクションの選択処理の流れの一例を示すフローチャートである。なお、
図7に示す選択処理は概ね
図6のステップS201からステップS204の処理に対応する。
【0041】
図7に示すように、選択部130は、中継部120が受信したパケットを受け取る(ステップS701)。そして、選択部130は、受信したパケットに含まれるコネクションの情報を抽出する(ステップS702)。選択部130は、コネクション記憶部111を参照し、抽出したコネクションの情報が記憶されているか否かを判定する(ステップS703)。そして、コネクション記憶部111に記憶されていないと判定した場合(ステップS703、否定)、選択部130は、当該情報をコネクション記憶部111に記憶し(ステップS704)、ステップS705に進む。他方、コネクション記憶部111に記憶されていると判定した場合(ステップS703、肯定)、そのまま選択部130はステップS705に進む。
【0042】
そして、選択部130は、ウェブサイト記憶部113を参照し、受信したパケットから抽出したコネクションの宛先または送信元のIPアドレスに対応するウェブサイトを特定する(ステップS705)。そして、選択部130は、特定したウェブサイトに対応付けて監視対象コネクション記憶部112に記憶されているコネクションの情報を参照し、受信したパケットのコネクション情報が記憶済みか否かを判定する(ステップS706)。記憶済みと判定した場合(ステップS706、肯定)、選択部130は選択処理を終了する。他方、記憶されていないと判定した場合(ステップS706、否定)、選択部130は、上限値記憶部114を参照し、特定したウェブサイトに対応する解析コネクション枠を読み出す(ステップS707)。選択部130は次に、特定したウェブサイトに対応づけて記憶されている監視対象コネクションの数が、読み出した解析コネクション枠よりも少ないか否かを判定する(ステップS708)。解析コネクション枠よりも少ない場合(ステップS708、肯定)、選択部130は、受信したパケットのコネクション情報を監視対象コネクションとして監視対象コネクション記憶部112に記憶させ(ステップS709)、選択処理を終了する。他方、解析コネクション枠以上である場合(ステップS708、否定)、選択部130は選択処理を終了する。これで、監視対象コネクションの選択処理が終了する。
【0043】
[記憶部110に記憶されるコネクション情報の更新タイミング]
上の説明では、選択部130は、新しくパケットを受信するごとにコネクション記憶部111に格納されたコネクション情報と照合して、格納されていないコネクション情報を追加で記憶させるものとした。また、選択部130は、新しくパケットを受信するごとに監視対象コネクション記憶部112に格納された監視対象コネクション情報と照合するものとした。しかし、記憶部110に記憶される情報の更新タイミングは上記に限定されない。
【0044】
たとえば、選択部130は、新しく受信したパケットが、TCPコネクションを確立させるスリーウェイハンドシェイクの処理を構成するパケットである場合のみ、記憶される情報を更新するものとしてもよい。たとえば、選択部130は、スリーウェイハンドシェイクを構成するパケットのうち、コネクション確立要求に対する応答メッセージであるパケットを受信したタイミングで、コネクション記憶部111に当該コネクションの情報を記憶させてもよい。また、選択部130は、スリーウェイハンドシェイクを構成するパケットのうち、コネクション確立を示すメッセージであるパケットを受信したタイミングで、コネクション記憶部111に当該コネクションの情報を記憶させてもよい。たとえば、SYNパケットの受信タイミングで情報を更新するものとしてもよい。
【0045】
なお、TCPではなくUDPの場合は、コネクションの開始を示すパケットがないため、パケットを受信するたびに当該パケットに含まれるコネクションの情報を記憶部110に記憶された情報と照合すればよい。
【0046】
また、更新部150が監視対象コネクションを削除する際に、選択部130に通知して、選択部130が、コネクション記憶部111に記憶されているが監視対象コネクションとして選択されていないコネクションを監視対象コネクションに追加してもよい。
【0047】
また、選択部130は、パケットの受信がなくとも所定期間ごとに解析コネクション枠に空きがないか判定して、空きがあればコネクション記憶部111に記憶されたコネクションで監視対象コネクションを補充するようにしてもよい。
【0048】
なお、監視対象コネクション記憶部112に記憶される情報の更新タイミングについては、上限値記憶部114の更新タイミングと同期させなくてよい。たとえば、監視対象コネクション記憶部112に記憶される各ウェブサイトあたりのコネクション数が、上限数よりも多い場合は、選択部130は、それ以上監視対象とするコネクションを追加しない。そして、更新部150の処理により、監視対象コネクション数が上限数以下となるまで待つ。また、監視対象コネクション記憶部112に記憶される各ウェブサイト当たりのコネクション数が、新しい上限数よりも少ない場合は、選択部130は、予め定められた更新タイミングで監視対象コネクションを上限数以内で追加すればよい。
【0049】
また、各ウェブサイトに対して割り当てる監視対象コネクションの数(解析コネクション枠)も、必ずしも均等に割り当てなくてもよい。たとえば、過去に不正が検知されたウェブサイトや、セキュリティ対策が十全でないウェブサイト等については、解析コネクション枠を多くとる等、任意に解析コネクション枠を割り当ててよい。
【0050】
また、検知システム1全体としての監視対象コネクションの上限値および解析コネクション枠は、ユーザ等が手動で設定入力してもよいし、解析装置20の処理能力や中継装置10が配置されるネットワーク上の通信量等に基づいて自動的に初期設定されるものとしてもよい。
【0051】
[第1の実施形態の効果]
第1の実施形態に係る検知システムは、データを中継する中継部と、中継部が中継するデータが通過するコネクションのうち、所定のコネクションを選択する選択部と、中継部が中継するデータのうち、選択部により選択された所定のコネクションに対応するデータを抽出する抽出部と、抽出部が抽出したデータを解析して不正な通信を行うコネクションを検知する検知部と、を備える。
【0052】
このように、第1の実施形態に係る検知システムは、ネットワーク上を流れるパケットのうち、所定のコネクションに対応するパケットを選択して監視する。このため、ネットワーク上を流れるパケットをすべて監視する場合と比較して、パケットの監視に要する負荷を減じることができる。また、第1の実施形態に係る検知システムによれば、攻撃通信を行うコネクションが監視対象コネクションとして選択された場合には、ネットワーク上のすべてのパケットを監視対象としている場合と同じ精度で攻撃を検知することができる。また、Slow DoS攻撃のように多数のコネクションを用いて攻撃を実行する手法に対しては、高い確率で攻撃検知を実現することができる。
【0053】
また、第1の実施形態に係る検知システムは、選択部が選択した所定のコネクションを記憶する記憶部をさらに備え、選択部は、記憶部に記憶されるコネクションのうち、所定のウェブサイトを端点とするコネクションの総数が第1の所定数以下となるよう所定のコネクションを選択する。すなわち、第1の実施形態に係る検知システムでは、選択部は、解析コネクション枠の範囲内で各ウェブサイトに対応する監視対象コネクションを選択する。このため、解析装置にかかる処理負担を抑制しつつ、監視対象となっているウェブサイトに対してSlow DoS攻撃が発生した場合に高確率で攻撃を検知することができる。
【0054】
また、第1の実施形態に係る検知システムは、記憶部に記憶されるコネクションを更新する更新部をさらに備え、更新部は、記憶部に記憶されるコネクションが終了したとき、または、中継部が当該コネクションに対応するデータを所定の期間中継しなかったとき、当該コネクションを記憶部から削除する。このため、監視の必要がなくなったコネクションや監視の必要性が低いコネクションを迅速に監視対象からはずして効率的に監視対象を選択し、攻撃を検知することができる。
【0055】
第1の実施形態に係る検知システム、検知方法および検知プログラムは、特にSlow DoS攻撃のように大量の不正コネクションを発生させる攻撃の検知に有効である。Slow DoS攻撃の場合、攻撃者は特定のウェブサイト宛に大量の不正コネクションを確立し、そのコネクションを長時間維持する。それによって、ウェブサイトの同時処理可能なコネクションを消尽させる。このような場合には、ウェブサイトが接続しているコネクションの大部分が攻撃者による不正なセッションとなることも考えられる。第1の実施形態に係る検知システムでは、各ウェブサイトごとに解析コネクション枠を設けて、一定数のコネクションをミラーリングする。このため、一つのウェブサイトに対して多数の不正なコネクションが発生していれば、いずれかの不正なコネクションが監視対象となる可能性が高い。また、監視対象となったコネクションについてはすべての対応するパケットが解析対象となる。このため、高い確率で攻撃を検知することができる。
【0056】
また、第1の実施形態においては、所定のコネクションに対応するパケットをすべてミラーリングして解析するため、所定のコネクションに特有の攻撃パターンがある場合に、当該攻撃パターンを検知することが可能である。
【0057】
(第1の実施形態の変形例1−リアルタイムでの解析コネクション枠設定)
上の説明では、監視対象コネクションの上限値すなわち解析コネクション枠は予め設定するものとした。しかし、これに限定されず、たとえば、リアルタイムで監視対象コネクションの上限値を変化させるように構成してもよい。
【0058】
図8は、第1の実施形態の変形例1の検知システム1aの構成の一例を示す図である。
図8に示すように、変形例1の検知システム1aが備える中継装置10aは、算出部160をさらに備える。また、変形例1の検知システム1aが備える解析装置20aは、使用率情報収集通知部230をさらに備える。なお、変形例1にかかる検知システム1aの構成および機能は、特に説明しない限り第1の実施形態の検知システム1と同様である。
【0059】
変形例1の検知システム1aでは、使用率情報収集通知部230は、解析装置20aの計算資源の使用率を示す情報を定期的に収集する。そして、使用率情報収集通知部230は、収集した情報を、中継装置10aの算出部160に通知する。算出部160は、通知された使用率情報と、その時点で監視対象コネクションとして記憶されているコネクションの数とに基づき、監視対象コネクションとして設定できるコネクションの上限数を算出する。
【0060】
たとえば、算出部160は、以下の式(1)に基づき、上限数を算出する。
【数1】
ただし、式(1)中、Uは監視対象コネクションの上限値、pは計算資源の使用率、cはその時点で記憶されている監視対象コネクションの数を示す。
【0061】
算出部160は、上記のようにして算出した上限値の情報に基づき、各ウェブサイトに対して割り当てる解析コネクション枠を算出する。そして、算出部160は、上限値記憶部114aに記憶される解析コネクション枠の数値を更新する。
【0062】
なお、算出部160は、計算資源使用率としてたとえば、CPU使用率、メモリ使用率、または両者の組み合わせを使用することができる。
【0063】
このように、解析装置の資源の使用状況に応じて動的に解析コネクション枠を設定することで、解析装置の資源を有効活用して効率的に攻撃を検知することができる。
【0064】
(第2の実施形態)
第1の実施形態では、ネットワーク上を流れるパケットのうち特定のコネクションに対応するパケットを監視対象とした。第2の実施形態では、これに加えて、不正な通信が検知された場合には、当該不正な通信に対応するウェブサイトに対する監視を強化する。すなわち、第2の実施形態に係る検知システムでは、監視対象となっているウェブサイトごとに、不正な通信の検知状況に応じた監視重要度を設定する。そして、監視重要度の変動にあわせて、当該ウェブサイトを宛先または送信元とする監視対象コネクションの上限数を変動させる。すなわち、不正通信の検知に応じて、監視対象となるパケットのサンプリングレートを変動させる。このため、不正な攻撃が発生する可能性が高い通信(パケット、コネクション)の監視状態を動的に調整することができる。
【0065】
[第2の実施形態に係る検知システム1Aの構成の一例]
図9は、第2の実施形態に係る検知システム1Aの構成の一例を示す図である。
図9に示すように、第2の実施形態に係る検知システム1Aの構成は、概ね
図1に示す第1の実施形態に係る検知システム1の構成と同様である。ただし、第2の実施形態に係る検知システム1Aは、監視重要度算出部240Aおよび監視重要度記憶部212Aを備える点が、第1の実施形態に係る検知システム1と異なる。以下、第1の実施形態と同様の機能および構成については説明を省略する。
【0066】
第2の実施形態に係る検知システム1Aが備える中継装置10Aは、記憶部110A、中継部120A、選択部130A、抽出部140A、更新部150Aを備える。また、記憶部110Aは、コネクション記憶部111A、監視対象コネクション記憶部112A、ウェブサイト記憶部113A、上限値記憶部114Aを備える。これら各部の構成および機能は、第1の実施形態に係る同様の部分と同様である。ただし、中継装置10Aにおいては、更新部150Aにおける処理および上限値記憶部114Aに記憶される情報の構成が、第1の実施形態に係る更新部150における処理および上限値記憶部114に記憶される情報の構成と異なる。
【0067】
第2の実施形態に係る検知システム1Aが備える解析装置20Aは、記憶部210A、検知部220A、監視重要度算出部240Aを備える。記憶部210Aは、不正コネクション記憶部211Aと監視重要度記憶部212Aとを備える。第2の実施形態に係る解析装置20Aは、監視重要度算出部240Aおよび監視重要度記憶部212Aを備える点が第1の実施形態に係る解析装置20と異なる。
【0068】
中継装置10Aは、ネットワーク上に確立されるコネクションのうち所定のコネクションを監視対象とする。監視対象とするコネクションは、ウェブサイトごとに上限値が定められ、中継装置10Aは上限値の範囲内で監視対象を選択する。そして、中継装置10Aは、ネットワーク上を流れるパケットを受信して、監視対象であるコネクションに対応するパケットを抽出し、解析装置20Aにミラーリングする。解析装置20Aは、ミラーリングされたパケットを解析して、ウェブサイトに対する攻撃などを構成する不正な通信を検知する。これらの点は第1の実施形態と同様である。解析装置20Aは、不正な通信を検知すると、当該不正な通信の対象となっているウェブサイトの監視重要度をアップさせる。たとえば、受信したパケットからウェブサイトに対する攻撃を検知した場合、解析装置20Aは、当該ウェブサイトに対応づけて記憶されている監視重要度を増加させる。監視重要度は、ウェブサイトと対応付けて監視重要度記憶部212Aに記憶される。解析装置20Aは、監視重要度を更新した場合、中継装置10Aに通知する。中継装置10Aは、通知された監視重要度に応じて、上限値記憶部114Aに記憶される解析コネクション枠を更新する。そして、選択部130Aは更新後の解析コネクション枠に基づき、監視対象コネクションを選択する。
【0069】
図11は、第2の実施形態に係る検知システム1Aが備える解析装置20Aに記憶される監視重要度情報の構成の一例を示す図である。
図11に示すように、監視重要度記憶部212Aに記憶される監視重要度情報においては、「ウェブサイトID」と「監視重要度」とが対応づけられている。「ウェブサイトID」は、
図4に示したウェブサイト情報に含まれる「ウェブサイトID」と同様である。「監視重要度」は、各ウェブサイトに対する通信監視の重要性を示す値である。すなわち当該ウェブサイトに対する攻撃が発生する可能性の大小を示す値である。たとえば、ウェブサイトに対する攻撃が発生する可能性が高ければ監視重要度を高く設定し、ウェブサイトに対する攻撃が発生する可能性が低ければ監視重要度を低く設定する。
図11の例ではたとえば、「ウェブサイトID、W001」に対応付けて「監視重要度、10」が記憶されている。
【0070】
たとえば、検知システム1Aによる通信監視を開始する時に、ネットワーク上で通信が検知される各ウェブサイトにデフォルトで「5」の監視重要度を付与する。そして、通信監視の開始後、監視重要度算出部240Aは、不正な通信が検知されたウェブサイトの監視重要度を検知ごとに「5」増加させる。また、通信監視の開始後、監視重要度算出部240Aは、所定期間にわたって不正な通信が検知されなかったウェブサイトの監視重要度を所定期間経過ごとに「1」減少させる。このように、監視重要度算出部240Aは、各ウェブサイトにおいて不正が検知される可能性の大小に応じて監視重要度を変動させる。
【0071】
図12は、第2の実施形態に係る検知システム1Aが備える中継装置10Aに記憶される上限値情報の構成の一例を示す図である。
図12に示す第2の実施形態に係る上限値情報は、
図5に示す第1の実施形態に係る上限値情報と、「監視重要度」が含まれる点で異なる。
図12に示すように、第2の実施形態に係る上限値情報は、「ウェブサイトID」に対応づけて、「監視重要度」と「解析コネクション枠」とを含む。「ウェブサイトID」、「解析コネクション枠」は
図4,5等に示したものと同様である。
【0072】
[第2の実施形態における再割当処理の流れの一例]
図10は、第2の実施形態に係る検知方法における解析コネクション枠を更新する再割当処理の流れの一例を示すフローチャートである。
図10に示す再割当処理は、例えば
図6に示す処理と並行して実行される。なお、第2の実施形態においても、中継部120A、選択部130A、抽出部140Aにおける処理は、第1の実施形態の中継部120、選択部130、抽出部140と同様である。また、検知部220Aの処理も検知部220と同様である。
【0073】
なお、第2の実施形態に係る上限値記憶部114Aにおいては、たとえば、通信監視の開始時にすべてのウェブサイトに対応付けて「監視重要度、5」が付与される。この場合、すべてのウェブサイトの監視重要度が同じであるため、解析コネクション枠をすべてのウェブサイトに対して均等に割り当てる。たとえば、ウェブサイトの数が10、監視対象コネクションの上限値が100であれば、各ウェブサイトの解析コネクション枠を10とする。
【0074】
通信監視が継続して実行され、解析装置20Aの検知部220Aが不正な通信を検知したとする。たとえば、検知部220Aが、ウェブサイトID「W001」のウェブサイトを宛先とするコネクションID「C010」のコネクションにおいて不正な通信に属するパケットを検知したとする。すると、検知部220Aは、検知した不正なコネクションの情報を不正コネクション記憶部211Aに記憶する。監視重要度算出部240Aは、所定期間ごとに、不正な通信の検知有無を不正コネクション記憶部211Aを参照してチェックする。そして、不正な通信が検知されていれば、検知回数に応じて監視重要度記憶部212Aに記憶される監視重要度を増加させる。たとえば検知回数が1回であれば5、2回であれば10だけ監視重要度を増加させる。また、監視重要度算出部240Aは、不正な通信の検知がなければ監視重要度を1減少させる。
【0075】
更新後の監視重要度は中継装置10Aに通知される。中継装置10Aは、上限値記憶部114Aに記憶される「監視重要度」を通知された値に更新する。そして、上限値記憶部114Aに記憶される「解析コネクション枠」を更新後の監視重要度の値に対応する値となるよう更新する。
【0076】
図10を参照し、まず、監視重要度算出部240Aは、前回の再割当処理から所定時間が経過したか、または通信監視の開始から所定時間が経過したか、を判定する(ステップS901)。所定時間が経過していないと判定すると(ステップS901、否定)、監視重要度算出部240Aは、ステップS901に戻って判定を繰り返す。他方、所定時間が経過したと判定すると(ステップS901、肯定)、監視重要度算出部240Aは、所定時間内に不正な通信を検知したか否かを判定する(ステップS902)。不正な通信を検知したと判定すると(ステップS902、肯定)、監視重要度算出部240Aは、検知した不正な通信の数に応じて監視重要度記憶部212Aに記憶される監視重要度を増加させて更新する(ステップS903)。他方、不正な通信を検知していないと判定すると(ステップS902、否定)、監視重要度算出部240Aは、監視重要度記憶部212Aに記憶される監視重要度を所定の数だけ減少させて更新する(ステップS904)。
【0077】
そして、監視重要度算出部240Aは更新後の監視重要度を中継装置10Aに通知する(ステップS905)。中継装置10Aでは更新部150Aが更新後の監視重要度の通知を受け、上限値記憶部114Aに記憶された監視重要度を更新する。さらに、更新部150Aは、更新後の監視重要度に応じた解析コネクション枠を、ウェブサイトIDに対応付けて算出し記憶する(ステップS906)。これによって、解析コネクション枠を更新する処理が終了する。
【0078】
なお、第2の実施形態においては、ミラーリングされたパケットを解析することで不正な攻撃を受けているウェブサイトを特定するものとした。ただし、これに限定されず、たとえば、不正な攻撃を受けているウェブサイトの情報を外部のセキュリティシステムから取得して、当該ウェブサイトの監視重要度のスコアを増加させるように構成してもよい。また、不正な攻撃を検知したシステムに応じて増加させるスコアの値を変動させてもよい。たとえば、システムAから通知された不正な攻撃を受けているウェブサイトについてはスコアを1増加させ、システムBから通知された不正な攻撃を受けているウェブサイトについてはスコアを5増加させる等、システムの信頼性に応じた調整をおこなってもよい。
【0079】
[第2の実施形態の効果]
このように、第2の実施形態に係る検知システムは、各ウェブサイトを宛先または送信元とする不正な通信の検知回数に応じて変化する、各ウェブサイトの監視重要度を算出する算出部をさらに備え、記憶部はさらに、各ウェブサイトに対応づけて、当該ウェブサイトの監視重要度と、記憶部に記憶可能なコネクションの数と、を記憶し、選択部は、監視重要度に応じて変動する第1の所定数以下となるよう所定のコネクションを選択する。このため、第2の実施形態に係る検知システムは、不正な通信の検知回数に応じて各ウェブサイトに割り当てられる監視対象コネクションの数を調整することができる。このため、不正な通信が多く、監視の必要性が高いウェブサイトの監視対象コネクションを増やして、監視を強化することができる。また、不正な通信が生じていないウェブサイトについては、監視対象コネクションを減らして、検知システムの負荷を減じることができる。
【0080】
このように、第2の実施形態に係る検知システム1Aでは、不正な通信が発生したウェブサイトが送受信するパケットのサンプリングレートを上げるのと同じ効果が得られる。また、通信の監視に係る解析装置20Aの負荷を抑制しつつ、不正な通信が発生しているウェブサイトについて監視対象とするコネクションの数を増やすことができる。このため、第2の実施形態に係る検知システム1Aにおいては、複数のIPアドレスから1つのウェブサイトが攻撃を受けている場合などに、複数の攻撃元IPアドレスを効率的に検知することができる。
【0081】
(第3の実施形態)
第2の実施形態では、ウェブサイトに対応付けて監視重要度を設定し、不正な通信の有無に応じて監視重要度を変動させた。そして、監視重要度に応じて解析コネクション枠を変動させることで、ネットワーク上の不正な通信の有無に応じて監視を強化するものとした。第3の実施形態では、ウェブサイトに対応付けて監視重要度を設定するのではなく、コネクションに対応付けて監視重要度を設定する。そして、第3の実施形態では監視重要度に基づいて、監視の必要性が低いコネクションを監視対象コネクションから削除する。
【0082】
[第3の実施形態に係る検知システム1Bの構成の一例]
図13は、第3の実施形態に係る検知システム1Bの構成の一例を示す図である。
図13に示す検知システム1Bの構成は、
図9に示す第2の実施形態に係る検知システム1Aの構成と同様である。ただし、第3の実施形態においては、監視重要度算出部240Bにおける処理と、監視重要度記憶部212Bに記憶する情報の構成とが、第2の実施形態の監視重要度算出部240Aにおける処理と、監視重要度記憶部212Aに記憶する情報の構成と異なる。以下、第1、第2の実施形態と同様の機能および構成については説明を省略する。
【0083】
第3の実施形態に係る検知システム1Bが備える中継装置10Bは、記憶部110B、中継部120B、選択部130B、抽出部140B、更新部150Bを備える。また、記憶部110Bは、コネクション記憶部111B、監視対象コネクション記憶部112B、ウェブサイト記憶部113B、上限値記憶部114Bを備える。これら各部の構成および機能は、第2の実施形態に係る同様の部分と同様である。
【0084】
第3の実施形態に係る検知システム1Bが備える解析装置20Bは、記憶部210B、検知部220B、監視重要度算出部240Bを備える。記憶部210Bは、不正コネクション記憶部211Bと監視重要度記憶部212Bとを備える。
【0085】
[第3の実施形態に係る検知システム1Bに記憶される情報]
図15は、第3の実施形態に係る検知システム1Bが備える解析装置20Bに記憶される監視重要度情報の構成の一例を示す図である。
図15に示す情報は、監視重要度記憶部212Bに記憶される。監視重要度情報は、「コネクションID」に対応づけて「スコア」と「監視重要度」とを含む。「コネクションID」は、たとえば
図2に示した「コネクションID」と同様である。「スコア」は、各コネクションに対応して検知された不正通信が疑われる通信パターンの検知回数を評価する評価値である。「監視重要度」は、各コネクションにおける通信を監視する重要度を示す値である。すなわち、「監視重要度」は、当該コネクションにおいて不正な通信が発生する可能性を評価した値である。第3の実施形態における監視重要度は、第2の実施形態における監視重要度とは異なる方法で算出する。
【0086】
第3の実施形態に係る監視重要度算出部240Bは、検知部220Bが検知した不正通信が疑われる通信パターンの検知回数に応じて、各コネクションをスコアリングする。そして、監視重要度算出部240Bは、各コネクションのスコアに応じて監視重要度を算出する。監視重要度算出部240Bが算出したスコアと監視重要度とは、監視重要度記憶部212Bに記憶される。監視重要度算出部240Bは、スコアが第1の閾値を超えるコネクションは不正コネクションとして中継装置10Bに通知する。また、監視重要度算出部240Bは、スコアに応じて監視重要度を算出する。そして、監視重要度算出部240Bは、算出した監視重要度が第2の閾値を下回る場合、当該監視重要度のコネクションを中継装置10Bに通知する。中継装置10Bは、通知されたコネクションを監視対象コネクションから削除する。
【0087】
[第3の実施形態における監視重要度の算出処理]
図14は、第3の実施形態に係る監視重要度の算出処理の流れの一例を示すフローチャートである。監視重要度算出部240Bは、通信監視が開始してからまたは前回の監視重要度算出処理から所定時間が経過したか否かを判定する(ステップS1301)。所定時間が経過していないと判定した場合は(ステップS1301、否定)、監視重要度算出部240Bは、ステップS1301を繰り返す。所定時間が経過したと判定した場合は(ステップS1301、肯定)、監視重要度算出部240Bは、各監視対象コネクションについて所定時間内に不正な通信が検知されたか否かを判定する(ステップS1302)。不正な通信が検知されたと判定した場合(ステップS1302、肯定)、監視重要度算出部240Bは、当該コネクションのコネクションIDに対応付けて記憶されているスコアを、不正な通信が検知された回数に応じて増加させる(ステップS1303)。たとえば、監視重要度算出部240Bは、不正な通信が2回発生していれば、2×1=2だけスコアを増加させる。他方、不正な通信が検知されていないと判定した場合(ステップS1302、否定)、監視重要度算出部240Bは、該当するコネクションのコネクションIDに対応付けて記憶されているスコアを所定値だけ減少させる(ステップS1304)。たとえば、監視重要度算出部240Bは、スコアを1減少させる。
【0088】
そして、監視重要度算出部240Bは、減少または増加させて更新した後のスコアが所定の閾値(Th1)より大きいか否かを判定する(ステップS1305)。スコアが所定の閾値(Th1)以下であると判定した場合(ステップS1305、否定)、監視重要度算出部240Bは、スコアに基づき監視重要度を算出する(ステップS1306)。監視重要度はたとえば、その時点でのスコアsを、通信監視の開始時点からの経過時間t(秒)で除した値(s/t)とする。
【0089】
ここで、スコアを、通信開始の開始時点からの経過時間tで除した値としたのは、ウェブサイトの監視重要度は時間経過で変化しないが、コネクションの重要度は時間経過とともに低下することがあるためである。また、長時間かけてスコアが増加したコネクションよりも短時間でスコアが増加したコネクションの方が不正コネクションである可能性が高いためである。なお、コネクションの重要度が時間経過によってもあまり低下しないと想定される場合には、経過時間でスコアsを除さずに、スコアsをそのまま監視重要度としてもよい。
【0090】
なお、tで除した値を監視重要度とする場合、上述のスコアを減少させる処理は実施しなくてもよい。また、スコアを減少させる処理を一定時間ごとに実施するのであれば、監視重要度はtで除した値としなくてもよい。
【0091】
監視重要度算出部240Bは算出した監視重要度を監視重要度記憶部212Bに格納する。そして、監視重要度算出部240Bは、算出した監視重要度が所定の閾値(Th2)よりも小さいか否かを判定する(ステップS1307)。監視重要度が所定の閾値(Th2)以上であると監視重要度算出部240Bが判定した場合(ステップS1307、否定)、ステップS1301に戻る。他方、監視重要度が所定の閾値(Th2)よりも小さいと判定した場合(ステップS1307、肯定)、監視重要度算出部240Bは、その旨を中継装置10Bに通知する(ステップS1308)。通知を受けた中継装置10Bの更新部150Bは、通知された監視重要度に対応するコネクションを監視対象コネクション記憶部112Bに記憶された監視対象コネクションから削除する(ステップS1309)。
【0092】
ステップS1305に戻り、監視重要度算出部240Bは、スコアが所定の閾値(Th1)より大きいと判定した場合(ステップS1305、肯定)、当該スコアに対応づけられているコネクションを不正コネクションとして検知する(ステップS1310)。そして、監視重要度算出部240Bは、検知した不正コネクションを中継装置10Bに通知する(ステップS1311)。中継装置10Bでは、通知を受けた中継部120Bが、通知された不正コネクションを介した通信を遮断する(ステップS1312)。これによって、監視重要度算出処理は終了する。
【0093】
なお、
図14の例では、監視重要度が所定の閾値を下回ると直ちに当該コネクションを監視対象コネクションから削除するものとした。ただし、これに限られず、当該コネクションの情報を一時的に記憶しておき、選択された監視対象コネクションの数が解析コネクション枠に達したときに、監視重要度が所定の閾値を下回ったコネクションを削除するように構成してもよい。
【0094】
また、解析装置20Bが監視重要度を中継装置10Bに通知するタイミングも特に限定されない。たとえば、監視重要度の更新の有無にかかわらず、所定期間ごとに解析装置20Bから中継装置10Bに通知するようにしてもよい。また、スコアに変動があるごとに、解析装置20Bから中継装置10Bに通知するようにしてもよい。
【0095】
また、
図14の例では、解析装置20Bは、所定時間ごとに算出処理を実行するものとしたが、これに限られず、不正な通信を検知するごとに、スコアおよび監視重要度を算出するようにしてもよい。
【0096】
[第3の実施形態の効果]
このように、第3の実施形態に係る検知システムは、各コネクションに対応する不正な通信が疑われる通信パターンの検知回数に応じて変化する、各コネクションの監視重要度を算出する算出部をさらに備え、記憶部はさらに、各コネクションに対応づけて、当該コネクションの監視重要度を記憶し、更新部は、監視重要度が所定の閾値を下回ったコネクションを記憶部から削除する。このため、所定期間にわたって不正な通信が検知されないコネクションについては、監視対象コネクションから削除して、他のコネクションを監視対象とすることができ、効率的な通信監視を実現できる。
【0097】
(第4の実施形態)
上記第1〜第3の実施形態においては、監視対象コネクションを選択する手法は特に限定せず、解析コネクション枠の範囲内で監視対象コネクションを追加できるものとした。すなわち、第1〜第3の実施形態においては、検知システムは新しいコネクションを検知するごとに、解析コネクション枠に余裕があれば、監視対象コネクションに追加する。しかし、たとえば、検知されたコネクションを検知された順番に監視対象としていった場合、攻撃を効率的に検知できない場合も考えられる。
【0098】
図16は、第1〜第3の実施形態に係る検知方法において、監視対象となるコネクションが偏る場合について説明するための図である。
図16では、中継装置において、所定のウェブサイトに対応して、順番にコネクションC1〜C1000の1000個のコネクションが検知されたものとする。この場合に、ウェブサイトに対応して設定されている解析コネクション枠が「5」であるとする。すると、中継装置は、検知された順番にコネクションC1,C2,C3,C4,C5を監視対象コネクションとする。この場合、コネクションC111〜C200において攻撃が発生したとする。コネクションC111〜C200は監視対象となっていないため、検知システムは攻撃を検知することができない。
【0099】
これに対して、監視対象コネクションが順次検知されるコネクションの一部に偏らないように監視対象コネクションを選択することが考えられる。たとえば、中継装置が新しいコネクションを検知した場合に、当該コネクションを監視対象コネクションとする確率を予め設定しておくことができる。たとえば、中継装置が新しいコネクションを検知すると、解析コネクション枠に空きがあれば、当該コネクションを20%の確率で監視対象コネクションとする。このようにすれば、監視対象コネクションが一部に偏ることがなく、効率的に不正なコネクションを検知することができる。
【0100】
図17は、第4の実施形態において、監視対象となるコネクションの偏りが抑制されることを説明するための図である。
図17の例では、監視対象コネクションとなっているコネクションを二重枠線で示す。つまり、
図17の例では、監視対象コネクションは、コネクションC56,C180,C360,C780,C950である。このように監視対象コネクションを偏りなく選択することで、不正なコネクションの検知率を上げることができる。たとえば、攻撃がコネクションC111〜C200において発生したとする。この場合でも、少なくともコネクションC180が監視対象コネクションとなっているため、不正な通信を検知できる。そして、不正を検知した場合に不正な通信に対応するウェブサイトの解析コネクション枠を増加させる第2の実施形態のような構成をとれば、不正な通信の検知に応じてC111〜C200中のC180以外のコネクションも監視対象とすることができる。
【0101】
図18は、第4の実施形態に係る検知システム1Cの構成の一例を示す図である。第4の実施形態に係る検知システム1Cは概ね第1の実施形態に係る検知システム1と同様の構成である。ただし、検知システム1Cは、コネクション記憶部および上限値記憶部を備えない。代わりに、検知システム1Cは、確率記憶部114Cを備える点が、第1の実施形態に係る検知システム1と異なる。
【0102】
第4の実施形態に係る検知システム1Cは、中継装置10Cと解析装置20Cとを備える。中継装置10Cは、記憶部110C、中継部120C、選択部130C、抽出部140C、更新部150Cを備える。記憶部110Cは、監視対象コネクション記憶部112C、ウェブサイト記憶部113C、確率記憶部114Cを備える。また、解析装置20Cは、記憶部210Cと検知部220Cとを備え、記憶部210Cは不正コネクション記憶部211Cを備える。中継部120C、抽出部140C、更新部150Cの処理は、第1の実施形態に係る中継部120、抽出部140、更新部150と同様である。また、解析装置20Cの各部の処理も第1の実施形態に係る解析装置20と同様である。
【0103】
第4の実施形態に係る検知システム1Cでは、選択部130Cは、中継部120Cから新しく受信したパケットを受け取るとコネクション情報を抽出する。そして、選択部130Cは、当該コネクション情報が監視対象コネクション記憶部112Cに記憶されていない場合、確率記憶部114Cに記憶された確率で当該コネクション情報を選択する。
【0104】
図19は、第4の実施形態に係る検知システム1Cが記憶する確率情報の構成の一例を示す図である。
図19に示すように、確率記憶部114Cは、「ウェブサイトID」に対応付けて「選択確率」を記憶する。「選択確率」とは、対応するウェブサイトを宛先または送信元とするコネクションを新たに監視対象コネクションとして選択する確率である。選択部130Cは、確率記憶部114Cに記憶された確率に基づき、監視対象コネクションを選択する。
【0105】
このように構成した場合、新しいコネクション情報を含むパケットの受信と同時に監視対象コネクションとして選択するか否かの処理を実行でき、監視対象コネクション以外のコネクションの情報は記憶しておかなくともよい。このため、コネクション記憶部は設けなくてよい。また、選択確率をすべてのウェブサイトに対して一律に設定するのであれば、確率記憶部114Cも設けなくともよい。
【0106】
また、選択確率は固定とせずともよく、検知システム1Cの負荷に応じて動的に設定してもよい。たとえば、第2の実施形態のように、ウェブサイトごとに監視重要度を設定する場合は、監視重要度に対応させてウェブサイトごとに選択確率を設定してもよい。
【0107】
なお、監視対象コネクションの選択処理を行うタイミングは、第1の実施形態と同様、スリーウェイハンドシェイクの完了時点や、SYNパケットの受信時点などでもよい。また、第4の実施形態と第1〜第3の実施形態を組み合わせ、選択確率を用いて監視対象コネクションを選択するとともに、解析コネクション枠内で選択するようにしてもよい。
【0108】
[第4の実施形態の効果]
第4の実施形態における検知システムにおいては、選択部は、中継部が中継するデータが通過するコネクションから、所定の確率で所定のコネクションを選択する。このため、検知されたコネクションを偏りなく選択することができ、不正なコネクションの検知率を向上させることができる。
【0109】
また、第4の実施形態のように検知システムを構成した場合、受信したパケットから新しいコネクションを検知するごとに、所定の確率で監視対象コネクションとして選択すればよい。このため、各コネクションについての情報を蓄積しておかなくともよい。したがって、コネクション記憶部を設けなくともよい。このため、記憶部の使用量を減じることができる。
【0110】
(変形例)
上記第1〜第4の実施形態においては、検知システムは中継装置と解析装置とを備え、中継装置でミラーリングしたパケットを解析装置が解析するものとした。しかし、中継装置と解析装置との機能の分担や、パケットの処理はこれに限らず、任意に変更してもよい。
図20は、第1〜第4の実施形態に係る検知システムの構成の変形例について説明するための図である。
【0111】
図20の(1)に示すように、中継装置と解析装置とを別個に設けることができる。そして、中継装置を経由するパケットのうち、監視対象コネクションに対応するパケット、すなわち一部のコネクションに帰属するパケットのみを、中継装置が解析装置に対してミラーリングし、残りのパケットについてはそのまま中継装置が本来の宛先に中継することができる。そして、ミラーリングの対象とならないパケットは中継装置がそのまま本来の宛先に中継する。この場合、上に説明した第1〜第3の実施形態のようになる。
【0112】
次に、
図20の(2)に示すように、中継装置が解析装置に対して監視対象コネクションに対応するパケットをミラーリングするのではなく、当該パケットを転送するように構成してもよい。そして、解析装置側で解析対象とするパケットの情報を抽出した上で、パケットを本来の宛先に送信してもよい。
【0113】
また、
図20の(3)に示すように、中継装置と解析装置とを一体の装置として構成してもよい。そして、装置内で、監視対象コネクションに対応するパケットを抽出して解析するように構成してもよい。
【0114】
また、上記実施形態においては、中継装置が監視対象コネクションを選択する選択部や、コネクションを記憶する記憶部等を備えるものとした。これに限定されず、複数の中継装置を一括して制御するネットワークコントローラを設けて、監視対象コネクションの選択等の処理を行うものとしてもよい。
【0115】
(プログラム)
図21は、開示の技術に係る検知プログラムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。
図21に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU(Central Processing Unit)1020と、ハードディスクドライブ1080と、ネットワークインタフェース1070とを有する。コンピュータ1000の各部はバス1100によって接続される。
【0116】
メモリ1010は、
図21に例示するように、ROM1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。
【0117】
ここで、
図21に例示するように、ハードディスクドライブ1080は、例えば、OS1081、アプリケーションプログラム1082、プログラムモジュール1083、プログラムデータ1084を記憶する。すなわち、開示の実施の形態に係る検知プログラムは、コンピュータによって実行される指令が記述されたプログラムモジュール1083として、例えばハードディスクドライブ1080に記憶される。
【0118】
また、検知プログラムによる情報処理に用いられるデータは、プログラムデータ1084として、例えばハードディスクドライブ1080に記憶される。そして、CPU1020が、ハードディスクドライブ1080に記憶されたプログラムモジュール1083やプログラムデータ1084を必要に応じてRAM1012に読み出し、各種の手順を実行する。
【0119】
なお、検知プログラムに係るプログラムモジュール1083やプログラムデータ1084は、ハードディスクドライブ1080に記憶される場合に限られない。例えば、プログラムモジュール1083やプログラムデータ1084は、着脱可能な記憶媒体に記憶されてもよい。この場合、CPU1020は、ディスクドライブなどの着脱可能な記憶媒体を介してデータを読み出す。また、同様に、検知プログラムに係るプログラムモジュール1083やプログラムデータ1084は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。この場合、CPU1020は、ネットワークインタフェース1070を介して他のコンピュータにアクセスすることで各種データを読み出す。
【0120】
(その他)
なお、本実施形態で説明した検知プログラムは、インターネット等のネットワークを介して配布することができる。また、検知プログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読取可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【0121】
なお、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0122】
上記の実施形態やその変形は、本願が開示する技術に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。