説明

情報処理装置、情報処理プログラムおよび管理方法

【課題】通信監視のルールを容易に設定可能とする。
【解決手段】記憶部1aは、仮想マシン2b,3b上で実行可能なサービスを示す情報と該サービスを利用するユーザを示す情報との対応関係および、サービスごとに定義された、仮想ルータ2a,3aによる通信監視のルールを記憶する。制御部1bは、記憶部1aに記憶された通信監視のルールが変更されると、記憶部1aを参照して、該ルールに対応するサービスを利用するユーザを特定する。制御部1bは、該ユーザに割り当てられた仮想マシン2b,3bの通信を中継する仮想ルータ2a,3aに、変更後の該ルールを送信し、該ルールに基づく監視を行わせる。

【発明の詳細な説明】
【技術分野】
【0001】
本件は仮想マシンの運用管理を支援する情報処理装置、情報処理プログラムおよび管理方法に関する。
【背景技術】
【0002】
現在、情報処理の分野では、物理的なコンピュータ(物理マシンや物理ホストと呼ぶことがある)上で、複数の仮想的なコンピュータ(仮想マシンや論理ホストと呼ぶことがある)を動作させる仮想化技術が利用されている。各仮想マシン上では、OS(Operating System)などのソフトウェアを実行できる。仮想化技術を利用する物理マシンは、複数の仮想マシンを管理するためのソフトウェアを実行する。
【0003】
例えば、ハイパーバイザと呼ばれるソフトウェアが、CPU(Central Processing Unit)の処理能力やRAM(Random Access Memory)の記憶領域を、演算のリソースとして複数の仮想マシンに割り振る。また、例えば、ハイパーバイザが、該演算のリソースによりネットワークのルーティング機能を物理マシン上に実現することもある。物理マシン上に実現されたルーティング機能を仮想ルータと呼ぶことがある。仮想ルータに仮想マシンの通信を中継させることで、物理マシン上に仮想マシンのネットワークを構築できる。このように、物理マシン上で仮想マシンを動作させ、該仮想マシン上のソフトウェアをクライアント装置から利用可能とする情報処理システムがある。
【0004】
ところで、情報処理システムでは機密情報(例えば、個人情報や営業秘密)を扱うことがある。このため、機密情報の不正取得の防止や改ざんの防止など適正な保護対策が望まれる。そこで、ネットワークの経路上にファイアウォール、IDS(Intrusion Detection System)およびIPS(Intrusion Prevention System)などを設けることがある。
【0005】
ファイアウォールは、ネットワーク上のトラフィックをフィルタルールによりフィルタリングして、許容する通信経路やプロトコル以外の通信を遮断する。IDSは、ネットワークから取得した通信データを、予め登録された不正な(あるいは正常な)通信の検出ルールと照合することで、情報処理システムに対する不正アクセスを検知する。IPSは、不正アクセスの検知を行うとともに、該不正アクセスを遮断する。
【0006】
例えば、加入者側装置と該加入者側装置を収容する局側装置を有する通信システムで、局側装置で不正トラフィックを検出したときに、不正トラフィックの検出された論理リンクに対するフィルタリング設定情報を加入者側装置に送信する提案がある。加入者側装置は、該フィルタリング設定情報により該論理リンクのフィルタリングを行う。
【0007】
また、IDSサーバが不正アクセスを検知したときに不正アクセスに関する情報をファイアウォールに送信し、ファイアウォールが該情報に基づきフィルタリングルールを生成して、該ルールによりトラフィックのフィルタリング処理を行う提案がある。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2008−211637号公報
【特許文献2】特開2008−11008号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
仮想マシン上のソフトウェアをクライアント装置から利用可能とする情報処理システムでは、仮想マシンにつき通信のセキュリティ対策がなされていることが望ましい。しかしながら、複数の仮想マシンが複数の物理マシン上で動作している場合がある。その場合、各仮想マシンにつき通信監視のルールをどのように容易に設定可能とするかが問題となる。例えば、該ルールの設定を、複数の仮想マシンごと、または、物理マシンごとに、システム管理者が個別に行うとすると、設定のための作業負担が生ずる。
【0010】
1つの側面では、本発明は、通信監視のルールを容易に設定できるようにした情報処理装置、情報処理プログラムおよび管理方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
仮想マシンおよび該仮想マシンの通信を中継する仮想ルータが動作可能な少なくとも1つの他の情報処理装置と通信する情報処理装置が提供される。この情報処理装置は、記憶部と制御部とを有する。記憶部は、仮想マシン上で実行可能なサービスを示す情報と該サービスを利用するユーザを示す情報との対応関係、および、サービスごとに定義された、仮想ルータによる通信監視のルールを記憶する。制御部は、記憶部に記憶された通信監視のルールが変更されると、記憶部を参照して、該ルールに対応するサービスを利用するユーザを特定し、該ユーザに割り当てられた仮想マシンの通信を中継する仮想ルータに、変更後の該ルールを送信し、該ルールに基づく監視を行わせる。
【0012】
また、仮想マシンおよび該仮想マシンの通信を中継する仮想ルータが動作可能な少なくとも1つの他の情報処理装置と通信するコンピュータが実行する情報処理プログラムが提供される。この情報処理プログラムは、コンピュータに、仮想マシン上で実行可能なサービスを示す情報と該サービスを利用するユーザを示す情報との対応関係、および、サービスごとに定義された、仮想ルータによる通信監視のルールを記憶する記憶部に記憶された通信監視のルールが変更されると、記憶部を参照して、該通信監視のルールに対応するサービスを利用するユーザを特定し、特定したユーザに割り当てられた仮想マシンの通信を中継する仮想ルータに、変更後の通信監視のルールを送信し、該ルールに基づく監視を行わせる、処理を実行させる。
【0013】
更に、仮想マシンおよび該仮想マシンの通信を中継する仮想ルータが動作可能な少なくとも1つの他の情報処理装置と通信する情報処理装置が実行する管理方法が提供される。この管理方法では、仮想マシン上で実行可能なサービスを示す情報と該サービスを利用するユーザを示す情報との対応関係、および、サービスごとに定義された、仮想ルータによる通信監視のルールを記憶する記憶部に記憶された通信監視のルールが変更されると、記憶部を参照して、該通信監視のルールに対応するサービスを利用するユーザを特定する。特定したユーザに割り当てられた仮想マシンの通信を中継する仮想ルータに、変更後の通信監視のルールを送信し、該ルールに基づく監視を行わせる。
【発明の効果】
【0014】
一態様によれば、通信監視のルールを容易に設定できる。
【図面の簡単な説明】
【0015】
【図1】第1の実施の形態の情報処理システムを示す図である。
【図2】第2の実施の形態の情報処理システムを示す図である。
【図3】制御装置のハードウェア例を示す図である。
【図4】各装置の機能を示すブロック図である。
【図5】仮想ルータの機能を示すブロック図である。
【図6】接続リストテーブルのデータ構造例を示す図である。
【図7】フィルタ雛型テーブルのデータ構造例を示す図である。
【図8】IDSルール雛型テーブルのデータ構造例を示す図である。
【図9】フィルタテーブルのデータ構造例を示す図である。
【図10】IDSルールテーブルのデータ構造例を示す図である。
【図11】仮想マシン起動時の処理を示すフローチャートである。
【図12】仮想マシン起動時の処理を示すシーケンス図である。
【図13】不正アクセス検知時の処理を示すフローチャートである。
【図14】不正アクセス検知時の処理を示すシーケンス図である。
【発明を実施するための形態】
【0016】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理システムを示す図である。この情報処理システムは、情報処理装置1,2,3を含む。情報処理装置1は、情報処理装置2,3とネットワークで接続され、データ通信する。情報処理装置2は、仮想ルータ2aおよび仮想マシン2bを実行する。情報処理装置3は、仮想ルータ3aおよび仮想マシン3bを実行する。仮想ルータ2a,3aは、それぞれ仮想マシン2b,3bの通信を中継する。
【0017】
情報処理装置1は、記憶部1aおよび制御部1bを有する。
記憶部1aは、仮想マシン2b,3b上で実行可能なサービスを示す情報と該サービスを利用するユーザを示す情報との対応関係を記憶する。記憶部1aは、サービスごとに定義された仮想ルータ2a,3aによる通信監視のルールを記憶する。通信監視のルールとは、例えば通信のフィルタリングを行うためのルールである。また、通信監視のルールは、例えば、不正アクセスを検知・遮断するためのパターン情報(以下、IDSルールという)でもよい。記憶部1aは、RAMやHDD(Hard Disk Drive)として実装してもよい。
【0018】
制御部1bは、記憶部1aに記憶された通信監視のルールが変更されると、記憶部1aを参照して、該通信監視のルールに対応するサービスを利用するユーザを特定する。ユーザには、該ユーザが利用可能な仮想マシンが割り当てられている。ここで、第1のユーザには仮想マシン2bが割り当てられ、第2のユーザには仮想マシン3bが割り当てられているとする。制御部1bは、特定した該ユーザに割り当てられた仮想マシン2b,3bの通信を中継する仮想ルータ2a,3aに、変更後の該ルールを送信し、該ルールに基づく監視を行わせる。制御部1bは、CPUとRAMを用いて実行されるプログラムとして実装してもよい。
【0019】
情報処理装置1によれば、記憶部1aに記憶された通信監視のルールが変更されると、制御部1bにより、記憶部1aが参照され、該ルールに対応するサービスを利用するユーザが特定される。制御部1bにより、該ユーザごとに割り当てられた仮想マシン2b,3bの通信を中継する仮想ルータ2a,3aに、変更後の該ルールが送信される。仮想ルータ2a,3aは、該ルールに基づく監視を行う。
【0020】
これにより、通信監視のルールに容易に設定できる。具体的には、通信監視のルールが変更されたとき、該ルールに対応するサービスを利用するユーザの仮想ルータ2a,3aに対して、該変更後のルールでの監視を一括して行わせることができる。
【0021】
このため、情報処理装置2,3それぞれに対する設定作業を省けるので、作業負担を軽減できる。更に、変更後のルールを複数の仮想ルータで共用するので、個別に設定する場合に比べ、誤設定によるセキュリティ低下のリスクを軽減できる。
【0022】
また、例えば、何れかの仮想マシン上のサービスに対する不正アクセスが検知されたとき、システム管理者により情報処理装置1が操作されて通信監視のルールが変更されることがある。このとき、情報処理装置1によれば、該サービスを利用するユーザに対応する仮想ルータに対して変更後のルールを一斉に利用できるので、該不正アクセスに対する迅速な対処が可能となる。
【0023】
特に、ユーザごとに割り当てられた複数の仮想マシンでサービスを提供する情報処理システムでは、該複数の仮想マシンに対して、該サービスのセキュリティホールなどを狙った同一手法の不正アクセスを受け易い。そこで、情報処理装置1のように、サービスごとに定義された通信監視のルールを、該サービスを利用するユーザに対する仮想ルータに一括して送信する。これにより、該不正アクセスに対して、容易かつ効率的に対処可能となる。
【0024】
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムを示す図である。データセンタ20は、サービス事業者が運用する事業所である。ユーザ拠点30は、ユーザが運用する事業所である。サービス事業者は、データセンタ20上のサーバ装置で複数の仮想マシンを実行させ、仮想マシン上のソフトウェアをユーザ拠点30から利用可能とする。具体的には、ユーザは、ユーザ拠点30に設置されたクライアント装置から該仮想マシン上のソフトウェアに所定の処理の実行を要求する。このようなソフトウェアの利用形態は、SaaS(Software as a Service)と呼ばれることがある。
【0025】
この情報処理システムは、制御装置100、仮想マシン管理装置200、実行サーバ装置300,300a、ゲートウェイ装置400,400a、ルータ装置500、クライアント装置600,600aおよび通信事業者サーバ装置700を含む。
【0026】
制御装置100、仮想マシン管理装置200、実行サーバ装置300,300aおよびゲートウェイ装置400,400aは、データセンタ20に設置されており、データセンタ20内のネットワーク21にそれぞれ接続されている。ルータ装置500およびクライアント装置600,600aは、ユーザ拠点30に設置されており、ユーザ拠点30内のネットワーク31にそれぞれ接続されている。通信事業者サーバ装置700は、通信事業者の事業所(図示を省略)に設置されており、ネットワーク10に接続される。ネットワーク10は、通信事業者の管理するIP(Internet Protocol)網である。ネットワーク10は、例えば、PPPoE(Point to Point Protocol over Ethernet)網である。
【0027】
制御装置100は、実行サーバ装置300,300a上の仮想ルータとルータ装置500との間のL2VPN(Layer2 Virtual Private Network)によるトンネル接続の確立を支援する情報処理装置である。これにより、クライアント装置600,600aから、該仮想ルータと通信する仮想マシンに対して、IP網を介したVPN接続を可能とする。
【0028】
仮想マシン管理装置200は、実行サーバ装置300,300a上の仮想マシンや仮想ルータの起動を制御する情報処理装置である。仮想マシン管理装置200は、何れの実行サーバ装置で何れの仮想マシンや仮想ルータが実行されているか管理する。仮想マシン管理装置200は、仮想ルータに設けられた仮想のネットワークIF(InterFace)の情報を管理する。
【0029】
実行サーバ装置300,300aは、仮想マシン管理装置200からの起動指示に応じて、仮想マシンおよび仮想ルータを起動する情報処理装置である。例えば、実行サーバ装置300,300aは、ハイパーバイザを実行する。ハイパーバイザは、仮想マシン管理装置200から仮想マシンや仮想ルータの起動の指示を受けると、実行サーバ装置300,300a上のリソースを用いて仮想マシンや仮想ルータを起動する。
【0030】
ゲートウェイ装置400,400aは、ネットワーク10とネットワーク21と間の通信を中継する通信装置である。
ルータ装置500は、ネットワーク10とネットワーク31との間の通信を中継する通信装置である。ルータ装置500は、サービス事業者から仮想マシンを割り当てられたユーザが、該仮想マシン上で利用したいサービスの選択を受け付ける機能も備えている。ルータ装置500は、サービスの選択内容を制御装置100に送信して、該サービスを該ユーザの仮想マシン上で利用可能とするよう依頼する。
【0031】
クライアント装置600,600aは、ユーザが利用する情報処理装置である。ユーザは、クライアント装置600,600aを操作して、実行サーバ装置300,300a上の仮想マシンに対して処理の要求を行える。例えば、クライアント装置600,600aからWebブラウザ、RDP(Remote Desktop Protocol)、VNC(Virtual Network Computing)、SSH(Secure SHell)およびFTP(File Transfer Protocol)などを用いて、実行サーバ装置300,300a上の仮想マシンを利用できる。
【0032】
通信事業者サーバ装置700は、制御装置100からの要求により、ゲートウェイ装置400,400aとルータ装置500とをネットワーク10に接続するための情報を提供する。例えば、通信事業者サーバ装置700は、ゲートウェイ装置400,400aおよびルータ装置500に、PPPoEのユーザID(IDentifier)やパスワードなどの情報を送信する。ゲートウェイ装置400,400aおよびルータ装置500は、提供された情報に基づいて、ネットワーク10上の所定の認証サーバでPPPoE認証され、ネットワーク10に接続する。また、通信事業者サーバ装置700は、例えば、ゲートウェイ装置400,400aおよびルータ装置500をIP−VPN接続するための情報を提供する。
【0033】
図3は、制御装置のハードウェア例を示す図である。制御装置100は、CPU101、ROM(Read Only Memory)102、RAM103、HDD104、グラフィック処理装置105、入力インタフェース106、ディスクドライブ107および通信インタフェース108を有する。
【0034】
CPU101は、OSやアプリケーションのプログラムを実行して、制御装置100全体を制御する。
ROM102は、制御装置100の起動時に実行されるBIOS(Basic Input / Output System)プログラムなどの所定のプログラムを記憶する。ROM102は、書き換え可能な不揮発性メモリであってもよい。
【0035】
RAM103は、CPU101が実行するOSやアプリケーションのプログラムの少なくとも一部を一時的に記憶する。また、RAM103は、CPU101の処理に用いられるデータの少なくとも一部を一時的に記憶する。
【0036】
HDD104は、OSプログラムやアプリケーションプログラムを記憶する。また、HDD104は、CPU101の処理に用いられるデータを記憶する。なお、HDD104に代えて(または、HDD104と併せて)、SSD(Solid State Drive)など他の種類の不揮発性の記憶装置を用いてもよい。
【0037】
グラフィック処理装置105は、モニタ11に接続される。グラフィック処理装置105は、CPU101からの命令に従って、画像をモニタ11に表示させる。
入力インタフェース106は、キーボード12やマウス13などの入力デバイスに接続される。入力インタフェース106は、入力デバイスから送られる入力信号をCPU101に出力する。
【0038】
ディスクドライブ107は、記録媒体14に格納されたデータを読み取る読取装置である。記録媒体14には、例えば、制御装置100に実行させるプログラムが記録されている。制御装置100は、例えば、記録媒体14に記録されたプログラムを実行することで、後述するような機能を実現できる。すなわち、当該プログラムはコンピュータ読み取り可能な記録媒体14に記録して配布可能である。
【0039】
記録媒体14としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリを使用できる。磁気記録装置には、HDD、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、CD−R(Recordable)/RW(ReWritable)、DVD(Digital Versatile Disc)、DVD−R/RW/RAMなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。半導体メモリには、USB(Universal Serial Bus)メモリなどのフラッシュメモリがある。
【0040】
通信インタフェース108は、ネットワーク10に接続される。通信インタフェース108は、ネットワーク21を介して仮想マシン管理装置200、実行サーバ装置300,300aおよびゲートウェイ装置400,400aとデータ通信を行える。また、通信インタフェース108は、ゲートウェイ装置400,400aおよびネットワーク10を介してルータ装置500および通信事業者サーバ装置700とデータ通信を行える。
【0041】
なお、仮想マシン管理装置200、実行サーバ装置300,300a、クライアント装置600,600aおよび通信事業者サーバ装置700も、制御装置100と同様のハードウェア構成により実現できる。
【0042】
また、以下の説明では、ゲートウェイ装置400,400aのうち、ゲートウェイ装置400を主に示して説明するが、ゲートウェイ装置400aも同様である。
図4は、各装置の機能を示すブロック図である。制御装置100は、制御情報記憶部110、接続制御部120およびルール管理部130を有する。制御装置100の構成要素の機能は、例えばCPU101が所定のプログラムを実行することにより、制御装置100上に実現される。制御装置100の構成要素の機能の全部または一部を専用のハードウェアで実装してもよい。
【0043】
制御情報記憶部110は、制御情報を記憶する。制御情報には、接続リストテーブル、フィルタ雛型テーブルおよびIDSルール雛型テーブルが含まれる。接続リストテーブルは、ユーザの識別情報と該ユーザが現在利用中のサービスの識別情報とを対応付けたデータである。フィルタ雛型テーブルは、サービスごとのデフォルトのフィルタルールを設定したものである。IDSルール雛型テーブルは、サービスごとのデフォルトのIDSルールを設定したものである。以下では、フィルタルールとIDSルールとを併せてルールと呼ぶことがある。
【0044】
接続制御部120は、ルータ装置500からの要求により、ルータ装置500に対するゲートウェイ装置400,400aの割り当てを仮想マシン管理装置200に指示する。また、接続制御部120は、ルータ装置500からの要求により、実行サーバ装置300,300a上の仮想マシンおよび仮想ルータの起動を仮想マシン管理装置200に指示する。そして、接続制御部120は、実行サーバ装置300,300a上の仮想ルータとルータ装置500との間のL2VPN接続を確立する。
【0045】
具体的には、接続制御部120は、通信事業者サーバ装置700と連携して、ゲートウェイ装置400とネットワーク10との間のPPPoE接続を開始させる。また、接続制御部120は、通信事業者サーバ装置700と連携して、ルータ装置500とネットワーク10との間のPPPoE接続を開始させる。接続制御部120は、ゲートウェイ装置400とルータ装置500とをIP−VPNで接続させる。
【0046】
また、接続制御部120は、仮想ルータとルータ装置500との間のEtherIP(Ethernet over IP)によるトンネル接続を開始させる。仮想ルータやルータ装置500は、クライアント装置600,600aと実行サーバ装置300,300a上の仮想マシンとの間のEthernet(登録商標)フレームをEtherIPによりカプセル化して通信を行う。L2VPN接続により、通信事業者のIP網であるネットワーク10を介して、クライアント装置600,600aと仮想マシンとの間のVPN接続が可能となる。
【0047】
更に、接続制御部120は、ルータ装置500からサービスの選択内容を受信する。接続制御部120は、選択されたサービスをユーザに割り当てられた仮想マシンで利用可能とする。具体的には、接続制御部120は、ユーザに割り当てられた仮想マシンに該サービスを利用するためのソフトウェアを実行させるよう起動制御部220に指示する(この指示を、以下ではサービス選択指示という)。また、接続制御部120は、該サービスに対応する通信監視のルールを仮想ルータに送信する旨、ルール管理部130に指示する。
【0048】
ルール管理部130は、実行サーバ装置300,300a上の仮想ルータに通信監視用のルールを送信する。具体的には、ルール管理部130は、接続制御部120からユーザが選択したサービスを受け付けたとき、該サービスに対応したルールを該ユーザに割り当てた仮想マシンに対応する仮想ルータに送信する。また、ルール管理部130は、仮想ルータで不正アクセスなどの異常に応じて、制御情報記憶部110に記憶されたルールが変更されたとき、該ルールに対応するサービスを利用するユーザの仮想ルータに該ルールを送信する。
【0049】
仮想マシン管理装置200は、管理情報記憶部210および起動制御部220を有する。仮想マシン管理装置200の構成要素の機能は、例えば仮想マシン管理装置200が備えるCPUが所定のプログラムを実行することにより、仮想マシン管理装置200上に実現される。仮想マシン管理装置200の構成要素の機能の全部または一部を専用のハードウェアで実装してもよい。
【0050】
管理情報記憶部210は、管理情報を記憶する。管理情報には、実行サーバ装置300,300aおよびゲートウェイ装置400,400aに関する情報が含まれる。具体的には、実行サーバ装置300,300a上で利用可能なリソースの情報、実行中の仮想マシンのユーザへの割り当て状況を示す情報、実行中の仮想マシンと仮想ルータとの対応を示す情報および各仮想ルータ上の仮想のネットワークIFを示す情報が含まれる。また、管理情報には、ゲートウェイ装置400,400a上で利用可能なリソースの情報や、ゲートウェイ装置400,400aのユーザへの割り当て状況を示す情報が含まれる。
【0051】
起動制御部220は、ユーザに対するゲートウェイ装置400,400aの割り当て指示を接続制御部120から受け付ける。すると、起動制御部220は、管理情報記憶部210を参照して、該ユーザに対するゲートウェイ装置400,400aの割り当てを行う。起動制御部220は、該ユーザと割り当てたゲートウェイ装置との対応を管理情報記憶部210に記録する。
【0052】
起動制御部220は、ユーザに対する仮想マシンの起動指示を接続制御部120から受け付ける。すると、起動制御部220は、管理情報記憶部210を参照して、仮想マシンおよび仮想ルータを起動させる実行サーバ装置を選択する。起動制御部220は、選択した実行サーバ装置に仮想マシンおよび仮想ルータを起動させる。起動制御部220は、該ユーザ、割り当てた実行サーバ装置、仮想マシンおよび仮想ルータの対応を管理情報記憶部210に記録する。起動制御部220は、管理情報記憶部210を参照して、接続制御部120からの問い合わせに応じる。例えば、実行サーバ装置、仮想マシンおよび仮想ルータの対応関係、仮想ルータと該仮想ルータ上のネットワークIFの対応関係などの問い合わせに応じることができる。
【0053】
また、起動制御部220は、接続制御部120からサービス選択指示を受け付けると、対象のユーザに割り当てられた仮想マシンに該サービスを利用するためのソフトウェアを実行開始させる。
【0054】
実行サーバ装置300は、仮想ルータ310および仮想マシン320,320aを有する。実行サーバ装置300の構成要素の機能は、例えば実行サーバ装置300が備えるCPUが所定のプログラムを実行することにより、実行サーバ装置300上に実現される。実行サーバ装置300の構成要素の機能の全部または一部を専用のハードウェアで実装してもよい。
【0055】
仮想ルータ310は、ネットワーク21と仮想マシン320,320aとの間の通信を中継する。仮想ルータ310は、中継する通信データを監視する。具体的には、仮想ルータ310は、ルール管理部130から取得したフィルタルールに基づきフィルタリングを行う。また、仮想ルータ310は、ルール管理部130から取得したIDSルールに基づき不正アクセスを検知する。仮想ルータ310は、監視結果をルール管理部130に通知する。
【0056】
仮想マシン320,320aは、実行サーバ装置300上に実現された仮想マシンである。仮想マシン320,320aは、それぞれ独立にOSを実行している。仮想マシン320,320aが実行するOSは同一でもよいし、異なっていてもよい。仮想マシン320,320aは、それぞれが所定のサービスを利用するためのソフトウェアを実行する。仮想マシン320,320aで何れのサービスを利用可能とするかは、上述したようにユーザの選択により決定される。
【0057】
実行サーバ装置300aは、仮想ルータ310aおよび仮想マシン320bを有する。仮想ルータ310aは、ネットワーク21と仮想マシン320bとの間の通信を中継する。また、仮想ルータ310aは、中継する通信データを監視する。仮想マシン320bは、実行サーバ装置300a上に実現された仮想マシンであり、所定のサービスを利用するためのソフトウェアを実行する。
【0058】
ゲートウェイ装置400は、通信処理部410を有する。通信処理部410は、接続制御部120から取得した情報に基づいて、ネットワーク10とPPPoE接続を確立する。また、通信処理部410は、ルータ装置500との間でIP−VPN接続を確立する。
【0059】
ルータ装置500は、通信処理部510を有する。通信処理部510は、接続制御部120から取得した情報に基づいて、ネットワーク10、ゲートウェイ装置400および仮想ルータ310,310aとの間のL2VPN接続を確立する。また、通信処理部510は、サービス事業者がユーザに提供するサービスを選択するためのインタフェースをクライアント装置600,600aに提供する。通信処理部510は、選択されたサービスの内容を制御装置100に送信する。
【0060】
図5は、仮想ルータの機能を示すブロック図である。仮想ルータ310は、ルール記憶部311、ネットワークIF312,313,314、トンネル処理部315、監視部316およびルール設定部317を有する。
【0061】
ルール記憶部311は、制御装置100から受信した通信監視のためのルールを記憶する。
ネットワークIF312,313,314は、仮想ルータ310上に実現された仮想的なネットワークIFである。ネットワークIF312は、仮想マシン320と通信する。ネットワークIF313は、仮想マシン320aと通信する。ネットワークIF312,313〜仮想マシン320,320aまでのネットワークを、仮想マシン側のネットワークということがある。ネットワークIF314は、ネットワーク21を介してゲートウェイ装置400と通信する。ネットワークIF314〜ゲートウェイ装置400〜ユーザ拠点30までのネットワークを、ユーザ側のネットワークということがある。
【0062】
トンネル処理部315は、EtherIPによるトンネル接続を終端する。具体的には、トンネル処理部315は、EtherIPによりカプセル化された通信データをネットワークIF314から取得すると、該通信データからEthernetフレームを取出して、監視部316に出力する。また、トンネル処理部315は、監視部316から取得したEthernetフレームをEtherIPによりカプセル化して、ネットワークIF314に出力する。
【0063】
監視部316は、Ethernetフレームを監視して、ユーザ側のネットワークと仮想マシン側のネットワークの間の通信を制限する。監視部316は、フィルタ処理部316aおよび不正アクセス検知部316bを有する。
【0064】
フィルタ処理部316aは、ルール記憶部311に記憶されたフィルタルールに基づいて宛先や送信元の情報およびポート番号などのフィルタリングを行う。
不正アクセス検知部316bは、ルール記憶部311に記憶されたIDSルールに基づいて仮想マシン320,320aに対する不正アクセスを検知する。不正アクセス検知部316bは、不正アクセスを検知すると、不正アクセスの対象となった仮想マシンを示す情報やポートの情報、通信の送信元/宛先などの情報とともに不正アクセスを検知した旨を制御装置100に通知する。
【0065】
ルール設定部317は、通信監視のためのルールを制御装置100から受信して、ルール記憶部311に格納する。ルール設定部317は、ルール記憶部311に既存のルールが格納されている場合には、新たに受信したルールにより既存のルールを更新する。
【0066】
監視部316およびルール設定部317は、専用の仮想ネットワークIFを備え、ネットワーク21および制御装置100と該仮想ネットワークIFで通信する。ただし、監視部316およびルール設定部317は、ネットワークIF314を介して制御装置100と通信してもよい。
【0067】
なお、仮想ルータ310aも仮想ルータ310と同様の機能構成により実現できる。
図6は、接続リストテーブルのデータ構造例を示す図である。接続リストテーブル111は、制御情報記憶部110に格納される。接続リストテーブル111には、ユーザID、SaaS種別およびネットワークIFを示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのユーザに関する情報を示す。
【0068】
ユーザIDの項目には、ユーザIDが設定される。ユーザIDは、ユーザ拠点30を運営する事業者を識別する情報である。SaaS種別の項目には、サービスを示す識別情報が設定される。ネットワークIFの項目には、仮想ルータ310,310aにおける仮想マシン側のネットワークIFの識別情報が設定される。
【0069】
ここで、ユーザ拠点30を運営する事業者のユーザIDを“User1”とする。他のユーザ拠点を運営する事業者のユーザIDを“User2”とする。
また、仮想マシン320上で利用されているサービスのSaaS種別を“SaaS1”とする。仮想マシン320a上で利用されているサービスのSaaS種別を“SaaS2”とする。仮想マシン320b上で利用されているサービスのSaaSの識別情報を“SaaS1”とする。
【0070】
更に、ネットワークIF312の識別情報を“IF−S1”とする。ネットワークIF313の識別情報を“IF−S2”とする。仮想ルータ310a上の仮想マシン側の1つのネットワークIFの識別情報を“IF−S3”とする。例えば、ネットワークIF311,312,313の識別情報は、各IFの属するネットワーク上のIPアドレスとしてもよい。
【0071】
例えば、接続リストテーブル111には、ユーザIDが“User1”、SaaS種別が“SaaS1”、ネットワークIFが“IF−S1”という情報が設定される。これは、ユーザ拠点30を運営する事業者(“User1”)がSaaS種別“SaaS1”のサービスを利用していることを示す。また、該サービスを利用するために仮想ルータ310上のネットワークIF312(“IF−S1”)を介して通信していることを示す。
【0072】
また、例えば、接続リストテーブル111には、ユーザIDが“User1”、SaaS種別が“SaaS2”、ネットワークIFが“IF−S2”という情報が設定される。これは、ユーザ拠点30を運営する事業者(“User1”)がSaaS種別“SaaS2”のサービスを利用していることを示す。また、該サービスを利用するために仮想ルータ310上のネットワークIF313(“IF−S2”)を介して通信していることを示す。
【0073】
また、例えば、接続リストテーブル111には、ユーザIDが“User2”、SaaS種別が“SaaS1”、ネットワークIFが“IF−S3”という情報が設定される。これは、他のユーザ拠点を運営する事業者(“User2”)がSaaS種別“SaaS1”のサービスを利用していることを示す。また、該サービスを利用するために仮想ルータ310a上のネットワークIF“IF−S3”を介して通信していることを示す。
【0074】
図7は、フィルタ雛型テーブルのデータ構造例を示す図である。フィルタ雛型テーブル112,112aは、SaaS種別ごとに生成され制御情報記憶部110に格納される。フィルタ雛型テーブル112は、SaaS種別“SaaS1”に対するフィルタルールの雛型である。フィルタ雛型テーブル112aは、SaaS種別“SaaS2”に対するフィルタルールの雛型である。
【0075】
以下では、フィルタ雛型テーブル112について説明する。フィルタ雛型テーブル112aのデータ構造は、フィルタ雛型テーブル112と同一である。
フィルタ雛型テーブル112には、Fromポート、Toポート、Protocol、From−IF、To−IFおよび許可/禁止の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのフィルタルールの雛型を示す。
【0076】
Fromポートの項目には、送信元のポート番号が設定される。Toポートの項目には、宛先のポート番号が設定される。Protocolの項目には、プロトコルの種別が設定される。From−IFの項目には、ユーザ側のネットワークと接続するネットワークIFの識別情報が設定される。To−IFの項目には、仮想マシン側のネットワークと接続するネットワークIFの識別情報が設定される。許可/禁止の項目には、通信を許可するか禁止するかを示す情報が設定される。
【0077】
例えば、フィルタ雛型テーブル112には、Fromポートが“80”、Toポートが“*”、Protocolが“TCP(Transmission Control Protocol)”、From−IFが“<Local>”、To−IFが“<User>”、許可/禁止が“Permit”という情報が設定される。これは、仮想マシン側のネットワークからユーザ側のネットワークに対するポート番号80でのTCPによる通信(HTTP(Hypertext Transfer Protocol)の通信)を許可することを示す。
【0078】
また、例えば、フィルタ雛型テーブル112には、Fromポートが“*”、Toポートが“80”、Protocolが“TCP”、From−IFが“<User>”、To−IFが“<Local>”、許可/禁止が“Permit”という情報が設定される。これは、ユーザ側のネットワークから仮想マシン側のネットワークに対するポート番号80でのTCPによる通信(HTTPの通信)を許可することを示す。
【0079】
また、例えば、フィルタ雛型テーブル112には、Fromポートが“*”、Toポートが“*”、Protocolが“*”、From−IFが“<Local>”、To−IFが“<User>”、許可/禁止が“Deny”という情報が設定される。これは、仮想マシン側のネットワークからユーザ側のネットワークに対する全ての通信を禁止することを示す。
【0080】
また、例えば、フィルタ雛型テーブル112には、Fromポートが“*”、Toポートが“*”、Protocolが“*”、From−IFが“<User>”、To−IFが“<Local>”、許可/禁止が“Deny”という情報が設定される。これは、ユーザ側のネットワークから仮想マシン側のネットワークに対する全ての通信を禁止することを示す。
【0081】
フィルタ雛型テーブル112では、上に記述されたルール程優先度が高い。すなわち、フィルタ雛型テーブル112によれば、HTTPの通信は、ユーザ側のネットワークと仮想マシン側のネットワークとの双方向で許可されるが、それ以外の通信は全て遮断されることを示す。
【0082】
仮想ルータは、フィルタ雛型テーブル112を取得すると、自身が備えるネットワークIFの識別情報をあてはめる。具体的には、“<Local>”には、該当のSaaS種別のサービスを利用可能な仮想マシンと接続するネットワークIFの識別情報をあてはめる。“<User>”には、ユーザ側のネットワークと接続するネットワークIFの識別情報をあてはめる。
【0083】
図8は、IDSルール雛型テーブルのデータ構造例を示す図である。IDSルール雛型テーブル113,113aは、SaaS種別ごとに生成され制御情報記憶部110に格納される。IDSルール雛型テーブル113は、SaaS種別“SaaS1”に対するIDSルールの雛型である。IDSルール雛型テーブル113aは、SaaS種別“SaaS2”に対するIDSルールの雛型である。
【0084】
以下では、IDSルール雛型テーブル113について説明する。IDSルール雛型テーブル113aのデータ構造は、IDSルール雛型テーブル113と同一である。
IDSルール雛型テーブル113には、Fromポート、Toポート、Protocol、From−IF、To−IFおよび検出文字列の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのフィルタルールを示す。ここで、Fromポート、Toポート、Protocol,From−IFおよびTo−IFの項目の内容は、図7で説明したフィルタ雛型テーブル112の同一名称の項目の内容と同様である。検出文字列の項目には、検出対象とする文字列が設定される。
【0085】
例えば、IDSルール雛型テーブル113には、Fromポートが“*”、Toポートが“80”、Protocolが“TCP”、From−IFが“<User>”、To−IFが“<Local>”、検出文字列が“../..”という情報が設定される。これは、ユーザ側のネットワークから仮想マシン側のネットワークに対するポート番号80でのTCPによる通信データ内に“../..”の文字列が含まれる場合、異常を検知することを示す。
【0086】
仮想ルータは、IDSルール雛型テーブル113を取得すると、自身が備えるネットワークIFの識別情報をあてはめる。具体的には、“<Local>”には、該当のSaaS種別のサービスを利用可能な仮想マシンと接続するネットワークIFの識別情報をあてはめる。“<User>”には、ユーザ側のネットワークと接続するネットワークIFの識別情報をあてはめる。
【0087】
図9は、フィルタテーブルのデータ構造例を示す図である。フィルタテーブル311aは、ルール記憶部311に格納される。フィルタテーブル311aは、フィルタ雛型テーブル112を仮想ルータ310に適用した場合を例示している。フィルタテーブル311aには、Fromポート、Toポート、Protocol、From−IF、To−IFおよび許可/禁止の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのフィルタルールを示す。ここで、各項目の内容は、図7で説明したフィルタ雛型テーブル112の各項目の内容と同様である。
【0088】
フィルタ雛型テーブル112とフィルタテーブル311aでは、From−IFおよびTo−IFの設定内容が相違する。フィルタテーブル311aでは、フィルタ雛型テーブル112中“<Local>”であった箇所が、仮想マシン320と接続するネットワークIF312の識別情報(“IF−S1”)に置換されている。また、フィルタテーブル311aでは、フィルタ雛型テーブル112中“<User>”であった箇所が、ネットワークIF314の識別情報(“IF−U1”)に置換されている。
【0089】
フィルタ処理部316aは、フィルタテーブル311aを参照して、フィルタリングを行う。
図10は、IDSルールテーブルのデータ構造例を示す図である。IDSルールテーブル311bは、ルール記憶部311に格納される。IDSルールテーブル311bは、IDSルール雛型テーブル113を仮想ルータ310に適用した場合を例示している。IDSルールテーブル311bには、Fromポート、Toポート、Protocol、From−IF、To−IFおよび検出文字列の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのIDSルールを示す。ここで、Fromポート、Toポート、Protocol、From−IF、To−IFおよび検出文字列の項目の内容は、図8で説明したIDSルール雛型テーブル113の同一名称の項目の内容と同様である。
【0090】
IDSルール雛型テーブル113とIDSルールテーブル311bでは、From−IFおよびTo−IFの設定内容が相違する。IDSルールテーブル311bでは、IDSルール雛型テーブル113中“<Local>”であった箇所が、仮想マシン320と接続するネットワークIF312の識別情報(“IF−S1”)に置換されている。また、IDSルールテーブル311bでは、IDSルール雛型テーブル113中“<User>”であった箇所が、ネットワークIF314の識別情報(“IF−U1”)に置換されている。
【0091】
不正アクセス検知部316bは、IDSルールテーブル311bを参照して、不正アクセスの検知を行う。
次に、以上の構成の情報処理システムの処理手順を説明する。
【0092】
図11は、仮想マシン起動時の処理を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
[ステップS11]通信処理部510は、ルータ装置500がネットワーク10と物理的に接続されると(例えば、WAN(Wide Area Network)ポートをネットワーク線で接続)、既定の接続情報によりネットワーク10との接続を確立する。更に、通信処理部510は、既定の接続情報によりゲートウェイ装置400との間のIP−VPN接続を初期設定用に確立する。既定の接続情報は、例えば、ネットワーク10とPPPoE接続するためのIDやパスワード、IP−VPNグループの情報などを含むものであり、ルータ装置500の工場出荷時などにルータ装置500が備えるメモリに記録される。なお、ゲートウェイ装置400は、ネットワーク10との間で少なくとも1つのPPPoE接続を、初期設定用に常時開設している。
【0093】
[ステップS12]通信処理部510は、制御装置100に接続通知を行う。接続通知には、起動する仮想マシンの情報(例えば、OSの種別、CPUの性能、メモリやHDDの容量などを指定する情報)およびユーザの識別情報が含まれる。仮想マシンの情報は、ルータ装置500の工場出荷時などにルータ装置500が備えるメモリに記録される。接続通知には、例えば、HTTPのリクエストを利用できる。具体的には、通信処理部510は、制御装置100のURL(Uniform Resource Locator)を指定したHTTPのPUTリクエストを利用して、起動する仮想マシンの情報を含む接続通知を行う。接続制御部120は、ルータ装置500から接続通知を受信する。例えば、接続制御部120は、Webサーバ機能を有し、ルータ装置500がHTTPリクエストとして送信した接続通知を受信する。
【0094】
[ステップS13]接続制御部120は、起動制御部220に対して実運用で利用する接続を確立するためのゲートウェイ装置の割り当てを依頼する。また、接続制御部120は、接続通知で指定された仮想マシンの要件を満たせる実行サーバ装置の割り当てを依頼する。起動制御部220は、管理情報記憶部210を参照して、該ユーザに対して、ゲートウェイ装置および実行サーバ装置の割り当てを行う。例えば、起動制御部220は、該ユーザに対してゲートウェイ装置400および実行サーバ装置300を割り当てたとする。接続制御部120は、ゲートウェイ装置400とルータ装置500との間のIP−VPN接続を確立する。
【0095】
[ステップS14]起動制御部220は、実行サーバ装置300に仮想マシン320と、該仮想マシンに対する通信を中継させるための仮想ルータ310を起動させる。起動制御部220は、仮想ルータ310および仮想マシン320の起動が完了したことを実行サーバ装置300に確認すると、接続制御部120にその旨を通知する。ここで、起動された仮想ルータ310および仮想マシン320が該ユーザに割り当てられる。
【0096】
[ステップS15]接続制御部120は、ステップS14で起動された仮想ルータ310とルータ装置500との間のL2VPN接続を確立する。接続制御部120は、L2VPN接続を確立した後、ゲートウェイ装置400とルータ装置500との間の初期設定用のIP−VPN接続を切断させる。また、ルータ装置500とネットワーク10との間の初期設定用のPPPoE接続を切断させる。
【0097】
[ステップS16]接続制御部120は、ルータ装置500からユーザが選択したサービスを受け付ける。
[ステップS17]接続制御部120は、ステップS14で該ユーザに割り当てた仮想マシン上で、ユーザが選択したサービスを利用可能とする旨のサービス選択指示を、起動制御部220に通知する。起動制御部220は、指示されたサービスを利用するためのソフトウェアを該ユーザに割り当てた仮想マシンに実行させる。
【0098】
[ステップS18]接続制御部120は、ユーザに割り当てた仮想マシンにつきユーザが選択したサービスの識別情報をルール管理部130に通知する。ルール管理部130は、制御情報記憶部110を参照して、該サービスのSaaS種別に対応するIDSルールの雛型を選択する。例えば、SaaS種別“SaaS1”であれば、IDSルール雛型テーブル113を選択する。
【0099】
[ステップS19]ルール管理部130は、ステップS14で起動された仮想ルータ310に対して選択したIDSルール雛型を送信する。このとき、ルール管理部130は、SaaS種別“SaaS1”のサービスを利用可能な仮想マシン320と接続するネットワークIF(雛型の<Local>に相当する設定)がネットワークIF312であることを仮想ルータ310に通知する。
【0100】
[ステップS20]ルール設定部317は、IDSルール雛型の宛先や送信元を示す箇所を、自身のネットワークIF312,314の識別情報に変換してルール記憶部311に格納する。ルール設定部317は、設定が完了した旨を制御装置100に通知する。
【0101】
[ステップS21]ルール管理部130は、仮想ルータ310からルール設定が完了した旨の通知を受信する。
[ステップS22]接続制御部120は、制御情報記憶部110に記憶された接続リストテーブル111を更新する。具体的には、接続制御部120は、新たに起動した仮想マシン320上のサービスのSaaS種別の情報および仮想ルータ310上のネットワークIFの情報をユーザIDに対応付けて接続リストテーブル111に記録する。
【0102】
このようにして、接続制御部120は、ルータ装置500から接続通知を受信すると、仮想マシン管理装置200に仮想ルータ310および仮想マシン320の起動を依頼する。接続制御部120は、ルータ装置500と仮想ルータ310との間のL2VPN接続を確立する。接続制御部120は、仮想ルータ310にIDSルールの雛型を送信する。これにより、仮想ルータ310にデフォルトのIDSルールが設定される。
【0103】
次に、仮想マシン起動時の処理の流れの具体例を説明する。
図12は、仮想マシン起動時の処理を示すシーケンス図である。以下、図12に示す処理をステップ番号に沿って説明する。
【0104】
[ステップST101]ルータ装置500は、ネットワーク10に接続する。すると、ルータ装置500は、既定のIDおよびパスワードにより、PPPoE認証を行い、PPPoE網に接続する。また、ルータ装置500は、既定のIP−VPNグループ情報により、ゲートウェイ装置400との間のIP−VPN接続を確立する。
【0105】
[ステップST102]ルータ装置500は、制御装置100に接続通知を送信する。接続通知には、起動する仮想マシンの情報やユーザIDが含まれる。
[ステップST103]ルータ装置500は、該ユーザに対する実行サーバ装置およびゲートウェイ装置の割り当てを、仮想マシン管理装置200に依頼する。
【0106】
[ステップST104]仮想マシン管理装置200は、実行サーバ装置300およびゲートウェイ装置400を割り当てると、割当結果を制御装置100に通知する。
[ステップST105]制御装置100は、IP−VPN用のPPPoE接続情報(IDおよびパスワード)とIP−VPNグループの接続情報とを、2組分、通信事業者サーバ装置700から取得する。制御装置100は、そのうちの1組をルータ装置500に送信する。
【0107】
[ステップST106]制御装置100は、ステップST105で取得したPPPoE接続情報およびIP−VPNグループの接続情報のうちのもう一方の1組をゲートウェイ装置400に送信する。
【0108】
[ステップST107]ルータ装置500およびゲートウェイ装置400は、制御装置100から受信したPPPoE接続情報とIP−VPNグループの情報により、IP−VPN接続を確立する。
【0109】
[ステップST108]制御装置100は、仮想マシン管理装置200に、仮想マシンおよび仮想ルータの起動指示を送信する。
[ステップST109]仮想マシン管理装置200は、割り当てた実行サーバ装置300に対して、仮想ルータ310および仮想マシン320の起動を指示する。
【0110】
[ステップST110]実行サーバ装置300は、仮想ルータ310および仮想マシン320の起動が完了すると、仮想マシン管理装置200に起動完了を通知する。
[ステップST111]仮想マシン管理装置200は、実行サーバ装置300上で、仮想ルータ310および仮想マシン320の起動が完了した旨を、制御装置100に通知する。
【0111】
[ステップST112]制御装置100は、仮想ルータ310およびルータ装置500の間のL2VPN接続を確立する。具体的には、制御装置100は仮想ルータ310のIPアドレスをルータ装置500に送信して、該IPアドレスに対するEthernetフレームのEtherIPによるカプセル化のための設定を行わせる。また、制御装置100は、ルータ装置500のIPアドレスを仮想ルータ310に送信して、該IPアドレスに対するEthernetフレームのEtherIPによるカプセル化のための設定を行わせる。制御装置100は、L2VPN接続が確立されると、ステップST101で確立された初期設定用のIP−VPN接続や初期設定用のPPPoE接続を切断させる。
【0112】
[ステップST113]クライアント装置600は、ルータ装置500が提供するインタフェースにしたがって、仮想マシン320上で利用したいサービスを選択する。すると、ルータ装置500は、ゲートウェイ装置400を介して制御装置100に該サービスの選択内容を通知する。
【0113】
[ステップST114]制御装置100は、選択されたサービスを仮想マシン320上で利用可能とする旨のサービス選択指示を、仮想マシン管理装置200に送信する。仮想マシン管理装置200は、該サービス選択指示に基づいて、仮想マシン320に該サービスを利用するためのソフトウェアを実行させる(サービス起動指示)。
【0114】
[ステップST115]制御装置100は、選択されたサービスのSaaS種別に対応するIDSルールの雛型を選択して、仮想マシン320の通信を中継する仮想ルータ310に送信する。
【0115】
[ステップST116]仮想ルータ310は、該IDSルールの雛型に基づいてIDSルールを設定すると、設定完了の旨を制御装置100に通知する。
[ステップST117]制御装置100は、制御情報記憶部110に記憶された接続リストテーブル111を更新する。
【0116】
[ステップST118]クライアント装置600は、実行サーバ装置300上の仮想マシン320にアクセスして、選択したサービスの利用が可能となる。
このようにして、制御装置100は、ルータ装置500とゲートウェイ装置400との間で確立された初期設定用のIP−VPN接続により、ルータ装置500から接続通知を受け付ける。制御装置100は、通信事業者サーバ装置700より、実運用で用いるためのIP−VPN接続のための情報を取得し、ルータ装置500とゲートウェイ装置400との間で該IP−VPN接続を確立させる。制御装置100は、仮想ルータ310が起動すると、仮想ルータ310とルータ装置500との間のL2VPN接続を確立させる。そして、制御装置100は、仮想ルータ310に選択されたサービスに応じたデフォルトのIDSルールを設定させる。なお、IDSルールに加えてデフォルトのフィルタルールを設定させてもよい。また、デフォルトのフィルタルールで、全ての通信を許可する設定をしておいてもよい。
【0117】
次に、運用中に仮想マシン320に対する不正アクセスが検知された場合の処理を説明する。
図13は、不正アクセス検知時の処理を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
【0118】
[ステップS31]不正アクセス検知部316bは、ルール記憶部311に記憶されたIDSルールに基づいて、仮想マシン320に対する不正アクセスを検知する。不正アクセス検知部316bは、仮想マシン320に対する不正アクセスを検知した旨を、制御装置100に通知する。ルール管理部130は、該通知を受け付ける。
【0119】
[ステップS32]ルール管理部130は、仮想マシン320のフィルタ雛型テーブル112を変更する。例えば、ルール管理部130は、不正アクセスが発生した旨をシステム管理者に通知する。そして、ルール管理部130は、システム管理者によるフィルタ雛型テーブル112の変更や再設定指示の入力を受け付けて、フィルタ雛型テーブル112を変更する。ルール管理部130は、システム管理者が該変更や指示の入力を行うためのGUI(Graphical User Interface)をモニタ11に表示させてもよい。また、例えば、ルール管理部130は、制御情報記憶部110に予め格納された緊急時用のフィルタルールで、フィルタ雛型テーブル112を変更してもよく、該変更後に、以下に示すフィルタの再設定を行ってもよい。
【0120】
[ステップS33]ルール管理部130は、制御情報記憶部110に記憶された接続リストテーブル111を参照して、仮想マシン320のSaaS種別“SaaS1”に対応するユーザIDを特定する。接続リストテーブル111の例によれば、SaaS種別“SaaS1”に対応するユーザIDとして、“User1”および“User2”が設定されている。ルール管理部130は、ユーザID“User1”および“User2”を特定する。
【0121】
[ステップS34]ルール管理部130は、接続リストテーブル111を参照して、ステップS33で特定したユーザIDに対応するネットワークIFを特定する。接続リストテーブル111の例によれば、ルール管理部130は、ネットワークIF“IF−S1”、“IF−S2”および“IF−S3”を特定する。ルール管理部130は、ネットワークIFの識別情報から仮想ルータ310,310aを特定する。例えば、ネットワークIFの識別情報がIPアドレスで示されていれば、該IPアドレスにより仮想ルータ310,310aを特定できる。また、例えば、ルール管理部130は、起動制御部220にネットワークIFの識別情報を通知して、該ネットワークIFを有する仮想ルータが何れの実行サーバ装置で実行されているものか問い合わせてもよい。
【0122】
[ステップS35]ルール管理部130は、ステップS32で変更されたフィルタ雛型をステップS34で特定した仮想ルータ310,310aに送信する。このとき、ルール管理部130は、SaaS種別“SaaS1”のサービスを利用可能な仮想マシン320と接続するネットワークIF(雛型の<Local>に相当する設定)がネットワークIF312であることを仮想ルータ310に通知する。また、ルール管理部130は、SaaS種別“SaaS1”のサービスを利用可能な仮想マシン320bと接続するネットワークIF(雛型の<Local>に相当する設定)が“IF−S3”のネットワークIFであることを仮想ルータ310aに通知する。
【0123】
[ステップS36]ルール設定部317は、ルール管理部130から受信したフィルタ雛型の“<Local>”の箇所をネットワークIF312の識別情報に置換する。ルール設定部317は、フィルタ雛型の“<User>”の箇所をネットワークIF314の識別情報に置換する。ルール設定部317は、置換により生成したフィルタルールでルール記憶部311に格納された既存のフィルタテーブル311aを更新する。フィルタ処理部316aは、更新後のフィルタテーブル311aによりフィルタリングを行う。また、同様にして、仮想ルータ310aは、ルール管理部130が送信したフィルタ雛型に基づきフィルタルールを生成し、フィルタリングに利用する。
【0124】
[ステップS37]ルール設定部317は、ルール管理部130にフィルタ設定が完了した旨を通知する。ルール管理部130は、該通知を受け付ける。
このようにして、ルール管理部130は、仮想マシン320に対する不正アクセスが発生すると、仮想マシン320を利用するユーザのユーザIDから該ユーザが利用可能な仮想マシン320bを特定する。そして、実際に不正アクセスを検知した仮想ルータ310だけでなく、仮想マシン320bに対応する仮想ルータ310aに対しても、変更後のフィルタルールを設定させる。
【0125】
なお、ステップS32において、ルール管理部130は、管理者によるフィルタ雛型テーブル112の変更を受け付ける、または、予め用意されたフィルタ雛型でフィルタ雛型テーブル112の内容を変更することを例示した。他の例として、ルール管理部130は、不正アクセスの内容に基づいて、新たなフィルタ雛型を生成してもよい。具体的には、不正アクセスのあったポートを不正アクセス検知部316bから取得し、該ポートに対するフィルタ雛型を生成して、生成したフィルタ雛型のルールを追加することで、フィルタ雛型テーブル112を変更してもよい。このとき、ユーザ側/仮想マシン側のネットワークの双方向(あるいは、一方向)の通信につき不正アクセスのあった該ポートに対するフィルタ雛型を生成するようにしてもよい。例えば、ルール管理部130は、SSH(ポート番号22)に対する不正アクセスが検知された場合に、該ポート番号22に対して、ユーザ側/仮想マシン側のネットワークの双方向(あるいは、一方向)の通信を禁止するフィルタ雛型を生成してもよい。
【0126】
また、ステップS32において、ルール管理部130がフィルタルールの変更を行うものとしたが、同様にして該変更を行う変更部を別個に設けてもよい。
次に、不正アクセス検知時の処理の流れの具体例を説明する。
【0127】
図14は、不正アクセス検知時の処理を示すシーケンス図である。以下、図14に示す処理をステップ番号に沿って説明する。以下に示す手順の直前では不正アクセスを受けるポートへのフィルタが未設定あるいは該ポートへの通信が許可されているとする。
【0128】
[ステップST121]仮想ルータ310は、実行サーバ装置300上の仮想マシン320に対するクライアント装置600aからの所定のポート(例えば、ftp、Telnet、SSHおよびVNCなど)に対する不正アクセスを検知する。
【0129】
[ステップST122]仮想ルータ310は、仮想マシン320(SaaS種別“SaaS1”)に対する不正アクセスを検知した旨を制御装置100に通知する。
[ステップST123]制御装置100は、制御情報記憶部110に記憶されたフィルタ雛型テーブル112(SaaS種別“SaaS1”に対応)の設定内容を変更する。フィルタ雛型テーブル112が変更された結果、図7で示した設定内容になったとする。
【0130】
[ステップST124]制御装置100は、制御情報記憶部110に記憶された接続リストテーブル111を参照して、仮想マシン320を利用するユーザのユーザID“User1”、“User2”を特定する。制御装置100は、該ユーザIDおよびSaaS種別に対応するネットワークIF“IF−S1”、“IF−S3”を特定する。更に、制御装置100は、各ネットワークIFを有する仮想ルータ310,310aを特定する。
【0131】
[ステップST125]制御装置100は、実行サーバ装置300上の仮想ルータ310に対して変更後のフィルタ雛型を送信する。このとき、制御装置100は、SaaS種別“SaaS1”のサービスを利用可能な仮想マシン320が接続されたネットワークIFが“IF−S1”であることを仮想ルータ310に通知する。仮想ルータ310は、受信したフィルタ雛型に自身が備えるインタフェースIFの情報をあてはめ、自身のフィルタルールとして設定する。
【0132】
[ステップST126]制御装置100は、実行サーバ装置300a上の仮想ルータ310aに対して変更後のフィルタ雛型を送信する。このとき、制御装置100は、SaaS種別“SaaS1”のサービスを利用可能な仮想マシン320bが接続されたネットワークIFが“IF−S3”であることを仮想ルータ310aに通知する。仮想ルータ310aは、受信したフィルタ雛型に自身が備えるインタフェースIFの情報をあてはめ、自身のフィルタルールとして設定する。
【0133】
[ステップST127]仮想ルータ310は、フィルタの設定が完了した旨を制御装置100に通知する。図7の設定内容によれば、仮想ルータ310では、ユーザ側/仮想マシン側のネットワーク間でHTTP通信のみが許可される。
【0134】
[ステップST128]仮想ルータ310aは、フィルタの設定が完了した旨を制御装置100に通知する。図7の設定内容によれば、仮想ルータ310aでは、仮想ルータ310と同様にユーザ側/仮想マシン側のネットワーク間でHTTP通信のみが許可される。
【0135】
[ステップST129]クライアント装置600aは、実行サーバ装置300上の仮想マシン320に対して、所定のポート(ftpなど)で不正アクセスを試みる。仮想ルータ310は、変更後のフィルタルールにより、該ポートに対する不正アクセスを遮断する。
【0136】
[ステップST130]クライアント装置600aは、実行サーバ装置300a上の仮想マシン320bに対して、ステップST129と同様に不正アクセスを試みる。仮想ルータ310aは、変更後のフィルタルールにより、該ポートに対する不正アクセスを遮断する。
【0137】
このようにして、制御装置100は、仮想ルータ310,310aに変更後のフィルタルールを設定させる。これにより、仮想マシン320,320bに対するクライアント装置600aからの不正アクセスが仮想ルータ310,310aで遮断される。なお、ルール管理部130は、同一の実行サーバ装置上の異なるユーザの仮想ルータそれぞれに対して変更後のルールを送信することもある。その場合には、ルール管理部130は、該サービスを利用可能な仮想マシンと接続する該ユーザごとの仮想ルータ上のネットワークIFを指定して、同一の実行サーバ装置上の各仮想ルータに変更後のルールを送信する。
【0138】
また、クライアント装置600も仮想ルータ310,310aを介して仮想マシン320,320bにアクセスする。このため、悪意のあるユーザがクライアント装置600を利用して仮想マシン320,320bに不正アクセスしようとしても、該アクセスは同様に遮断される。
【0139】
これにより、各仮想マシンに対する通信監視のルールを容易に設定可能となる。具体的には、それぞれの仮想ルータに対する設定作業を省けるので、作業負担を軽減できる。更に、変更後のルールを複数の仮想ルータで共用するので、個別に設定する場合に比べ、誤設定によるセキュリティ低下のリスクを軽減できる。
【0140】
また、不正アクセスに容易に対処可能となる。具体的には、実際に不正アクセスを受けた仮想マシンだけでなく、不正アクセスを受ける可能性のある他の仮想マシンに対しても、不正アクセスへの事前の対応が可能となる。また、複数の仮想マシンに対して、変更後のルールを一括して設定させることで、不正アクセスへの迅速な対処が可能となる。
【0141】
特に、第2の実施の形態で示したように、ユーザごとに割り当てられた複数の仮想マシンでサービスを提供する情報処理システムでは、該複数の仮想マシンに対して、該サービスのセキュリティホールなどを狙った同一手法の不正アクセスを受け易い。そこで、制御装置100のように、サービスごとに定義された通信監視のルールを、該サービスを利用するユーザに対する仮想ルータに一括して送信する。これにより、該不正アクセスに対して、容易かつ効率的に対処可能となる。
【0142】
なお、フィルタ雛型テーブル112の設定によって、ユーザ側/仮想マシン側のネットワーク間の通信を一層厳しく制限することもできる。例えば、図7の例では、HTTP通信のみを許可するものとしたが、全ての通信を禁止するよう設定してもよい。具体的には、図7で示したフィルタ雛型テーブル112において、許可/禁止の項目に“Permit”の設定された2つのレコードを削除し、該項目が“Deny”の2つのレコードを残せば、全ての通信を遮断する設定が可能である。これにより、不正アクセス検知時のセキュリティを一層高めることができる。
【0143】
また、第2の実施の形態では、フィルタルールを変更するものとしたが、IDSルールを変更してもよい。例えば、不正アクセスなどに伴って、IDSルール雛型テーブル113が変更されたときに、変更後のIDSルール雛型を図13と同様の手順によって各仮想ルータに送信してもよい。このようにすれば、各仮想マシンに対する不正アクセスを容易に検出可能となる。
【0144】
また、不正アクセス検知部316bは、IDSの機能を有するものとしたがIPSの機能を有してもよい。
また、第2の実施の形態では、ネットワーク10として通信事業者の管理するIP網を例示したが、ネットワーク10として例えばインターネット網を利用してもよい。その場合、制御装置100は、仮想ルータとルータ装置500との間でインターネットVPNによる接続を確立させる。例えば、制御装置100は、GRE(Generic Routing Encapsulation)により、両者間のトンネル接続を確立させることもできる。
【符号の説明】
【0145】
1,2,3 情報処理装置
1a 記憶部
1b 制御部
2a,3a 仮想ルータ
2b,3b 仮想マシン

【特許請求の範囲】
【請求項1】
仮想マシンおよび該仮想マシンの通信を中継する仮想ルータが動作可能な少なくとも1つの他の情報処理装置と通信する情報処理装置であって、
仮想マシン上で実行可能なサービスを示す情報と該サービスを利用するユーザを示す情報との対応関係、および、サービスごとに定義された、仮想ルータによる通信監視のルールを記憶する記憶部と、
前記記憶部に記憶された通信監視のルールが変更されると、前記記憶部を参照して、該ルールに対応するサービスを利用するユーザを特定し、該ユーザに割り当てられた仮想マシンの通信を中継する仮想ルータに、変更後の該ルールを送信し、該ルールに基づく監視を行わせる制御部と、
を有する情報処理装置。
【請求項2】
仮想ルータから該仮想ルータが通信を中継する仮想マシン上のサービスに対する不正アクセスを検知した旨の通知を受けたときに、前記記憶部に記憶された前記サービスに対する通信監視のルールを変更する変更部を有する、請求項1記載の情報処理装置。
【請求項3】
前記変更部は、前記記憶部に予め記憶されたサービスごとの変更用ルールに基づいて、不正アクセスのあったサービスに対する通信監視のルールを変更する、請求項2記載の情報処理装置。
【請求項4】
前記変更後のルールは、所定の通信を制限するためのルールである、請求項1乃至3の何れか一項に記載の情報処理装置。
【請求項5】
仮想マシンおよび該仮想マシンの通信を中継する仮想ルータが動作可能な少なくとも1つの他の情報処理装置と通信するコンピュータに、
仮想マシン上で実行可能なサービスを示す情報と該サービスを利用するユーザを示す情報との対応関係、および、サービスごとに定義された、仮想ルータによる通信監視のルールを記憶する記憶部に記憶された通信監視のルールが変更されると、前記記憶部を参照して、該通信監視のルールに対応するサービスを利用するユーザを特定し、
特定した前記ユーザに割り当てられた仮想マシンの通信を中継する仮想ルータに、変更後の前記通信監視のルールを送信し、該ルールに基づく監視を行わせる、
処理を実行させる情報処理プログラム。
【請求項6】
仮想マシンおよび該仮想マシンの通信を中継する仮想ルータが動作可能な少なくとも1つの他の情報処理装置と通信する情報処理装置が実行する管理方法であって、
仮想マシン上で実行可能なサービスを示す情報と該サービスを利用するユーザを示す情報との対応関係、および、サービスごとに定義された、仮想ルータによる通信監視のルールを記憶する記憶部に記憶された通信監視のルールが変更されると、前記記憶部を参照して、該通信監視のルールに対応するサービスを利用するユーザを特定し、
特定した前記ユーザに割り当てられた仮想マシンの通信を中継する仮想ルータに、変更後の前記通信監視のルールを送信し、該ルールに基づく監視を行わせる、
管理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2013−17077(P2013−17077A)
【公開日】平成25年1月24日(2013.1.24)
【国際特許分類】
【出願番号】特願2011−149123(P2011−149123)
【出願日】平成23年7月5日(2011.7.5)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】