通信システム
【課題】ネットワーク上の既存の通信機器の置換を伴わずに、送信元のIPアドレスの詐称による攻撃を検知し、サーバを攻撃から防御することができる通信システムを提供する。
【解決部】クライアント5からサーバ1の仮想IPアドレス宛てに送信されるパケットは、クライアント5とネットワークとの接続点に応じた攻撃防御ノード2によって受信され、攻撃防御ノード2および攻撃検知ノード3をこの順に経由してサーバ1に到達する。クライアント5がIPアドレスを詐称していない場合、各々の攻撃防御ノード2が中継するパケットの送信元のIPアドレスは攻撃防御ノード2毎に一定のIPアドレス範囲に収まるが、クライアント5がIPアドレスを詐称している場合、各々の攻撃防御ノード2が中継するパケットの送信元のIPアドレスの範囲が変化する。攻撃検知ノード3は、このIPアドレスの範囲の変化を検知する。
【解決部】クライアント5からサーバ1の仮想IPアドレス宛てに送信されるパケットは、クライアント5とネットワークとの接続点に応じた攻撃防御ノード2によって受信され、攻撃防御ノード2および攻撃検知ノード3をこの順に経由してサーバ1に到達する。クライアント5がIPアドレスを詐称していない場合、各々の攻撃防御ノード2が中継するパケットの送信元のIPアドレスは攻撃防御ノード2毎に一定のIPアドレス範囲に収まるが、クライアント5がIPアドレスを詐称している場合、各々の攻撃防御ノード2が中継するパケットの送信元のIPアドレスの範囲が変化する。攻撃検知ノード3は、このIPアドレスの範囲の変化を検知する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想IPアドレスが割り当てられたサーバと、サーバ宛てのパケットを中継する中継端末とを有する通信システムに関する。
【背景技術】
【0002】
IPネットワーク上の攻撃を検知し、攻撃に対する防御を行う侵入検知システム(IDS)やファイアウォール(FW)等は、到来するパケットに記録されている送信元IPアドレスに基づいて、攻撃の検知および防御を行う。したがって、攻撃者は、攻撃の検知および防御を回避するために、攻撃パケットの送信元IPアドレスを詐称した上で、DoS(Denial of Service)攻撃や分散DoS攻撃等を行うことがある。
【0003】
従来、IPアドレス詐称による攻撃を検知する技術として、IPトレースバックがある。このIPトレースバックは、パケットへマーキングを行い、あるいはパケットが通過するルータにハッシュ値を保存し、それらを追跡することで、送信元IPアドレスが詐称される場合でも、パケットの発信源を追跡および探知する技術である(例えば、特許文献1、非特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−28720号公報
【非特許文献】
【0005】
【非特許文献1】門林 ほか、“IPトレースバック技術”、情報処理 Vol. 42、No. 12、pp.1175-1180、2001年12月
【発明の概要】
【発明が解決しようとする課題】
【0006】
従来のIPトレースバック技術では、発信源の正確な追跡および探知を実現するためには、ルータ等のネットワーク上の多くの通信機器を、上記の技術を実現する機能を備えた通信機器に置換する必要があり、この置換に必要なコストが増大するという問題があった。このため、ネットワーク上の通信機器の置換を伴わずに攻撃の検知および防御を行うことが望ましい。
【0007】
本発明は、上述した課題に鑑みてなされたものであって、ネットワーク上の既存の通信機器の置換を伴わずに、送信元のIPアドレスの詐称による攻撃を検知し、サーバを攻撃から防御することができる通信システムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明は、上記の課題を解決するためになされたもので、通信端末から、実IPアドレスおよび仮想IPアドレスを有するサーバの前記仮想IPアドレス宛てに送信されるパケットを中継する複数の第1の中継端末と、前記第1の中継端末によって中継されたパケットを受信し、受信したパケットを前記仮想IPアドレスに対応した前記実IPアドレス宛てのパケットに変換し、前記サーバとの間で確立されたVPN接続により前記サーバへ変換後のパケットを送信する複数の第2の中継端末と、を備え、前記通信端末が送信したパケットは、当該通信端末とネットワークとの接続点に応じた前記第1の中継端末によって受信される通信システムであって、前記第1の中継端末は、パケットを削除するルールを示すルール情報を前記第2の中継端末から受信する受信部と、前記第2の中継端末から受信された前記ルール情報が示すルールに従って、前記第1の中継端末で受信されたパケットを削除するフィルタリング部と、を有し、前記第2の中継端末は、ネットワーク上の全てのIPアドレスを複数のIPアドレス範囲に分類したときの各々のIPアドレス範囲の情報を含むネットワーク情報を記憶すると共に、前記第1の中継端末が中継するパケットの送信元の前記通信端末のIPアドレスに対応する前記IPアドレス範囲の情報と当該第1の中継端末の識別情報とを含む通信履歴情報を記憶する記憶部と、前記第2の中継端末で受信されたパケットの送信元の前記通信端末のIPアドレスと、当該パケットを中継した前記第1の中継端末の識別情報と、前記ネットワーク情報とに基づいて前記通信履歴情報を生成し、前記記憶部に格納する生成部と、第1の通信履歴情報と、当該第1の通信履歴情報よりも前に生成された第2の通信履歴情報とを比較した結果に基づいて、前記通信端末のIPアドレスの詐称による攻撃を検知する検知部と、前記検知部によって検知された攻撃に係るパケットを削除する前記ルールを決定し、前記ルール情報を生成するルール決定部と、前記検知部によって検知された攻撃に係るパケットを中継した前記第1の中継端末へ前記ルール情報を送信する送信部と、を有することを特徴とする通信システムである。
【0009】
また、本発明の通信システムにおいて、前記検知部は、前記第1の通信履歴情報に含まれる前記IPアドレス範囲の情報と、前記第2の通信履歴情報に含まれる前記IPアドレス範囲の情報とが同一であり、かつ前記第1の通信履歴情報に含まれる前記第1の中継端末の識別情報と、前記第2の通信履歴情報に含まれる前記第1の中継端末の識別情報とが異なる場合に、前記通信端末のIPアドレスの詐称による攻撃を検知することを特徴とする。
【0010】
また、本発明の通信システムは、前記第1の中継端末および前記第2の中継端末の状態を管理する管理端末をさらに備え、前記第2の中継端末はさらに、前記管理端末に対して、前記第2の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末のネットワークへの参加状態の確認を要求する確認要求を送信し、当該参加状態を示す回答を前記管理端末から受信する状態確認部を有し、前記検知部は、前記第1の通信履歴情報に含まれる前記IPアドレス範囲の情報と、前記第2の通信履歴情報に含まれる前記IPアドレス範囲の情報とが同一であり、かつ前記第1の通信履歴情報に含まれる前記第1の中継端末の識別情報と、前記第2の通信履歴情報に含まれる前記第1の中継端末の識別情報とが異なる場合であって、前記第1の中継端末がネットワークから脱退したことを前記回答が示している場合に、前記通信端末のIPアドレスの詐称による攻撃を検知しないことを特徴とする。
【0011】
また、本発明の通信システムは、前記第1の中継端末および前記第2の中継端末の状態を管理する管理端末をさらに備え、前記第2の中継端末はさらに、前記管理端末に対して、前記第1の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末のネットワークへの参加状態と、前記第2の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末のネットワークへの参加状態との確認を要求する確認要求を送信し、当該参加状態を示す回答を前記管理端末から受信する状態確認部を有し、前記通信履歴情報はさらに、当該通信履歴情報に係るパケットの受信時刻を示す時刻情報を含み、前記検知部は、前記第1の通信履歴情報に含まれる前記IPアドレス範囲の情報と、前記第2の通信履歴情報に含まれる前記IPアドレス範囲の情報とが同一であり、かつ前記第1の通信履歴情報に含まれる前記第1の中継端末の識別情報と、前記第2の通信履歴情報に含まれる前記第1の中継端末の識別情報とが異なる場合であって、前記第2の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末がネットワークに参加中であることを前記回答が示しており、かつ前記第2の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末のネットワーク加入時刻が、前記第2の通信履歴情報に含まれる前記時刻情報が示す時刻よりも前である場合に、前記通信端末のIPアドレスの詐称による攻撃を検知することを特徴とする。
【0012】
また、本発明の通信システムにおいて、前記送信部は、前記第1の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末と、前記第2の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末とに対して前記ルール情報を送信することを特徴とする。
【発明の効果】
【0013】
本発明によれば、通信端末からサーバの仮想IPアドレス宛てに送信されるパケットは、通信端末とネットワークとの接続点に応じた第1の中継端末によって受信され、第1の中継端末および第2の中継端末をこの順に経由してサーバに到達する。通信端末がIPアドレスを詐称していない場合、各々の第1の中継端末が中継するパケットの送信元のIPアドレスは第1の中継端末毎に一定のIPアドレス範囲に収まるが、通信端末がIPアドレスを詐称している場合、各々の第1の中継端末が中継するパケットの送信元のIPアドレスの範囲が変化する。したがって、第1の通信履歴情報と第2の通信履歴情報とを比較することによって、このIPアドレスの範囲の変化を検知することが可能となる。よって、第1の中継端末と第2の中継端末をネットワークに追加することによって、ネットワーク上の既存の通信機器の置換を伴わずに、送信元のIPアドレスの詐称による攻撃を検知し、サーバを攻撃から防御することができる。
【図面の簡単な説明】
【0014】
【図1】本発明の一実施形態による通信システムの構成を示す構成図である。
【図2】本発明の一実施形態による通信システムの機能構成を示すブロック図である。
【図3】本発明の一実施形態における初期ノード起動手順を示すシーケンス図である。
【図4】本発明の一実施形態におけるノード加入手順を示すシーケンス図である。
【図5】本発明の一実施形態におけるノード脱退手順を示すシーケンス図である。
【図6】本発明の一実施形態におけるサーバ公開開始手順を示すシーケンス図である。
【図7】本発明の一実施形態におけるサーバ公開停止手順を示すシーケンス図である。
【図8】本発明の一実施形態における通信手順を示すシーケンス図である。
【図9】本発明の一実施形態による攻撃防御ノードと攻撃検知ノードの機能構成を示すブロック図である。
【図10】本発明の一実施形態における攻撃検知・防御方法を説明するための構成図である。
【図11】本発明の一実施形態における攻撃検知・防御方法を説明するための構成図である。
【図12】本発明の一実施形態における攻撃検知・防御方法を説明するための構成図である。
【図13】本発明の一実施形態におけるネットワーク情報を示す参考図である。
【図14】本発明の一実施形態における攻撃検知・防御手順を示すシーケンス図である。
【図15】本発明の一実施形態におけるログの構造を示す参考図である。
【図16】本発明の一実施形態における攻撃検知ノードの動作の手順を示すフローチャートである。
【図17】本発明の一実施形態における攻撃検知方法を説明するための参考図である。
【図18】DHTネットワークにおけるハッシュ空間を示す参考図である。
【発明を実施するための形態】
【0015】
以下、図面を参照し、本発明の実施形態を説明する。図1は、本発明の一実施形態による通信システムの構成を示している。本通信システムは、サーバを保護する機構を備えたオーバーレイネットワークを構成しており、サーバ1、攻撃防御ノード2(第1の中継端末)、攻撃検知ノード3(第2の中継端末)、管理ノード4、クライアント5(通信端末)を備える。図1に示す各装置の位置は、実際の物理ネットワーク上の位置とは必ずしも一致しない。
【0016】
サーバ1は、FTP(File Transfer Protocol)サーバやWebサーバ等であり、所定のサービスを提供する。サーバ1には、実ネットワークで用いるIPアドレス(本明細書では実IPアドレスとする)と共に、仮想的なIPアドレス(本明細書では仮想IPアドレスとする)が割り当てられている。
【0017】
攻撃防御ノード2は、クライアント5からサーバ1宛てに送信されるパケットを攻撃検知ノード3に中継する。また、攻撃防御ノード2は、サーバ1を攻撃から防御するためのパケットフィルタリングを行う。攻撃防御ノード2は、例えばISP(Internet Service Provider)毎のネットワークに設置されており、そのネットワーク内のクライアント5から送信されるパケットを中継する。
【0018】
攻撃検知ノード3は、攻撃防御ノード2が中継したパケットをサーバ1に中継する。また、攻撃検知ノード3は、サーバ1に対する攻撃を検知する。管理ノード4は、サーバ1に対する仮想IPアドレスの割り当てと、攻撃防御ノード2および攻撃検知ノード3の状態を管理する。クライアント5は、例えばISP毎のネットワークに所属している。クライアント5がサーバ1の仮想IPアドレス宛てに送信したパケットは、ルーティングプロトコルに従って、クライアント5とネットワークとの接続点の位置に応じた攻撃検知ノード3に転送される。
【0019】
サーバ1と攻撃検知ノード3との間ではVPN(Virtual Private Network)接続が確立される。これにより、サーバ1はネットワーク上の仮想的なセグメント(仮想セグメント)に収容される。サーバ1と攻撃検知ノード3との関係は1対1である、すなわちサーバ1は1つの攻撃検知ノード3のみとVPN接続を確立するため、特定のサーバ1宛てのパケットは、このサーバ1とVPN接続を確立している1つの攻撃検知ノード3を必ず経由する。サーバ1が全ての攻撃検知ノード3とVPN接続を確立する手法を用いてもよいが、上記のようにサーバ1が1つの攻撃検知ノード3のみとVPN接続を確立することによって、VPN接続を確立する処理負荷およびVPN接続の管理負荷が低減される。
【0020】
サーバ1は、攻撃検知ノード3とVPN接続を確立する場合、特定の1つの攻撃検知ノード3に対してVPN接続の要求を行う。このVPN接続の要求と確立はサーバ1と攻撃検知ノード3との間で自律的に行われるため、1つの管理端末が全ての攻撃検知ノード3の状態を管理し、サーバ1からVPN接続の要求を受けて攻撃検知ノード3の情報を応答するような中央集権的な仕組みを必要としない。
【0021】
攻撃防御ノード2と攻撃検知ノード3は、分散ハッシュテーブル(DHT: Distributed Hash Table)を利用したDHTネットワークを構成する。これにより、サーバ1と攻撃検知ノード3との対応関係を管理する負荷が攻撃防御ノード2および攻撃検知ノード3間で分散される。
【0022】
攻撃検知ノード3には、同一のサーバ1に対するパケットが複数の攻撃防御ノード2から到来しうる。攻撃検知ノード3が、どの攻撃防御ノード2からのパケットであるのかを区別してサーバ1へのパケット量を監視し、攻撃を検知することで、攻撃パケットがどの攻撃防御ノード2から到来するのかを知ることができる。攻撃が検知された場合、複数の攻撃防御ノード2のうち攻撃パケットを中継した攻撃防御ノード2において、攻撃対象となったサーバ1の仮想IPアドレス宛てのパケットを削除するパケットフィルタリングを実施することで、サーバ1を攻撃から防御することができる。パケットフィルタリングを実施している攻撃防御ノード2以外の攻撃防御ノード2から到来するパケットは攻撃パケットではないとみなされ、サーバ1へ転送される。
【0023】
本実施形態では、クライアント5からサーバ1の仮想IPアドレス宛てに送信されるパケットは、攻撃防御ノード2および攻撃検知ノード3をこの順に経由してサーバ1に到達する。分散DoS攻撃のように、個々の攻撃クライアントが送信するパケットは少量であるが多数の攻撃クライアントからのパケットが特定のサーバに集中する攻撃を検知するには、攻撃対象となるサーバの近傍で攻撃の検知を行うことが望ましい。本実施形態では、パケットの転送経路上でよりサーバ1に近い攻撃検知ノード3が攻撃の検知を行うことによって、より的確に攻撃を検知することが可能となる。さらに、サーバ1と攻撃検知ノード3との関係が1対1であるため、攻撃検知ノード3が各サーバ1へのトラヒックを一元的に監視することになり、サーバ1に対する攻撃をより的確に検知することができる。
【0024】
また、多数の攻撃クライアントからのパケットがネットワーク上で転送されるとネットワーク資源を浪費するので、攻撃クライアントの近傍でパケットフィルタリングを実施することが望ましい。本実施形態では、パケットの転送経路上でより攻撃元のクライアント5に近い攻撃防御ノード2がパケットのフィルタリングを行うことによって、攻撃元のクライアント5から送信されたパケットの転送によるネットワーク資源の消費をより抑えることが可能となる。
【0025】
図2は、パケットの中継に関する本通信システムの機能構成を示している。サーバ1は、サーバアプリケーション10と、サーバ公開部11とを有する。サーバアプリケーション10は、クライアント5からの要求に応じてサービスを提供する。サーバ公開部11は、サーバ1を収容する仮想セグメントを構築するためのサーバ公開に係る処理を行う。
【0026】
攻撃防御ノード2は、中継部20と、DHT管理部21と、DHT記憶部22と、広告部23とを有する。中継部20は、クライアント5から送信されたパケットを攻撃検知ノード3に中継する。DHT管理部21は、DHTネットワークに参加するための処理を行い、DHT記憶部22に記憶される情報を管理する。DHT記憶部22は、サーバ1とVPN接続を確立している攻撃検知ノード3のIPアドレスとサーバ1の仮想IPアドレスとの対応関係を示す情報を記憶する。より具体的には、DHT記憶部22は、サーバ1とVPN接続を確立している攻撃検知ノード3のIPアドレスと、サーバ1の仮想IPアドレスからSHA1(Secure Hash Algorithm 1)を用いて算出したハッシュ値とを関連付けて記憶する。DHTネットワークでは、この対応関係を示す情報は、サーバ1とVPN接続を確立している攻撃検知ノード3で管理されるとは限らず、DHTネットワークを構成する攻撃防御ノード2と攻撃検知ノード3のいずれかにおいて管理される。
【0027】
広告部23は、サーバ1の仮想IPアドレス宛てのパケットが攻撃防御ノード2に届くように、ルーティングプロトコルの一種であるOSPF(Open Shortest Path First)やBGP(Border Gateway Protocol)に従って、仮想IPアドレス宛ての経路に係る経路情報をネットワーク上に広告する。クライアント5がサーバ1の仮想IPアドレス宛てのパケットを送信すると、この経路情報に従ってネットワーク上のルータが転送を行うことにより、クライアント5に最も近い攻撃防御ノード2にパケットが到着する。つまり、クライアント5が送信したパケットは、クライアント5とネットワークとの接続点の位置に応じた攻撃防御ノード2に到着する。
【0028】
攻撃検知ノード3は、中継部30と、サーバ公開部31と、DHT管理部32と、DHT記憶部33と、広告部34とを有する。中継部30は、攻撃防御ノード2から送信されたパケットをサーバ1に中継する。サーバ公開部31は、サーバ1を収容する仮想セグメントを構築するためのサーバ公開に係る処理を行う。DHT管理部32は、DHTネットワークに参加するための処理を行い、DHT記憶部33に記憶される情報を管理する。DHT記憶部33はDHT記憶部22と同様に、サーバ1とVPN接続を確立している攻撃検知ノード3のIPアドレスと、サーバ1の仮想IPアドレスからSHA1を用いて算出したハッシュ値とを関連付けて記憶する。
【0029】
広告部34は、OSPFに従って、エニーキャストアドレス宛ての経路に係る経路情報をネットワーク上に広告する。サーバ1が、サーバ公開に係るVPN接続を行う際にエニーキャストアドレス宛てに攻撃検知ノード3の検索要求を行うと、サーバ1に最も近い攻撃検知ノード3から応答が返される。サーバ記憶部35は、サーバ1の仮想IPアドレスと実IPアドレスとを関連付けて記憶する。
【0030】
管理ノード4は、仮想IPアドレス記憶部40と、アドレス管理部41と、設定情報記憶部42と、ノード管理部43と、ノードリスト記憶部44とを有する。仮想IPアドレス記憶部40は、サーバ1に割り当てられる仮想IPアドレスを記憶する。アドレス管理部41は、サーバ1に対する仮想IPアドレスの割り当てを管理する。設定情報記憶部42は、攻撃防御ノード2に通知する仮想IPアドレスの範囲や、攻撃検知ノード3に通知するエニーキャストアドレスの範囲等を含む設定情報を記憶する。各攻撃防御ノード2には共通の仮想IPアドレス範囲が通知される。また、各攻撃検知ノード3には共通のエニーキャストアドレス範囲が通知される。ノード管理部43は、DHTネットワークを構成する攻撃防御ノード2および攻撃検知ノード3の情報を管理する。ノードリスト記憶部44は、DHTネットワークを構成する攻撃防御ノード2および攻撃検知ノード3の一覧であるノードリストを記憶する。
【0031】
クライアント5はクライアントアプリケーション50を有する。クライアントアプリケーション50はサーバ1に対してサービスの要求を行う。
【0032】
次に、攻撃防御ノード2と攻撃検知ノード3によるDHTネットワークの構築と管理について説明する。DHTネットワークにおいては、ネットワークを構成するノードの加入と離脱が生じる。ノードが加入する場合、既にDHTネットワークを構成しているいずれかのノードに対して加入処理を行うことで、DHTネットワークへの加入を行う。一方、DHTネットワークからノードが離脱する場合、ルーティングテーブルの再構築が行われ、残りのノードにより通信が継続される。このとき、離脱したノードが所持していた情報はDHTネットワーク上で隣接するノードが同期を取るなどして保持される。なお、最初にDHTネットワークを構成するノードが起動する場合は、加入処理を行う対象のノードが存在しないため、初期ノード起動処理が行われる。以下、DHTネットワークを構築するアルゴリズムの一種であるChordを実装したプログラムを例に、それぞれの具体的な手法を説明する。
【0033】
図3は、DHTネットワークを構成する最初のノードである初期ノード(攻撃防御ノード2または攻撃検知ノード3)が加入する場合のシーケンスを示している。初期ノードにおいて、DHT管理部21(32)は、ノードリストの取得要求を示すノードリスト要求を管理ノード4へ送信する(ステップS100)。なお、管理ノード4のIPアドレスは既知であるものとする。管理ノード4においてノード管理部43はノードリスト要求を受信し、ノードリスト記憶部44内のノードリストにノードのIPアドレスが登録されているか否かを判定する(ステップS110)。
【0034】
最初のノードが加入する場合、ノードリストにノードのIPアドレスが登録されていないため、管理ノード4は初期ノード起動処理が必要であると判定し、初期ノード起動処理の要求を示す初期ノード起動要求を、ノードリスト要求の送信元であるノードへ送信する(ステップS120)。初期ノード起動要求には、設定情報記憶部42内の設定情報に基づく仮想IPアドレスの範囲とエニーキャストアドレスの範囲が含まれる。
【0035】
初期ノードにおいて、DHT管理部21(32)は、初期ノード起動要求を受信し、初期ノード起動処理を実行する(ステップS130)。具体的には、次に示すようなブートストラップノードの起動コマンドを実行する。
start-dhash --root dhash-a -j sure.lcs.mit.edu:10000 -p 10000 &
【0036】
初期ノード起動処理の実行により、DHT記憶部22(33)には分散ハッシュテーブルが作成される。前述したように、このテーブルの構成要素は、サーバ1とVPN接続を確立している攻撃検知ノード3のIPアドレスと、サーバ1の仮想IPアドレスからSHA1を用いて算出したハッシュ値とのペアである。初期ノード起動処理が完了した時点では、テーブルにはこれらの情報は格納されていない。また、初期ノード起動処理が完了した時点では、DHTネットワークの全てのノード(1個)の情報を初期ノードが単体で管理している状態となる。
【0037】
初期ノード起動処理の実行後、DHT管理部21(32)は、初期ノードがDHTネットワークに加入したことを示すノード加入通知を管理ノード4へ送信することにより自身のIPアドレスを通知する(ステップS140)。管理ノード4においてノード管理部43はノード加入通知を受信し、ノード加入通知により通知されたIPアドレスをノード加入時刻(ノード加入通知の受信時刻)と共にノードリスト記憶部44内のノードリストに追加する(ステップS150)。
【0038】
初期ノードが攻撃防御ノード2である場合、初期ノード起動処理の実行後、攻撃防御ノード2の広告部23は、初期ノード起動要求によって通知された範囲の仮想IPアドレス宛ての経路に係る経路情報をネットワーク上に広告する。また、初期ノードが攻撃検知ノード3である場合、初期ノード起動処理の実行後、攻撃検知ノード3の広告部34は、初期ノード起動要求によって通知された範囲のエニーキャストアドレス宛ての経路に係る経路情報をネットワーク上に広告する(ステップS160)。
【0039】
なお、管理ノード4が初期ノードからノードリスト要求を受信してからノード加入通知を受信するまでの間に他のノードからノードリスト要求を受信した場合、ノードリスト要求の再送を示すメッセージが他のノードへ送信される。このため、初期ノードによるDHTネットワークが構築されるまで、他のノードからのノードリスト要求に対する処理は実行されない。
【0040】
図4は、1以上のノードによりDHTネットワークが構成されている場合に新たなノード(攻撃防御ノード2または攻撃検知ノード3)が加入する場合のシーケンスを示している。新たに加入するノードにおいて、DHT管理部21(32)は、ノードリストの取得要求を示すノードリスト要求を管理ノード4へ送信する(ステップS200)。なお、管理ノード4のIPアドレスは既知であるものとする。管理ノード4においてノード管理部43はノードリスト要求を受信し、ノードリスト記憶部44内のノードリストにノードのIPアドレスが登録されているか否かを判定する(ステップS210)。
【0041】
既に他のノードが加入している場合、ノードリストにノードのIPアドレスが登録されているため、管理ノード4は、ノードリスト要求の送信元であるノードへノードリストを送信する(ステップS220)。このとき、設定情報記憶部42内の設定情報に基づく仮想IPアドレスの範囲とエニーキャストアドレスの範囲がノードリストに付加される。新たに加入するノードにおいて、DHT管理部21(32)は、ノードリストを受信し、ノードリストに記載されているノードを対象としてノード加入処理を実行する(ステップS230)。具体的には、次に示すような既存ノードへの加入のコマンドを実行する。
start-dhash --root dhash-b -j sure.lcs.mit.edu:10000 &
【0042】
ノード加入処理の実行により、DHT記憶部22(33)には分散ハッシュテーブルが作成される。ノード加入処理では、ノードリストに記載されたIPアドレスを有するノードと通信が行われ、DHTネットワークに加入するための設定が行われる。
【0043】
ノード加入処理の実行後、DHT管理部21(32)は、新たにノードがDHTネットワークに加入したことを示すノード加入通知を管理ノード4へ送信することにより自身のIPアドレスを通知する(ステップS240)。管理ノード4においてノード管理部43はノード加入通知を受信し、ノード加入通知により通知されたIPアドレスをノード加入時刻(ノード加入通知の受信時刻)と共にノードリスト記憶部44内のノードリストに追加する(ステップS250)。
【0044】
新たに加入するノードが攻撃防御ノード2である場合、ノード加入処理の実行後、攻撃防御ノード2の広告部23は、管理ノード4から通知された範囲の仮想IPアドレス宛ての経路に係る経路情報をネットワーク上に広告する。また、新たに加入するノードが攻撃検知ノード3である場合、ノード加入処理の実行後、攻撃検知ノード3の広告部34は、管理ノード4から通知された範囲のエニーキャストアドレス宛ての経路に係る経路情報をネットワーク上に広告する(ステップS260)。
【0045】
以下、ステップS230において、DHTネットワークに加入する処理の詳細を説明する。DHTは、管理対象の情報のハッシュ値(以下、Keyとする)と、管理対象の情報(以下、Valueとする)とのペアを格納する分散ハッシュテーブルを複数のノードに分散させることによって、情報を効率的に管理する手法である。本実施形態では、サーバ1の仮想IPアドレスがKeyに該当し、攻撃検知ノード3のIPアドレスがValueに該当する。本実施形態では、DHTネットワークを構成する攻撃防御ノード2および攻撃検知ノード3が、自身のIPアドレスに基づいて、管理対象となる攻撃検知ノード3のIPアドレス(Value)を管理する。
【0046】
本実施形態でDHTネットワークの実装アルゴリズムの一例として用いるChordでは、DHTネットワークを構成するノードが各ノードのIDに従って配置される。各ノードに割り当てられるIDは、具体的にはノード毎のIPアドレスからSHA-1を用いて算出したハッシュ値である。Chordでは2160のハッシュ空間が用いられ、各ノードは円周上の点として定義される。図18は、簡単のためハッシュ空間を24とした場合のIDの割り当てを示している。0から15までの各IDを有するノードが配置されている。
【0047】
Chordでは、DHTネットワークを構成する各ノードが、自身のノードIDから隣接するノードIDまでの間に位置するIDに対応するValueを管理する。図18において、ノードIDが0、2、6、9、11、13、14のノードがDHTネットワークに加入している場合、ノードIDが0のノード0は、ノードIDが15と0に対応するKeyとValueのペアを管理する。
【0048】
Chordでは、各ノードはSuccessor、Predecessor、Fingertableと呼ばれる3種類のルーティングテーブルを保持する。これらのルーティングテーブルは、各ノードがDHT記憶部22(33)の分散ハッシュテーブルに保持するKeyとValueのペア(サーバ1の仮想IPアドレスと転送ノードのIPアドレスのペア)とは異なる。各ルーティングテーブルはDHT記憶部22(33)に保持されるものとする。
【0049】
Successorは、ノードIDが大きくなる方向に見て最近傍に位置するノードのIPアドレスを保持するルーティングテーブルであり、Predecessorは、ノードIDが小さくなる方向に見て最近傍に位置するノードのIPアドレスを保持するルーティングテーブルである。Fingertableは、2mのハッシュ空間において、以下の式に一致するIPアドレスを保持するルーティングテーブルである。
ノードのIPアドレス=IPadress[next(Z)]、ただし、Z=(Node_ID+2i) mod2m、i=0〜m
上記の式のnext(Z)は、ハッシュ空間上でZから右回り(つまりノードIDが大きくなる方向)に見て次に存在するノードのIDを返す関数である。IPadress[X]はIDがXのノードのIPアドレスを返す関数である。
【0050】
DHTネットワークに新たなノードが加入することは、円周上のノードが存在していない点の位置にノードが加わることを意味する。以下では、ID12のノード(ノード12)とID18のノード(ノード18)が存在しているDHTネットワークにID15のノード(ノード15)が加入する場合を例として加入の手順を説明する。
【0051】
ノード15は、自身のIPアドレスからハッシュ値であるIDを算出する。続いて、ノード15は、ノードリストに記載されているノードに対して、自身のIDを保持の対象としているノードのIPアドレスを要求する。要求を受けたノードは、ノード15のIDを保持していれば応答し、保持していなければ他のノードに要求を行う。この結果、ノード15はノード18のIPアドレスを取得する。
【0052】
続いて、ノード15はノード18にjoinメッセージを送信し、Successorにノード18のIPアドレスを記録する。さらに、ノード15はノード18から、Predecessorに保持すべきノード12のIPアドレスを通知され、Predecessorにノード12のIPアドレスを記録する。
【0053】
続いて、ノード15は、それまでノード18がFingertableに保持していたIPアドレスのうち、ノード15が管理すべき部分に該当するIPアドレスをノード18から受信し、Fingertableに記録する。また、ノード15は、それまでノード18がDHT記憶部22(33)の分散ハッシュテーブルに保持していたKeyとValueのペアのうち、ノード15が管理すべき部分に該当するKeyとValueのペアをノード18から受信し、DHT記憶部22(33)に記録する。ノード15は、ノード12に自身の加入を通知し、ノード12は、ノード15からの通知に基づいて、自身が保持しているSuccessorに記録されていたノード18のIPアドレスをノード15のIPアドレスに変更する。
【0054】
図5は、DHTネットワークに加入しているノード(攻撃防御ノード2または攻撃検知ノード3)がDHTネットワークから脱退する場合のシーケンスを示している。DHTネットワークから脱退するノードにおいて、DHT管理部21(32)はノード脱退処理を実行する(ステップS300)。続いて、DHT管理部21(32)は、DHTネットワークからの脱退を示すノード脱退通知を管理ノード4へ送信することにより自身のIPアドレスを通知する(ステップS310)。管理ノード4においてノード管理部43はノード脱退通知を受信し、ノード脱退通知により通知されたIPアドレスをノードリスト記憶部44内のノードリストから削除する(ステップS320)。
【0055】
上記のようにしてノードが脱退した場合、ハッシュ空間上でこのノードに隣接するノードにおいて、Successor、Predecessor、Fingertableがそれぞれ更新される。このとき、脱退したノードが保持していた情報を引き継ぐための処理として、DHTでは近傍のノードに自身が保持するデータのコピーを配置するなどして情報の欠損を防いでいる。なお、脱退したノードについては、そのノードのIPアドレスとノード脱退時刻(ノード脱退通知の受信時刻)とが脱退ノードリストに記録される。脱退ノードリストはノードリスト記憶部44に格納される。一旦脱退したノードが再度加入した場合には、ノードリストにノードのIPアドレスが登録された際に、同じノードのIPアドレスが脱退ノードリストから削除される。
【0056】
次に、サーバ1を収容する仮想セグメントを構築するためのサーバ公開について説明する。サーバ1は予め管理ノード4から仮想IPアドレスを取得する。管理ノード4においてアドレス管理部41は予め仮想IPアドレスを生成し、仮想IPアドレス記憶部40に保存する。サーバ1のサーバ公開部11は管理ノード4にアクセスし、仮想IPアドレスの割り当てに必要な情報の登録を行う。管理ノード4のアドレス管理部41は、仮想IPアドレス記憶部40から仮想IPアドレスを選択し、仮想IPアドレスをサーバ1に通知する。複数のサーバ1に対して同一の仮想IPアドレスが割り当てられないよう、アドレス管理部41は仮想IPアドレスの割り当てを管理する。サーバ1に対する仮想IPアドレスの通知は公開鍵証明書の発行により行われるが、詳細な説明を省略する。この公開鍵証明書はサーバ1が攻撃検知ノード3にアクセスする際に使用されるが、本実施形態では、公開鍵証明書による公知の通信方法に係る説明を省略する。
【0057】
図6は、仮想IPアドレスを取得したサーバ1の公開開始時のシーケンスを示している。サーバ1は、攻撃検知ノード3が使用するエニーキャストアドレスを予め知っているものとする。サーバ1のサーバ公開部11は、エニーキャストアドレス宛てに攻撃検知ノード3の接続要求を送信する(ステップS400)。この接続要求はサーバ1に最も近い攻撃検知ノード3に到着する。攻撃検知ノード3のサーバ公開部31はサーバ1からの接続要求を受信し、自身のIPアドレスを通知する応答をサーバ1へ送信する(ステップS410)。
【0058】
サーバ1のサーバ公開部11は攻撃検知ノード3からの応答を受信し、その応答によって通知されたIPアドレス宛てに、VPN接続の要求を示すVPN接続要求を送信する(ステップS420)。このVPN接続要求によって、サーバ1の仮想IPアドレスおよび実IPアドレスが攻撃検知ノード3に通知される。この後、サーバ1と攻撃検知ノード3の双方においてVPN接続のための各種設定が行われるが、詳細な説明を省略する。
【0059】
攻撃検知ノード3のサーバ公開部31は、サーバ1から通知された仮想IPアドレスをDHT管理部32に通知する。DHT管理部32は仮想IPアドレスのハッシュ値を算出し、攻撃検知ノード3のIPアドレスとハッシュ値とを、DHTネットワークを構成する攻撃防御ノード2または攻撃検知ノード3のDHT記憶部22(33)内の分散ハッシュテーブルに登録する処理を行う(ステップS430)。具体的には、以下のような“put”コマンドを実行する。なお、(a)はハッシュ値を示し、(b)は攻撃検知ノードのIPアドレスを示す。
put <(a)> <(b)>
【0060】
また、DHT管理部32は、サーバ1の仮想IPアドレスと実IPアドレスとを組にしてサーバ記憶部35に登録する(ステップS440)。
【0061】
以下、ステップS430において攻撃検知ノード3のIPアドレスとサーバ1の仮想IPアドレスのハッシュ値のペアを分散ハッシュテーブルに登録する処理の詳細を説明する。DHT管理部32は、サーバ1の仮想IPアドレスのハッシュ値をKeyとして管理すべきノードを検索する処理を行う。図18に示すDHTネットワークにおいて、ノード0が検索を行う例を示す。サーバ1の仮想IPアドレスのハッシュ値が12であるとすると、DHT管理部32は、前述したnext関数によりnext(12)=13であるため、目的の情報を管理すべきノードがノード13であることを求める。これに基づき、DHT管理部32は、攻撃検知ノード3のIPアドレスとサーバ1の仮想IPアドレスのハッシュ値のペアを含み、ノード13の検索を依頼するメッセージを生成し、中継部30に渡す。
【0062】
前述したFingertableの定義より、ノード0のFingertableに保持されるノードIDは、2(i=0,1[z=1,2])、6(i=2[z=4])、9(i=3[z=8])となる。ノード13のノードIDである13に関して、23<13<24であることから、ノード0は、i=3[z=8]のときのノードIDに対応するノード9にノード13の検索を依頼する。すなわち、中継部30はノード9宛てに上記のメッセージを送信する。
【0063】
ノード9のFingertableに保持されるノードIDは、11(i=0,1[z=10,11])、13(i=2[z=13])、2(i=3[z=1])であることから、ノード9はノード13の情報を保持している。したがって、ノード9からノード13に、ノード0からのメッセージが転送される。ノード13において中継部20(30)はメッセージを受信し、DHT管理部21(32)に渡す。DHT管理部21は、メッセージに含まれる攻撃検知ノード3のIPアドレスとサーバ1の仮想IPアドレスのハッシュ値をDHT記憶部22(33)に設定する。
【0064】
このように、DHTネットワークでは、はじめに大まかな検索を行い、検索対象に近づくに従って、徐々に細かい検索を行うことで、DHTネットワークを構成しているノードから隣接するノードを順番に辿る場合よりも効率的な検索を実現している。上記のようにして、攻撃検知ノード3のIPアドレスとサーバ1の仮想IPアドレスのハッシュ値のペアが、DHTネットワークを構成する攻撃防御ノード2または攻撃検知ノード3によって管理されるようになる。
【0065】
図7は、サーバ1の公開停止時のシーケンスを示している。攻撃検知ノード3のサーバ公開部31は、サーバ1からの明示的なVPN接続の解除通知あるいは障害等によるVPN接続の解除を検知することにより、VPN接続が切断されたことを検知し、DHT管理部32に通知する(ステップS500)。
【0066】
DHT管理部32は、サーバ公開部31から通知を受けると、切断されたVPN接続の接続相手であるサーバ1の仮想IPアドレスと自身のIPアドレスのペアを分散ハッシュテーブルから削除するため、VPN接続を解除したサーバ1の仮想IPアドレスのハッシュ値をKeyとして管理しているノードを検索する処理を行う(ステップS510)。このとき、ステップS430の処理と同様にして検索が行われ、所望のノードにメッセージが転送される。メッセージを受信したノードにおいてDHT管理部21(33)は、メッセージに含まれるハッシュ値と一致するハッシュ値およびそれと関連付けられている攻撃検知ノード3のIPアドレスを分散ハッシュテーブルから削除する。
【0067】
次に、サーバ1とクライアント5との通信について説明する。図8は、クライアント5がサーバ1と通信を行う際のシーケンスを示している。クライアント5は、例えばDNSサーバにサーバ1の名前解決を依頼し、その結果としてDNSサーバからサーバ1のIPアドレスを通知されることにより、サーバ1の仮想IPアドレス(IP_virtual)を取得することが可能である。クライアント5のクライアントアプリケーション50は、クライアント5(IP_client)を送信元とし、サーバ1(IP_virtual)を宛先とするパケットを送信する(ステップS600)。攻撃防御ノード2がIP_virtual宛ての経路を広告していることにより、クライアント5から送信されたパケットはクライアント5に最も近い攻撃防御ノード2に到着する。
【0068】
攻撃防御ノード2の中継部20は、クライアント5からのパケットを受信し、受信したパケットに含まれるサーバ1の仮想IPアドレス(IP_virtual)をDHT管理部21に通知する。DHT管理部21は、この仮想IPアドレス(IP_virtual)のハッシュ値を算出し、このハッシュ値をKeyとして管理しているノードを検索する処理を行う(ステップS610)。
【0069】
このとき、ステップS430の処理と同様にして検索が行われ、所望のノードにメッセージが転送される。メッセージを受信したノードにおいてDHT管理部21(33)は、メッセージに含まれるハッシュ値と一致するハッシュ値を分散ハッシュテーブルから検索し、一致したハッシュ値と関連付けられている攻撃検知ノード3のIPアドレスを取得する。DHT管理部21(33)は、取得したIPアドレスを通知するための応答メッセージを生成し、中継部20(30)に渡す。中継部20(30)は、検索を要求した攻撃防御ノード2へ応答メッセージを送信する。検索を要求した攻撃防御ノード2において中継部20はこの応答メッセージを受信し、所望の攻撃検知ノード3のIPアドレスを取得する。
【0070】
中継部20は、クライアント5から受信したパケットをカプセル化する(ステップS620)。このカプセル化では、クライアント5からのパケットに対してIPヘッダが付加される。このIPヘッダには、送信元のIPアドレスとして攻撃防御ノード2のIPアドレス(Rc)が記録され、宛先のIPアドレスとして攻撃検知ノード3のIPアドレス(Rs)が記録されている。したがって、クライアント5(IP_client)を送信元としサーバ1(IP_virtual)を宛先とするパケットが、カプセル化によって、攻撃防御ノード2(Rc)を送信元とし攻撃検知ノード3(Rs)を宛先とするパケットに変換される。中継部20は、カプセル化したパケットを攻撃検知ノード3へ送信する(ステップS630)。
【0071】
攻撃検知ノード3の中継部30は、攻撃防御ノード2からのパケットを受信し、カプセル解除する(ステップS640)。このカプセル解除では、攻撃防御ノード2でパケットに付加されたIPヘッダが除去される。したがって、攻撃防御ノード2(Rc)を送信元とし攻撃検知ノード3(Rs)を宛先とするパケットが、カプセル解除によって、クライアント5(IP_client)を送信元としサーバ1(IP_virtual)を宛先とするパケットに変換される。
【0072】
続いて、中継部30は、パケットに含まれるサーバ1の仮想IPアドレス(IP_virtual)をキーにしてサーバ記憶部35内の情報を検索し、サーバ1の仮想IPアドレス(IP_virtual)に対応する実IPアドレス(IP_real)を取得する(ステップS650)。さらに、中継部30は、ステップS640でカプセル解除したパケットをカプセル化する(ステップS660)。このカプセル化では、送信元のIPアドレスとして攻撃検知ノード3のIPアドレス(Rs)が記録され、宛先のIPアドレスとしてサーバ1の実IPアドレス(IP_real)が記録されたIPヘッダが付加される。したがって、カプセル解除されたパケットが、カプセル化によって、攻撃検知ノード3(Rs)を送信元としサーバ1(IP_real)を宛先とするパケットに変換される。中継部30は、カプセル化したパケットをサーバ1へ送信する(ステップS670)。
【0073】
サーバ1のサーバアプリケーション10は攻撃検知ノード3からのパケットを受信し、適宜処理する(ステップS680)。なお、受信されたパケットは、ミドルウェアによってカプセル解除される(図示せず)。サーバアプリケーション10は、クライアント5への応答パケットを攻撃検知ノード3へ送信する(ステップS690)。この応答パケットは、サーバ1(IP_virtual)を送信元としクライアント5(IP_client)を宛先とするパケットに対して、カプセル化により、サーバ1(IP_virtual)を送信元とし攻撃検知ノード3(Rs)を宛先とするIPヘッダが付加されたものである。
【0074】
攻撃検知ノード3の中継部30はサーバ1からのパケットを受信し、カプセル解除する(ステップS700)。このカプセル解除によって、サーバ1からのパケットは、サーバ1(IP_virtual)を送信元としクライアント5(IP_client)を宛先とするパケットに変換される。中継部30は、カプセル解除したパケットをクライアント5へ送信する(ステップS710)。
【0075】
上述したように、サーバ1は1つの攻撃検知ノード3のみとVPN接続を確立するため、サーバが全ての中継端末とVPN接続を確立する手法を用いる場合よりもVPN接続を確立する処理負荷およびVPN接続の管理負荷を低減することができる。また、VPN接続の要求と確立がサーバ1と攻撃検知ノード3との間で自律的に行われるため、1つの管理端末が全ての攻撃検知ノード3の状態を管理し、サーバ1からVPN接続の要求を受けて攻撃検知ノード3の情報を応答するような中央集権的な仕組みを必要としない。
【0076】
また、攻撃防御ノード2と攻撃検知ノード3が、分散ハッシュテーブルを利用したDHTネットワークを構成することによって、サーバ1と攻撃検知ノード3との対応関係を管理する負荷を攻撃防御ノード2と攻撃検知ノード3間で分散することができる。
【0077】
次に、本実施形態におけるサーバ1に対する攻撃の検知と防御について説明する。サーバ1宛てのパケットは、そのサーバ1を収容する仮想セグメントを構成する攻撃検知ノード3によってサーバ1へ転送されるので、攻撃検知ノード3においてサーバ1へのトラヒックを把握することが可能となる。図9は、攻撃の検知と防御に関する攻撃防御ノード2と攻撃検知ノード3の機能構成を示している。
【0078】
攻撃防御ノード2は、前述した中継部20を有する。中継部20は、パケットの送信および受信を行う送受信部20aと、攻撃検知ノード3から通知されるフィルタリングルールを中継部20に設定するフィルタリング設定部20bと、攻撃検知ノード3から通知されるフィルタリングルールに従ってパケットを削除するフィルタリング部20cとを有する。
【0079】
攻撃検知ノード3は、前述した中継部30と、ログ記憶部36と、攻撃検知部37と、ルール決定部38とを有する。中継部30は、パケットの送信および受信を行う送受信部30aと、サーバ1に中継したパケットの情報をログに記録するログ記録部30bとを有する。ログ記憶部36は、中継部30がサーバ1に中継したパケットの情報を含むログを記憶すると共に、攻撃検知部37が攻撃を検知する際に使用する各種情報を記憶する。攻撃検知部37は、ログ記憶部36に記憶されているログ等に基づいて、送信元のIPアドレスの詐称による攻撃を検知する。ルール決定部38は、攻撃検知部37によって攻撃が検知された場合に、その攻撃の防御を行うためのフィルタリングルールを決定する。
【0080】
次に、本実施形態における攻撃検知・防御方法を説明する。図10に示すように、サーバ1a〜1c、攻撃防御ノード2a〜2c、攻撃検知ノード3a〜3b、管理ノード4、およびクライアント5a〜5eが存在する場合を例として説明を行う。クライアント5a,5b,5c,5d,5eのそれぞれの本来のIPアドレスは10.0.0.1、10.0.0.2、20.0.0.1、30.0.0.1、30.0.0.2であるものとする。
【0081】
本実施形態では、クライアント5からサーバ1の仮想IPアドレス宛てに送信されるパケットが、クライアント5とネットワークとの接続点の位置に応じた攻撃防御ノード2によって受信されるようネットワーク上の経路が構築されている。図10に示す例では、攻撃検知ノード2aとクライアント5a,5bが、同一のISP等によって管理される第1のネットワークに所属し、攻撃検知ノード2bとクライアント5cが、同一のISP等によって管理される第2のネットワークに所属し、攻撃検知ノード2cとクライアント5d,5eが、同一のISP等によって管理される第3のネットワークに所属していることを想定している。このため、クライアント5a,5bが送信したパケットは攻撃防御ノード2aによって受信され、クライアント5cが送信したパケットは攻撃防御ノード2bによって受信され、クライアント5d,5eが送信したパケットは攻撃防御ノード2cによって受信される。
【0082】
クライアント5がIPアドレスを詐称していない場合、各々の攻撃防御ノード2が中継するパケットの送信元のIPアドレスは、各々の攻撃防御ノード2に対応した一定のIPアドレス範囲に収まる。言い換えると、クライアント5がIPアドレスを詐称していない場合、各々の攻撃防御ノード2は、各々に対応した一定のIPアドレス範囲に対応するネットワークを経由したパケットのみを受信する。
【0083】
攻撃検知ノード3は、攻撃防御ノード2によって中継されたパケットを受信した際、そのパケットの送信元のIPアドレスに基づいて、そのパケットを中継した攻撃防御ノード2の識別子(以下、ノード識別子と記載)と、その攻撃防御ノード2に対応するIPアドレス範囲の識別子(以下、ネットワーク識別子と記載)と、パケットの受信時刻とを関連付けたプロファイル(通信履歴情報)を生成し、記憶する。例えば、図11に示すように、攻撃検知ノード3aにおいて、クライアント5a,5c,5dからのパケットが受信された場合、以下のようなプロファイルが生成される。
【0084】
攻撃検知ノード3aは、クライアント5aからのパケットを受信したので、クライアント5aのIPアドレス10.0.0.1に基づいて、このパケットを中継した攻撃防御ノード2aに対応するネットワーク識別子(図11に示す例ではネットワークプレフィックス)が10.0.0.0/24であることを検知する。したがって、攻撃検知ノード3aは、攻撃防御ノード2aのノード識別子(図11に示す例では2a)と、ネットワーク識別子(10.0.0.0/24)と、クライアント5aからのパケットを受信した時刻(図11に示す例ではTa)とを関連付けたプロファイルを生成する。攻撃検知ノード3aは、クライアント5c,5dからもパケットを受信したので、同様にしてプロファイルを生成する。図11には、上記のプロファイルを含むプロファイル情報P1が示されている。
【0085】
続いて、図12に示すように、クライアント5dがIPアドレスを詐称してサーバ1a宛のパケットを送信したとする。詐称後のクライアント5dのIPアドレスを10.0.0.5とする。クライアント5dはIPアドレスを詐称しているが、ネットワークとの接続点の位置が変化していないので、クライアント5が送信したパケットは攻撃防御ノード2cによって中継され、攻撃検知ノード3aによって受信される。このとき、攻撃検知ノード3aは、上記と同様に、攻撃防御ノード2cのノード識別子(図12に示す例では2c)と、ネットワーク識別子(10.0.0.0/24)と、クライアント5dからのパケットを受信した時刻(図11に示す例ではTd)とを関連付けたプロファイルを生成する。図12には、上記のプロファイルを含むプロファイル情報P2が示されている。
【0086】
図12のプロファイル情報P2が示すように、同一のネットワーク識別子(10.0.0.0/24)に関して、ノード識別子が異なる2つのプロファイル(「2a:10.0.0.0/24:Ta」と「2c:10.0.0.0/24:Td」)が存在している。つまり、時刻Taの時点では、このネットワーク識別子(10.0.0.0/24)に対応するIPアドレスを有するクライアント5からのパケットは攻撃防御ノード2aによって受信されていたが、時刻Taよりも後の時刻Tdの時点では、同じネットワーク識別子(10.0.0.0/24)に対応するIPアドレスを有するクライアント5からのパケットが、攻撃防御ノード2aとは異なる攻撃防御ノード2cによって中継されている。このように、同一のネットワーク識別子に関するプロファイルのノード識別子が変化した場合、攻撃検知ノード3は、送信元のIPアドレスが詐称されており、送信元のIPアドレスの詐称による攻撃が発生したと判断する。
【0087】
本実施形態では、送信元のIPアドレスの詐称による攻撃が検知された場合、攻撃に利用されたIPアドレスに対応するネットワーク識別子に対応するIPアドレスを送信元とするパケットを棄却するというポリシーに従って、パケットのフィルタリングが行われる。図12に示す例では、IPアドレス10.0.0.5が攻撃に利用されたと判断され、このIPアドレス10.0.0.5を送信元とするパケットを中継した攻撃防御ノード2cと、このIPアドレス10.0.0.5に対応するネットワーク識別子に対応する攻撃防御ノード2aとにおいて、このIPアドレス10.0.0.5に対応するネットワーク識別子10.0.0.0/24とネットワークプレフィックスが一致するIPアドレスを送信元とするパケットが棄却される。
【0088】
攻撃検知ノード3のログ記憶部36は、前述したログのほか、攻撃検知部37が攻撃を検知する際に使用する情報であるプロファイル情報とネットワーク情報を記憶する。プロファイル情報については上述した通りである。ネットワーク情報は、ネットワーク(インターネット)上の全てのIPアドレス(000.000.000.000〜255.255.255.255)からなるIPアドレス空間を複数のIPアドレス範囲に分類(分割)したときの各々のIPアドレス範囲に対応するネットワーク識別子の情報を含む。
【0089】
図13はネットワーク情報の一例を示している。本実施形態のネットワーク情報を提供するWebサービスが既知であり、そのWebサービスを提供するサーバからネットワーク情報を受信することが可能である。図13に示す例では、ネットワーク識別子としてネットワークプレフィックスI1が記録されている。攻撃検知部37は、攻撃検知ノード3で受信されたパケットの送信元のIPアドレスとネットワークプレフィックスI1との各値を上位のオクテット(8ビットの値)から順にオクテット単位で比較する。攻撃検知部37は、最上位のオクテットの値が一致し、かつアドレス値の最上位側から見て値が一致する桁数が最大のネットワークプレフィックスI1を選択する。例えば、攻撃検知ノード3で受信されたパケットの送信元のIPアドレスが10.0.0.1である場合、ネットワークプレフィックス10.0.0.0/24が選択される。
【0090】
ネットワーク識別子としてAS番号を使用することも可能である。図13に示すパス情報I2の末尾の番号がAS番号である。上記と同様にして、攻撃検知ノード3で受信されたパケットの送信元のIPアドレスに対応するネットワークプレフィックスI1(例えば10.0.0.0/24)を選択し、そのネットワークプレフィックスI1に関連付けられたAS番号(例えば7667)を選択すれば、このAS番号がネットワーク識別子となる。
【0091】
同一のネットワーク識別子に対応する攻撃防御ノード2が2台以上あると、上記の攻撃検知方法では、送信元のIPアドレスの詐称による攻撃を誤検知する可能性がある。このため、1つのネットワーク識別子に対して1台の攻撃防御ノード2のみが対応するように攻撃防御ノード2を設置することが望ましい。以下の説明では、同一のネットワーク識別子に対応する攻撃防御ノード2が2台以上設置されていないことを前提とする。
【0092】
上記の説明が、本実施形態における攻撃検知・防御方法の説明である。なお、上記の説明では、説明を簡略化するため、攻撃防御ノード2の加入や脱退に伴うDHTネットワークの構成変更を考慮していない。DHTネットワークの構成変更が発生すると、上述したプロファイルが変化する場合があるため、この変化を送信元のIPアドレスの詐称による攻撃として誤検知する可能性がある。以下では、この誤検知を低減した攻撃検知・防御方法を説明する。
【0093】
図14は、サーバ1に対する攻撃の検知と防御時のシーケンスを示している。攻撃検知ノード3においてログ記録部30bは、送受信部30aが攻撃防御ノード2からのパケットをサーバ1に中継した際に、そのパケットからIPアドレス等の情報を取得し、ログ記憶部36内のログに追加する。図15は、1パケット分のログの構造を示している。攻撃防御ノード2でカプセル化されたパケットに付加されているIPヘッダの情報と、カプセル解除したパケットのIPヘッダから、パケットを送信したクライアント5のIPアドレス、パケットの宛先であるサーバ1の仮想IPアドレス、パケットを中継した攻撃防御ノード2のIPアドレスを取得することができる。これらと攻撃検知ノード3のIPアドレスおよびパケットの受信時刻がログに記録される。
【0094】
攻撃検知部37はログ記憶部36内のログ等に基づいて、攻撃防御ノード2からサーバ1へのトラヒックに関して、送信元のIPアドレスの詐称による攻撃が発生したか否かの判定を行う(ステップS800)。攻撃検知部37によって攻撃が発生したと判定された場合、すなわち攻撃が検知された場合、ルール決定部38はフィルタリングルールを決定すると共に、フィルタリングを行う攻撃防御ノード2を決定する。ルール決定部38は、決定したフィルタリングルールを通知するルール情報を生成し、フィルタリングを行う攻撃防御ノード2を指定する情報と共にルール情報を中継部30に通知する(ステップS810)。
【0095】
中継部30の送受信部30aは、ルール決定部38によって指定された攻撃防御ノード2へルール情報を送信する(ステップS820)。攻撃防御ノード2において、送受信部20aは攻撃検知ノード3からのルール情報を受信する。フィルタリング設定部20bは、ルール情報が示すフィルタリングルールに従って、特定の条件を満たすパケットを削除するようにフィルタリング部20cにフィルタリングの設定を行う(ステップS820)。これ以降、フィルタリング部20cは、設定された条件に従って、クライアント5から受信したパケットを削除する。送受信部20aは、削除されたパケットを送信しない。
【0096】
次に、ステップS800において、送信元のIPアドレスの詐称による攻撃を判定する処理の詳細を説明する。図16は、ステップS800における処理の詳細を示している。まず、攻撃検知部37は、ログ記憶部36内のログに新たにパケットの情報が追加されたか否かを判定することにより、攻撃検知ノード3で新たにパケットが受信されたか否かを判定する(ステップS900)。ログ記憶部36内のログに新たにパケットの情報が追加されていない場合、すなわち攻撃検知ノード3で新たにパケットが受信されていない場合、再度ステップS900の処理が行われる。
【0097】
また、ログ記憶部36内のログに新たにパケットの情報が追加された場合、すなわち攻撃検知ノード3で新たにパケットが受信された場合、攻撃検知部37は、ログにおいて新たに追加されたパケットの情報から、パケットを中継した攻撃防御ノード2のIPアドレスとパケットの送信元のIPアドレスとパケットの受信時刻とを抽出する(ステップS905)。抽出した攻撃防御ノード2のIPアドレスはノード識別子として使用される。
【0098】
続いて、攻撃検知部37は、ログ記憶部36内のネットワーク情報に基づいて、ステップS905で抽出した送信元のIPアドレスに対応するネットワーク識別子を選択する。攻撃検知部37は、選択したネットワーク識別子と、ステップS905で抽出したノード識別子とパケットの受信時刻とを含むプロファイル(通信履歴情報)を生成し、プロファイル情報としてログ記憶部36に格納する(ステップS910)。以下では、ステップS910で生成した最新のプロファイルのノード識別子をMとし、ネットワーク識別子をNとする。
【0099】
続いて、攻撃検知部37は、ログ記憶部36内のプロファイル情報に含まれるプロファイルのうち、ステップS910で生成した最新のプロファイルと、それ以外の過去のプロファイル(最新のプロファイルのパケット受信時刻よりも古いパケット受信時刻を含むプロファイル)とを比較する。そして、攻撃検知部37は、最新のプロファイルを除いた過去のプロファイルの中に、最新のプロファイルのノード識別子Mとノード識別子が一致し、かつ最新のプロファイルのネットワーク識別子Nとネットワーク識別子が一致するプロファイルがあるか否かを判定する(ステップS915)。
【0100】
最新のプロファイルのノード識別子Mとノード識別子が一致し、かつ最新のプロファイルのネットワーク識別子Nとネットワーク識別子が一致するプロファイルがある場合、攻撃検知部37は、攻撃が発生していないと判断する(ステップS935)。この場合、ルール決定部38にサーバ1の仮想IPアドレスは通知されない。続いて、処理はステップS900に戻る。
【0101】
また、最新のプロファイルのノード識別子Mとノード識別子が一致し、かつ最新のプロファイルのネットワーク識別子Nとネットワーク識別子が一致するプロファイルがない場合、攻撃検知部37は、最新のプロファイルを除いた過去のプロファイルの中に、最新のプロファイルのネットワーク識別子Nとネットワーク識別子が一致するプロファイルがあるか否かを判定する(ステップS920)。
【0102】
最新のプロファイルのネットワーク識別子Nとネットワーク識別子が一致するプロファイルがない場合、処理はステップS935に進み、攻撃が発生していないと判断される。また、最新のプロファイルのネットワーク識別子Nとネットワーク識別子が一致するプロファイルがある場合(この場合、プロファイル間でノード識別子は異なる)、同じネットワーク識別子に対応するIPアドレスを有するクライアント5からのパケットが、異なる時点で異なる攻撃防御ノード2よって中継されているため、送信元のIPアドレスの詐称による攻撃が発生している可能性がある。以下では、最新のプロファイルのネットワーク識別子Nとネットワーク識別子が一致するプロファイルのノード識別子をXとする。
【0103】
この場合、攻撃防御ノード2の加入や脱退によりプロファイルが変化している可能性もあるため、攻撃防御ノード2の状態の確認が行われる(ステップS925)。より具体的には、攻撃検知部37は、攻撃防御ノード2の状態を管理ノード4に確認する指示を中継部30へ出力する。この指示には、攻撃防御ノード2のIPアドレスであるノード識別子Mとノード識別子Xが含まれる。中継部30の送受信部30aは、ノード識別子Mとノード識別子Xを含み、攻撃防御ノード2の状態の確認を依頼する状態確認依頼メッセージを管理ノード4へ送信する。
【0104】
管理ノード4のノード管理部43は状態確認依頼メッセージを受信すると、ノードリスト記憶部44からノードリストおよび脱退ノードリストを読み出す。ノード管理部43は、ノードリストおよび脱退ノードリストにおいて、受信した状態確認依頼メッセージに含まれるノード識別子M、ノード識別子Xと同一のIPアドレスをそれぞれ検索する。ノード管理部43は、検索の結果に基づいて、攻撃防御ノード2の状態を回答する状態回答メッセージを生成し、状態確認依頼メッセージの送信元である攻撃検知ノード3へ送信する。
【0105】
ノード識別子Mまたはノード識別子Xと一致するIPアドレスがノードリストにあった場合、状態回答メッセージには、そのIPアドレスと、ノードが加入している(DHTネットワークに参加中である)ことを示す情報と、ノード加入時刻との組合せが含まれる。また、ノード識別子Mまたはノード識別子Xと一致するIPアドレスが脱退ノードリストにあった場合、状態回答メッセージには、そのIPアドレスと、ノードが脱退している(DHTネットワークから離脱している)ことを示す情報と、ノード脱退時刻との組合せが含まれる。
【0106】
ノード識別子Xを有する攻撃防御ノード2に関しては、ノードが脱退している場合と参加中の場合との両方がある。これに対して、ノード識別子Mを有する攻撃防御ノード2に関しては、この攻撃防御ノード2によって中継されたパケットが攻撃検知ノード3で受信されているため(ステップS900〜S915)、ノードは脱退しておらず参加中であることを想定している。したがって、ノード識別子Mを有する攻撃防御ノード2に関しては、そのIPアドレスと、ノードが加入していることを示す情報と、ノード加入時刻との組合せが状態回答メッセージに含まれるものとする。
【0107】
攻撃検知ノード3の送受信部30aは状態回答メッセージを受信すると、受信した状態回答メッセージを攻撃検知部37へ出力する。攻撃検知部37は、状態回答メッセージに含まれる情報を参照する。以上の処理により、攻撃防御ノード2の状態の確認が行われる。
【0108】
ステップS925に続いて、攻撃検知部37は、ノード識別子Xと一致するIPアドレスと組み合わされているノードの状態の情報がノードの脱退を示しているか否か(すなわちノード識別子Xを有する攻撃防御ノード2が脱退しているか否か)を判定する(ステップS930)。ノード識別子Xと一致するIPアドレスと組み合わされた情報がノードの脱退を示している場合、ノード識別子Xを有する攻撃防御ノード2の脱退により、この攻撃防御ノード2によって受信されていたパケットが、ノード識別子Mを有する攻撃防御ノード2によって受信されるようになったと考えられる。この場合、処理はステップS935に進み、攻撃は発生していないと判断される。
【0109】
また、ノード識別子Xと一致するIPアドレスと組み合わされた情報がノードの脱退ではなくノードの加入を示している場合、攻撃検知部37は、状態回答メッセージに含まれる、ノード識別子Mを有する攻撃防御ノード2のノード加入時刻と、ノード識別子Xおよびネットワーク識別子Nを含むプロファイルのパケット受信時刻とを比較し、ノード加入時刻がパケット受信時刻よりも後であるか否かを判定する(ステップS940)。
【0110】
図17は、ステップS940における判定に関係する場合を示している。図17において、Tmは、ノード識別子Mを有する攻撃防御ノード2(以下、攻撃防御ノード2mと記載)のノード加入時刻を示し、Txは、ノード識別子Xを有する攻撃防御ノード2(以下、攻撃防御ノード2xと記載)のノード加入時刻を示す。また、Tpmは、ノード識別子Mとネットワーク識別子Nを含むプロファイルのパケット受信時刻(すなわち攻撃防御ノード2mによって中継されたパケットの攻撃検知ノード3における受信時刻)を示し、Tpxは、ノード識別子Xとネットワーク識別子Nを含むプロファイルのパケット受信時刻(すなわち攻撃防御ノード2xによって中継されたパケットの攻撃検知ノード3における受信時刻)を示す。
【0111】
図17(a)では、攻撃防御ノード2xがDHTネットワークに加入した時刻Tx以降、ネットワーク識別子Nに対応するIPアドレスを有するクライアント5からのパケットは攻撃防御ノード2xで中継されていることが分かる(時刻Tx)。しかし、攻撃防御ノード2mがDHTネットワークに加入した時刻Tm以降、ネットワーク識別子Nに対応するIPアドレスを有するクライアント5からのパケットは攻撃防御ノード2mで中継されていることが分かる(時刻Tpm)。図17(a)の場合、攻撃防御ノード2mの加入によって、ネットワーク識別子Nに対応する攻撃防御ノード2が変化しているため、攻撃は発生していないと判定される。
【0112】
図17(b)では、攻撃防御ノード2xがDHTネットワークに加入した時刻Tx以降、ネットワーク識別子Nに対応するIPアドレスを有するクライアント5からのパケットは攻撃防御ノード2xで中継されていることが分かる(時刻Tpx)。しかし、ネットワーク識別子Nに対応するIPアドレスを有するクライアント5からのパケットが攻撃防御ノード2xで中継された時刻Tpxよりも後の時刻Tpmでは、攻撃防御ノード2xがDHTネットワークに加入した時刻Txよりも前にDHTネットワークに加入している攻撃防御ノード2mで同様のパケットが中継されていることが分かる。攻撃防御ノード2xは脱退していないので、ネットワーク識別子Nに対応するIPアドレスを有するクライアント5からのパケットは時刻Tpx以降も攻撃防御ノード2xで中継されるはずである。したがって、図17(b)の場合、ネットワーク識別子Nに対応するIPアドレスを詐称に使用したクライアント5からのパケットが攻撃防御ノード2mで中継されたと考えられるので、攻撃が発生していると判定される。
【0113】
図17(c)では、時刻Txで攻撃防御ノード2xがDHTネットワークに加入した後、時刻Tmで攻撃防御ノード2mがDHTネットワークに加入していることが分かる。さらに、時刻Tmよりも後の時刻Tpxでは、ネットワーク識別子Nに対応するIPアドレスを有するクライアント5からのパケットが攻撃防御ノード2xで中継され、時刻Tpxよりも後の時刻Tpmでは、ネットワーク識別子Nに対応するIPアドレスを有するクライアント5からのパケットが攻撃防御ノード2mで中継されていることが分かる。
【0114】
攻撃防御ノード2xも攻撃防御ノード2mも脱退してなく、クライアント5がIPアドレスを詐称していない場合、ネットワーク識別子Nに対応するIPアドレスを有するクライアント5からのパケットは攻撃防御ノード2xと攻撃防御ノード2mのうちの一方のみで中継されなければならない。したがって、図17(c)の場合、攻撃防御ノード2xで中継されたパケットと、攻撃防御ノード2mで中継されたパケットのうちの一方は、送信元のIPアドレスを詐称した攻撃のパケットだと考えられるので、攻撃が発生していると判定される。
【0115】
ステップS940において、ノード加入時刻がパケット受信時刻よりも後である場合(図17(a)の場合)、処理はステップS935に進み、攻撃が発生していないと判断される。また、ノード加入時刻がパケット受信時刻よりも前である場合(図17(b)、(c)の場合)、攻撃検知部37は、攻撃が発生したと判断し、ノード識別子Mおよびノード識別子Xに相当する2台の攻撃防御ノード2のIPアドレスとネットワーク識別子Nとをルール決定部38に通知する(ステップS945)。
【0116】
続いて、ルール決定部38は、ネットワーク識別子Nに対応するIPアドレス範囲に含まれるIPアドレスを有するクライアント5からのパケットを棄却するフィルタリングルールを示すルール情報を生成し、このルール情報と、攻撃検知部37から通知された2台の攻撃防御ノード2のIPアドレスとを中継部30へ出力する(ステップS950)。
【0117】
中継部30の送受信部30aは、ルール決定部38から出力されたIPアドレスを有する2台の攻撃防御ノード2へ、ルール決定部38から出力されたルール情報を送信する(ステップS955)。このルール情報を受信した攻撃防御ノード2のフィルタリング設定部20bは、ルール情報が示すIPアドレス範囲に含まれるIPアドレスを送信元とするパケットを削除するようにフィルタリング部20cにフィルタリングの設定を行う。フィルタリング部20cは、送受信部20aが受信したパケットの送信元であるクライアント5のIPアドレスが、設定されたIPアドレス範囲に含まれる場合に、受信したパケットを削除する。
【0118】
上述したように、本実施形態によれば、攻撃検知ノード3においてパケットが受信されたときに、このパケットの情報から生成したプロファイルと、過去に生成したプロファイルとを比較することによって、送信元のIPアドレスによる攻撃を検知し、サーバ1を攻撃から防御することができる。より具体的には、最新のプロファイルに含まれるネットワーク識別子と、過去のプロファイルに含まれるネットワーク識別子とが同一であり、かつ最新のプロファイルに含まれるノード識別子と、過去のプロファイルに含まれるノード識別子とが異なる場合(図16のステップS920でYESの場合)に、送信元のIPアドレスの詐称による攻撃を検知し、サーバ1を攻撃から防御することができる。本実施形態は、既存の通信機器を置換することなく、少数の攻撃防御ノード2と攻撃検知ノード3をネットワークに追加することで実現することが可能である。
【0119】
また、攻撃防御ノード2の加入や脱退の状態に関する情報を管理ノード4から取得し、取得した情報に基づいて攻撃の検知を行うことによって、攻撃防御ノード2の加入や脱退に伴うプロファイルの変化を検知することによる攻撃の誤検知を低減することができる。
【0120】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【0121】
1・・・サーバ、2・・・攻撃防御ノード、3・・・攻撃検知ノード、4・・・管理ノード、5・・・クライアント、10・・・サーバアプリケーション、11,31・・・サーバ公開部、20,30・・・中継部、20a,30a・・・送受信部、20b・・・フィルタリング設定部、20c・・・フィルタリング部、21,32・・・DHT管理部、22,33・・・DHT記憶部、23,34・・・広告部、30b・・・ログ記録部、35・・・サーバ記憶部、36・・・ログ記憶部、37・・・攻撃検知部、38・・・ルール決定部、40・・・仮想IPアドレス記憶部、41・・・アドレス管理部、42・・・設定情報記憶部、43・・・ノード管理部、44・・・ノードリスト記憶部、50・・・クライアントアプリケーション
【技術分野】
【0001】
本発明は、仮想IPアドレスが割り当てられたサーバと、サーバ宛てのパケットを中継する中継端末とを有する通信システムに関する。
【背景技術】
【0002】
IPネットワーク上の攻撃を検知し、攻撃に対する防御を行う侵入検知システム(IDS)やファイアウォール(FW)等は、到来するパケットに記録されている送信元IPアドレスに基づいて、攻撃の検知および防御を行う。したがって、攻撃者は、攻撃の検知および防御を回避するために、攻撃パケットの送信元IPアドレスを詐称した上で、DoS(Denial of Service)攻撃や分散DoS攻撃等を行うことがある。
【0003】
従来、IPアドレス詐称による攻撃を検知する技術として、IPトレースバックがある。このIPトレースバックは、パケットへマーキングを行い、あるいはパケットが通過するルータにハッシュ値を保存し、それらを追跡することで、送信元IPアドレスが詐称される場合でも、パケットの発信源を追跡および探知する技術である(例えば、特許文献1、非特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−28720号公報
【非特許文献】
【0005】
【非特許文献1】門林 ほか、“IPトレースバック技術”、情報処理 Vol. 42、No. 12、pp.1175-1180、2001年12月
【発明の概要】
【発明が解決しようとする課題】
【0006】
従来のIPトレースバック技術では、発信源の正確な追跡および探知を実現するためには、ルータ等のネットワーク上の多くの通信機器を、上記の技術を実現する機能を備えた通信機器に置換する必要があり、この置換に必要なコストが増大するという問題があった。このため、ネットワーク上の通信機器の置換を伴わずに攻撃の検知および防御を行うことが望ましい。
【0007】
本発明は、上述した課題に鑑みてなされたものであって、ネットワーク上の既存の通信機器の置換を伴わずに、送信元のIPアドレスの詐称による攻撃を検知し、サーバを攻撃から防御することができる通信システムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明は、上記の課題を解決するためになされたもので、通信端末から、実IPアドレスおよび仮想IPアドレスを有するサーバの前記仮想IPアドレス宛てに送信されるパケットを中継する複数の第1の中継端末と、前記第1の中継端末によって中継されたパケットを受信し、受信したパケットを前記仮想IPアドレスに対応した前記実IPアドレス宛てのパケットに変換し、前記サーバとの間で確立されたVPN接続により前記サーバへ変換後のパケットを送信する複数の第2の中継端末と、を備え、前記通信端末が送信したパケットは、当該通信端末とネットワークとの接続点に応じた前記第1の中継端末によって受信される通信システムであって、前記第1の中継端末は、パケットを削除するルールを示すルール情報を前記第2の中継端末から受信する受信部と、前記第2の中継端末から受信された前記ルール情報が示すルールに従って、前記第1の中継端末で受信されたパケットを削除するフィルタリング部と、を有し、前記第2の中継端末は、ネットワーク上の全てのIPアドレスを複数のIPアドレス範囲に分類したときの各々のIPアドレス範囲の情報を含むネットワーク情報を記憶すると共に、前記第1の中継端末が中継するパケットの送信元の前記通信端末のIPアドレスに対応する前記IPアドレス範囲の情報と当該第1の中継端末の識別情報とを含む通信履歴情報を記憶する記憶部と、前記第2の中継端末で受信されたパケットの送信元の前記通信端末のIPアドレスと、当該パケットを中継した前記第1の中継端末の識別情報と、前記ネットワーク情報とに基づいて前記通信履歴情報を生成し、前記記憶部に格納する生成部と、第1の通信履歴情報と、当該第1の通信履歴情報よりも前に生成された第2の通信履歴情報とを比較した結果に基づいて、前記通信端末のIPアドレスの詐称による攻撃を検知する検知部と、前記検知部によって検知された攻撃に係るパケットを削除する前記ルールを決定し、前記ルール情報を生成するルール決定部と、前記検知部によって検知された攻撃に係るパケットを中継した前記第1の中継端末へ前記ルール情報を送信する送信部と、を有することを特徴とする通信システムである。
【0009】
また、本発明の通信システムにおいて、前記検知部は、前記第1の通信履歴情報に含まれる前記IPアドレス範囲の情報と、前記第2の通信履歴情報に含まれる前記IPアドレス範囲の情報とが同一であり、かつ前記第1の通信履歴情報に含まれる前記第1の中継端末の識別情報と、前記第2の通信履歴情報に含まれる前記第1の中継端末の識別情報とが異なる場合に、前記通信端末のIPアドレスの詐称による攻撃を検知することを特徴とする。
【0010】
また、本発明の通信システムは、前記第1の中継端末および前記第2の中継端末の状態を管理する管理端末をさらに備え、前記第2の中継端末はさらに、前記管理端末に対して、前記第2の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末のネットワークへの参加状態の確認を要求する確認要求を送信し、当該参加状態を示す回答を前記管理端末から受信する状態確認部を有し、前記検知部は、前記第1の通信履歴情報に含まれる前記IPアドレス範囲の情報と、前記第2の通信履歴情報に含まれる前記IPアドレス範囲の情報とが同一であり、かつ前記第1の通信履歴情報に含まれる前記第1の中継端末の識別情報と、前記第2の通信履歴情報に含まれる前記第1の中継端末の識別情報とが異なる場合であって、前記第1の中継端末がネットワークから脱退したことを前記回答が示している場合に、前記通信端末のIPアドレスの詐称による攻撃を検知しないことを特徴とする。
【0011】
また、本発明の通信システムは、前記第1の中継端末および前記第2の中継端末の状態を管理する管理端末をさらに備え、前記第2の中継端末はさらに、前記管理端末に対して、前記第1の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末のネットワークへの参加状態と、前記第2の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末のネットワークへの参加状態との確認を要求する確認要求を送信し、当該参加状態を示す回答を前記管理端末から受信する状態確認部を有し、前記通信履歴情報はさらに、当該通信履歴情報に係るパケットの受信時刻を示す時刻情報を含み、前記検知部は、前記第1の通信履歴情報に含まれる前記IPアドレス範囲の情報と、前記第2の通信履歴情報に含まれる前記IPアドレス範囲の情報とが同一であり、かつ前記第1の通信履歴情報に含まれる前記第1の中継端末の識別情報と、前記第2の通信履歴情報に含まれる前記第1の中継端末の識別情報とが異なる場合であって、前記第2の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末がネットワークに参加中であることを前記回答が示しており、かつ前記第2の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末のネットワーク加入時刻が、前記第2の通信履歴情報に含まれる前記時刻情報が示す時刻よりも前である場合に、前記通信端末のIPアドレスの詐称による攻撃を検知することを特徴とする。
【0012】
また、本発明の通信システムにおいて、前記送信部は、前記第1の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末と、前記第2の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末とに対して前記ルール情報を送信することを特徴とする。
【発明の効果】
【0013】
本発明によれば、通信端末からサーバの仮想IPアドレス宛てに送信されるパケットは、通信端末とネットワークとの接続点に応じた第1の中継端末によって受信され、第1の中継端末および第2の中継端末をこの順に経由してサーバに到達する。通信端末がIPアドレスを詐称していない場合、各々の第1の中継端末が中継するパケットの送信元のIPアドレスは第1の中継端末毎に一定のIPアドレス範囲に収まるが、通信端末がIPアドレスを詐称している場合、各々の第1の中継端末が中継するパケットの送信元のIPアドレスの範囲が変化する。したがって、第1の通信履歴情報と第2の通信履歴情報とを比較することによって、このIPアドレスの範囲の変化を検知することが可能となる。よって、第1の中継端末と第2の中継端末をネットワークに追加することによって、ネットワーク上の既存の通信機器の置換を伴わずに、送信元のIPアドレスの詐称による攻撃を検知し、サーバを攻撃から防御することができる。
【図面の簡単な説明】
【0014】
【図1】本発明の一実施形態による通信システムの構成を示す構成図である。
【図2】本発明の一実施形態による通信システムの機能構成を示すブロック図である。
【図3】本発明の一実施形態における初期ノード起動手順を示すシーケンス図である。
【図4】本発明の一実施形態におけるノード加入手順を示すシーケンス図である。
【図5】本発明の一実施形態におけるノード脱退手順を示すシーケンス図である。
【図6】本発明の一実施形態におけるサーバ公開開始手順を示すシーケンス図である。
【図7】本発明の一実施形態におけるサーバ公開停止手順を示すシーケンス図である。
【図8】本発明の一実施形態における通信手順を示すシーケンス図である。
【図9】本発明の一実施形態による攻撃防御ノードと攻撃検知ノードの機能構成を示すブロック図である。
【図10】本発明の一実施形態における攻撃検知・防御方法を説明するための構成図である。
【図11】本発明の一実施形態における攻撃検知・防御方法を説明するための構成図である。
【図12】本発明の一実施形態における攻撃検知・防御方法を説明するための構成図である。
【図13】本発明の一実施形態におけるネットワーク情報を示す参考図である。
【図14】本発明の一実施形態における攻撃検知・防御手順を示すシーケンス図である。
【図15】本発明の一実施形態におけるログの構造を示す参考図である。
【図16】本発明の一実施形態における攻撃検知ノードの動作の手順を示すフローチャートである。
【図17】本発明の一実施形態における攻撃検知方法を説明するための参考図である。
【図18】DHTネットワークにおけるハッシュ空間を示す参考図である。
【発明を実施するための形態】
【0015】
以下、図面を参照し、本発明の実施形態を説明する。図1は、本発明の一実施形態による通信システムの構成を示している。本通信システムは、サーバを保護する機構を備えたオーバーレイネットワークを構成しており、サーバ1、攻撃防御ノード2(第1の中継端末)、攻撃検知ノード3(第2の中継端末)、管理ノード4、クライアント5(通信端末)を備える。図1に示す各装置の位置は、実際の物理ネットワーク上の位置とは必ずしも一致しない。
【0016】
サーバ1は、FTP(File Transfer Protocol)サーバやWebサーバ等であり、所定のサービスを提供する。サーバ1には、実ネットワークで用いるIPアドレス(本明細書では実IPアドレスとする)と共に、仮想的なIPアドレス(本明細書では仮想IPアドレスとする)が割り当てられている。
【0017】
攻撃防御ノード2は、クライアント5からサーバ1宛てに送信されるパケットを攻撃検知ノード3に中継する。また、攻撃防御ノード2は、サーバ1を攻撃から防御するためのパケットフィルタリングを行う。攻撃防御ノード2は、例えばISP(Internet Service Provider)毎のネットワークに設置されており、そのネットワーク内のクライアント5から送信されるパケットを中継する。
【0018】
攻撃検知ノード3は、攻撃防御ノード2が中継したパケットをサーバ1に中継する。また、攻撃検知ノード3は、サーバ1に対する攻撃を検知する。管理ノード4は、サーバ1に対する仮想IPアドレスの割り当てと、攻撃防御ノード2および攻撃検知ノード3の状態を管理する。クライアント5は、例えばISP毎のネットワークに所属している。クライアント5がサーバ1の仮想IPアドレス宛てに送信したパケットは、ルーティングプロトコルに従って、クライアント5とネットワークとの接続点の位置に応じた攻撃検知ノード3に転送される。
【0019】
サーバ1と攻撃検知ノード3との間ではVPN(Virtual Private Network)接続が確立される。これにより、サーバ1はネットワーク上の仮想的なセグメント(仮想セグメント)に収容される。サーバ1と攻撃検知ノード3との関係は1対1である、すなわちサーバ1は1つの攻撃検知ノード3のみとVPN接続を確立するため、特定のサーバ1宛てのパケットは、このサーバ1とVPN接続を確立している1つの攻撃検知ノード3を必ず経由する。サーバ1が全ての攻撃検知ノード3とVPN接続を確立する手法を用いてもよいが、上記のようにサーバ1が1つの攻撃検知ノード3のみとVPN接続を確立することによって、VPN接続を確立する処理負荷およびVPN接続の管理負荷が低減される。
【0020】
サーバ1は、攻撃検知ノード3とVPN接続を確立する場合、特定の1つの攻撃検知ノード3に対してVPN接続の要求を行う。このVPN接続の要求と確立はサーバ1と攻撃検知ノード3との間で自律的に行われるため、1つの管理端末が全ての攻撃検知ノード3の状態を管理し、サーバ1からVPN接続の要求を受けて攻撃検知ノード3の情報を応答するような中央集権的な仕組みを必要としない。
【0021】
攻撃防御ノード2と攻撃検知ノード3は、分散ハッシュテーブル(DHT: Distributed Hash Table)を利用したDHTネットワークを構成する。これにより、サーバ1と攻撃検知ノード3との対応関係を管理する負荷が攻撃防御ノード2および攻撃検知ノード3間で分散される。
【0022】
攻撃検知ノード3には、同一のサーバ1に対するパケットが複数の攻撃防御ノード2から到来しうる。攻撃検知ノード3が、どの攻撃防御ノード2からのパケットであるのかを区別してサーバ1へのパケット量を監視し、攻撃を検知することで、攻撃パケットがどの攻撃防御ノード2から到来するのかを知ることができる。攻撃が検知された場合、複数の攻撃防御ノード2のうち攻撃パケットを中継した攻撃防御ノード2において、攻撃対象となったサーバ1の仮想IPアドレス宛てのパケットを削除するパケットフィルタリングを実施することで、サーバ1を攻撃から防御することができる。パケットフィルタリングを実施している攻撃防御ノード2以外の攻撃防御ノード2から到来するパケットは攻撃パケットではないとみなされ、サーバ1へ転送される。
【0023】
本実施形態では、クライアント5からサーバ1の仮想IPアドレス宛てに送信されるパケットは、攻撃防御ノード2および攻撃検知ノード3をこの順に経由してサーバ1に到達する。分散DoS攻撃のように、個々の攻撃クライアントが送信するパケットは少量であるが多数の攻撃クライアントからのパケットが特定のサーバに集中する攻撃を検知するには、攻撃対象となるサーバの近傍で攻撃の検知を行うことが望ましい。本実施形態では、パケットの転送経路上でよりサーバ1に近い攻撃検知ノード3が攻撃の検知を行うことによって、より的確に攻撃を検知することが可能となる。さらに、サーバ1と攻撃検知ノード3との関係が1対1であるため、攻撃検知ノード3が各サーバ1へのトラヒックを一元的に監視することになり、サーバ1に対する攻撃をより的確に検知することができる。
【0024】
また、多数の攻撃クライアントからのパケットがネットワーク上で転送されるとネットワーク資源を浪費するので、攻撃クライアントの近傍でパケットフィルタリングを実施することが望ましい。本実施形態では、パケットの転送経路上でより攻撃元のクライアント5に近い攻撃防御ノード2がパケットのフィルタリングを行うことによって、攻撃元のクライアント5から送信されたパケットの転送によるネットワーク資源の消費をより抑えることが可能となる。
【0025】
図2は、パケットの中継に関する本通信システムの機能構成を示している。サーバ1は、サーバアプリケーション10と、サーバ公開部11とを有する。サーバアプリケーション10は、クライアント5からの要求に応じてサービスを提供する。サーバ公開部11は、サーバ1を収容する仮想セグメントを構築するためのサーバ公開に係る処理を行う。
【0026】
攻撃防御ノード2は、中継部20と、DHT管理部21と、DHT記憶部22と、広告部23とを有する。中継部20は、クライアント5から送信されたパケットを攻撃検知ノード3に中継する。DHT管理部21は、DHTネットワークに参加するための処理を行い、DHT記憶部22に記憶される情報を管理する。DHT記憶部22は、サーバ1とVPN接続を確立している攻撃検知ノード3のIPアドレスとサーバ1の仮想IPアドレスとの対応関係を示す情報を記憶する。より具体的には、DHT記憶部22は、サーバ1とVPN接続を確立している攻撃検知ノード3のIPアドレスと、サーバ1の仮想IPアドレスからSHA1(Secure Hash Algorithm 1)を用いて算出したハッシュ値とを関連付けて記憶する。DHTネットワークでは、この対応関係を示す情報は、サーバ1とVPN接続を確立している攻撃検知ノード3で管理されるとは限らず、DHTネットワークを構成する攻撃防御ノード2と攻撃検知ノード3のいずれかにおいて管理される。
【0027】
広告部23は、サーバ1の仮想IPアドレス宛てのパケットが攻撃防御ノード2に届くように、ルーティングプロトコルの一種であるOSPF(Open Shortest Path First)やBGP(Border Gateway Protocol)に従って、仮想IPアドレス宛ての経路に係る経路情報をネットワーク上に広告する。クライアント5がサーバ1の仮想IPアドレス宛てのパケットを送信すると、この経路情報に従ってネットワーク上のルータが転送を行うことにより、クライアント5に最も近い攻撃防御ノード2にパケットが到着する。つまり、クライアント5が送信したパケットは、クライアント5とネットワークとの接続点の位置に応じた攻撃防御ノード2に到着する。
【0028】
攻撃検知ノード3は、中継部30と、サーバ公開部31と、DHT管理部32と、DHT記憶部33と、広告部34とを有する。中継部30は、攻撃防御ノード2から送信されたパケットをサーバ1に中継する。サーバ公開部31は、サーバ1を収容する仮想セグメントを構築するためのサーバ公開に係る処理を行う。DHT管理部32は、DHTネットワークに参加するための処理を行い、DHT記憶部33に記憶される情報を管理する。DHT記憶部33はDHT記憶部22と同様に、サーバ1とVPN接続を確立している攻撃検知ノード3のIPアドレスと、サーバ1の仮想IPアドレスからSHA1を用いて算出したハッシュ値とを関連付けて記憶する。
【0029】
広告部34は、OSPFに従って、エニーキャストアドレス宛ての経路に係る経路情報をネットワーク上に広告する。サーバ1が、サーバ公開に係るVPN接続を行う際にエニーキャストアドレス宛てに攻撃検知ノード3の検索要求を行うと、サーバ1に最も近い攻撃検知ノード3から応答が返される。サーバ記憶部35は、サーバ1の仮想IPアドレスと実IPアドレスとを関連付けて記憶する。
【0030】
管理ノード4は、仮想IPアドレス記憶部40と、アドレス管理部41と、設定情報記憶部42と、ノード管理部43と、ノードリスト記憶部44とを有する。仮想IPアドレス記憶部40は、サーバ1に割り当てられる仮想IPアドレスを記憶する。アドレス管理部41は、サーバ1に対する仮想IPアドレスの割り当てを管理する。設定情報記憶部42は、攻撃防御ノード2に通知する仮想IPアドレスの範囲や、攻撃検知ノード3に通知するエニーキャストアドレスの範囲等を含む設定情報を記憶する。各攻撃防御ノード2には共通の仮想IPアドレス範囲が通知される。また、各攻撃検知ノード3には共通のエニーキャストアドレス範囲が通知される。ノード管理部43は、DHTネットワークを構成する攻撃防御ノード2および攻撃検知ノード3の情報を管理する。ノードリスト記憶部44は、DHTネットワークを構成する攻撃防御ノード2および攻撃検知ノード3の一覧であるノードリストを記憶する。
【0031】
クライアント5はクライアントアプリケーション50を有する。クライアントアプリケーション50はサーバ1に対してサービスの要求を行う。
【0032】
次に、攻撃防御ノード2と攻撃検知ノード3によるDHTネットワークの構築と管理について説明する。DHTネットワークにおいては、ネットワークを構成するノードの加入と離脱が生じる。ノードが加入する場合、既にDHTネットワークを構成しているいずれかのノードに対して加入処理を行うことで、DHTネットワークへの加入を行う。一方、DHTネットワークからノードが離脱する場合、ルーティングテーブルの再構築が行われ、残りのノードにより通信が継続される。このとき、離脱したノードが所持していた情報はDHTネットワーク上で隣接するノードが同期を取るなどして保持される。なお、最初にDHTネットワークを構成するノードが起動する場合は、加入処理を行う対象のノードが存在しないため、初期ノード起動処理が行われる。以下、DHTネットワークを構築するアルゴリズムの一種であるChordを実装したプログラムを例に、それぞれの具体的な手法を説明する。
【0033】
図3は、DHTネットワークを構成する最初のノードである初期ノード(攻撃防御ノード2または攻撃検知ノード3)が加入する場合のシーケンスを示している。初期ノードにおいて、DHT管理部21(32)は、ノードリストの取得要求を示すノードリスト要求を管理ノード4へ送信する(ステップS100)。なお、管理ノード4のIPアドレスは既知であるものとする。管理ノード4においてノード管理部43はノードリスト要求を受信し、ノードリスト記憶部44内のノードリストにノードのIPアドレスが登録されているか否かを判定する(ステップS110)。
【0034】
最初のノードが加入する場合、ノードリストにノードのIPアドレスが登録されていないため、管理ノード4は初期ノード起動処理が必要であると判定し、初期ノード起動処理の要求を示す初期ノード起動要求を、ノードリスト要求の送信元であるノードへ送信する(ステップS120)。初期ノード起動要求には、設定情報記憶部42内の設定情報に基づく仮想IPアドレスの範囲とエニーキャストアドレスの範囲が含まれる。
【0035】
初期ノードにおいて、DHT管理部21(32)は、初期ノード起動要求を受信し、初期ノード起動処理を実行する(ステップS130)。具体的には、次に示すようなブートストラップノードの起動コマンドを実行する。
start-dhash --root dhash-a -j sure.lcs.mit.edu:10000 -p 10000 &
【0036】
初期ノード起動処理の実行により、DHT記憶部22(33)には分散ハッシュテーブルが作成される。前述したように、このテーブルの構成要素は、サーバ1とVPN接続を確立している攻撃検知ノード3のIPアドレスと、サーバ1の仮想IPアドレスからSHA1を用いて算出したハッシュ値とのペアである。初期ノード起動処理が完了した時点では、テーブルにはこれらの情報は格納されていない。また、初期ノード起動処理が完了した時点では、DHTネットワークの全てのノード(1個)の情報を初期ノードが単体で管理している状態となる。
【0037】
初期ノード起動処理の実行後、DHT管理部21(32)は、初期ノードがDHTネットワークに加入したことを示すノード加入通知を管理ノード4へ送信することにより自身のIPアドレスを通知する(ステップS140)。管理ノード4においてノード管理部43はノード加入通知を受信し、ノード加入通知により通知されたIPアドレスをノード加入時刻(ノード加入通知の受信時刻)と共にノードリスト記憶部44内のノードリストに追加する(ステップS150)。
【0038】
初期ノードが攻撃防御ノード2である場合、初期ノード起動処理の実行後、攻撃防御ノード2の広告部23は、初期ノード起動要求によって通知された範囲の仮想IPアドレス宛ての経路に係る経路情報をネットワーク上に広告する。また、初期ノードが攻撃検知ノード3である場合、初期ノード起動処理の実行後、攻撃検知ノード3の広告部34は、初期ノード起動要求によって通知された範囲のエニーキャストアドレス宛ての経路に係る経路情報をネットワーク上に広告する(ステップS160)。
【0039】
なお、管理ノード4が初期ノードからノードリスト要求を受信してからノード加入通知を受信するまでの間に他のノードからノードリスト要求を受信した場合、ノードリスト要求の再送を示すメッセージが他のノードへ送信される。このため、初期ノードによるDHTネットワークが構築されるまで、他のノードからのノードリスト要求に対する処理は実行されない。
【0040】
図4は、1以上のノードによりDHTネットワークが構成されている場合に新たなノード(攻撃防御ノード2または攻撃検知ノード3)が加入する場合のシーケンスを示している。新たに加入するノードにおいて、DHT管理部21(32)は、ノードリストの取得要求を示すノードリスト要求を管理ノード4へ送信する(ステップS200)。なお、管理ノード4のIPアドレスは既知であるものとする。管理ノード4においてノード管理部43はノードリスト要求を受信し、ノードリスト記憶部44内のノードリストにノードのIPアドレスが登録されているか否かを判定する(ステップS210)。
【0041】
既に他のノードが加入している場合、ノードリストにノードのIPアドレスが登録されているため、管理ノード4は、ノードリスト要求の送信元であるノードへノードリストを送信する(ステップS220)。このとき、設定情報記憶部42内の設定情報に基づく仮想IPアドレスの範囲とエニーキャストアドレスの範囲がノードリストに付加される。新たに加入するノードにおいて、DHT管理部21(32)は、ノードリストを受信し、ノードリストに記載されているノードを対象としてノード加入処理を実行する(ステップS230)。具体的には、次に示すような既存ノードへの加入のコマンドを実行する。
start-dhash --root dhash-b -j sure.lcs.mit.edu:10000 &
【0042】
ノード加入処理の実行により、DHT記憶部22(33)には分散ハッシュテーブルが作成される。ノード加入処理では、ノードリストに記載されたIPアドレスを有するノードと通信が行われ、DHTネットワークに加入するための設定が行われる。
【0043】
ノード加入処理の実行後、DHT管理部21(32)は、新たにノードがDHTネットワークに加入したことを示すノード加入通知を管理ノード4へ送信することにより自身のIPアドレスを通知する(ステップS240)。管理ノード4においてノード管理部43はノード加入通知を受信し、ノード加入通知により通知されたIPアドレスをノード加入時刻(ノード加入通知の受信時刻)と共にノードリスト記憶部44内のノードリストに追加する(ステップS250)。
【0044】
新たに加入するノードが攻撃防御ノード2である場合、ノード加入処理の実行後、攻撃防御ノード2の広告部23は、管理ノード4から通知された範囲の仮想IPアドレス宛ての経路に係る経路情報をネットワーク上に広告する。また、新たに加入するノードが攻撃検知ノード3である場合、ノード加入処理の実行後、攻撃検知ノード3の広告部34は、管理ノード4から通知された範囲のエニーキャストアドレス宛ての経路に係る経路情報をネットワーク上に広告する(ステップS260)。
【0045】
以下、ステップS230において、DHTネットワークに加入する処理の詳細を説明する。DHTは、管理対象の情報のハッシュ値(以下、Keyとする)と、管理対象の情報(以下、Valueとする)とのペアを格納する分散ハッシュテーブルを複数のノードに分散させることによって、情報を効率的に管理する手法である。本実施形態では、サーバ1の仮想IPアドレスがKeyに該当し、攻撃検知ノード3のIPアドレスがValueに該当する。本実施形態では、DHTネットワークを構成する攻撃防御ノード2および攻撃検知ノード3が、自身のIPアドレスに基づいて、管理対象となる攻撃検知ノード3のIPアドレス(Value)を管理する。
【0046】
本実施形態でDHTネットワークの実装アルゴリズムの一例として用いるChordでは、DHTネットワークを構成するノードが各ノードのIDに従って配置される。各ノードに割り当てられるIDは、具体的にはノード毎のIPアドレスからSHA-1を用いて算出したハッシュ値である。Chordでは2160のハッシュ空間が用いられ、各ノードは円周上の点として定義される。図18は、簡単のためハッシュ空間を24とした場合のIDの割り当てを示している。0から15までの各IDを有するノードが配置されている。
【0047】
Chordでは、DHTネットワークを構成する各ノードが、自身のノードIDから隣接するノードIDまでの間に位置するIDに対応するValueを管理する。図18において、ノードIDが0、2、6、9、11、13、14のノードがDHTネットワークに加入している場合、ノードIDが0のノード0は、ノードIDが15と0に対応するKeyとValueのペアを管理する。
【0048】
Chordでは、各ノードはSuccessor、Predecessor、Fingertableと呼ばれる3種類のルーティングテーブルを保持する。これらのルーティングテーブルは、各ノードがDHT記憶部22(33)の分散ハッシュテーブルに保持するKeyとValueのペア(サーバ1の仮想IPアドレスと転送ノードのIPアドレスのペア)とは異なる。各ルーティングテーブルはDHT記憶部22(33)に保持されるものとする。
【0049】
Successorは、ノードIDが大きくなる方向に見て最近傍に位置するノードのIPアドレスを保持するルーティングテーブルであり、Predecessorは、ノードIDが小さくなる方向に見て最近傍に位置するノードのIPアドレスを保持するルーティングテーブルである。Fingertableは、2mのハッシュ空間において、以下の式に一致するIPアドレスを保持するルーティングテーブルである。
ノードのIPアドレス=IPadress[next(Z)]、ただし、Z=(Node_ID+2i) mod2m、i=0〜m
上記の式のnext(Z)は、ハッシュ空間上でZから右回り(つまりノードIDが大きくなる方向)に見て次に存在するノードのIDを返す関数である。IPadress[X]はIDがXのノードのIPアドレスを返す関数である。
【0050】
DHTネットワークに新たなノードが加入することは、円周上のノードが存在していない点の位置にノードが加わることを意味する。以下では、ID12のノード(ノード12)とID18のノード(ノード18)が存在しているDHTネットワークにID15のノード(ノード15)が加入する場合を例として加入の手順を説明する。
【0051】
ノード15は、自身のIPアドレスからハッシュ値であるIDを算出する。続いて、ノード15は、ノードリストに記載されているノードに対して、自身のIDを保持の対象としているノードのIPアドレスを要求する。要求を受けたノードは、ノード15のIDを保持していれば応答し、保持していなければ他のノードに要求を行う。この結果、ノード15はノード18のIPアドレスを取得する。
【0052】
続いて、ノード15はノード18にjoinメッセージを送信し、Successorにノード18のIPアドレスを記録する。さらに、ノード15はノード18から、Predecessorに保持すべきノード12のIPアドレスを通知され、Predecessorにノード12のIPアドレスを記録する。
【0053】
続いて、ノード15は、それまでノード18がFingertableに保持していたIPアドレスのうち、ノード15が管理すべき部分に該当するIPアドレスをノード18から受信し、Fingertableに記録する。また、ノード15は、それまでノード18がDHT記憶部22(33)の分散ハッシュテーブルに保持していたKeyとValueのペアのうち、ノード15が管理すべき部分に該当するKeyとValueのペアをノード18から受信し、DHT記憶部22(33)に記録する。ノード15は、ノード12に自身の加入を通知し、ノード12は、ノード15からの通知に基づいて、自身が保持しているSuccessorに記録されていたノード18のIPアドレスをノード15のIPアドレスに変更する。
【0054】
図5は、DHTネットワークに加入しているノード(攻撃防御ノード2または攻撃検知ノード3)がDHTネットワークから脱退する場合のシーケンスを示している。DHTネットワークから脱退するノードにおいて、DHT管理部21(32)はノード脱退処理を実行する(ステップS300)。続いて、DHT管理部21(32)は、DHTネットワークからの脱退を示すノード脱退通知を管理ノード4へ送信することにより自身のIPアドレスを通知する(ステップS310)。管理ノード4においてノード管理部43はノード脱退通知を受信し、ノード脱退通知により通知されたIPアドレスをノードリスト記憶部44内のノードリストから削除する(ステップS320)。
【0055】
上記のようにしてノードが脱退した場合、ハッシュ空間上でこのノードに隣接するノードにおいて、Successor、Predecessor、Fingertableがそれぞれ更新される。このとき、脱退したノードが保持していた情報を引き継ぐための処理として、DHTでは近傍のノードに自身が保持するデータのコピーを配置するなどして情報の欠損を防いでいる。なお、脱退したノードについては、そのノードのIPアドレスとノード脱退時刻(ノード脱退通知の受信時刻)とが脱退ノードリストに記録される。脱退ノードリストはノードリスト記憶部44に格納される。一旦脱退したノードが再度加入した場合には、ノードリストにノードのIPアドレスが登録された際に、同じノードのIPアドレスが脱退ノードリストから削除される。
【0056】
次に、サーバ1を収容する仮想セグメントを構築するためのサーバ公開について説明する。サーバ1は予め管理ノード4から仮想IPアドレスを取得する。管理ノード4においてアドレス管理部41は予め仮想IPアドレスを生成し、仮想IPアドレス記憶部40に保存する。サーバ1のサーバ公開部11は管理ノード4にアクセスし、仮想IPアドレスの割り当てに必要な情報の登録を行う。管理ノード4のアドレス管理部41は、仮想IPアドレス記憶部40から仮想IPアドレスを選択し、仮想IPアドレスをサーバ1に通知する。複数のサーバ1に対して同一の仮想IPアドレスが割り当てられないよう、アドレス管理部41は仮想IPアドレスの割り当てを管理する。サーバ1に対する仮想IPアドレスの通知は公開鍵証明書の発行により行われるが、詳細な説明を省略する。この公開鍵証明書はサーバ1が攻撃検知ノード3にアクセスする際に使用されるが、本実施形態では、公開鍵証明書による公知の通信方法に係る説明を省略する。
【0057】
図6は、仮想IPアドレスを取得したサーバ1の公開開始時のシーケンスを示している。サーバ1は、攻撃検知ノード3が使用するエニーキャストアドレスを予め知っているものとする。サーバ1のサーバ公開部11は、エニーキャストアドレス宛てに攻撃検知ノード3の接続要求を送信する(ステップS400)。この接続要求はサーバ1に最も近い攻撃検知ノード3に到着する。攻撃検知ノード3のサーバ公開部31はサーバ1からの接続要求を受信し、自身のIPアドレスを通知する応答をサーバ1へ送信する(ステップS410)。
【0058】
サーバ1のサーバ公開部11は攻撃検知ノード3からの応答を受信し、その応答によって通知されたIPアドレス宛てに、VPN接続の要求を示すVPN接続要求を送信する(ステップS420)。このVPN接続要求によって、サーバ1の仮想IPアドレスおよび実IPアドレスが攻撃検知ノード3に通知される。この後、サーバ1と攻撃検知ノード3の双方においてVPN接続のための各種設定が行われるが、詳細な説明を省略する。
【0059】
攻撃検知ノード3のサーバ公開部31は、サーバ1から通知された仮想IPアドレスをDHT管理部32に通知する。DHT管理部32は仮想IPアドレスのハッシュ値を算出し、攻撃検知ノード3のIPアドレスとハッシュ値とを、DHTネットワークを構成する攻撃防御ノード2または攻撃検知ノード3のDHT記憶部22(33)内の分散ハッシュテーブルに登録する処理を行う(ステップS430)。具体的には、以下のような“put”コマンドを実行する。なお、(a)はハッシュ値を示し、(b)は攻撃検知ノードのIPアドレスを示す。
put <(a)> <(b)>
【0060】
また、DHT管理部32は、サーバ1の仮想IPアドレスと実IPアドレスとを組にしてサーバ記憶部35に登録する(ステップS440)。
【0061】
以下、ステップS430において攻撃検知ノード3のIPアドレスとサーバ1の仮想IPアドレスのハッシュ値のペアを分散ハッシュテーブルに登録する処理の詳細を説明する。DHT管理部32は、サーバ1の仮想IPアドレスのハッシュ値をKeyとして管理すべきノードを検索する処理を行う。図18に示すDHTネットワークにおいて、ノード0が検索を行う例を示す。サーバ1の仮想IPアドレスのハッシュ値が12であるとすると、DHT管理部32は、前述したnext関数によりnext(12)=13であるため、目的の情報を管理すべきノードがノード13であることを求める。これに基づき、DHT管理部32は、攻撃検知ノード3のIPアドレスとサーバ1の仮想IPアドレスのハッシュ値のペアを含み、ノード13の検索を依頼するメッセージを生成し、中継部30に渡す。
【0062】
前述したFingertableの定義より、ノード0のFingertableに保持されるノードIDは、2(i=0,1[z=1,2])、6(i=2[z=4])、9(i=3[z=8])となる。ノード13のノードIDである13に関して、23<13<24であることから、ノード0は、i=3[z=8]のときのノードIDに対応するノード9にノード13の検索を依頼する。すなわち、中継部30はノード9宛てに上記のメッセージを送信する。
【0063】
ノード9のFingertableに保持されるノードIDは、11(i=0,1[z=10,11])、13(i=2[z=13])、2(i=3[z=1])であることから、ノード9はノード13の情報を保持している。したがって、ノード9からノード13に、ノード0からのメッセージが転送される。ノード13において中継部20(30)はメッセージを受信し、DHT管理部21(32)に渡す。DHT管理部21は、メッセージに含まれる攻撃検知ノード3のIPアドレスとサーバ1の仮想IPアドレスのハッシュ値をDHT記憶部22(33)に設定する。
【0064】
このように、DHTネットワークでは、はじめに大まかな検索を行い、検索対象に近づくに従って、徐々に細かい検索を行うことで、DHTネットワークを構成しているノードから隣接するノードを順番に辿る場合よりも効率的な検索を実現している。上記のようにして、攻撃検知ノード3のIPアドレスとサーバ1の仮想IPアドレスのハッシュ値のペアが、DHTネットワークを構成する攻撃防御ノード2または攻撃検知ノード3によって管理されるようになる。
【0065】
図7は、サーバ1の公開停止時のシーケンスを示している。攻撃検知ノード3のサーバ公開部31は、サーバ1からの明示的なVPN接続の解除通知あるいは障害等によるVPN接続の解除を検知することにより、VPN接続が切断されたことを検知し、DHT管理部32に通知する(ステップS500)。
【0066】
DHT管理部32は、サーバ公開部31から通知を受けると、切断されたVPN接続の接続相手であるサーバ1の仮想IPアドレスと自身のIPアドレスのペアを分散ハッシュテーブルから削除するため、VPN接続を解除したサーバ1の仮想IPアドレスのハッシュ値をKeyとして管理しているノードを検索する処理を行う(ステップS510)。このとき、ステップS430の処理と同様にして検索が行われ、所望のノードにメッセージが転送される。メッセージを受信したノードにおいてDHT管理部21(33)は、メッセージに含まれるハッシュ値と一致するハッシュ値およびそれと関連付けられている攻撃検知ノード3のIPアドレスを分散ハッシュテーブルから削除する。
【0067】
次に、サーバ1とクライアント5との通信について説明する。図8は、クライアント5がサーバ1と通信を行う際のシーケンスを示している。クライアント5は、例えばDNSサーバにサーバ1の名前解決を依頼し、その結果としてDNSサーバからサーバ1のIPアドレスを通知されることにより、サーバ1の仮想IPアドレス(IP_virtual)を取得することが可能である。クライアント5のクライアントアプリケーション50は、クライアント5(IP_client)を送信元とし、サーバ1(IP_virtual)を宛先とするパケットを送信する(ステップS600)。攻撃防御ノード2がIP_virtual宛ての経路を広告していることにより、クライアント5から送信されたパケットはクライアント5に最も近い攻撃防御ノード2に到着する。
【0068】
攻撃防御ノード2の中継部20は、クライアント5からのパケットを受信し、受信したパケットに含まれるサーバ1の仮想IPアドレス(IP_virtual)をDHT管理部21に通知する。DHT管理部21は、この仮想IPアドレス(IP_virtual)のハッシュ値を算出し、このハッシュ値をKeyとして管理しているノードを検索する処理を行う(ステップS610)。
【0069】
このとき、ステップS430の処理と同様にして検索が行われ、所望のノードにメッセージが転送される。メッセージを受信したノードにおいてDHT管理部21(33)は、メッセージに含まれるハッシュ値と一致するハッシュ値を分散ハッシュテーブルから検索し、一致したハッシュ値と関連付けられている攻撃検知ノード3のIPアドレスを取得する。DHT管理部21(33)は、取得したIPアドレスを通知するための応答メッセージを生成し、中継部20(30)に渡す。中継部20(30)は、検索を要求した攻撃防御ノード2へ応答メッセージを送信する。検索を要求した攻撃防御ノード2において中継部20はこの応答メッセージを受信し、所望の攻撃検知ノード3のIPアドレスを取得する。
【0070】
中継部20は、クライアント5から受信したパケットをカプセル化する(ステップS620)。このカプセル化では、クライアント5からのパケットに対してIPヘッダが付加される。このIPヘッダには、送信元のIPアドレスとして攻撃防御ノード2のIPアドレス(Rc)が記録され、宛先のIPアドレスとして攻撃検知ノード3のIPアドレス(Rs)が記録されている。したがって、クライアント5(IP_client)を送信元としサーバ1(IP_virtual)を宛先とするパケットが、カプセル化によって、攻撃防御ノード2(Rc)を送信元とし攻撃検知ノード3(Rs)を宛先とするパケットに変換される。中継部20は、カプセル化したパケットを攻撃検知ノード3へ送信する(ステップS630)。
【0071】
攻撃検知ノード3の中継部30は、攻撃防御ノード2からのパケットを受信し、カプセル解除する(ステップS640)。このカプセル解除では、攻撃防御ノード2でパケットに付加されたIPヘッダが除去される。したがって、攻撃防御ノード2(Rc)を送信元とし攻撃検知ノード3(Rs)を宛先とするパケットが、カプセル解除によって、クライアント5(IP_client)を送信元としサーバ1(IP_virtual)を宛先とするパケットに変換される。
【0072】
続いて、中継部30は、パケットに含まれるサーバ1の仮想IPアドレス(IP_virtual)をキーにしてサーバ記憶部35内の情報を検索し、サーバ1の仮想IPアドレス(IP_virtual)に対応する実IPアドレス(IP_real)を取得する(ステップS650)。さらに、中継部30は、ステップS640でカプセル解除したパケットをカプセル化する(ステップS660)。このカプセル化では、送信元のIPアドレスとして攻撃検知ノード3のIPアドレス(Rs)が記録され、宛先のIPアドレスとしてサーバ1の実IPアドレス(IP_real)が記録されたIPヘッダが付加される。したがって、カプセル解除されたパケットが、カプセル化によって、攻撃検知ノード3(Rs)を送信元としサーバ1(IP_real)を宛先とするパケットに変換される。中継部30は、カプセル化したパケットをサーバ1へ送信する(ステップS670)。
【0073】
サーバ1のサーバアプリケーション10は攻撃検知ノード3からのパケットを受信し、適宜処理する(ステップS680)。なお、受信されたパケットは、ミドルウェアによってカプセル解除される(図示せず)。サーバアプリケーション10は、クライアント5への応答パケットを攻撃検知ノード3へ送信する(ステップS690)。この応答パケットは、サーバ1(IP_virtual)を送信元としクライアント5(IP_client)を宛先とするパケットに対して、カプセル化により、サーバ1(IP_virtual)を送信元とし攻撃検知ノード3(Rs)を宛先とするIPヘッダが付加されたものである。
【0074】
攻撃検知ノード3の中継部30はサーバ1からのパケットを受信し、カプセル解除する(ステップS700)。このカプセル解除によって、サーバ1からのパケットは、サーバ1(IP_virtual)を送信元としクライアント5(IP_client)を宛先とするパケットに変換される。中継部30は、カプセル解除したパケットをクライアント5へ送信する(ステップS710)。
【0075】
上述したように、サーバ1は1つの攻撃検知ノード3のみとVPN接続を確立するため、サーバが全ての中継端末とVPN接続を確立する手法を用いる場合よりもVPN接続を確立する処理負荷およびVPN接続の管理負荷を低減することができる。また、VPN接続の要求と確立がサーバ1と攻撃検知ノード3との間で自律的に行われるため、1つの管理端末が全ての攻撃検知ノード3の状態を管理し、サーバ1からVPN接続の要求を受けて攻撃検知ノード3の情報を応答するような中央集権的な仕組みを必要としない。
【0076】
また、攻撃防御ノード2と攻撃検知ノード3が、分散ハッシュテーブルを利用したDHTネットワークを構成することによって、サーバ1と攻撃検知ノード3との対応関係を管理する負荷を攻撃防御ノード2と攻撃検知ノード3間で分散することができる。
【0077】
次に、本実施形態におけるサーバ1に対する攻撃の検知と防御について説明する。サーバ1宛てのパケットは、そのサーバ1を収容する仮想セグメントを構成する攻撃検知ノード3によってサーバ1へ転送されるので、攻撃検知ノード3においてサーバ1へのトラヒックを把握することが可能となる。図9は、攻撃の検知と防御に関する攻撃防御ノード2と攻撃検知ノード3の機能構成を示している。
【0078】
攻撃防御ノード2は、前述した中継部20を有する。中継部20は、パケットの送信および受信を行う送受信部20aと、攻撃検知ノード3から通知されるフィルタリングルールを中継部20に設定するフィルタリング設定部20bと、攻撃検知ノード3から通知されるフィルタリングルールに従ってパケットを削除するフィルタリング部20cとを有する。
【0079】
攻撃検知ノード3は、前述した中継部30と、ログ記憶部36と、攻撃検知部37と、ルール決定部38とを有する。中継部30は、パケットの送信および受信を行う送受信部30aと、サーバ1に中継したパケットの情報をログに記録するログ記録部30bとを有する。ログ記憶部36は、中継部30がサーバ1に中継したパケットの情報を含むログを記憶すると共に、攻撃検知部37が攻撃を検知する際に使用する各種情報を記憶する。攻撃検知部37は、ログ記憶部36に記憶されているログ等に基づいて、送信元のIPアドレスの詐称による攻撃を検知する。ルール決定部38は、攻撃検知部37によって攻撃が検知された場合に、その攻撃の防御を行うためのフィルタリングルールを決定する。
【0080】
次に、本実施形態における攻撃検知・防御方法を説明する。図10に示すように、サーバ1a〜1c、攻撃防御ノード2a〜2c、攻撃検知ノード3a〜3b、管理ノード4、およびクライアント5a〜5eが存在する場合を例として説明を行う。クライアント5a,5b,5c,5d,5eのそれぞれの本来のIPアドレスは10.0.0.1、10.0.0.2、20.0.0.1、30.0.0.1、30.0.0.2であるものとする。
【0081】
本実施形態では、クライアント5からサーバ1の仮想IPアドレス宛てに送信されるパケットが、クライアント5とネットワークとの接続点の位置に応じた攻撃防御ノード2によって受信されるようネットワーク上の経路が構築されている。図10に示す例では、攻撃検知ノード2aとクライアント5a,5bが、同一のISP等によって管理される第1のネットワークに所属し、攻撃検知ノード2bとクライアント5cが、同一のISP等によって管理される第2のネットワークに所属し、攻撃検知ノード2cとクライアント5d,5eが、同一のISP等によって管理される第3のネットワークに所属していることを想定している。このため、クライアント5a,5bが送信したパケットは攻撃防御ノード2aによって受信され、クライアント5cが送信したパケットは攻撃防御ノード2bによって受信され、クライアント5d,5eが送信したパケットは攻撃防御ノード2cによって受信される。
【0082】
クライアント5がIPアドレスを詐称していない場合、各々の攻撃防御ノード2が中継するパケットの送信元のIPアドレスは、各々の攻撃防御ノード2に対応した一定のIPアドレス範囲に収まる。言い換えると、クライアント5がIPアドレスを詐称していない場合、各々の攻撃防御ノード2は、各々に対応した一定のIPアドレス範囲に対応するネットワークを経由したパケットのみを受信する。
【0083】
攻撃検知ノード3は、攻撃防御ノード2によって中継されたパケットを受信した際、そのパケットの送信元のIPアドレスに基づいて、そのパケットを中継した攻撃防御ノード2の識別子(以下、ノード識別子と記載)と、その攻撃防御ノード2に対応するIPアドレス範囲の識別子(以下、ネットワーク識別子と記載)と、パケットの受信時刻とを関連付けたプロファイル(通信履歴情報)を生成し、記憶する。例えば、図11に示すように、攻撃検知ノード3aにおいて、クライアント5a,5c,5dからのパケットが受信された場合、以下のようなプロファイルが生成される。
【0084】
攻撃検知ノード3aは、クライアント5aからのパケットを受信したので、クライアント5aのIPアドレス10.0.0.1に基づいて、このパケットを中継した攻撃防御ノード2aに対応するネットワーク識別子(図11に示す例ではネットワークプレフィックス)が10.0.0.0/24であることを検知する。したがって、攻撃検知ノード3aは、攻撃防御ノード2aのノード識別子(図11に示す例では2a)と、ネットワーク識別子(10.0.0.0/24)と、クライアント5aからのパケットを受信した時刻(図11に示す例ではTa)とを関連付けたプロファイルを生成する。攻撃検知ノード3aは、クライアント5c,5dからもパケットを受信したので、同様にしてプロファイルを生成する。図11には、上記のプロファイルを含むプロファイル情報P1が示されている。
【0085】
続いて、図12に示すように、クライアント5dがIPアドレスを詐称してサーバ1a宛のパケットを送信したとする。詐称後のクライアント5dのIPアドレスを10.0.0.5とする。クライアント5dはIPアドレスを詐称しているが、ネットワークとの接続点の位置が変化していないので、クライアント5が送信したパケットは攻撃防御ノード2cによって中継され、攻撃検知ノード3aによって受信される。このとき、攻撃検知ノード3aは、上記と同様に、攻撃防御ノード2cのノード識別子(図12に示す例では2c)と、ネットワーク識別子(10.0.0.0/24)と、クライアント5dからのパケットを受信した時刻(図11に示す例ではTd)とを関連付けたプロファイルを生成する。図12には、上記のプロファイルを含むプロファイル情報P2が示されている。
【0086】
図12のプロファイル情報P2が示すように、同一のネットワーク識別子(10.0.0.0/24)に関して、ノード識別子が異なる2つのプロファイル(「2a:10.0.0.0/24:Ta」と「2c:10.0.0.0/24:Td」)が存在している。つまり、時刻Taの時点では、このネットワーク識別子(10.0.0.0/24)に対応するIPアドレスを有するクライアント5からのパケットは攻撃防御ノード2aによって受信されていたが、時刻Taよりも後の時刻Tdの時点では、同じネットワーク識別子(10.0.0.0/24)に対応するIPアドレスを有するクライアント5からのパケットが、攻撃防御ノード2aとは異なる攻撃防御ノード2cによって中継されている。このように、同一のネットワーク識別子に関するプロファイルのノード識別子が変化した場合、攻撃検知ノード3は、送信元のIPアドレスが詐称されており、送信元のIPアドレスの詐称による攻撃が発生したと判断する。
【0087】
本実施形態では、送信元のIPアドレスの詐称による攻撃が検知された場合、攻撃に利用されたIPアドレスに対応するネットワーク識別子に対応するIPアドレスを送信元とするパケットを棄却するというポリシーに従って、パケットのフィルタリングが行われる。図12に示す例では、IPアドレス10.0.0.5が攻撃に利用されたと判断され、このIPアドレス10.0.0.5を送信元とするパケットを中継した攻撃防御ノード2cと、このIPアドレス10.0.0.5に対応するネットワーク識別子に対応する攻撃防御ノード2aとにおいて、このIPアドレス10.0.0.5に対応するネットワーク識別子10.0.0.0/24とネットワークプレフィックスが一致するIPアドレスを送信元とするパケットが棄却される。
【0088】
攻撃検知ノード3のログ記憶部36は、前述したログのほか、攻撃検知部37が攻撃を検知する際に使用する情報であるプロファイル情報とネットワーク情報を記憶する。プロファイル情報については上述した通りである。ネットワーク情報は、ネットワーク(インターネット)上の全てのIPアドレス(000.000.000.000〜255.255.255.255)からなるIPアドレス空間を複数のIPアドレス範囲に分類(分割)したときの各々のIPアドレス範囲に対応するネットワーク識別子の情報を含む。
【0089】
図13はネットワーク情報の一例を示している。本実施形態のネットワーク情報を提供するWebサービスが既知であり、そのWebサービスを提供するサーバからネットワーク情報を受信することが可能である。図13に示す例では、ネットワーク識別子としてネットワークプレフィックスI1が記録されている。攻撃検知部37は、攻撃検知ノード3で受信されたパケットの送信元のIPアドレスとネットワークプレフィックスI1との各値を上位のオクテット(8ビットの値)から順にオクテット単位で比較する。攻撃検知部37は、最上位のオクテットの値が一致し、かつアドレス値の最上位側から見て値が一致する桁数が最大のネットワークプレフィックスI1を選択する。例えば、攻撃検知ノード3で受信されたパケットの送信元のIPアドレスが10.0.0.1である場合、ネットワークプレフィックス10.0.0.0/24が選択される。
【0090】
ネットワーク識別子としてAS番号を使用することも可能である。図13に示すパス情報I2の末尾の番号がAS番号である。上記と同様にして、攻撃検知ノード3で受信されたパケットの送信元のIPアドレスに対応するネットワークプレフィックスI1(例えば10.0.0.0/24)を選択し、そのネットワークプレフィックスI1に関連付けられたAS番号(例えば7667)を選択すれば、このAS番号がネットワーク識別子となる。
【0091】
同一のネットワーク識別子に対応する攻撃防御ノード2が2台以上あると、上記の攻撃検知方法では、送信元のIPアドレスの詐称による攻撃を誤検知する可能性がある。このため、1つのネットワーク識別子に対して1台の攻撃防御ノード2のみが対応するように攻撃防御ノード2を設置することが望ましい。以下の説明では、同一のネットワーク識別子に対応する攻撃防御ノード2が2台以上設置されていないことを前提とする。
【0092】
上記の説明が、本実施形態における攻撃検知・防御方法の説明である。なお、上記の説明では、説明を簡略化するため、攻撃防御ノード2の加入や脱退に伴うDHTネットワークの構成変更を考慮していない。DHTネットワークの構成変更が発生すると、上述したプロファイルが変化する場合があるため、この変化を送信元のIPアドレスの詐称による攻撃として誤検知する可能性がある。以下では、この誤検知を低減した攻撃検知・防御方法を説明する。
【0093】
図14は、サーバ1に対する攻撃の検知と防御時のシーケンスを示している。攻撃検知ノード3においてログ記録部30bは、送受信部30aが攻撃防御ノード2からのパケットをサーバ1に中継した際に、そのパケットからIPアドレス等の情報を取得し、ログ記憶部36内のログに追加する。図15は、1パケット分のログの構造を示している。攻撃防御ノード2でカプセル化されたパケットに付加されているIPヘッダの情報と、カプセル解除したパケットのIPヘッダから、パケットを送信したクライアント5のIPアドレス、パケットの宛先であるサーバ1の仮想IPアドレス、パケットを中継した攻撃防御ノード2のIPアドレスを取得することができる。これらと攻撃検知ノード3のIPアドレスおよびパケットの受信時刻がログに記録される。
【0094】
攻撃検知部37はログ記憶部36内のログ等に基づいて、攻撃防御ノード2からサーバ1へのトラヒックに関して、送信元のIPアドレスの詐称による攻撃が発生したか否かの判定を行う(ステップS800)。攻撃検知部37によって攻撃が発生したと判定された場合、すなわち攻撃が検知された場合、ルール決定部38はフィルタリングルールを決定すると共に、フィルタリングを行う攻撃防御ノード2を決定する。ルール決定部38は、決定したフィルタリングルールを通知するルール情報を生成し、フィルタリングを行う攻撃防御ノード2を指定する情報と共にルール情報を中継部30に通知する(ステップS810)。
【0095】
中継部30の送受信部30aは、ルール決定部38によって指定された攻撃防御ノード2へルール情報を送信する(ステップS820)。攻撃防御ノード2において、送受信部20aは攻撃検知ノード3からのルール情報を受信する。フィルタリング設定部20bは、ルール情報が示すフィルタリングルールに従って、特定の条件を満たすパケットを削除するようにフィルタリング部20cにフィルタリングの設定を行う(ステップS820)。これ以降、フィルタリング部20cは、設定された条件に従って、クライアント5から受信したパケットを削除する。送受信部20aは、削除されたパケットを送信しない。
【0096】
次に、ステップS800において、送信元のIPアドレスの詐称による攻撃を判定する処理の詳細を説明する。図16は、ステップS800における処理の詳細を示している。まず、攻撃検知部37は、ログ記憶部36内のログに新たにパケットの情報が追加されたか否かを判定することにより、攻撃検知ノード3で新たにパケットが受信されたか否かを判定する(ステップS900)。ログ記憶部36内のログに新たにパケットの情報が追加されていない場合、すなわち攻撃検知ノード3で新たにパケットが受信されていない場合、再度ステップS900の処理が行われる。
【0097】
また、ログ記憶部36内のログに新たにパケットの情報が追加された場合、すなわち攻撃検知ノード3で新たにパケットが受信された場合、攻撃検知部37は、ログにおいて新たに追加されたパケットの情報から、パケットを中継した攻撃防御ノード2のIPアドレスとパケットの送信元のIPアドレスとパケットの受信時刻とを抽出する(ステップS905)。抽出した攻撃防御ノード2のIPアドレスはノード識別子として使用される。
【0098】
続いて、攻撃検知部37は、ログ記憶部36内のネットワーク情報に基づいて、ステップS905で抽出した送信元のIPアドレスに対応するネットワーク識別子を選択する。攻撃検知部37は、選択したネットワーク識別子と、ステップS905で抽出したノード識別子とパケットの受信時刻とを含むプロファイル(通信履歴情報)を生成し、プロファイル情報としてログ記憶部36に格納する(ステップS910)。以下では、ステップS910で生成した最新のプロファイルのノード識別子をMとし、ネットワーク識別子をNとする。
【0099】
続いて、攻撃検知部37は、ログ記憶部36内のプロファイル情報に含まれるプロファイルのうち、ステップS910で生成した最新のプロファイルと、それ以外の過去のプロファイル(最新のプロファイルのパケット受信時刻よりも古いパケット受信時刻を含むプロファイル)とを比較する。そして、攻撃検知部37は、最新のプロファイルを除いた過去のプロファイルの中に、最新のプロファイルのノード識別子Mとノード識別子が一致し、かつ最新のプロファイルのネットワーク識別子Nとネットワーク識別子が一致するプロファイルがあるか否かを判定する(ステップS915)。
【0100】
最新のプロファイルのノード識別子Mとノード識別子が一致し、かつ最新のプロファイルのネットワーク識別子Nとネットワーク識別子が一致するプロファイルがある場合、攻撃検知部37は、攻撃が発生していないと判断する(ステップS935)。この場合、ルール決定部38にサーバ1の仮想IPアドレスは通知されない。続いて、処理はステップS900に戻る。
【0101】
また、最新のプロファイルのノード識別子Mとノード識別子が一致し、かつ最新のプロファイルのネットワーク識別子Nとネットワーク識別子が一致するプロファイルがない場合、攻撃検知部37は、最新のプロファイルを除いた過去のプロファイルの中に、最新のプロファイルのネットワーク識別子Nとネットワーク識別子が一致するプロファイルがあるか否かを判定する(ステップS920)。
【0102】
最新のプロファイルのネットワーク識別子Nとネットワーク識別子が一致するプロファイルがない場合、処理はステップS935に進み、攻撃が発生していないと判断される。また、最新のプロファイルのネットワーク識別子Nとネットワーク識別子が一致するプロファイルがある場合(この場合、プロファイル間でノード識別子は異なる)、同じネットワーク識別子に対応するIPアドレスを有するクライアント5からのパケットが、異なる時点で異なる攻撃防御ノード2よって中継されているため、送信元のIPアドレスの詐称による攻撃が発生している可能性がある。以下では、最新のプロファイルのネットワーク識別子Nとネットワーク識別子が一致するプロファイルのノード識別子をXとする。
【0103】
この場合、攻撃防御ノード2の加入や脱退によりプロファイルが変化している可能性もあるため、攻撃防御ノード2の状態の確認が行われる(ステップS925)。より具体的には、攻撃検知部37は、攻撃防御ノード2の状態を管理ノード4に確認する指示を中継部30へ出力する。この指示には、攻撃防御ノード2のIPアドレスであるノード識別子Mとノード識別子Xが含まれる。中継部30の送受信部30aは、ノード識別子Mとノード識別子Xを含み、攻撃防御ノード2の状態の確認を依頼する状態確認依頼メッセージを管理ノード4へ送信する。
【0104】
管理ノード4のノード管理部43は状態確認依頼メッセージを受信すると、ノードリスト記憶部44からノードリストおよび脱退ノードリストを読み出す。ノード管理部43は、ノードリストおよび脱退ノードリストにおいて、受信した状態確認依頼メッセージに含まれるノード識別子M、ノード識別子Xと同一のIPアドレスをそれぞれ検索する。ノード管理部43は、検索の結果に基づいて、攻撃防御ノード2の状態を回答する状態回答メッセージを生成し、状態確認依頼メッセージの送信元である攻撃検知ノード3へ送信する。
【0105】
ノード識別子Mまたはノード識別子Xと一致するIPアドレスがノードリストにあった場合、状態回答メッセージには、そのIPアドレスと、ノードが加入している(DHTネットワークに参加中である)ことを示す情報と、ノード加入時刻との組合せが含まれる。また、ノード識別子Mまたはノード識別子Xと一致するIPアドレスが脱退ノードリストにあった場合、状態回答メッセージには、そのIPアドレスと、ノードが脱退している(DHTネットワークから離脱している)ことを示す情報と、ノード脱退時刻との組合せが含まれる。
【0106】
ノード識別子Xを有する攻撃防御ノード2に関しては、ノードが脱退している場合と参加中の場合との両方がある。これに対して、ノード識別子Mを有する攻撃防御ノード2に関しては、この攻撃防御ノード2によって中継されたパケットが攻撃検知ノード3で受信されているため(ステップS900〜S915)、ノードは脱退しておらず参加中であることを想定している。したがって、ノード識別子Mを有する攻撃防御ノード2に関しては、そのIPアドレスと、ノードが加入していることを示す情報と、ノード加入時刻との組合せが状態回答メッセージに含まれるものとする。
【0107】
攻撃検知ノード3の送受信部30aは状態回答メッセージを受信すると、受信した状態回答メッセージを攻撃検知部37へ出力する。攻撃検知部37は、状態回答メッセージに含まれる情報を参照する。以上の処理により、攻撃防御ノード2の状態の確認が行われる。
【0108】
ステップS925に続いて、攻撃検知部37は、ノード識別子Xと一致するIPアドレスと組み合わされているノードの状態の情報がノードの脱退を示しているか否か(すなわちノード識別子Xを有する攻撃防御ノード2が脱退しているか否か)を判定する(ステップS930)。ノード識別子Xと一致するIPアドレスと組み合わされた情報がノードの脱退を示している場合、ノード識別子Xを有する攻撃防御ノード2の脱退により、この攻撃防御ノード2によって受信されていたパケットが、ノード識別子Mを有する攻撃防御ノード2によって受信されるようになったと考えられる。この場合、処理はステップS935に進み、攻撃は発生していないと判断される。
【0109】
また、ノード識別子Xと一致するIPアドレスと組み合わされた情報がノードの脱退ではなくノードの加入を示している場合、攻撃検知部37は、状態回答メッセージに含まれる、ノード識別子Mを有する攻撃防御ノード2のノード加入時刻と、ノード識別子Xおよびネットワーク識別子Nを含むプロファイルのパケット受信時刻とを比較し、ノード加入時刻がパケット受信時刻よりも後であるか否かを判定する(ステップS940)。
【0110】
図17は、ステップS940における判定に関係する場合を示している。図17において、Tmは、ノード識別子Mを有する攻撃防御ノード2(以下、攻撃防御ノード2mと記載)のノード加入時刻を示し、Txは、ノード識別子Xを有する攻撃防御ノード2(以下、攻撃防御ノード2xと記載)のノード加入時刻を示す。また、Tpmは、ノード識別子Mとネットワーク識別子Nを含むプロファイルのパケット受信時刻(すなわち攻撃防御ノード2mによって中継されたパケットの攻撃検知ノード3における受信時刻)を示し、Tpxは、ノード識別子Xとネットワーク識別子Nを含むプロファイルのパケット受信時刻(すなわち攻撃防御ノード2xによって中継されたパケットの攻撃検知ノード3における受信時刻)を示す。
【0111】
図17(a)では、攻撃防御ノード2xがDHTネットワークに加入した時刻Tx以降、ネットワーク識別子Nに対応するIPアドレスを有するクライアント5からのパケットは攻撃防御ノード2xで中継されていることが分かる(時刻Tx)。しかし、攻撃防御ノード2mがDHTネットワークに加入した時刻Tm以降、ネットワーク識別子Nに対応するIPアドレスを有するクライアント5からのパケットは攻撃防御ノード2mで中継されていることが分かる(時刻Tpm)。図17(a)の場合、攻撃防御ノード2mの加入によって、ネットワーク識別子Nに対応する攻撃防御ノード2が変化しているため、攻撃は発生していないと判定される。
【0112】
図17(b)では、攻撃防御ノード2xがDHTネットワークに加入した時刻Tx以降、ネットワーク識別子Nに対応するIPアドレスを有するクライアント5からのパケットは攻撃防御ノード2xで中継されていることが分かる(時刻Tpx)。しかし、ネットワーク識別子Nに対応するIPアドレスを有するクライアント5からのパケットが攻撃防御ノード2xで中継された時刻Tpxよりも後の時刻Tpmでは、攻撃防御ノード2xがDHTネットワークに加入した時刻Txよりも前にDHTネットワークに加入している攻撃防御ノード2mで同様のパケットが中継されていることが分かる。攻撃防御ノード2xは脱退していないので、ネットワーク識別子Nに対応するIPアドレスを有するクライアント5からのパケットは時刻Tpx以降も攻撃防御ノード2xで中継されるはずである。したがって、図17(b)の場合、ネットワーク識別子Nに対応するIPアドレスを詐称に使用したクライアント5からのパケットが攻撃防御ノード2mで中継されたと考えられるので、攻撃が発生していると判定される。
【0113】
図17(c)では、時刻Txで攻撃防御ノード2xがDHTネットワークに加入した後、時刻Tmで攻撃防御ノード2mがDHTネットワークに加入していることが分かる。さらに、時刻Tmよりも後の時刻Tpxでは、ネットワーク識別子Nに対応するIPアドレスを有するクライアント5からのパケットが攻撃防御ノード2xで中継され、時刻Tpxよりも後の時刻Tpmでは、ネットワーク識別子Nに対応するIPアドレスを有するクライアント5からのパケットが攻撃防御ノード2mで中継されていることが分かる。
【0114】
攻撃防御ノード2xも攻撃防御ノード2mも脱退してなく、クライアント5がIPアドレスを詐称していない場合、ネットワーク識別子Nに対応するIPアドレスを有するクライアント5からのパケットは攻撃防御ノード2xと攻撃防御ノード2mのうちの一方のみで中継されなければならない。したがって、図17(c)の場合、攻撃防御ノード2xで中継されたパケットと、攻撃防御ノード2mで中継されたパケットのうちの一方は、送信元のIPアドレスを詐称した攻撃のパケットだと考えられるので、攻撃が発生していると判定される。
【0115】
ステップS940において、ノード加入時刻がパケット受信時刻よりも後である場合(図17(a)の場合)、処理はステップS935に進み、攻撃が発生していないと判断される。また、ノード加入時刻がパケット受信時刻よりも前である場合(図17(b)、(c)の場合)、攻撃検知部37は、攻撃が発生したと判断し、ノード識別子Mおよびノード識別子Xに相当する2台の攻撃防御ノード2のIPアドレスとネットワーク識別子Nとをルール決定部38に通知する(ステップS945)。
【0116】
続いて、ルール決定部38は、ネットワーク識別子Nに対応するIPアドレス範囲に含まれるIPアドレスを有するクライアント5からのパケットを棄却するフィルタリングルールを示すルール情報を生成し、このルール情報と、攻撃検知部37から通知された2台の攻撃防御ノード2のIPアドレスとを中継部30へ出力する(ステップS950)。
【0117】
中継部30の送受信部30aは、ルール決定部38から出力されたIPアドレスを有する2台の攻撃防御ノード2へ、ルール決定部38から出力されたルール情報を送信する(ステップS955)。このルール情報を受信した攻撃防御ノード2のフィルタリング設定部20bは、ルール情報が示すIPアドレス範囲に含まれるIPアドレスを送信元とするパケットを削除するようにフィルタリング部20cにフィルタリングの設定を行う。フィルタリング部20cは、送受信部20aが受信したパケットの送信元であるクライアント5のIPアドレスが、設定されたIPアドレス範囲に含まれる場合に、受信したパケットを削除する。
【0118】
上述したように、本実施形態によれば、攻撃検知ノード3においてパケットが受信されたときに、このパケットの情報から生成したプロファイルと、過去に生成したプロファイルとを比較することによって、送信元のIPアドレスによる攻撃を検知し、サーバ1を攻撃から防御することができる。より具体的には、最新のプロファイルに含まれるネットワーク識別子と、過去のプロファイルに含まれるネットワーク識別子とが同一であり、かつ最新のプロファイルに含まれるノード識別子と、過去のプロファイルに含まれるノード識別子とが異なる場合(図16のステップS920でYESの場合)に、送信元のIPアドレスの詐称による攻撃を検知し、サーバ1を攻撃から防御することができる。本実施形態は、既存の通信機器を置換することなく、少数の攻撃防御ノード2と攻撃検知ノード3をネットワークに追加することで実現することが可能である。
【0119】
また、攻撃防御ノード2の加入や脱退の状態に関する情報を管理ノード4から取得し、取得した情報に基づいて攻撃の検知を行うことによって、攻撃防御ノード2の加入や脱退に伴うプロファイルの変化を検知することによる攻撃の誤検知を低減することができる。
【0120】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【0121】
1・・・サーバ、2・・・攻撃防御ノード、3・・・攻撃検知ノード、4・・・管理ノード、5・・・クライアント、10・・・サーバアプリケーション、11,31・・・サーバ公開部、20,30・・・中継部、20a,30a・・・送受信部、20b・・・フィルタリング設定部、20c・・・フィルタリング部、21,32・・・DHT管理部、22,33・・・DHT記憶部、23,34・・・広告部、30b・・・ログ記録部、35・・・サーバ記憶部、36・・・ログ記憶部、37・・・攻撃検知部、38・・・ルール決定部、40・・・仮想IPアドレス記憶部、41・・・アドレス管理部、42・・・設定情報記憶部、43・・・ノード管理部、44・・・ノードリスト記憶部、50・・・クライアントアプリケーション
【特許請求の範囲】
【請求項1】
通信端末から、実IPアドレスおよび仮想IPアドレスを有するサーバの前記仮想IPアドレス宛てに送信されるパケットを中継する複数の第1の中継端末と、
前記第1の中継端末によって中継されたパケットを受信し、受信したパケットを前記仮想IPアドレスに対応した前記実IPアドレス宛てのパケットに変換し、前記サーバとの間で確立されたVPN接続により前記サーバへ変換後のパケットを送信する複数の第2の中継端末と、
を備え、前記通信端末が送信したパケットは、当該通信端末とネットワークとの接続点に応じた前記第1の中継端末によって受信される通信システムであって、
前記第1の中継端末は、
パケットを削除するルールを示すルール情報を前記第2の中継端末から受信する受信部と、
前記第2の中継端末から受信された前記ルール情報が示すルールに従って、前記第1の中継端末で受信されたパケットを削除するフィルタリング部と、
を有し、
前記第2の中継端末は、
ネットワーク上の全てのIPアドレスを複数のIPアドレス範囲に分類したときの各々のIPアドレス範囲の情報を含むネットワーク情報を記憶すると共に、前記第1の中継端末が中継するパケットの送信元の前記通信端末のIPアドレスに対応する前記IPアドレス範囲の情報と当該第1の中継端末の識別情報とを含む通信履歴情報を記憶する記憶部と、
前記第2の中継端末で受信されたパケットの送信元の前記通信端末のIPアドレスと、当該パケットを中継した前記第1の中継端末の識別情報と、前記ネットワーク情報とに基づいて前記通信履歴情報を生成し、前記記憶部に格納する生成部と、
第1の通信履歴情報と、当該第1の通信履歴情報よりも前に生成された第2の通信履歴情報とを比較した結果に基づいて、前記通信端末のIPアドレスの詐称による攻撃を検知する検知部と、
前記検知部によって検知された攻撃に係るパケットを削除する前記ルールを決定し、前記ルール情報を生成するルール決定部と、
前記検知部によって検知された攻撃に係るパケットを中継した前記第1の中継端末へ前記ルール情報を送信する送信部と、
を有することを特徴とする通信システム。
【請求項2】
前記検知部は、前記第1の通信履歴情報に含まれる前記IPアドレス範囲の情報と、前記第2の通信履歴情報に含まれる前記IPアドレス範囲の情報とが同一であり、かつ前記第1の通信履歴情報に含まれる前記第1の中継端末の識別情報と、前記第2の通信履歴情報に含まれる前記第1の中継端末の識別情報とが異なる場合に、前記通信端末のIPアドレスの詐称による攻撃を検知することを特徴とする請求項1に記載の通信システム。
【請求項3】
前記第1の中継端末および前記第2の中継端末の状態を管理する管理端末をさらに備え、
前記第2の中継端末はさらに、前記管理端末に対して、前記第2の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末のネットワークへの参加状態の確認を要求する確認要求を送信し、当該参加状態を示す回答を前記管理端末から受信する状態確認部を有し、
前記検知部は、前記第1の通信履歴情報に含まれる前記IPアドレス範囲の情報と、前記第2の通信履歴情報に含まれる前記IPアドレス範囲の情報とが同一であり、かつ前記第1の通信履歴情報に含まれる前記第1の中継端末の識別情報と、前記第2の通信履歴情報に含まれる前記第1の中継端末の識別情報とが異なる場合であって、前記第1の中継端末がネットワークから脱退したことを前記回答が示している場合に、前記通信端末のIPアドレスの詐称による攻撃を検知しない
ことを特徴とする請求項1に記載の通信システム。
【請求項4】
前記第1の中継端末および前記第2の中継端末の状態を管理する管理端末をさらに備え、
前記第2の中継端末はさらに、前記管理端末に対して、前記第1の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末のネットワークへの参加状態と、前記第2の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末のネットワークへの参加状態との確認を要求する確認要求を送信し、当該参加状態を示す回答を前記管理端末から受信する状態確認部を有し、
前記通信履歴情報はさらに、当該通信履歴情報に係るパケットの受信時刻を示す時刻情報を含み、
前記検知部は、前記第1の通信履歴情報に含まれる前記IPアドレス範囲の情報と、前記第2の通信履歴情報に含まれる前記IPアドレス範囲の情報とが同一であり、かつ前記第1の通信履歴情報に含まれる前記第1の中継端末の識別情報と、前記第2の通信履歴情報に含まれる前記第1の中継端末の識別情報とが異なる場合であって、前記第2の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末がネットワークに参加中であることを前記回答が示しており、かつ前記第2の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末のネットワーク加入時刻が、前記第2の通信履歴情報に含まれる前記時刻情報が示す時刻よりも前である場合に、前記通信端末のIPアドレスの詐称による攻撃を検知する
ことを特徴とする請求項1または請求項3に記載の通信システム。
【請求項5】
前記送信部は、前記第1の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末と、前記第2の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末とに対して前記ルール情報を送信することを特徴とする請求項1〜請求項4のいずれか一項に記載の通信システム。
【請求項1】
通信端末から、実IPアドレスおよび仮想IPアドレスを有するサーバの前記仮想IPアドレス宛てに送信されるパケットを中継する複数の第1の中継端末と、
前記第1の中継端末によって中継されたパケットを受信し、受信したパケットを前記仮想IPアドレスに対応した前記実IPアドレス宛てのパケットに変換し、前記サーバとの間で確立されたVPN接続により前記サーバへ変換後のパケットを送信する複数の第2の中継端末と、
を備え、前記通信端末が送信したパケットは、当該通信端末とネットワークとの接続点に応じた前記第1の中継端末によって受信される通信システムであって、
前記第1の中継端末は、
パケットを削除するルールを示すルール情報を前記第2の中継端末から受信する受信部と、
前記第2の中継端末から受信された前記ルール情報が示すルールに従って、前記第1の中継端末で受信されたパケットを削除するフィルタリング部と、
を有し、
前記第2の中継端末は、
ネットワーク上の全てのIPアドレスを複数のIPアドレス範囲に分類したときの各々のIPアドレス範囲の情報を含むネットワーク情報を記憶すると共に、前記第1の中継端末が中継するパケットの送信元の前記通信端末のIPアドレスに対応する前記IPアドレス範囲の情報と当該第1の中継端末の識別情報とを含む通信履歴情報を記憶する記憶部と、
前記第2の中継端末で受信されたパケットの送信元の前記通信端末のIPアドレスと、当該パケットを中継した前記第1の中継端末の識別情報と、前記ネットワーク情報とに基づいて前記通信履歴情報を生成し、前記記憶部に格納する生成部と、
第1の通信履歴情報と、当該第1の通信履歴情報よりも前に生成された第2の通信履歴情報とを比較した結果に基づいて、前記通信端末のIPアドレスの詐称による攻撃を検知する検知部と、
前記検知部によって検知された攻撃に係るパケットを削除する前記ルールを決定し、前記ルール情報を生成するルール決定部と、
前記検知部によって検知された攻撃に係るパケットを中継した前記第1の中継端末へ前記ルール情報を送信する送信部と、
を有することを特徴とする通信システム。
【請求項2】
前記検知部は、前記第1の通信履歴情報に含まれる前記IPアドレス範囲の情報と、前記第2の通信履歴情報に含まれる前記IPアドレス範囲の情報とが同一であり、かつ前記第1の通信履歴情報に含まれる前記第1の中継端末の識別情報と、前記第2の通信履歴情報に含まれる前記第1の中継端末の識別情報とが異なる場合に、前記通信端末のIPアドレスの詐称による攻撃を検知することを特徴とする請求項1に記載の通信システム。
【請求項3】
前記第1の中継端末および前記第2の中継端末の状態を管理する管理端末をさらに備え、
前記第2の中継端末はさらに、前記管理端末に対して、前記第2の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末のネットワークへの参加状態の確認を要求する確認要求を送信し、当該参加状態を示す回答を前記管理端末から受信する状態確認部を有し、
前記検知部は、前記第1の通信履歴情報に含まれる前記IPアドレス範囲の情報と、前記第2の通信履歴情報に含まれる前記IPアドレス範囲の情報とが同一であり、かつ前記第1の通信履歴情報に含まれる前記第1の中継端末の識別情報と、前記第2の通信履歴情報に含まれる前記第1の中継端末の識別情報とが異なる場合であって、前記第1の中継端末がネットワークから脱退したことを前記回答が示している場合に、前記通信端末のIPアドレスの詐称による攻撃を検知しない
ことを特徴とする請求項1に記載の通信システム。
【請求項4】
前記第1の中継端末および前記第2の中継端末の状態を管理する管理端末をさらに備え、
前記第2の中継端末はさらに、前記管理端末に対して、前記第1の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末のネットワークへの参加状態と、前記第2の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末のネットワークへの参加状態との確認を要求する確認要求を送信し、当該参加状態を示す回答を前記管理端末から受信する状態確認部を有し、
前記通信履歴情報はさらに、当該通信履歴情報に係るパケットの受信時刻を示す時刻情報を含み、
前記検知部は、前記第1の通信履歴情報に含まれる前記IPアドレス範囲の情報と、前記第2の通信履歴情報に含まれる前記IPアドレス範囲の情報とが同一であり、かつ前記第1の通信履歴情報に含まれる前記第1の中継端末の識別情報と、前記第2の通信履歴情報に含まれる前記第1の中継端末の識別情報とが異なる場合であって、前記第2の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末がネットワークに参加中であることを前記回答が示しており、かつ前記第2の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末のネットワーク加入時刻が、前記第2の通信履歴情報に含まれる前記時刻情報が示す時刻よりも前である場合に、前記通信端末のIPアドレスの詐称による攻撃を検知する
ことを特徴とする請求項1または請求項3に記載の通信システム。
【請求項5】
前記送信部は、前記第1の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末と、前記第2の通信履歴情報に含まれる前記識別情報に対応する前記第1の中継端末とに対して前記ルール情報を送信することを特徴とする請求項1〜請求項4のいずれか一項に記載の通信システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2012−186520(P2012−186520A)
【公開日】平成24年9月27日(2012.9.27)
【国際特許分類】
【出願番号】特願2011−46191(P2011−46191)
【出願日】平成23年3月3日(2011.3.3)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成22年度、独立行政法人情報通信研究機構「高度通信・放送研究開発委託研究/ダイナミックネットワーク技術の研究開発 課題キ オーバーレイネットワークのセキュリティに関する技術」、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】
【公開日】平成24年9月27日(2012.9.27)
【国際特許分類】
【出願日】平成23年3月3日(2011.3.3)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成22年度、独立行政法人情報通信研究機構「高度通信・放送研究開発委託研究/ダイナミックネットワーク技術の研究開発 課題キ オーバーレイネットワークのセキュリティに関する技術」、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】
[ Back to top ]