(57)【特許請求の範囲】
【請求項１】
攻撃検出装置であって、
クライアントからサーバへ送信されるパケットを収集する収集手段と、
前記パケットからヘッダ情報を取得するヘッダ情報取得手段と、
前記ヘッダ情報を用いて各セッションが攻撃セッションであるか否かを判別する攻撃検出手段と、を備え、
前記攻撃検出手段は、セッション毎に、収集された任意のパケットのウィンドウサイズと他のパケットのウィンドウサイズとを比較し、比較結果が所定の第１の条件を満たす場合、当該セッションを攻撃セッションとして検出すること
を特徴とする攻撃検出装置。
【請求項２】
請求項１記載の攻撃検出装置であって、
前記他のパケットは、前記任意のパケットの以降に送信されるパケットであること
を特徴とする攻撃検出装置。
【請求項３】
請求項１または２記載の攻撃検出装置であって、
前記攻撃検出手段は、セッション毎に、ウィンドウサイズの複数の統計情報を比較し、比較結果が所定の第２の条件を満たす場合、当該セッションを攻撃セッションとして検出すること
を特徴とする攻撃検出装置。
【請求項４】
請求項３記載の攻撃検出装置であって、
前記ウィンドウサイズの複数の統計情報は、平均ウィンドウサイズと、最大ウィンドウサイズであること
を特徴とする攻撃検出装置。
【請求項５】
請求項１から４のいずれか１項に記載の攻撃検出装置であって、
前記攻撃検出手段は、セッション毎に、前記ヘッダ情報を用いて算出されるセッション確立時間が、所定の第１の閾値より大きい場合、当該セッションを攻撃セッションとして検出すること
を特徴とする攻撃検出装置。
【請求項６】
請求項１から５のいずれか１項に記載の攻撃検出装置であって、
前記攻撃検出手段は、セッション毎に、前記ヘッダ情報を用いてスループットを算出し、当該スループットが所定の第２の閾値より小さい場合、当該セッションを攻撃セッションとして検出すること
を特徴とする攻撃検出装置。
【請求項７】
請求項１から６のいずれか１項に記載の攻撃検出装置であって、
前記攻撃検出手段は、前記攻撃セッションを検出すると、当該攻撃セッションを特定する情報を含む攻撃検知情報を管理者端末に送信すること
を特徴とする攻撃検出装置。
【請求項８】
請求項１から７のいずれか１項に記載の攻撃検出装置であって、
前記攻撃検出手段は、前記攻撃セッションを検出すると、前記サーバおよび前記クライアントにリセットパケットを送信し、当該攻撃セッションを切断すること
を特徴とする攻撃検出装置。
【請求項９】
コンピュータが行う攻撃検出方法であって、
クライアントからサーバへ送信されるパケットを収集する収集ステップと、
前記パケットからヘッダ情報を取得するヘッダ情報取得ステップと、
前記ヘッダ情報を用いて各セッションが攻撃セッションであるか否かを判別する攻撃検出ステップと、を行い、
前記攻撃検出ステップは、セッション毎に、収集された任意のパケットのウィンドウサイズと他のパケットのウィンドウサイズとを比較し、比較結果が所定の第１の条件を満たす場合、当該セッションを攻撃セッションとして検出すること
を特徴とする攻撃検出方法。
【請求項１０】
コンピュータが行う攻撃検出プログラムであって、
前記コンピュータを、
クライアントからサーバへ送信されるパケットを収集する収集手段、
前記パケットからヘッダ情報を取得するヘッダ情報取得手段、および、
前記ヘッダ情報を用いて各セッションが攻撃セッションであるか否かを判別する攻撃検出手段として機能させ、
前記攻撃検出手段は、セッション毎に、収集された任意のパケットのウィンドウサイズと他のパケットのウィンドウサイズとを比較し、比較結果が所定の第１の条件を満たす場合、当該セッションを攻撃セッションとして検出すること
を特徴とする攻撃検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントとサーバ間で送受信されるパケットに基づいて、クライアントがサーバに対して行う攻撃を検出する攻撃検出装置、攻撃検出方法、および攻撃検出プログラムに関する。
【背景技術】
【０００２】
近年、インターネット上の公開サービスを不正な通信によってサービス停止状態に追い込むＤｏＳ（Denial of Service）による被害の増大が問題となっている。
【０００３】
ＤｏＳには、大きく２つの攻撃形態に分類することが可能である。１つめは、悪意のある攻撃者が不正なデータや異常なパケットを送り付けることでサービス提供者のもつソフトウェアに異常な挙動をとらせる攻撃形態である。２つめは、大量にトラフィックを送り付けることでサービス提供者のもつ回線の帯域や通信機器の処理能力を溢れさせる攻撃である。
【０００４】
１つめの攻撃形態に対応するための技術としては、例えばサーバに流れるパケットを種類毎に数え上げることで不正な通信によるサーバの異常な挙動を発見する技術がある（特許文献１参照）。
【０００５】
２つめの攻撃形態に対応するための技術としては、例えばフロー統計情報の変化から大量トラフィックを検出する技術がある（特許文献２参照）。
【０００６】
また、通信相手に告知する自身の受信バッファのサイズを極めて小さくすることで通信相手が一度に送信できる情報量を制限し、通信を長期化させてセッションを不正に占有し続けるＳｌｏｗ  ＲＥＡＤ  ＤｏＳと呼ばれる新たな攻撃が問題となっている（非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−１６６１５４号公報
【特許文献２】特開２００８−１１８２４２号公報
【非特許文献】
【０００８】
【非特許文献１】倉上弘、“ＤｏＳ／ＤＤｏＳ攻撃対策（２）〜高度化するＤＤｏＳ攻撃と対策  サイトの視点から〜”、情報処理Vol.54 No.5 pp475-480、情報処理学会、2013
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１の技術では、攻撃者が通信を途中で放棄してしまうような通信の異常終了を伴う攻撃を検出することは可能であるが、正常な通信の手続きを進めながら実行される攻撃の検出は不可能であるという問題がある。例えば、Ｓｌｏｗ  ＲＥＡＤ  ＤｏＳは、通信を終了させないことで攻撃として成立するため、特許文献１などの従来の技術では攻撃を検出することができない。
【００１０】
また、特許文献２のようなフロー統計情報を用いた検出手法では、フロー統計情報を作成するためのサンプリングで通信パケットの取得漏れが発生し、悪意のある攻撃者の通信パケットを取得できないという問題がある。
【００１１】
本発明は上記事情に鑑みてなされたものであり、本発明の目的は、正常な通信の手続きを進めながら実行される攻撃を検出可能な攻撃検出装置、攻撃検出方法、および攻撃検出プログラムを提供することにある。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明は、攻撃検出装置であって、クライアントからサーバへ送信されるパケットを収集する収集手段と、前記パケットからヘッダ情報を取得するヘッダ情報取得手段と、前記ヘッダ情報を用いて各セッションが攻撃セッションであるか否かを判別する攻撃検出手段と、を備え、前記攻撃検出手段は、セッション毎に、収集された任意のパケットのウィンドウサイズと他のパケットのウィンドウサイズとを比較し、比較結果が所定の第１の条件を満たす場合、当該セッションを攻撃セッションとして検出する。
【００１３】
上記攻撃検出装置において、前記他のパケットは、前記任意のパケットの以降に送信されるパケットであってもよい。
【００１４】
上記攻撃検出装置において、前記攻撃検出手段は、セッション毎に、ウィンドウサイズの複数の統計情報を比較し、比較結果が所定の第２の条件を満たす場合、当該セッションを攻撃セッションとして検出することとしてもよい。
【００１５】
上記攻撃検出装置において、前記ウィンドウサイズの複数の統計情報は、平均ウィンドウサイズと、最大ウィンドウサイズであってもよい。
【００１６】
上記攻撃検出装置において、前記攻撃検出手段は、セッション毎に、前記ヘッダ情報を用いて算出されるセッション確立時間が、所定の第１の閾値より大きい場合、当該セッションを攻撃セッションとして検出することとしてもよい。
【００１７】
上記攻撃検出装置において、前記攻撃検出手段は、セッション毎に、前記ヘッダ情報を用いてスループットを算出し、当該スループットが所定の第２の閾値より小さい場合、当該セッションを攻撃セッションとして検出することとしてもよい。
【００１８】
上記攻撃検出装置において、前記攻撃検出手段は、前記攻撃セッションを検出すると、当該攻撃セッションを特定する情報を含む攻撃検知情報を管理者端末に送信することとしてもよい。
【００１９】
上記攻撃検出装置において、前記攻撃検出手段は、前記攻撃セッションを検出すると、前記サーバおよび前記クライアントにリセットパケットを送信し、当該攻撃セッションを切断することとしてもよい。
【００２０】
本発明は、コンピュータが行う攻撃検出方法であって、クライアントからサーバへ送信されるパケットを収集する収集ステップと、前記パケットからヘッダ情報を取得するヘッダ情報取得ステップと、前記ヘッダ情報を用いて各セッションが攻撃セッションであるか否かを判別する攻撃検出ステップと、を行い、前記攻撃検出ステップは、セッション毎に、収集された任意のパケットのウィンドウサイズと他のパケットのウィンドウサイズとを比較し、比較結果が所定の第１の条件を満たす場合、当該セッションを攻撃セッションとして検出する。
【００２１】
本発明は、コンピュータが行う攻撃検出プログラムであって、前記コンピュータを、クライアントからサーバへ送信されるパケットを収集する収集手段、前記パケットからヘッダ情報を取得するヘッダ情報取得手段、および、前記ヘッダ情報を用いて各セッションが攻撃セッションであるか否かを判別する攻撃検出手段として機能させ、前記攻撃検出手段は、セッション毎に、収集された任意のパケットのウィンドウサイズと他のパケットのウィンドウサイズとを比較し、比較結果が所定の第１の条件を満たす場合、当該セッションを攻撃セッションとして検出する。
【発明の効果】
【００２２】
本発明により、正常な通信の手続きを進めながら実行される攻撃を検出可能な攻撃検出装置、攻撃検出方法、および攻撃検出プログラムを提供することができる。
【図面の簡単な説明】
【００２３】
【図１】第１の実施形態が適用された攻撃検出システムの全体構成図である。
【図２】第１の実施形態の攻撃検出装置の構成を示す機能ブロック図である。
【図３】パケットヘッダ情報の一例を示す図である。
【図４】攻撃検出処理を示すフローチャートである。
【図５】セッション管理テーブルの一例を示す図である。
【図６】セッション出力情報の一例を示す図である。
【図７】攻撃検出後の攻撃防御処理を説明する説明図である。
【図８】第２の実施形態が適用された攻撃検出装置を示す全体構成図である。
【図９】第２の実施形態の攻撃検出装置の構成を示す機能ブロック図である。
【図１０】攻撃検出後の攻撃防御処理を説明する説明図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施の形態について説明する。
【００２５】
＜第１の実施形態＞
図１は、本発明の一実施形態である攻撃検出システムを示す全体構成図である。攻撃検出システムは、サービス提供サーバ４と、サービス利用者が使用する利用者端末５（クライアント）との間に設置され、サービス提供サーバ４と利用者端末５との通信を監視し、不正な利用者による攻撃を検出する。サービス提供サーバ４は、インターネットなどのネットワークを介して、利用者端末５に各種のサービスを提供する。
【００２６】
図示する攻撃検出システムは、攻撃検出装置１と、トラフィック複製装置２とを備える。トラフィック複製装置２は、サービス提供サーバ４と、利用者端末５との間に設置され、利用者端末５からサービス提供サーバ４に送信されるパケット（トラフィック）をサービス提供サーバ４に転送するとともに、当該パケットを複製して攻撃検出装置１に出力する。
【００２７】
攻撃検出装置１は、トラフィック複製装置２から送信されたパケットを用いて、不正な利用者による攻撃を検出する。また、攻撃検出装置１は、攻撃を検出すると、管理ネットワークを介して管理者端末３に攻撃検知情報を通知する。
【００２８】
図２は、本実施形態の攻撃検出装置１の構成を示す機能ブロック図である。図示する攻撃検出装置１は、パケット収集部１１と、ヘッダ情報取得部１２と、集計部１３と、攻撃検出部１４と、セッション管理テーブル１５と、セッションログファイル１６とを備える。
【００２９】
パケット収集部１１は、トラフィック複製装置２から出力される、利用者端末５からサービス提供サーバ４へ送信されるパケットを収集する。ヘッダ情報取得部１２は、パケット収集部１１が収集した各パケットからヘッダ情報を取得する。集計部１３は、取得したヘッダ情報を用いて、各パケットをセッション毎に分類し、集計する。
【００３０】
攻撃検出部１４は、セッション毎に集計されたヘッダ情報を用いて各セッションが攻撃セッションであるか否かを判別する。本実施形態では、攻撃検知部１４は、セッション毎に、収集された任意のパケットのウィンドウサイズと他のパケットのウィンドウサイズとを比較し、比較結果が所定の第１の条件を満たす場合、当該セッションを攻撃セッションとして検出する。また、攻撃検出部１４は、セッション毎に、ウィンドウサイズの複数の統計情報を比較し、比較結果が所定の第２の条件を満たす場合、当該セッションを攻撃セッションとして検出する。また、攻撃検出部１４は、攻撃セッションを検出すると、当該攻撃セッションを特定する情報を含む攻撃検知情報を管理者端末３に送信する。
【００３１】
セッション管理テーブル１５は、集計部１３により集計された、セッション毎のセッション情報（ヘッダ集計情報）が記憶される。セッションログファイル１６には、セッションの終了時に当該セッションのセッション情報がログとして出力される。
【００３２】
図３は、パケットのヘッダ情報の一例を示す図である。本実施形態のサービス提供サーバ４と利用者端末５との間の通信は、ＴＣＰパケットを用いて行われるものとする。ヘッダ情報には、送信元ＩＰアドレス、送信元ポート番号、受信ＩＰアドレス、受信ポート番号、タイムスタンプ、ＴＣＰフラグ、ウィンドウサイズ、パケットサイズなどがある。
【００３３】
セッションは、送信元ＩＰアドレス、送信元ポート番号、受信ＩＰアドレスおよび受信ポート番号の４つで特定（識別）することができる。ウィンドウサイズは、通信相手に告知する自身の受信バッファのサイズである。ここでは、ウィンドウサイズには、利用者端末５が、通信相手であるサービス提供サーバ４に告知する利用者端末５自身の受信バッファのサイズが設定される。
【００３４】
上記説明した攻撃検出装置１は、例えば、ＣＰＵと、メモリと、ハードディスク等の外部記憶装置などを備えた汎用的なコンピュータシステムを用いることができる。このコンピュータシステムにおいて、ＣＰＵがメモリ上にロードされた攻撃検出装置１用のプログラムを実行することにより、攻撃検出装置１の各機能が実現される。また、攻撃検出装置１用のプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ−ＲＯＭなどのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。
【００３５】
次に、本実施形態の処理について説明する。
【００３６】
図４は、本実施形態の攻撃検出装置１の攻撃検出処理のフローチャートである。
【００３７】
攻撃検出装置１のパケット収集部１１は、利用者端末５からサービス提供サーバ４へ送信されるパケットをトラフィック複製装置２から受信し、収集する（Ｓ１１）。そして、ヘッダ情報取得部１２は、Ｓ１１で収集したパケットからヘッダ情報を取得し、ヘッダ情報に含まれる送信元ＩＰアドレス、送信元ポート番号、受信ＩＰアドレス、および受信ポート番号を用いて当該パケットのセッションを特定する（Ｓ１２）。
【００３８】
そして、集計部１３は、セッション管理テーブル１５に、当該パケットのセッションが存在するか否かを判別する（Ｓ１３）。セッション管理テーブル１５に当該パケットのセッションが存在しない場合であって（Ｓ１３：ＮＯ）、ヘッダ情報のＴＣＰフラグが「ＳＹＮ」（セッション開設要求）のＳＹＮパケットの場合（Ｓ１４：ＹＥＳ）、集計部１３は、セッション管理テーブル１５に、Ｓ１１で受信したパケットのセッションを登録する（Ｓ１５）。そして、Ｓ１１に戻り、次に受信するパケットの処理を行う。
【００３９】
図５は、セッション管理テーブル１５の一例を示す図である。セッション管理テーブル１５には、セッション毎に、不正ユーザの攻撃セッションを検出するためのセッション情報（ヘッダ集計情報）が設定される。セッション管理テーブル１５には、セッションを特定するためのセッション特定情報と、セッション情報とが対応付けて記憶される。
【００４０】
図示するセッション情報には、ＳＹＮパケットが到着した時刻を示すタイムスタンプ、最終パケットが到着した時刻を示すタイムスタンプ、任意のパケットのウィンドウサイズ、ウィンドウサイズの最大値、ウィンドウサイズの最小値、ウィンドウサイズの平均値、パケットのウィンドウサイズの２乗和、到達パケット数の合計、パケットサイズの合計、怪しさスコア、アラート通知有無などが含まれる。なお、任意のパケットのウィンドウサイズは、例えば、ＳＹＮパケット、ＡＣＫパケットなどのウィンドウサイズである。
【００４１】
Ｓ１５のセッションの登録時、集計部１５は、当該パケットのヘッダ情報を用いて、セッション特定情報と、ＳＹＮパケットのタイムスタンプ、任意のパケットがＳＹＮパケットの場合はＳＹＮパケットのウィンドウサイズなどを設定したレコードをセッション管理テーブル１５に登録する。
【００４２】
ヘッダ情報のＴＣＰフラグが「ＳＹＮ」以外の場合（Ｓ１４：ＮＯ）、集計部１３は、セッション管理テーブル１５に当該セッションが存在しないにもかかわらず、セッション開設時に最初に送信される「ＳＹＮ」パケットでないため、不正常なパケットであるとみなし、Ｓ１１で受信したパケットのヘッダ情報を破棄する（Ｓ１６）。そして、Ｓ１１に戻り、次に受信するパケットの処理を行う。
【００４３】
一方、Ｓ１１で受信したパケットのセッションがセッション管理テーブル１５に既に存在する場合（Ｓ１３：ＹＥＳ）、集計部１３は、当該セッションのヘッダ情報を集計し、セッション管理テーブル１５のセッション情報を更新する（Ｓ１７）。すなわち、集計部１３は、Ｓ１１で受信したパケットのヘッダ情報を用いて、ウィンドウサイズの最大値、最小値、平均値、２乗和などのセッション情報を算出し、更新する。
【００４４】
そして、攻撃検出部１４は、セッション管理テーブル１５の当該セッションの更新後のセッション情報を用いて、怪しさスコアを算出する（Ｓ１８）。
【００４５】
本実施形態では、ヘッダ情報のウィンドウサイズを用いて怪しさスコアを算出することとする。自身のウィンドウサイズを極めて小さくすることで通信相手が一度に送信できる情報量を制限し、通信を長期化させてセッションを不正に占有し続けるＳｌｏｗ  ＲＥＡＤ  ＤｏＳ攻撃は、通信中にウィンドウサイズが小さくなるという特徴がある。ウィンドウサイズを小さく設定すること自体は、ＴＣＰの正常動作であるため、攻撃であるのか、正常動作であるのかの判別が難しい。そこで、本実施形態では、ウィンドウサイズの変遷（挙動）に着目することで、Ｓｌｏｗ  ＲＥＡＤ  ＤｏＳ攻撃をより高い精度で検出する。
【００４６】
ここでは、以下の２つの方法の少なくとも１つを用いるものとする。
【００４７】
（１）セッション管理テーブル１５に設定された任意のパケットのウィンドウサイズと、受信したパケットのウィンドウサイズとを比較する。そして、比較結果が所定の条件を満たす場合に、当該セッションは攻撃セッションであると判定し、怪しさスコアに所定の値を設定する。例えば、任意のパケットがＳＹＮパケットの場合、ＳＹＮパケットのウィンドウサイズが以降のパケットのウィンドウサイズより極端に大きい場合、すなわち、以降のパケットのウィンドウサイズがＳＹＮパケットのウィンドウサイズと比較して極端に小さい場合（例えば、以下の式を満たす場合）、当該セッションは攻撃セッションであると判定する。
ＳＹＮパケットのウィンドウサイズ−以降のパケットのウィンドウサイズ＞所定の閾値
【００４８】
（２）ウィンドウサイズの複数の統計情報を比較し、比較結果が所定の条件を満たす場合に、当該セッションは攻撃セッションであると判定し、怪しさスコアに所定の値を設定する。なお、ウィンドウサイズの統計情報は、セッション管理テーブル１５に設定されたウィンドウサイズの統計情報であっても、あるいはセッション管理テーブル１５に設定されたウィンドウサイズの統計情報を用いて算出される統計情報であってもよい。また、統計情報の比較は、統計情報同士の比較であっても、所定の閾値との比較であってもよい。
【００４９】
例えば、セッション管理テーブル１５に設定されたウィンドウサイズの最大値と、ウィンドウサイズの平均値とを比較し、比較結果が所定の条件を満たす場合に、当該セッションは攻撃セッションであると判定し、怪しさスコアに所定の値を設定する。具体的には、ウィンドウサイズの最大値に対するウィンドウサイズの平均値の割合が所定の閾値より小さい場合（例えば、以下の式を満たす場合）、当該セッションは攻撃セッションであると判定する。
ウィンドウサイズの平均値／ウィンドウサイズの最大値＜閾値（例えば、０．３など）
【００５０】
なお、（２）の場合、ウィンドウサイズの平均値を用いるため、セッション開始直後では、上記条件を満たす状況になりにくく、セッション開始からある程度の数のパケットを収集する時間が必要である。一方、（１）の場合、最初のＳＹＮパケットのウィンドウサイズと、それ以降に受信したパケットのウィンドウサイズとを、逐次比較するため、セッション開始直後であっても、攻撃セッションか否かの判定が可能である。
【００５１】
怪しさスコアの算出に（１）の方法のみを用いる場合であって、条件を満たす場合は、攻撃検出部１４は、セッション管理テーブル１５の怪しさスコアに所定の第１のスコア値を設定する。また、怪しさスコアの算出に（２）の方法のみを用いる場合であって条件を満たす場合は、攻撃検出部１４は、セッション管理テーブル１５の怪しさスコアに所定の第２のスコア値を設定する。また、怪しさスコアの算出に（１）および（２）の方法を用いる場合であって、（１）および（２）の条件を満たす場合は、攻撃検出部１４は、第１のスコア値と第２のスコア値とを合計したスコア値を、セッション管理テーブル１５の怪しさスコアに設定する。なお、第１のスコア値と第２のスコア値とは、同じ値であっても、異なる値であってもよい。
【００５２】
そして、攻撃検出部１４は、Ｓ１８で算出した怪しさスコアが所定の検出用閾値を越えるか否かを判別し（Ｓ１９）、検出用閾値を超える場合は（Ｓ１９：ＹＥＳ）、当該セッションは攻撃セションであると判定する。なお、検出用閾値は、怪しさスコアの算出に（１）の方法のみを用いる場合、（２）の方法のみを用いる場合、（１）および（２）の方法を用いる場合に応じて、それぞれ適切な値を設定する。
【００５３】
そして、攻撃セションであると判定した場合（Ｓ１９：ＹＥＳ）、攻撃検出部１４は、検知情報（アラート）を管理ネットワークを介して管理者端末３に送信し、セッション管理テーブル１５のアラート通知を「有」に更新する（Ｓ２１）。
【００５４】
そして、集計部１３は、セッション管理テーブル１５から攻撃セッションであると判定されたセッションのレコードを、ログ情報としてセッションログファイル１６に出力（記憶）し、当該セッションのレコードをセッション管理テーブル１５から削除する（Ｓ２２）。そして、Ｓ１１に戻り、次に受信するパケットの処理を行う。これ以降、攻撃セッションであると判定されたセッションのパケットがＳ１１で受信されると、セッション管理テーブル１５には当該セッションが存在せず（Ｓ１３：ＮＯ）、ＳＹＮパケットでないため（Ｓ１４：ＮＯ）、当該パケットのヘッダ情報は破棄される（Ｓ１６）。
【００５５】
図６は、セッションログ１６の出力されるセッションログ情報の一例を示す図である。
【００５６】
また、検出用閾値を超えない場合であって（Ｓ１９：ＮＯ）、Ｓ１１で受信したパケットがセッションの終了またはリセットを示すパケット（ＦＩＮパケットまたはＲＳＴパケット）の場合（Ｓ２０：ＹＥＳ）、集計部１３は、当該セッションは終了であるとみなし、当該セッションのレコードをログ情報としてセッションログファイル１６に出力し、当該セッションのレコードをセッション管理テーブル１５から削除する（Ｓ２２）。そして、Ｓ１１に戻り、次に受信するパケットの処理を行う。ＦＩＮパケットは、ＴＣＰフラグがＦＩＮで、セッションの終了を示すパケットであり、ＲＳＴパケットは、ＴＣＰフラグがＲＳＴで、セッションのリセット（クローズ）を示すパケットである。
【００５７】
なお、以上説明した図４のＳ１８では、ウィンドウサイズを用いて怪しさスコアを算出したが、セッション管理テーブル１５の他の情報も用いて怪しさスコアを算出することとしてもよい。
【００５８】
例えば、攻撃検出部１４は、セッション管理テーブル１５の最終パケット（Ｓ１１で受信したパケット）のタイムスタンプと、ＳＹＮパケットのタイムスタンプとの差であるセッション確立時間を算出し、当該セッション確立時間が、所定の閾値（例えば、３０秒）より大きい場合、当該セッションを攻撃セッションであると判別し、所定のスコア値を怪しさスコアに加算することとしてもよい。
【００５９】
また、攻撃検出部１４は、前述のセッション確立時間と、セッション管理テーブル１５に設定されたパケットサイズの合計値とを用いてスループットを算出し、当該スループットが所定の閾値（例えば、３００ｂｐｓ）より小さい場合、当該セッションを攻撃セッションと判別し、所定のスコア値を怪しさスコアに加算することとしてもよい。
【００６０】
次に、攻撃検出装置１が攻撃セッションを検出した後（図４、Ｓ１９：ＹＥＳ）の攻撃防御処理について説明する。
【００６１】
図７は、攻撃防御処理を説明するための説明図である。攻撃検出装置１の攻撃検出部１４は、攻撃を検知したことを示す検知情報を、例えばメール、ＳＮＭＰ  ＴＲＡＰなどを用いて管理者端末３に送信する（Ｓ２１）。検知情報には、攻撃セッションであると判別したセッションのセッション特定情報（送信元ＩＰアドレス、送信元ポート番号、受信ＩＰアドレス、および受信ポート番号）が含まれている。
【００６２】
管理者端末３は、検知情報を受信し、ネットワークオペレータなどの管理者に提示する。管理者は、検知情報に設定された攻撃セッションを切断するようにファイアウォール（ＦＷ）６を設定する設定指示を管理者端末３に入力する。管理者端末３は、入力された設定指示にしたがってファイアウォール６を設定する（Ｓ２２）。これにより、ファイアウォール６は、攻撃検出装置１が検知した攻撃者の利用者端末５からＣＥルータ７（Customer Edge router）を介してサービス提供サーバ４に送信されるパケットを破棄し、攻撃セッションの通信を遮断する。
【００６３】
なお、図７では、管理者の指示を受け付けて管理者端末３がファイアウォール６の設定を行うこととしたが、攻撃検出装置１の攻撃検出部１４が、検知情報を管理者端末３に送信するタイミングで、攻撃セッションを切断するようにファイアウォール６を設定することとしてもよい。
【００６４】
＜第２の実施形態＞
図８は、本発明の第２の実施形態である攻撃検出装置１Ａを示す全体構成図である。第２の実施形態では、トラフィック複製装置２を備えることなく、攻撃検出装置１Ａは、サービス提供サーバ４と利用者端末５との間に設置される。
【００６５】
図９は、第２の実施形態の攻撃検出装置１Ａの構成を示す機能ブロック図である。図示する攻撃検出装置１Ａは、パケット転送部１０と、パケット収集部１１と、パケットヘッダン取得部１２と、パケット情報集計部１３と、攻撃検出部１４と、セッション管理テーブル１５と、セッションログファイル１６とを備える。攻撃検出装置１Ａは、パケット転送部１０を備える点において、第１の実施形態の攻撃検出装置１と異なる。パケット転送部１０は、利用者端末５からサービス提供サーバ４に送信されるパケットをサービス提供サーバ４に転送するとともに、前記パケットを複製してパケット収集部１１に送出する。
【００６６】
なお、攻撃検出装置１Ａのパケット収集部１１と、パケットヘッダン取得部１２と、パケット情報集計部１３と、攻撃検出部１４と、セッション管理テーブル１５と、セッションログファイル１６については、第１の実施形態の攻撃検出装置１と同様であるため、ここでは説明を省略する。また、攻撃検出装置１Ａの攻撃検出処理についても、第１の実施形態の攻撃検出処理（図４）と同様であるため、ここでは説明を省略する。
【００６７】
図１０は、第２の実施形態の攻撃防御処理を説明するための説明図である。攻撃検出装置１Ａの攻撃検出部１４は、攻撃セッションを検知すると、当該攻撃セッションの送信元である利用者端末５（攻撃者）にＴＣＰフラグがＲＳＴのＲＳＴパケットを送信するとともに（Ｓ３１）、当該攻撃セッションの受信先であるサービス提供サーバ４にＲＳＴパケットを送信し（Ｓ３２）、当該攻撃セッションをリセット（クローズ）する。また、攻撃検出部１４は、管理者端末３に、攻撃を検知したことを示す検知情報を送信する（Ｓ３３）。
【００６８】
なお、ＲＳＴパケットを送信して攻撃セッションを一旦リセットすることで、グローバルＩＰアドレスが定期的に変更され、過去に攻撃セッションと判別されたセッションが再構築された場合であっても、正常な通信であれば攻撃セッションとはみなされず、セッションは遮断されない。
【００６９】
以上説明した第１および第２の実施形態では、サービス提供サーバ４がサービスを提供するために、サービス提供サーバ４とサービス利用者の利用者端末５との間で張られたセッション毎に、利用者端末５側からサービス提供サーバ４に送信するパケットに含まれるヘッダ情報の挙動から不正な利用者（攻撃者）のセッションを検出する。
【００７０】
これにより、本実施形態では、不特定多数の利用する公開されたサービスにおいて、他の利用者へのサービス提供を妨害するような不正な利用者による攻撃を防御することができる。
【００７１】
また、本実施形態では、ヘッダ情報のウィンドウサイズを用いて、攻撃セッションを検出する。これにより、本実施形態では、自身のウィンドウサイズを極めて小さくすることで通信相手が一度に送信できる情報量を制限し、通信を長期化させてセッションを不正に占有し続けるＳｌｏｗ  ＲＥＡＤ  ＤｏＳ攻撃などの正常な通信の手続きを進めながら実行される攻撃を検出することができる。
【００７２】
すなわち、通信相手に告知する自身のウィンドウサイズを小さくすることは、通信の輻輳制御のための正常な挙動である。そのため、単純に個々のパラメータの値に閾値を設けるだけでは、本来の目的で正常に機能しているパケットを攻撃であると誤検出してしまうおそれがある。そこで、本実施形態では、ウィンドウサイズの変遷（挙動）に着目することで、Ｓｌｏｗ  ＲＥＡＤ  ＤｏＳ攻撃などの正常な通信の手続きを進めながら実行される攻撃をより高い精度で検出することができる。
【００７３】
なお、本発明は上記の実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。例えば、第１の実施形態では、攻撃防御処理としてファイアフォール７を設定し（図７）、第２の実施形態では、攻撃防御方法としてＲＳＴパケットを送信することとしたが（図１０）、第１の実施形態でＲＳＴパケットを送信し、第２の実施形態でファイアウォールを設定してもよい。また、第１および第２の実施形態で、ファイアフォール７を設定およびＲＳＴパケットの送信の２つの攻撃防御方法を行うこととしてもよい。
【符号の説明】
【００７４】
１、１Ａ：攻撃検出装置１
１０：パケット転送部
１１：パケット収集部
１２：ヘッダ情報取得部
１３：集計部
１４：攻撃検出部
１５：セッション管理テーブル
１６：セッションログファイル
２  ：トラフィック複製装置
３  ：管理者端末
４  ：サービス提供サーバ
５  ：端末
６  ：ファイアウォール
７  ：ＣＥルータ
【図１】
0005947838.tif 000002
【図２】
0005947838.tif 000003
【図３】
0005947838.tif 000004
【図４】
0005947838.tif 000005
【図５】
0005947838.tif 000006
【図６】
0005947838.tif 000007
【図７】
0005947838.tif 000008
【図８】
0005947838.tif 000009
【図９】
0005947838.tif 000010
【図１０】
0005947838.tif 000011