(57)【特許請求の範囲】
【請求項１】
監視対象であるサーバとの通信を中継する中継装置と、検出装置と、制御装置とを備える検出システムであって、
前記制御装置は、
前記サーバの通信資源に関する情報に異常を検知した場合に、前記中継装置によって中継される通信を前記検出装置にミラーリングさせる指示を送信し、
前記検出装置は、
前記制御装置によって送信された指示に従ってミラーリングされた通信の中から、不正な通信を検出し、
前記制御装置は、
前記検出装置による検出処理の結果に基づいて、特定された不正な通信を遮断させる指示を前記中継装置に送信し、
前記検出装置が不正な通信を検出することなく、および／または前記中継装置が遮断している通信に該当する送信元からの通信が所定量以下である状態が所定時間継続された場合に、前記ミラーリングを解除させる指示および遮断を解除させる指示を前記中継装置へ送信し、
前記中継装置に対する遮断の解除後に、前記中継装置に遮断を設定していた通信を前記検出装置にミラーリングさせて前記検出装置に監視させ、該通信が前記検出装置によって再度不正な通信であることを検出された場合には、前回よりも長い時間で前記中継装置に遮断させる
ことを特徴とする検出システム。
【請求項２】
前記中継装置によって中継される通信に係る情報である通信データを蓄積するとともに、蓄積可能な容量の上限に達する前に、蓄積している通信データを所定の順に廃棄する蓄積装置をさらに備え、
前記蓄積装置は、
蓄積された通信データのうち、前記検出装置が前記制御装置によって送信された指示に従ってミラーリングを開始したタイミング以前に蓄積された通信データを前記検出装置に送信し、
前記検出装置は、
前記制御装置によって送信された指示に従ってミラーリングされた通信、および前記蓄積装置から送信された通信データの中から、不正な通信を検出する、
ことを特徴とする請求項１に記載の検出システム。
【請求項３】
前記蓄積装置は、
前記検出装置による検出処理には用いられないと想定される通信データを優先的に廃棄するとともに、前記検出装置による検出処理に用いられることが想定される通信データを優先的に蓄積する、
ことを特徴とする請求項２に記載の検出システム。  
【請求項４】
検出システムが不正な通信を検出する検出方法であって、
監視対象であるサーバとの通信を中継する中継ステップと、
前記サーバの通信資源に関する情報に異常を検知した場合に、前記中継ステップによって中継される通信をミラーリングする監視ステップと、
前記監視ステップによってミラーリングされた通信の中から、不正な通信を検出する検出ステップと、
前記検出ステップによる検出結果に基づいて、特定された不正な通信を遮断させるよう指示する指示ステップと、
前記検出ステップにおいて不正な通信を検出することなく、および／または遮断させている通信に該当する送信元からの通信が所定量以下である状態が所定時間継続された場合に、前記ミラーリングを解除させる指示および遮断を解除させる指示を行うステップと、
遮断の解除後に、遮断を設定していた通信をミラーリングして監視させ、該通信が再度不正な通信であることを検出した場合には、該通信を、前回よりも長い時間で遮断させる指示を行うステップと、
を含んだことを特徴とする検出方法。
【請求項５】
請求項１〜３のいずれか１つに記載の検出システムに係る制御装置としてコンピュータを機能させるための検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検出システム、検出方法、検出プログラム、蓄積装置および蓄積方法に関する。
【背景技術】
【０００２】
インターネットを介した通信において、標的対象であるサーバ等の通信に障害を発生させる攻撃の一種として、ＳｌｏｗＤｏＳ（Slow  Denial  of  Service）攻撃が知られている。ＳｌｏｗＤｏＳ攻撃とは、クライアントとサーバの間で確立されるセッションにおいて、無通信によるタイムアウトを回避するために少量サイズのパケットのやり取りを発生させ、セッションを長期継続させることによって、サーバが確立可能なセッションを埋め尽くす攻撃手法をいう。なお、セッションとは、サーバとクライアントがＴＣＰ（Transmission  Control  Protocol）を用いてパケットのやりとりをする際に成立させるＴＣＰコネクションの接続の単位であり、この接続開始から終了までの単位を１セッションとして、この一連の通信１回に相当する通信を意味する。
【０００３】
大量のトラヒック（通信パケット）を発生させてネットワーク帯域を埋め尽くすタイプのＤｏＳ攻撃は、トラヒックの流量を監視することで攻撃を検出できるが、ＳｌｏｗＤｏＳ攻撃は、トラヒック量に着目して監視しても検出することができない。そこで、ＳｌｏｗＤｏＳ攻撃を検出する手法として、ウェブサーバ側で同一ＩＰアドレスから同時に確立できるセッション数に制限を設け、所定時間後に強制タイムアウト（セッション切断）させることで攻撃を食い止める技術が提案されている（例えば、非特許文献１）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】朴、岩井、田中、黒川、『Slow  Read  DoS攻撃とその対策に関する解析」、Computer  Security  Symposium  2014、22−24、  October  2014
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の従来技術では、処理負荷を抑えた上で、不正通信による攻撃を効果的に検出することは困難である。例えば、上記の従来技術では、多数のＩＰアドレスから同時に攻撃を受けた場合は、対策としての効果が得られないことが示されている。または、同一ＩＰアドレスから多数のセッションが確立された場合であっても、これらのセッションがすべて攻撃によるものとは限らないため、単純にこのＩＰアドレスからの通信をフィルタすると正常なセッションも切断してしまうことになり得る。このように、攻撃の手法によって、特定のＩＰアドレスからの通信を制限することでは効果的な対策とならない場合がある。この場合、パケットの送信元を示すＩＰアドレスに関する情報のみならず、サーバとクライアントとの間に確立するセッションを監視し、セッションの内容の特徴を観測した上で、ＳｌｏｗＤｏＳ攻撃を検出することが望ましい。
【０００６】
ところで、不正なセッションを検出するためには、１台のサーバ（例えば、ウェブサーバ）と不特定多数のクライアントの間でやり取りされる多量の通信トラヒック（traffic、以下では単に「トラヒック」と表記する）を検出装置に流すことで、セッションを常時監視することが要求される。かかる手法では、検出にかかる負荷が大きく、検出処理が追い付かない場合がある。このため、トラヒックを効率良く監視し、処理負荷を抑えて不正セッションを検出する手法が希求される。
【０００７】
本発明は、上記に鑑みてなされたものであって、処理負荷を抑えた上で、不正通信による攻撃を効果的に検出することができる検出システム、検出方法、検出プログラム、蓄積装置および蓄積方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、監視対象であるサーバとの通信を中継する中継装置と、検出装置と、制御装置とを備える検出システムであって、前記制御装置は、前記サーバの通信資源に関する情報に異常を検知した場合に、前記中継装置によって中継される通信を前記検出装置にミラーリングさせる指示を送信し、前記検出装置は、前記制御装置によって送信された指示に従ってミラーリングされた通信の中から、不正な通信を検出し、前記制御装置は、前記検出装置による検出処理の結果に基づいて、特定された不正な通信を遮断させる指示を前記中継装置に送信する、ことを特徴とする。
【発明の効果】
【０００９】
本願が開示する実施形態の一例によれば、処理負荷を抑えた上で、不正通信による攻撃を効果的に検出することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、第１の実施の形態に係る検出システムによる検出処理の一例を説明する図（１）である。
【図２】図２は、第１の実施の形態に係る検出システムによる検出処理の一例を説明する図（２）である。
【図３】図３は、第１の実施の形態に係る検出システムによる検出処理の一例を説明する図（３）である。
【図４】図４は、第１の実施の形態に係る検出システムによる処理手順を示すフローチャートである。
【図５】図５は、第２の実施の形態に係る検出システムによる検出処理の一例を説明する図である。
【図６】図６は、第２の実施の形態に係る蓄積装置の構成の一例を示す図である。
【図７】図７は、第２の実施の形態に係る通信データ蓄積部の一例を示す図である。
【図８】図８は、第２の実施の形態に係る抽出セッション蓄積部の一例を示す図である。
【図９】図９は、第２の実施の形態に係る検出システムによる処理手順を示すフローチャートである。
【図１０】図１０は、検出プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願に係る検出システム、検出方法、検出プログラム、蓄積装置および蓄積方法の実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係る検出システム、検出方法、検出プログラム、蓄積装置および蓄積方法が限定されるものではない。
【００１２】
［第１の実施の形態］
以下では、第１の実施の形態に係る検出システムの構成および処理を説明し、最後に第１の実施の形態による効果を説明する。
【００１３】
［第１の実施の形態に係る検出処理の一例］
まず、図１を用いて、第１の実施の形態に係る検出システム１００による検出処理の一例を説明する。図１は、第１の実施の形態に係る検出システム１００による検出処理の一例を説明する図（１）である。図１に示すように、検出システム１００は、制御装置１１０、中継装置１２０、検出装置１３０を有する。
【００１４】
また、検出システム１００には、インターネットを介して、不正通信による攻撃の標的対象であるウェブサーバ３０と、ウェブサーバ３０と通信を行うクライアントとに接続される。クライアントには、ウェブサーバ３０に正常な通信（ここでは、攻撃性を有するような不正な通信ではない通信を意味する）を試みる端末１０と、ウェブサーバ３０に不正な通信を試みる攻撃生成端末２０１〜２０３とが含まれる。図１に示すように、検出システム１００は、端末１０や、攻撃生成端末２０１〜２０３と、ウェブサーバ３０との通信の経路上となる中継網（通信キャリア網や、ＩＳＰ（(Internet  Service  Provider)網）内に配置される。なお、図１での図示は省略するが、検出システム１００は、端末１０や、攻撃生成端末２０１〜２０３とは境界ルータを介して接続され、ウェブサーバ３０とは収容ルータを介して接続される。
【００１５】
また、以下の説明において、端末１０や攻撃生成端末２０１〜２０３と、ウェブサーバ３０との間の通信は、トラヒックＴｎ（ｎは任意の数）として図示される。例えば、図１に示すように、端末１０とウェブサーバ３０との間の通信は、トラヒックＴ１によって示される。また、攻撃生成端末２０１とウェブサーバ３０との間の通信は、トラヒックＴ２によって示される。また、攻撃生成端末２０２とウェブサーバ３０との間の通信は、トラヒックＴ３によって示される。また、攻撃生成端末２０３とウェブサーバ３０との間の通信は、トラヒックＴ４によって示される。また、検出システム１００と接続される端末１０や、攻撃生成端末２０１〜２０３は、図示された数に限られず、さらに多くの数が接続されてもよい。また、攻撃生成端末２０１〜２０３を区別する必要のないときは、攻撃生成端末２０と表記する。
【００１６】
ここで、検出システム１００を構成する各装置について説明する。検出システム１００に係る制御装置１１０は、中継装置１２０や検出装置１３０の処理を制御する情報処理装置である。具体的には、制御装置１１０は、端末１０や攻撃生成端末２０と、ウェブサーバ３０との間の通信量に関する情報を中継装置１２０から受信する。また、制御装置１１０は、ウェブサーバ３０が確立しているセッション数に関する情報をウェブサーバ３０から、またはウェブサーバ３０の通信リソースを監視する外部装置を経由して受信する。そして、制御装置１１０は、受信した情報に基づいて、ウェブサーバ３０のリソース（通信資源やサーバ資源）に関する異常検知を行う。そして、制御装置１１０は、異常を検知した場合には、後述する所定の処理を実行させるために、中継装置１２０および／または検出装置１３０に指示を送信する。
【００１７】
検出システム１００に係る中継装置１２０は、端末１０および攻撃生成端末２０からの通信を含む、ウェブサーバ３０との間の通信を中継する情報処理装置（またはネットワーク装置）である。中継装置１２０は、ウェブサーバ３０の通信状況に異常を検知した制御装置１１０から送信される指示に基づいて、トラヒックに対するミラーリング（mirroring）を実行して検出装置１３０にトラヒックを送る。ここでミラーリングとは、対象のトラヒックを複製して異なる場所にリアルタイムに送信することをいう。例えば、中継装置１２０が中継するトラヒックを検出装置１３０へミラーリングすることにより、検出装置１３０は、かかるトラヒックに含まれる通信データについて分析等の処理を実行できる。また、中継装置１２０は、検出処理により不正なセッションが特定された場合には、特定された不正なセッションを遮断させるよう、セッションに対するフィルタ処理を実行する。
【００１８】
検出システム１００に係る検出装置１３０は、不正なセッションを検出する情報処理装置である。具体的には、検出装置１３０は、中継装置１２０からミラーリングにより送信されてきたトラヒックに含まれる通信データを所定の検出ルールに基づいて分析することで、不正なセッションを検出する。そして、検出装置１３０は、検出した不正セッションを特定する情報を制御装置１１０へ送信する。詳しくは後述するが、検出装置１３０は、少なくとも、ＴＣＰ／ＩＰプロトコルスタック（Protocol  stack）における情報として、送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号の情報等を特定する。そして、検出システム１００は、不正セッションの検出処理においては既知の技術を利用し、トランスポート層のヘッダ情報の詳細を分析すること等により不正なセッションを検出する。
【００１９】
以下では、検出システム１００が実行する検出処理の一例について、図１乃至図３を用いて詳細に説明する。図１に示すように、検出システム１００は、端末１０および攻撃生成端末２０１〜２０３からウェブサーバ３０へ送信されるトラヒックＴ１〜Ｔ４を中継する。このとき、中継装置１２０は、ウェブサーバ３０への通信量を監視する（ステップＳ１１）。そして、中継装置１２０は、通信量に関する情報を制御装置１１０に通知する（ステップＳ１２）。
【００２０】
また、制御装置１１０は、ウェブサーバ３０から確立したセッション数の通知を受け付ける（ステップＳ１３）。制御装置１１０は、中継装置１２０から送信される通信量、およびウェブサーバ３０から通知されるセッション数に関する情報を定期的にまたは逐次取得する。なお、制御装置１１０は、送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号、プロトコル番号の５タプル（tuple）の組が同じパケット群を同一セッションと判定する。このように、検出システム１００の平常時は、制御装置１１０が通信量およびセッション数に関する情報を取得し、取得された情報に基づいて、以下に説明する「監視モード」に移るか否かを判定している状態をいう。
【００２１】
制御装置１１０は、取得された情報に基づいて、トラヒックの異常を検知する（ステップＳ１４）。ここで、制御装置１１０は、取得された情報が所定の条件を満たすことにより、監視対象であるウェブサーバ３０のリソースに異常が発生したことを検知する。具体的には、制御装置１１０は、中継装置１２０から通知される通信量が所定値より少ない、または平常時の通信量に対する増加分が所定値より少ないにもかかわらず、ウェブサーバ３０から通知される確立したセッション数が所定の閾値より多い場合に、ウェブサーバ３０のリソースに異常が発生したと判断する。すなわち、中継装置１２０が平常時の通信量を観測しているにもかかわらず、ウェブサーバ３０が確立しているセッション数が平常時よりも多くなっているということは、通信量の増大を引き起こさずにセッション数を増大させるような不正通信による攻撃をウェブサーバ３０が受けている可能性が高いと想定されることによる。または、制御装置１１０は、単純にウェブサーバ３０から通知される確立したセッション数が所定の閾値より多い場合に、ウェブサーバ３０のリソースに異常が発生したと判断することとしてもよい。または、制御装置１１０は、ウェブサーバ３０が同時に確立可能な最大セッション数に対して確立されているセッション数の割合が所定の閾値を超えた場合に異常が発生したと判断することとしてもよい。
【００２２】
制御装置１１０は、異常を検知した場合、中継装置１２０に対してトラヒックのミラーリングを行うように指示をする（ステップＳ１５）。中継装置１２０は、指示に従い、検出装置１３０にトラヒックをミラーリングする（ステップＳ１６）。すなわち、検出装置１３０は、ミラーリングにより中継装置１２０を介してウェブサーバ３０との間を流れるトラヒックを受信することで、監視するトラヒックに含まれる通信データと同一の通信データを取得し、取得された通信データから不正セッションの検出処理を試みる。このように、中継装置１２０が検出装置１３０に対してトラヒックのミラーリングを開始した状態を、検出システム１００における「監視モード」と表記する。
【００２３】
次に、図２を用いて、第１の実施の形態に係る検出システム１００による検出処理のうち、図１から継続する処理について説明する。図２は、第１の実施の形態に係る検出システム１００による検出処理の一例を説明する図（２）である。
【００２４】
監視モードの状態において、検出装置１３０が不正セッションを検出した場合、検出装置１３０は、制御装置１１０に不正セッションを検出した結果を通知する（ステップＳ２１）。制御装置１１０は、かかる通知を受信した場合、中継装置１２０に対して、特定されたセッションに該当するクライアントの送信元ＩＰアドレスに対してフィルタをかけるよう指示を送信する（ステップＳ２２）。そして、中継装置１２０は、指示に従い、フィルタを実行する（ステップＳ２３）。フィルタが実行された場合、中継装置１２０は、特定したセッションを切断することができ、また以後の同一ＩＰアドレスからの不正なセッションの確立の試行を防止することができる。このように、中継装置１２０が検出された不正なセッションにフィルタを実施した状態を、検出システム１００における「防御モード」と表記する。
【００２５】
なお、上述のように、検出装置１３０は、トラヒックに係る不正なセッションの検出に関して、既知の種々のロジックを用いることができる。一例として、検出装置１３０は、クライアントとサーバの間を流れるトラヒックから各パケットのＩＰヘッダ情報、およびＴＣＰヘッダ情報を取得し、セッション単位でＴＣＰレイヤでの挙動を解析する。そして、検出装置１３０は、あらかじめ決めた検出ルールセットに基づいて、通常ユーザのセッションと異なる挙動をするセッションを検出して、検出されたセッションを不正なセッションと推定する。
【００２６】
また、制御装置１１０は、検出装置１３０から不正なセッションが検出された旨の通知を受ける際には、不正なセッションを特定する情報（例えば、送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号など）を受信する。そして、制御装置１１０は、受信した情報に基づいて、監視対象であるウェブサーバ３０に関するセッションのうち、特定された不正なセッションに該当するクライアントの送信元ＩＰアドレスに対するフィルタの指示を中継装置１２０に送信する。また、制御装置１１０は、ウェブサーバ３０に対して、不正なセッションに対応するクライアント（ここでは、攻撃生成端末２０１〜２０３）との間に確立したセッション、または、フィルタするＩＰアドレスに該当するセッションすべてを解放する制御信号であるコネクションリセット命令（ＴＣＰリセット信号）をクライアントおよび／またはウェブサーバ３０へ送信する（ステップＳ２４）。これにより、ウェブサーバ３０と攻撃生成端末２０１〜２０３とのセッションが解除され、クライアントおよび／またはウェブサーバ３０内に残っているセッションに関するプロセスが終了する。すなわち、図２に示すように、ウェブサーバ３０と攻撃生成端末２０１〜２０３との間のトラヒックＴ２〜４が途絶える。このように、確立していた不正なセッションが解放されることにより、検出システム１００は、ウェブサーバ３０のセッションに関するリソースを回復させることができる。
【００２７】
次に、図３を用いて、第１の実施の形態に係る検出システム１００による検出処理のうち、図２から継続する処理について説明する。図３は、第１の実施の形態に係る検出システム１００による検出処理の一例を説明する図（３）である。
【００２８】
図３に示すように、中継装置１２０は、中継するトラヒックに関する通信状況を制御装置１１０に通知する（ステップＳ３０）。また、検出装置１３０は、ミラーリングしているトラヒックに関しての検出状況を制御装置１１０に通知する（ステップＳ３１）。そして、制御装置１１０は、双方の装置から通知された各情報により、現在のトラヒックの状況が所定の状態にあるか否かを判定する。例えば、制御装置１１０は、中継装置１２０から、所定時間フィルタの対象となっているＩＰアドレスからの通信が所定量以下となっている旨の情報を取得する。具体的には、制御装置１１０は、１つのＩＰアドレスあたりからの、または、フィルタの対象となっていた前ＩＰアドレスからの通信が、所定量以下（０の場合を含む）となっている状態が所定時間継続された旨の情報を中継装置１２０から取得する。また、制御装置１１０は、所定時間、検出装置１３０がミラーリングしているトラヒックに関して不正なセッションを検出していない旨の情報を取得する（所定時間不正なセッションの検出通知を受けないことでもよい）。そして、制御装置１１０は、取得した各情報に基づいて、不正通信による攻撃が止んだことを判定する。そして、制御装置１１０は、中継装置１２０に対してトラヒックのミラーリングを解除する指示を送信する（ステップＳ３２）。かかる指示を受け付けた中継装置１２０は、検出装置１３０へのミラーリングを解除する（ステップＳ３３）。
【００２９】
さらに、所定時間後、制御装置１１０は、中継装置１２０に指示していたフィルタについて、解除する指示を送信する（ステップＳ３４）。かかる指示により、中継装置１２０は、実施していたフィルタを解除する。そして、検出システム１００は、制御装置１１０が通信量およびセッション数に関する情報を逐次取得するという平常時の状態に戻り、ウェブサーバ３０に対するトラヒックの観測を継続する。
【００３０】
なお、上記のステップＳ３０〜３２において、制御装置１１０は、中継装置１２０および検出装置１３０から所定の通知を受け、かかる通知に含まれる情報に基づいて、ミラーリングやフィルタを解除する指示を出す例について説明した。ここで、制御装置１１０は、中継装置１２０および検出装置１３０から送信される情報のうち、いずれか一方を判断要素として採用してもよく、また制御装置１１０から中継装置１２０へ送信する指示をいずれか一方のみとしてもよい。すなわち、制御装置１１０は、検出装置１３０が不正な通信を検出することなく、および／または中継装置１２０がフィルタしている通信に該当する送信元（例えば、ＩＰアドレスにより判別される）からの通信が所定量以下である状態が所定時間継続された場合に、ミラーリングを解除させる指示、および／またはフィルタを解除させる指示を中継装置１２０へ送信するようにしてもよい。具体的には、制御装置１１０は、検出装置１３０が不正な通信を検出しない場合に、ミラーリングを解除させること、フィルタを解除させること、もしくは、ミラーリング及びフィルタを解除させることのいずれかを指示することができる。また、制御装置１１０は、フィルタしている通信に該当する送信元からの通信が所定量以下である状態が所定時間継続された場合に、ミラーリングを解除させること、フィルタを解除させること、もしくは、ミラーリング及びフィルタを解除させることのいずれかを指示することができる。また、制御装置１１０は、検出装置１３０が不正な通信を検出しない、かつ、フィルタしている通信に該当する送信元からの通信が所定量以下である状態が所定時間継続された場合に、ミラーリングを解除させること、フィルタを解除させること、もしくは、ミラーリング及びフィルタを解除させることのいずれかを指示することができる。このように、制御装置１１０は、通信の監視状況、もしくは監視対象の動向に応じて、柔軟にミラーリング及びフィルタの設定を適切な状態に変更させることができる。
【００３１】
このように、第１の実施の形態に係る検出システム１００は、監視対象であるウェブサーバ３０との通信を中継する中継装置１２０と、検出装置１３０と、制御装置１１０とを備える。制御装置１１０は、ウェブサーバ３０のリソースに関する情報に異常を検知した場合に、中継装置１２０によって中継される通信を検出装置１３０にミラーリングさせる指示を送信する。検出装置１３０は、制御装置１１０によって送信された指示に従って中継装置１２０からミラーリングされた通信の中から、不正な通信を検出する。そして、制御装置１３０は、検出装置１３０による検出処理の結果に基づいて、特定された不正な通信を遮断させる指示を中継装置１２０に送信する。
【００３２】
すなわち、第１の実施の形態に係る検出システム１００は、常時通信に関する精密な検出を行わずとも、ウェブサーバ３０の通信量と、ウェブサーバ３０のリソース（例えば、セッション数）に関する情報とを定期的にまたは逐次取得することにより、通信に対して精密な検出を行うか否かを動的に判定する。これは、不正通信による攻撃の手法の一例であるＳｌｏｗＤｏＳ攻撃に有用な処理手法であるといえる。例えば、ＳｌｏｗＤｏＳ攻撃は、頻繁に発生している可能性は高くないため、常時監視の必要性は低いという特徴がある。また、ＳＱＬインジェクションやサーバの脆弱性を突いたマルウェアの埋込みなどといった侵入攻撃と比べて、ＳｌｏｗＤｏＳ攻撃は、攻撃を受けるネットワークやサーバのリソースを消費させられることになるが、リソースが枯渇しない限りにおいてサービスを継続できる。具体的には、サーバは、許容される最大数までセッションが埋め尽くされない限り新たなセッションを確立することができるため、ある程度の数の不正セッションを張られたとしても自身のサービスを提供し続けることができる。
【００３３】
このような攻撃の特徴に鑑み、検出システム１００は、上述したように、通信量とセッション数との関係性を監視することにより、ミラーリングする通信を抽出し、抽出された通信から不正なセッションを検出する。すなわち、検出システム１００は、不正通信による攻撃の手法に合わせて、常に全ての通信を監視するのではなく、動的に検出する通信を抽出することで、検出処理に係る負荷を軽減させる。これにより、検出システム１００は、検出に係る処理負荷を抑えた上で、不正通信による攻撃を効果的に検出することができる。
【００３４】
［処理手順］
次に、図４を用いて、上述した検出システム１００による検出処理の手順について詳細に説明する。図４は、第１の実施の形態に係る検出システム１００による処理手順を示すフローチャートである。
【００３５】
図４に示すように、制御装置１１０は、通信量およびセッション数など、監視対象であるウェブサーバ３０に関する通信を監視する（ステップＳ１０１）。そして、制御装置１１０は、監視しているウェブサーバ３０において、セッションの異常を検知したか否かを判定する（ステップＳ１０２）。制御装置１１０は、セッションの異常を検知していない場合（ステップＳ１０２；Ｎｏ）、監視を継続する。
【００３６】
一方、セッションの異常を検知した場合（ステップＳ１０２；Ｙｅｓ）、制御装置１１０は、中継装置１２０に対して、トラヒックのミラーリングを開始させる指示を送信する。そして、中継装置１２０は、検出装置１３０に向けてトラヒックのミラーリングを開始する（ステップＳ１０３）。
【００３７】
そして、ミラーリングされているトラヒックに関して、検出装置１３０は、不正セッションを検出したか否かを判定する（ステップＳ１０４）。不正なセッションを検出しない場合（ステップＳ１０４；Ｎｏ）、検出処理を継続し、所定時間が経過したか否かを判定する（ステップＳ１０５）。所定時間が経過していない間は（ステップＳ１０５；Ｎｏ）、検出装置１３０は、検出処理を継続する。所定時間が経過した場合（ステップＳ１０５；Ｙｅｓ）、検出装置１３０は、制御装置１１０に不正なセッションが検出されない旨を送信する。そして、制御装置１１０は、ミラーリング解除の指示を中継装置１２０へ送信することで、ミラーリングを解除させる（ステップＳ１０６）。そして、検出システム１００は、通信を監視するステップに戻る（Ｓ１０１）。
【００３８】
一方、検出装置１３０は、ステップＳ１０４において、不正なセッションを検出した場合には（ステップＳ１０４；Ｙｅｓ）、不正なセッションを特定する情報を送信する。そして、かかる情報を受信した制御装置１１０の指示に従い、中継装置１２０は、不正なセッションに該当する送信元ＩＰアドレスに対するフィルタを開始する（ステップＳ１０７）。
【００３９】
続いて、検出装置１３０は、不正セッションが所定時間検出されなくなったか否かを判定する（ステップＳ１０８）。不正セッションを検出している間は（ステップＳ１０８；Ｎｏ）、検出装置１３０は、検出を継続する。一方、不正セッションを所定時間検出しなくなったら（ステップＳ１０８；Ｙｅｓ）、検出装置１３０は、かかる情報を制御装置１１０に送信する。そして、制御装置１１０は、ミラーリング解除の指示を中継装置１２０へ送信する。これにより、中継装置１２０は、ミラーリングを解除する（ステップＳ１０９）。
【００４０】
ミラーリングが解除された後においても、中継装置１２０は、端末１０や攻撃生成端末２０からの通信の中継を継続し、セッションの試行が所定時間止んだか否かを判定する（ステップＳ１１０）。所定時間が経過していない場合は（ステップＳ１１０；Ｎｏ）、中継装置１２０は、セッションの試行に関する観測を続ける。
【００４１】
一方、所定時間が経過した場合は（ステップＳ１１０；Ｙｅｓ）、中継装置１２０は、中継するトラヒックにおいて、フィルタ設定している通信が観測されない旨の情報を制御装置１１０に送信する。そして、制御装置１１０からの指示に従い、中継装置１２０は、フィルタを解除する（ステップＳ１１１）。検出システム１００は、上記の処理を繰り返し実行する（ステップＳ１０１）。
【００４２】
なお、上述したように、制御装置１１０は、不正セッションが所定時間検出されなくなったという検出装置１３０からの通知のみを判断要素としてミラーリングを解除する指示を出してもよいし、セッションの試行が所定時間止んだという中継装置１２０からの通知と併せて、ミラーリング及びフィルタの解除の指示を行ってもよい。また、制御装置１１０は、所定時間不正な通信を検出しないことを契機にミラーリングを解除するだけでなく、所定時間不正な通信の検出数が所定値以下である場合もミラーリング解除の対象としてもよい。すなわち、図４におけるステップＳ１０８〜Ｓ１１１の処理手順は、制御装置１１０がミラーリング及びフィルタ解除の指示に係る判断要素によって、柔軟に変更可能である。
【００４３】
［第１の実施の形態の効果］
【００４４】
このように、第１の実施の形態に係る検出システム１００は、常に全ての通信を監視するのではなく、動的に検出する通信を抽出することで、検出処理に係る負荷を軽減させる。これにより、検出システム１００は、検出に係る処理負荷を抑えた上で、不正通信による攻撃を効果的に検出することができる。
【００４５】
［第２の実施の形態］
以下では、第２の実施の形態に係る検出システムの構成および処理を説明し、最後に第２の実施の形態による効果を説明する。
【００４６】
［第２の実施の形態に係る検出処理の一例］
まず、図５を用いて、第２の実施の形態に係る検出システム１００による検出処理の一例を説明する。図５は、第２の実施の形態に係る検出システム１００による検出処理の一例を説明する図である。図５に示すように、検出システム１００は、制御装置１１０、中継装置１２０、検出装置１３０に加え、蓄積装置１４０を有する。なお、以下の説明において、第１の実施の形態において説明した内容については説明を省略する。また、図５においては、クライアントとウェブサーバ３０との通信をトラヒックＴ１１として示しているが、かかる通信を行うクライアントの図示は省略する。
【００４７】
第１の実施の形態において、検出システム１００は、通信の異常を検知し、不正なセッションを検出する例を示した。すなわち、第１の実施の形態に係る検出システム１００が実行する検出処理は、検出装置１３０による検出処理の開始後に観測可能な不正なセッションを検出するものであり、適用される不正なセッションを検出する検出ルールによっては、例えばセッション開始時の通信から監視する必要がある検出ルールが適用された場合、既に確立済みのセッションについては検出が難しくなってしまう場合がある。
【００４８】
そこで、第２の実施の形態に係る検出システム１００は、監視モードに移行する以前から、ウェブサーバ３０とクライアントとの通信に係る情報を蓄積しておく。具体的には、第２の実施の形態に係る検出システム１００が備える蓄積装置１４０は、中継装置１２０が中継するウェブサーバ３０とクライアントとのトラヒックをミラーリングすることで、トラヒックに係るデータ（すなわち、ウェブサーバ３０に関する通信データ）を蓄積し続ける。このとき、蓄積装置１４０は、蓄積しているデータ量が上限に近付くと、記憶している時間が古い順に通信データを破棄し、空き領域を確保して新たに入力される通信データを蓄積する。または、破棄してよいと判断した古い情報を新たに入力される情報で上書きすることとしてもよい。そして、蓄積装置１４０は、ウェブサーバ３０の通信量やセッション数の状況に異常が検知されたこと、または、中継装置１２０が制御装置１１０によって送信された指示に従ってミラーリングを開始したこと／開始すること（言い換えれば、制御装置１１０が中継装置１２０に対してミラーリング指示を送信したこと／送信すること）、または、検知装置１３０の不正なセッション検知により制御装置１１０が所定数の不正なセッションに関する通知を受けたことを契機として、制御装置１１０からの指示を受けて、蓄積したデータを検出装置１３０に流し込む。これにより、検出装置１３０は、トラヒックのミラーリングを開始した以前のセッションについて、蓄積されていたデータの分だけ遡って不正なセッションを検出することが可能となる。
【００４９】
以下、第２の実施の形態に係る検出システム１００が実行する検出処理の一例について、図５を用いて詳細に説明する。図５に示すように、検出システム１００に係る中継装置１２０は、クライアントからウェブサーバ３０へ送信されるトラヒックＴ１１を中継する。このとき、蓄積装置１４０は、トラヒックＴ１１に係る通信データを所定の蓄積部に蓄える蓄積処理を行う（ステップＳ４１）。
【００５０】
ここで、制御装置１１０は、ウェブサーバ３０に関する通信に異常を検知したものとする（ステップＳ４２）。そして、第１の実施の形態と同様に、制御装置１１０は、中継装置１２０に対してトラヒックＴ１１のミラーリング指示を送信する（ステップＳ４３）。そして、制御装置１１０は、ミラーリング指示を送信したことを契機として、蓄積装置１４０に対して、蓄積されているデータの流し込み処理を行うよう指示を送信する（ステップＳ４４）。なお、制御装置１１０は、上述のように、ミラーリング指示を送信したこと（あるいは、送信すること）のみならず、例えば、ウェブサーバ３０の通信量やセッション数の状況に異常が検知されたこと、または、検知装置１３０の不正なセッション検知により制御装置１１０が所定数の不正なセッションに関する通知を受けたこと等のいずれかを契機として、流し込み処理を行うよう指示を送信してもよい。これは、通信に異常が検知されたことや、不正セッションが検知されたことは、ミラーリング開始された時点において既に確立しているセッションの中にも不正セッションがある可能性が高いことが想定されるからである。
【００５１】
そして、第１の実施の形態と同様に、中継装置１２０は、検出装置１３０へトラヒックをミラーリングする（ステップＳ４５）。このとき、蓄積装置１４０は、検出装置１３０に流し込むための蓄積したデータであって、検出処理に有用なデータを検出装置１３０に流し込む（ステップＳ４６）。そして、検出装置１３０は、中継装置１２０から直接的にミラーリングした通信のみならず、蓄積装置１４０から流し込まれた通信も含めて、不正なセッションを検出する。そして、検出装置１３０は、検出結果を制御装置１１０に通知する（ステップＳ４７）。
【００５２】
このように、第２の実施の形態に係る検出システム１００は、中継装置１２０によって中継される通信に係る情報である通信データ（トラヒック、例えば、ミラーリングされたパケットそのものでもよいし、検出装置１３０に適用されている検出ルールによる判定に必要な情報を抽出、整形した通信データでもよい）を蓄積するとともに、蓄積可能な容量の上限に達する前に、蓄積している通信データを所定の順に廃棄する蓄積装置１４０をさらに備える。蓄積装置１４０は、蓄積された通信データのうち、検出装置１３０が制御装置１１０によって送信された指示に従ってミラーリングを開始したタイミング以前に蓄積された通信データを検出装置１３０に送信する。そして、検出装置１３０は、制御装置１１０によって送信された指示に従ってミラーリングされた通信、および蓄積装置１４０から送信された通信データの中から、不正な通信を検出する。
【００５３】
すなわち、第２の実施の形態に係る検出システム１００は、第１の実施の形態に加えて、検出を行う通信に関するバッファ（buffer）機構を備え、かかるバッファに蓄積された通信に関しても不正なセッションを検出する処理を行うことができる。言い換えれば、第２の実施の形態に係る検出システム１００は、監視モードに移行した時点で既に確立しているセッションに対しても、蓄積されたトラヒック分だけ遡って不正なセッションを検出できる。このように、第２の実施の形態に係る検出システム１００は、第１の実施の形態と比較して、検出処理の対象となるセッションを増大させることができるので、より多くの不正なセッションを検出することが期待できる。また、第２の実施の形態に係る検出システム１００において、セッションが開始される時点からの挙動に基づいて不正を検出するロジックなどが検出処理に用いられているような場合には、第２の実施の形態に係る検出システム１００は、より不正なセッションを検出する精度を向上させることができる。
【００５４】
［蓄積装置１４０の構成］
以下では、上述してきた第２の実施の形態に係る蓄積装置１４０を構成する各処理部について、図６乃至図８を用いて詳細に説明する。まず、図６を用いて、第２の実施の形態に係る蓄積装置１４０の構成について説明する。図６は、第２の実施の形態に係る蓄積装置１４０の構成の一例を示す図である。図６に例示するように、蓄積装置１４０は、ＩＦ部１４１と、蓄積部１４２と、制御部１４５とを有する。
【００５５】
ＩＦ部１４１は、例えば、ＮＩＣ（Network  Interface  Card）等であり、外部装置との間で各種データを送受信する。例えば、ＩＦ部１４１は、制御装置１１０、中継装置１２０、あるいは検出装置１３０との間で通信に関する情報を送受信する。
【００５６】
蓄積部１４２は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。図６に示すように、蓄積部１４２は、通信データ蓄積部１４３と、抽出セッション蓄積部１４４とを有する。
【００５７】
（通信データ蓄積部１４３について）
通信データ蓄積部１４３は、中継装置１２０を介するトラヒックに含まれる通信データ（パケットやパケットの一部分など）を逐次取得し、蓄積する。ここで、図７に、第２の実施の形態に係る通信データ蓄積部１４３の一例を示す。図７に示すように、通信データ蓄積部１４３は、「通信データ番号」、「送信元ＩＰアドレス」、「送信元ポート番号」、「宛先ＩＰアドレス」、「宛先ポート番号」、「プロトコル番号」、「パケットサイズ」といった項目を有する。
【００５８】
「通信データ番号」は、クライアントとウェブサーバ３０とのトラヒックに係る通信データを識別する番号を示す。ここでは、通信データ番号は、データが蓄積装置１４０に蓄積された順番に番号が振られる例を示している。
【００５９】
「送信元ＩＰアドレス」は、通信データを送信している送信元を特定するＩＰアドレスを示す。ここでは、送信元ＩＰアドレスは、クライアント、またはウェブサーバ３０を特定する情報となる。「送信元ポート番号」は、送信元のデータ送信に利用されているポート番号を示す。
【００６０】
「宛先ＩＰアドレス」は、通信データの送信先である宛先を特定するＩＰアドレスを示す。「宛先ポート番号」は、通信データの送信先である宛先側が利用するポート番号を示す。「プロトコル番号」は、通信に使用されているプロトコルを識別する番号を示す。「パケットサイズ」は、データ通信に係るパケットの通信量を示す。
【００６１】
すなわち、図７では、通信データ番号が「００１」である通信データは、送信元ＩＰアドレスが「ＡＡＡ」であり、送信元ポート番号が「１１１１１」であり、宛先ＩＰアドレスが「ＳＳＳ」であり、宛先ポート番号が「８０」であり、プロトコル番号が「６」であり、パケットサイズが「１００」である例を示している。
【００６２】
なお、図７での図示は省略しているが、ＴＣＰに着目した検出ルールが検出装置１３０に適用される場合は、通信データ蓄積部１４３に蓄積される各データには、蓄積された時間や、ＴＣＰフラグや、シーケンス番号や、Ｗｉｎｄｏｗサイズ、通信におけるヘッダサイズや、ペイロード等に関する情報が含まれてもよい。
【００６３】
（抽出セッション蓄積部１４４について）
抽出セッション蓄積部１４４は、通信データ蓄積部１４３に蓄積されたデータを、セッション抽出部１４６によって抽出されたセッション単位で蓄積する。ここで、図８に、第２の実施の形態に係る抽出セッション蓄積部１４４の一例を示す。図８に示すように、抽出セッション蓄積部１４４は、「セッション識別子」、「番号」、「送信元ＩＰアドレス」、「送信元ポート番号」、「宛先ＩＰアドレス」、「宛先ポート番号」、「プロトコル番号」、「時間」、「パケットサイズ」といった項目を有する。なお、図７で説明した項目については、説明を省略する。
【００６４】
「セッション識別子」は、通信データをセッション毎に抽出する場合に、セッションを識別するために付与される識別情報を示す。「番号」は、データが蓄積された時間の早い順に、同一セッションに含まれるデータに対して振られた順番を示す。
【００６５】
「時間」は、データが蓄積された時間を示す。なお、抽出セッション蓄積部１４４は、セッション単位で通信データを蓄積するとともに、セッション単位ごとに蓄積の上限を設定する。図８に示した例では、一つのセッションとして同一のセッション識別子が付与されるデータは、番号「１」のデータの時間から１分の間に蓄積されるデータであるものとする（例えば、検出ルールがセッション開始から所定時間、仮に１分間分やりとりされる通信データで判定できる場合など）。例えば、「２０１４年１２月１１日１０時００分００秒」に所定の通信データが蓄積された場合には、「２０１４年１２月１１日１０時０１分００秒」までに蓄積された通信データであって、同一のセッションに含まれる通信データに対して、同一のセッション識別子が付与される。
【００６６】
すなわち、図８では、セッション識別子「００１」で識別されるデータであって、かかる通信データは、セッション識別子「００１」における番号が「１」であり、送信元ＩＰアドレスが「ＡＡＡ」であり、送信元ポート番号が「１１１１１」であり、宛先ＩＰアドレスが「ＳＳＳ」であり、宛先ポート番号が「８０」であり、プロトコル番号が「６」であり、時間が「２０１４年１２月１１日１０時００分００秒」であり、パケットサイズが「１０００」である例を示している。
【００６７】
なお、図８での図示は省略しているが、ＴＣＰに着目した検出ルールが検出装置１３０に適用される場合は、抽出セッション蓄積部１４４に蓄積される各データには、ＴＣＰフラグや、シーケンス番号や、Ｗｉｎｄｏｗサイズ、通信におけるヘッダサイズや、ペイロード等に関する情報が含まれてもよい。
【００６８】
（制御部１４５について）
制御部１４５は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現される。また、制御部１４５は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、図示しない記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部１４５は、図６に示すように、セッション抽出部１４６と、セッション管理部１４７とを備え、データを蓄積する処理を実行する。以下、各処理部について説明する。
【００６９】
（セッション抽出部１４６について）
セッション抽出部１４６は、通信データ蓄積部１４３に蓄積されている通信データから、検出装置１３０が行う不正なセッションの検出処理に用いられるデータを抽出する。そして、セッション抽出部１４６は、抽出したデータをセッション単位で抽出セッション蓄積部１４４に蓄積する。
【００７０】
また、セッション抽出部１４６は、検出装置１３０による検出処理には用いられないと想定される通信データを優先的に廃棄するとともに、検出装置１３０による検出処理に用いられることが想定される通信データを優先的に蓄積するようにしてもよい。例えば、セッション抽出部１４６は、通信データ蓄積部１４３が蓄積している通信データから不正なセッションの検出処理に用いられる通信データを抽出する場合に、所定の条件に該当する通信データを優先的に抽出して蓄積することとしてもよい。この場合、セッション抽出部１４６は、所定の条件に該当しない通信データについては、蓄積することを要しないため、廃棄することができる。これにより、セッション抽出部１４６は、抽出セッション蓄積部１４４に蓄積されるデータ量の増大を抑えることができる。
【００７１】
具体的には、セッション抽出部１４６は、所定の条件として、通信データの蓄積された時間情報を用いることができる。すなわち、セッション抽出部１４６は、所定のセッションにおいて、セッション開始から所定時間内（例えば、数分間など）のパケットや、所定のセッション中の任意の起点から所定時間内（例えば、数分間など）のパケットを抽出して、抽出セッション蓄積部１４４に蓄積する。
【００７２】
また、セッション抽出部１４６は、所定の条件として、通信量であるパケット数を基準にして、蓄積する通信データを抽出してもよい。すなわち、セッション抽出部１４６は、所定のセッションにおいて、セッション開始から所定量のパケットや、所定のセッション中の任意の起点から所定量のパケットを抽出して、抽出セッション蓄積部１４４に蓄積する。
【００７３】
また、セッション抽出部１４６は、検出装置１３０の不正なセッションの判定処理に用いる通信データとして、通信データのペイロード部分のデータが不要な場合には、通信データのペイロード部分を０バイト、または小サイズに加工したうえで、抽出セッション蓄積部１４４に蓄積してもよい。
【００７４】
（セッション管理部１４７について）
セッション管理部１４７は、通信データ蓄積部１４３や、抽出セッション蓄積部１４４に蓄積されたデータの入出力について管理する。具体的には、セッション管理部１４７は、制御装置１１０からデータの流し込みの指示を受けたことを契機に、かかる指示に対応する通信データを検出装置１３０へ流し込む（送信する）処理を実行させる。また、セッション管理部１４７は、通信データ蓄積部１４３や、抽出セッション蓄積部１４４の使用状況を監視し、通信データ蓄積部１４３や、抽出セッション蓄積部１４４に蓄積されるデータ量に所定の閾値を設定しておくことによって、蓄積可能な容量の上限に達する前に、不要となった通信データを廃棄する。例えば、セッション管理部１４７は、検出装置１３０による検出処理には用いられないと想定される通信データを優先的に廃棄するとともに、検出装置１３０による検出処理に用いられることが想定される通信データを優先的に蓄積するように管理する。
【００７５】
セッション管理部１４７は、検出装置１３０へ通信データを流し込む際には、不正なセッションを検出するのに有用であると特定されるセッションに関する通信データを流し込む。例えば、セッション管理部１４７は、通信データの流し込みに関する指示を制御装置１１０から受信し、受信した指示によって特定された通信データを流し込む。すなわち、制御装置１１０は、中継装置１２０にミラーリング対象を指示するとともに、同対象に関する通信データが蓄積装置１４０に蓄積されている場合は、蓄積装置１４０から検出装置１３０に対して当該通信データの流し込みを指示する。具体的には、セッション管理部１４７は、制御装置１１０からの指示に含まれる情報に従い、抽出セッション蓄積部１４４内の通信データと、検出装置１３０にミラーリングされている通信データとに含まれるＩＰアドレス等の情報から流し込むセッションを特定する。
【００７６】
そして、セッション管理部１４７は、セッション識別子ごとにまとめられている抽出セッション蓄積部１４４内の通信データを検出装置１３０に流し込む。上述のように、蓄積装置１４０が通信データをパケットキャプチャ形式で蓄積している場合には、セッション管理部１４７は、通信データをパケット形式で検出装置１３０へ送信する。なお、通信データをパケット形式ではなく、不正な検出に要する特徴のみを抽出した通信データであって、外部へパケットとして送信できない形式の通信データ（例えば、ファイル形式でのみ送信可能なデータ）として蓄積しているような場合には、セッション管理部１４７は、かかる通信データを送信可能な形式に変換して検出装置１３０に送信する。この場合、検出装置１３０は、蓄積装置１４０から受信した情報に基づいて、不正なセッションの検出処理が可能な構成を有するものとする。例えば、検出装置１３０は、パケット形式のみならず、通信データの特徴を示すファイル形式の通信データを読み込み可能な構成を有する。
【００７７】
また、セッション管理部１４７は、中継装置１２０からトラヒックをミラーリングせずに、通信データ蓄積部１４３でトラヒックを蓄積しつつ、あるいはトラヒックをバッファリングすることにより、不正検出処理を継続できる通信レートに制限をかけて、通信データを検出装置１３０へ流し込むこととしてもよい。
【００７８】
また、セッション管理部１４７は、検出装置１３０に流し込んだ通信データに関しては、順次、蓄積部１４２から廃棄していくものとする。これは、セッション管理部１４７は、検出システム１００が監視モードになる前から張られ続けているセッションを監視すること（すなわち、既に確立しているセッションに関する不正を検出すること）を目的として通信データを管理しているため、検出装置１３０に流し込んだセッションに対応する通信データや、既に終了したセッションに対応する通信データを蓄積し続ける要請がないことによる。このため、セッション管理部１４７は、これらのセッションに該当する情報を通信データ蓄積部１４３や抽出セッション蓄積部１４４から優先的に廃棄するように、蓄積された通信データを管理する。例えば、制御装置１１０は、ウェブサーバ３０の確立しているセッションに関する情報を定期的に収集し、該当セッションが存続していることを示す情報を収集できなかったことを契機に、当該セッションが終了したものとみなし、終了したものとみなしたセッションに関する情報を廃棄するように指示する。
【００７９】
例えば、セッション管理部１４７は、プロトコルがＴＣＰの場合、送受信における少なくとも一方向からＲＳＴ（リセット）フラグが含まれ、また、双方向からＦＩＮ（終了）フラグが含まれるパケットを確認した場合には、セッション終了とみなして、かかるパケットに対応するセッションに該当する情報を廃棄する。また、セッション管理部１４７は、抽出セッション蓄積部１４４に蓄積されたデータにおいて、セッション毎にｐｐｓ（packet  per  second）、またはｂｐｓ（bit  per  second）を計測し、所定値よりも小さくないセッションはＳｌｏｗＤｏＳ攻撃に該当しないものと判断して、廃棄することとしてもよい。
【００８０】
また、セッション管理部１４７は、中継装置１２０が設定したフィルタによって、フィルタされたＩＰアドレスに該当するセッションが取得される場合には、かかる情報を蓄積しないようにしてもよい。また、セッション管理部１４７は、中継装置１２０が設定したフィルタによって、フィルタされたＩＰアドレスに該当するセッション情報が蓄積されている場合には、例えば、制御装置１１０からの指示に基づいて、優先的に廃棄してもよい。なお、中継装置１２０が設定したフィルタが解除された場合には、セッション管理部１４７は、かかるＩＰアドレスに該当するセッション情報を再び蓄積するようにする。
【００８１】
上記のように、蓄積装置１４０について説明してきたが、蓄積装置１４０は、検出装置１３０を構成する各処理部として、検出装置１３０内に組み込まれて機能してもよい。
【００８２】
［処理手順］
次に、図９を用いて、第２の実施の形態に係る検出システム１００による検出処理の手順について詳細に説明する。図９は、第２の実施の形態に係る検出システム１００による処理手順を示すフローチャートである。
【００８３】
図９に示すように、蓄積装置１４０は、中継装置１２０が中継するクライアントとウェブサーバ３０間の通信データを蓄積する（ステップＳ２０１）。そして、蓄積装置１４０は、蓄積したデータをセッションごとに抽出する（ステップＳ２０２）。
【００８４】
そして、制御装置１１０は、監視している通信において、セッションに関する異常を検知したか否かを判定する（ステップＳ２０３）。制御装置１１０がセッションに関する異常を検知していない場合（ステップＳ２０３；Ｎｏ）、蓄積装置１４０は、例えば、通信データの蓄積から所定時間経過後などの条件に応じて、蓄積した通信データのうち、検出処理には使用しないと想定される通信データを廃棄する（ステップＳ２０４）。
【００８５】
一方、セッションに関する異常を検知した場合（ステップＳ２０３；Ｙｅｓ）、制御装置１１０は、中継装置１２０に対して、通信データのミラーリングを開始させる指示を送信する。そして、中継装置１２０は、検出装置１３０にミラーリングを開始する（ステップＳ２０５）。
【００８６】
そして、中継装置１２０がミラーリングを開始したことを契機として、制御装置１１０からの指示に基づいて蓄積装置１４０は、ミラーリングの対象となったセッションに対応する蓄積データを検出装置１３０に流し込む処理を開始する（ステップＳ２０６）。
【００８７】
これにより、検出装置１３０は、蓄積装置１４０が蓄積していた通信データについても検出処理の対象とすることができるので、ミラーリングの開始時点よりも遡って不正なセッションを検出することが可能になる。なお、ステップＳ２０６以降の処理は、図４のステップＳ１０４以降の処理と共通するため、説明を省略する。また、ステップＳ２０４で記載した通信データの廃棄処理に関しては、必ずしも上記のタイミングで行う必要はなく、蓄積装置１４０は、蓄積量の上限値等に基づいて、順次通信データを廃棄してもよい。
【００８８】
［第２の実施の形態の効果］
このように、第２の実施の形態に係る検出システム１００は、通信データを蓄積する蓄積装置１４０を備えることにより、予め蓄積された通信データを利用して不正なセッションを検出する処理を行うことができる。これにより、第２の実施の形態に係る検出システム１００は、第１の実施の形態と比較して、検出処理の対象となるセッションを増大させることができるので、より多くの不正なセッションを検出することできる。
【００８９】
また、第２の実施の形態に係る蓄積装置１４０は、検出装置１３０による検出処理には用いられないと想定される通信データを優先的に廃棄するとともに、検出装置１３０による検出処理に用いられることが想定される通信データを優先的に蓄積する。
【００９０】
このように、第２の実施の形態に係る検出システム１００は、ウェブサーバ３０との通信で発生する大量の通信データから優先的に蓄積する通信データを判定することによって、蓄積可能な容量の上限を超えないように、かつ、検出処理に有用な通信データを適切に蓄積することができる。これにより、第２の実施の形態に係る検出システム１００は、検出処理にかかる負荷を軽減させることができる。蓄積可能な容量の上限は、例えば、直近の所定時間、所定データサイズの容量、所定数のパケットなど、とすることとしてもよい。
【００９１】
また、第２の実施の形態に係る蓄積装置１４０は、セッション単位で通信データを蓄積するとともに、セッション単位ごとに蓄積の上限を設定する。蓄積可能な容量の上限は、例えば、セッション毎に、セッション開始からまたは直近の、所定時間、所定データサイズの容量、所定数のパケットなど、とすることとしてもよい。上限を超える場合は、セッション単位で廃棄される。例えば、セッション開始時刻が古いセッションからセッション単位で廃棄されることとしてもよい。
【００９２】
このように、第２の実施の形態に係る検出システム１００によれば、ウェブサーバ３０とクライアントとの間で成立した通信であるセッション単位で通信データを管理するので、検出処理等に有用な通信データを適切に送信したり、蓄積したりすることができる。
【００９３】
また、第２の実施の形態に係る蓄積装置１４０は、監視対象であるウェブサーバ３０との通信に係る情報である通信データを蓄積する蓄積部１４２と、蓄積部１４２によって蓄積された通信データの中から、セッション単位で通信データを抽出するセッション抽出部１４６と、ウェブサーバ３０との通信に異常が検知されたことを契機として、通信を分析することによって不正な通信を検出する装置である検出装置に、セッション抽出部１４６によって抽出された通信データを送信する送信部（ここでは、セッション管理部１４７）とを備える。
【００９４】
このように、第２の実施の形態に係る蓄積装置１４０は、不正なセッションを検出するシステムにおいて、検出処理が実行される前に予め通信を蓄積しておくバッファ機構として動作する。これにより、第２の実施の形態に係る蓄積装置１４０は、監視対象である通信に異常が検知された時点よりも遡った通信データを提供することができるので、不正なセッションを検出する対象範囲を広くすることができる。
【００９５】
［第３の実施の形態］
上述した実施形態では、検出システム１００は、不正セッションと判断した場合にフィルタを設定し、フィルタが設定された送信元ＩＰアドレスからの通信が止んだ後に、防御モード解除する例を示した。具体的には、検出システム１００は、フィルタが設定された送信元ＩＰアドレスからの通信が止み、所定時間経過後に、設定したフィルタを解除する例を示した。
【００９６】
しかしながら、上記の処理手法によっては、断続的に発生する攻撃に対して対策が不十分となるおそれがある。すなわち、所定時間経過後にフィルタが解除された後であっても、当該不正セッションに該当する送信元ＩＰアドレスからの通信の監視を実施し、断続的に攻撃が発生していないか否かを判断することが望ましい。そこで、検出システム１００は、以下に説明する処理により、フィルタ解除後の通信を監視する。
【００９７】
まず、検出システム１００に係る制御装置１１０は、所定のＩＰアドレスに対して設定されているフィルタについて、当該ＩＰアドレスからの通信が止んだ所定時間経過後に中継装置１２０よりその旨の通知を受けることにより、フィルタを解除する旨を中継装置１２０へ指示する。あるいは、制御装置１１０は、フィルタ設定時のタイマー設定により、所定時間経過後に当該フィルタが解除される旨を指示するようにしてもよい。
【００９８】
そして、制御装置１１０は、フィルタ解除後に、中継装置１２０に指示をフィルタ設定していた同一ＩＰアドレスのトラヒックを監視させる。具体的には、制御装置１１０は、当該ＩＰアドレスに対して設定されているフィルタを解除するときに、同一ＩＰアドレスによるトラヒックを検出装置１３０へミラーリングさせる旨を中継装置１２０へ指示する。あるいは、制御装置１１０は、フィルタが設定される際に、フィルタ解除を契機として、ミラーリングが有効化される旨を指示しておいてもよい。
【００９９】
そして、制御装置１１０は、かかるミラーリングにより当該ＩＰアドレスを送信元とする不正なコネクション（言い換えれば、不正セッション）が検出された場合には、再び当該ＩＰアドレスに対してフィルタを設定させる。すなわち、制御装置１１０は、検出装置１３０から不正セッション検出の通知を受けた場合に、中継装置１２０に対してフィルタを設定する旨の指示を送信する。
【０１００】
このとき、制御装置１１０は、フィルタ設定が有効な所定時間として、最初にフィルタを設定したときと同一か、もしくは、より長い所定時間を設定してもよい。例えば、制御装置１１０は、最初のフィルタが有効な所定時間が「３分」であった場合には、２回目のフィルタの所定時間を「６分」に設定する。さらに、制御装置１１０は、３回目のフィルタを設定する場合には、所定時間を「９分」に設定する。
【０１０１】
［第３の実施の形態の効果］
このように、第３の実施の形態に係る検出システム１００は、所定時間を長くして繰り返しフィルタを設定することにより、断続的に発生する不正な通信に対する対策効果を向上させることができる。
【０１０２】
（フィルタの解除処理について）
なお、上記のように、検出システム１００が、不正な通信が観測されなくなった後にフィルタを解除する処理を行うことが望ましい点について、以下に説明する。
【０１０３】
不正な通信による攻撃（例えば、ＳｌｏｗＤｏＳ攻撃等）は、攻撃者が自らのクライアントを使用して攻撃する場合もあるが、ボット（bot）を仕込んだ多数のクライアントを遠隔操作することにより、標的システムに対して異なる複数のＩＰアドレスから不正セッションの確立を試行する場合がある。このとき、セキュリティ対策等によりボットを駆除されたクライアントからの通信は、正常な通信となる。
【０１０４】
一方、プロキシ（proxy）や、ＮＡＴ（Network  Address  Translation）、ＣＧＮ（Career  Grade  NAT）などを介した通信は、複数のクライアントからの通信であっても、共用する１つのＩＰアドレスからの通信とみなされる。
【０１０５】
すなわち、検出した不正セッションの送信元ＩＰアドレスに基づいてフィルタすると、攻撃者からの通信のみをフィルタしていることとはならない場合がある。したがって、検出システム１００は、検出した不正セッションに該当する送信元ＩＰアドレスを永続的にフィルタするのではなく、攻撃が止んだらフィルタを解除することが望ましい。
【０１０６】
このとき、検出システム１００は、完全に攻撃が止んだことを確認できた後でフィルタを解除するのが望ましいが、かかる判断が難しい場合がある。そのため、上記の第３の実施の形態で行われる処理や、あるいは、ウェブサーバ３０に対して相当数のセッション確立を試行する通信が観測されなくなった場合や、ウェブサーバ３０が確立可能なセッション数として所定数の余裕が確保された場合等に、検出システム１００は、フィルタ解除することとしてもよい。前者では、中継装置１２０がこの観測結果を制御装置１１０へ通知し、後者では、ウェブサーバ３０が制御装置１１０へ通知することで、制御装置１１０が中継装置１２０に対してフィルタ解除を指示する。
【０１０７】
［第４の実施の形態］
上述した実施形態では、検出システム１００は、監視対象であるウェブサーバ３０に対して、確立しているセッション数が所定の閾値を超えた場合に、不正な通信が発生している可能性があると判断し、監視モードに移行する例を示した。ここで、検出システム１００は、確立したセッション数が所定の閾値を超えた場合以外であっても、不正な通信が発生している可能性があると判断し、監視モードに移行するようにしてもよい。
【０１０８】
例えば、検出システム１００は、確立したセッション数の増加率に着目し、監視モードに移行するようにしてもよい。この場合、制御装置１１０は、ウェブサーバ３０、あるいは、ウェブサーバ３０のリソースを監視する外部装置から、確立したセッションに関する情報について定期的に通知を受ける。そして、制御装置１１０は、確立しているセッション数の単位時間当たりの増加率を算出し、算出した値と予め設定している閾値とを比較する。そして、制御装置１１０は、算出した値が予め設定している閾値を超過しているか否かを判定する。超過していた場合、制御装置１１０は、中継装置１２０に対してミラーリングを実行させる指示を送信し、監視モードに移行させる。
【０１０９】
なお、検出システム１００は、確立したセッション数のうち、所定時間以上確立しているセッション数、または、セッション数の増加率に基づいて、監視モードに移行してもよい。すなわち、制御装置１１０は、ウェブサーバ３０、あるいは、ウェブサーバ３０のリソースを監視する外部装置から、送信元ＩＰアドレスと送信元ポート番号を組としたセッション毎の継続時間に関する情報の通知を受ける。例えば、ウェブサーバ３０内で確立しているセッション毎の情報の通知を定期的に受けることで、制御装置１１０は各セッションについて最初に通知を受けた時刻を契機に継続時間を算出することとしてもよい。そして、制御装置１１０は、通知された継続時間が所定時間を超えているセッションに関して、確立している数、または増加率が予め設定している閾値を超える場合に、監視モードに移行させる。
【０１１０】
［第４の実施の形態の効果］
このように、第４の実施の形態に係る検出システム１００は、ウェブサーバ３０に関して、セッション数のみならず、増加率や、セッションの確立している継続時間などといった要素も判定対象として監視を行う。このため、第４の実施の形態に係る検出システム１００は、攻撃者からの種々の攻撃手法に対して、柔軟に対応して不正なセッションを検出することができる。
【０１１１】
［その他の実施例］
上述した各実施形態に係る検出システム１００は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、検出システム１００の他の実施形態について説明する。
【０１１２】
上述してきた検出システム１００は、通信キャリア網やＩＳＰ網以外に設置されてもよい。例えば、検出システム１００は、データセンタ上に構築されるクラウドサービスを守るため、データセンタ側に設置されてもよい。
【０１１３】
また、上記では、中継装置１２０に設定するフィルタ単位をクライアントの送信元ＩＰアドレスとしていたが、不正セッションに該当する送信元ＩＰアドレスと送信元ポート番号の組や、または、さらに宛先ＩＰアドレスと宛先ポート番号とを合せた組としてもよい。また、検出システム１００は、不正と判断したセッションに対するフィルタとして、ＩＰアドレス単位に設定してもよいし、ＩＰアドレスとポート番号の組単位で設定してもよい。また、検出システム１００は、フィルタするＩＰアドレスについて、確立している不正セッション数が多いＩＰアドレスから順に、上位Ｎ個分（Ｎは自然数）についてフィルタするように予め設定しておいてもよい。または、ＩＰアドレスに対して、確立しているセッション数に対する確立している不正セッション数の割合が所定値以上のＩＰアドレスについてフィルタするように予め設定しておいてもよく、確立しているセッション数は、ウェブサーバ３０から通知を受けることで取得する。この場合、制御装置１１０は、設定に応じて該当するＩＰアドレスをフィルタする旨の指示を中継装置１２０に送信する。また、検出システム１００は、検出装置１３０が検出する不正セッション毎に不正であることの確からしさを示す度合（スコア）を算出するものである場合は、かかるスコアが所定の閾値以上であるセッションを不正セッションとみなすこととしてもよい。
【０１１４】
また、検出システム１００に係る蓄積装置１４０は、蓄積する通信データとして、中継装置１２０によって中継される全トラヒックに係る通信データであってもよく、あるいは、標的システム（ここでは、ウェブサーバ３０）のリソースを枯渇させる攻撃に使われるトラヒックに限定して蓄積してもよい。具体的には、蓄積装置１４０は、ウェブサーバ３０が確立できるセッションに限定する場合、ＴＣＰ通信における宛先ポート番号がＨＴＴＰ（Hypertext  Transfer  Protocol）を示す「８０」番や「８０８０」番、ＨＴＴＰＳ（Hypertext  Transfer  Protocol  Secure)を示す「４４３」番である通信（又は、その応答）を対象として蓄積するようにしてもよい。また、ＵＤＰ（User  Datagram  Protocol）やＩＰなどのコネクションレスの通信データは蓄積不要であるため、蓄積対象外とする、または優先的に廃棄してもよい。
【０１１５】
さらに、蓄積装置１４０は、標的システムが特定の１以上のウェブサーバである場合は、それらのウェブサーバを示すＩＰアドレスを含む通信（又は、その応答）を対象として蓄積するようにしてもよい。この場合、蓄積装置１４０は、ウェブサーバごと、あるいは、ウェブサーバに対応するＩＰアドレスごとに、通信データ蓄積部１４３および抽出セッション蓄積部１４４を管理するようにしてもよい。中継装置１２０は、１以上の標的システムのウェブサーバのＩＰアドレスに該当するトラヒックのみを検出装置１３０および／または蓄積装置１４０へミラーリングすることとしてもよく、この場合は制御装置１１０がミラーリング対象のトラヒックを明示的に指示する。また、ＳｌｏｗＤｏＳ攻撃に対する対策をサービスとして提供される場合、このサービスを利用するウェブサーバに関するトラヒックのみをミラーリングの対象とすることとしてもよい。
【０１１６】
さらに、蓄積装置１４０は、中継装置１２０に中継されるトラヒックに係る通信データについて、直接、セッション抽出部１４６で抽出し、抽出セッション蓄積部１４４に蓄積する構成であってもよい。この場合、蓄積装置１４０は、通信データ蓄積部１４３を有しなくてもよい。
【０１１７】
また、上述した各実施形態に係る検出システム１００を構成する各装置は、上記実施形態で示された数量と異なる数量によって実施されてもよい。例えば、上記実施形態では、１台の中継装置１２０が、検出装置１３０と蓄積装置１４０の両方へ、検出処理のためのミラーリングや、蓄積処理のための流し込みを行う例を示した。しかし、検出システム１００には２台以上の中継装置１２０が含まれ、各々の中継装置１２０が検出装置１３０や蓄積装置１４０に各処理を行うよう、処理が分担して行われてもよい。
【０１１８】
また、検出システム１００内における通信について、制御装置１１０から中継装置１２０への指示は、ＯｐｅｎＦｌｏｗの仕様によるものであってもよい。この場合、制御装置１１０は、ＯｐｅｎＦｌｏｗコントローラを備え、中継装置１２０は、ＯｐｅｎＦｌｏｗ対応スイッチを備える。あるいは、検出システム１００は、制御装置１１０が受信する通知等をオペレータへ通知し、オペレータが入力する指示内容に基づいて制御装置１１０を動作させるようにしてもよい。
【０１１９】
また、上記実施の形態では、検出システム１００は、監視対象とする攻撃としてＳｌｏｗＤｏＳ攻撃を、攻撃の標的である標的システムとしてウェブサーバ３０を例に説明したが、これに限られず、任意の装置を標的とするその他の不正な通信全般に適用可能である。
【０１２０】
（構成等）
なお、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１２１】
また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１２２】
（プログラム）
また、上記実施形態に係る検出システム１００が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータに読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、検出システム１００と同様の機能を実現する検出プログラムを実行するコンピュータの一例を説明する。
【０１２３】
図１０は、検出プログラムを実行するコンピュータを示す図である。図１０に示すように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ（Central  Processing  Unit）１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。これらの各部は、バス１０８０によって接続される。
【０１２４】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１０４１に接続される。ディスクドライブ１０４１には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース１０５０には、例えば、マウス１１１０およびキーボード１１２０が接続される。ビデオアダプタ１０６０には、例えば、ディスプレイ１１３０が接続される。
【０１２５】
ここで、図１０に示すように、ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３およびプログラムデータ１０９４を記憶する。上記実施形態で説明した各情報は、例えばハードディスクドライブ１０９０やメモリ１０１０に記憶される。
【０１２６】
また、検出プログラムは、例えば、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、ハードディスクドライブ１０９０に記憶される。具体的には、上記実施形態で説明した検出システム１００に含まれる各装置によって実行される各処理が記述されたプログラムモジュールが、ハードディスクドライブ１０９０に記憶される。
【０１２７】
また、検出プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、ハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した各手順を実行する。
【０１２８】
なお、検出プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ１０４１等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、検出プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【０１２９】
１０    端末
２０    攻撃生成端末
３０    ウェブサーバ
１００  検出システム
１１０  制御装置
１２０  中継装置
１３０  検出装置
１４０  蓄積装置
１４１  ＩＦ部
１４２  蓄積部
１４３  通信データ蓄積部
１４４  抽出セッション蓄積部
１４５  制御部
１４６  セッション抽出部
１４７  セッション管理部
【図１】
0006276207.tif 000002
【図２】
0006276207.tif 000003
【図３】
0006276207.tif 000004
【図４】
0006276207.tif 000005
【図５】
0006276207.tif 000006
【図６】
0006276207.tif 000007
【図７】
0006276207.tif 000008
【図８】
0006276207.tif 000009
【図９】
0006276207.tif 000010
【図１０】
0006276207.tif 000011