特許第6616262号(P6616262)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧

<>
  • 特許6616262-通信システム及びトラヒック制御方法 図000002
  • 特許6616262-通信システム及びトラヒック制御方法 図000003
  • 特許6616262-通信システム及びトラヒック制御方法 図000004
  • 特許6616262-通信システム及びトラヒック制御方法 図000005
  • 特許6616262-通信システム及びトラヒック制御方法 図000006
  • 特許6616262-通信システム及びトラヒック制御方法 図000007
  • 特許6616262-通信システム及びトラヒック制御方法 図000008
  • 特許6616262-通信システム及びトラヒック制御方法 図000009
  • 特許6616262-通信システム及びトラヒック制御方法 図000010
  • 特許6616262-通信システム及びトラヒック制御方法 図000011
  • 特許6616262-通信システム及びトラヒック制御方法 図000012
  • 特許6616262-通信システム及びトラヒック制御方法 図000013
  • 特許6616262-通信システム及びトラヒック制御方法 図000014
  • 特許6616262-通信システム及びトラヒック制御方法 図000015
  • 特許6616262-通信システム及びトラヒック制御方法 図000016
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6616262
(24)【登録日】2019年11月15日
(45)【発行日】2019年12月4日
(54)【発明の名称】通信システム及びトラヒック制御方法
(51)【国際特許分類】
   G06F 21/55 20130101AFI20191125BHJP
   H04L 12/721 20130101ALI20191125BHJP
【FI】
   G06F21/55
   H04L12/721 Z
【請求項の数】9
【全頁数】18
(21)【出願番号】特願2016-159695(P2016-159695)
(22)【出願日】2016年8月16日
(65)【公開番号】特開2018-28764(P2018-28764A)
(43)【公開日】2018年2月22日
【審査請求日】2018年9月3日
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【弁理士】
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】與語 一史
(72)【発明者】
【氏名】前田 浩明
(72)【発明者】
【氏名】白井 信也
(72)【発明者】
【氏名】相原 正夫
【審査官】 和平 悠希
(56)【参考文献】
【文献】 特開2011−076468(JP,A)
【文献】 特開平11−039267(JP,A)
【文献】 国際公開第2009/093333(WO,A1)
【文献】 米国特許出願公開第2016/0092250(US,A1)
【文献】 米国特許出願公開第2013/0007737(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/55
H04L 12/721
(57)【特許請求の範囲】
【請求項1】
ユーザから受信したトラヒックをコンテナに振り分けるトラヒック振り分け装置と、
前記トラヒックを処理するコンテナを管理するコンテナマネージャ装置と、
前記コンテナマネージャ装置からの指示に従ってコンテナを配備するコンテナ配備サーバと、
を有する通信システムであって、
前記コンテナマネージャ装置は、所定のコンテナ収容方式に従って前記トラヒックを処理するコンテナを決定し、前記トラヒック振り分け装置は、前記決定されたコンテナに前記トラヒックを振り分け
前記コンテナマネージャ装置は、1ユーザに1つのコンテナを割り当てるユーザ単位割当方式に従って、前記ユーザから受信したトラヒックを処理するコンテナを決定する通信システム。
【請求項2】
ユーザから受信したトラヒックをコンテナに振り分けるトラヒック振り分け装置と、
前記トラヒックを処理するコンテナを管理するコンテナマネージャ装置と、
前記コンテナマネージャ装置からの指示に従ってコンテナを配備するコンテナ配備サーバと、
を有する通信システムであって、
前記コンテナマネージャ装置は、所定のコンテナ収容方式に従って前記トラヒックを処理するコンテナを決定し、前記トラヒック振り分け装置は、前記決定されたコンテナに前記トラヒックを振り分け、
前記コンテナマネージャ装置は、複数ユーザに1つのコンテナを割り当てる複数ユーザ単位割当方式に従って、前記ユーザから受信したトラヒックを処理するコンテナを決定する通信システム。
【請求項3】
ユーザから受信したトラヒックをコンテナに振り分けるトラヒック振り分け装置と、
前記トラヒックを処理するコンテナを管理するコンテナマネージャ装置と、
前記コンテナマネージャ装置からの指示に従ってコンテナを配備するコンテナ配備サーバと、
を有する通信システムであって、
前記コンテナマネージャ装置は、所定のコンテナ収容方式に従って前記トラヒックを処理するコンテナを決定し、前記トラヒック振り分け装置は、前記決定されたコンテナに前記トラヒックを振り分け、
前記コンテナマネージャ装置は、一定時間内にアクセスしたユーザに1つのコンテナを割り当てる時間単位割当方式に従って、前記ユーザから受信したトラヒックを処理するコンテナを決定する通信システム。
【請求項4】
前記コンテナマネージャ装置は更に、各コンテナのリソース使用状況に応じて収容するユーザ数を動的に調整する収容ユーザ数変動方式に従って、各コンテナに収容するユーザ数を動的に調整する、請求項又は記載の通信システム。
【請求項5】
前記コンテナ配備サーバに配備されたコンテナの個数が所定の閾値以上になると、前記コンテナマネージャ装置は、各コンテナに収容可能なユーザ数の上限値までユーザが収容されるように前記配備されたコンテナに収容されるユーザを整理し、収容ユーザ数が0になったコンテナを削除する、請求項乃至何れか一項記載の通信システム。
【請求項6】
前記コンテナマネージャ装置は、ユーザと該ユーザを収容するコンテナとの間の通信が一定時間以上行われなかったとき、前記コンテナを削除する、請求項乃至何れか一項記載の通信システム。
【請求項7】
ユーザからトラヒックを受信するステップと、
所定のコンテナ収容方式に従って前記トラヒックを処理するコンテナを決定するステップと、
前記決定されたコンテナに前記トラヒックを振り分けるステップと、
を有し、
前記決定するステップは、1ユーザに1つのコンテナを割り当てるユーザ単位割当方式に従って、前記ユーザから受信したトラヒックを処理するコンテナを決定するトラヒック制御方法。
【請求項8】
ユーザからトラヒックを受信するステップと、
所定のコンテナ収容方式に従って前記トラヒックを処理するコンテナを決定するステップと、
前記決定されたコンテナに前記トラヒックを振り分けるステップと、
を有し、
前記決定するステップは、複数ユーザに1つのコンテナを割り当てる複数ユーザ単位割当方式に従って、前記ユーザから受信したトラヒックを処理するコンテナを決定するトラヒック制御方法。
【請求項9】
ユーザからトラヒックを受信するステップと、
所定のコンテナ収容方式に従って前記トラヒックを処理するコンテナを決定するステップと、
前記決定されたコンテナに前記トラヒックを振り分けるステップと、
を有し、
前記決定するステップは、一定時間内にアクセスしたユーザに1つのコンテナを割り当てる時間単位割当方式に従って、前記ユーザから受信したトラヒックを処理するコンテナを決定するトラヒック制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、トラヒックを制御する通信システムに関し、Webサーバに対して行われるサーバリソース消費型DDoS (Distributed Denial of Service attack)攻撃とゼロデイ攻撃等のサーバ脆弱性をついた攻撃の対処のためのWebサーバコンテナ制御技術及びネットワーク制御技術に関する。
【背景技術】
【0002】
近年、ネットワークを通したサイバー攻撃が増加及び多様化している。その中で、標的型攻撃、ゼロデイ攻撃等の未知の脆弱性をついた攻撃、Slow DoS攻撃といった、既知の手法ではない、もしくは閾値や振る舞い分析での検知が困難なために、従来のセキュリティ製品では検知困難な攻撃が問題となっている。
【0003】
こういった攻撃を対象に、さまざまな対策が考えられている。主な対策方法としては、通信トラヒックをフォレンジック製品に転送し、長期且つ詳細に通信を分析することで攻撃を発見する方法や、サンドボックスにメール等の通信トラヒックを転送し、挙動を監視することで攻撃を検知する方法がある。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】"複数台のおとりマシンによるHTTP-GET Flood攻撃対策",吉田祥真, 三上烈史, 小林良太郎, 金岡晃, 加藤雅彦, FIT2012(第11回情報科学技術フォーラム)
【発明の概要】
【発明が解決しようとする課題】
【0005】
フォレンジック製品によるこれらの攻撃の検知では、分析までは行うが、結局人が攻撃トラヒックかどうかの判断を行う。従って、そのためのスキルが必要となり、またトラヒックの規模によってはトラヒックの精査に多大なコストがかかってしまう。また、サンドボックスのような手法についても、サンドボックス環境を検知して攻撃を止めてしまうマルウェアがあるなど、ハッカーが対策を施している場合がある。また、これらの対策をとっても、結局検知するまで防御は行わないため、一度は攻撃が成功してしまう。
【0006】
この課題を解決するために、攻撃の無害化という方法がある。これは、攻撃対象となる端末を仮想化技術等で細分化することで、攻撃の影響を抑制し、攻撃を受けた端末を素早く削除することで攻撃をなかったことにし、攻撃を無害化するというものである。例えば、クライアント端末で攻撃の感染経路となり得るWebブラウザやメーラを仮想化し、それぞれのアプリケーションのみを実行する1つのマシンとしてリソースを分離し、クライアント端末自体に攻撃が届かないようにするリソース分離方法がある。このような方法には、クライアント端末に負荷をなるべくかけずに迅速に仮想端末を生成・削除する技術が必要であり、そのための技術としてコンテナ技術が考えられている。
【0007】
一方、サーバ側では、あらかじめ攻撃者用のサーバのバーチャルマシーン(VM)を設定し、攻撃トラヒックをそのVMに送ることで、通常ユーザ向けのサーバを守る技術がある(非特許文献1)。しかしながら、この方法では、検知できない攻撃を防ぐことはできない。また、先に述べたリソース分離方法を用いても、複数のユーザがサーバにアクセスするため、サーバ自体は攻撃を無害化できるが、クライアント側への攻撃影響は抑制されない。例えば、DoS攻撃により一部の情報のみが攻撃されても、すべてのクライアントが利用できなくなったり、ゼロデイ攻撃によりデータが書き換えられて、すべてのクライアントが感染してしまう等の問題がある。
【0008】
上述した問題を鑑み、本発明の課題は、サイバー攻撃が標的に届くことを前提としたとき、当該サイバー攻撃によるユーザへの影響を抑制するための技術を提供することである。
【課題を解決するための手段】
【0009】
上記課題を解決するため、本発明の一態様は、ユーザから受信したトラヒックをコンテナに振り分けるトラヒック振り分け装置と、前記トラヒックを処理するコンテナを管理するコンテナマネージャ装置と、前記コンテナマネージャ装置からの指示に従ってコンテナを配備するコンテナ配備サーバとを有する通信システムであって、前記コンテナマネージャ装置は、所定のコンテナ収容方式に従って前記トラヒックを処理するコンテナを決定し、前記トラヒック振り分け装置は、前記決定されたコンテナに前記トラヒックを振り分ける通信システムに関する。
【発明の効果】
【0010】
本発明によると、サイバー攻撃が標的に届くことを前提としたとき、当該サイバー攻撃によるユーザへの影響を抑制することができる。
【図面の簡単な説明】
【0011】
図1図1は、本発明の一実施例による通信システムの構成を示すブロック図である。
図2図2は、本発明の一実施例によるトラヒック振り分け処理を示す概略図である。
図3図3は、本発明の一実施例によるユーザ単位割当方式を示す概略図である。
図4図4は、本発明の一実施例による複数ユーザ単位割当方式を示す概略図である。
図5図5は、本発明の一実施例による時間単位割当方式を示す概略図である。
図6図6は、本発明の一実施例による時間単位割当方式によるコンテナ管理処理を示すフローチャートである。
図7図7は、本発明の一実施例による収容ユーザ数変動方式を示す概略図である。
図8図8は、本発明の一実施例による収容ユーザ数変動方式によるコンテナ管理処理を示すフローチャートである。
図9図9は、本発明の一実施例によるトラヒック制御処理を示すシーケンス図である。
図10図10は、本発明の一実施例によるトラヒック制御処理を示すシーケンス図である。
図11図11は、本発明の一実施例による収容ユーザ整理処理を示す概略図である。
図12図12は、本発明の一実施例による収容ユーザ整理処理を示すシーケンス図である。
図13図13は、本発明の一実施例による収容ユーザ整理処理を示すシーケンス図である。
図14図14は、本発明の一実施例によるコンテナ削除処理を示す概略図である。
図15図15は、本発明の一実施例によるコンテナ削除処理を示すシーケンス図である。
【発明を実施するための形態】
【0012】
以下、図面に基づいて本発明の実施の形態を説明する。
【0013】
以下の実施例では、トラヒックを制御する通信システム及び方法が開示される。後述される実施例によると、通信システムは、コンテナ技術を利用してWebサーバを複数のWebサーバコンテナに分離し、Webサーバのリソースを少数のユーザ毎に分離する。これにより、Webサーバにおいて他のユーザに対して影響を及ぼす攻撃が発生した場合、当該攻撃が検知できない場合であっても、影響を及ぼすユーザの範囲を極小化することが可能であり、ユーザのサービス利用の可用性及びサービスの完全性を向上させることができる。
【0014】
まず、本発明の一実施例による通信システムの構成を説明する。図1は、本発明の一実施例による通信システムの構成を示すブロック図である。
【0015】
図1に示されるように、通信システム10は、トラヒック振り分け装置50、コンテナマネージャ100、コンテナ配備サーバ200及び共有ストレージサーバ300を有する。トラヒック振り分け装置50、コンテナマネージャ100、コンテナ配備サーバ200及び共有ストレージサーバ300は、典型的には、サーバにより実現されてもよく、例えば、バスを介し相互接続されるドライブ装置、補助記憶装置、メモリ装置、プロセッサ、インタフェース装置及び通信装置から構成される。トラヒック振り分け装置50、コンテナマネージャ100、コンテナ配備サーバ200及び共有ストレージサーバ300について後述される各種機能及び処理を実現するプログラムは、CD−ROM(Compact Disk−Read Only Memory)、DVD(Digital Versatile Disk)、フラッシュメモリなどの記録媒体によって提供されてもよく、プログラムを記憶した記録媒体がドライブ装置にセットされると、プログラムが記録媒体からドライブ装置を介して補助記憶装置にインストールされる。但し、プログラムのインストールは必ずしも記録媒体により行う必要はなく、ネットワークなどを介し何れかの外部装置からダウンロードするようにしてもよい。補助記憶装置は、インストールされたプログラムを格納すると共に、必要なファイルやデータなどを格納する。メモリ装置は、プログラムの起動指示があった場合に、補助記憶装置からプログラムやデータを読み出して格納する。プロセッサは、メモリ装置に格納されたプログラムやプログラムを実行するのに必要なパラメータなどの各種データに従って、トラヒック振り分け装置50、コンテナマネージャ100、コンテナ配備サーバ200及び共有ストレージサーバ300の各種機能及び処理を実行する。インタフェース装置は、ネットワーク又は外部装置に接続するための通信インタフェースとして用いられる。通信装置は、インターネットなどのネットワークと通信するための各種通信処理を実行する。しかしながら、上述したハードウェア構成は単なる一例であり、トラヒック振り分け装置50、コンテナマネージャ100、コンテナ配備サーバ200及び共有ストレージサーバ300は、上述したハードウェア構成に限定されるものでなく、他の何れか適切なハードウェア構成により実現されてもよい。
【0016】
トラヒック振り分け装置50は、コンテナマネージャ100により決定されたコンテナにユーザから受信したトラヒックを振り分ける。図示されるように、トラヒック振り分け装置50は、以降において詳細に説明されるトラヒック振り分け部51及びトラヒック変換設定記憶部52を有する。
【0017】
コンテナマネージャ100は、トラヒックを処理するコンテナを管理すると共に、所定のコンテナ収容方式に従ってトラヒックを処理するコンテナを決定する。具体的には、コンテナマネージャ100は、後述されるユーザ単位割当方式、複数ユーザ単位割当方式、時間単位割当方式、収容ユーザ数変動方式などの何れかのコンテナ収容方式に従って、Webサーバにアクセスするユーザを収容するWebサーバコンテナ210を決定し、各ユーザのトラヒックをWebサーバコンテナ210に振り分けるためのトラヒック変換設定をトラヒック振り分け装置50に通知する。また、コンテナマネージャ100は、コンテナ配備サーバ200に対してWebサーバコンテナ210の生成、整理及び削除を要求すると共に、コンテナマネージャ100は、コンテナ配備サーバ200に配備された各Webサーバコンテナ210のリソース(CPU使用率、メモリ使用率等)をポーリング等によって監視する。図示されるように、コンテナマネージャ100は、以降において詳細に説明されるコンテナ収容ユーザデータベース(DB)110、コンテナ収容計算エンジン120及びWebサーバコンテナイメージ格納部130を有する。
【0018】
コンテナ配備サーバ200は、コンテナマネージャ100からの指示に従ってコンテナを配備する。具体的には、コンテナ配備サーバ200は、Webサーバコンテナ210を有し、コンテナマネージャ100からの指示に従ってWebサーバコンテナ210を生成及び削除する。
【0019】
Webサーバコンテナ210は、Webサーバのサービスをユーザに提供する。各Webサーバコンテナ210には、他のWebサーバコンテナ210から分離されたリソース(CPU、メモリ等)が割り当てられる。従って、各Webサーバコンテナ210は、コンテナ技術によって他のWebサーバコンテナ210における処理状況による影響を受けることなく、収容されたユーザに対してサービスを提供することができる。
【0020】
共有ストレージサーバ300は、動画ファイル等の大容量データを格納する。共有ストレージサーバ300を備えることによって、Webサーバが大容量ファイルを提供する場合、各Webサーバコンテナ210が当該ファイルを複製してファイルを重複して格納し、コンテナ配備サーバ200におけるリソースを逼迫させる事態を回避することができる。なお、共有ストレージサーバ300は、Webサーバコンテナ210からは読み込みのみ可能とされ、コンテンツの変更はコンテナマネージャ100の管理者のみ許可されてもよい。これにより、Webサーバコンテナ210経由の攻撃を防ぐことができる。
【0021】
ユーザは、Webサーバ又はWebサーバコンテナ210にアクセスするユーザ端末を操作する。ユーザには攻撃者も含まれる。
【0022】
次に、トラヒック振り分け装置50の各構成要素を説明する。
【0023】
トラヒック振り分け部51は、トラヒック変換設定記憶部52に保持されるトラヒック変換設定情報に基づき各ユーザのWebサーバ宛のトラヒックを当該ユーザに割り当てられたコンテナに転送する。具体的には、新規ユーザからWebサーバへのアクセス要求を受信すると、トラヒック振り分け部51は、トラヒック情報として当該ユーザのユーザ識別子をコンテナマネージャ100に通知する。コンテナマネージャ100によって当該ユーザにコンテナが割り当てられると、トラヒック振り分け部51は、ユーザに割り当てられたコンテナを示すトラヒック変換設定情報に基づき、当該ユーザからのWebサーバ宛のトラヒックを当該ユーザに割り当てられたコンテナに転送する。なお、トラヒック振り分け部51は、トラヒック情報として、当該ユーザのパケットが最後に通過した時間を更に通知してもよい。
【0024】
トラヒック変換設定記憶部52は、トラヒック送信元のユーザの識別子と当該ユーザとの間で送受信されるトラヒックの送信先アドレス及び/又は送信元アドレスに対する変換設定とを規定するトラヒック変換設定情報を格納する。当該トラヒック変換設定情報は、コンテナマネージャ100によって設定される。
【0025】
例えば、トラヒック変換設定記憶部52が、図2に示されるようなテーブル形式のトラヒック変換設定情報を保持している場合、トラヒック振り分け部51は、ユーザから受信したトラヒックのユーザ識別子を特定すると、トラヒック変換設定情報を参照して特定したユーザ識別子に対応する変換設定に従って当該トラヒックの送信先アドレスを変換し、変換後の送信先アドレス(Webサーバコンテナ210)に当該トラヒックを転送する。また、Webサーバコンテナ210からユーザ宛のトラヒックを受信すると、トラヒック振り分け部51は、トラヒック変換設定情報に従って送信元アドレスを送信元のWebサーバコンテナ210のアドレスからWebサーバのグローバルIPアドレス等に変換し、送信先アドレスに当該トラヒックを転送する。
【0026】
次に、コンテナマネージャ100の各構成要素を説明する。
【0027】
コンテナ収容ユーザデータベース110は、各Webサーバコンテナ210と当該Webサーバコンテナ210に収容されるユーザとの関連付けを示すコンテナ収容ユーザ情報を保持する。当該コンテナ収容ユーザ情報は、コンテナ収容計算エンジン120による計算結果に基づき設定される。
【0028】
コンテナ収容計算エンジン120は、コンテナ収容ユーザデータベース110におけるコンテナ収容ユーザ情報に従って、Webサーバにアクセスするユーザを収容するコンテナを決定する。具体的には、新規ユーザがWebサーバにアクセスすると、トラヒック振り分け装置50は、当該ユーザからのトラヒックのトラヒック情報(ユーザ識別子等)をコンテナマネージャ100に通知する。当該通知の受信に応答して、コンテナ収容計算エンジン120は、ユーザ単位割当方式、複数ユーザ単位割当方式、時間単位割当方式、収容ユーザ数変動方式などの何れかのコンテナ収容方式に従って当該ユーザを収容するWebサーバコンテナ210を決定し、決定したWebサーバコンテナ210と当該ユーザとの関連付けをトラヒック振り分け装置50に通知する。また、コンテナ収容計算エンジン120は、必要に応じてWebサーバコンテナ210を生成、整理又は削除するようコンテナ配備サーバ200に指示する。
【0029】
一実施例では、コンテナ収容計算エンジン120は、1ユーザに1つのコンテナを割り当てるユーザ単位割当方式に従って、ユーザから受信したトラヒックを処理するコンテナを決定してもよい。ユーザ単位割当方式によると、トラヒック振り分け装置50(スイッチ)から新規ユーザのトラヒック情報を受信すると、コンテナ収容計算エンジン120は、図3に示されるように、例えば、新たなWebサーバコンテナ210を生成することによって各ユーザを当該Webサーバコンテナ210に割り当てると共に、当該ユーザに割り当てられたWebサーバコンテナ210をトラヒック振り分け装置50に通知する。また、コンテナ収容計算エンジン120は、図3に示されるようなコンテナ収容ユーザ情報をコンテナ収容ユーザデータベース110に格納する。図示されたコンテナ収容ユーザ情報では、Webサーバコンテナ210を示すコンテナIDと、当該Webサーバコンテナ210に割り当てられたユーザを示すユーザ識別子とが関連付けされて格納される。また、図示されるように、コンテナ収容ユーザ情報は、Webサーバコンテナ210とユーザとの間で最後にやりとりされたトラヒックに関する最終通信日時を保持してもよい。ユーザ単位割当方式によると、サイバー攻撃された場合、他のユーザは当該サイバー攻撃による影響を受けることなくWebサービスを利用することができる。
【0030】
他の実施例では、コンテナ収容計算エンジン120は、複数ユーザに1つのコンテナを割り当てる複数ユーザ単位割当方式に従って、ユーザから受信したトラヒックを処理するコンテナを決定してもよい。複数ユーザ単位割当方式によると、トラヒック振り分け装置50(スイッチ)から新規ユーザのトラヒック情報を受信すると、コンテナ収容計算エンジン120は、図4に示されるように、例えば、新たなWebサーバコンテナ210を生成することによって、又は既存のWebサーバコンテナ210を使用することによって、所定数nのユーザを1つのWebサーバコンテナ210に割り当てると共に、当該n人のユーザに割り当てられたWebサーバコンテナ210をトラヒック振り分け装置50に通知する。また、コンテナ収容計算エンジン120は、図4に示されるようなコンテナ収容ユーザ情報をコンテナ収容ユーザデータベース110に格納する。図示されたコンテナ収容ユーザ情報では、Webサーバコンテナ210を示すコンテナIDと、当該Webサーバコンテナ210に割り当てられた複数のユーザを示すユーザ識別子とが関連付けされて格納される。また、図示されるように、コンテナ収容ユーザ情報は、Webサーバコンテナ210とユーザとの間で最後にやりとりされたトラヒックに関する最終通信日時を保持してもよい。複数ユーザ単位割当方式によると、収容可能なユーザ数を調整することによってコンテナ数を調整することが可能である。また、サイバー攻撃された場合、被攻撃コンテナに収容されたユーザのみに被害が限定され、他のコンテナに収容されたユーザは当該サイバー攻撃による影響を受けることなくWebサービスを利用することができる。
【0031】
他の実施例では、コンテナ収容計算エンジン120は、一定時間内にアクセスしたユーザに1つのコンテナを割り当てる時間単位割当方式に従って、ユーザから受信したトラヒックを処理するコンテナを決定してもよい。時間単位割当方式によると、トラヒック振り分け装置50(スイッチ)から新規ユーザのトラヒック情報を受信すると、コンテナ収容計算エンジン120は、図5に示されるように、期間T内に新規にアクセスした全てのユーザを当該期間Tに対して用意された1つのWebサーバコンテナ210に割り当てると共に、当該ユーザに割り当てられたWebサーバコンテナ210をトラヒック振り分け装置50に通知する。また、コンテナ収容計算エンジン120は、図5に示されるようなコンテナ収容ユーザ情報をコンテナ収容ユーザデータベース110に格納する。図示されたコンテナ収容ユーザ情報では、Webサーバコンテナ210を示すコンテナIDと、当該Webサーバコンテナ210に割り当てられたユーザを示すユーザ識別子とが関連付けされて格納される。また、図示されるように、コンテナ収容ユーザ情報は、コンテナの生成日時、収容されたユーザ数及び/又はWebサーバコンテナ210とユーザとの間で最後にやりとりされたトラヒックに関する最終通信日時を保持してもよい。
【0032】
時間単位割当方式によると、収容期間を調整することによってコンテナ数を調整することが可能であり、例えば、DDoS攻撃に好適である。また、サイバー攻撃された場合、被攻撃コンテナに収容された同時期にアクセスしたユーザのみに被害が限定され、他のコンテナに収容されたユーザは当該サイバー攻撃による影響を受けることなくWebサービスを利用することができる。
【0033】
なお、時間単位割当方式によると、1コンテナあたりに異なるユーザ数が収容される可能性があり、アクセスが少ない期間と多い期間とで収容ユーザ数に大きな差が生じうる。このため、コンテナ収容計算エンジン120は、図6に示される手順に従って、収容ユーザ数を調整してもよい。
【0034】
図示されるように、ステップS101において、コンテナ収容計算エンジン120は、コンテナ配備サーバ200が新たなコンテナを追加するのに十分なリソースを有しているか判断する。例えば、コンテナ収容計算エンジン120は、コンテナ配備サーバ200に設定されているコンテナ数が所定の閾値(収容限界コンテナ数:Cmax)以下である場合、十分なリソースがあると判断してもよい。
【0035】
コンテナ配備サーバ200が新たなコンテナを追加するのに十分なリソースを有している場合(S101:Yes)、ステップS102において、コンテナ収容計算エンジン120は、現在期間のためのWebサーバコンテナ210を生成する。他方、コンテナ配備サーバ200が新たなコンテナを追加するのに十分なリソースを有していない場合(S101:No)、ステップS103において、コンテナ収容計算エンジン120は、後述される収容ユーザ整理処理又はコンテナ削除処理を実行し、新たなコンテナを追加するためのリソースを確保する。
【0036】
ステップS104において、コンテナ収容計算エンジン120は、当該期間が経過するまで、新規にアクセスしたユーザを生成したWebサーバコンテナ210に収容する。
【0037】
期間Tが経過すると、ステップS105において、コンテナ収容計算エンジン120は、Webサーバコンテナ210に収容されたユーザ数が所定数n以上であるか判断する。収容されたユーザ数が所定数n以上である場合(S105:Yes)、コンテナ収容計算エンジン120は、次の期間のための新たなWebサーバコンテナ210を生成するため、ステップS101に戻る。他方、収容されたユーザ数が所定数n未満である場合(S105:No)、コンテナ収容計算エンジン120は、収容ユーザ数がnに達するまで、更なる新規ユーザをステップS102で生成したWebサーバコンテナ210に収容し続ける。
【0038】
上述した調整処理によると、収容ユーザ数が少ないWebサーバコンテナ210が設定されることを回避でき、リソースを効率的に使用することが可能になる。
【0039】
他の実施例では、上述した複数ユーザ単位割当方式又は時間単位割当方式を利用している場合、コンテナ収容計算エンジン120は更に、各コンテナのリソース使用状況に応じて収容するユーザ数を動的に調整する収容ユーザ数変動方式に従って、各コンテナに収容するユーザ数を動的に調整してもよい。すなわち、複数ユーザ単位割当方式及び時間単位割当方式では、ユーザがWebサーバコンテナ210に一旦収容されると、当該ユーザのトラヒックは、リソース使用状況に関わらず当該Webサーバコンテナ210によって処理され続ける。従って、複数ユーザ単位割当方式又は時間単位割当方式に収容ユーザ数変動方式を組み合わせることによって、コンテナ収容計算エンジン120は、各Webサーバコンテナ210のリソース使用状況に応じてユーザを再振り分けし、リソース使用状況に適応してトラヒックを振り分けることが可能になる。
【0040】
収容ユーザ数変動方式によると、コンテナ収容計算エンジン120は、図7に示されるように、複数ユーザ単位割当方式又は時間単位割当方式に従って設定されたWebサーバコンテナ210のリソース使用状況を定期的に監視する。リソースが不足しているWebサーバコンテナ210を検出すると、コンテナ収容計算エンジン120は、Webサーバコンテナ210を追加し、検出されたWebサーバコンテナ210に収容されているユーザの一部を追加したWebサーバコンテナ210に振り分けると共に、当該ユーザに再割り当てられたWebサーバコンテナ210をトラヒック振り分け装置50に通知する。
【0041】
例えば、コンテナ収容計算エンジン120は、図8に示される手順に従ってユーザを再振り分けしてもよい。
【0042】
図示されるように、ステップS201において、コンテナ収容計算エンジン120は、各Webサーバコンテナ210のCPU使用率及び/又はメモリ使用率を定期的に監視し、検出したCPU使用率及び/又はメモリ使用率が所定のCPU使用率閾値及び/又はメモリ使用率閾値以上であるか判断する。検出したCPU使用率及び/又はメモリ使用率がCPU使用率閾値及び/又はメモリ使用率閾値以上である場合、コンテナ収容計算エンジン120は、当該Webサーバコンテナ210が被攻撃コンテナであると判断する。他方、検出したCPU使用率及び/又はメモリ使用率がCPU使用率閾値及び/又はメモリ使用率閾値未満である場合、コンテナ収容計算エンジン120は、当該Webサーバコンテナ210が被攻撃コンテナでないと判断する。
【0043】
被攻撃コンテナが検出された場合(S201:Yes)、ステップS202において、コンテナ収容計算エンジン120は、コンテナ配備サーバ200が新たなコンテナを追加するのに十分なリソースを有しているか判断する。例えば、コンテナ収容計算エンジン120は、コンテナ配備サーバ200に設定されているコンテナ数が所定の閾値(収容限界コンテナ数:Cmax)以下である場合、十分なリソースがあると判断してもよい。他方、被攻撃コンテナが検出されなかった場合(S201:No)、コンテナ収容計算エンジン120は、各Webサーバコンテナ210のCPU使用率及び/又はメモリ使用率を定期的に監視し続ける。
【0044】
コンテナ配備サーバ200が新たなコンテナを追加するのに十分なリソースを有している場合(S202:Yes)、ステップS203において、コンテナ収容計算エンジン120は、Webサーバコンテナ210を生成する。他方、コンテナ配備サーバ200が新たなコンテナを追加するのに十分なリソースを有していない場合(S202:No)、ステップS204において、コンテナ収容計算エンジン120は、後述される収容ユーザ整理処理又はコンテナ削除処理を実行し、新たなコンテナを追加するためのリソースを確保する。
【0045】
ステップS205において、コンテナ収容計算エンジン120は、被攻撃コンテナに収容されているユーザの一部を生成されたWebサーバコンテナ210に再振り分けする。例えば、コンテナ収容計算エンジン120は、被攻撃コンテナに収容されているユーザをランダムに2等分し、一方を被攻撃コンテナに残し、他方を追加したWebサーバコンテナ210に振り分けてもよい。
【0046】
また、コンテナ収容計算エンジン120は、図7に示されるようなコンテナ収容ユーザ情報をコンテナ収容ユーザデータベース110に格納する。図示されたコンテナ収容ユーザ情報では、Webサーバコンテナ210を示すコンテナIDと、リソース不足が検出されたコンテナを示す被攻撃コンテナフラグとが関連付けされて格納される。また、コンテナ収容ユーザ情報は、コンテナIDに基づき複数ユーザ単位割当方式又は時間単位割当方式によるコンテナ収容ユーザ情報と連結されてもよい。なお、上述したコンテナ収容ユーザ情報では、ユーザ識別子としてIPアドレスが使用されているが、本発明はこれに限定されず、ユーザを一意的に識別可能な何れか適切な識別子が利用されてもよい。
【0047】
Webサーバコンテナイメージ格納部130は、Webサーバコンテナ210を生成する際に使用されるイメージファイルを格納する。コンテナ収容計算エンジン120は、当該イメージファイルに基づきWebサーバコンテナ210を生成するようコンテナ配備サーバ200に指示する。なお、格納されているイメージファイルの変更はコンテナマネージャ100の管理者のみに許可されてもよい。
【0048】
次に、本発明の一実施例による通信システムにおけるトラヒック制御処理を説明する。図9及び10は、本発明の一実施例によるトラヒック制御処理を示すシーケンス図である。
【0049】
図9に示されるように、ステップS301において、トラヒック振り分け装置50は、ユーザからパケットを受信する。
【0050】
ステップS302において、トラヒック振り分け装置50は、受信したパケットからトラヒック情報を抽出し、抽出したトラヒック情報をコンテナマネージャ100に通知する。例えば、トラヒック情報は、送信元IPアドレス、通信日時であってもよい。
【0051】
ステップS303において、コンテナマネージャ100は、受信したトラヒック情報に基づきコンテナ収容ユーザデータベース110のコンテナ収容ユーザ情報を更新する。
【0052】
ステップS304において、コンテナ収容ユーザデータベース110は、コンテナマネージャ100からの更新指示に従って、コンテナ収容ユーザ情報を更新する。例えば、コンテナ収容ユーザデータベース110は、送信元IPアドレスがコンテナ収容ユーザ情報のユーザ識別子に登録済みである場合、最終通信日時を更新してもよい。
【0053】
ステップS305において、コンテナ収容計算エンジン120は、コンテナ収容ユーザデータベース110にコンテナ収容ユーザ情報を要求し、ステップS306において、要求したコンテナ収容ユーザ情報を取得する。
【0054】
ステップS307において、送信元IPアドレスがコンテナ収容ユーザ情報のユーザ識別子に登録されているか判断する。新規ユーザであり、所定のコンテナ収容方式に従って当該ユーザに新規のコンテナを割り当てる場合、ステップS308において、コンテナ収容計算エンジン120は、当該ユーザに新規のコンテナを割り当てることをコンテナマネージャ100に通知する。
【0055】
ステップS309において、コンテナマネージャ100は、新規のコンテナと当該コンテナに収容されるユーザのユーザ識別子とを関連付けてコンテナ収容ユーザ情報に格納する。コンテナ収容ユーザデータベース110は、ステップS310において、コンテナ収容ユーザ情報を更新すると、ステップS311において、コンテナ収容ユーザ情報の更新が完了したことをコンテナマネージャ100に通知する。
【0056】
ステップS312において、コンテナマネージャ100は、新規のコンテナを生成するようコンテナ配備サーバ200に要求する。ステップS313において、コンテナ配備サーバ200は、新規のコンテナを生成し、ステップS314において、生成されたコンテナが起動する。
【0057】
なお、ステップS308〜S314は、ステップS307において既存のコンテナに新規ユーザを収容する場合には実行される必要はない。
【0058】
図10に示されるように、ステップS307において既存のコンテナに新規ユーザを収容する場合、ステップS315において、コンテナ収容計算エンジン120は、新規ユーザの収容先コンテナをコンテナマネージャ100に通知する。ステップS316において、コンテナマネージャ100は、通知されたコンテナと当該コンテナに収容されるユーザのユーザ識別子とを関連付けてコンテナ収容ユーザ情報に格納する。コンテナ収容ユーザデータベース110は、ステップS317において、コンテナ収容ユーザ情報を更新すると、ステップS318において、コンテナ収容ユーザ情報の更新が完了したことをコンテナマネージャ100に通知する。
【0059】
ステップS319において、コンテナマネージャ100は、当該ユーザからのトラヒックの送信先を収容先コンテナに変換するためのトラヒック変換設定をトラヒック振り分け装置50に通知する。ステップS320において、トラヒック振り分け装置50は、当該通知に従ってトラヒック変換設定情報を更新し、トラヒック変換設定記憶部52は、ステップS321において、トラヒック変換設定情報を更新すると、ステップS322において、トラヒック変換設定情報の更新が完了したことをトラヒック振り分け装置50に通知する。
【0060】
ステップS323において、トラヒック振り分け装置50は、トラヒック変換設定情報の更新があったことをトラヒック振り分け部51に通知する。ステップS324において、トラヒック振り分け部51は、更新されたトラヒック変換設定情報を読み込み、ステップS325において、更新されたトラヒック変換設定情報を取得する。
【0061】
ステップS326において、トラヒック振り分け部51は、ユーザから受信したトラヒックの送信先アドレスを取得したトラヒック変換設定情報に規定されたコンテナのアドレスに変換し、ステップS327において、当該トラヒックを変換後のアドレスに転送する。
【0062】
また、一実施例では、コンテナ配備サーバ200に配備されたコンテナの個数が所定の閾値以上になると、コンテナマネージャ100は、各コンテナに収容可能なユーザ数の上限値までユーザが収容されるように配備されたコンテナに収容されるユーザを整理し、収容ユーザ数が0になったコンテナを削除してもよい。
【0063】
図11に示されるように、Webサーバコンテナ210を生成し続ければ、コンテナ配備サーバ200のリソース不足が発生する。そこで、コンテナ配備サーバ200に予めコンテナ数の上限値Cmaxを設定し、コンテナ数がCmax以上になった場合、収容可能なユーザ数に余裕のあるWebサーバコンテナ210にユーザを集約してもよい。さらに、集約によって収容ユーザ数が0となったWebサーバコンテナ210は削除されてもよい。
【0064】
具体的には、収容ユーザ整理処理は、図12及び図13に示される手順により実行されてもよい。ここで、ステップS401〜S406は、上述したステップS301〜S306と同様であり、これらの説明は割愛する。
【0065】
ステップS407において、コンテナ収容計算エンジン120が、コンテナ数が上限値Cmaxを超過すると判断し、収容ユーザ整理処理を開始する。ステップS408において、何れかのコンテナに収容されるユーザを他のコンテナに再振り分けすることをコンテナマネージャ100に通知する。ステップS409において、コンテナマネージャ100は、当該再振り分けに従ってコンテナ収容ユーザ情報を更新し、コンテナ収容ユーザデータベース110は、ステップS410において、コンテナ収容ユーザ情報を更新すると、ステップS411において、コンテナ収容ユーザ情報の更新が完了したことをコンテナマネージャ100に通知する。
【0066】
ステップS412において、コンテナマネージャ100は、当該ユーザからのトラヒックの送信先アドレスを再振り分けしたコンテナに変換するためのトラヒック変換設定をトラヒック振り分け装置50に通知する。ステップS413において、トラヒック振り分け装置50は、当該通知に従ってトラヒック変換設定情報を更新し、トラヒック変換設定記憶部52は、ステップS414において、トラヒック変換設定情報を更新する。
【0067】
さらに、図12に示されるように、ステップS415において、トラヒック振り分け装置50は、トラヒック変換設定情報の更新の完了通知を受信すると、ステップS416において、当該完了通知をトラヒック振り分け部51に転送する。
【0068】
ステップS417において、トラヒック振り分け部51は、更新されたトラヒック変換設定情報を読み込み、ステップS418において、更新されたトラヒック変換設定情報を取得する。
【0069】
ステップS419において、トラヒック振り分け部51は、ユーザから受信したトラヒックの送信先アドレスを取得したトラヒック変換設定情報に規定されたコンテナのアドレスに変換し、ステップS420において、当該トラヒックを変換後のアドレスに転送する。
【0070】
ステップS421において、トラヒック振り分け装置50は、コンテナマネージャ100にトラヒック変換設定情報の更新が完了したことを通知し、ステップS422において、コンテナマネージャ100は、収容ユーザ数が0となったコンテナを削除するようコンテナ配備サーバ200に指示する。ステップS423において、コンテナ配備サーバ200は、指示されたコンテナを削除し、ステップS424において、当該コンテナが削除される。
【0071】
また、一実施例では、コンテナマネージャ100は、ユーザと当該ユーザを収容するコンテナとの間の通信が一定時間以上行われなかったとき、当該コンテナを削除してもよい。図14に示されるように、Webサーバコンテナにアクセスするユーザのトラヒックが一定時間以上観測されない場合、コンテナマネージャ100は、ユーザがWebサーバのサービスをすでに利用していないとみなし、コンテナ収容ユーザデータベース110から当該ユーザに関する情報を削除してもよい。
【0072】
具体的には、コンテナ削除処理は、図15に示される手順により実行されてもよい。ここで、ステップS501〜S506は、上述したステップS301〜S306と同様であり、これらの説明は割愛する。
【0073】
図15に示されるように、ステップS507において、コンテナ収容計算エンジン120は、収容ユーザ数が0であるコンテナがあると判断し、コンテナ削除処理を開始する。ステップS508において、コンテナ収容計算エンジン120は、削除対象のコンテナをコンテナマネージャ100に通知する。
【0074】
ステップS509において、コンテナマネージャ100は、当該通知に従ってコンテナ収容ユーザ情報を更新し、コンテナ収容ユーザデータベース110は、ステップS510において、コンテナ収容ユーザ情報を更新すると、ステップS511において、コンテナ収容ユーザ情報の更新が完了したことをコンテナマネージャ100に通知する。
【0075】
ステップS512において、コンテナマネージャ100は、コンテナを削除するようコンテナ配備サーバ200に指示する。ステップS513において、コンテナ配備サーバ200は、指示されたコンテナを削除し、ステップS514において、当該コンテナが削除される。
【0076】
なお、上述した通信システム10におけるトラヒック振り分け装置50、コンテナマネージャ100、コンテナ配備サーバ200及び共有ストレージサーバ300の各機能部及び各ステップは、コンピュータのメモリ装置に記憶されたプログラムをプロセッサが実行することによって実現されてもよい。
【0077】
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0078】
10 通信システム
50 トラヒック振り分け装置
100 コンテナマネージャ
200 コンテナ配備サーバ
300 共有ストレージサーバ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15