(57)【要約】  コントローラ（１０）は、攻撃を検知したとき、各境界ルータ２０から、当該境界ルータ（２０）で受信した攻撃の標的宛のＤＮＳ応答のサンプリングを行う。そして、コントローラ（１０）はサンプリングしたＤＮＳ応答の送信元ＩＰアドレスを境界ルータ２０のブラックリストに追加する。そして、コントローラ（１０）は、標的宛のＤＮＳ応答、および、ブラックリストに記載のＩＰアドレスから標的宛のＵＤＰ後続フラグメントのいずれかを受信したとき、当該パケットを廃棄するよう、境界ルータ（２０）に対し指示する。また、コントローラ（１０）は各境界ルータ（２０）に対し、標的からのＤＮＳ要求に対するＤＮＳ応答については廃棄の対象外とする旨の設定を行う。
2016080446.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク同士を接続する境界ルータそれぞれに対し、パケットの転送制御を指示する制御装置であって、
所定のサービスの応答パケットの集中による攻撃を検知したとき、
前記境界ルータで受信した前記攻撃の標的宛の所定のサービスの応答パケットの少なくとも一部を取得するパケット取得部と、
前記取得した応答パケットの送信元ＩＰアドレスを前記境界ルータのブラックリストに追加するリスト作成部と、
前記ブラックリストに記載のＩＰアドレスを送信元とする前記攻撃の標的宛のパケットを受信したとき、当該パケットを廃棄するよう、前記境界ルータに対し指示するパケット廃棄指示部と、
を備えることを特徴とする制御装置。
【請求項２】
前記パケット廃棄指示部は、
前記攻撃の標的宛の所定のサービスの応答パケット、および、前記ブラックリストに記載のＩＰアドレスを送信元とする前記攻撃の標的宛のフラグメント化されたパケットのいずれかを受信したとき、当該パケットを廃棄するよう、前記境界ルータに対し指示することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記制御装置は、さらに、
リスト準備状態の境界ルータそれぞれのブラックリストへのＩＰアドレスの追加状態を監視し、前記境界ルータのブラックリストへのＩＰアドレスの追加が所定期間行われなかったとき、当該境界ルータの状態をリスト準備状態からリスト防御状態に遷移させると決定する状態決定部を備え、
前記パケット廃棄指示部は、
前記リスト防御状態に遷移させると決定された境界ルータに対して、前記攻撃の標的宛の所定のサービスの応答パケット、および、前記ブラックリストに記載のＩＰアドレスを送信元とする前記攻撃の標的宛のフラグメント化されたパケットのいずれかを受信したとき、当該パケットを廃棄するよう、前記境界ルータに対し指示し、
前記リスト準備状態の境界ルータに対して、前記攻撃の標的宛の所定のサービスの応答パケット、および、前記攻撃の標的宛のフラグメント化されたパケットのいずれかを受信したとき、当該パケットを廃棄するよう指示する、
ことを特徴とする請求項２に記載の制御装置。
【請求項４】
前記制御装置は、さらに、
リスト準備状態の境界ルータにおいて受信する前記攻撃の標的宛の所定のサービスの応答パケットのうち、前記ブラックリストに記載されていないＩＰアドレスを送信元とする応答パケットである標的宛ブラックリスト外応答パケットの時間あたりのトラヒック量が、所定の値以下となったとき、当該境界ルータをリスト準備状態からリスト防御状態に遷移させると決定する状態決定部を備え、
前記パケット廃棄指示部は、
前記リスト防御状態に遷移させると決定された境界ルータに対して、前記攻撃の標的宛の所定のサービスの応答パケット、および、前記ブラックリストに記載のＩＰアドレスを送信元とする前記攻撃の標的宛のフラグメント化されたパケットのいずれかを受信したとき、当該パケットを廃棄するよう、前記境界ルータに対し指示し、
前記リスト準備状態の境界ルータに対して、前記攻撃の標的宛の所定のサービスの応答パケット、および、前記攻撃の標的宛のフラグメント化されたパケットのいずれかを受信したとき、当該パケットを廃棄するよう指示する、
ことを特徴とする請求項２に記載の制御装置。
【請求項５】
前記制御装置は、さらに、
リスト準備状態の境界ルータそれぞれのブラックリストへのＩＰアドレスの追加状態を監視し、前記境界ルータのブラックリストへのＩＰアドレスの追加が所定期間行われなかったとき、当該境界ルータの状態をリスト準備状態からリスト防御状態に遷移させると決定する状態決定部を備え、
前記パケット廃棄指示部は、
前記リスト防御状態に遷移させると決定された境界ルータに対して、前記ブラックリストに記載のＩＰアドレスを送信元とする前記攻撃の標的宛のパケットを受信したとき、当該パケットを廃棄するよう、前記境界ルータに対し指示し、
前記リスト準備状態の境界ルータに対して、前記攻撃の標的宛の所定のサービスの応答パケット、および、前記攻撃の標的宛のフラグメント化されたパケットのいずれかを受信したとき、当該パケットを廃棄するよう指示する、
ことを特徴とする請求項１に記載の制御装置。
【請求項６】
前記制御装置は、さらに、
リスト準備状態の境界ルータにおいて受信する前記攻撃の標的宛の所定のサービスの応答パケットのうち、前記ブラックリストに記載されていないＩＰアドレスを送信元とする応答パケットである標的宛ブラックリスト外応答パケットの時間あたりのトラヒック量が、所定の値以下となったとき、当該境界ルータをリスト準備状態からリスト防御状態に遷移させると決定する状態決定部を備え、
前記パケット廃棄指示部は、
前記リスト防御状態に遷移させると決定された境界ルータに対して、前記ブラックリストに記載のＩＰアドレスを送信元とする前記攻撃の標的宛のパケットを受信したとき、当該パケットを廃棄するよう、前記境界ルータに対し指示し、
前記リスト準備状態の境界ルータに対して、前記攻撃の標的宛の所定のサービスの応答パケット、および、前記攻撃の標的宛のフラグメント化されたパケットのいずれかを受信したとき、当該パケットを廃棄するよう指示する、
ことを特徴とする請求項１に記載の制御装置。
【請求項７】
前記制御装置は、さらに、
前記境界ルータそれぞれにおける前記攻撃の標的のＩＰアドレスへの所定のサービスの応答パケットのトラヒック量を観測する観測部を備え、
前記パケット廃棄指示部は、
初期状態の境界ルータに対して、前記攻撃の標的宛の所定のサービスの応答パケット、および、前記攻撃の標的宛のフラグメント化されたパケットのいずれかを受信したとき、当該パケットを廃棄するよう指示し、
前記パケット取得部は、
前記境界ルータのうち、前記初期状態の境界ルータからは、前記攻撃の標的宛の所定のサービスの応答パケットを取得せず、
前記状態決定部は、
前記観測部で観測された境界ルータそれぞれにおける前記攻撃の標的のＩＰアドレスへの所定のサービスの応答パケットのトラヒック量に基づき、前記パケット取得部でサンプリングされる各境界ルータからの応答パケットの総量を推測し、前記推測された応答パケットの総量が所定の値を超えない範囲で、前記初期状態から前記リスト準備状態へ遷移させる境界ルータの集合を決定する、
ことを特徴とする請求項３〜６のいずれか１項に記載の制御装置。
【請求項８】
前記状態決定部は、
前記パケット取得部で取得される各境界ルータからの応答パケットの総量を以下の式（１）により推測する、
ことを特徴とする請求項７に記載の制御装置。
各境界ルータからの応答パケットの総量＝Ｔ＿１＊ｒ＿１＋Ｔ＿２＊ｒ＿２…式（１）
Ｔ＿１：前記リスト準備状態の境界ルータそれぞれで受信する前記攻撃の標的宛の所定のサービスの応答パケットのうち、前記ブラックリストに記載されていないＩＰアドレスを送信元とする応答パケットである標的宛ブラックリスト外応答パケットの時間あたりのトラヒック量の合計
Ｔ＿２：前記リスト防御状態の境界ルータそれぞれで受信する前記標的宛ブラックリスト外応答パケットの時間あたりのトラヒック量の合計
ｒ＿１：前記リスト準備状態の境界ルータそれぞれで受信する前記攻撃の標的宛の所定のサービスの応答パケットのうち、前記パケット取得部で取得する応答パケットの割合
ｒ＿２：前記リスト防御状態の境界ルータそれぞれで受信する前記攻撃の標的宛の所定のサービスの応答パケットのうち、前記パケット取得部で取得する応答パケットの割合
【請求項９】
前記攻撃の標的のＩＰアドレスからの前記所定のサービスの要求パケットを受信したとき、前記境界ルータそれぞれに対し、前記取得した要求パケットの宛先ＩＰアドレスを送信元ＩＰアドレスとする前記応答パケットを前記廃棄の対象外とするよう指示する例外設定指示部と、
をさらに備えることを特徴とする請求項１または２に記載の制御装置。
【請求項１０】
ネットワーク同士を接続し、制御装置からの指示に従って設定を変更する境界ルータであって、
所定のサービスの応答パケットの集中による攻撃の発生通知とその攻撃の標的の情報を前記制御装置から受信し、
前記攻撃の標的宛の所定のサービスの応答パケットを受信した場合、前記応答パケットの送信元ＩＰアドレスをブラックリストに追加するリスト作成部と、
前記ブラックリストに記載のＩＰアドレスを送信元とする前記攻撃の標的宛のパケット受信したとき、当該パケットを廃棄する転送制御部と、
を備えることを特徴とする境界ルータ。
【請求項１１】
前記転送制御部は、
前記攻撃の標的宛の所定のサービスの応答パケット、および、前記ブラックリストに記載のＩＰアドレスを送信元とする前記攻撃の標的宛のフラグメント化されたパケットのいずれかを受信したとき、当該パケットを廃棄する、
ことを特徴とする請求項１０に記載の境界ルータ。
【請求項１２】
前記転送制御部は、
前記制御装置が観測した、前記攻撃の標的から送信された前記所定のサービスの要求パケットの情報を前記制御装置から受信した場合、前記要求パケットの宛先ＩＰアドレスを送信元ＩＰアドレスとする前記応答パケットを前記廃棄の対象外とする、
ことを特徴とする請求項１０または１１に記載の境界ルータ。
【請求項１３】
ネットワーク同士を接続する境界ルータそれぞれに対し、パケットの転送制御を指示する制御方法であって、
所定のサービスの応答パケットの集中による攻撃を検知したとき、
前記境界ルータで受信した前記攻撃の標的宛の所定のサービスの応答パケットの少なくとも一部を取得するステップと、
前記取得した応答パケットの送信元ＩＰアドレスを前記境界ルータのブラックリストに追加するステップと、
前記ブラックリストに記載のＩＰアドレスを送信元とする前記攻撃の標的宛のパケットを受信したとき、当該パケットを廃棄するよう、前記境界ルータに対し指示するステップと、
を含んだことを特徴とする制御方法。
【請求項１４】
前記パケットを廃棄するよう、前記境界ルータに対し指示するステップにおいて、
前記攻撃の標的宛の所定のサービスの応答パケット、および、前記ブラックリストに記載のＩＰアドレスを送信元とする前記攻撃の標的宛のフラグメント化されたパケットのいずれかを受信したとき、当該パケットを廃棄するよう、前記境界ルータに対し指示する、
ことを特徴とする請求項１３に記載の制御方法。
【請求項１５】
ネットワーク同士を接続する境界ルータがパケットの転送制御を行う制御方法であって、
所定のサービスの応答パケットの集中による攻撃の発生通知とその攻撃の標的の情報を制御装置から受信し、それ以降、
前記攻撃の標的宛の所定のサービスの応答パケットを受信した際、前記応答パケットの送信元ＩＰアドレスをブラックリストに追加するステップと、
前記ブラックリストに記載のＩＰアドレスを送信元とする前記攻撃の標的宛のパケット受信したとき、当該パケットを廃棄するステップと、
を含んだことを特徴とする制御方法。
【請求項１６】
前記パケットを廃棄するステップにおいて、
前記攻撃の標的宛の所定のサービスの応答パケット、および、前記ブラックリストに記載のＩＰアドレスを送信元とする前記攻撃の標的宛のフラグメント化されたパケットのいずれかを受信したとき、当該パケットを廃棄する、
ことを特徴とする請求項１５に記載の制御方法。
【請求項１７】
請求項１３〜１６のいずれか１項に記載の制御方法をコンピュータに実行させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、境界ルータ、制御方法、および、制御プログラムに関する。
【背景技術】
【０００２】
現在、ＤＮＳ（Domain  Name  System）やＮＴＰ（Network  Time  Protocol）等のＵＤＰ（User  Datagram  Protocol）の応答パケットを利用した反射型ＤＤｏＳ攻撃（Distributed  Denial  of  Service  attack）が問題となっている。例えば、攻撃者がネットワーク中に多数散在するオープンリゾルバ宛に送信元ＩＰアドレスを偽装したＤＮＳの要求パケットを送信すると、これらのオープンリゾルバそれぞれが名前の解決を行い、偽装された送信元ＩＰアドレス宛に応答パケットを送信する。その結果、偽装された送信元（つまり、標的）宛に大量の応答パケットが集中する。このようにすることで攻撃者は標的のネットワークに数百Ｇｂｐｓといった負荷を与える。【０００３】
ここで、ＤＮＳやＮＴＰで用いられるプロトコルはＵＤＰであるため、ファイアウォールのステートフルインスペクション機能では上記のような攻撃を防御することができない。そこで、ネットワークの境界ルータが、標的側からＤＮＳやＮＴＰの要求パケット（つまり正当な要求パケット）を受信したとき、この要求パケットの送信元のＩＰアドレスおよびポート番号をホワイトリストに追加し、境界ルータは、宛先がホワイトリストに記載されたＩＰアドレスおよびポート番号の応答パケット（正当な応答パケット）は転送するが、それ以外のＤＮＳやＮＴＰの応答パケットは遮断（廃棄）する技術が提案されている。このような技術によれば、攻撃パケットを遮断し、かつ、正当な応答パケットを標的に到達させることができる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】首藤裕一他、動的パケットフィルタリングによる反射型DoS攻撃の遮断手法、信学技報、vol.113、no.473、IN2013-181、pp.223-228、2014年3月
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、反射型ＤＤｏＳ攻撃の攻撃パケットはサイズが大きい傾向にあり、フラグメント化されて転送されることが多い。例えば、上記のＤＮＳやＮＴＰの応答パケットがフラグメント化された場合、先頭パケット以外はＵＤＰヘッダ情報を持たない。このため、境界ルータは、フラグメント化された攻撃パケットのうち２番目以降のパケット（ＵＤＰ後続フラグメント）について、当該パケットがＤＮＳやＮＴＰのパケットであるか否かを判断できない。その結果、フラグメント化された攻撃パケットについては遮断できず、標的に到達してしまうおそれがあった。【０００６】
そこで本発明は前記した問題を解決し、フラグメント化された攻撃パケットについても遮断し、かつ、正当なパケットを到達させることを課題とする。
【課題を解決するための手段】
【０００７】
前記した課題を解決するため、本発明は、ネットワーク同士を接続する境界ルータそれぞれに対し、パケットの転送制御を指示する制御装置であって、所定のサービスの応答パケットの集中による攻撃を検知したとき、前記境界ルータで受信した前記攻撃の標的宛の所定のサービスの応答パケットの少なくとも一部を取得するパケット取得部と、前記取得した応答パケットの送信元ＩＰアドレスを前記境界ルータのブラックリストに追加するリスト作成部と、前記ブラックリストに記載のＩＰアドレスを送信元とする前記攻撃の標的宛のパケットを受信したとき、当該パケットを廃棄するよう、前記境界ルータに対し指示するパケット廃棄指示部と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、フラグメント化された攻撃パケットについても遮断し、かつ、正当なパケットを到達させることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、初期状態における通信システムの動作概要を説明する図である。
【図２】図２は、初期状態→リスト準備状態における通信システムの動作概要を説明する図である。
【図３】図３は、リスト準備状態→リスト防御状態における通信システムの動作概要を説明する図である。
【図４】図４は、コントローラおよび境界ルータの機能ブロック図である。
【図５】図５は、ルータ情報の例を示す図である。
【図６】図６は、初期状態、リスト準備状態、リスト防御状態におけるルールの例を示す図である。
【図７】図７は、初期状態における通信システムの処理手順の例を示すシーケンス図である。
【図８】図８は、初期状態→リスト準備状態における通信システムの処理手順の例を示すシーケンス図である。
【図９】図９は、リスト準備状態→リスト防御状態における通信システムの処理手順の例を示すシーケンス図である。
【図１０】図１０は、コントローラおよび境界ルータの機能ブロック図である。
【図１１】図１１は、図１０に示すコントローラおよび境界ルータを備える通信システムの処理手順の例を示すシーケンス図である。
【図１２】図１２は、図１０に示すコントローラおよび境界ルータの例を示す図である。
【図１３】図１３は、制御プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら、本発明を実施するための形態（実施形態）について説明する。なお、本発明は本実施形態に限定されない。本実施形態ではＤＮＳを用いた反射型ＤＤｏＳ攻撃に対する遮断方式を説明するが、本発明はこれに限定されるものでなく、ＮＴＰや他のプロトコルを用いた反射型ＤＤｏＳ攻撃に対しても同様の処理で遮断することが可能である。
【００１１】
まず、本実施形態の通信システムの構成と概要を説明する。本実施形態の通信システムは、例えば、図１に示すように、インターネットとユーザ網とを備える。インターネットとユーザ網との通信は中継網により中継される。
【００１２】
インターネットには、例えば、リフレクタが接続される。リフレクタは、例えば、オープンリゾルバ等である。このリフレクタは、攻撃時にいわゆる踏み台として利用されるサーバ群である。ここではリフレクタが、攻撃者から送信元を偽った要求パケット（ＤＮＳ要求パケット）を受信し、このＤＮＳ要求パケットの応答として、インターネットおよび中継網経由でユーザ網内の標的（標的のＩＰアドレスまたは当該ＩＰアドレスを含むＩＰアドレス帯）へ大量の応答パケット（攻撃パケット）を送信する場合を例に説明する。また、この応答パケットには、フラグメント化されたパケットも含まれる。
【００１３】
境界ルータ２０は、インターネットと中継網との間に設置され、入力されたパケットの転送処理を行う。この境界ルータ２０は、後述するコントローラ１０からの指示に従って内部転送ルールを変更したり、特定の条件に合致するパケットをコントローラ１０に転送したり、トラヒック情報をコントローラ１０に送信したりする機能を有する。このようにコントローラから指示によって複数のルータが動的に経路制御設定を変更する仕組みとして、たとえばOpenFlowという通信仕様が存在する。たとえば、境界ルータ２０がOpenFlow1.0対応のルータであれば上記の機能を実現できる。また、OpenFlow対応のルータとしては、オープンソースソフトウェアとして公開されているOpen  vSwitch等が存在する。収容ルータ３０は、中継網とユーザ網との間に設置され、入力されたパケットの転送制御を行う。この収容ルータ３０は境界ルータ２０と同じ機能を備える。コントローラ（制御装置）１０は、各境界ルータ２０および収容ルータ３０の制御を行う。
【００１４】
ここで、リフレクタから標的宛の大量の攻撃パケットが送信されると、標的の属するユーザ網の収容ルータ３０にパケット（例えば、ＤＮＳ応答パケット）が集中することになる。コントローラ１０は収容ルータ３０へのパケットの集中を検知すると、まず、各境界ルータ２０が攻撃パケットの防御に用いるブラックリストを準備する（リスト準備状態）。そして、ブラックリストが概ね完成すると、コントローラ１０は、各境界ルータ２０にブラックリストを用いた攻撃パケットの防御を行わせる（リスト防御状態）。
【００１５】
（初期状態）
引き続き図１を用いて、各境界ルータ２０がリスト準備状態になる前の状態（初期状態）を説明する。例えば、コントローラ１０は、この収容ルータ３０へのＤＮＳ応答パケット（ＤＮＳ応答）の集中により標的への攻撃を検知すると（Ｓ１）、各境界ルータ２０を初期状態に遷移させることを決定する。そして、コントローラ１０は、各境界ルータ２０に対し、初期状態のルールを設定する。つまり、各境界ルータ２０に対し、標的宛のＤＮＳ応答およびＵＤＰ後続フラグメントを遮断（廃棄）する旨のルールを設定する（Ｓ２）。
【００１６】
また、コントローラ１０は、収容ルータ３０に対し、標的からのＤＮＳ要求（ＤＮＳ要求パケット）をコントローラ１０に転送するよう設定する（Ｓ３）。
【００１７】
Ｓ３の後、コントローラ１０は、収容ルータ３０経由で標的からのＤＮＳ要求を受信したとき、全境界ルータ２０に、ルールの例外設定（標的からのＤＮＳ要求に対するＤＮＳ応答は通過させる旨の設定。具体的には、当該要求の宛先ＩＰアドレスが送信元となっているＤＮＳ応答パケットを通過させる旨の設定）を行い、その後、当該ＤＮＳ要求をいずれかの境界ルータ２０へ転送する（Ｓ４）。
【００１８】
このようにコントローラ１０から、初期状態のルールおよび例外設定を受けた境界ルータ２０は、標的宛のＤＮＳ応答およびＵＤＰ後続フラグメントは原則として遮断するが、コントローラ１０から受信した例外設定に該当するＤＮＳ応答は通過させる（Ｓ５）。例えば、境界ルータ２０は標的宛のＤＮＳ応答およびＵＤＰ後続フラグメントは原則として遮断するが、標的からのＤＮＳ要求を受信した正規のＤＮＳサーバ５０を送信元するＤＮＳ応答については、このＤＮＳ応答の宛先が標的であったとしても通過させる。これにより、正規のＤＮＳ応答は標的に到達することになる。
【００１９】
（初期状態→リスト準備状態）
次に、図２を用いて、各境界ルータ２０の初期状態からリスト準備状態への遷移を説明する。例えば、コントローラ１０は、各境界ルータ２０に到達する標的宛のＤＮＳ応答のトラヒック量を観測する（Ｓ１１）。そして、コントローラ１０は、各境界ルータ２０に到達する標的宛のＤＮＳ応答のトラヒック量に基づき、境界ルータ２０がリスト準備状態に遷移した場合に、境界ルータ２０からコントローラ１０に転送されるであろう標的宛のＤＮＳ応答のトラヒック量の総量を推定する。そして、コントローラ１０は、そのトラヒック量の総量が所定の値を超えない範囲でリスト準備状態に遷移させる境界ルータ２０の集合を決定し、当該集合の境界ルータ２０のそれぞれにリスト準備状態用のルールを設定する（Ｓ１２）。
【００２０】
ここでのリスト準備状態用のルールは、当該境界ルータ２０において、標的宛のＤＮＳ応答およびＵＤＰ後続フラグメントを遮断（廃棄）し、ブラックリスト（詳細は後記）に記載されていないＩＰアドレスを送信元とする標的宛のＤＮＳ応答をサンプリングしてコントローラ１０へ転送するというルールである。なお、サンプリングされた標的宛のＤＮＳ応答は、コントローラ１０において境界ルータ２０のブラックリスト（詳細は後記）を作成するときに用いられる。また、境界ルータ２０は、リスト準備状態においても、初期状態のときに設定したものと同じ「ルールの例外設定」を適用し、コントローラ１０から受信した例外設定に該当するＤＮＳ応答は通過させるものとする。
【００２１】
（リスト準備状態→リスト防御状態）
次に、図３を用いて、各境界ルータ２０のリスト準備状態からリスト防御状態への遷移を説明する。例えば、リスト準備状態に遷移した境界ルータ２０は、前記したリスト準備状態用のルールに従い、受信したパケットのうち、ブラックリスト（詳細は後記）に記載されていないＩＰアドレスを送信元とする標的宛のＤＮＳ応答をサンプリングしてコントローラ１０へ送信する（Ｓ２１）。なお、当該境界ルータ２０が初期状態からリスト準備状態に遷移したばかりのとき（つまり、まだブラックリストが設定されていない状態のとき）は、受信したパケットのうち、標的宛のＤＮＳ応答をサンプリングしてコントローラ１０へ送信する。
【００２２】
そして、コントローラ１０は、境界ルータ２０でサンプリングされた標的宛のＤＮＳ応答を受信すると、この送信されたＤＮＳ応答の送信元ＩＰアドレスを当該境界ルータ２０のブラックリストに追加する（Ｓ２２）。そして、コントローラ１０は、リスト準備状態の境界ルータ２０におけるブラックリスト追加（ブラックリストへの新たなＩＰアドレスの追加）状態を監視し、ブラックリスト追加が所定時間行われない状態になったとき、当該境界ルータ２０をリスト防御状態に遷移させることを決定する。そして、コントローラ１０は、当該境界ルータ２０にリスト防御用のルールを設定する（Ｓ２３）。
【００２３】
つまり、コントローラ１０は、リスト準備状態の境界ルータ２０のブラックリストに攻撃元（例えば、リフレクタ）のＩＰアドレスがほぼすべて登録された状態になったと判断すると、境界ルータ２０をリスト防御状態に遷移させることを決定する。そして、当該境界ルータ２０にリスト防御用のルールを設定する。
【００２４】
なお、ここでのリスト防御用のルールは、当該境界ルータ２０において、標的宛のＤＮＳ応答、および、ブラックリストに記載されているＩＰアドレスを送信元とする標的宛のＵＤＰ後続フラグメントを遮断するというルールである。なお、リスト防御状態においても、境界ルータ２０はブラックリストに記載されていないＩＰアドレスから標的宛のＤＮＳ応答をサンプリングしてコントローラ１０へ転送する。また、境界ルータ２０は初期状態のときに設定されたものと同じ「ルールの例外設定」を適用し、コントローラ１０から受信した例外設定に該当するＤＮＳ応答は通過させるものとする。
【００２５】
このようにして各境界ルータ２０がリスト防御状態に遷移すると、各境界ルータ２０は原則として標的宛のＤＮＳ応答を遮断するが、標的からのＤＮＳ要求に対するＤＮＳ応答（つまり、正当なＤＮＳ応答）は通過させることができる。また、各境界ルータ２０は、ブラックリストに記載されているＩＰアドレスから標的宛のＵＤＰ後続フラグメントを遮断するが、ブラックリストに記載されていないＩＰアドレスから標的宛のＵＤＰ後続フラグメント（つまり、正当なＵＤＰ後続フラグメント）は通過させることができる。
【００２６】
（構成）
次に、図４を用いてコントローラ１０および境界ルータ２０の構成を説明する。まず、コントローラ１０の構成を説明する。
【００２７】
（コントローラ）
図４に示すように、コントローラ１０は、通信制御部１１、記憶部１２、制御部１３を備える。
【００２８】
通信制御部１１は、外部装置との間でデータの送受信を行うための通信インタフェースである。通信制御部１１は、例えば、制御部１３から境界ルータ２０へルールの送信を行ったり、境界ルータ２０から標的宛のＤＮＳ応答のサンプリングの結果を取得したりするときの通信インタフェースを司る。
【００２９】
記憶部１２は、ルータ情報を記憶する。このルータ情報は、中継網に設置される境界ルータ２０それぞれの識別情報を示した情報である。このルータ情報は、例えば、図５に示すように、各境界ルータ２０の識別情報の他に、各境界ルータ２０の状態（初期状態、リスト準備状態、リスト防御状態）を含んでもよい。各境界ルータ２０の状態は、状態決定部１３２（後記）により書き込まれる。
【００３０】
制御部１３は、コントローラ１０全体の制御を司り、ここでは主に境界ルータ２０へパケット転送や遮断に関するルールを送信する。
【００３１】
制御部１３は、攻撃検知部１３０と、観測部１３１と、状態決定部１３２と、パケット取得部１３３と、リスト作成部１３４と、パケット廃棄指示部１３５と、パケット転送指示部１３６と、例外設定指示部１３７と、パケット転送部１３８とを備える。
【００３２】
攻撃検知部１３０は、標的への攻撃を検知する。例えば、攻撃検知部１３０は、収容ルータ３０からトラフィック情報を取得し、このトラフィック情報により、ユーザ網内の所定の宛先（標的）にＤＮＳ応答が集中していると判断すると、当該宛先を標的とした攻撃として検知する。
【００３３】
観測部１３１は、境界ルータ２０それぞれにおける標的宛のＤＮＳ応答のトラヒック量を観測する。例えば、観測部１３１は、境界ルータ２０それぞれに対し、標的のＩＰアドレス宛のＤＮＳ応答のトラヒック量を計測するように指示し、所定期間ごとに当該境界ルータ２０から当該トラヒック量の計測結果を取得する。
【００３４】
状態決定部１３２は、各境界ルータ２０を初期状態とするか、リスト準備状態とするか、リスト防御状態とするかの決定を行う。
【００３５】
例えば、状態決定部１３２は、観測部１３１で観測された境界ルータ２０それぞれにおける標的宛のＤＮＳ応答のトラヒック量に基づき、境界ルータ２０がリスト準備状態に遷移した場合、境界ルータ２０からコントローラ１０に転送されるであろう標的宛のＤＮＳ応答のトラヒック量の総量を推定する。つまり、状態決定部１３２は、リスト準備状態に遷移した境界ルータ２０から受信するサンプリング結果のトラヒック量の総量を推定する。そして、状態決定部１３２は、推測されたＤＮＳ応答のトラヒック量の総量が所定の値を超えない範囲で、初期状態の境界ルータ２０の中から、リスト準備状態へ遷移させる境界ルータ２０の集合を決定する。
【００３６】
また、例えば、状態決定部１３２は、リスト準備状態の境界ルータ２０におけるブラックリストへのＩＰアドレスの追加状況を監視し、ブラックリストへのＩＰアドレスの追加が所定期間行われなかったとき、当該境界ルータ２０をリスト防御状態に遷移させると決定する。つまり、状態決定部１３２は、リスト準備状態の境界ルータ２０におけるブラックリストがある程度成熟したときに、当該境界ルータ２０をリスト防御状態に遷移させると決定する。
【００３７】
また、状態決定部１３２は、観測部１３１で観測されたリスト準備状態の境界ルータ２０における標的のＩＰアドレス宛のＤＮＳ応答のトラヒック量と、当該境界ルータ２０のブラックリストとを参照して、当該境界ルータ２０におけるブラックリストに掲載されていないＩＰアドレスから標的のＩＰアドレス宛のＤＮＳ応答（標的宛ブラックリスト外応答パケット）の時間あたりのトラヒック量が、所定の値以下になったとき、当該境界ルータ２０をリスト防御状態に遷移させると決定してもよい。
【００３８】
パケット取得部１３３は、リスト準備状態またはリスト防御状態の境界ルータ２０で受信した標的宛のＤＮＳ応答のサンプリングを行う。例えば、パケット取得部１３３は、リスト準備状態またはリスト防御状態の境界ルータ２０から、当該境界ルータ２０で受信した標的宛ブラックリスト外応答パケットについて所定のレートでサンプリングされたＤＮＳ応答を受信する。
【００３９】
リスト作成部１３４は、各境界ルータ２０のブラックリストを作成する。具体的には、リスト作成部１３４は、パケット取得部１３３によりサンプリングされた境界ルータ２０で受信したＤＮＳ応答の送信元ＩＰアドレスを当該境界ルータ２０のブラックリストに追加する。なお、このブラックリストは、リスト防御状態の境界ルータ２０が標的宛のＵＤＰ後続フラグメントを遮断するときに参照するリストである。
【００４０】
パケット廃棄指示部１３５は、各境界ルータ２０の状態に応じて、各境界ルータ２０に対し、どのようなパケットを遮断（廃棄）すべきかの指示を行う。
【００４１】
例えば、パケット廃棄指示部１３５は、初期状態の境界ルータ２０に対して、標的宛のＤＮＳ応答、および、標的宛のＵＤＰ後続フラグメントのいずれかを受信したとき、当該パケットを廃棄する旨のルールを設定する。
【００４２】
また、例えば、パケット廃棄指示部１３５は、リスト防御状態の境界ルータ２０に対して、標的宛のＤＮＳ応答、および、ブラックリストに記載のＩＰアドレスを送信元とする標的宛のＵＤＰ後続フラグメントのいずれかを受信したとき、当該パケットを廃棄する旨のルールを設定する。
【００４３】
さらに、例えば、パケット廃棄指示部１３５は、リスト準備状態の境界ルータ２０に対して、標的宛のＤＮＳ応答、および、標的宛のＵＤＰ後続フラグメントのいずれかを受信したとき、当該パケットを廃棄する旨のルールを設定する。
【００４４】
パケット転送指示部１３６は、収容ルータ３０に対し、収容ルータ３０が標的からのＤＮＳ要求を受信した場合、当該ＤＮＳ要求をコントローラ１０へ転送する旨の指示を行う。
【００４５】
例外設定指示部１３７は、収容ルータ３０経由で標的からのＤＮＳ要求を受信すると、境界ルータ２０それぞれに対し、当該ＤＮＳ要求の宛先ＩＰアドレスを送信元ＩＰアドレスとするＤＮＳ応答を廃棄の対象外とする旨のルール（例外）を設定する。これにより、各境界ルータ２０において、標的からのＤＮＳ要求に対するＤＮＳ応答（つまり正当なＤＮＳ応答）について通過させることができる。なお、例外設定指示部１３７は、攻撃を検知したとき、収容ルータ３０に対し、標的からのＤＮＳ要求をコントローラ１０へ転送する旨のルールを設定しておくものとする。これにより、攻撃の検知後、標的からのＤＮＳ要求はコントローラ１０に到達する。なお、例外設定指示部１３７は、境界ルータ２０上の上記の例外の設定は所定時間経過後に消去するようにする。
【００４６】
パケット転送部１３８は、例外設定指示部１３７による各境界ルータ２０への例外ルールの設定後、収容ルータ３０から受信したＤＮＳ要求をいずれかの境界ルータ２０へ転送する。
【００４７】
（境界ルータ）
図４に示すように、境界ルータ２０は、通信制御部２１、記憶部２２、制御部２３を備える。
【００４８】
通信制御部２１は、外部装置との間でデータの送受信を行うための通信インタフェースである。通信制御部２１は、例えば、各種パケットの送受信、コントローラ１０からのルールの受信や、標的宛のＤＮＳ応答のサンプリングの結果の受信等における通信インタフェースを司る。
【００４９】
記憶部２２は、ルーティングテーブルと、ルール情報とを記憶する。
【００５０】
ルーティングテーブルは、制御部２３がパケットの転送先を決定する際に参照する経路情報である。
【００５１】
ルール情報は、境界ルータ２０におけるパケットの処理（通過、遮断（廃棄）、転送等）に関するルールを示した情報である。このルール情報は、コントローラ１０により送信される。境界ルータ２０は、当該境界ルータ２０の状態に応じて、例えば、図６に示すいずれかの状態のルールがルール情報として設定される。つまり、初期状態の境界ルータ２０には初期状態のルールが設定され、リスト準備状態の境界ルータ２０にはリスト準備状態のルールが設定され、リスト防御状態の境界ルータ２０にはリスト防御状態のルールが設定される。なお、図６に示す各状態のルールは、ルールの例外についても併記している。
【００５２】
図６に示す初期状態のルールは、（１）標的宛のＤＮＳ応答およびＵＤＰ後続フラグメントは原則として遮断するというものである。このルールには、（２）コントローラ１０から転送されたＤＮＳ要求に対するＤＮＳ応答は通過させるという例外が設定されている。
【００５３】
また、図６に示すリスト準備状態のルールは、前記した（１）のルールおよび（２）の例外に加え、（３）標的宛ブラックリスト外応答パケットをサンプリングしてコントローラ１０へ送信する、というルールを含む。
【００５４】
また、図６に示すリスト防御状態のルールは、前記した（２）の例外および（３）のルールに加え、（１）に示す、標的宛のＤＮＳ応答およびブラックリストに記載のＩＰアドレスを送信元とする標的宛のＵＤＰ後続フラグメントを原則として遮断するというルールを含む。
【００５５】
なお、ここでは図示を省略しているが、ルール情報には各境界ルータ２０で用いるブラックリストや、各境界ルータ２０で標的宛のＤＮＳ応答のサンプリングを行うときのサンプリングの割合（サンプリングレート）の値も含まれる。
【００５６】
制御部２３の転送制御部２３２（後記）は基本的にはルーティングテーブルによりパケットの転送先を決定するが、ルールが設定されていれば、このルールを適用してパケットの転送先の決定やパケットの廃棄、パケットの廃棄の停止等を行う。
【００５７】
制御部２３は、コントローラ１０から受信したパケット転送や廃棄に関するルール（および例外）に基づき、パケットの転送制御や廃棄を行う。
【００５８】
制御部２３は、ルール管理部２３１と、転送制御部２３２と、トラヒック量測定部２３３と、サンプリング部２３４とを備える。
【００５９】
ルール管理部２３１は、通信制御部２１経由で、コントローラ１０から送信されたルールおよび例外を受信すると、これらのルールおよび例外をルール情報として記憶部２２に格納する。また、ルール管理部２３１はコントローラ１０から、通信制御部２１経由で、ルールや例外の削除指示を受信したとき、これに従い、削除対象のルールを削除する。
【００６０】
転送制御部２３２は、記憶部２２のルーティングテーブルを用いてパケットの転送制御を行う。ここで、転送制御部２３２は、記憶部２２にルール情報に該当するルール（およびその例外）があれば、そのルール（およびその例外）も参照して、パケットの転送制御およびパケットの廃棄を行う。
【００６１】
例えば、ルール情報に、図６に示すリスト防御状態のルールが存在すれば、転送制御部２３２は、これに従い、標的宛のＤＮＳ応答およびブラックリストに記載のＩＰアドレスを送信元とする標的宛のＵＤＰ後続フラグメントを原則として遮断するが、コントローラ１０から送信されたＤＮＳ要求に対するＤＮＳ応答は通過させる。また、標的宛ブラックリスト外応答パケットをコントローラ１０へ送信する。
【００６２】
なお、転送制御部２３２において、受信パケットがＤＮＳ応答であるか否かは送信元ポート番号を見ることで判断できる。例えば、受信パケットの送信元ポート番号＝５３であれば転送制御部２３２は当該受信パケットをＤＮＳ応答と判断する。また、受信パケットがＵＤＰ後続フラグメントか否かはパケットのＩＰヘッダを見ることで判断できる。例えば、転送制御部２３２は、受信パケットのプロトコル番号＝１７（ＵＤＰ）かつオフセットフィールドの値＞０（後続フラグメントであることを示す）であるとき、当該受信パケットをＵＤＰ後続フラグメントと判断する。
【００６３】
トラヒック量測定部２３３は、コントローラ１０の観測部１３１からの指示に従い自身の境界ルータ２０で受信するトラヒック量の測定を行う。例えば、境界ルータ２０が初期状態であれば、トラヒック量測定部２３３は、コントローラ１０の観測部１３１からの指示に従い、当該境界ルータ２０で受信している標的宛のＤＮＳ応答の時間あたりのトラヒック量を測定し、コントローラ１０へ送信する。また、境界ルータ２０がリスト準備状態またはリスト防御状態であれば、トラヒック量測定部２３３は、コントローラ１０の観測部１３１からの指示に従い、当該境界ルータ２０で受信しているブラックリストに非記載のＩＰアドレスを送信元とする標的宛のＤＮＳ応答パケットの時間あたりのトラヒック量を測定し、コントローラ１０へ送信する。
【００６４】
サンプリング部２３４は、転送制御部２３２で受信している標的宛のＤＮＳ応答をサンプリングしてコントローラ１０へ送信する。例えば、当該境界ルータ２０がリスト準備状態またはリスト防御状態であればサンプリング部２３４は転送制御部２３２で受信している標的宛ブラックリスト外応答パケットを所定のレートでサンプリングしてコントローラ１０へ送信する。ここでのサンプリングのレートは、受信した標的宛のＤＮＳ応答の全部でもよいし一部でもよい。
【００６５】
（処理手順）
次に、図７〜図９を用いて通信システムの処理手順を説明する。ここでは、コントローラ１０が境界ルータ２０Ａ，２０Ｂに対し制御を行う場合を例に説明する。
【００６６】
（初期状態）
コントローラ１０は収容ルータ３０のトラフィック情報により、標的への攻撃を検知すると（Ｓ２１２：攻撃検知）、境界ルータ２０Ａ，２０Ｂに初期状態のルールの設定を行う（Ｓ２１３、Ｓ２１４）。つまり、コントローラ１０の攻撃検知部１３０が、攻撃を検知すると、パケット廃棄指示部１３５は、境界ルータ２０Ａ，２０Ｂに対し、攻撃の標的宛のＤＮＳ応答およびＵＤＰ後続フラグメントを原則として遮断する旨のルールを設定する。
【００６７】
上記のルールの設定を受けた境界ルータ２０Ａ，２０Ｂは、標的宛のＤＮＳ応答およびＵＤＰ後続フラグメントを原則として遮断する（Ｓ２１５、Ｓ２１６）。
【００６８】
また、コントローラ１０は、収容ルータ３０に対してルールを設定する（Ｓ２１７）。ここでのルールは、標的からのＤＮＳ要求を受信したときは、当該ＤＮＳ要求をコントローラ１０に転送する旨のルールである。このようなルールが設定された収容ルータ３０は標的からのＤＮＳ要求を受信すると、当該ＤＮＳ要求をコントローラ１０に転送する（Ｓ２１８）。
【００６９】
その後、コントローラ１０は収容ルータ３０経由で標的からのＤＮＳ要求を受信すると、例外設定指示部１３７により、境界ルータ２０Ａ，２０Ｂに対し、当該ＤＮＳ要求に対するＤＮＳ応答を通過させる旨の例外設定を行う（Ｓ２１９、Ｓ２２０）。そして、パケット転送部１３８は、収容ルータ３０経由で受信したＤＮＳ要求をいずれかの境界ルータ２０（例えば、境界ルータ２０Ｂ）へ転送する（Ｓ２２１）。
【００７０】
コントローラ１０が境界ルータ２０Ａ，２０Ｂに対し上記のような設定を行うことで、境界ルータ２０Ａ，２０Ｂは、標的宛のＤＮＳ応答およびＵＤＰ後続フラグメントは原則として遮断するが、標的からのＤＮＳ要求に対するＤＮＳ応答（正当なＤＮＳ応答）は通過させる。
【００７１】
（初期状態→リスト準備状態）
コントローラ１０は、上記のようにして各境界ルータ２０を初期状態に遷移させると、コントローラ１０の観測部１３１は、所定期間ごとに境界ルータ２０Ａ，２０Ｂのトラヒック量の観測を行う（図８のＳ２３１）。例えば、観測部１３１は、境界ルータ２０Ａ，２０Ｂに対し、標的宛のＤＮＳ応答のトラヒック量を測定するように指示し、ポーリング等により所定期間ごとに当該境界ルータ２０Ａ，２０Ｂから当該トラヒック量の測定結果を取得する。
【００７２】
そして、コントローラ１０の状態決定部１３２は、観測された各境界ルータ２０（境界ルータ２０Ａ，２０Ｂ）のトラヒック量に基づき、リスト準備状態へ遷移させる境界ルータ２０を決定する（Ｓ２３２）。例えば、状態決定部１３２は、観測部１３１で観測された境界ルータ２０Ａ，２０Ｂにおける標的宛のＤＮＳ応答のトラヒック量に基づき、境界ルータ２０Ａ，２０Ｂがリスト準備状態に遷移した場合に、境界ルータ２０Ａ，２０Ｂから送信されるであろうＤＮＳ応答のサンプリング結果の時間あたりのトラヒック量の総量を推測する。そして、状態決定部１３２は、推測されたトラヒック量の総量が所定の値を超えない範囲で、初期状態の境界ルータ２０の中から、リスト準備状態へ遷移させる境界ルータ２０の集合を決定する。なお、どの境界ルータ２０が初期状態であるかは、ルータ情報（図５参照）を参照することで特定できる。
【００７３】
次に、コントローラ１０のパケット廃棄指示部１３５は、リスト準備状態へ遷移させると決定した境界ルータ２０（例えば、境界ルータ２０Ａ，２０Ｂ）に対し、リスト準備状態のルールの設定を行う（Ｓ２３３、Ｓ２３４）。つまり、コントローラ１０のパケット廃棄指示部１３５は、境界ルータ２０Ａ，２０Ｂに対し、標的宛のＤＮＳ応答およびＵＤＰ後続フラグメントは原則として遮断する旨のルールを設定する。また、コントローラ１０のパケット取得部１３３は、境界ルータ２０Ａ，２０Ｂに対し、標的宛ブラックリスト外応答パケットをサンプリングしてコントローラ１０へ送信する旨のルールを設定する。なお、境界ルータ２０Ａ，２０Ｂは、Ｓ２１９、Ｓ２２０で設定した例外設定についても引き続き適用する。
【００７４】
そして、上記のルールの設定を受けた境界ルータ２０Ａ，２０Ｂは、標的宛のＤＮＳ応答およびＵＤＰ後続フラグメントを原則として遮断し、標的宛ブラックリスト外応答パケットをサンプリングしてコントローラ１０へ送信する（Ｓ２３５、Ｓ２３６）。なお、Ｓ２１９、Ｓ２２０で設定した例外設定に基づき、境界ルータ２０Ａ，２０Ｂは標的からのＤＮＳ要求に対するＤＮＳ応答（正当なＤＮＳ応答）は通過させる。
【００７５】
コントローラ１０のリスト作成部１３４は、境界ルータ２０Ａ，２０Ｂからサンプリングの結果（標的宛ブラックリスト外応答パケット）を受信すると（Ｓ２３７、Ｓ２３８）、境界ルータ２０Ａ，２０Ｂに対しサンプリングの結果に含まれる送信元ＩＰアドレスを境界ルータ２０Ａ，２０Ｂのブラックリストに追加するよう指示する（Ｓ２３９：ブラックリスト追加指示）。つまり、リスト作成部１３４は、境界ルータ２０Ａに対し、境界ルータ２０Ａからのサンプリングの結果に含まれる送信元ＩＰアドレスをブラックリストに追加するよう指示する。また、リスト作成部１３４は、境界ルータ２０Ｂに対し、境界ルータ２０Ｂからのサンプリングの結果に含まれる送信元ＩＰアドレスをブラックリストに追加するよう指示する。リスト作成部１３４は、上記のようにして境界ルータ２０（２０Ａ，２０Ｂ）からサンプリング結果を受信するたび、当該境界ルータ２０に対し、ブラックリストに当該サンプリング結果に含まれる送信元ＩＰアドレスを追加するよう指示する。これにより、境界ルータ２０Ａ，２０Ｂのブラックリストに攻撃パケットの送信元（例えば、図１のリフレクタ）のＩＰアドレスが蓄積される。
【００７６】
（リスト準備状態→リスト防御状態）
次に、コントローラ１０の状態決定部１３２は、境界ルータ２０Ａ，２０ＢのブラックリストへのＩＰアドレスの追加状況（ブラックリストの成熟度）に基づき、リスト防御状態へ遷移させる境界ルータ２０を決定する（図９のＳ２４０）。例えば、状態決定部１３２は、境界ルータ２０Ａ，２０ＢのブラックリストへのＩＰアドレスの追加状況を監視しＩＰアドレスの追加が所定期間以上行われなくなったとき、当該境界ルータ２０のブラックリストが成熟したと判断し、当該境界ルータ２０をリスト防御状態に遷移させると決定する。
【００７７】
そして、コントローラ１０のパケット廃棄指示部１３５は、リスト防御状態へ遷移させると決定した境界ルータ２０（例えば、境界ルータ２０Ａ，２０Ｂ）に対し、リスト防御状態のルールの設定を行う（Ｓ２４１、Ｓ２４２）。つまり、コントローラ１０のパケット廃棄指示部１３５は、境界ルータ２０Ａ，２０Ｂに対し、標的宛のＤＮＳ応答およびブラックリストに記載されているＩＰアドレスを送信元とする標的宛のＵＤＰ後続フラグメントを原則として遮断する旨のルールを設定する。なお、境界ルータ２０Ａ，２０Ｂは、Ｓ２３３、Ｓ２３４で設定した標的宛ブラックリスト外応答パケットをサンプリングしてコントローラ１０へ送信する旨のルールおよびＳ２１９、Ｓ２２０で設定した例外設定についても引き続き適用する。
【００７８】
そして、上記のルールの設定を受けた境界ルータ２０Ａ，２０Ｂは、標的宛のＤＮＳ応答およびブラックリストに記載されているＩＰアドレスを送信元する標的宛のＵＤＰ後続フラグメントを原則として遮断する。また、標的宛ブラックリスト外応答パケットをサンプリングして送信する（Ｓ２４３、Ｓ２４４）。また、Ｓ２１９、Ｓ２２０で設定した例外設定に基づき、境界ルータ２０Ａ，２０Ｂは標的からのＤＮＳ要求に対するＤＮＳ応答（正当なＤＮＳ応答）は通過させる。さらに、コントローラ１０のリスト作成部１３４は、Ｓ２３９と同様に、境界ルータ２０Ａ，２０Ｂからサンプリングの結果（標的宛ブラックリスト外応答パケット）を受信するたび、境界ルータ２０Ａ，２０Ｂに対しサンプリングの結果に含まれる送信元ＩＰアドレスを境界ルータ２０Ａ，２０Ｂのブラックリストに追加するよう指示する。これにより、コントローラ１０のリスト作成部１３４は、新たな攻撃元から標的宛に攻撃パケットが送信された場合も、この攻撃元のＩＰアドレスをブラックリストに追加することができる。
【００７９】
このようにすることで、通信システムは、反射型ＤＤｏＳ攻撃等が行われた場合に、後続フラグメントについても攻撃パケットを識別して境界ルータ２０で遮断する。また、通信システムは攻撃の標的からのＤＮＳ要求に対するＤＮＳ応答（正当なＤＮＳ応答）は通過させる。したがって、通信システムは、攻撃パケットの大部分を遮断しつつ、正当なパケットは通過させることができる。
【００８０】
さらに、通信システムは、攻撃検知後、標的宛のＤＮＳ応答およびＵＤＰ後続フラグメントを遮断し、ブラックリストがある程度成熟したことを確認してから、当該ブラックリストを用いて標的宛のＵＤＰ後続フラグメントの遮断を行う。これにより、通信システムは、不正なＵＤＰ後続フラグメントによる攻撃を低減することができる。さらに、通信システムは、ブラックリストがある程度成熟したことを自動検知するので、正当なＵＤＰ後続フラグメントの疎通復旧を早期に行うことができる。
【００８１】
また、通信システムは、境界ルータ２０を初期状態からリスト準備状態に遷移させるとき、コントローラ１０が境界ルータ２０から受信するトラヒック量の総量が所定の範囲内となるよう遷移させるので、コントローラ１０が過負荷な状態になるのを避けることができる。また、通信システムは、コントローラ１０で処理可能な負荷量を最大限活用して各境界ルータ２０のブラックリストを作成することができる。
【００８２】
（その他の実施形態）
なお、コントローラ１０の状態決定部１３２が初期状態の境界ルータ２０群の中からリスト準備状態へ遷移させる境界ルータ２０を決定するとき、中継網内には既にリスト防御状態に遷移している境界ルータ２０が存在する場合がある。このような場合、状態決定部１３２は、リスト防御状態の境界ルータ２０からコントローラ１０に転送される標的宛のＤＮＳ応答のトラヒック量についても考慮する必要がある。このため、状態決定部１３２は、各境界ルータ２０からコントローラ１０に転送されるであろう標的宛のＤＮＳ応答のトラヒック量の総量を以下の式（２）により計算する。
【００８３】
Ｔ＿１＊ｒ＿１＋Ｔ＿２＊ｒ＿２…式（２）
Ｔ＿１：リスト準備状態の境界ルータ２０それぞれで受信する標的宛ブラックリスト外応答パケットの時間あたりのトラヒック量の合計
Ｔ＿２：リスト防御状態の境界ルータ２０それぞれで受信する標的宛ブラックリスト外応答パケットの時間あたりのトラヒック量の合計
ｒ＿１：リスト準備状態の境界ルータ２０それぞれの応答パケットのサンプリングの割合（つまり、リスト準備状態の境界ルータ２０それぞれで受信する攻撃の標的宛の所定のサービスの応答パケットのうち、コントローラ１０のパケット取得部１３３で取得する応答パケットの割合）
ｒ＿２：リスト防御状態の境界ルータ２０それぞれの応答パケットのサンプリングの割合（つまり、リスト防御状態の境界ルータ２０それぞれで受信する攻撃の標的宛の所定のサービスの応答パケットのうち、コントローラ１０のパケット取得部１３３で取得する応答パケットの割合）
【００８４】
このようにすることで、状態決定部１３２は、中継網内にリスト防御状態の境界ルータ２０が存在する場合でも、各境界ルータ２０からコントローラ１０に転送されるであろう標的宛のＤＮＳ応答のトラヒック量の総量を計算することができる。その結果、状態決定部１３２は、各境界ルータ２０からコントローラ１０に転送されるであろう標的宛のＤＮＳ応答のトラヒック量の総量を精度よく計算することができる。
【００８５】
また、コントローラ１０のパケット廃棄指示部１３５は、リスト防御状態の境界ルータ２０に対し、攻撃の標的宛の所定のサービスの応答パケット、および、ブラックリストに記載のＩＰアドレスを送信元とする攻撃の標的宛のフラグメント化されたパケットのいずれかを受信したとき、当該パケットを廃棄するよう指示することとしたが、これに限定されない。例えば、パケット廃棄指示部１３５は、リスト防御状態の境界ルータ２０に対し、ブラックリストに記載のＩＰアドレスを送信元とする攻撃の標的宛のパケットを受信したとき、当該パケットを廃棄するよう指示してもよい。このようにすることでも、境界ルータ２０は当該攻撃通信による攻撃パケットを廃棄することができる。
【００８６】
また、通信システムは、ブラックリストの作成および管理を各境界ルータ側で行うようにしてもよい。この場合のコントローラ１００および境界ルータ２００を、図１０を用いて説明する。前記した実施形態と同じ構成は、同じ符号を付して説明を省略する。
【００８７】
例えば、コントローラ１００は、所定の宛先へのＤＮＳ応答の集中（標的宛の攻撃）を検知すると、各境界ルータ２００に対し、以下の指示を行う。すなわち、コントローラ１００は、各境界ルータ２００に対し、自身の境界ルータ２００の備えるブラックリストに未記載のＩＰアドレスを送信元とする標的宛のＤＮＳ応答を受信した場合、ブラックリストに当該ＩＰアドレスを追加するよう指示する。そして、コントローラ１００は、各境界ルータ２００に対し、標的宛のＤＮＳ応答およびブラックリストに記載のＩＰアドレスを送信元とするＵＤＰ後続フラグメントを受信した場合、これを遮断するよう指示する。また、コントローラ１００は、各境界ルータ２００に対し、標的宛のＤＮＳ要求に対するＤＮＳ応答については通過させる旨の例外設定を行う。つまり、コントローラ１００は、各境界ルータ２００に対し、正当なＤＮＳ応答は通過させる旨の例外設定を行う。このようにすることでも通信システムは、攻撃パケットの大部分を遮断しつつ、正当なパケットを通過させることができる。
【００８８】
図１０に示すように、コントローラ１００の制御部１３は、攻撃検知部１３０と、パケット転送指示部１３６と、例外設定指示部１３７と、パケット転送部１３８と、防御指示部１３９とを備える。防御指示部１３９は、攻撃検知部１３０により攻撃を検知すると、各境界ルータ２００に対し、標的のＩＰアドレスの通知と防御設定指示を行う。ここでの防御設定指示は、標的宛のＤＮＳ応答および自身の境界ルータ２００の備えるブラックリストに記載のＩＰアドレスを送信元とするＵＤＰ後続フラグメントを遮断し、また、自身の境界ルータ２００の備えるブラックリストに未記載のＩＰアドレスを送信元とする標的宛のＤＮＳ応答を受信した場合、ブラックリストに当該ＩＰアドレスを追加する旨の指示である。
【００８９】
また、境界ルータ２００の制御部２３は、ルール管理部２３１と、転送制御部２３２と、攻撃観測部２３５と、リスト作成部２３６とを備える。攻撃観測部２３５は、防御指示部１３９から標的のＩＰアドレスの通知と防御設定指示を受け付けると、以下のようにしてパケットの観測を行う。すなわち、攻撃観測部２３５は、転送制御部２３２および通信制御部２１により転送されるパケットを観測し、ブラックリストに未記載のＩＰアドレスを送信元とする標的宛のＤＮＳ応答を受信した場合、当該ＩＰアドレスをリスト作成部２３６に通知する。この通知を受けたリスト作成部２３６は、ブラックリストに当該ＩＰアドレスを追加する。また、ルール管理部２３１は、防御指示部１３９から標的のＩＰアドレスの通知と防御設定指示を受け付けると、ルール情報に防御設定を行う。つまり、ルール管理部２３１は標的宛のＤＮＳ応答を遮断する旨のルールを記憶部２２のルール情報に設定する。また、ルール管理部２３１は、ブラックリストに新たなＩＰアドレスが追加されるたびに、当該ＩＰアドレスを送信元とするＵＤＰ後続フラグメントを遮断する旨のルールを記憶部２２のルール情報に設定する。
【００９０】
次に、図１１を用いて、図１０に示したコントローラ１００および境界ルータ２００を備える通信システムの処理手順を説明する。ここでは、コントローラ１００が境界ルータ２００Ａ，２００Ｂに対し制御を行う場合を例に説明する。
【００９１】
まず、コントローラ１００は収容ルータ３０のトラフィック情報により、標的への攻撃を検知すると（Ｓ３１２：攻撃検知）、防御指示部１３９は、境界ルータ２００Ａ，２００Ｂに対し、標的のＩＰアドレスの通知および防御設定指示を行う（Ｓ３１３、Ｓ３１４）。
【００９２】
上記の標的のＩＰアドレスの通知および防御設定指示を受けた境界ルータ２００Ａ，２００Ｂは、標的宛のＤＮＳ応答およびブラックリストに記載のＩＰアドレスを送信元とするＵＤＰ後続フラグメントを原則として遮断する。また、境界ルータ２００Ａ，２００Ｂは、ブラックリストに非記載のＩＰアドレスを送信元とする標的宛のＤＮＳ応答を受信するたびに当該ＩＰアドレスをブラックリストに追加する（Ｓ３１５、Ｓ３１６）。
【００９３】
また、コントローラ１００は、前記したコントローラ１０と同様に、収容ルータ３０に対してルールを設定する（Ｓ３１７）。ここでのルールは、標的からのＤＮＳ要求を受信したときは、当該ＤＮＳ要求をコントローラ１００に転送する旨のルールである。このようなルールが設定された収容ルータ３０は標的からのＤＮＳ要求を受信すると、当該ＤＮＳ要求をコントローラ１００に転送する（Ｓ３１８）。
【００９４】
その後、コントローラ１００は収容ルータ３０経由で標的からのＤＮＳ要求を受信すると、例外設定指示部１３７により、境界ルータ２００Ａ，２００Ｂに対し、当該ＤＮＳ要求に対するＤＮＳ応答を通過させる旨の例外設定を行う（Ｓ３１９、Ｓ３２０）。そして、パケット転送部１３８は、収容ルータ３０経由で受信したＤＮＳ要求をいずれかの境界ルータ２００（例えば、境界ルータ２００Ｂ）へ転送する（Ｓ３２１）。
【００９５】
このようにすることでも通信システムは、攻撃パケットの大部分を遮断しつつ、正当なパケットを通過させることができる。なお、上記の通信システムの場合、攻撃検知時に各境界ルータ２００自身でブラックリストの作成を行う。つまり、コントローラ１００が境界ルータ２００からパケットのサンプリングを行う必要はないので、攻撃検知時に各境界ルータ２００は迅速にブラックリストの作成を開始し、攻撃に対する防御を行うことができる。なお、上記の境界ルータ２００は、標的宛のＤＮＳ応答およびブラックリストに記載のＩＰアドレスを送信元とするＵＤＰ後続フラグメントを遮断することとしたが、ブラックリストに記載のＩＰアドレスを送信元とする攻撃の標的宛のパケットをすべて遮断してもよい。
【００９６】
また、上記の境界ルータ２００は、例えば、図１２に示すように、OpenFlow対応ルータと、コントローラ１００の制御を受けるサブコントローラとにより実現してもよい。このサブコントローラは汎用的な計算能力を有するため境界ルータ２００自身でブラックリストを管理することができる。具体的には、図１０に示した境界ルータ２００の通信制御部２１、記憶部２２および制御部２３の転送制御部２３２の機能をOpenFlow対応ルータが実現し、境界ルータ２００の通信制御部２１、記憶部２２、制御部２３のルール管理部２３１、攻撃観測部２３５およびリスト作成部２３６の機能をサブコントローラが実現する。
【００９７】
境界ルータ２００が上記のようにOpenFlow対応ルータとサブコントローラとにより実現される場合の処理手順の一例を以下に示す。
【００９８】
まず、コントローラ１００が攻撃を検知すると、各境界ルータ２００のサブコントローラに対し、標的のＩＰアドレスの通知および防御設定指示を行う。次に、標的のＩＰアドレスの通知および防御設定指示を受けたサブコントローラは、自身が管理するOpenFlow対応ルータ（つまり、当該サブコントローラが装備される境界ルータ２００のOpenFlow対応ルータ）に対して、以下の２点を指示する。すなわち、サブコントローラは、（１）標的宛のＤＮＳ応答のうち、ブラックリストに未記載のＩＰアドレスを送信元とするパケットを受信した際には、当該パケットをサブコントローラに転送する。（２）標的宛のＤＮＳ応答およびブラックリストに記載のＩＰアドレスを送信元とするＵＤＰ後続フラグメントを遮断する。そして、サブコントローラは、（１）の指示に基づき、自身が管理するOpenFlow対応ルータから転送されたパケットを受信した際には、当該パケットの送信元ＩＰアドレスをブラックリストに追加する。
【００９９】
また、コントローラ１００は収容ルータ３０経由で標的からのＤＮＳ要求を受信すると、各境界ルータ２００のサブコントローラに対し、当該ＤＮＳ要求に対するＤＮＳ応答を通過させる旨の例外設定を行う。このような例外設定を受けたサブコントローラは、自身が管理するOpenFlow対応ルータに対して、当該ＤＮＳ要求に対するＤＮＳ応答を通過させるよう指示する。これにより、境界ルータ２００は、標的からの正当なパケットについて通過させることができる。
【０１００】
（プログラム）
また、上記実施形態に係るコントローラ１０，１００、境界ルータ２０，２００が実行する処理をコンピュータが実行可能な言語で記述した制御プログラムを作成し、実行することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータに読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、コントローラ１０，１００、境界ルータ２０，２００と同様の機能を実現する制御プログラムを実行するコンピュータの一例を説明する。
【０１０１】
図１３は、制御プログラムを実行するコンピュータを示す図である。図１３に示すように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ（Central  Processing  Unit）１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。これらの各部は、バス１０８０によって接続される。
【０１０２】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。ディスクドライブ１１００には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース１０５０には、例えば、マウス１１１０およびキーボード１１２０が接続される。ビデオアダプタ１０６０には、例えば、ディスプレイ１１３０が接続される。
【０１０３】
ここで、図１３に示すように、ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３およびプログラムデータ１０９４を記憶する。上記実施形態で説明したルータ情報、ルール情報等は、例えばハードディスクドライブ１０９０やメモリ１０１０に記憶される。
【０１０４】
また、制御プログラムは、例えば、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、ハードディスクドライブ１０９０に記憶される。具体的には、上記実施形態で説明したコントローラ１０が実行する各処理が記述されたプログラムモジュールが、ハードディスクドライブ１０９０に記憶される。
【０１０５】
また、制御プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、ハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した各手順を実行する。
【０１０６】
なお、制御プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、制御プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【０１０７】
１０，１００    コントローラ（制御装置）
２０，２００    境界ルータ
３０    収容ルータ
１３０  攻撃検知部
１３１  観測部
１３２  状態決定部
１３３  パケット取得部
１３４  リスト作成部
１３５  パケット廃棄指示部
１３６  パケット転送指示部
１３７  例外設定指示部
１３８  パケット転送部
１３９  防御指示部
２３１  ルール管理部
２３２  転送制御部
２３３  トラヒック量測定部
２３４  サンプリング部
２３５  攻撃観測部
２３６  リスト作成部
【図１】
2016080446.tif 000003
【図２】
2016080446.tif 000004
【図３】
2016080446.tif 000005
【図４】
2016080446.tif 000006
【図５】
2016080446.tif 000007
【図６】
2016080446.tif 000008
【図７】
2016080446.tif 000009
【図８】
2016080446.tif 000010
【図９】
2016080446.tif 000011
【図１０】
2016080446.tif 000012
【図１１】
2016080446.tif 000013
【図１２】
2016080446.tif 000014
【図１３】
2016080446.tif 000015
【国際調査報告】
2016080446.tif 000016
2016080446.tif 000017
2016080446.tif 000018