以下、図面に基づいて本発明の実施の形態を説明する。
後述する実施例を概略すると、DDoS攻撃情報の共有と各攻撃に対して各ASの防御機能のリソースをどれだけ割り当てるかを調整する役割を担う連携対処装置に加えて、連携するAS間が直接接続していない場合に、そのAS間で通信する際に経由するリンクの輻輳状態を検査する機能を持つ輻輳検査部を導入する。なお、各ASの連携対処装置は、近隣の連携先ASの連携対処機能とのみ通信を行う分散型のアーキテクチャ上で動作する。
以下の手順により、インターネット全体でDDoS攻撃に連携して対処する場合で、かつ一部のASしか本機能を保有しない場合でも、AS間リンク帯域の輻輳の回避と各ASの防御装置のリソース使用率の平準化を同時に実現する。
−標的ASから連携対処を開始して、まず、攻撃元に近いASのmitigation装置リソースを優先的に利用して対処するように設定(攻撃による消費帯域が最小になるように対処)
−次に、リソース使用率を平準化するために、最上流ASから負荷分散の調整を実施。この時、自身の親ASが隣接AS(自身と直接接続関係にあるAS)の場合は、従来技術と同様に、自身と親ASとの間のリンク帯域情報から、輻輳を回避するために自ASで最低限対処しなければならない量(最低対処量)を算出して、調整要求メッセージに含めて親ASに送信し、親ASで実施される、AS間のmitigation装置負荷分散のための最適化問題の制約条件として使用する。
−自身の親ASが隣接ASでない場合は、上記と同様の処理を実施後、親ASからの更新要求メッセージに含まれる自ASの対処量に従って対処を適用後に、自ASと親AS間で輻輳検査部を介して検査パケットを送信し、パケットドロップの発生の有無や応答が返ってくるまでの遅延の増大等に基づき、自身と親AS間で通信をする際に経由するリンク上で輻輳が発生しているか調べる。輻輳が発生している場合は、上流の対処量を増加させて再検査を繰り返し、輻輳が解消された時点の対処量を最低対処量に設定し直して、輻輳解消前の対処量、輻輳解消後の対処量、最低対処量を含む輻輳対処メッセージを親ASに送信し、親ASにおいて、親ASの対処量を差分だけ減少させる補正を行う。
−前記の局所的な調整をネットワーク全体で繰り返し実施することで、最終的に、インターネット全体でAS間リンク輻輳を回避しつつ、mitigation装置負荷分散を統一的に実現する。
以下の実施例では、Autonomous System(以降、AS)間でのDDoS攻撃情報の共有及び各ASを標的とするDDoS攻撃に対して、各ASの防御機能のリソースをどれだけ割り当てるかを調整する役割を担う連携対処装置を開示する。また、連携対処装置間のアーキテクチャとして、例えば、非特許文献2のアーキテクチャなど、近隣ASの連携対処装置とのみ直接通信を行う分散型のアーキテクチャを適用することでスケーラビリティを向上させ、局所的な調整を繰り返すことで、インターネット全体で統一的なリソース割り当てを実現する。
標的となったAS(標的AS)で攻撃を検知した場合、まず、標的ASから他のASとの連携対処を開始し、連携対処装置を介して、上流AS方向に標的IPアドレスを含む対処要求メッセージを伝搬し、要求を受信したASにおいて、随時、標的宛通信への対処とさらに上流ASへの対処要求の伝搬を繰り返していくことで、防御機能のリソースの許す限り、攻撃元に近いASでの攻撃対処を実現する。次に、各ASの防御機能のリソース使用率を平準化するために、最上流のASから下流AS方向に調整要求メッセージを伝搬していき、要求を受信したAS(下流AS)とその連携先の上流AS間で防御機能のリソース使用率を平準化するための最適化問題を解くことにより、各ASで対処する標的宛通信量を調整する。この時、連携先の上流ASにおいて、当該ASと隣接AS間リンクの利用可能帯域量と当該AS内へ流入する標的宛通信量に基づき、当該ASと隣接AS間のリンク輻輳を回避するために上流ASで最低限対処しなければならない標的宛通信量(最低対処量)を算出し、調整要求に含めて下流ASに伝搬し、上述した最適化問題の制約条件として使用する。また、調整を行うASが直接接続されていない場合は、上流ASにおいて、上述した最適化問題の結果得られたリソース割り当て量での対処を実施後、連携機能を保有する上流AS-下流AS間で検査パケットを送信することで、上流AS-下流AS間でのリンク輻輳の発生の有無を検査する。輻輳している場合は、上流ASの対処量を増加させて輻輳発生の有無の再検査を行い、輻輳が解消されるまで対処量の増加・再検査を繰り返す。輻輳解消後の対処量を上流側の最低対処量に設定し、対処量と最低対処量を含む輻輳対処メッセージを下流ASに送信し、その値に基づき下流ASの対処量を再設定する。分散型のアーキテクチャにより、上記の局所的なリソース割り当て量の調整を下流AS方向および上流AS方向に繰り返し行うことで、インターネット全体でAS間リンクの輻輳を回避しつつ、防御機能のリソース使用率が平準化された統一的なリソース割り当てを実現する。
以下の実施例では、Autonomous System(以降、AS)間でのDDoS攻撃情報の共有及び各ASを標的とするDDoS攻撃に対して、各ASの防御機能のリソースをどれだけ割り当てるかを調整する役割を担う連携対処装置を開示する。また、連携対処装置間のアーキテクチャとして、例えば、非特許文献2のアーキテクチャなど、近隣ASの連携対処装置とのみ直接通信を行う分散型のアーキテクチャを適用することでスケーラビリティを向上させ、局所的な調整を繰り返すことで、インターネット全体で統一的なリソース割り当てを実現する。
標的となったAS(標的AS)で攻撃を検知した場合、まず、標的ASから他のASとの連携対処を開始し、連携対処装置を介して、上流AS方向に標的IPアドレスを含む対処要求メッセージを伝搬し、要求を受信したASにおいて、随時、標的宛通信への対処とさらに上流ASへの対処要求の伝搬を繰り返していくことで、防御機能のリソースの許す限り、攻撃元に近いASでの攻撃対処を実現する。次に、各ASの防御機能のリソース使用率を平準化するために、最上流のASから下流AS方向に調整要求メッセージを伝搬していき、要求を受信したAS(下流AS)とその連携先の上流AS間で防御機能のリソース使用率を平準化するための最適化問題を解くことにより、各ASで対処する標的宛通信量を調整する。この時、連携先の上流ASにおいて、当該ASと隣接AS間リンクの利用可能帯域量と当該AS内へ流入する標的宛通信量に基づき、当該ASと隣接AS間のリンク輻輳を回避するために上流ASで最低限対処しなければならない標的宛通信量(最低対処量)を算出し、調整要求に含めて下流ASに伝搬し、上述した最適化問題の制約条件として使用する。また、調整を行うASが直接接続されていない場合は、上流ASにおいて、上述した最適化問題の結果得られたリソース割り当て量での対処を実施後、連携機能を保有する上流AS-下流AS間で検査パケットを送信することで、上流AS-下流AS間でのリンク輻輳の発生の有無を検査する。輻輳している場合は、上流ASの対処量を増加させて輻輳発生の有無の再検査を行い、輻輳が解消されるまで対処量の増加・再検査を繰り返す。輻輳解消後の対処量を上流側の最低対処量に設定し、対処量と最低対処量を含む輻輳対処メッセージを下流ASに送信し、その値に基づき下流ASの対処量を再設定する。分散型のアーキテクチャにより、上記の局所的なリソース割り当て量の調整を下流AS方向および上流AS方向に繰り返し行うことで、インターネット全体でAS間リンクの輻輳を回避しつつ、防御機能のリソース使用率が平準化された統一的なリソース割り当てを実現する。
図1に、本発明の一実施形態におけるネットワーク(インターネット)の構成図を示す。
本実施形態では、ネットワーク(インターネットに相当)を構成する複数の組織ネットワーク(AS)が本発明の連携対処装置を保有する状況を想定している。また、一例として、AS1(ISP網等)内のシステムが、他のAS内に存在する攻撃者の端末からのDDoS攻撃の標的(標的システム)となった場合を想定し、他のASとの間で、DDoS攻撃情報の共有と連携対処時のパラメータ調整(パラメータは、ある標的への攻撃に対して、各ASの防御機能のリソースをどれだけ割り当てて対処するかの量)等に必要な情報とを共有し、それらの情報を用いて、他ASとの間で対処パラメータを調整する方法を説明する。
図1に示されるように、任意数のAS(AS1~AS7など)がネットワークに含まれ、これらのASが相互接続されることによって、インターネットを模したネットワークのネットワークトポロジが構成される。
連携対処装置100は、後述されるように、各AS間でDDoS攻撃情報等をやり取りし、やり取りした情報に基づき、DDoS攻撃に対処するためのパラメータを調整すると共に、他のASに対してDDoS攻撃の対処を要求する。また、DDoS攻撃に対処するためのパラメータとは、例えば、AS1, AS2及びAS5で分担してある標的宛の攻撃に対処する場合、各ASで標的宛通信量を何Gbpsずつmitigation装置50に引き込んで対処するかを示す量、フィルタリングする場合に各ASで何Gbpsまで標的宛通信を減らすかを示す量(フィルタリングの閾値)などである。これらの対処パラメータは、各ASを流れる標的宛通信量や各ASが保有するmitigation装置50の容量(リソース量)、AS間リンクの利用可能帯域量などの情報に基づく計算やAS間リンク輻輳の検査・対処処理を通じて調整される。
AS1内の任意のシステムがDDoS攻撃の被害に遭っている場合、AS1は、連携対処装置100を保有する近隣のAS(AS1の場合、AS2とAS5。以降、連携先AS)の連携対処装置100に対して、自AS番号や標的システムのIPアドレス(標的システムが複数存在する場合は、IPアドレスのリスト)等の情報を含むDDoS攻撃情報と攻撃への対処要求等を送信する。また、連携先ASの連携対処装置100は、AS1の連携対処装置100から受信した情報、BGP(Border Gateway Protocol)等の経路情報、自身の連携先AS情報に基づき、標的宛通信が自網内からメッセージの送信元AS(AS1)に他の連携先ASを経由せずに流れているかの情報の取得、標的宛通信への対処等を実施し、メッセージの送信元AS(AS1)に対して、取得した情報や対処状況等を応答する。さらに、自網内からメッセージの送信元ASに標的宛通信が流れている場合は、メッセージの送信元(AS1)を除く、他の連携先AS(AS2の場合は、AS5とAS7)に、DDoS攻撃情報と攻撃への対処要求を送信する。これを上流側AS方向に繰り返していくことで、攻撃元近くのASまでDDoS攻撃情報と対処要求が伝搬される。ここで、各ASは、連携先ASのDDoS連携対処装置100との通信に必要な連携先ASの連携対処装置100のIPアドレス等の情報を予め保有していることを想定している。また、各ASの連携先ASの設定は、本仕組みを各ASに導入する際などに、BGPの経路情報やインターネットのトポロジ情報に基づき設定されることを想定している。なお、標的ASから連携対処を開始する(標的ASから他のASに攻撃情報や対処要求等を送信する)タイミングは任意である。例えば、自AS内のシステムを標的とする攻撃を検知した際に連携対処を開始する他、攻撃を検知した場合には、まず自AS内の防御機能のみで対処を行い、自AS内の防御機能のリソースやネットワーク帯域が逼迫した際に連携対処を開始することや、攻撃を検知してから一定時間毎等に連携対処を実施することも想定される。
mitigation装置50は、例えば、非特許文献1に記載される装置であってもよく、受信したDDoS攻撃情報等に基づき標的宛通信に対する対処を実施する。なお、DDoS攻撃に対処する技術としては、mitigation装置50のほかに、ルータ等の転送装置によるACL(Access Control List)等を利用した攻撃通信のフィルタリング、攻撃の標的宛通信の帯域制限(レートリミット等)等も想定され、本発明は、これらの対処技術との組み合わせも可能である。後述の本実施形態における動作手順では、mitigation装置50を利用して連携対処する場合の具体的な動作手順を説明する。
次に、図2を参照して、本発明の一実施形態による連携対処装置100を有するASの構成を説明する。以下において、AS1に着目して本実施形態を説明するが、本実施形態が他のASに適用可能であることは当業者に容易に理解されるであろう。
図2に示されるように、当該ASは、mitigation装置50、連携対処装置100、トラヒック情報収集・DDoS攻撃検知装置200、ネットワーク制御装置300及びパケット転送装置400を有する。
トラヒック情報収集・DDoS攻撃検知装置200は、ルータ等のパケット転送装置400から定期的にフロー情報(送受信IPアドレス・送受信ポート番号・プロトコル番号等の組からなるフロー毎の通信量等)を収集し、収集したフロー情報を分析することで特定の宛先へのDDoS攻撃の発生を検知する。また、攻撃検知時等の任意のタイミングで、自ASのDDoS連携対処装置100に対して、標的システムのIPアドレスを含む攻撃検知メッセージを送信する。攻撃検知メッセージに含まれる標的IPアドレスは、標的のシステムが複数存在する場合や標的システムが複数のIPアドレスを保有する場合には、複数個通知される可能性もある。なお、トラヒック情報収集・DDoS攻撃検知装置200は、例えば、非特許文献3に記載されるSAMURAI等によって実現されてもよい。さらに、トラヒック情報収集・DDoS攻撃検知装置200は、DDoS攻撃が発生した際、又は任意のタイミングで、標的のIPアドレス宛通信量、mitigation装置50の最大リソース量、mitigation装置50の利用可能なリソース量、隣接ASとの間のリンク(AS間リンク)の利用可能帯域量等を測定し、任意のテーブルに格納すると共に、自ASの連携対処装置100に通知する機能を有する。
mitigation装置50は、非特許文献1に説明される装置のように、DDoS攻撃対処に特化した装置であり、ある宛先に対する通信の中から、攻撃通信と正常通信とを区別して、攻撃通信のみを遮断するといった対処を行うことができる。前述の通り、DDoS攻撃対処の手段はこの他にも想定できるが、本実施形態では、DDoS攻撃対処のための手段の一例として、ASがmitigation装置50を保有する場合について記載している。
ネットワーク制御装置300は、ルータ等のパケット転送装置400を制御する機能を有する。ネットワーク制御装置300は、例えば、SDN(Software-Defined Networking)コントローラであってもよい。また、ネットワーク制御装置300は、連携対処装置100と通信し、連携対処装置100から通知された情報(標的のIPアドレスの一覧、対処方式、対処のためのパラメータ等)に基づき、パケット転送装置400を制御することで、mitigation装置50に標的宛の通信を迂回させたり、各パケット転送装置400にフィルタリングを設定したりといった制御や適用中のトラヒック制御等を終了するための制御を行う。mitigation装置50を利用して対処する場合の具体例を説明すると、ネットワーク制御装置300は、BGP(Border Gateway Protocol)又はOpenFlow等を利用し、各パケット転送装置400の保有する標的宛パケットの転送に関わるルーティング情報を一時的に書き換える(転送先をmitigation装置50のIPアドレスに変更する)ことで、標的宛パケットのみをmitigation装置50に迂回させて検査・対処することができる。
連携対処装置100は、ネットワーク制御装置300と通信し、標的のIPアドレスのリストを含むDDoS攻撃情報、DDoS攻撃の対処方式(例えば、mitigation装置50を利用)、対処する通信量(mitigation装置50に引き込む標的宛通信量)等を通知する。また、連携対処装置100は、トラヒック情報収集・DDoS攻撃検知装置200と通信し、標的のIPアドレス宛の通信量、mitigation装置50の最大リソース量や利用可能なリソース量、AS間リンクの利用可能帯域量等を取得する。また、攻撃検知メッセージを受信した場合、連携対処装置100は、攻撃検知メッセージに含まれる標的IPアドレスを、図5を参照して後述される標的IPアドレステーブルに格納する。さらに、DDoS連携対処装置100は、他のASの連携対処装置100と通信し、DDoS攻撃情報(標的ASを識別可能な番号(例えばAS番号)、標的IPアドレスの一覧等)や連携対処に必要な情報(各ASを流れる標的IPアドレス宛通信量を宛先AS単位で合算した値、利用可能なmitigation装置50のリソース量、各ASのmitigation装置50で対処する標的宛通信量、AS間リンク輻輳を回避するためにそのASで最低限対処しなければならない標的宛通信量(最低対処量)といった対処パラメータ等)をやり取りする。ここで、DDoS攻撃情報は、前記情報のみに限定されず、連携して対処する際のやり方に応じて、攻撃タイプ、攻撃元のIPアドレス情報、mitigation装置50で検査後のパケットを元のASまで転送するためのトンネル情報等を含むものであってもよい。また、連携対処装置100は、他のASの連携対処装置100との間でAS間のリンク輻輳の発生の有無を検査するためのパケットをやり取りし、平常時のRTT(Round Trip Time)からの遅延の増大やパケットのドロップの有無等に基づき、輻輳発生を検知する機能を有する。
連携対処装置100は、典型的には、サーバにより実現されてもよく、例えば、バスを介し相互接続されるドライブ装置、補助記憶装置、メモリ装置、プロセッサ、インタフェース装置及び通信装置から構成される。連携対処装置100における後述される各種機能及び処理を実現するプログラムを含む各種コンピュータプログラムは、CD−ROM(Compact Disk−Read Only Memory)、DVD(Digital Versatile Disk)、フラッシュメモリなどの記録媒体によって提供されてもよい。プログラムを記憶した記録媒体がドライブ装置にセットされると、プログラムが記録媒体からドライブ装置を介して補助記憶装置にインストールされる。但し、プログラムのインストールは必ずしも記録媒体により行う必要はなく、ネットワークなどを介し何れかの外部装置からダウンロードするようにしてもよい。補助記憶装置は、インストールされたプログラムを格納すると共に、必要なファイルやデータなどを格納する。メモリ装置は、プログラムの起動指示があった場合に、補助記憶装置からプログラムやデータを読み出して格納する。プロセッサは、メモリ装置に格納されたプログラムやプログラムを実行するのに必要なパラメータなどの各種データに従って、後述されるようなDDoS連携対処装置100の各種機能及び処理を実行する。インタフェース装置は、ネットワーク又は外部装置に接続するための通信インタフェースとして用いられる。通信装置は、インターネットなどのネットワークと通信するための各種通信処理を実行する。
しかしながら、連携対処装置100は、上述したハードウェア構成に限定されるものでなく、他の何れか適切なハードウェア構成により実現されてもよい。なお、本実施例で示す構成は一例であり、例えば、トラヒック情報収集・DDoS攻撃検知装置200やネットワーク制御装置300は、連携対処装置100に組み込まれてもよい。
次に、図3を参照して、本発明の一実施形態による連携対処装置を詳細に説明する。図3は、本発明の一実施形態による連携対処装置の構成を示すブロック図である。
図3に示されるように、連携対処装置100は、処理部110、記憶部130及び通信部140を有する。
処理部110は、メッセージ受付部111、攻撃検知メッセージ処理部112、対処要求メッセージ処理部113、対処応答メッセージ処理部114、調整要求メッセージ処理部115、更新要求メッセージ処理部116、輻輳対処メッセージ処理部117、対処終了要求メッセージ処理部118、輻輳検査部119、パラメータ調整部120、攻撃対処設定部121及び対処終了判断部122を有する。
記憶部130は、自AS及び連携先ASのDDoS攻撃に関する情報を記憶する。具体的には、記憶部130は、標的IPアドレス情報テーブル、攻撃情報テーブル、連携先AS情報テーブル、mitigation装置情報テーブル及びAS間リンク情報テーブルを有する。
通信部140は、他のASの連携対処装置100、自ASのトラヒック情報収集・DDoS攻撃検知装置200及び自ASのネットワーク制御装置300と通信する。また、パケット転送装置400やmitigation装置50から直接情報を取得したり、制御したりする場合には、通信部140はこれらの装置とも通信する。
メッセージ受付部111は、トラヒック情報収集・DDoS攻撃検知装置200や他の連携対処装置100からの各種メッセージを待ち受け、受信したメッセージの種類に応じて、対応するメッセージ処理部に振り分ける機能を有する。メッセージ受付部111は、受信したメッセージをキューに格納し、例えば、FIFO方式で対応するメッセージ処理部に転送する。メッセージは、攻撃検知メッセージ、対処要求メッセージ、対処応答メッセージ、調整要求メッセージ、更新要求メッセージ、輻輳対処メッセージ、対処終了要求メッセージの7種類存在する。
攻撃検知メッセージ処理部112は、トラヒック情報収集・DDoS攻撃検知装置200からの攻撃検知メッセージに対する処理を行う。図4に示されるように、ステップS101において攻撃検知メッセージを受信した場合、攻撃検知メッセージ処理部112は、ステップS102において、図5に示される自ASの標的IPアドレス情報テーブルに、攻撃検知メッセージに含まれる標的IPアドレスを追加する。また、攻撃検知メッセージ処理部112は、図6に示される攻撃情報テーブルに自ASを標的とする攻撃のレコードが存在しない場合は、新規作成する。さらに、攻撃検知メッセージ処理部112は、トラヒック情報収集・DDoS攻撃検知装置200を介して、標的IPアドレス情報テーブルに含まれるIPアドレス宛通信量を取得し、その通信量の和(「標的AS単位の攻撃通信量の合計値」)を自身の攻撃情報テーブルに格納する。本処理及び以降の同等の処理においては、個々の宛先IPアドレス単位で指定して通信量を取得する場合、トラヒック情報収集・DDoS攻撃検知装置200の負荷が大きくなったり、取得に時間がかかったりする可能性があるため、例えば、ISPで平常時から取得していることが想定されるレベルのフローの情報(通信量の多い上位いくつかのフローの情報のみが保存)を参照し、その中に受信した標的IPアドレスの一覧に含まれるIPアドレス宛の通信量情報があれば、その情報のみを利用することも想定される。
また、攻撃検知メッセージ処理部112は、次の2つの処理を実施する。1. 攻撃対処設定部121を介して、標的IPアドレスの一覧に含まれるアドレス宛通信を自AS内のmitigation装置50に引き込んで対処するように設定する。2. 図7に示される自身の連携先AS情報テーブルを参照し、各連携先ASの連携対処装置100に対して、標的AS番号(自身のAS番号)、標的IPアドレスリスト(データ内容全て、またはデータサイズを削減するために過去に送信済みの場合は追加分のみ)、要求元AS番号(自身のAS番号)を含む対処要求メッセージを送信する。なお、前記2の処理の前に、標的宛攻撃量の合計値と事前設定された閾値を比較し、閾値未満の場合は、2の処理を実施せずに自ASのみで攻撃に対処することも想定される。
対処要求メッセージ処理部113は、他の連携対処装置100からの対処要求メッセージに対する処理を行う。図8に示されるように、ステップS201において対処要求メッセージを受信した場合、対処要求メッセージ処理部113は、トラヒック情報収集・DDoS攻撃検知装置200を介して、受信した標的IPアドレスリストに含まれるIPアドレス宛通信量を取得する。また、ステップS202において、対処要求メッセージ処理部113は、BGPの経路情報等を用いることで、自ASから対処要求メッセージの送信元ASまで標的宛通信が流れているかの判断を行う。判断の結果、標的宛通信が流れていない場合(S202:no)、対処要求メッセージ処理部113は、ステップS204において、標的宛通信量を0として登録し、要求元ASに標的AS番号、自身のAS番号、対処状況(Status=対処不可)を含む対処応答メッセージを送信する。前記判断の結果、標的宛通信が流れている場合(S202:yes)、対処要求メッセージ処理部113は、対処要求メッセージに含まれる標的AS番号、標的IPアドレスリスト、メッセージの送信元のAS番号(このASを下流ASまたは親ASとする)、取得したリストのIPアドレス宛通信量を標的AS単位で合算した値(標的AS単位の攻撃通信量の合計値)を自身の攻撃情報テーブルに登録する。また、対処要求メッセージ処理部113は、攻撃対処設定部121を介して、標的IPアドレスの一覧に含まれるアドレス宛通信を自AS内のmitigation装置50のリソース上限まで引き込んで対処するように設定する(標的宛通信量がmitigation装置50の利用可能リソース量より大きい場合は、利用可能リソース量まで引き込むように対処量を設定し、小さい場合は、対処量を指定せずに引き込みを設定する)。ここで、mitigation装置50のリソース上限値は、トラヒック情報収集・DDoS攻撃検知装置200が定期的に収集し、図9に示されるmitigation装置情報テーブルに登録した値を参照するほか、トラヒック情報収集・DDoS攻撃検知装置200に情報の取得を指示して、最新の情報を取得することが想定される。次に、対処要求メッセージの要求元ASに対して、標的AS番号、自身のAS番号、対処状況(Status=対処中)を含む対処応答メッセージを送信する。さらに、他のASから自ASに対して標的宛通信が流入している場合(S205:no)、対処要求メッセージ処理部113は、自ASの連携先AS情報テーブルに含まれる連携先AS(要求元ASを除く)の連携対処装置100に対して、受信したメッセージに含まれる標的AS番号、標的IPアドレスの一覧、及び自身のAS番号を含む対処要求メッセージを送信する。なお、他のASから自ASに対して標的宛通信が流入していない場合(S205:yes)、対処要求メッセージ処理部113は、ステップS206において、次の処理を実施する。1. 攻撃情報テーブルの自ASに関する情報の最上流ASフラグをTrueに設定する。2. 対処終了判断部122に当該攻撃の標的AS番号を通知し、当該攻撃に対する終了を監視するように設定する。 3. 標的AS単位の攻撃通信量の合計値、mitigation装置50の利用可能リソース量、対処中の標的AS宛通信量、要求元ASとの間のリンクの利用可能帯域量を取得し、標的AS宛攻撃に関する最低対処量を算出する。さらに、各テーブルの情報が最新でない場合は、それらの情報を攻撃情報テーブル、mitigation装置情報テーブル、図10に示されるAS間リンク情報テーブルに登録する。4. 親に、標的AS番号(受信メッセージに含まれるものと同じ値を設定)、自身のAS番号、標的AS単位の攻撃通信量の合計値、mitigation装置50の利用可能リソース量、対処中の標的AS宛通信量、最低対処量を含む調整要求メッセージを送信する。
対処応答メッセージ処理部114は、他の連携対処装置100からの対処応答メッセージに対する処理を行う。図11に示されるように、ステップS301において対処応答メッセージを受信した場合、対処応答メッセージ処理部114は、そのメッセージに含まれる標的AS番号を見て、攻撃情報テーブル内の対応する行の連携先ASとして、対処応答メッセージの送信元AS番号を登録する。また、Status=対処中の場合(S302:yes)、対処応答メッセージ処理部114は、ステップS303において、対処応答の送信元ASをその標的宛攻撃対処の際の自身の子として登録する。
調整要求メッセージ処理部115は、他の連携対処装置100からの調整要求メッセージに対する処理を行う。図12に示されるように、ステップS401において調整要求メッセージを受信した場合、調整要求メッセージ処理部115は、ステップS402において、受信メッセージに含まれる標的AS番号を見て、攻撃情報テーブル内の対応する行の他ASに関する情報(メッセージ送信元AS番号に対応する部分)を、受信した情報で更新する。具体的には、調整要求メッセージ処理部115は、標的AS単位の攻撃通信量の合計値、対処中の標的AS宛通信量、対処量の最低値を更新する。また、連携先AS情報テーブルのmitigation装置50の利用可能リソース量(メッセージの送信元ASの値)を更新する。
また、対処要求の送信先全てから対処応答を受信済みかつ全ての子からの調整要求メッセージを受信済みの場合(S403:yes)、調整要求メッセージ処理部115は、ステップS404において、標的AS単位の攻撃通信量の合計値、mitigation装置50の利用可能リソース量、対処中の標的AS宛通信量を取得し、各テーブルの情報が最新でない場合は、それらの情報を攻撃情報テーブル、mitigation装置情報テーブルに登録する。その後、調整要求メッセージ処理部115は、取得した自ASの情報と、受信済みの連携先ASの情報を用いて、自身と子との間で後述のパラメータ調整部120によるパラメータ調整処理を実施する。パラメータ調整処理の結果得られた「各ASで対処する標的AS宛通信量」を用いて、mitigation装置情報テーブルの利用可能リソース量の値(自ASで対処する通信量分減算)、攻撃情報テーブルの自ASに関する情報の標的AS単位の攻撃通信量の合計値(子で対処する通信量分減算)と自ASと連携先(=子)ASの情報内の対処中の通信量の値(各ASで対処する通信量の値を設定)を更新する。また、自ASが標的ASでない場合は、調整要求メッセージ処理部115は、その標的AS宛通信に関する最低対処量を、更新した標的AS単位の攻撃通信量の合計値とAS間リンクの利用可能帯域量から算出して更新し、自身の親の連携対処装置100に、調整要求メッセージを送信する。調整要求メッセージ処理部115は、自身の子の連携対処装置100に、標的AS番号(受信メッセージの標的AS番号と同じ値を設定)、自身のAS番号、メッセージの宛先ASで対処する標的AS宛通信量(調整の結果得られた値)、メッセージの宛先ASで対処する標的AS宛通信量(調整の結果得られた値)から調整に用いたメッセージの宛先ASで対処中の標的AS宛通信量を減算した値(標的AS宛通信に対する対処量の差分値)、Flag=fromParentを含む、更新要求を送信する(以降、Flag=fromParentを含む更新要求は、上記と同じ情報を含む)。なお、標的AS宛通信に対する対処量の差分値は、分散処理によるメッセージ順序逆転等に伴い発生する可能性のある値ずれを補正するために利用する。ここでは、メッセージの送信元で差分値を計算して送信する例を示しているが、調整に用いた対処量をそのまま通知して、受信側で差分値等を計算して補正しても良い。
更新要求メッセージ処理部116は、他の連携対処装置からの更新要求メッセージに対する処理を行う。まず、図13に示されるように、Flag=fromParentを含む更新要求メッセージ(ステップS501)を受信した場合(ステップS502において=fromParent)を説明する。
親が隣接ASであり(S504:yes)、自ASの最上流フラグがTrueの場合(S505:yes)、更新要求メッセージ処理部116は、ステップS506において、受信したメッセージに含まれる標的AS宛通信に対する対処量の差分値(メッセージの送信元ASによる最新の調整で算出された標的AS宛通信に対してメッセージの受信ASで対処する通信量からメッセージの送信元ASが調整に用いたメッセージの受信ASで対処中の標的AS宛通信量を減算した値。つまり、以前の調整から追加で対処を要求された量)を用いて、mitigation装置情報テーブルの利用可能リソース量(差分値分減算)、攻撃情報テーブルの自ASで対処中の標的AS宛通信量(差分値分加算)を更新して攻撃への対処を実施する。
また、親が隣接ASであり(S504:yes)、自ASの最上流フラグがTrueでない場合(S505:no)、更新要求メッセージ処理部116は、ステップS507において、子との間で後述のパラメータ調整部120によるパラメータ調整処理を実施する。さらに、更新要求メッセージ処理部116は、パラメータ調整処理の結果得られた「各ASで対処する標的AS宛通信量」を用いて、mitigation装置情報テーブルの利用可能リソース量の値(自ASで対処する通信量分減算)、攻撃情報テーブルの自ASに関する情報の標的AS単位の攻撃通信量の合計値(他ASで対処する通信量分減算)と自ASと他ASの情報内の対処中の通信量の値(それぞれのASで対処する通信量の値を設定)を更新し、攻撃への対処を実施する。また、更新要求メッセージ処理部116は、標的AS宛通信に対する最低対処量を、更新した標的AS単位の攻撃通信量の合計値とAS間リンクの利用可能帯域量から算出して更新する。また、更新要求メッセージ処理部116は、親の連携対処装置100に、標的AS番号(受信メッセージに含まれるものと同じ値を設定)、自身のAS番号、標的AS単位の攻撃通信量の合計値、mitigation装置50の利用可能リソース量、対処中の標的AS宛通信量、最低対処量、Flag=fromChildを含む、調整要求メッセージを送信する(以降、Flag=fromChildを含む更新要求は、上記と同じ情報を含む)。さらに、更新要求メッセージ処理部116は、子の連携対処装置100に、更新要求メッセージ(Flag=fromParent)を送信する。
次に、親が隣接ASではなく(S504:no)、受信メッセージに含まれる要求された対処量が自身の最低対処量よりも大きい場合(S508:yes)を説明する。自ASの最上流フラグがTrueの場合(S509:yes)、上記の親が隣接ASであり、自ASの最上流フラグがTrueの場合と同様に、更新要求メッセージ処理部116は、ステップS510において、テーブルの情報を更新し、対処を実施する。その後、更新要求メッセージ処理部116は、輻輳検査部119を介して、自身と親の間のリンクで輻輳が発生しているかの検査を実施する。輻輳検査部119は、他の連携対処装置100の輻輳検査部119からの検査パケットを受信すると、それに対する応答パケットを返送する機能を有する。具体的な輻輳検査の方法としては、自身と親の連携対処装置100間で検査パケットを送信して応答を待ち、パケットのドロップが発生している場合や、RTT(Round Trip Time)の値を見て平常時と比較して遅延が発生している場合に、輻輳が発生していると判定することが考えられる。遅延で判断する場合は、連携先ASの連携対処装置100との間の平常時のRTTの情報を保有していることが前提となる。なお、検査には、ICMP(pingコマンド)等が利用可能と想定されるが、プロトコル等は、これに限定されない。また、輻輳検査部119は、連携対処装置100内の一処理部として図示しているが、連携対処装置100とは別の装置として実装しても良い。輻輳検査の結果、自身と親の間のリンクで輻輳が発生している場合、更新要求メッセージ処理部116は、輻輳検査部119を介して、自身の対処量を任意の量増加させ、再度輻輳検査を実施する。子の対処量の増加と、輻輳検査を輻輳が解消されるまで繰り返し、自身の対処量が元よりも増加している場合に、更新要求メッセージ処理部116は、輻輳検査部119を介して、自身の最低対処量として増加後の対処量を設定し、各テーブルの値(攻撃情報テーブルの自ASの対処中の通信量、最低対処量、mitigation装置情報テーブルの利用可能リソース量)を更新する。その後、更新要求メッセージ処理部116は、輻輳検査部119を介して、自身の親の連携対処装置100に、標的AS番号、自身のAS番号、標的AS単位の攻撃通信量の合計値、mitigation装置の利用可能リソース量、対処中の標的AS宛通信量(増加前)、対処中の標的AS宛通信量(増加後)、最低対処量を含む、輻輳対処メッセージを送信する。なお、輻輳解消の際に増加させる量の決定方法としては、元の対処量×γ(0<γ<1。事前に運用者等によって設定)分だけ加算していき、自ASを流れる標的宛通信量を超える場合は、通信量を上限にする等が考えられる。前記方法は割合で加算していく方法だが、他にも事前に設定した量(例えば1Gbpsずつ)を加算していく等の方法も想定され、加算量の決定方法は任意である。
自ASの最上流フラグがTrueでない場合(S511:no)、上記の親が隣接ASであり、自ASの最上流フラグがTrueでない場合と同様に、更新要求メッセージ処理部116は、自身と子で対処する標的宛通信量を調整し、テーブルの情報を更新後、対処を実施する。その後、更新要求メッセージ処理部116は、輻輳検査部119を介して、前記と同様の輻輳検査・輻輳解消処理を実施し、輻輳検知に伴い輻輳を解消した場合は、自身の対処量や最低対処量等を更新した後に、自身の親に輻輳対処メッセージを送信する。また、親に更新要求(Flag=fromChild)、子に更新要求(Flag=fromParent)をそれぞれ送信する。
次に、Flag=fromChildを含む更新要求メッセージを受信した場合(S502=fromChild)を説明する。この場合は、更新要求メッセージ処理部116は、ステップS503において、前述の更新要求(Flag=fromParent)受信時の親が隣接ASかつ自ASが最上流ASでない場合とほぼ同じ処理を実行し、自ASが標的ASの場合のみ、最低対処量の更新と親への更新要求メッセージの送信を実施しない。
輻輳対処メッセージ処理部117は、他の連携対処装置からの輻輳対処メッセージに対する処理を行う。図14に示されるように、ステップS601において本メッセージを受信した場合、輻輳対処メッセージ処理部117は、ステップS602において、メッセージに含まれる子の「対処量の更新後の値-更新前の値」分、攻撃情報テーブルの自身の対処量と自身へ流入する標的宛通信量を減算し、自ASのmitigation装置情報テーブルの利用可能リソース量にその分加算する。また、輻輳対処メッセージ処理部117は、子の対処量を受信した更新後の値に更新し、子の最低対処量を受信した最低対処量の値に更新する。なお、本処理において、自身の対処量がマイナスになる場合は、マイナスになった分の量を保有しておき、自身の割り当てが増えたタイミングでその分減算することで補正することが考えられる。
なお、本実施例では、輻輳対処メッセージを受信したASでは、自身と子の対処量等の値の更新までしか実施していないが、値の更新後に、親と子に更新要求を送信することで、対処量を再度調整しても良い。この場合、AS間でやり取りされるメッセージ数は増えるが、mitigation装置50の負荷分散性能は向上する可能性がある。
対処終了要求メッセージ処理部118は、対処終了判断部122及び他の連携対処装置100からの対処終了要求メッセージに対する処理を行う。図15に示されるように、ステップS701において対処終了要求メッセージを受信し、全ての子から対処終了要求を受信した場合(S702:yes)、対処終了要求メッセージ処理部118は、ステップS703において、ステップ対処終了要求メッセージに含まれる標的AS番号に基づき、トラヒック情報収集・DDoS攻撃検知装置によって定期的に更新される攻撃情報テーブルの自ASに関する情報の当該AS宛攻撃の通信量の合計値と事前設定された閾値を比較する。その結果、閾値を下回っていた場合(S703:yes)、対処終了要求メッセージ処理部118は、ステップS704において、攻撃対処設定部121を介して、自AS内での当該標的AS宛攻撃対処を終了する。また、対処終了要求メッセージ処理部118は、対処終了判断部122に標的AS番号を通知し、当該攻撃への監視を終了する。さらに、対処終了要求メッセージ処理部118は、下流ASに標的AS番号を含む対処終了要求メッセージを送信する。他方、閾値以上であった場合(S703:no)、対処終了要求メッセージ処理部118は、ステップS706において、対処終了判断部122を定期的に呼び出すタイマを設定すると共に、自ASの最上流フラグをTrueに設定する。
パラメータ調整部120は、他の処理部によって呼び出され、攻撃情報テーブル、連携先AS情報テーブル、mitigation装置情報テーブル、AS間リンク情報テーブルに格納された情報(自ASおよび連携先ASの標的AS単位の攻撃通信量の合計値、対処中の通信量、対処量の最低値、mitigation装置50の利用可能リソース量、AS間リンクの利用可能帯域量)に基づき、任意のAS宛の攻撃に対して、自ASと連携先AS間で対処する通信量を算出する機能を有する。ここでは、標的AS単位で攻撃をまとめて、各ASで対処する通信量を調整することで、標的IPアドレス単位で1つずつ調整する場合と比較して、必要な調整回数を削減できる。なお、後述の実施例では、各ASがmitigation装置50を利用して対処する際に、AS間リンクが輻輳しない範囲内で、といった制約条件のもと、各ASのmitigation装置50の使用率ができるだけ均一になるように、各ASで対処する通信量を調整する方法について説明する。しかし、AS間リンク輻輳の回避と各ASのmitigation装置50のリソース負荷分散を同時に実現する最適化問題の表現方法については、後述のものに限定されない。
攻撃対処設定部121は、他の処理部によって呼び出され、標的IPアドレス情報テーブル、攻撃情報テーブルを参照することで、標的IPアドレスの一覧、対処方式、自ASで対処する標的AS宛通信量を取得し、これらの情報をネットワーク制御装置300に通知する機能を有する。前述のとおり、ネットワーク制御装置300は、受信した前記情報に基づき、標的AS宛通信(の内、標的IPアドレスの一覧に含まれるIPアドレス宛通信)を、通知された通信量分mitigation装置50に引き込んで対処する(または適用中の制御を解除する)。なお、他の処理部による攻撃対処設定部121の呼び出しのタイミングは任意であり、例えば、各種メッセージを受信したタイミング、メッセージ処理部によるパラメータ調整処理が終了したタイミングで呼び出されることが想定される。
対処終了判断部122は、他の処理部によって呼び出され、トラヒック情報収集・DDoS攻撃検知装置200によって定期的に更新される攻撃情報テーブルの自ASに関する情報の標的AS単位の攻撃通信量の合計値と事前設定された閾値を定期的に比較し、その値が閾値を下回った場合に、自ASのDDoS連携対処装置100のメッセージ受付部110に対して、標的AS番号を含む対処終了要求メッセージを送信する。ここで、対処終了判断の方法としては、前記閾値を用いた定期的な比較のほか、対処要求メッセージ等にその対処の有効期限を示すライフタイムを付与して送信し、そのライフタイムが0になった場合に、自身のメッセージ受付部に対処終了要求メッセージを送信して、対処終了処理を行う等の方法も想定される。特に、ライフタイムで対処終了を管理する場合、AS間での対処終了メッセージの送受信は発生せず、各AS内で完結して特定のAS宛攻撃への対処終了を実施することも想定される。
次に、図16〜18を参照して、本発明の一実施形態による連携対処装置100の間の動作手順及び各ASがmitigation装置50を保有している場合に、複数AS間で連携対処を行う際の対処ロジックの一例を説明する。図16〜18は、本発明の一実施形態による連携対処装置間の動作手順を示すシーケンス図である。本対処ロジックでは、複数箇所が同時に攻撃される場合にも対処不能にならないように、可能な限り各ASのmitigation装置50の使用率が均一になるように、かつ、AS間リンクの輻輳を回避するように、各mitigation装置50で処理する通信量を調整しながら対処を実施する。
ここでは、下流ASが、上流ASのmitigation装置50で検査済みのパケットと未検査のパケットとを区別可能であることを前提とし、各ASでは、標的宛かつ未検査のパケットのみを対象に、指定された通信量分をmitigation装置50に引き込んで対処する。なお、検査済みのパケットと未検査のパケットとを区別可能にする方法としては、例えば、OpenFlow等を利用して、上流ASにおいて、mitigation装置50で検査済みの標的宛パケットの宛先IPアドレスを、被害AS内の平常時は使用していない任意のIPアドレスに書き換え、被害ASに到達後に、元のIPアドレスに戻すといった方法や、GRE(Generic Routing Encapsulation)等のトンネリング技術を利用して、被害ASの任意のルータ等までカプセル化して転送するといった方法が考えられるが、これらの方法に限定するものではない(どちらの方法でも、上流ASのmitigation装置50で検査済みの場合は、途中のASでは、標的とは異なる宛先IPアドレスのパケットに見えるため、mitigation装置50への二重引き込みを回避できる)。この場合、被害ASのDDoS連携対処装置100と対処を実施するASのDDoS連携対処装置100との間で、書き換えに利用するIPアドレス情報、トンネルの始点、終点となるノードのIPアドレスを追加で共有する必要があり、例えば、対処要求メッセージや調整要求メッセージに含めて共有することが考えられる。以降では、AS1のトラヒック情報収集・DDoS攻撃検知装置200による標的システムへの攻撃の検知をトリガーとして、自動的にAS間での連携対処が行われる際の動作手順を説明する。ここでは、各ASの連携対処装置100は、トラヒック情報収集・DDoS攻撃検知装置200や他のASの連携対処装置100からのメッセージを常に待ち受け、メッセージを受信した際には、そのメッセージに対する処理を実施する。また、あるメッセージの処理中に他のメッセージを受信した場合は、受信したメッセージをキューに貯めていき、最も古いメッセージから1つずつ処理を実施する場合を記載している。また、以下の実施例では、1つのAS(AS1)が標的となっている場合について記載しているが、複数のASが同時に攻撃される場合にも、それぞれの攻撃に並列で対処することができる。さらに、連携対処装置100は、他の連携対処装置100にメッセージを送信する際に、非同期で動作する(すなわち、送信したメッセージに対する応答を待たずに他の処理を実行する)。
[攻撃検知メッセージ処理(AS1)]
ステップS801において、AS1の連携対処装置100は、AS1のトラヒック情報収集・DDoS攻撃検知装置200からの攻撃検知メッセージを受信すると、自ASの標的IPアドレス情報テーブルに、メッセージに含まれる標的IPアドレスを追加し、攻撃情報テーブルに当該攻撃のレコードを登録する。
ステップS802において、AS1の連携対処装置100は、ネットワーク制御装置300に対して、標的IPアドレスリストを通知し、自AS内のmitigation装置50を用いた対処を適用する(上流で未検査の標的宛通信を全てmitigation装置50に引き込んで対処するように設定)。
ステップS803において、AS1の連携対処装置100は、連携先AS情報テーブルを参照し、連携先AS(AS2、AS5)の連携対処装置100に対して、標的AS番号(AS1)、標的IPアドレスリスト(表1の内容)、自身のAS番号(AS1)を含む対処要求メッセージを送信する。
[対処要求メッセージ処理(AS2)]
ステップS804において、AS2の連携対処装置100は、AS1からの対処要求メッセージに含まれるIPアドレス宛通信量を取得し、当該通信が自ASからAS1方向に流れているかを判定する。
ステップS805において、AS2の連携対処装置100は、AS2からAS1方向に当該通信が流れているため、受信した標的AS番号(AS1)、標的IPアドレスの一覧、メッセージの送信元のAS番号(AS1)を自身の攻撃情報テーブルに登録する。この際、AS2の連携対処装置100は、対処要求の送信元ASを下流(=親)ASとして登録する。
ステップS806において、AS2の連携対処装置100は、ネットワーク制御装置300に対して、標的IPアドレスリストを通知し、AS2内のmitigation装置50を用いた対処を適用する(上流で未検査の標的宛通信をリソースの許す限りmitigation装置50に引き込んで対処するように設定)。
ステップS807において、AS2の連携対処装置100は、AS1の連携対処装置100に標的AS番号(AS1)、自身のAS番号(AS2)、Status=対処中を含む対処応答メッセージを送信する。
ステップS808において、AS2の連携対処装置100は、他ASからAS2へのAS1宛攻撃の流入がないため、AS2の攻撃情報テーブルの自身の最上流フラグをTrueに設定する。
ステップS809において、AS2の連携対処装置100は、自身が最上流であることから、対処終了判断部122を定期的に呼び出すタイマを設定し、以下の処理を実施する。
ステップS810において、AS2の連携対処装置100は、自AS内を流れる標的IPアドレスリストに含まれるIPアドレス宛通信量の合計値、mitigation装置50の利用可能リソース量、現在対処中の標的宛通信量、AS間リンク(AS2-AS1間のリンク)の利用可能帯域量を各テーブルから取得し、自ASで対処する標的宛通信量の最低値(最低対処量)を算出する。各テーブルの情報が最新でない場合は、AS2の連携対処装置100は、トラヒック情報収集・DDoS攻撃検知装置200経由で情報を取得し、攻撃情報テーブル、mitigation装置情報テーブル、AS間リンク情報テーブルの値を更新する。なお、最低対処量は、例えば以下の式を用いて算出する。
ステップS811において、AS2の連携対処装置100は、AS1に標的AS番号(AS1)、自身のAS番号(AS2)、自AS(AS2)を流れる標的宛通信量の合計値、mitigation装置50の利用可能リソース量、現在対処中の標的宛通信量、AS間リンクの利用可能帯域量、最低対処量を含む調整要求メッセージを送信する。
[対処応答メッセージ処理(AS1)]
ステップS812において、AS1の連携対処装置100は、AS2の連携対処装置100からの対処応答メッセージを受信し、攻撃情報テーブルの標的AS番号がAS1の行の連携先ASの項目に、受信したAS2の情報を登録する。この際、AS2を上流(=子)ASとして登録する。
[調整要求メッセージ処理(AS1)]
ステップS813において、AS1の連携対処装置100は、AS2の連携対処装置100からの調整要求メッセージを受信し、自身の攻撃情報テーブルのAS2の情報と連携先AS情報テーブルのAS2の情報を受信情報で更新する。
[対処要求メッセージ処理(AS5)]
ステップS814において、AS5の連携対処装置100は、AS1からの対処要求メッセージに含まれるIPアドレス宛通信量を取得し、当該通信が自ASからAS1方向に流れているかを判定する。
ステップS815において、AS5の連携対処装置100は、AS5からAS1方向に当該通信が流れているため、受信した標的AS番号(AS1)、標的IPアドレスの一覧、メッセージの送信元のAS番号(AS1)を自身の攻撃情報テーブルに登録する。この際、対処要求の送信元ASを下流(=親)ASとして登録する。
ステップS816において、AS5の連携対処装置100は、ネットワーク制御装置300に対して、標的IPアドレスリストを通知し、AS5内のmitigation装置50を用いた対処を適用する(上流で未検査の標的宛通信をリソースの許す限りmitigation装置50に引き込んで対処するように設定)。
ステップS817において、AS5の連携対処装置100は、AS1の連携対処装置100に標的AS番号(AS1)、自身のAS番号(AS5)、Status=対処中を含む対処応答メッセージを送信する。
ステップS818において、AS5の連携対処装置100は、他ASからAS5へのAS1宛攻撃の流入があるため、対処要求メッセージの送信元(AS1)を除く連携先AS(AS2、AS5)の連携対処装置100に、標的AS番号(AS1)、標的IPアドレスリスト(図5の内容)、自身のAS番号(AS5)を含む対処要求メッセージを送信する。
[対処応答メッセージ処理(AS1)]
ステップS819において、AS1の連携対処装置100は、AS5の連携対処装置100からの対処応答メッセージを受信し、攻撃情報テーブルの標的AS番号がAS1の行の連携先ASの項目に、受信したAS5の情報を登録する。この際、AS1の連携対処装置100は、AS5を上流(=子)ASとして登録する。
[対処要求メッセージ処理(AS2)]
ステップS820において、AS2の連携対処装置100は、AS5からの対処要求メッセージに含まれるIPアドレス宛通信量を取得し、当該通信が自ASからAS5方向に流れているかを判定する。
ステップS821において、AS2の連携対処装置100は、流れていないため、AS5の連携対処装置100に、標的AS番号(AS1)、自AS番号(AS2)、Status=対処不可を含む対処応答メッセージを送信する。
[対処応答メッセージ処理(AS5)]
ステップS822において、AS5の連携対処装置100は、AS2の連携対処装置100からの対処応答メッセージを受信し、攻撃情報テーブルの標的AS番号がAS1の行の連携先ASの項目に、受信したAS2の情報(対処不可)を登録する。
[対処要求メッセージ処理(AS7)]
ステップS823において、AS7の連携対処装置100は、AS5からの対処要求メッセージに含まれるIPアドレス宛通信量を取得し、当該通信が自ASからAS5方向に流れているかを判定する。
ステップS824において、AS7の連携対処装置100は、流れているため、受信した標的AS番号(AS1)、標的IPアドレスの一覧、メッセージの送信元のAS番号(AS5)を自身の攻撃情報テーブルに登録する。この際、AS7の連携対処装置100は、対処要求の送信元ASを下流(=親)ASとして登録する。
ステップS825において、AS7の連携対処装置100は、ネットワーク制御装置300に対して、標的IPアドレスリストを通知し、AS7内のmitigation装置50を用いた対処を適用する(上流で未検査の標的宛通信をリソースの許す限りmitigation装置50に引き込んで対処するように設定)。
ステップS826において、AS7の連携対処装置100は、AS5に標的AS番号(AS1)、自身のAS番号(AS7)、Status=対処中を含む対処応答メッセージを送信する。
ステップS827において、AS7の連携対処装置100は、他ASからAS7へのAS1宛攻撃の流入がないため、AS7の攻撃情報テーブルの自身の最上流フラグをTrueに設定する。
ステップS828において、AS7の連携対処装置100は、自身が最上流であることから、対処終了判断部122を定期的に呼び出すタイマを設定し、以下の処理を実施する。
ステップS829において、AS7の連携対処装置100は、自AS内を流れる標的IPアドレスリストに含まれるIPアドレス宛通信量の合計値、mitigation装置50の利用可能リソース量、現在対処中の標的宛通信量、AS間リンク(AS7-AS6間のリンク)の利用可能帯域量を各テーブルから取得し、最低対処量を算出する。各テーブルの情報が最新でない場合は、AS7の連携対処装置100は、トラヒック情報収集・DDoS攻撃検知装置200経由で情報を取得し、攻撃情報テーブル、mitigation装置情報テーブル、AS間リンク情報テーブルの値を更新する。
ステップS830において、AS7の連携対処装置100は、AS5に標的AS番号(AS1)、自身のAS番号(AS7)、自AS(AS7)を流れる標的宛通信量の合計値、mitigation装置50の利用可能リソース量、現在対処中の標的宛通信量、AS間リンクの利用可能帯域量、最低対処量を含む調整要求メッセージを送信する。
[対処応答メッセージ処理(AS5)]
ステップS831において、AS5の連携対処装置100は、AS7の連携対処装置100からの対処応答メッセージを受信し、攻撃情報テーブルの標的AS番号がAS1の行の連携先ASの項目に、受信したAS7の情報を登録する。この際、AS5の連携対処装置100は、AS7を上流(=子)ASとして登録する。
ここまでの手順で、攻撃元に最も近いASのmitigation装置50のリソースを最大限用いた対処(インターネット全体での攻撃通信による消費帯域が最小になるような対処)が完了する。以降の手順では、さらに各ASのmitigation装置50のリソース使用率をAS間リンクが輻輳しない範囲で平準化するための調整について、図17を参照して説明する。
[調整要求メッセージ処理(AS5)]
ステップS831において、AS5の連携対処装置100は、AS7から受信した情報を攻撃情報テーブル、連携先AS情報テーブルに格納する。
ステップS832において、AS5の連携対処装置100は、対処要求の送信先全てから対処応答を受信済みかつ全ての子から調整要求を受信済みのため、自AS内を流れる標的IPアドレスリストに含まれるIPアドレス宛通信量の合計値、mitigation装置50の利用可能リソース量、現在対処中の標的宛通信量を各テーブルから取得する。各テーブルの情報が最新でない場合は、トラヒック情報収集・DDoS攻撃検知装置200経由で情報を取得し、攻撃情報テーブル、mitigation装置情報テーブルの値を更新する。
ステップS832において、AS5の連携対処装置100は、下記の最適化問題を解くことで、自身と子(AS5、AS7)のmitigation装置50のリソース使用率が平準化するような対処量の値の組み合わせを算出する。一般化した表現では、当該最適化問題は、以下とすることができる。
AS5、AS7で調整する場合には、以下の最適化問題を解くことになる。
ステップS835において、AS5の連携対処装置100は、前記パラメータ調整の結果得られた、「その標的AS宛通信に対して各ASで対処する通信量(x
AS)」を用いて、mitigation装置情報テーブルの利用可能リソース量の値(自ASで対処する通信量分減算)、攻撃情報テーブルの自ASに関する情報の標的AS単位の攻撃通信量の合計値(他ASで対処する通信量分減算)と自ASと他ASの情報内の対処中の通信量の値(それぞれのASで対処する通信量の値を設定)を更新する。また、AS5の連携対処装置100は、自ASで対処する標的宛通信量の最低値を、更新した標的AS単位の攻撃通信量の合計値とAS間リンクの利用可能帯域量から算出して更新する。この際、AS5の連携対処装置100は、ネットワーク制御装置300に対して、標的IPアドレス、自ASで対処する標的AS宛通信量(x
AS5)を通知して最新の情報での攻撃対処を適用する。ネットワーク制御装置300は、攻撃情報テーブルに記載の標的IPアドレス宛通信をx
AS5分、mitigation装置50に引き込んで対処する。
ステップS836において、AS5の連携対処装置100は、子(AS7)の連携対処装置100に対して、標的AS番号(AS1)、自身のAS番号(AS5)、メッセージの宛先ASで対処する標的AS宛通信量(調整の結果得られたxAS)、標的AS宛通信に対する対処量の差分値(xAS-XAS)、Flag=fromParentが含まれる更新要求メッセージを送信する。
ステップS837において、AS5の連携対処装置100は、親(AS1)に、標的AS番号(AS1)、自身のAS番号(AS5)、自AS(AS5)を流れる標的宛通信量の合計値、mitigation装置50の利用可能リソース量、現在対処中の標的宛通信量、AS間リンクの利用可能帯域量、自AS(AS5)で対処する標的宛通信量の最低値(最低対処量)を含む調整要求メッセージを送信する。
[更新要求メッセージ処理(AS7)]
ここでは、「AS5=隣接AS」かつ「最低対処量 ≦ 要求量」かつ「自AS=最上流」を想定して説明する。
ステップS838において、AS7の連携対処装置100は、受信メッセージに含まれる標的AS宛通信に対する対処量の差分値を用いて、mitigation装置情報テーブルの利用可能リソース量(差分値分減算)、攻撃情報テーブルの自ASで対処中の標的AS宛通信量(差分値分加算)を更新し、ネットワーク制御装置300を介して、標的IPアドレス宛通信を要求分mitigation装置50に引き込んで対処する。
ステップS839において、AS7の連携対処装置100は、連携先情報テーブルを参照し、親(AS5)が隣接ASでないため、輻輳検査部119を介して輻輳検査処理を実行する。輻輳検査の実現方法は任意だが、例えば、AS7の連携対処装置100の輻輳検査部119からAS5の連携対処装置100の輻輳検査部119に、検査パケットを送信する。検査パケットを受信したAS5連携対処装置100の輻輳検査部119は、応答パケットを返す。AS7において、送信したパケットへの応答が一定期間内に返ってこない(パケットドロップ)場合や、平常時よりも応答が返ってくるまでの時間が長い場合は、AS7とAS5間の経路上でリンク輻輳が発生していると判定する。また、検査パケットに送信時間を付与し、受信側に到達した時間と比べて、平常時よりもパケット転送に時間がかかっているかを判定することで、輻輳の有無を判定する方法も考えられる。
以降、AS7とAS5の間で通信する際の経路上のリンクで輻輳が発生と想定して説明する。
ステップS840において、AS7の連携対処装置100は、輻輳しているため、自身の対処量を増加させて対処を実施する。なお、増加させる量は、例えば以下の式で算出することが想定される。
1度の増加量=元の対処量×γ(0<γ<1)
上記の増加量ずつ加算していき、自ASを流れる標的宛通信量を超える場合は、通信量を上限にする等が考えられる。なお、γの設定方法は任意だが、事前に運用者等によって設定される等が想定される。また、上記方法は割合で加算していく方法だが、他にも事前に設定した量(例えば1Gbpsずつ)を加算していく等の方法も想定され、1度に増加させる量の決定方法は任意である。
ステップS841において、AS7の連携対処装置100は、輻輳検査部119による輻輳の再検査を実施する。
以降、輻輳が解消した想定で説明する。
ステップS842において、AS7の連携対処装置100は、攻撃情報テーブルの自ASの対処中の通信量を増加後の値に更新し、最低対処量を増加後の値に設定する。また、AS7の連携対処装置100は、自ASのmitigation装置情報テーブルの利用可能リソース量を増加分だけ減算する。
ステップS843において、AS7の連携対処装置100は、AS5の連携対処装置100に、標的AS番号(AS1)、自AS番号(AS7)、AS7の増加前の標的AS宛通信量、AS7の増加後の標的AS宛通信量を含む輻輳対処メッセージを送信する。
[輻輳対処メッセージ処理(AS5)]
ステップS844において、AS5の連携対処装置100は、AS7から受信した子(AS7)の対処量の「増加後の値-増加前の値」分、攻撃情報テーブルの自身の対処量と自身へ流入する標的宛通信量を減算し、mitigation装置情報テーブルの利用可能リソース量を加算する。また、AS5の連携対処装置100は、攻撃情報テーブルのAS7の対処量と最低対処量を受信した値に更新する。
[調整要求メッセージ処理(AS1)]
ステップS845において、AS1の連携対処装置100は、AS5から受信した情報を攻撃情報テーブル、連携先AS情報テーブルに格納する。
ステップS846において、AS1の連携対処装置100は、対処要求の送信先全てから対処応答を受信済みかつ全ての子から調整要求を受信済みのため、自AS内を流れる標的IPアドレスリストに含まれるIPアドレス宛通信量の合計値、mitigation装置50の利用可能リソース量、現在対処中の標的宛通信量を各テーブルから取得する。各テーブルの情報が最新でない場合は、AS1の連携対処装置100は、トラヒック情報収集・DDoS攻撃検知装置200経由で情報を取得し、攻撃情報テーブル、mitigation装置情報テーブルの値を更新する。
ステップS847において、AS1の連携対処装置100は、前記最適化問題を解くことで、自身と子(AS2、AS5)のmitigation装置50のリソース使用率が平準化するような対処量の値の組み合わせを算出する。
ステップS848において、AS1の連携対処装置100は、前記パラメータ調整の結果得られた、「その標的AS宛通信に対して各ASで対処する通信量を用いて、mitigation装置情報テーブルの利用可能リソース量の値(自ASで対処する通信量分減算)、攻撃情報テーブルの自ASに関する情報の標的AS単位の攻撃通信量の合計値(他ASで対処する通信量分減算)と自ASと他ASの情報内の対処中の通信量の値(それぞれのASで対処する通信量の値を設定)を更新する。
ステップS849において、AS1の連携対処装置100は、子(AS2とAS5)の連携対処装置100に対して、標的AS番号(AS1)、自身のAS番号(AS1)、メッセージの宛先ASで対処する標的AS宛通信量(調整の結果得られたxAS)、標的AS宛通信に対する対処量の差分値(xAS-XAS)、Flag=fromParentが含まれる更新要求メッセージを送信する。
[更新要求メッセージ処理(AS2)]
ステップS850において、AS2の連携対処装置100は、受信した情報に基づき、当該攻撃に対する自ASの情報を更新し、最新の情報での対処を実施する。
[更新要求メッセージ処理(AS5)]
ここでは、「AS1=隣接AS」かつ「最低対処量 ≦ 要求量」かつ「自AS=最上流」を想定して説明する。
ステップS851において、AS5の連携対処装置100は、受信メッセージに含まれる標的AS宛通信に対する対処量の差分値を用いて、mitigation装置情報テーブルの利用可能リソース量(差分値分減算)、攻撃情報テーブルの自ASで対処中の標的AS宛通信量(差分値分加算)を更新する。また、AS5の連携対処装置100は、更新された情報を用いて最適化問題を解くことで、AS5とAS7で対処する標的AS宛通信量を再計算する。
ステップS852において、AS5の連携対処装置100は、計算結果に基づき、テーブルの情報を更新後、ネットワーク制御装置300を介して、標的IPアドレス宛通信を要求分mitigation装置50に引き込んで対処する。
ステップS853において、AS5の連携対処装置100は、連携先情報テーブルを参照し、親(AS1)が隣接ASでないため、輻輳検査部119を介して輻輳検査処理を実行する。
以降、AS5とAS1の間で通信する際の経路上のリンクで輻輳なしと想定して説明する。
ステップS854において、AS5の連携対処装置100は、子(AS7)の連携対処装置100に、標的AS番号(AS1)、自身のAS番号(AS5)、メッセージの宛先ASで対処する標的AS宛通信量(調整の結果得られたxAS)、標的AS宛通信に対する対処量の差分値(xAS-XAS)、Flag=fromParentが含まれる更新要求メッセージを送信する。
ステップS855において、AS5の連携対処装置100は、自身の最低対処量を再計算後、親(AS1)の連携対処装置100に、標的AS番号(AS1)、自AS番号(AS5)、標的AS単位の攻撃通信量の合計値、mitigation装置50の利用可能リソース量、対処中の標的AS宛通信量、最低対処量、Flag=fromChildを含む更新要求メッセージを送信する。
[更新要求メッセージ処理(AS7)]
ステップS856において、AS7の連携対処装置100は、受信メッセージに含まれる標的AS宛通信に対する対処量の差分値を用いて、mitigation装置情報テーブルの利用可能リソース量(差分値分減算)、攻撃情報テーブルの自ASで対処中の標的AS宛通信量(差分値分加算)を更新し、ネットワーク制御装置を介して、標的IPアドレス宛通信を要求分mitigation装置50に引き込んで対処する。
ステップS857において、AS7の連携対処装置100は、連携先情報テーブルを参照し、親(AS5)が隣接ASでないため、輻輳検査部119を介して輻輳検査処理を実行する。ここでは、輻輳なしとして説明する。
[更新要求メッセージ処理(AS1)]
ステップS858において、AS1の連携対処装置100は、受信した情報に基づき、当該攻撃に対する自ASの情報を更新後、最適化問題を解くことで、自身と子(AS2、AS5)で対処する標的AS宛通信量を再計算する。
ステップS859において、AS1の連携対処装置100は、計算結果に基づき、各テーブルの情報を更新後、最新の情報での対処を実施する。
ステップS860において、AS1の連携対処装置100は、自身の子(AS2とAS5)の連携対処装置100に、標的AS番号(AS1)、自AS番号(AS1)、子で対処する標的AS宛通信量、標的AS宛通信に対する対処量の差分値、Flag=fromParentを含む更新要求メッセージを送信する。
以降、後述の収束条件を満たすまで、各ASにおいてメッセージの受信に伴う処理と他ASへのメッセージ送信を繰り返し行うことで、インターネット全体として、AS間リンク輻輳を防ぎつつ、各ASのmitigation装置50のリソース使用率が平準化するように、標的AS宛攻撃に分担して対処することができる。
無限にパラメータ調整が実施されるのを防ぐための収束条件としては、例えば、各ASにおいて、ある標的宛通信に対する調整実施時の入力値で計算したFの値とGの値の差(preF - preG)と調整の結果得られたFの値とGの値の差(F - G)を比較して、事前設定した閾値以上改善していない場合は、そのパラメータ調整を実施せずにそのメッセージ処理を終了することが想定される。なお、収束条件については任意であり、この方法に限定されない。
なお、2地点間で通信を行う際の経路上に存在するボトルネックとなるリンクの利用可能帯域を推定する技術が存在しており(例えば、非特許文献4)、検査パケットが通過したリンクの帯域しか推定できない制限はあるが、本実施例のステップS830やS837の前に、最低対処量を見積もることで、リンク輻輳を解消するための性能を向上させられる可能性があるため、本実施例は、これらの技術と組み合わせて利用しても良い。
上述した実施例によると、DDoS攻撃情報の共有と各攻撃に対して各ASの防御機能のリソースをどれだけ割り当てるかを調整する役割を担う連携対処装置100に加えて、連携するAS間が直接接続していない場合に、そのAS間で通信する際に経由するリンクの輻輳状態を検査する機能を持つ輻輳検査部119を導入する。なお、各ASの連携対処装置100は、近隣の連携先ASの連携対処機能とのみ通信を行う分散型のアーキテクチャ上で動作する。
具体的には、以下の手順により、インターネット全体でDDoS攻撃に連携して対処する場合で、かつ一部のASしか本機能を保有しない場合でも、AS間リンク帯域の輻輳の回避と各ASの防御装置のリソース使用率の平準化を同時に実現する。
すなわち、標的ASから連携対処を開始して、まず、攻撃元に近いASのmitigation装置50リソースを優先的に利用して対処するように設定する(攻撃による消費帯域が最小になるように対処)。
次に、リソース使用率を平準化するために、最上流ASから負荷分散の調整を実施する。この時、自身の親ASが隣接AS(自身と直接接続関係にあるAS)の場合は、自身と親ASとの間のリンク帯域情報から、輻輳を回避するために自ASで最低限対処しなければならない量(最低対処量)を算出して、調整要求メッセージに含めて親ASに送信し、親ASで実施される、AS間のmitigation装置負荷分散のための最適化問題の制約条件として使用する。
他方、自身の親ASが隣接ASでない場合は、上記と同様の処理を実施後、親ASからの更新要求メッセージに含まれる自ASの対処量に従って対処を適用後に、自ASと親AS間で輻輳検査部を介して検査パケットを送信し、パケットドロップの発生の有無や応答が返ってくるまでの遅延の増大等に基づき、自身と親AS間で通信をする際に経由するリンク上で輻輳が発生しているか調べる。輻輳が発生している場合は、上流の対処量を増加させて再検査を繰り返し、輻輳が解消された時点の対処量を最低対処量に設定し直して、輻輳解消前の対処量、輻輳解消後の対処量、最低対処量を含む輻輳対処メッセージを親ASに送信し、親ASにおいて、親ASの対処量を差分だけ減少させる補正を行う。
前記の局所的な調整をネットワーク全体で繰り返し実施することで、最終的に、インターネット全体でAS間リンク輻輳を回避しつつ、mitigation装置50の負荷分散を統一的に実現する。
本発明により、インターネット全体で防御装置のリソースを共用してDDoS攻撃に連携対処する場合に、一部のASしか本発明技術を保有しない場合でも、AS間リンク帯域の輻輳を回避することで、他の通信サービスへの影響を抑えつつ、各ASの防御装置のリソース使用率を平準化することで、インターネット全体としてより多くのDDoS攻撃に対処可能となる。
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。