(57)【要約】【課題】ネットワーク上で効率的にパケットの廃棄を行うことができる通信システムおよび通信方法を提供する。【解決手段】サーバ２０に割り当てられた仮想IPアドレスへの経路が中継端末３０への経路であることがネットワーク１００上に広報されるので、サーバ２０の仮想IPアドレスを宛先とする第１のパケットは中継端末３０によって受信される。この第１のパケットは、中継端末３０によって、サーバ２０の実IPアドレスを宛先とする第２のパケットに変換されてサーバ２０へ送信される。このように、外部端末からサーバ２０へ送信されるパケットは中継端末３０を経由するので、この中継端末３０においてパケットのフィルタリングを行うことによって、ネットワーク上で効率的にパケットの廃棄を行うことができる。【選択図】図２
2010193083.tif 000002
【特許請求の範囲】
【請求項１】
外部端末から通信端末へ送信されるパケットを中継する１台以上の中継端末と、１台以上の前記通信端末とを備えた通信システムであって、
前記中継端末は、
前記通信端末に割り当てられた仮想IPアドレスへの経路が前記中継端末への経路であることをネットワーク上に広報する広報手段と、
前記外部端末のIPアドレスを送信元とし、前記通信端末の仮想IPアドレスを宛先とする第１のパケットを受信する第１のパケット受信手段と、
前記中継端末のIPアドレスを送信元とし、前記通信端末の実IPアドレスを宛先とする第２のパケットに前記第１のパケットを変換する変換手段と、
前記第２のパケットを送信するパケット送信手段と、
パケットをフィルタリングする指示を前記通信端末から受信する指示受信手段と、
受信された前記指示に基づいて前記第１のパケットまたは前記第２のパケットをフィルタリングするフィルタリング手段と、
を備え、
前記通信端末は、
前記第２のパケットを受信する第２のパケット受信手段と、
各々の前記中継端末からの前記第２のパケットの数をカウントするカウント手段と、
前記中継端末毎にカウントされた前記第２のパケットの数に基づいて、前記指示を送信する前記中継端末を決定する決定手段と、
前記決定手段によって決定された前記中継端末へ前記指示を送信する指示送信手段と、
を備えたことを特徴とする通信システム。
【請求項２】
前記第２のパケットは、前記外部端末のIPアドレスを含み、
前記指示は、前記外部端末毎にパケットをフィルタリングするルールを含んでおり、
前記フィルタリング手段は、受信された前記指示に含まれる前記ルールに基づいてパケットをフィルタリングし、
前記カウント手段は、各々の前記中継端末からの前記第２のパケットの数をカウントすると共に各々の前記外部端末からの前記第２のパケットの数をカウントし、
前記決定手段は、前記中継端末毎にカウントされた前記第２のパケットの数に基づいて、前記指示を送信する前記中継端末を決定すると共に、前記外部端末毎にカウントされた前記第２のパケットの数に基づいて前記ルールを決定する
ことを特徴とする請求項１に記載の通信システム。
【請求項３】
前記フィルタリング手段は、フィルタリングの開始から所定時間が経過したとき、フィルタリングを終了することを特徴とする請求項１または請求項２に記載の通信システム。
【請求項４】
複数台の前記中継端末を備えたことを特徴とする請求項１〜請求項３のいずれかに記載の通信システム。
【請求項５】
外部端末から通信端末へ送信されるパケットを中継する１台以上の中継端末と、１台以上の前記通信端末とが行う通信の方法であって、
前記中継端末は、
前記通信端末に割り当てられた仮想IPアドレスへの経路が前記中継端末への経路であることをネットワーク上に広報する処理と、
前記外部端末のIPアドレスを送信元とし、前記通信端末の仮想IPアドレスを宛先とする第１のパケットを受信する処理と、
前記中継端末のIPアドレスを送信元とし、前記通信端末の実IPアドレスを宛先とする第２のパケットに前記第１のパケットを変換する処理と、
前記第２のパケットを送信する処理と、
パケットをフィルタリングする指示を前記通信端末から受信する処理と、
受信された前記指示に基づいてパケットをフィルタリングする処理と、
を実行し、
前記通信端末は、
前記第２のパケットを受信する処理と、
各々の前記中継端末からの前記第２のパケットの数をカウントする処理と、
前記中継端末毎にカウントされた前記第２のパケットの数に基づいて、前記指示を送信する前記中継端末を決定する処理と、
前記決定手段によって決定された前記中継端末へ前記指示を送信する処理と、
を実行することを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットを中継する１台以上の中継端末を備えた通信システムに関する。また、本発明は、中継端末を含む端末が通信を行う通信方法にも関する。
【背景技術】
【０００２】
攻撃対象サーバに対して、インターネットを介して多数のホストから大量のパケットを送信することによりサービスを停止させる等の被害をもたらす分散サービス不能攻撃（Distributed Denial of Service攻撃、DDoS攻撃）がある。従来は、被害を受けているサーバの管理者からの申告もしくはISP等の通信事業者が行う監視によりDDOS攻撃を検知し、攻撃パケットを廃棄するためのフィルタリングルールや経路制御の設定をルータ等の通信事業者設備に投入することによりその対策が行われている。
【０００３】
DDoS攻撃の対策に関する技術として、特許文献１には、攻撃トラヒックの経路上の多数のルータへ機能を追加し、攻撃の上流に遡って攻撃トラヒックの制御を行うことが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２８３５７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
DDoS攻撃によるネットワーク帯域の浪費を防ぐため、極力、攻撃元に近い装置でパケットの廃棄を行うことが望ましい。しかし、DDoS攻撃では、多数の攻撃ホストから攻撃パケットが送信され、それらの攻撃パケットが攻撃対象サーバに到着するまでに経由する経路が多数存在するため、経路毎にパケットの廃棄を行うことが困難であった。
【０００６】
本発明は、上述した課題に鑑みてなされたものであって、ネットワーク上で効率的にパケットの廃棄を行うことができる通信システムおよび通信方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するためになされたもので、外部端末から通信端末へ送信されるパケットを中継する１台以上の中継端末と、１台以上の前記通信端末とを備えた通信システムであって、前記中継端末は、前記通信端末に割り当てられた仮想IPアドレスへの経路が前記中継端末への経路であることをネットワーク上に広報する広報手段と、前記外部端末のIPアドレスを送信元とし、前記通信端末の仮想IPアドレスを宛先とする第１のパケットを受信する第１のパケット受信手段と、前記中継端末のIPアドレスを送信元とし、前記通信端末の実IPアドレスを宛先とする第２のパケットに前記第１のパケットを変換する変換手段と、前記第２のパケットを送信するパケット送信手段と、パケットをフィルタリングする指示を前記通信端末から受信する指示受信手段と、受信された前記指示に基づいて前記第１のパケットまたは前記第２のパケットをフィルタリングするフィルタリング手段と、を備え、前記通信端末は、前記第２のパケットを受信する第２のパケット受信手段と、各々の前記中継端末からの前記第２のパケットの数をカウントするカウント手段と、前記中継端末毎にカウントされた前記第２のパケットの数に基づいて、前記指示を送信する前記中継端末を決定する決定手段と、前記決定手段によって決定された前記中継端末へ前記指示を送信する指示送信手段と、を備えたことを特徴とする通信システムである。
【０００８】
また、本発明の通信システムにおいて、前記第２のパケットは、前記外部端末のIPアドレスを含み、前記指示は、前記外部端末毎にパケットをフィルタリングするルールを含んでおり、前記フィルタリング手段は、受信された前記指示に含まれる前記ルールに基づいてパケットをフィルタリングし、前記カウント手段は、各々の前記中継端末からの前記第２のパケットの数をカウントすると共に各々の前記外部端末からの前記第２のパケットの数をカウントし、前記決定手段は、前記中継端末毎にカウントされた前記第２のパケットの数に基づいて、前記指示を送信する前記中継端末を決定すると共に、前記外部端末毎にカウントされた前記第２のパケットの数に基づいて前記ルールを決定することを特徴とする。
【０００９】
また、本発明の通信システムにおいて、前記フィルタリング手段は、フィルタリングの開始から所定時間が経過したとき、フィルタリングを終了することを特徴とする。
【００１０】
また、本発明の通信システムは、複数台の前記中継端末を備えたことを特徴とする。
【００１１】
また、本発明は、外部端末から通信端末へ送信されるパケットを中継する１台以上の中継端末と、１台以上の前記通信端末とが行う通信の方法であって、前記中継端末は、前記通信端末に割り当てられた仮想IPアドレスへの経路が前記中継端末への経路であることをネットワーク上に広報する処理と、前記外部端末のIPアドレスを送信元とし、前記通信端末の仮想IPアドレスを宛先とする第１のパケットを受信する処理と、前記中継端末のIPアドレスを送信元とし、前記通信端末の実IPアドレスを宛先とする第２のパケットに前記第１のパケットを変換する処理と、前記第２のパケットを送信する処理と、パケットをフィルタリングする指示を前記通信端末から受信する処理と、受信された前記指示に基づいてパケットをフィルタリングする処理と、を実行し、前記通信端末は、前記第２のパケットを受信する処理と、各々の前記中継端末からの前記第２のパケットの数をカウントする処理と、前記中継端末毎にカウントされた前記第２のパケットの数に基づいて、前記指示を送信する前記中継端末を決定する処理と、前記決定手段によって決定された前記中継端末へ前記指示を送信する処理と、を実行することを特徴とする通信方法である。
【発明の効果】
【００１２】
本発明によれば、通信端末に割り当てられた仮想IPアドレスへの経路が中継端末への経路であることがネットワーク上に広報されるので、通信端末の仮想IPアドレスを宛先とする第１のパケットは中継端末によって受信される。この第１のパケットは、中継端末によって、通信端末の実IPアドレスを宛先とする第２のパケットに変換されて通信端末へ送信される。このように、外部端末から通信端末へ送信されるパケットは中継端末を経由するので、この中継端末においてパケットのフィルタリングを行うことによって、ネットワーク上で効率的にパケットの廃棄を行うことができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態による通信システムの構成を示す構成図である。
【図２】本発明の一実施形態による通信システムが備えるサーバと中継端末の構成を示すブロック図である。
【図３】本発明の一実施形態による通信システムが実行する通信の手順を示すシーケンス図である。
【図４】本発明の一実施形態におけるパケットのカプセル化の様子を示す参考図である。
【図５】本発明の一実施形態による通信システムが備えるサーバの動作の手順を示すフローチャートである。
【図６】本発明の一実施形態による通信システムが備える中継端末の動作の手順を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照し、本発明の実施形態を説明する。図１は、本発明の一実施形態による通信システムの構成を示している。本通信システムは、ネットワーク１００と、ネットワーク１００を介して通信を行うクライアント端末１０、サーバ２０、中継端末３０とを備えている。クライアント端末１０、サーバ２０、中継端末３０はそれぞれ１台以上（１または複数台）存在している。
【００１５】
クライアント端末１０は、DDoS攻撃の攻撃元（攻撃ホスト）となりうる端末である。サーバ２０は、所定のサービスを提供するFTP（File Transfer Protocol）サーバやWebサーバ等であり、DDoS攻撃の攻撃対象となりうる端末である。サーバ２０には、実ネットワークで用いるIPアドレス（本明細書では実IPアドレスとする）とは別の、仮想的なIPアドレス（本明細書では仮想IPアドレスとする）が割り当てられている。中継端末３０は、クライアント端末１０とサーバ２０の間で送受信されるパケットを中継する。
【００１６】
１つのサーバ２０への経路について、どの中継端末３０から見ても同一のホップ数で到達できるかのような経路情報を各中継端末３０がネットワーク１００内に広報する。これによって、クライアント端末１０からサーバ２０へのIPパケットは、クライアント端末１０に最も近い中継端末３０を経由する。このIPパケットは、中継端末３０でカプセル化され、中継端末３０とサーバ２０の間のトンネルを介してサーバ２０へ送信される。
【００１７】
また、サーバ２０からクライアント端末１０へ送信されるパケットは、上記とは逆にトンネルを介して中継端末３０で受信された後、通常のIPパケットに変換され、クライアント端末１０へ送信される。したがって、クライアント端末１０がサーバ２０と行う通信は、両者の位置関係にかかわらず、必ず中継端末３０を介して行われる。
【００１８】
DDoS攻撃では、個々の攻撃ホストが送信する攻撃パケットは比較的少量であるため、攻撃ホストに近い上流でDDoS攻撃を検知するのは困難である。このため、最下流のサーバ２０がDDoS攻撃の検知を行い、中継端末３０がパケットの廃棄を行う。これによって、攻撃ホストとなっているクライアント端末１０に最も近い中継端末３０で効率的にパケットを廃棄することができ、ネットワーク帯域の浪費を最小限に抑えることができる。
【００１９】
図２はサーバ２０と中継端末３０の機能構成を示している。サーバ２０は、サーバアプリケーション２１、トンネル通信部２２、経路記憶部２３、パケット情報記憶部２４、フィルタリングルール決定部２５を備えている。サーバアプリケーション２１は、クライアント端末１０へ各種サービスの提供を行う。トンネル通信部２２は、通信部２２ａ、パケット処理部２２ｂ、攻撃検知部２２ｃを備えている。通信部２２ａは、トンネルを介して中継端末３０とパケットの送受信を行う。パケット処理部２２ｂは、中継端末３０から受信されたパケットおよび中継端末３０へ送信されるパケットに対して、後述する処理を行う。攻撃検知部２２ｃは、サーバ２０へのトラヒックを監視し、DDoS攻撃を検知する。
【００２０】
経路記憶部２３は、サーバ２０がクライアント端末１０と通信を行う際に中継を行う中継端末３０の情報とクライアント端末１０の情報を記憶する。具体的には、クライアント端末１０のIPアドレス（IPclient）と中継端末３０のIPアドレス（IPproxy）が経路記憶部２３に格納される。パケット情報記憶部２４は、中継端末３０から受信されたパケットの情報（クライアント端末１０、中継端末３０のIPアドレス等）を記憶する。フィルタリングルール決定部２５は、DDoS攻撃が検知された場合に、中継端末３０に設定するフィルタリングルール（パケット廃棄ルール）を決定し、決定したフィルタリングルールの情報を含むパケットを中継端末３０へ送信する。このパケットは、中継端末３０に対してフィルタリングを指示する機能も有する。
【００２１】
中継端末３０は、パケット中継部３１、中継情報記憶部３２、フィルタリングルール管理部３３を備えている。パケット中継部３１は、経路制御部３１ａ、通信部３１ｂ、パケット処理部３１ｃ、フィルタリング部３１ｄを備えている。経路制御部３１ａは、BGP(Border Gateway Protocol)等の経路制御プロトコルを用いて経路を広報することによって、サーバ２０に割り当てられた仮想IPアドレスへの経路が中継端末３０への経路であることをネットワーク１００上に広報する。通信部３１ｂは、クライアント端末１０とパケットの送受信を行うと共に、トンネルを介してサーバ２０とパケットの送受信を行う。パケット処理部３１ｃは、クライアント端末１０とサーバ２０との間で中継するパケットに対して、後述する処理を行う。フィルタリング部３１ｄはパケットのフィルタリングを行う。
【００２２】
中継情報記憶部３２は、パケットの中継に必要な情報を記憶する。具体的には、サーバ２０の仮想IPアドレス（IPvirtual）とサーバ２０の実IPアドレス（IPreal）が中継情報記憶部３２に格納される。フィルタリングルール管理部３３は、サーバ２０から送信された、フィルタリングルールを含むパケットを受信し、フィルタリングルールを管理する。
【００２３】
次に、本実施形態によるサーバ２０と中継端末３０の動作を説明する。なお、中継端末３０の中継情報記憶部３２には、サーバ２０に割り当てられている仮想IPアドレスと実IPアドレスの組が予め保存されているものとする。また、中継端末３０の経路制御部３１ａは、サーバ２０に割り当てられた仮想IPアドレスへの経路が中継端末３０への経路であることをネットワーク１００上に予め広報している。
【００２４】
以下、図３を参照しながら、クライアント端末１０とサーバ２０の間の通信の手順を説明する。以下では、クライアント端末１０のIPアドレスをIPClientとし、サーバ２０の仮想IPアドレスをIPvirtual、実IPアドレスをIPrealとし、中継端末３０のIPアドレスをIPproxyとする。まず、クライアント端末１０は、IPvirtual宛てにパケットを送信する（ステップＳ１００）。IPvirtual宛ての経路が中継端末３０への経路であることを中継端末３０がネットワーク上に広報しているため、クライアント端末１０から送信されたパケットは中継端末３０に到着する。
【００２５】
中継端末３０の通信部３１ｂはクライアント端末１０からのパケットを受信する。パケット処理部３１ｃは、クライアント端末１０から受信したパケットに含まれるサーバ２０の仮想IPアドレス（IPvirtual）をキーにして、中継情報記憶部３２に格納されている情報を検索し、IPvirtual に対応したサーバ２０の実IPアドレス（IPreal）を取得する。パケット処理部３１ｃはパケットのデータと、自身が保持する秘密鍵からハッシュ値を計算し、認証データを生成する。そして、パケット処理部３１ｃは、クライアント端末１０からのパケットと認証データをカプセル化する（ステップＳ１０５）。
【００２６】
図４はカプセル化の様子を示している。IPヘッダ４００ａおよびペイロード４００ｂを含むクライアント端末１０からのパケット４００に対して、認証データを含む認証ヘッダ４１０を付加し、さらにＵＤＰヘッダ４２０およびIPヘッダ４３０を付加することによって、カプセル化したパケットが生成される。IPヘッダ４００ａには、送信元としてクライアント端末１０のIPアドレスが記録され、宛先としてサーバ２０の仮想IPアドレス（IPvirtual）が記録されている。また、IPヘッダ４３０には、送信元として中継端末３０のIPアドレス（IPproxy）が記録され、宛先としてサーバ２０の実IPアドレス（IPreal）が記録されている。したがって、クライアント端末１０（IPclient）を送信元としサーバ２０（IPvirtual）を宛先とするパケットが、カプセル化によって、中継端末３０（IPproxy）を送信元としサーバ２０（IPreal）を宛先とするパケットに変換される。
【００２７】
通信部３１ｂは、カプセル化されたパケットをサーバ２０へ送信する（ステップＳ１１０）。
【００２８】
サーバ２０の通信部２２ａは、中継端末３０からのパケットを受信する。パケット処理部２２ｂは、カプセル化されているパケットを分解し、クライアント端末１０からのデータ（図４のパケット４００のデータ）と認証データ（図４の認証ヘッダ４１０のデータ）に基づいて、データの検証を行う。
【００２９】
このとき、パケット処理部２２ｂは、クライアント端末１０からのデータと、自身が保持する秘密鍵からハッシュ値を計算し、認証データを生成する。続いて、パケット処理部２２ｂは、この認証データと、カプセル化されたパケットに付加されていた認証データとを比較する。両者が一致した場合には、次の処理が行われる。また、両者が一致しなかった場合には、パケットが破棄され、処理が終了する（ステップＳ１１５）。
【００３０】
認証データ同士が一致した場合、パケット処理部２２ｂは、クライアント端末１０からのパケットに付加されているIPヘッダ（図４のIPヘッダ４００ａ）に含まれる送信元のIPアドレス（IPclient）と、カプセル化されたパケットに付加されているIPヘッダ（図４のIPヘッダ４３０）に含まれる送信元のIPアドレス（IPproxy）とを対応させて経路記憶部２３に格納する。さらに、パケット処理部２２ｂは、クライアント端末１０からのパケットをサーバアプリケーション２１に渡す（ステップＳ１２０）。
【００３１】
サーバアプリケーション２１は、必要な処理を行った後、サーバ２０（IPvirtual）を送信元としクライアント端末１０（IPclient）を宛先とするパケットを生成し、パケット処理部２２ｂに渡す（ステップＳ１２５）。
【００３２】
パケット処理部２２ｂは、クライアント端末１０のIPアドレス（IPclient）をキーにして、中継端末３０のIPアドレス（IPproxy）を経路記憶部２３から読み出す。続いて、パケット処理部２２ｂは、サーバアプリケーション２１からのパケットのデータと、自身が保持する秘密鍵からハッシュ値を計算し、認証データを生成する。続いて、パケット処理部２２ｂは、サーバアプリケーション２１からのパケットと認証データをカプセル化する（ステップＳ１３０）。
【００３３】
認証データの生成方法およびカプセル化の方法は、前述した方法と同様である。サーバ２０（IPvirtual）を送信元としクライアント端末１０（IPclient）を宛先とするパケットは、カプセル化によって、サーバ２０（IPreal）を送信元とし中継端末３０（IPproxy）を宛先とするパケットに変換される。カプセル化されたパケットの構造は、図４に示した構造と同様である。通信部２２ａは、パケット処理部２２ｂによってカプセル化されたパケットを中継端末３０へ送信する（ステップＳ１３５）。
【００３４】
中継端末３０の通信部３１ｂはサーバ２０からのパケットを受信する。パケット処理部３１ｃは、カプセル化されているパケットを分解し、サーバ２０からのデータと認証データに基づいて、データの検証を行う。データの検証方法は、前述した方法と同様である。認証データ同士の比較が行われ、認証データ同士が一致した場合には、次の処理が行われる。また、認証データ同士が一致しなかった場合には、パケットが破棄され、処理が終了する（ステップＳ１４０）。
【００３５】
認証データ同士が一致した場合、パケット処理部３１ｃは、カプセル化されたパケットを分解して得られた、サーバ２０（IPvirtual）を送信元としクライアント端末１０（IPclient）を宛先とするパケットを通信部３１ｂへ出力する。通信部３１ｂは、このパケットをクライアント端末１０へ送信する（ステップＳ１４５）。
【００３６】
上記の通信と並行して、サーバ２０はDDoS攻撃の検知とフィルタリングルールの決定を行う。図５はこのときのサーバ２０の動作を示している。以下、図５を参照しながらサーバ２０の動作を説明する。
【００３７】
サーバ２０において、通信部２２ａが中継端末３０からパケットを受信すると、パケット処理部２２ｂは、そのパケットから検出したクライアント端末１０のIPアドレス（IPclient）と、中継端末３０のIPアドレス（IPproxy）と、カウント値とを関連付けてパケット情報記憶部２４に格納する。カウント値の初期値は０であり、同一のIPclient、IPproxyが記録されたパケットが受信されるとカウント値が１ずつ増加する。また、攻撃検知部２２ｃは所定時間以内に受信されたパケットの数をカウントし、サーバ２０へのトラヒックを監視する（ステップＳ２００）。
【００３８】
続いて、攻撃検知部２２ｃは、トラヒック（カウントしたパケットの数）が所定の閾値を超えているか否かを判定することによって、DDoS攻撃の有無を検知する（ステップＳ２０５）。トラヒックが所定の閾値を超えていない場合、DDoS攻撃は発生していないと判定され、処理がステップＳ２００に戻る。また、トラヒックが所定の閾値を超えている場合、DDoS攻撃が発生していると判定される。この場合、フィルタリングルール決定部２５は以下のようにして各中継端末３０のフィルタリングルールを決定する。
【００３９】
まず、フィルタリングルール決定部２５は、パケット情報記憶部２４に格納されている情報に基づいて、中継端末３０毎に単位時間当たりの攻撃パケット数を集計する。上述したように、パケット情報記憶部２４には、クライアント端末１０のIPアドレス（IPclient）と、中継端末３０のIPアドレス（IPproxy）と、カウント値とを関連付けた情報が保存されている。フィルタリングルール決定部２５は、同一のIPproxyを有する情報の各カウント値を合計することによって、中継端末３０毎の単位時間当たりの攻撃パケット数を集計する（ステップＳ２１０）。
【００４０】
続いて、フィルタリングルール決定部２５は、フィルタリングルールを決定する対象とする未選択の１つの中継端末３０を選択する（ステップＳ２１５）。フィルタリングルール決定部２５は、選択した中継端末３０の攻撃パケット数（ステップＳ２１０で集計した数）に基づいて、その中継端末３０で攻撃パケットが受信されたか否かを判定する（ステップＳ２２０）。攻撃パケットが受信されていない場合（ステップＳ２１０で集計した数が０の場合）、フィルタリングルール決定部２５は、対象の中継端末３０に関しては、フィルタリングルールを追加しないと決定する（ステップＳ２６５）。続いて、処理はステップＳ２５０へ進む。
【００４１】
一方、選択した中継端末３０で攻撃パケットが受信された場合（ステップＳ２１０で集計した数が１以上の場合）、フィルタリングルール決定部２５は、選択した中継端末３０で単位時間内に受信された攻撃パケットの送信元のIPアドレスの種類数をカウントする。すなわち、フィルタリングルール決定部２５は、選択した中継端末３０のIPアドレス（IPproxy）と関連付けられているクライアント端末１０のIPアドレス（IPclient）の種類数をカウントする。そして、フィルタリングルール決定部２５は、カウントした数（送信元IPアドレス数）が、中継端末３０で設定可能なフィルタリングルール数（N_max）を超えているか否かを判定する（ステップＳ２３０）。説明を簡単にするため、各中継端末３０で設定可能なフィルタリングルール数（N_max）は一定値であるものとする。
【００４２】
送信元IPアドレス数がN_max以下である場合、フィルタリングルール決定部２５は、攻撃パケットの送信元のIPアドレス、すなわち、選択した中継端末３０のIPアドレス（IPproxy）と関連付けられている全クライアント端末１０のIPアドレス（IPclient）を個別に指定してパケットを廃棄するフィルタリングルールを生成する（ステップＳ２６０）。続いて、処理はステップＳ２４５へ進む。
【００４３】
一方、送信元IPアドレス数がN_maxを超えている場合、フィルタリングルール決定部２５は、選択した中継端末３０のIPアドレス（IPproxy）と関連付けられているクライアント端末１０のIPアドレス（IPclient）毎にカウント値をソートする。そして、フィルタリングルール決定部２５は、カウント値の多い方から上位N_max個のカウント値を合計し、合計値が、選択した中継端末３０における単位時間当たりの攻撃パケット数（ステップＳ２１０で集計した値）に占める割合を算出する。さらに、フィルタリングルール決定部２５は、その割合が所定の割合Rを超えているか否かを判定する（ステップＳ２３５）。
【００４４】
算出した割合が所定の割合R以下である場合、フィルタリングルール決定部２５は、上位N_max個のカウント値と関連付けられているクライアント端末１０のIPアドレス（IPclient）を個別に指定してパケットを廃棄するフィルタリングルールを生成する（ステップＳ２５５）。続いて、処理はステップＳ２４５へ進む。
【００４５】
一方、算出した割合が所定の割合Rを超えている場合、フィルタリングルール決定部２５は、送信元のIPアドレスは指定せずに、宛先のIPアドレス（サーバ２０の仮想IPアドレス（IPvirtual））、プロトコル種別、ポート番号等を個別に指定してパケットを廃棄するフィルタリングルールを生成する（ステップＳ２４０）。続いて、フィルタリングルール決定部２５は、選択した中継端末３０に対して、上記により決定したフィルタリングルールとタイムアウト時間の情報を含むパケットを送信する（ステップＳ２４５）。タイムアウト時間は、フィルタリングルールの適用を開始してからその適用を終了するまでの時間である。
【００４６】
続いて、フィルタリングルール決定部２５は、全ての中継端末３０についてフィルタリングルールを決定したか否かを判定する（ステップＳ２５０）。フィルタリングルールを決定していない中継端末３０がある場合、ステップＳ２１５に戻って上記の処理が繰り返される。また、全ての中継端末３０についてフィルタリングルールを決定した場合、処理はステップＳ２００に戻る。
【００４７】
上記の処理により、攻撃パケットを中継した中継端末３０のフィルタリングルールが決定される。上記を簡単にまとめると、送信元IPアドレス数が少ない場合には、送信元IPアドレスを個別に指定してパケットを破棄するフィルタリングルールが生成される（ステップＳ２６０）。また、送信元IPアドレス数が多く、かつカウント値の上位N_max個の送信元からのトラヒックの割合が小さい場合には、カウント値の上位N_max個の送信元IPアドレスを個別に指定してパケットを破棄するフィルタリングルールが生成される（ステップＳ２５５）。また、送信元IPアドレス数が多く、かつカウント値の上位N_max個の送信元からのトラヒックの割合が大きい場合には、送信元IPアドレスとは無関係に宛先IPアドレス等を個別に指定してパケットを破棄するフィルタリングルールが生成される（ステップＳ２４０）。
【００４８】
一方、中継端末３０は以下のようにしてフィルタリングを行う。図６はこのときの中継端末３０の動作を示している。以下、図６を参照しながら中継端末３０の動作を説明する。
【００４９】
中継端末３０において、フィルタリングルール管理部３３は、サーバ２０から送信された、フィルタリングルールとタイムアウト時間の情報を含むパケットを受信する（ステップＳ３００）。続いて、フィルタリングルール管理部３３は、受信したパケットに含まれるフィルタリングルールの情報に基づいて、フィルタリング部３１ｄにフィルタリングルールの設定を行うと共に、時間の計測を開始する（ステップＳ３０５。フィルタリング部３１ｄは、設定に従って、通信部３１ｂで受信されたパケットの通過／破棄を判定し、パケットのフィルタリングを行う。破棄すると判定されたパケットは、フィルタリング部３１ｄによって破棄される（ステップＳ３１０）。
【００５０】
続いて、フィルタリングルール管理部３３は、サーバ２０から受信されたパケットに含まれるタイムアウト時間の情報に基づいて、タイムアウト時間が経過したか否かを判定する（ステップＳ３１５）。タイムアウト時間が経過していない場合、処理はステップＳ３１０に戻り、フィルタリングが継続される。また、タイムアウト時間が経過した場合、フィルタリングルール管理部３３は、サーバ２０から通知されたフィルタリングルールの情報を削除すると共に、フィルタリング部３１ｄの設定を解除する（ステップＳ３２０）。続いて、処理はステップＳ３００に戻る。
【００５１】
上述したように、本実施形態によれば、サーバ２０に割り当てられた仮想IPアドレスへの経路が中継端末３０への経路であることがネットワーク上に広報されるので、サーバ２０の仮想IPアドレスを宛先とするパケットは中継端末３０によって受信される。このパケットは、中継端末３０によって、サーバ２０の実IPアドレスを宛先とするパケットに変換されてサーバ２０へ送信される。このように、クライアント端末１０からサーバ２０へ送信されるパケットは必ず中継端末３０を経由するので、この中継端末３０においてパケットのフィルタリングを行うことによって、ネットワーク上で効率的にパケットの廃棄を行うことができる。
【００５２】
前述したように、DDoS攻撃によるネットワーク帯域の浪費を防ぐためには、極力、攻撃元に近い装置でパケットの廃棄を行うことが望ましい。本実施形態によれば、攻撃ホストとなっているクライアント端末１０に最も近い中継端末３０で効率的にパケットを廃棄することができるので、ネットワーク帯域の浪費を最小限に抑えることができる。
【００５３】
また、トンネル毎（中継端末３０毎）にパケット数をカウントし、トンネル毎にフィルタリングを行うことによって、攻撃パケットの含まれる割合の高いトンネルについてのみ選択的にトラヒックを削減することが可能となる。これによって、攻撃以外のトラヒックへの影響を最小限にしつつ、攻撃の影響を緩和することができる。
【００５４】
また、送信元のクライアント端末１０毎にパケット数をカウントし、クライアント端末１０のIPアドレスを個別に指定してフィルタリングを行うことによって、中継端末３０において攻撃のトラヒックと攻撃以外のトラヒックとを分離し、より柔軟なパケット廃棄を行うことができる。攻撃ホストの数が多くない場合には、このような柔軟なパケット廃棄が可能であるが、攻撃ホストの数が多い場合には、中継端末３０で個別に送信元のIPアドレスを指定したフィルタリングを行うことが困難となる場合がある。
【００５５】
したがって、中継端末３０の数はできるだけ多い方が、攻撃への耐性がより高まる。中継端末３０の数が十分に多い場合、個々の中継端末３０が担当するクライアント端末１０の数が小さくなるため、中継端末３０において、クライアント端末１０のIPアドレスを個別に指定して攻撃パケットのみを選択的に廃棄することができる。
【００５６】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【００５７】
１０・・・クライアント端末（外部端末）、２０・・・サーバ（通信端末）、２１・・・サーバアプリケーション、２２・・・トンネル通信部、２２ａ・・・通信部（第２のパケット受信手段）、２２ｂ・・・パケット処理部（カウント手段）、２２ｃ・・・攻撃検知部、２３・・・経路記憶部、２４・・・パケット情報記憶部、２５・・・フィルタリングルール決定部（決定手段、指示送信手段）、３０・・・中継端末、３１・・・パケット中継部、３１ａ・・・経路制御部、３１ｂ・・・通信部（第１のパケット受信手段、パケット送信手段）、３１ｃ・・・パケット処理部（変換手段）、３１ｄ・・・フィルタリング部（フィルタリング手段）、３２・・・中継情報記憶部、３３・・・フィルタリングルール管理部（指示受信手段）
【図１】
2010193083.tif 000003
【図２】
2010193083.tif 000004
【図３】
2010193083.tif 000005
【図４】
2010193083.tif 000006
【図５】
2010193083.tif 000007
【図６】
2010193083.tif 000008