以下に、本願に係る検出システム、検出方法、検出プログラム、蓄積装置および蓄積方法の実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係る検出システム、検出方法、検出プログラム、蓄積装置および蓄積方法が限定されるものではない。
[第1の実施の形態]
以下では、第1の実施の形態に係る検出システムの構成および処理を説明し、最後に第1の実施の形態による効果を説明する。
[第1の実施の形態に係る検出処理の一例]
まず、図1を用いて、第1の実施の形態に係る検出システム100による検出処理の一例を説明する。図1は、第1の実施の形態に係る検出システム100による検出処理の一例を説明する図(1)である。図1に示すように、検出システム100は、制御装置110、中継装置120、検出装置130を有する。
また、検出システム100には、インターネットを介して、不正通信による攻撃の標的対象であるウェブサーバ30と、ウェブサーバ30と通信を行うクライアントとに接続される。クライアントには、ウェブサーバ30に正常な通信(ここでは、攻撃性を有するような不正な通信ではない通信を意味する)を試みる端末10と、ウェブサーバ30に不正な通信を試みる攻撃生成端末201〜203とが含まれる。図1に示すように、検出システム100は、端末10や、攻撃生成端末201〜203と、ウェブサーバ30との通信の経路上となる中継網(通信キャリア網や、ISP((Internet Service Provider)網)内に配置される。なお、図1での図示は省略するが、検出システム100は、端末10や、攻撃生成端末201〜203とは境界ルータを介して接続され、ウェブサーバ30とは収容ルータを介して接続される。
また、以下の説明において、端末10や攻撃生成端末201〜203と、ウェブサーバ30との間の通信は、トラヒックTn(nは任意の数)として図示される。例えば、図1に示すように、端末10とウェブサーバ30との間の通信は、トラヒックT1によって示される。また、攻撃生成端末201とウェブサーバ30との間の通信は、トラヒックT2によって示される。また、攻撃生成端末202とウェブサーバ30との間の通信は、トラヒックT3によって示される。また、攻撃生成端末203とウェブサーバ30との間の通信は、トラヒックT4によって示される。また、検出システム100と接続される端末10や、攻撃生成端末201〜203は、図示された数に限られず、さらに多くの数が接続されてもよい。また、攻撃生成端末201〜203を区別する必要のないときは、攻撃生成端末20と表記する。
ここで、検出システム100を構成する各装置について説明する。検出システム100に係る制御装置110は、中継装置120や検出装置130の処理を制御する情報処理装置である。具体的には、制御装置110は、端末10や攻撃生成端末20と、ウェブサーバ30との間の通信量に関する情報を中継装置120から受信する。また、制御装置110は、ウェブサーバ30が確立しているセッション数に関する情報をウェブサーバ30から、またはウェブサーバ30の通信リソースを監視する外部装置を経由して受信する。そして、制御装置110は、受信した情報に基づいて、ウェブサーバ30のリソース(通信資源やサーバ資源)に関する異常検知を行う。そして、制御装置110は、異常を検知した場合には、後述する所定の処理を実行させるために、中継装置120および/または検出装置130に指示を送信する。
検出システム100に係る中継装置120は、端末10および攻撃生成端末20からの通信を含む、ウェブサーバ30との間の通信を中継する情報処理装置(またはネットワーク装置)である。中継装置120は、ウェブサーバ30の通信状況に異常を検知した制御装置110から送信される指示に基づいて、トラヒックに対するミラーリング(mirroring)を実行して検出装置130にトラヒックを送る。ここでミラーリングとは、対象のトラヒックを複製して異なる場所にリアルタイムに送信することをいう。例えば、中継装置120が中継するトラヒックを検出装置130へミラーリングすることにより、検出装置130は、かかるトラヒックに含まれる通信データについて分析等の処理を実行できる。また、中継装置120は、検出処理により不正なセッションが特定された場合には、特定された不正なセッションを遮断させるよう、セッションに対するフィルタ処理を実行する。
検出システム100に係る検出装置130は、不正なセッションを検出する情報処理装置である。具体的には、検出装置130は、中継装置120からミラーリングにより送信されてきたトラヒックに含まれる通信データを所定の検出ルールに基づいて分析することで、不正なセッションを検出する。そして、検出装置130は、検出した不正セッションを特定する情報を制御装置110へ送信する。詳しくは後述するが、検出装置130は、少なくとも、TCP/IPプロトコルスタック(Protocol stack)における情報として、送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号の情報等を特定する。そして、検出システム100は、不正セッションの検出処理においては既知の技術を利用し、トランスポート層のヘッダ情報の詳細を分析すること等により不正なセッションを検出する。
以下では、検出システム100が実行する検出処理の一例について、図1乃至図3を用いて詳細に説明する。図1に示すように、検出システム100は、端末10および攻撃生成端末201〜203からウェブサーバ30へ送信されるトラヒックT1〜T4を中継する。このとき、中継装置120は、ウェブサーバ30への通信量を監視する(ステップS11)。そして、中継装置120は、通信量に関する情報を制御装置110に通知する(ステップS12)。
また、制御装置110は、ウェブサーバ30から確立したセッション数の通知を受け付ける(ステップS13)。制御装置110は、中継装置120から送信される通信量、およびウェブサーバ30から通知されるセッション数に関する情報を定期的にまたは逐次取得する。なお、制御装置110は、送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号、プロトコル番号の5タプル(tuple)の組が同じパケット群を同一セッションと判定する。このように、検出システム100の平常時は、制御装置110が通信量およびセッション数に関する情報を取得し、取得された情報に基づいて、以下に説明する「監視モード」に移るか否かを判定している状態をいう。
制御装置110は、取得された情報に基づいて、トラヒックの異常を検知する(ステップS14)。ここで、制御装置110は、取得された情報が所定の条件を満たすことにより、監視対象であるウェブサーバ30のリソースに異常が発生したことを検知する。具体的には、制御装置110は、中継装置120から通知される通信量が所定値より少ない、または平常時の通信量に対する増加分が所定値より少ないにもかかわらず、ウェブサーバ30から通知される確立したセッション数が所定の閾値より多い場合に、ウェブサーバ30のリソースに異常が発生したと判断する。すなわち、中継装置120が平常時の通信量を観測しているにもかかわらず、ウェブサーバ30が確立しているセッション数が平常時よりも多くなっているということは、通信量の増大を引き起こさずにセッション数を増大させるような不正通信による攻撃をウェブサーバ30が受けている可能性が高いと想定されることによる。または、制御装置110は、単純にウェブサーバ30から通知される確立したセッション数が所定の閾値より多い場合に、ウェブサーバ30のリソースに異常が発生したと判断することとしてもよい。または、制御装置110は、ウェブサーバ30が同時に確立可能な最大セッション数に対して確立されているセッション数の割合が所定の閾値を超えた場合に異常が発生したと判断することとしてもよい。
制御装置110は、異常を検知した場合、中継装置120に対してトラヒックのミラーリングを行うように指示をする(ステップS15)。中継装置120は、指示に従い、検出装置130にトラヒックをミラーリングする(ステップS16)。すなわち、検出装置130は、ミラーリングにより中継装置120を介してウェブサーバ30との間を流れるトラヒックを受信することで、監視するトラヒックに含まれる通信データと同一の通信データを取得し、取得された通信データから不正セッションの検出処理を試みる。このように、中継装置120が検出装置130に対してトラヒックのミラーリングを開始した状態を、検出システム100における「監視モード」と表記する。
次に、図2を用いて、第1の実施の形態に係る検出システム100による検出処理のうち、図1から継続する処理について説明する。図2は、第1の実施の形態に係る検出システム100による検出処理の一例を説明する図(2)である。
監視モードの状態において、検出装置130が不正セッションを検出した場合、検出装置130は、制御装置110に不正セッションを検出した結果を通知する(ステップS21)。制御装置110は、かかる通知を受信した場合、中継装置120に対して、特定されたセッションに該当するクライアントの送信元IPアドレスに対してフィルタをかけるよう指示を送信する(ステップS22)。そして、中継装置120は、指示に従い、フィルタを実行する(ステップS23)。フィルタが実行された場合、中継装置120は、特定したセッションを切断することができ、また以後の同一IPアドレスからの不正なセッションの確立の試行を防止することができる。このように、中継装置120が検出された不正なセッションにフィルタを実施した状態を、検出システム100における「防御モード」と表記する。
なお、上述のように、検出装置130は、トラヒックに係る不正なセッションの検出に関して、既知の種々のロジックを用いることができる。一例として、検出装置130は、クライアントとサーバの間を流れるトラヒックから各パケットのIPヘッダ情報、およびTCPヘッダ情報を取得し、セッション単位でTCPレイヤでの挙動を解析する。そして、検出装置130は、あらかじめ決めた検出ルールセットに基づいて、通常ユーザのセッションと異なる挙動をするセッションを検出して、検出されたセッションを不正なセッションと推定する。
また、制御装置110は、検出装置130から不正なセッションが検出された旨の通知を受ける際には、不正なセッションを特定する情報(例えば、送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号など)を受信する。そして、制御装置110は、受信した情報に基づいて、監視対象であるウェブサーバ30に関するセッションのうち、特定された不正なセッションに該当するクライアントの送信元IPアドレスに対するフィルタの指示を中継装置120に送信する。また、制御装置110は、ウェブサーバ30に対して、不正なセッションに対応するクライアント(ここでは、攻撃生成端末201〜203)との間に確立したセッション、または、フィルタするIPアドレスに該当するセッションすべてを解放する制御信号であるコネクションリセット命令(TCPリセット信号)をクライアントおよび/またはウェブサーバ30へ送信する(ステップS24)。これにより、ウェブサーバ30と攻撃生成端末201〜203とのセッションが解除され、クライアントおよび/またはウェブサーバ30内に残っているセッションに関するプロセスが終了する。すなわち、図2に示すように、ウェブサーバ30と攻撃生成端末201〜203との間のトラヒックT2〜4が途絶える。このように、確立していた不正なセッションが解放されることにより、検出システム100は、ウェブサーバ30のセッションに関するリソースを回復させることができる。
次に、図3を用いて、第1の実施の形態に係る検出システム100による検出処理のうち、図2から継続する処理について説明する。図3は、第1の実施の形態に係る検出システム100による検出処理の一例を説明する図(3)である。
図3に示すように、中継装置120は、中継するトラヒックに関する通信状況を制御装置110に通知する(ステップS30)。また、検出装置130は、ミラーリングしているトラヒックに関しての検出状況を制御装置110に通知する(ステップS31)。そして、制御装置110は、双方の装置から通知された各情報により、現在のトラヒックの状況が所定の状態にあるか否かを判定する。例えば、制御装置110は、中継装置120から、所定時間フィルタの対象となっているIPアドレスからの通信が所定量以下となっている旨の情報を取得する。具体的には、制御装置110は、1つのIPアドレスあたりからの、または、フィルタの対象となっていた前IPアドレスからの通信が、所定量以下(0の場合を含む)となっている状態が所定時間継続された旨の情報を中継装置120から取得する。また、制御装置110は、所定時間、検出装置130がミラーリングしているトラヒックに関して不正なセッションを検出していない旨の情報を取得する(所定時間不正なセッションの検出通知を受けないことでもよい)。そして、制御装置110は、取得した各情報に基づいて、不正通信による攻撃が止んだことを判定する。そして、制御装置110は、中継装置120に対してトラヒックのミラーリングを解除する指示を送信する(ステップS32)。かかる指示を受け付けた中継装置120は、検出装置130へのミラーリングを解除する(ステップS33)。
さらに、所定時間後、制御装置110は、中継装置120に指示していたフィルタについて、解除する指示を送信する(ステップS34)。かかる指示により、中継装置120は、実施していたフィルタを解除する。そして、検出システム100は、制御装置110が通信量およびセッション数に関する情報を逐次取得するという平常時の状態に戻り、ウェブサーバ30に対するトラヒックの観測を継続する。
なお、上記のステップS30〜32において、制御装置110は、中継装置120および検出装置130から所定の通知を受け、かかる通知に含まれる情報に基づいて、ミラーリングやフィルタを解除する指示を出す例について説明した。ここで、制御装置110は、中継装置120および検出装置130から送信される情報のうち、いずれか一方を判断要素として採用してもよく、また制御装置110から中継装置120へ送信する指示をいずれか一方のみとしてもよい。すなわち、制御装置110は、検出装置130が不正な通信を検出することなく、および/または中継装置120がフィルタしている通信に該当する送信元(例えば、IPアドレスにより判別される)からの通信が所定量以下である状態が所定時間継続された場合に、ミラーリングを解除させる指示、および/またはフィルタを解除させる指示を中継装置120へ送信するようにしてもよい。具体的には、制御装置110は、検出装置130が不正な通信を検出しない場合に、ミラーリングを解除させること、フィルタを解除させること、もしくは、ミラーリング及びフィルタを解除させることのいずれかを指示することができる。また、制御装置110は、フィルタしている通信に該当する送信元からの通信が所定量以下である状態が所定時間継続された場合に、ミラーリングを解除させること、フィルタを解除させること、もしくは、ミラーリング及びフィルタを解除させることのいずれかを指示することができる。また、制御装置110は、検出装置130が不正な通信を検出しない、かつ、フィルタしている通信に該当する送信元からの通信が所定量以下である状態が所定時間継続された場合に、ミラーリングを解除させること、フィルタを解除させること、もしくは、ミラーリング及びフィルタを解除させることのいずれかを指示することができる。このように、制御装置110は、通信の監視状況、もしくは監視対象の動向に応じて、柔軟にミラーリング及びフィルタの設定を適切な状態に変更させることができる。
このように、第1の実施の形態に係る検出システム100は、監視対象であるウェブサーバ30との通信を中継する中継装置120と、検出装置130と、制御装置110とを備える。制御装置110は、ウェブサーバ30のリソースに関する情報に異常を検知した場合に、中継装置120によって中継される通信を検出装置130にミラーリングさせる指示を送信する。検出装置130は、制御装置110によって送信された指示に従って中継装置120からミラーリングされた通信の中から、不正な通信を検出する。そして、制御装置130は、検出装置130による検出処理の結果に基づいて、特定された不正な通信を遮断させる指示を中継装置120に送信する。
すなわち、第1の実施の形態に係る検出システム100は、常時通信に関する精密な検出を行わずとも、ウェブサーバ30の通信量と、ウェブサーバ30のリソース(例えば、セッション数)に関する情報とを定期的にまたは逐次取得することにより、通信に対して精密な検出を行うか否かを動的に判定する。これは、不正通信による攻撃の手法の一例であるSlowDoS攻撃に有用な処理手法であるといえる。例えば、SlowDoS攻撃は、頻繁に発生している可能性は高くないため、常時監視の必要性は低いという特徴がある。また、SQLインジェクションやサーバの脆弱性を突いたマルウェアの埋込みなどといった侵入攻撃と比べて、SlowDoS攻撃は、攻撃を受けるネットワークやサーバのリソースを消費させられることになるが、リソースが枯渇しない限りにおいてサービスを継続できる。具体的には、サーバは、許容される最大数までセッションが埋め尽くされない限り新たなセッションを確立することができるため、ある程度の数の不正セッションを張られたとしても自身のサービスを提供し続けることができる。
このような攻撃の特徴に鑑み、検出システム100は、上述したように、通信量とセッション数との関係性を監視することにより、ミラーリングする通信を抽出し、抽出された通信から不正なセッションを検出する。すなわち、検出システム100は、不正通信による攻撃の手法に合わせて、常に全ての通信を監視するのではなく、動的に検出する通信を抽出することで、検出処理に係る負荷を軽減させる。これにより、検出システム100は、検出に係る処理負荷を抑えた上で、不正通信による攻撃を効果的に検出することができる。
[処理手順]
次に、図4を用いて、上述した検出システム100による検出処理の手順について詳細に説明する。図4は、第1の実施の形態に係る検出システム100による処理手順を示すフローチャートである。
図4に示すように、制御装置110は、通信量およびセッション数など、監視対象であるウェブサーバ30に関する通信を監視する(ステップS101)。そして、制御装置110は、監視しているウェブサーバ30において、セッションの異常を検知したか否かを判定する(ステップS102)。制御装置110は、セッションの異常を検知していない場合(ステップS102;No)、監視を継続する。
一方、セッションの異常を検知した場合(ステップS102;Yes)、制御装置110は、中継装置120に対して、トラヒックのミラーリングを開始させる指示を送信する。そして、中継装置120は、検出装置130に向けてトラヒックのミラーリングを開始する(ステップS103)。
そして、ミラーリングされているトラヒックに関して、検出装置130は、不正セッションを検出したか否かを判定する(ステップS104)。不正なセッションを検出しない場合(ステップS104;No)、検出処理を継続し、所定時間が経過したか否かを判定する(ステップS105)。所定時間が経過していない間は(ステップS105;No)、検出装置130は、検出処理を継続する。所定時間が経過した場合(ステップS105;Yes)、検出装置130は、制御装置110に不正なセッションが検出されない旨を送信する。そして、制御装置110は、ミラーリング解除の指示を中継装置120へ送信することで、ミラーリングを解除させる(ステップS106)。そして、検出システム100は、通信を監視するステップに戻る(S101)。
一方、検出装置130は、ステップS104において、不正なセッションを検出した場合には(ステップS104;Yes)、不正なセッションを特定する情報を送信する。そして、かかる情報を受信した制御装置110の指示に従い、中継装置120は、不正なセッションに該当する送信元IPアドレスに対するフィルタを開始する(ステップS107)。
続いて、検出装置130は、不正セッションが所定時間検出されなくなったか否かを判定する(ステップS108)。不正セッションを検出している間は(ステップS108;No)、検出装置130は、検出を継続する。一方、不正セッションを所定時間検出しなくなったら(ステップS108;Yes)、検出装置130は、かかる情報を制御装置110に送信する。そして、制御装置110は、ミラーリング解除の指示を中継装置120へ送信する。これにより、中継装置120は、ミラーリングを解除する(ステップS109)。
ミラーリングが解除された後においても、中継装置120は、端末10や攻撃生成端末20からの通信の中継を継続し、セッションの試行が所定時間止んだか否かを判定する(ステップS110)。所定時間が経過していない場合は(ステップS110;No)、中継装置120は、セッションの試行に関する観測を続ける。
一方、所定時間が経過した場合は(ステップS110;Yes)、中継装置120は、中継するトラヒックにおいて、フィルタ設定している通信が観測されない旨の情報を制御装置110に送信する。そして、制御装置110からの指示に従い、中継装置120は、フィルタを解除する(ステップS111)。検出システム100は、上記の処理を繰り返し実行する(ステップS101)。
なお、上述したように、制御装置110は、不正セッションが所定時間検出されなくなったという検出装置130からの通知のみを判断要素としてミラーリングを解除する指示を出してもよいし、セッションの試行が所定時間止んだという中継装置120からの通知と併せて、ミラーリング及びフィルタの解除の指示を行ってもよい。また、制御装置110は、所定時間不正な通信を検出しないことを契機にミラーリングを解除するだけでなく、所定時間不正な通信の検出数が所定値以下である場合もミラーリング解除の対象としてもよい。すなわち、図4におけるステップS108〜S111の処理手順は、制御装置110がミラーリング及びフィルタ解除の指示に係る判断要素によって、柔軟に変更可能である。
[第1の実施の形態の効果]
このように、第1の実施の形態に係る検出システム100は、常に全ての通信を監視するのではなく、動的に検出する通信を抽出することで、検出処理に係る負荷を軽減させる。これにより、検出システム100は、検出に係る処理負荷を抑えた上で、不正通信による攻撃を効果的に検出することができる。
[第2の実施の形態]
以下では、第2の実施の形態に係る検出システムの構成および処理を説明し、最後に第2の実施の形態による効果を説明する。
[第2の実施の形態に係る検出処理の一例]
まず、図5を用いて、第2の実施の形態に係る検出システム100による検出処理の一例を説明する。図5は、第2の実施の形態に係る検出システム100による検出処理の一例を説明する図である。図5に示すように、検出システム100は、制御装置110、中継装置120、検出装置130に加え、蓄積装置140を有する。なお、以下の説明において、第1の実施の形態において説明した内容については説明を省略する。また、図5においては、クライアントとウェブサーバ30との通信をトラヒックT11として示しているが、かかる通信を行うクライアントの図示は省略する。
第1の実施の形態において、検出システム100は、通信の異常を検知し、不正なセッションを検出する例を示した。すなわち、第1の実施の形態に係る検出システム100が実行する検出処理は、検出装置130による検出処理の開始後に観測可能な不正なセッションを検出するものであり、適用される不正なセッションを検出する検出ルールによっては、例えばセッション開始時の通信から監視する必要がある検出ルールが適用された場合、既に確立済みのセッションについては検出が難しくなってしまう場合がある。
そこで、第2の実施の形態に係る検出システム100は、監視モードに移行する以前から、ウェブサーバ30とクライアントとの通信に係る情報を蓄積しておく。具体的には、第2の実施の形態に係る検出システム100が備える蓄積装置140は、中継装置120が中継するウェブサーバ30とクライアントとのトラヒックをミラーリングすることで、トラヒックに係るデータ(すなわち、ウェブサーバ30に関する通信データ)を蓄積し続ける。このとき、蓄積装置140は、蓄積しているデータ量が上限に近付くと、記憶している時間が古い順に通信データを破棄し、空き領域を確保して新たに入力される通信データを蓄積する。または、破棄してよいと判断した古い情報を新たに入力される情報で上書きすることとしてもよい。そして、蓄積装置140は、ウェブサーバ30の通信量やセッション数の状況に異常が検知されたこと、または、中継装置120が制御装置110によって送信された指示に従ってミラーリングを開始したこと/開始すること(言い換えれば、制御装置110が中継装置120に対してミラーリング指示を送信したこと/送信すること)、または、検知装置130の不正なセッション検知により制御装置110が所定数の不正なセッションに関する通知を受けたことを契機として、制御装置110からの指示を受けて、蓄積したデータを検出装置130に流し込む。これにより、検出装置130は、トラヒックのミラーリングを開始した以前のセッションについて、蓄積されていたデータの分だけ遡って不正なセッションを検出することが可能となる。
以下、第2の実施の形態に係る検出システム100が実行する検出処理の一例について、図5を用いて詳細に説明する。図5に示すように、検出システム100に係る中継装置120は、クライアントからウェブサーバ30へ送信されるトラヒックT11を中継する。このとき、蓄積装置140は、トラヒックT11に係る通信データを所定の蓄積部に蓄える蓄積処理を行う(ステップS41)。
ここで、制御装置110は、ウェブサーバ30に関する通信に異常を検知したものとする(ステップS42)。そして、第1の実施の形態と同様に、制御装置110は、中継装置120に対してトラヒックT11のミラーリング指示を送信する(ステップS43)。そして、制御装置110は、ミラーリング指示を送信したことを契機として、蓄積装置140に対して、蓄積されているデータの流し込み処理を行うよう指示を送信する(ステップS44)。なお、制御装置110は、上述のように、ミラーリング指示を送信したこと(あるいは、送信すること)のみならず、例えば、ウェブサーバ30の通信量やセッション数の状況に異常が検知されたこと、または、検知装置130の不正なセッション検知により制御装置110が所定数の不正なセッションに関する通知を受けたこと等のいずれかを契機として、流し込み処理を行うよう指示を送信してもよい。これは、通信に異常が検知されたことや、不正セッションが検知されたことは、ミラーリング開始された時点において既に確立しているセッションの中にも不正セッションがある可能性が高いことが想定されるからである。
そして、第1の実施の形態と同様に、中継装置120は、検出装置130へトラヒックをミラーリングする(ステップS45)。このとき、蓄積装置140は、検出装置130に流し込むための蓄積したデータであって、検出処理に有用なデータを検出装置130に流し込む(ステップS46)。そして、検出装置130は、中継装置120から直接的にミラーリングした通信のみならず、蓄積装置140から流し込まれた通信も含めて、不正なセッションを検出する。そして、検出装置130は、検出結果を制御装置110に通知する(ステップS47)。
このように、第2の実施の形態に係る検出システム100は、中継装置120によって中継される通信に係る情報である通信データ(トラヒック、例えば、ミラーリングされたパケットそのものでもよいし、検出装置130に適用されている検出ルールによる判定に必要な情報を抽出、整形した通信データでもよい)を蓄積するとともに、蓄積可能な容量の上限に達する前に、蓄積している通信データを所定の順に廃棄する蓄積装置140をさらに備える。蓄積装置140は、蓄積された通信データのうち、検出装置130が制御装置110によって送信された指示に従ってミラーリングを開始したタイミング以前に蓄積された通信データを検出装置130に送信する。そして、検出装置130は、制御装置110によって送信された指示に従ってミラーリングされた通信、および蓄積装置140から送信された通信データの中から、不正な通信を検出する。
すなわち、第2の実施の形態に係る検出システム100は、第1の実施の形態に加えて、検出を行う通信に関するバッファ(buffer)機構を備え、かかるバッファに蓄積された通信に関しても不正なセッションを検出する処理を行うことができる。言い換えれば、第2の実施の形態に係る検出システム100は、監視モードに移行した時点で既に確立しているセッションに対しても、蓄積されたトラヒック分だけ遡って不正なセッションを検出できる。このように、第2の実施の形態に係る検出システム100は、第1の実施の形態と比較して、検出処理の対象となるセッションを増大させることができるので、より多くの不正なセッションを検出することが期待できる。また、第2の実施の形態に係る検出システム100において、セッションが開始される時点からの挙動に基づいて不正を検出するロジックなどが検出処理に用いられているような場合には、第2の実施の形態に係る検出システム100は、より不正なセッションを検出する精度を向上させることができる。
[蓄積装置140の構成]
以下では、上述してきた第2の実施の形態に係る蓄積装置140を構成する各処理部について、図6乃至図8を用いて詳細に説明する。まず、図6を用いて、第2の実施の形態に係る蓄積装置140の構成について説明する。図6は、第2の実施の形態に係る蓄積装置140の構成の一例を示す図である。図6に例示するように、蓄積装置140は、IF部141と、蓄積部142と、制御部145とを有する。
IF部141は、例えば、NIC(Network Interface Card)等であり、外部装置との間で各種データを送受信する。例えば、IF部141は、制御装置110、中継装置120、あるいは検出装置130との間で通信に関する情報を送受信する。
蓄積部142は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。図6に示すように、蓄積部142は、通信データ蓄積部143と、抽出セッション蓄積部144とを有する。
(通信データ蓄積部143について)
通信データ蓄積部143は、中継装置120を介するトラヒックに含まれる通信データ(パケットやパケットの一部分など)を逐次取得し、蓄積する。ここで、図7に、第2の実施の形態に係る通信データ蓄積部143の一例を示す。図7に示すように、通信データ蓄積部143は、「通信データ番号」、「送信元IPアドレス」、「送信元ポート番号」、「宛先IPアドレス」、「宛先ポート番号」、「プロトコル番号」、「パケットサイズ」といった項目を有する。
「通信データ番号」は、クライアントとウェブサーバ30とのトラヒックに係る通信データを識別する番号を示す。ここでは、通信データ番号は、データが蓄積装置140に蓄積された順番に番号が振られる例を示している。
「送信元IPアドレス」は、通信データを送信している送信元を特定するIPアドレスを示す。ここでは、送信元IPアドレスは、クライアント、またはウェブサーバ30を特定する情報となる。「送信元ポート番号」は、送信元のデータ送信に利用されているポート番号を示す。
「宛先IPアドレス」は、通信データの送信先である宛先を特定するIPアドレスを示す。「宛先ポート番号」は、通信データの送信先である宛先側が利用するポート番号を示す。「プロトコル番号」は、通信に使用されているプロトコルを識別する番号を示す。「パケットサイズ」は、データ通信に係るパケットの通信量を示す。
すなわち、図7では、通信データ番号が「001」である通信データは、送信元IPアドレスが「AAA」であり、送信元ポート番号が「11111」であり、宛先IPアドレスが「SSS」であり、宛先ポート番号が「80」であり、プロトコル番号が「6」であり、パケットサイズが「100」である例を示している。
なお、図7での図示は省略しているが、TCPに着目した検出ルールが検出装置130に適用される場合は、通信データ蓄積部143に蓄積される各データには、蓄積された時間や、TCPフラグや、シーケンス番号や、Windowサイズ、通信におけるヘッダサイズや、ペイロード等に関する情報が含まれてもよい。
(抽出セッション蓄積部144について)
抽出セッション蓄積部144は、通信データ蓄積部143に蓄積されたデータを、セッション抽出部146によって抽出されたセッション単位で蓄積する。ここで、図8に、第2の実施の形態に係る抽出セッション蓄積部144の一例を示す。図8に示すように、抽出セッション蓄積部144は、「セッション識別子」、「番号」、「送信元IPアドレス」、「送信元ポート番号」、「宛先IPアドレス」、「宛先ポート番号」、「プロトコル番号」、「時間」、「パケットサイズ」といった項目を有する。なお、図7で説明した項目については、説明を省略する。
「セッション識別子」は、通信データをセッション毎に抽出する場合に、セッションを識別するために付与される識別情報を示す。「番号」は、データが蓄積された時間の早い順に、同一セッションに含まれるデータに対して振られた順番を示す。
「時間」は、データが蓄積された時間を示す。なお、抽出セッション蓄積部144は、セッション単位で通信データを蓄積するとともに、セッション単位ごとに蓄積の上限を設定する。図8に示した例では、一つのセッションとして同一のセッション識別子が付与されるデータは、番号「1」のデータの時間から1分の間に蓄積されるデータであるものとする(例えば、検出ルールがセッション開始から所定時間、仮に1分間分やりとりされる通信データで判定できる場合など)。例えば、「2014年12月11日10時00分00秒」に所定の通信データが蓄積された場合には、「2014年12月11日10時01分00秒」までに蓄積された通信データであって、同一のセッションに含まれる通信データに対して、同一のセッション識別子が付与される。
すなわち、図8では、セッション識別子「001」で識別されるデータであって、かかる通信データは、セッション識別子「001」における番号が「1」であり、送信元IPアドレスが「AAA」であり、送信元ポート番号が「11111」であり、宛先IPアドレスが「SSS」であり、宛先ポート番号が「80」であり、プロトコル番号が「6」であり、時間が「2014年12月11日10時00分00秒」であり、パケットサイズが「1000」である例を示している。
なお、図8での図示は省略しているが、TCPに着目した検出ルールが検出装置130に適用される場合は、抽出セッション蓄積部144に蓄積される各データには、TCPフラグや、シーケンス番号や、Windowサイズ、通信におけるヘッダサイズや、ペイロード等に関する情報が含まれてもよい。
(制御部145について)
制御部145は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。また、制御部145は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、図示しない記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部145は、図6に示すように、セッション抽出部146と、セッション管理部147とを備え、データを蓄積する処理を実行する。以下、各処理部について説明する。
(セッション抽出部146について)
セッション抽出部146は、通信データ蓄積部143に蓄積されている通信データから、検出装置130が行う不正なセッションの検出処理に用いられるデータを抽出する。そして、セッション抽出部146は、抽出したデータをセッション単位で抽出セッション蓄積部144に蓄積する。
また、セッション抽出部146は、検出装置130による検出処理には用いられないと想定される通信データを優先的に廃棄するとともに、検出装置130による検出処理に用いられることが想定される通信データを優先的に蓄積するようにしてもよい。例えば、セッション抽出部146は、通信データ蓄積部143が蓄積している通信データから不正なセッションの検出処理に用いられる通信データを抽出する場合に、所定の条件に該当する通信データを優先的に抽出して蓄積することとしてもよい。この場合、セッション抽出部146は、所定の条件に該当しない通信データについては、蓄積することを要しないため、廃棄することができる。これにより、セッション抽出部146は、抽出セッション蓄積部144に蓄積されるデータ量の増大を抑えることができる。
具体的には、セッション抽出部146は、所定の条件として、通信データの蓄積された時間情報を用いることができる。すなわち、セッション抽出部146は、所定のセッションにおいて、セッション開始から所定時間内(例えば、数分間など)のパケットや、所定のセッション中の任意の起点から所定時間内(例えば、数分間など)のパケットを抽出して、抽出セッション蓄積部144に蓄積する。
また、セッション抽出部146は、所定の条件として、通信量であるパケット数を基準にして、蓄積する通信データを抽出してもよい。すなわち、セッション抽出部146は、所定のセッションにおいて、セッション開始から所定量のパケットや、所定のセッション中の任意の起点から所定量のパケットを抽出して、抽出セッション蓄積部144に蓄積する。
また、セッション抽出部146は、検出装置130の不正なセッションの判定処理に用いる通信データとして、通信データのペイロード部分のデータが不要な場合には、通信データのペイロード部分を0バイト、または小サイズに加工したうえで、抽出セッション蓄積部144に蓄積してもよい。
(セッション管理部147について)
セッション管理部147は、通信データ蓄積部143や、抽出セッション蓄積部144に蓄積されたデータの入出力について管理する。具体的には、セッション管理部147は、制御装置110からデータの流し込みの指示を受けたことを契機に、かかる指示に対応する通信データを検出装置130へ流し込む(送信する)処理を実行させる。また、セッション管理部147は、通信データ蓄積部143や、抽出セッション蓄積部144の使用状況を監視し、通信データ蓄積部143や、抽出セッション蓄積部144に蓄積されるデータ量に所定の閾値を設定しておくことによって、蓄積可能な容量の上限に達する前に、不要となった通信データを廃棄する。例えば、セッション管理部147は、検出装置130による検出処理には用いられないと想定される通信データを優先的に廃棄するとともに、検出装置130による検出処理に用いられることが想定される通信データを優先的に蓄積するように管理する。
セッション管理部147は、検出装置130へ通信データを流し込む際には、不正なセッションを検出するのに有用であると特定されるセッションに関する通信データを流し込む。例えば、セッション管理部147は、通信データの流し込みに関する指示を制御装置110から受信し、受信した指示によって特定された通信データを流し込む。すなわち、制御装置110は、中継装置120にミラーリング対象を指示するとともに、同対象に関する通信データが蓄積装置140に蓄積されている場合は、蓄積装置140から検出装置130に対して当該通信データの流し込みを指示する。具体的には、セッション管理部147は、制御装置110からの指示に含まれる情報に従い、抽出セッション蓄積部144内の通信データと、検出装置130にミラーリングされている通信データとに含まれるIPアドレス等の情報から流し込むセッションを特定する。
そして、セッション管理部147は、セッション識別子ごとにまとめられている抽出セッション蓄積部144内の通信データを検出装置130に流し込む。上述のように、蓄積装置140が通信データをパケットキャプチャ形式で蓄積している場合には、セッション管理部147は、通信データをパケット形式で検出装置130へ送信する。なお、通信データをパケット形式ではなく、不正な検出に要する特徴のみを抽出した通信データであって、外部へパケットとして送信できない形式の通信データ(例えば、ファイル形式でのみ送信可能なデータ)として蓄積しているような場合には、セッション管理部147は、かかる通信データを送信可能な形式に変換して検出装置130に送信する。この場合、検出装置130は、蓄積装置140から受信した情報に基づいて、不正なセッションの検出処理が可能な構成を有するものとする。例えば、検出装置130は、パケット形式のみならず、通信データの特徴を示すファイル形式の通信データを読み込み可能な構成を有する。
また、セッション管理部147は、中継装置120からトラヒックをミラーリングせずに、通信データ蓄積部143でトラヒックを蓄積しつつ、あるいはトラヒックをバッファリングすることにより、不正検出処理を継続できる通信レートに制限をかけて、通信データを検出装置130へ流し込むこととしてもよい。
また、セッション管理部147は、検出装置130に流し込んだ通信データに関しては、順次、蓄積部142から廃棄していくものとする。これは、セッション管理部147は、検出システム100が監視モードになる前から張られ続けているセッションを監視すること(すなわち、既に確立しているセッションに関する不正を検出すること)を目的として通信データを管理しているため、検出装置130に流し込んだセッションに対応する通信データや、既に終了したセッションに対応する通信データを蓄積し続ける要請がないことによる。このため、セッション管理部147は、これらのセッションに該当する情報を通信データ蓄積部143や抽出セッション蓄積部144から優先的に廃棄するように、蓄積された通信データを管理する。例えば、制御装置110は、ウェブサーバ30の確立しているセッションに関する情報を定期的に収集し、該当セッションが存続していることを示す情報を収集できなかったことを契機に、当該セッションが終了したものとみなし、終了したものとみなしたセッションに関する情報を廃棄するように指示する。
例えば、セッション管理部147は、プロトコルがTCPの場合、送受信における少なくとも一方向からRST(リセット)フラグが含まれ、また、双方向からFIN(終了)フラグが含まれるパケットを確認した場合には、セッション終了とみなして、かかるパケットに対応するセッションに該当する情報を廃棄する。また、セッション管理部147は、抽出セッション蓄積部144に蓄積されたデータにおいて、セッション毎にpps(packet per second)、またはbps(bit per second)を計測し、所定値よりも小さくないセッションはSlowDoS攻撃に該当しないものと判断して、廃棄することとしてもよい。
また、セッション管理部147は、中継装置120が設定したフィルタによって、フィルタされたIPアドレスに該当するセッションが取得される場合には、かかる情報を蓄積しないようにしてもよい。また、セッション管理部147は、中継装置120が設定したフィルタによって、フィルタされたIPアドレスに該当するセッション情報が蓄積されている場合には、例えば、制御装置110からの指示に基づいて、優先的に廃棄してもよい。なお、中継装置120が設定したフィルタが解除された場合には、セッション管理部147は、かかるIPアドレスに該当するセッション情報を再び蓄積するようにする。
上記のように、蓄積装置140について説明してきたが、蓄積装置140は、検出装置130を構成する各処理部として、検出装置130内に組み込まれて機能してもよい。
[処理手順]
次に、図9を用いて、第2の実施の形態に係る検出システム100による検出処理の手順について詳細に説明する。図9は、第2の実施の形態に係る検出システム100による処理手順を示すフローチャートである。
図9に示すように、蓄積装置140は、中継装置120が中継するクライアントとウェブサーバ30間の通信データを蓄積する(ステップS201)。そして、蓄積装置140は、蓄積したデータをセッションごとに抽出する(ステップS202)。
そして、制御装置110は、監視している通信において、セッションに関する異常を検知したか否かを判定する(ステップS203)。制御装置110がセッションに関する異常を検知していない場合(ステップS203;No)、蓄積装置140は、例えば、通信データの蓄積から所定時間経過後などの条件に応じて、蓄積した通信データのうち、検出処理には使用しないと想定される通信データを廃棄する(ステップS204)。
一方、セッションに関する異常を検知した場合(ステップS203;Yes)、制御装置110は、中継装置120に対して、通信データのミラーリングを開始させる指示を送信する。そして、中継装置120は、検出装置130にミラーリングを開始する(ステップS205)。
そして、中継装置120がミラーリングを開始したことを契機として、制御装置110からの指示に基づいて蓄積装置140は、ミラーリングの対象となったセッションに対応する蓄積データを検出装置130に流し込む処理を開始する(ステップS206)。
これにより、検出装置130は、蓄積装置140が蓄積していた通信データについても検出処理の対象とすることができるので、ミラーリングの開始時点よりも遡って不正なセッションを検出することが可能になる。なお、ステップS206以降の処理は、図4のステップS104以降の処理と共通するため、説明を省略する。また、ステップS204で記載した通信データの廃棄処理に関しては、必ずしも上記のタイミングで行う必要はなく、蓄積装置140は、蓄積量の上限値等に基づいて、順次通信データを廃棄してもよい。
[第2の実施の形態の効果]
このように、第2の実施の形態に係る検出システム100は、通信データを蓄積する蓄積装置140を備えることにより、予め蓄積された通信データを利用して不正なセッションを検出する処理を行うことができる。これにより、第2の実施の形態に係る検出システム100は、第1の実施の形態と比較して、検出処理の対象となるセッションを増大させることができるので、より多くの不正なセッションを検出することできる。
また、第2の実施の形態に係る蓄積装置140は、検出装置130による検出処理には用いられないと想定される通信データを優先的に廃棄するとともに、検出装置130による検出処理に用いられることが想定される通信データを優先的に蓄積する。
このように、第2の実施の形態に係る検出システム100は、ウェブサーバ30との通信で発生する大量の通信データから優先的に蓄積する通信データを判定することによって、蓄積可能な容量の上限を超えないように、かつ、検出処理に有用な通信データを適切に蓄積することができる。これにより、第2の実施の形態に係る検出システム100は、検出処理にかかる負荷を軽減させることができる。蓄積可能な容量の上限は、例えば、直近の所定時間、所定データサイズの容量、所定数のパケットなど、とすることとしてもよい。
また、第2の実施の形態に係る蓄積装置140は、セッション単位で通信データを蓄積するとともに、セッション単位ごとに蓄積の上限を設定する。蓄積可能な容量の上限は、例えば、セッション毎に、セッション開始からまたは直近の、所定時間、所定データサイズの容量、所定数のパケットなど、とすることとしてもよい。上限を超える場合は、セッション単位で廃棄される。例えば、セッション開始時刻が古いセッションからセッション単位で廃棄されることとしてもよい。
このように、第2の実施の形態に係る検出システム100によれば、ウェブサーバ30とクライアントとの間で成立した通信であるセッション単位で通信データを管理するので、検出処理等に有用な通信データを適切に送信したり、蓄積したりすることができる。
また、第2の実施の形態に係る蓄積装置140は、監視対象であるウェブサーバ30との通信に係る情報である通信データを蓄積する蓄積部142と、蓄積部142によって蓄積された通信データの中から、セッション単位で通信データを抽出するセッション抽出部146と、ウェブサーバ30との通信に異常が検知されたことを契機として、通信を分析することによって不正な通信を検出する装置である検出装置に、セッション抽出部146によって抽出された通信データを送信する送信部(ここでは、セッション管理部147)とを備える。
このように、第2の実施の形態に係る蓄積装置140は、不正なセッションを検出するシステムにおいて、検出処理が実行される前に予め通信を蓄積しておくバッファ機構として動作する。これにより、第2の実施の形態に係る蓄積装置140は、監視対象である通信に異常が検知された時点よりも遡った通信データを提供することができるので、不正なセッションを検出する対象範囲を広くすることができる。
[第3の実施の形態]
上述した実施形態では、検出システム100は、不正セッションと判断した場合にフィルタを設定し、フィルタが設定された送信元IPアドレスからの通信が止んだ後に、防御モード解除する例を示した。具体的には、検出システム100は、フィルタが設定された送信元IPアドレスからの通信が止み、所定時間経過後に、設定したフィルタを解除する例を示した。
しかしながら、上記の処理手法によっては、断続的に発生する攻撃に対して対策が不十分となるおそれがある。すなわち、所定時間経過後にフィルタが解除された後であっても、当該不正セッションに該当する送信元IPアドレスからの通信の監視を実施し、断続的に攻撃が発生していないか否かを判断することが望ましい。そこで、検出システム100は、以下に説明する処理により、フィルタ解除後の通信を監視する。
まず、検出システム100に係る制御装置110は、所定のIPアドレスに対して設定されているフィルタについて、当該IPアドレスからの通信が止んだ所定時間経過後に中継装置120よりその旨の通知を受けることにより、フィルタを解除する旨を中継装置120へ指示する。あるいは、制御装置110は、フィルタ設定時のタイマー設定により、所定時間経過後に当該フィルタが解除される旨を指示するようにしてもよい。
そして、制御装置110は、フィルタ解除後に、中継装置120に指示をフィルタ設定していた同一IPアドレスのトラヒックを監視させる。具体的には、制御装置110は、当該IPアドレスに対して設定されているフィルタを解除するときに、同一IPアドレスによるトラヒックを検出装置130へミラーリングさせる旨を中継装置120へ指示する。あるいは、制御装置110は、フィルタが設定される際に、フィルタ解除を契機として、ミラーリングが有効化される旨を指示しておいてもよい。
そして、制御装置110は、かかるミラーリングにより当該IPアドレスを送信元とする不正なコネクション(言い換えれば、不正セッション)が検出された場合には、再び当該IPアドレスに対してフィルタを設定させる。すなわち、制御装置110は、検出装置130から不正セッション検出の通知を受けた場合に、中継装置120に対してフィルタを設定する旨の指示を送信する。
このとき、制御装置110は、フィルタ設定が有効な所定時間として、最初にフィルタを設定したときと同一か、もしくは、より長い所定時間を設定してもよい。例えば、制御装置110は、最初のフィルタが有効な所定時間が「3分」であった場合には、2回目のフィルタの所定時間を「6分」に設定する。さらに、制御装置110は、3回目のフィルタを設定する場合には、所定時間を「9分」に設定する。
[第3の実施の形態の効果]
このように、第3の実施の形態に係る検出システム100は、所定時間を長くして繰り返しフィルタを設定することにより、断続的に発生する不正な通信に対する対策効果を向上させることができる。
(フィルタの解除処理について)
なお、上記のように、検出システム100が、不正な通信が観測されなくなった後にフィルタを解除する処理を行うことが望ましい点について、以下に説明する。
不正な通信による攻撃(例えば、SlowDoS攻撃等)は、攻撃者が自らのクライアントを使用して攻撃する場合もあるが、ボット(bot)を仕込んだ多数のクライアントを遠隔操作することにより、標的システムに対して異なる複数のIPアドレスから不正セッションの確立を試行する場合がある。このとき、セキュリティ対策等によりボットを駆除されたクライアントからの通信は、正常な通信となる。
一方、プロキシ(proxy)や、NAT(Network Address Translation)、CGN(Career Grade NAT)などを介した通信は、複数のクライアントからの通信であっても、共用する1つのIPアドレスからの通信とみなされる。
すなわち、検出した不正セッションの送信元IPアドレスに基づいてフィルタすると、攻撃者からの通信のみをフィルタしていることとはならない場合がある。したがって、検出システム100は、検出した不正セッションに該当する送信元IPアドレスを永続的にフィルタするのではなく、攻撃が止んだらフィルタを解除することが望ましい。
このとき、検出システム100は、完全に攻撃が止んだことを確認できた後でフィルタを解除するのが望ましいが、かかる判断が難しい場合がある。そのため、上記の第3の実施の形態で行われる処理や、あるいは、ウェブサーバ30に対して相当数のセッション確立を試行する通信が観測されなくなった場合や、ウェブサーバ30が確立可能なセッション数として所定数の余裕が確保された場合等に、検出システム100は、フィルタ解除することとしてもよい。前者では、中継装置120がこの観測結果を制御装置110へ通知し、後者では、ウェブサーバ30が制御装置110へ通知することで、制御装置110が中継装置120に対してフィルタ解除を指示する。
[第4の実施の形態]
上述した実施形態では、検出システム100は、監視対象であるウェブサーバ30に対して、確立しているセッション数が所定の閾値を超えた場合に、不正な通信が発生している可能性があると判断し、監視モードに移行する例を示した。ここで、検出システム100は、確立したセッション数が所定の閾値を超えた場合以外であっても、不正な通信が発生している可能性があると判断し、監視モードに移行するようにしてもよい。
例えば、検出システム100は、確立したセッション数の増加率に着目し、監視モードに移行するようにしてもよい。この場合、制御装置110は、ウェブサーバ30、あるいは、ウェブサーバ30のリソースを監視する外部装置から、確立したセッションに関する情報について定期的に通知を受ける。そして、制御装置110は、確立しているセッション数の単位時間当たりの増加率を算出し、算出した値と予め設定している閾値とを比較する。そして、制御装置110は、算出した値が予め設定している閾値を超過しているか否かを判定する。超過していた場合、制御装置110は、中継装置120に対してミラーリングを実行させる指示を送信し、監視モードに移行させる。
なお、検出システム100は、確立したセッション数のうち、所定時間以上確立しているセッション数、または、セッション数の増加率に基づいて、監視モードに移行してもよい。すなわち、制御装置110は、ウェブサーバ30、あるいは、ウェブサーバ30のリソースを監視する外部装置から、送信元IPアドレスと送信元ポート番号を組としたセッション毎の継続時間に関する情報の通知を受ける。例えば、ウェブサーバ30内で確立しているセッション毎の情報の通知を定期的に受けることで、制御装置110は各セッションについて最初に通知を受けた時刻を契機に継続時間を算出することとしてもよい。そして、制御装置110は、通知された継続時間が所定時間を超えているセッションに関して、確立している数、または増加率が予め設定している閾値を超える場合に、監視モードに移行させる。
[第4の実施の形態の効果]
このように、第4の実施の形態に係る検出システム100は、ウェブサーバ30に関して、セッション数のみならず、増加率や、セッションの確立している継続時間などといった要素も判定対象として監視を行う。このため、第4の実施の形態に係る検出システム100は、攻撃者からの種々の攻撃手法に対して、柔軟に対応して不正なセッションを検出することができる。
[その他の実施例]
上述した各実施形態に係る検出システム100は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、検出システム100の他の実施形態について説明する。
上述してきた検出システム100は、通信キャリア網やISP網以外に設置されてもよい。例えば、検出システム100は、データセンタ上に構築されるクラウドサービスを守るため、データセンタ側に設置されてもよい。
また、上記では、中継装置120に設定するフィルタ単位をクライアントの送信元IPアドレスとしていたが、不正セッションに該当する送信元IPアドレスと送信元ポート番号の組や、または、さらに宛先IPアドレスと宛先ポート番号とを合せた組としてもよい。また、検出システム100は、不正と判断したセッションに対するフィルタとして、IPアドレス単位に設定してもよいし、IPアドレスとポート番号の組単位で設定してもよい。また、検出システム100は、フィルタするIPアドレスについて、確立している不正セッション数が多いIPアドレスから順に、上位N個分(Nは自然数)についてフィルタするように予め設定しておいてもよい。または、IPアドレスに対して、確立しているセッション数に対する確立している不正セッション数の割合が所定値以上のIPアドレスについてフィルタするように予め設定しておいてもよく、確立しているセッション数は、ウェブサーバ30から通知を受けることで取得する。この場合、制御装置110は、設定に応じて該当するIPアドレスをフィルタする旨の指示を中継装置120に送信する。また、検出システム100は、検出装置130が検出する不正セッション毎に不正であることの確からしさを示す度合(スコア)を算出するものである場合は、かかるスコアが所定の閾値以上であるセッションを不正セッションとみなすこととしてもよい。
また、検出システム100に係る蓄積装置140は、蓄積する通信データとして、中継装置120によって中継される全トラヒックに係る通信データであってもよく、あるいは、標的システム(ここでは、ウェブサーバ30)のリソースを枯渇させる攻撃に使われるトラヒックに限定して蓄積してもよい。具体的には、蓄積装置140は、ウェブサーバ30が確立できるセッションに限定する場合、TCP通信における宛先ポート番号がHTTP(Hypertext Transfer Protocol)を示す「80」番や「8080」番、HTTPS(Hypertext Transfer Protocol Secure)を示す「443」番である通信(又は、その応答)を対象として蓄積するようにしてもよい。また、UDP(User Datagram Protocol)やIPなどのコネクションレスの通信データは蓄積不要であるため、蓄積対象外とする、または優先的に廃棄してもよい。
さらに、蓄積装置140は、標的システムが特定の1以上のウェブサーバである場合は、それらのウェブサーバを示すIPアドレスを含む通信(又は、その応答)を対象として蓄積するようにしてもよい。この場合、蓄積装置140は、ウェブサーバごと、あるいは、ウェブサーバに対応するIPアドレスごとに、通信データ蓄積部143および抽出セッション蓄積部144を管理するようにしてもよい。中継装置120は、1以上の標的システムのウェブサーバのIPアドレスに該当するトラヒックのみを検出装置130および/または蓄積装置140へミラーリングすることとしてもよく、この場合は制御装置110がミラーリング対象のトラヒックを明示的に指示する。また、SlowDoS攻撃に対する対策をサービスとして提供される場合、このサービスを利用するウェブサーバに関するトラヒックのみをミラーリングの対象とすることとしてもよい。
さらに、蓄積装置140は、中継装置120に中継されるトラヒックに係る通信データについて、直接、セッション抽出部146で抽出し、抽出セッション蓄積部144に蓄積する構成であってもよい。この場合、蓄積装置140は、通信データ蓄積部143を有しなくてもよい。
また、上述した各実施形態に係る検出システム100を構成する各装置は、上記実施形態で示された数量と異なる数量によって実施されてもよい。例えば、上記実施形態では、1台の中継装置120が、検出装置130と蓄積装置140の両方へ、検出処理のためのミラーリングや、蓄積処理のための流し込みを行う例を示した。しかし、検出システム100には2台以上の中継装置120が含まれ、各々の中継装置120が検出装置130や蓄積装置140に各処理を行うよう、処理が分担して行われてもよい。
また、検出システム100内における通信について、制御装置110から中継装置120への指示は、OpenFlowの仕様によるものであってもよい。この場合、制御装置110は、OpenFlowコントローラを備え、中継装置120は、OpenFlow対応スイッチを備える。あるいは、検出システム100は、制御装置110が受信する通知等をオペレータへ通知し、オペレータが入力する指示内容に基づいて制御装置110を動作させるようにしてもよい。
また、上記実施の形態では、検出システム100は、監視対象とする攻撃としてSlowDoS攻撃を、攻撃の標的である標的システムとしてウェブサーバ30を例に説明したが、これに限られず、任意の装置を標的とするその他の不正な通信全般に適用可能である。
(構成等)
なお、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
(プログラム)
また、上記実施形態に係る検出システム100が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータに読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、検出システム100と同様の機能を実現する検出プログラムを実行するコンピュータの一例を説明する。
図10は、検出プログラムを実行するコンピュータを示す図である。図10に示すように、コンピュータ1000は、例えば、メモリ1010と、CPU(Central Processing Unit)1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011およびRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1110およびキーボード1120が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1130が接続される。
ここで、図10に示すように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各情報は、例えばハードディスクドライブ1090やメモリ1010に記憶される。
また、検出プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、ハードディスクドライブ1090に記憶される。具体的には、上記実施形態で説明した検出システム100に含まれる各装置によって実行される各処理が記述されたプログラムモジュールが、ハードディスクドライブ1090に記憶される。
また、検出プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ1090に記憶される。そして、CPU1020が、ハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
なお、検出プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、検出プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。