本発明の一実施の形態について図面について詳述する。
なお、以後の説明では「xxxテーブル」、「xxxリスト」、「xxxDB」、「xxxキュー」等の表現にて本発明の情報を説明するが、これら情報は必ずしもテーブル、リスト、DB、キュー、等のデータ構造以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために「xxxテーブル」、「xxxリスト」、「xxxDB」、「xxxキュー」等について「xxx情報」と呼ぶことがある。
以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信制御装置)を用いながら行うため、プロセッサ(CPU)を主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。
また、各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
(1)第1の実施の形態
(1−1)本実施の形態によるネットワークシステムの構成
図1において、100は全体として本実施の形態によるネットワークシステムを示す。このネットワークシステム100では、セキュリティ管理サーバ101と、第1及び第2の物理クライアント102A,102Bからなる物理クライアント群と、VM(Virtual Machine:仮想マシン)管理サーバ103と、ユーザ端末107とが例えばLAN(Local Area Network)又はWAN(Wide Area Network)などから構成されるネットワーク105を介して相互に接続されている。また第1及び第2の物理クライアント102A,102Bには、SAN(Storage Area Network)106を介してストレージ装置104に接続されている。なお本実施の形態では、簡単のために、物理クライアント群を第1及び第2の物理クライアント102A,102Bの2台のみから構成している場合について説明するが、物理クライアント群を構成する物理クライアントの台数が3台以上であっても本発明は適用可能である。
セキュリティ管理サーバ101は、例えばパーソナルコンピュータ、ワークステーション又はメインフレームなどから構成され、後述のように第1及び第2の物理クライアント102A,102B上で動作する各仮想マシンのセキュリティ状態を管理する。
第1及び第2の物理クライアント102A,102Bは、クライアントマシンとして利用される仮想マシン(以下、適宜、これを仮想クライアントと呼ぶ)をユーザ端末107に提供する。またVM管理サーバ103は、第1及び第2の物理クライアント102A,102A上で動作する仮想クライアントを管理する。
ストレージ装置104は、第1及び第2の物理クライアント102A,102B上で動作する各仮想クライアントの構成情報(CPU(Central Processing Unit)、メモリ、通信装置及び記憶装置に格納されたデータなどの各情報)である複数又は単数のマシンイメージ情報320や、仮想クライアントが使用する各種データなどが格納される。
ユーザ端末107は、一般的なパーソナルコンピュータやシンクライアントなどから構成される端末装置であり、一般利用者が第1及び第2の物理クライアント102A,102B上で動作する仮想クライアントを利用するために利用する。ユーザ端末107は、本実施の形態のセキュリティ管理方法によるセキュリティ管理の対象外である。
なお、セキュリティ管理サーバ101とVM管理サーバ103は1つの計算機から構成されていてもよく、また第1又は第2の物理クライアント102A,102Bと同じ計算機であってもよい。またセキュリティ管理サーバ101に保持される各種プログラムや各種情報の一部又は全部を、1つ以上の(複数の)計算機に配置し、複数の計算機でセキュリティ管理サーバ101を実現する構成をとってもよい。同様に、1つ以上の(複数の)計算機でVM管理サーバ103を構築したり、1つ以上の(複数の)計算機で第1及び第2の物理クライアント102A,102Bを構築するようにしてもよい。
また第1及び第2の物理クライアント102A,102B上で動作する仮想マシンに対する命令や情報の入出力方法としては以下の(a)及び(b)の方法が考えられるが、これら以外であってもよい。
(a)第1及び第2の物理クライアント102A,102Bが有するディスプレイやキーボード及び又はマウス等の入出力装置を対象として、当該入出力装置からの入力を仮想マシンに提供し、仮想マシンの出力(例えば表示及び音声)をその入出力装置へ出力する。
(b)第1及び第2の物理クライアント102A,102Bとは別の計算機が有するディスプレイやキーボード及び又はマウス等の入出力装置を対象として、当該入出力装置からの入力を仮想マシンに提供し、仮想マシンの出力(例えば表示及び音声)をその入出力装置へ出力する。
(1−2)セキュリティ管理サーバの構成
図2は、本実施の形態におけるセキュリティ管理サーバ101の具体的な構成を示す。セキュリティ管理サーバ101は、CPU201、主メモリ202、指示入力装置203、ディスプレイ204、外部記憶装置205及び通信制御装置206を備え、これらがシステムバス207を介して相互に接続されることにより構成されている。
CPU201は、セキュリティ管理サーバ101全体の動作制御を司るプロセッサである。このCPU201が主メモリ202に格納された各種プログラムを実行することにより、セキュリティ管理サーバ101により後述のような処理が行われる。また主メモリ202は、各種プログラムや各種情報を保持するために用いられるほか、CPU201のワークメモリとしても用いられる。
指示入力装置203は、セキュリティ管理サーバ101に対する各種指示を入力するための装置であり、キーボード及び又はマウスなどから構成される。ディスプレイ204は、例えば液晶パネルやCRT(Cathode-Ray Tube)などから構成され、CPU201の制御のもとに、セキュリティ管理サーバ101による処理の実行状況や実行結果等を表示する。
外部記憶装置205は、例えばハードディスク装置から構成される大容量の記憶媒体であり、各種のプログラムやデータを保存するために用いられる。外部記憶装置205に保存されたプログラムは、指示入力装置203からのプログラム起動命令などに応じて主メモリ202にロードされ、CPU201により実行される。通信制御装置206は、ネットワーク105を介して当該ネットワーク105に接続された他の装置と各種データやコマンドを交換するために用いられる。
なお、セキュリティ管理サーバ101は、指示入力装置203及びディスプレイ204以外の入出力装置を有してもよく、さらにこの入出力装置をセキュリティ管理サーバ101とは別の計算機が有してもよい。この場合、その計算機が有する入出力装置からの入力をセキュリティ管理サーバ101が受信したり、仮想クライアントVMの出力(例えば表示及び又は音声等)を当該計算機へ送信することによって、この計算機が有する入出力装置への出力を実現することが考えられる。
ここで本実施の形態によるセキュリティ管理サーバ101の外部記憶装置205に格納される主要なプログラムについて説明する。
本実施の形態の場合、上述のようにセキュリティ管理サーバ101は、第1及び第2の物理クライアント102A,102B上で動作する各仮想クライアントのセキュリティを管理する。そのための手段として、外部記憶装置205には、図2に示すように、セキュリティ管理制御プログラム210、設定プログラム211、VM情報収集プログラム212、セキュリティチェックプログラム213及びOS214などのプログラムが格納される。
このうちセキュリティ管理制御プログラム210は、セキュリティ管理サーバ101の各種プログラムを制御するためのプログラムであり、設定プログラム211は、ユーザからの指示に従って各種設定を行うためのプログラムである。
またVM情報収集プログラム212は、VM管理サーバ103から仮想クライアントの管理情報を収集し、後述のクライアント管理テーブル223を作成又は更新するためのプログラムである。
さらにセキュリティチェックプログラム213は、クライアント管理テーブル223に登録された各クライアントに対するセキュリティチェックを行うためのプログラムである。OS214は、周辺装置との間のデータの入出力など、コンピュータ上で各プログラムを実行するための基本機能を提供する。
次に、外部記憶装置205に格納される主要な情報について説明する。これに際して、まず「マスタ情報」、「マスタVM」、「個別カスタマイズ情報」及び「個別VM」という用語について定義する。
以下において、「マスタ情報」とは、個別の仮想マシン(仮想クライアント)や、個別の利用者の環境で、個別にカスタマイズした部分を除く、仮想マシンを構成する情報のことをいうものとする。仮想マシンを構成する情報とは、マシンイメージの一部又は全部を指す。またマシンイメージとは、仮想マシンのCPU、メモリ及び通信制御装置などのハードウェアの仕様や個数や量、BIOSの設定、及び、仮想マシンのディスクをエミュレーションするディスクイメージなどを含んで構成される、仮想マシンを起動するために必要な各種情報を指す。なお、同じマスタ情報を持つ複数の仮想マシンにとって、マスタ情報は、仮想マシンを構成する情報の共通部分となる。
また「マスタVM」とは、マスタ情報に対するセキュリティチェックを行う対象となる仮想マシンのことをいう。
さらに「個別カスタマイズ情報」とは、マスタ情報をベースとして個別に仮想マシンをカスタマイズした場合において、個別にカスタマイズした部分の情報をいう。例えば、利用者毎にカスタマイズしたデスクトップ環境や利用者のプロファイルに関する情報、及び、特別な用途の仮想マシン(仮想クライアント)に個別にインストールしたソフトウェアの情報などがこれに該当する。
さらに「個別VM」とは、個別カスタマイズ情報に対するセキュリティチェックを行う対象となる仮想マシンのことをいう。
「マスタ情報」及び「個別カスタマイズ情報」の具体例について説明する。例えば、あるソフトウェアAをインストール済みの仮想マシンAのマシンイメージをコピーし、当該仮想マシンAと同じ構成の仮想マシンBを生成した後、当該仮想マシンBにソフトウェアBをインストールした場合、ソフトウェアAを含む仮想マシンAのマシンイメージがマスタ情報、ソフトウェアBを含む仮想マシンBで個別にカスタマイズした部分、すなわち仮想マシンBのマシンイメージにおける仮想マシンAのマシンイメージとの差分が個別カスタマイズ情報である。
また、他の例として、複数の仮想マシンで共通に利用する、仮想マシンを構成する情報に基づいて複数の仮想マシンを起動し、仮想マシンごとの差分情報を個別管理する仮想化技術(例えば特開2006−221649号公報)において、「複数の仮想マシンで共通に利用する仮想マシンを構成する情報」が「マスタ情報」に該当し、「仮想マシンごとの差分情報」が個別カスタマイズ情報に該当する。
セキュリティ管理サーバ101の外部記憶装置205に格納される主要な情報の説明に戻る。本実施の形態の場合、セキュリティ管理サーバ101が第1及び第2の物理クライアント102A,102B上で動作する各仮想クライアントのセキュリティを管理する手段として、外部記憶装置205には、図2に示すように、チェックポリシ管理テーブル220、個別VM/マスタVM対応管理テーブル221、チェック結果管理テーブル222及びクライアント管理テーブル223などが格納される。
チェックポリシ管理テーブル220は、第1及び第2の物理クライアント102A,102B上で動作する仮想クライアントに対して実行すべきセキュリティチェックのポリシを管理するためのテーブルであり、図13及び図14について後述するように図14に示すチェックポリシ設定画面500を用いた管理者の設定操作に応じて設定プログラム211により作成される。
このチェックポリシ管理テーブル220は、図3に示すように、チェック事項欄220A、ID欄220B、詳細欄220C、チェック対象欄220D、重要度欄220E及びチェック期限欄220Fから構成される。
そしてチェック事項欄220Aには、予め固定的に規定されているセキュリティチェックを実行すべき事項(以下、これをチェック事項と呼ぶ)の名称が格納される。
本実施の形態の場合、かかるチェック事項としては、所定の更新プログラムを適用しているか否かを判定する「更新プログラムの判定」、ウィルス対策製品をインストールしているか否かを判定する「ウィルス対策製品の判定」、インストール禁止の不正ソフトウェアをインストールしていないか否かを判定する「不正ソフトウェアの判定」、必ずインストールすべきソフトウェアをインストールしているか否かを判定する「必須ソフトウェアの判定」、及び、適切なセキュリティ設定を行っているか否かを判定する「セキュリティ設定の判定」の5つがある。ただし、チェック事項の数及び内容はこれに限られない。
また詳細欄220Cには、対応するチェック事項内の詳細項目が格納される。例えば図3の場合、「更新プログラム」に関しては、チェック対象の仮想マシンが「パッチA」,「パッチB」,……を適用しているか否かをそれぞれチェックすべきことが規定され、「ウィルス対策製品」に関しては、「2008/1/1」にウィルス定義された「ウィルスチェッカーA」のバージョン「1.0」、「2008/1/1」にウィルス定義された「ウィルスチェッカーB」のバージョン「1.0」、……のいずれかがインストールされているか否かをチェックすべきことが規定されている。
以下においては、チェック事項内のセキュリティチェックすべき各詳細項目をそれぞれチェック項目と呼ぶものとする。例えば、「更新プログラム」というチェック事項に関しては、「パッチA」、「パッチB」、……を適用しているか否かのチェックがそれぞれチェック項目に該当する。また「不正ソフトウェア」というチェック事項に関しては、「ソフトウェアX」のバージョン「2.0」、「ソフトウェアY」の全バージョン、……がそれぞれインストールされているか否かのチェックがそれぞれチェック項目に該当する。なお、「ウィルス対策製品」というチェック事項に関しては、詳細欄220Cに挙げられたウィルス対策製品のうちのいずれかがインストールされているか否かというチェックが1つのチェック項目となる。
ID欄220Bには、対応するチェック項目に対して付与されたIDが格納される。図3の場合、例えば「更新プログラム」というチェック事項の「パッチA」というチェック項目については「C1-01」というIDが付与され、「更新プログラム」というチェック事項の「パッチB」というチェック項目については「C1-02」というIDが付与されている。
さらにチェック対象欄220Dには、対応するチェック項目についてセキュリティチェックを実行すべき対象が格納される。具体的に、チェック対象欄220Dには、「マスタ」、「個別」、「マスタor個別」及び「マスタand個別」のいずれかが格納される。「マスタ」はマスタVMのみがチェックに合格すればよいことを表し、「個別」は個別VMのみがチェックに合格すればよいことを表す。また「マスタor個別」は、マスタVM及び個別VMのいずれか一方がチェックに合格すればよいことを表し、「マスタand個別」は、マスタVM及び個別VMの双方がチェックに合格する必要があることを表す。
例えば、あるソフトウェアをマスタVMにインストールして配布する場合、マスタVMにインストールされていれば、そのソフトウェアは個別VMにもインストールされているため、該当ソフトウェアのインストール状況を判定するチェック項目についてはチェック対象として「マスタ」が指定される。「マスタ」が指定された場合、そのチェック項目については、マスタVMに対してのみセキュリティチェックが行われ、そのチェック結果が該当マスタVMだけでなく、該当マスタVMと関連するすべての個別VMのチェック結果として採用される。
またセキュリティ設定を個人で不正に変更していないか、というようなチェック項目については、チェック対象として「個別」が設定される。「個別」が設定された場合、そのチェック項目については、個別VMに対してのみセキュリティチェックが行われ、そのチェック結果がその個別VMのチェック結果として採用される。なお、このチェック項目について、マスタVMはチェック対象外となる。
重要度欄220Eには、対応するチェック項目について設定された重要度が格納される。本実施の形態の場合、かかる重要度としては、「高」、「中」又は「低」のいずれかが設定される。なお、重要度として設定される値は、チェック項目の重要度を表す値であれば、他の値でも構わない。
このうち「高」は、システムの空きリソース不足などの問題がない限り、できる限り迅速にチェックを行うべきことを表す。また「中」は、チェック期限内であれば、チェック対象の仮想クライアントの利用者の邪魔をしないよう、仮想クライアントが未使用時に、空きリソース上で該当仮想クライアントを起動してチェックを行うべきことを表す。
さらに「低」は、「中」と同様に、チェック期限内であれば、仮想クライアントが未使用時に空きリソース上で該当仮想クライアントを起動してチェックを行うが、システムの空きリソース量が残り少ないなど、該当仮想クライアントを起動することにより、他の仮想クライアントへの悪影響が懸念される場合には、チェックを抑制してもよい。本実施の形態では、システムの空きリソース量が、該当仮想クライアントを起動すると、それ以上の仮想クライアントを起動できない場合には、空きリソース量が十分になるまで、チェックを行わないことを表す。
なお、重要度が「中」又は「低」に設定されたいずれのチェック項目についても、後述するチェック期限を経過した場合には、できる限り迅速にセキュリティチェックを行う。
なお、本実施の形態の場合、「高」、「中」、「低」は、上記の意味を示すものとしたが、システムの状況と、チェック項目ごとの重要度の値に応じて、該当チェック項目のチェック処理をすぐに行うか、後で行うかを判断するための材料であれば、他の意味でもよい。
さらにチェック期限欄220Fには、対応するチェック項目について設定されたセキュリティチェックを実行すべき期限(以下、これをチェック期限と呼ぶ)が格納される。
このチェックポリシ管理テーブル220は、セキュリティチェックプログラム213が各仮想クライアントに対するセキュリティチェックを実行する際に参照される。
一方、個別VM/マスタVM対応管理テーブル221は、各仮想クライアント(個別VM)と、当該仮想クライアントのマスタ情報をチェックするための仮想クライアント(マスタVM)との対応関係を管理するためのテーブルであり、図13及び図15について後述するように、図15に示す個別VM/マスタVM対応設定画面600を用いた管理者の設定操作に応じて設定プログラム211により各エントリが登録される。ただし、個別VMとマスタVMとの対応関係はVM管理サーバ103においても管理しているため、この情報を設定プログラム211がVM管理サーバ103から定期的に取得し、個別VM/マスタVM対応管理テーブル221を自動更新するようにしてもよい。
この個別VM/マスタVM対応管理テーブル221は、図4に示すように、クローンVM欄221A及びマスタVM欄221Bから構成される。そしてクローンVM欄221Aには対応する仮想クライアントに対して付与されたID(以下、これをマシンIDと呼ぶ)が格納され、マスタVM欄221Bには対応するマスタVMのマシンIDが格納される。
他方、チェック結果管理テーブル222は、個別VM及びマスタVMに対するセキュリティチェックのチェック結果を管理するためのテーブルであり、図5に示すように、CID欄222A、マシンID欄222B及び複数のID欄222Cから構成される。
そしてCID欄222Aには、そのチェック期限のセキュリティチェックに対して付与された識別情報(CID)が格納される。またマシンID欄222Bには、セキュリティチェックを行った対応する仮想クライアントのマシンIDが格納される。
さらに各ID欄222Cは、それぞれ図3について上述した各チェック項目に対して付与されたID(ID欄220B参照)にそれぞれ対応付けられており、これらID欄222Cには、それぞれ対応するセキュリティチェックの際に対応する仮想クライアントについて実行したセキュリティチェックのチェック結果が格納される。
例えば図5において、「○」はそのチェック期限のその仮想マシンのそのチェック項目に関するセキュリティチェックに合格したことを表し、「×」は、かかるセキュリティチェックに不合格であったことを表し、「—」は、かかるセキュリティチェックの対象外であることを表している。また「未」は、かかるセキュリティチェックが未だ行われていない(未チェック)であることを表す。また図5において、破線222Dで囲まれた行は、マスタVMに対するセキュリティチェックのチェック結果の例を表し、破線222E、222F及び222Gでそれぞれ囲まれたエリアは、マスタVMに対するセキュリティチェックのチェック結果を個別VMにも反映した結果を表している。
なお仮想クライアントに対するセキュリティチェックのチェック方法としては、WMI(Windows(登録商標)Management Instrumentation)やSSH(Secure SHell)を用いて採取した情報をもとにセキュリティの対策状況をチェックするエージェントレス方式や、仮想クライアント上で稼動するエージェントから情報を取得してセキュリティの対策状況をチェックする方式など様々な方法があるが、本実施の形態においては、いずれの方法でも採用可能である。
他方、クライアント管理テーブル223は、セキュリティ管理サーバ101において第1及び第2の物理クライアント102A,102B上で動作するセキュリティチェック対象の仮想クライアントを管理するためのテーブルであり、VM管理サーバ103の仮想マシン管理テーブル420から読み出した各仮想マシンの管理情報がそれぞれ格納される。
実際上、このクライアント管理テーブル223は、図6に示すように、マシンID欄223A、IPアドレス欄223B、対応物理マシンID欄223C及びリソース情報欄223Dから構成される。
そしてマシンID欄223Aには、システム上に存在する仮想クライアント及び物理クライアントに対してそれぞれ付与されたマシンIDが格納され、IPアドレス欄223Bには、その仮想クライアント又は物理クライアントにアクセスするためのIPアドレスが格納される。
また対応物理マシンID欄223Cには、対応する仮想マシンが仮想クライアントである場合にその仮想クライアントが動作している物理クライアント(第1又は第2の物理クライアント102A,102B)に対して付与された識別情報(物理マシンID)が格納される。
リソース情報欄223Dは、CPU欄223DA、メモリ欄223DB及びディスク欄223DCなどから構成されており、これらCPU欄223DA、メモリ欄223DB及びディスク欄223DCには、それぞれ対応する仮想クライアント又は物理クライアントに割り当てられているCPU、メモリ及びディスクなどのリソースのリソース量が格納される。ただし、このリソース情報欄223Dは省略してもよい。
なお、以上のチェックポリシ管理テーブル220、個別VM/マスタVM対応管理テーブル221、チェック結果管理テーブル222及びクライアント管理テーブル223は、プログラムが動的に生成や更新を行うため、プログラムの起動前から外部記憶装置205内に存在している必要はない。またこれらのテーブルを、外部記憶装置205ではなく、初期時より主メモリ202において保持するようにしてもよい。
(1−3)物理クライアントの構成
続いて、第1及び第2の物理クライアント102A,102Bの構成について説明する。なお、第2の物理クライアント102Bは、第1の物理クライアント102Aと同じ構成を有するため、ここでは第1の物理クライアント102Aの構成のみを説明することとし、第2の物理クライアント102Bの構成については説明を省略する。
図7は、第1の物理クライアント102Aの概略構成を示す。この図7に示すように、第1の物理クライアント102Aは、CPU301、主メモリ302、外部記憶装置303、通信制御装置304及びホストバスアダプタ(HBA)305がシステムバス306を介して相互に接続されることにより構成されている。
CPU301は、第1の物理クライアント102A全体の動作制御を司るプロセッサである。このCPU301が主メモリ302に格納された各種プログラムを実行することにより、第1の物理クライアント102Aによって、ユーザ端末107への仮想クライアントの提供を含む各種処理が行われる。また主メモリ302は、かかる各種プログラムや各種情報を保持するために用いられるほか、CPU301のワークメモリとしても用いられる。
通信制御装置304は、ネットワーク105に接続された他の装置と当該ネットワーク105を介して各種データやコマンドを交換するための通信制御機能を備える。またホストバスアダプタ305は、SAN106を介してストレージ装置104に対するデータの読み書きを行うための通信制御機能を備える。
外部記憶装置303は、例えばハードディスク装置から構成される大容量の記憶媒体であり、ハイパバイザプログラム310を含む各種プログラムを保持するために用いられる。
ハイパバイザプログラム310は、ストレージ装置104に格納されているマシンイメージ情報320に基づき、CPU301、主メモリ302、外部記憶装置303及び通信制御装置304を含む第1の物理クライアント102Aのハードウェア資源を用いて仮想クライアントを動作させるためのプログラムである。なお「マシンイメージ情報」とは、仮想クライアントのCPU、メモリ及び通信制御装置などのハードウェアの仕様や個数や量、BIOSの設定、及び、仮想マシンのディスクをエミュレーションするディスクイメージなどを含んで構成される、各ユーザ端末107にそれぞれ提供する仮想クライアントを起動するために必要な各種情報のことをいう。
またハイパバイザプログラム310は、性能情報取得機能311を備える。性能情報取得機能311は、ネットワーク105経由で第1の物理クライアント102AのCPU利用率やメモリ使用量を取得できる機能である。この性能情報取得機能311による情報の取得方法としては、例えば、SNMP(Simple Network Management Protocol)エージェントによるMIB(Management Information Base)情報を提供する方法や、WMIなどの管理用のインタフェースを備える方法、又はSSHを利用してリモートで性能情報取得コマンドを実行する方法などがある。
ストレージ装置104には、ハイパバイザプログラム310が使用する、仮想マシン(仮想クライアント)のマシンイメージ情報320が格納されている。ストレージ装置104は、SAN106を介して第1及び第2の物理クライアント102A,102Bと接続されており、マシンイメージ情報320は、第1又は第2の物理クライアント102A,102B上で稼動するいずれのハイパバイザプログラム310からも参照可能である。本実施の形態の場合、マシンイメージ情報320は、複製可能な単数又は複数のファイルから構成される。
ハイパバイザプログラム310は、マシンイメージ情報320を読み込み、仮想マシンに割り当てるリソース量(CPU処理時間、メモリ容量、ディスク容量など)や、エミュレーションするハードウェア(CPUや通信制御装置など)を決定し、仮想マシンに割り当てるリソース量の制御や、エミュレーションするハードウェアに対する命令を、第1及び第2の物理クライアント102A,102Bの各種ハードウェア資源に対する命令に変換することにより、仮想マシン(仮想クライアント)をエミュレーションする。またハイパバイザプログラム310は、マシンイメージ情報320内のディスクイメージに格納されたOS及びアプリケーションなどのプログラムや、各種設定情報及び又はユーザデータなどを読み込み、仮想マシン上で稼動する各種ソフトウェアを実行する。さらにハイパバイザプログラム310は、一般的なOSと同様に、ネットワーク105経由で、外部記憶装置303又はストレージ装置104に格納された各種ファイルをコピーする機能を備える。
(1−4)VM管理サーバの構成
図8は、本実施の形態におけるVM管理サーバ103の概略構成を示す。VM管理サーバ103は、CPU401、主メモリ402、指示入力装置403、ディスプレイ404、外部記憶装置405及び通信制御装置406を備え、これらがシステムバス407を介して相互に接続されることにより構成されている。
CPU401は、VM管理サーバ103全体の動作制御を司るプロセッサである。このCPU401が主メモリ402に格納された各種プログラムを実行することにより、VM管理サーバ103により後述のような処理が行われる。また主メモリ402は、各種プログラや各種データを保持するために用いられるほか、CPU401のワークメモリとしても用いられる。
指示入力装置403は、セキュリティ管理サーバ101に対する各種指示を入力するための装置であり、キーボード及び又はマウスなどから構成される。ディスプレイ404は、例えば液晶パネルやCRTなどから構成され、CPU401の制御のもとに、VM管理サーバ103による処理の実行状況や実行結果等を表示する。
外部記憶装置405は、例えばハードディスク装置から構成される大容量の記憶媒体であり、各種のプログラムやデータを保存するために用いられる。外部記憶装置405に保存されたプログラムは、指示入力装置403からのプログラム起動命令などに応じて主メモリ402にロードされ、CPU401により実行される。通信制御装置406は、ネットワーク105を介して当該ネットワーク105に接続された他の装置と各種データやコマンドを交換するために使用する。
ここで、本実施の形態によるVM管理サーバ103の外部記憶装置405に格納される主要なプログラムについて説明する。
本実施の形態の場合、上述のようにVM管理サーバ103は、第1及び第2の物理クライアント102A,102A上で動作する仮想クライアントを管理する。そのための手段として、外部記憶装置405には、図8に示すように、VM管理プログラム410、VM移動プログラム411及び管理情報参照プログラム412などのプログラム群と、仮想マシン管理テーブル420及び物理マシン管理テーブル421が格納される。
このうちVM管理プログラム410は、指示入力装置403を用いた利用者からの指示やネットワーク105経由での他のプログラムからの指示に従って仮想マシンの生成、削除、起動又は停止などを行い、その結果に基づき、仮想マシン管理テーブル420に各仮想マシンの管理情報や状態を登録するプログラムである。またVM管理プログラム410は、既存の仮想マシンのマシンイメージの一部又は全部の複製や、それに準ずる技術により、既存の仮想マシンと同様の構成の仮想マシンを作成する機能を持つプログラムである。かかる仮想マシンの作成は、例えば指示入力装置403を用いたマシンイメージの複製命令に応じて、ネットワーク105経由でハイパバイザプログラム310に対してマシンイメージを構成するファイルのコピーを指示することにより実現される。
VM移動プログラム411は、指示入力装置403を用いた利用者からの指示や、ネットワーク105経由での他のプログラムからの指示に従って、ある物理マシン上の仮想マシンを別の物理マシンに移動させるプログラムである。
管理情報参照プログラム412は、指示入力装置403を用いた利用者からの指示や、ネットワーク105経由での他のプログラムからの指示に従い、仮想マシン管理テーブル420及び物理マシン管理テーブル421の情報を返すプログラムである。
仮想マシン管理テーブル420は、VM管理サーバ103の管理対象の各仮想マシンについて、当該仮想マシンの識別情報、IPアドレス、当該仮想マシンが稼働させる物理クライアント(第1又は第2の物理クライアント102A,102B)の識別情報、必要リソース量(当該仮想マシンに割り当てるCPUやメモリなどのリソース量)、及び、状態(「起動中」や「停止中」など)を含む各種管理情報を管理するために用いられる。
実際上、この仮想マシン管理テーブル420は、図9に示すように、マシンID欄420A、IPアドレス欄420B、対応物理マシンID欄420C、状態欄420D及びリソース情報欄420Eなどから構成される。そしてこれらマシンID欄420A、IPアドレス欄420B及び対応物理マシンID欄420Cには、図6について上述したクライアント管理テーブル223のエントリのうち、仮想クライアントに対応するエントリのマシンID欄223A、IPアドレス欄223B又は対応物理マシンID欄223Cと同じ情報が格納される。また状態欄420Dには、対応する仮想マシンのそのときの状態(起動又は停止)を表す値が格納される。
さらにリソース情報欄420Eは、CPU欄420EA、メモリ欄420EB及びディスク欄420ECなどから構成されており、これらCPU欄420EA、メモリ欄420EB及びディスク欄420ECなどには、それぞれ図6のクライアント管理テーブル223の対応するCPU欄223DA、メモリ欄223DB又はディスク欄223DCなどに格納されている情報と同じ情報が格納される。
また物理マシン管理テーブル421は、ネットワーク105に接続された物理マシン(本実施の形態においては第1及び第2の物理クライアント102A,102B)を管理するためのテーブルであり、図10に示すように、マシンID欄421A、IPアドレス欄421B及びリソース情報欄421Cから構成される。
そしてマシンID欄421Aには、対応する物理マシンに付与された識別情報が格納され、IPアドレス欄421Bには、その物理マシンのIPアドレスが格納される。またリソース情報欄421Cは、CPU情報欄421CA、メモリ情報欄421CB及びディスク情報欄421CCなどから構成され、これらCPU情報欄421CA、メモリ情報欄421CB及びディスク情報欄421CC等には、対応する物理マシンに搭載されたCPU、メモリ及びディスク等のスペックが格納される。
(1−5)論理構成及び設定内容
続いて、本実施の形態によるネットワークシステム100の論理構成について説明する。図11は、本実施の形態におけるネットワークシステム100の論理構成例を示す。
第1の物理クライアント102Aのハイパバイザプログラム310A上には、第1〜第4の仮想クライアントVM1〜VM4が存在し、これら第1〜第4の仮想クライアントVM1〜VM4の状態は、第1〜第3の仮想クライアントVM1〜VM3が起動中、第4の仮想クライアントVM4が停止中となっている。また第2の物理クライアント102Bのハイパバイザプログラム310B上には、一つの仮想クライアントも存在しない。
一方、ストレージ装置104には、第1〜第4の仮想クライアントVM1〜VM4のマシンイメージが格納されている。第2〜第4の仮想クライアントVM2〜VM4のマシンイメージは、第1の仮想クライアントVM1のマシンイメージの複製により生成したものである。マシンイメージの複製は、例えば、管理者がVM管理サーバ103を用いて、ネットワーク105経由でハイパバイザプログラム310Aに対して、マシンイメージを構成するファイルのコピーを指示することにより実現される。
なお、第1の仮想クライアントVM1は、管理者が、一般利用者へ提供する仮想クライアントを生成する際に、スクラッチから仮想マシンを構築せずに済むよう、マシンイメージ情報320を複製して新規の仮想クライアントを生成するために使用する。
第2〜第4の仮想クライアントVM2〜VM4は、一般利用者が使用する仮想マシンであり、これら第2〜第4の仮想クライアントVM2〜VM4は、一般利用者の手によって、カスタマイズされている。ただし、本実施の形態では、第1の仮想クライアントVM1のディレクトリやファイルに対するユーザ権限の設定やOSの設定(レジストリの設定など)などにより、一般利用者が可能なカスタマイズ可能な項目は、以下の(A)〜(C)に制限されているものとする。
(A)個人のデスクトップ環境の設定(壁紙やスクリーンセーバの設定など)
(B)個人のプロファイル情報(個人のパスワードなど)
(C)ユーザ権限でアクセス可能な特定のディレクトリへのユーザファイルの作成、変更、削除又は外部から取り込んだファイルの配置(過半媒体やネットワーク105経由でのマシン外部から取り込んだファイルの配置)
VM管理サーバ103の仮想マシン管理テーブル420(図9)には、第1〜第4の仮想クライアントVM1〜VM4に関する情報が登録されている。また物理マシン管理テーブル421(図10)には、第1及び第2の物理クライアント102A,102Bに関する情報が登録されている。
さらにセキュリティ管理サーバ101の個別VM/マスタVM対応管理テーブル221(図8)には、第2〜第4の仮想クライアントVM2〜VM4のマスタVMが第1の仮想クライアントVM1であるという情報がそれぞれ登録されている。
(1−6)処理手順
続いて、本実施の形態による仮想クライアントのセキュリティ管理方法に関する各プログラムの処理の手順について説明する。なお、以下においては、各種処理の主体を「プログラム」として説明するが、実際には対応するCPU201,301,401がその「プログラム」に基づいてその処理を実行することは言うまでもない。
(1−6−1)セキュリティ管理制御プログラムの処理
まず、セキュリティ管理サーバ101(図2)のセキュリティ管理制御プログラム210(図2)の処理について説明する。図12は、本実施の形態におけるセキュリティ管理制御プログラム210により実行されるセキュリティ管理制御処理の処理手順を示す。
セキュリティ管理制御プログラム210は、指示入力装置203からのセキュリティチェックの開始指示コマンド等により起動されると、まずVM管理サーバ103の管理情報参照プログラム412から第1及び第2の物理クライアント102A,102B上で動作する各仮想クライアントに関する情報を取得し、取得した各仮想クライアントに関する情報をクライアント管理テーブル223に格納する(SP100)。
続いてセキュリティ管理制御プログラム210は、チェックポリシ管理テーブル220にチェックポリシが登録済みであるか否かを判定する(SP101)。そしてセキュリティ管理制御プログラム210は、この判定において否定結果を得ると、チェックポリシの設定を促すメッセージをディスプレイ204に出力してこのセキュリティ管理制御処理を終了する(SP109)。
これに対してセキュリティ管理制御プログラム210は、ステップSP101の判定において肯定結果を得ると、一連のセキュリティチェック処理(SP104の繰り返し処理によって、全チェック項目のチェックが完了するまでの一連の処理)ごとの一意な識別情報であるチェックID(図5のCID)を生成する(SP102)。このチェックIDは、チェック結果管理テーブル222内に格納されたチェック結果が、今回のセキュリティチェックのチェック結果であるか否かを判断するために用いる。チェックIDは、一意であればよく、GUID(Global Unique Identifier)などの一意であることが保障される文字列データであっても、連番の数値データであっても、他の形式のデータであっても構わない。続いてセキュリティ管理制御プログラム210は、現在の日時をOS214から取得し、メモリ202に保存する(SP103)。
この後、セキュリティ管理制御プログラム210は、チェックポリシに設定されたすべてのチェック項目のチェックが完了するまで、以下に説明するステップSP105〜ステップSP108の処理を繰り返し実行する(SP104)。
すなわちセキュリティ管理制御プログラム210は、セキュリティチェックプログラム213を実行し、各仮想クライアントに対するセキュリティチェックを行う(SP105)。なお、セキュリティチェックプログラム213を実行する際、プログラムの引数などにより、ステップSP102で作成したチェックIDと、ステップSP103で取得した日時データと、ステップSP104の繰り返し処理におけるインターバル時間(=Tとする)を渡す。本実施の形態では、インターバル時間の値は、システムで定めた固定値Tとするが、チェックポリシの一項目として管理者が指定する構成としてもよい。
続いて、セキュリティ管理制御プログラム210は、チェック結果管理テーブル222を確認し、まだチェックが完了していないチェック項目が残っているか否かを判定する(SP106)。
セキュリティ管理制御プログラム210は、この判定において肯定結果を得ると、一定時間(=T)の間待った(SP107)後にステップSP104に戻り、この後ステップSP106において否定結果を得るまで、ステップSP104〜ステップSP107の処理を繰り返す。
そしてセキュリティ管理制御プログラム210は、やがてすべてのチェック項目のセキュリティチェックが完了することによりステップSP106において否定結果を得ると、このセキュリティ管理制御処理を終了する(SP108)。
(1−6−2)設定プログラムの処理
一方、図13は、セキュリティ管理サーバ101(図2)の設定プログラム211により実行される設定処理の処理手順を示す。設定プログラム211は、指示入力装置203からの設定プログラムの開始指示コマンド等により起動されると、そのとき何らかの設定をしようとする項目(以下、これを設定対象項目と呼ぶ)の指定を促すメッセージをディスプレイ204上に表示し、管理者により設定対象項目が指定されるのを待ち受ける(SP200)。
そして設定プログラム211は、やがて設定対象項目が指定されると、そのとき指定された設定対象項目が「チェックポリシの設定」及び「個別VMとマスタVMとの対応関係の設定」のいずれであるかを判定する(SP201)。
そして設定プログラム211は、ステップSP201の判定において、そのとき指定された設定対象項目が「チェックポリシの設定」であると判定した場合には、チェックポリシを設定するための所定のGUI画面(以下、これをチェックポリシ設定画面と呼ぶ)をディスプレイ204に表示する。かくして管理者は、このチェックポリシ設定画面を用いて所望のチェックポリシを設定することができる。そして設定プログラム211は、このとき管理者により設定されたチェックポリシをチェックポリシ管理テーブル220に格納し(SP202)、この後この設定処理を終了する。
また設定プログラム211は、ステップSP201の判定において、そのとき指定された設定対象項目が「個別VMとマスタVMとの対応関係の設定」であると判定した場合には、個別VMとマスタVMとの対応関係を設定するための所定のGUI画面(以下、これを個別VM/マスタVM対応設定画面と呼ぶ)をディスプレイ204に表示する。かくして管理者は、この個別VM/マスタVM対応設定画面を用いて個別VMとマスタVMとの対応関係を設定することができる。そして設定プログラム211は、このとき管理者により設定された個別VMとマスタVMとの対応関係を個別VM/マスタVM対応管理テーブル221に格納し(SP203)、この後この設定処理を終了する。
さらに設定プログラム211は、ステップSP201の判定において、そのとき指定された設定対象項目が「チェックポリシの設定」及び「個別VMとマスタVMとの対応関係の設定」のいずれでもないと判定したときには、エラーをディスプレイ204に表示し(SP204)、この後この設定処理を終了する。
なおチェックポリシ設定画面の構成例を図14に示す。この図14のチェックポリシ設定画面500では、セキュリティチェックのチェック項目として予め定められた各項目にそれぞれ対応させてチェックポリシ詳細設定部501〜505が設けられている。本実施の形態の場合、上述のようにかかるチェック項目として、「更新プログラムの判定」、「ウィルス対策製品の判定」、「不正ソフトウェアの判定」、「必須ソフトウェアの判定」及び「セキュリティ設定の判定」の5つが予め定められている。
そして例えば「更新プログラムの判定」というチェック項目に対応するチェックポリシ詳細設定部501では、更新が適用されたか否かをチェックすべき更新プログラムを指定でき、指定した更新プログラムごとにチェック対象、重要度及びチェック期限を指定できる。
また「ウィルス対策製品の判定」というチェック項目に対応するチェックポリシ詳細設定部502では、許可するウィルス対策製品、該当ウィルス対策製品のウィルス定義ファイルのバージョン及び定義日と、チェック対象、重要度及びチェック期限とを指定できる。
さらに「不正ソフトウェアの判定」というチェック項目に対応するチェックポリシ詳細設定部503では、インストールを禁止するソフトウェア及び当該ソフトウェアのバージョンを指定でき、指定したソフトウェアごとにチェック対象、重要度及びチェック期限を指定できる。
また「必須ソフトウェアの判定」というチェック項目に対応するチェックポリシ詳細設定部504では、必ずインストールすべきソフトウェアを指定でき、指定したソフトウェアごとにチェック対象、重要度及びチェック期限を指定できる。
さらに「セキュリティ設定の判定」というチェック項目に対応するチェックポリシ詳細設定部505では、予め用意されたセキュリティ設定に関するチェック項目ごとにチェックの要否、チェック対象、重要度及びチェック期限を指定できる。
また「セキュリティ設定の判定」というチェック項目に対応するチェックポリシ詳細設定部505以外のチェックポリシ詳細設定部501〜504には、それぞれ対応するチェック項目をチェック対象とするか否かを指定するためのラジオスイッチ501A〜504Aが設けられている。
そしてチェックポリシ設定画面500では、所望するチェックポリシ詳細設定部501内に必要事項を入力後、OKボタン506又はキャンセルボタン507をクリックすることによって、このチェックポリシ設定画面500を閉じることができる。
この際、設定プログラム211は、OKボタン506がクリックされた場合には、チェックポリシ設定画面500において指定された情報をチェックポリシ管理テーブル220に新規登録し、又はチェックポリシ設定画面500において指定された情報に基づいてチェックポリシ管理テーブル220を更新し、キャンセルボタン507がクリックされた場合は、何もせずに処理を終了する。
また個別VM/マスタVM対応設定画面の構成例を図15に示す。この図15に示す個別VM/マスタVM対応設定画面600は、クライアント管理テーブル223から取得した、管理対象の仮想クライアントを表示する管理対象VM一覧表示部601と、個別VM/マスタVM対応管理テーブルに登録済みの個別VMとマスタVMとの関係を提示する登録済み情報表示部602と、追加的に対応付けようとする個別VM及びマスタVMを指定する対応情報追加設定部604とからなる。
そして設定プログラム211は、登録済み情報表示部602に表示された個別VM及びマスタVMの対応関係のうち、いずれかの対応関係と対応付けられたチェックボックス607がチェックされた状態で削除ボタン603がクリックされると、その個別VM及びマスタVMの対応関係に関する情報を個別VM/マスタVM対応管理テーブル221から削除する。
また設定プログラム211は、対応情報追加設定部604において個別VM及びマスタVMのペアが指定された後、追加ボタン605がクリックされると、指定された情報を個別VM/マスタVM対応管理テーブル221に追加する。
さらに設定プログラム211は、個別VM/マスタVM対応設定画面500の右下に表示された終了ボタン606がクリックされると、この個別VM/マスタVM対応設定画面500を閉じて処理を終了する。
(1−6−3)セキュリティチェックプログラムの処理
次に、図12のステップSP105におけるセキュリティチェックプログラム213の処理内容について説明する。なお、上述のようにセキュリティチェックプログラム213は、セキュリティ管理制御プログラム210から、ステップSP102で作成したチェックIDと、ステップSP103で取得した日時データと、ステップSP105〜ステップSP108における繰り返し処理のインターバル時間(=T)とを受け取る。
図16は、セキュリティ管理サーバ101のセキュリティチェックプログラム213が実行するセキュリティチェック処理の処理手順を示す。セキュリティチェックプログラム213は、まず、クライアント管理テーブル223を参照することにより各仮想クライアントの管理情報を取得し、さらに個別VM/マスタVM対応管理テーブル221を参照して、取得した各仮想クライアントの管理情報を、個別VMの管理情報とマスタVMの管理情報に分類する(SP300)。
続いてセキュリティチェックプログラム213は、ステップSP300において分類した管理情報のうち、マスタVMの管理情報を取得し、全マスタVMに対して、後述するステップSP302〜ステップSP315の処理を繰り返し実行する(SP301)。
具体的に、セキュリティチェックプログラム213は、チェックポリシ管理テーブル220からマスタVMのチェック項目に関する情報を取得し、さらにチェック結果管理テーブル222からそのとき対象としているマスタVMのチェック結果のうち、今回のセキュリティチェックの結果(つまりチェックIDが一致するエントリの情報)を取得する。
次いで、セキュリティチェックプログラム213は、ステップSP302で取得したマスタVMに対するチェック項目と、そのとき対象としているマスタVMに対するセキュリティチェックのチェック結果とを参照し、未チェックのチェック項目が存在するかを判定する(SP303)。
セキュリティチェックプログラム213は、この判定において否定結果を得ると、ステップSP301に戻って、この後ステップSP303において肯定結果を得るまで同様の処理を繰り返す。
そしてセキュリティチェックプログラム213は、やがて対象とするマスタVMに対するすべてのチェック項目のセキュリティチェックが終了することによりステップSP303において肯定結果を得ると、チェックポリシ管理テーブル220に設定された重要度に基づいて、対象としているマスタVMに対して未チェックのチェック項目を、重要度が「高」のチェック項目と、重要度が「中」のチェック項目と、重要度が「低」のチェック項目とに分類する。またセキュリティチェックプログラム213は、セキュリティ管理制御プログラム210から受け取った日時情報と、現在の日時と、チェックポリシ管理テーブル220に設定されたチェック期限との情報に基づいて、チェック期限切れのチェック項目をリストアップする(SP304)。なお、期限切れの判断は、SP103にて採取してメモリ202に格納した時刻(すなわち、一連のチェック処理の開始時刻)に、チェック期限に記載の時間を加えた時刻が、現在時刻よりも古い場合は期限切れと判断する。なお、本実施の形態では、チェック期限として、一連のチェック処理の開始時刻からの経過時間を記載するものとしたが、UNIX時間(1970年1月1日0時0分0秒からの秒数)や、特定の日時などを記載し、チェック期限に記載された時刻が、現在時刻よりも古い場合に期限切れと判断してもよい。なお、この場合は、一度、該当チェック項目のセキュリティチェックに合格した仮想クライアントは、再度、同じ項目のセキュリティチェックは実行しないようにしてもよい。
さらにセキュリティチェックプログラム213は、VM管理サーバ103の管理情報参照プログラム412から仮想マシン管理テーブル420に格納された情報と、物理マシン管理テーブル421に格納された情報とを取得し、これらの情報と仮想マシン管理テーブル420とに基づいて、対象としているマスタVMが現在起動中であるか否かを判定する(SP305)。なお、所定のVMが停止中とは、ハイパバイザプログラム310が所定のVM上で動作するアプリケーションプログラムやOS等のソフトウェア実行を終了し、所定のVMの提供に用いていた物理クライアント102の主メモリ302の領域を開放する、いわゆる所定のVMが終了した状態(かつ所定のVMの初期化前の状態)を指す。しかし、本実施の形態では所定のVMの停止中とした場合に、ハイパバイザプログラム310が所定のVMが提供するレジスタ及びメモリ空間の内容をマシンイメージに書き戻し、所定のVM上で動作するアプリケーションプログラムやOS等のソフトウェア実行を終了する一次停止状態を含めてもよい。なお、ハイパバイザプログラム310は一時停止状態のVMの処理を再開して再び起動中にするために、当該VMのマシンイメージから、メモリ空間の内容やレジスタの内容を含む各種情報を読み込み、これらの内容に基づいて所定のVMのレジスタ内容とメモリ空間の内容を復旧し、VMとしてのソフトウェア実行を再開させることができる。したがって、ハイパバイザプログラム310の説明で述べた、仮想マシン(仮想クライアント)をエミュレーションする処理を、一時停止中のVMに適用する場合は上記復旧を行うものと読み替えてもよい。
そしてセキュリティチェックプログラム213は、この判定において否定結果を得ると、ステップSP305において取得した仮想マシン管理テーブル420の情報に基づいて、そのマスタVMの必要リソース量を取得する。またセキュリティチェックプログラム213は、これに加えて物理マシン管理テーブル421から各物理クライアント(第1及び第2の物理クライアント102A,102B)に必要な各リソース(CPU、メモリ及びディスク等)の量(以下、これを必要リソース量と呼ぶ)を取得する。さらにセキュリティチェックプログラム213は、同じく物理マシン管理テーブル421から取得したIPアドレスを用いて、各物理クライアント(第1及び第2の物理クライアント102A,102B)にリモートアクセスし、これら物理クライアントの性能情報取得機能311から現在の性能情報(CPU利用率及びメモリ使用量)を取得し、現在のシステムの空きリソース量を算出する(SP306)。
続いてセキュリティチェックプログラム213は、ステップSP306において取得した、対象とするマスタVMの必要リソース量と、現在のシステムの空きリソース量とを比較し、当該マスタVMを起動できるか否かを判定する(SP307)。
セキュリティチェックプログラム213は、この判定によりかかるマスタVMの起動ができないと判断した場合は、ステップSP304で作成した、当該マスタVMの未チェックのチェック項目の分類結果を参照し(SP308)、重要度が「高」のチェック項目又はチェック期限を過ぎたチェック項目があれば、管理者に対するアラートを発行する(SP309)。なお、管理者に対するアラートの発行方法としては、管理者にリソース不足の旨を通知する方法であれば、ディスプレイ204にメッセージを表示する方法や、管理者宛てに電子メールを送信する方法などのほか、他の種々の方法を広く適用することができる。そしてセキュリティチェックプログラム213は、ステップSP301に戻って、この後同様の処理を繰り返す。
またセキュリティチェックプログラム213は、ステップSP307において、そのマスタVMの2台分の空きリソースがないと判断した場合(対象とするマスタVMを起動すると、それ以上のVMを起動できないと判断した場合)は、ステップSP304において作成したそのマスタVMに対して未チェックのチェック項目の分類結果を参照し、重要度が「高」、重要度が「中」又はチェック期限を過ぎたチェック項目があるか否かを判定する(ステップSP310)。
そしてセキュリティチェックプログラム213は、この判定において肯定結果を得ると、VM管理サーバ103のVM管理プログラム410を利用してそのマスタVMを起動する(SP311)。具体的に、セキュリティチェックプログラム213は、第1又は第2の物理クライアント102A,102Bを制御することにより、そのハイパバイザプログラム310に、ストレージ装置104から対応するマシンイメージ情報320を読み込ませ、これを主メモリ302上で展開させる。ただし、このマスタVMを稼働させる物理クライアント(第1又は第2の物理クライアント102A,102B)の空きリソースが不足している場合には、VM管理サーバ103のVM移動プログラム411を利用して、最も空きリソースが多い物理クライアントにそのマスタVMを移動させた後、当該マスタVMを起動する。
続いてセキュリティチェックプログラム213は、対象とするマスタVMに対し、重要度が「高」のチェック項目、重要度が「中」のチェック項目及びチェック期限を過ぎたチェック項目に対してそれぞれセキュリティチェックを行い、そのチェック結果をチェック結果管理テーブル222に格納する。またセキュリティチェックプログラム213は、チェック対象が「マスタ」であるチェック項目については、そのマスタVMと関連する個別VMに対するセキュリティチェックのチェック結果として、当該マスタVMのチェック結果をチェック結果管理テーブル222に格納する。さらに、セキュリティチェックプログラム213は、チェック対象が「マスタor個別」であるチェック項目については、そのマスタVMに対するセキュリティチェックのチェック結果が合格であった場合にのみ、当該マスタVMと関連する個別VMのチェック結果として、チェック結果管理テーブル222に当該マスタVMに対するセキュリティチェックのチェック結果を格納する(ステップSP312)。そしてセキュリティチェックプログラム213は、ステップSP301に戻って、この後同様の処理を繰り返す。
さらにセキュリティチェックプログラム213は、ステップSP307において、対応する物理クライアント(第1又は第2の物理クライアント102A,102B)内にそのマスタVMの2台分以上の空きリソースが存在すると判断した場合には、VM管理サーバ103のVM管理プログラム410を利用してそのマスタVMを起動する(ステップSP313)。この際、セキュリティチェックプログラム213は、ステップSP311と同様に、そのマスタVMを稼働させる物理クライアント(第1又は第2の物理クライアント102A,102B)の空きリソースが不足している場合には、VM管理サーバ103のVM移動プログラム411を利用して、最も空きリソースが多い物理クライアントにそのマスタVMを移動させた後、当該マスタVMを起動する。
続いて、セキュリティチェックプログラム213は、対象とするマスタVMに対してセキュリティチェックを行い、そのチェック結果をチェック結果管理テーブル222に格納する。またセキュリティチェックプログラム213は、ステップSP312と同様に、チェック対象の設定に応じて、そのマスタVMと関連する個別VMに対するセキュリティチェックのチェック結果として、当該マスタVMのチェック結果をチェック結果管理テーブル222に格納する(SP314)。そしてセキュリティチェックプログラム213は、ステップSP301に戻って、この後同様の処理を繰り返す。
なお、ステップSP307〜ステップSP314の処理は一例であって、例えば、ステップSP307においてそのマスタVMの2台分の空きリソースがないと判断した場合にもステップSP308及びステップSP309の処理を行うようにしてもよい。
これに対してセキュリティチェックプログラム213は、ステップSP305の判定において肯定結果を得ると、対象とするマスタVMに対して、重要度が「高」のチェック項目及びチェック期限を過ぎたチェック項目についてのみセキュリティチェックを行い、そのチェック結果をチェック結果管理テーブル222に格納する。このようにマスタVMが起動されている場合には、重要度が「高」のチェック項目及びチェック期限を過ぎたチェック項目についてのみセキュリティチェックを行うのは、そのマスタVMが起動されている場合、そのマスタVMによって何らかの処理が行われている可能性があるため、その処理を邪魔しないようにするためである。またセキュリティチェックプログラム213は、ステップSP312と同様に、チェック対象の設定に応じて、そのマスタVMと関連する個別VMに対するセキュリティチェックのチェック結果として、当該マスタVMのチェック結果をチェック結果管理テーブル222に格納する(SP315)。そしてセキュリティチェックプログラム213は、ステップSP301に戻って、この後同様の処理を繰り返す。
続いて、セキュリティチェックプログラム213は、ステップSP300において分類した管理情報のうち、個別VMの管理情報を取得し、全個別VMに対して、後述するステップSP317〜ステップSP330の処理を繰り返し実行する(SP316)。
具体的に、セキュリティチェックプログラム213は、チェックポリシ管理テーブル220から個別VMのチェック項目に関する情報を取得し、さらにチェック結果管理テーブル222からそのとき対象としている個別VMのチェック結果のうち、今回のセキュリティチェックのチェック処理の結果(つまりチェックIDが一致するエントリの情報)を取得する(SP317)。
次いで、セキュリティチェックプログラム123は、ステップSP317で取得した個別VMに対するセキュリティチェックのチェック項目と、そのとき対象としている個別VMに対するセキュリティチェックのチェック結果とを参照し、未チェックのチェック項目が残っているかを判定する(SP318)。
セキュリティチェックプログラム213は、この判定において否定結果を得るとステップSP316に戻り、この後ステップSP318において肯定結果を得るまで同様の処理を繰り返す。
そしてセキュリティチェックプログラム213は、やがてすべてのチェック項目に対するセキュリティチェックが終了することによりステップSP318において肯定結果を得ると、ステップSP304と同様にして、対象とする個別VMに対して未チェックのチェック項目をリストアップする(SP319)。
続いてセキュリティチェックプログラム213は、ステップSP305と同様にして、対象とする個別VMが起動中であるか否かを判断し(SP320)、当該個別VMが停止中のときには、ステップSP306と同様にして、その個別VMの必要リソース量と、各物理クライアントの現在の性能情報とをそれぞれ取得し、現在のシステムの空きリソース量を算出する(SP321)。
次いでセキュリティチェックプログラム213は、ステップSP307と同様にして、その個別VMを起動できるか否かを判定する(SP322)。
そしてセキュリティチェックプログラム213は、その個別VMの起動ができないと判断した場合は、ステップSP308同様に、その個別VMの未チェックのチェック項目に、重要度が「高」のチェック項目又はチェック期限を過ぎたチェック項目があれば、管理者へアラートを発行する(SP323,SP324)。そしてセキュリティチェックプログラム213は、ステップSP316に戻って、この後同様の処理を繰り返す。
またセキュリティチェックプログラム213は、ステップSP322において、そのマスタVMの2台分の空きリソースがないと判断した場合(対象とするマスタVMを起動すると、それ以上のVMを起動できないと判断した場合)は、ステップSP319において作成したその個別VMの未チェックのチェック項目の分類結果を参照し、重要度が「高」、重要度が「中」又はチェック期限を過ぎたチェック項目があるか否かを判定する(SP325)。
そしてセキュリティチェックプログラム213は、この判定において肯定結果を得ると、ステップSP311と同様にして、その個別VMを起動する(SP326)。
またセキュリティチェックプログラム213は、ステップSP312と同様にして、その個別VMに対して、重要度が「高」のチェック項目、重要度が「中」のチェック項目及びチェック期限を過ぎたチェック項目についてのみセキュリティチェックを行い、そのチェック結果をチェック結果管理テーブル222に格納する(SP327)。そしてセキュリティチェックプログラム213は、ステップSP316に戻って、この後同様の処理を繰り返す。
さらにセキュリティチェックプログラム213は、ステップSP322において、対応する物理クライアント(第1又は第2の物理クライアント102A,102B)内にそのマスタVMの2台分以上の空きリソースが存在すると判断した場合には、ステップSP313と同様の手順で、その個別VMを起動し(SP328)、この後ステップSP314と同様の手順によりその個別VMに対するチェックを行い、チェック結果をチェック結果管理テーブル222に格納する(SP329)。そしてセキュリティチェックプログラム213は、ステップSP316に戻って、この後同様の処理を繰り返す。
これに対してセキュリティチェックプログラム213は、ステップSP320の判定において肯定結果を得ると、ステップSP315と同様にして、その個別VMに対して重要度が「高」のチェック項目及びチェック期限を過ぎたチェック項目についてのみセキュリティチェックを行い、そのチェック結果をチェック結果管理テーブル222に格納する(SP330)。そしてセキュリティチェックプログラム213は、ステップSP316に戻って、この後同様の処理を繰り返し、やがてすべての個別VMに対するステップSP317〜ステップSP330の処理が完了すると、このセキュリティチェック処理を終了する。
(1−6−4)VM情報収集プログラムの処理
続いて、セキュリティ管理サーバ101(図2)のVM情報収集プログラム212(図2)の処理内容について説明する。
図17は、本実施の形態によるVM情報収集プログラム212により実行されるVM情報収集処理の処理手順を示す。VM情報収集プログラム212は、まずVM管理サーバ103の管理情報参照プログラム412を呼び出し、仮想マシン管理テーブル420から各仮想マシンの管理情報(以下、これを仮想マシン管理情報と呼ぶ)を取得する(SP400)。
続いてVM情報収集プログラム212は、取得した仮想マシン管理情報の一部又は全部をクライアント管理テーブル223に格納し(SP401)、この後このVM情報収集処理を終了する。
(1−7)本実施の形態の動作及び効果
本実施の形態における動作例を、図18に示す。例えばチェクポリシ管理テーブル220における「C1-01」というチェック項目を仮想マシンVM1に対して実施し、チェックに合格した場合は(図18の「C1-01-(1)」)、個別VM(VM2〜VM4)に対するチェックを行わずに、各個別のチェック結果を「○」にすることができる(図18の「C1-01-(2)」)。これにより、セキュリティチェック処理の処理量を減らすことができ、仮想クライアントの利用者への影響を抑えつつ、セキュリティチェック処理の高速化ができるようになる。
また、チェクポリシ管理テーブル220における「C5-01」というチェック項目を仮想マシンVM2に対して実施しようとした場合に、仮想マシンVM2が利用中であれば、この「C5-01」というチェック項目の重要度が「低」なのでチェックをスキップし、後に仮想マシンVM2が未使用のときにチェック処理を行う(図18の「C5-01」)。これにより、セキュリティチェック処理が仮想マシンVM2の利用者に与える影響をおさえることができるようになる。
また、チェクポリシ管理テーブル220における「C3-02」というチェック項目を仮想マシンVM3に対して実施しようとした場合、この「C3-02」というチェック項目は重要度が「高」なので、仮想マシンVM3が利用中にも関わらず、当該チェック項目のチェック処理を実施する(図18の「C3-02-(1)」)。同じく、「C3-02」というチェック項目を仮想マシンVM4に対して実施しようとした際、第1の物理クライアント102Aがリソース不足であった場合(図18の「C3-02-(2)」)、仮想マシンVM4は第2の物理クライアント102B上で起動しチェック処理を実施する(図18の「C3-02-(3)」)。これにより、重要度が高いチェック項目については迅速にチェックを行うことができるようになる。
以上のように本実施の形態によるセキュリティ管理方法によれば、セキュリティチェックを、チェック項目ごとに、必要な種別の仮想マシンに対して選択的に実行することができるため、不要な種別に対するセキュリティチェックを省略させることができる。かくするにつき仮想クライアントのセキュリティチェックを高速かつ効率的に行うことができる。
また従来技術によると、各仮想クライアントに対するセキュリティチェックの実行により、チェック処理を行う管理サーバ側だけでなく、チェック対象のクライアント側にも少なからずの負荷を与えるという問題もあるが、本実施の形態によるセキュリティ管理方法によれば、複数台の管理サーバでの並列実行などによって高速化を行う方法ではなく、セキュリティチェックの処理量を減らす方法での高速化を実現できる。
(2)第2の実施の形態
(2−1)本実施の形態によるネットワークシステムの構成
次に、第2の実施の形態について説明する。本実施の形態では、管理対象の複数の仮想クライアントがマシンの構成情報(あるマシンイメージの全部又は一部など)を共有し、共有するマシンの構成情報に変更を加えると、当該マシンの構成情報を共有しているすべての仮想クライアントにその変更が反映される仮想化技術、特に、共有するマシンの構成情報に変更を加えると、既に起動中の仮想クライアントには変更が反映されず、仮想クライアントのOSを再起動した際に、その変更が反映される仮想化技術をベースとする(例えば特許文献2や、非特許文献1の技術)。なお、OSの再起動とは仮想クライアントを起動した状態で、当該仮想クライアントのOSの処理を終了し、再度起動を行う場合のみならず、当該仮想クライアントのOSの終了後に仮想クライアントが停止状態となり、その後仮想クライアントを起動してOSを起動する場合も含む。なお、このような変更反映を行う仮想化技術の一例としては以下の処理によって実現する方法が考えられる。しかし、これ以外の方法を採用してもよい。
(ステップ1)マスタVMに対する変更箇所を記録する。なお、変更箇所の記録方法としては変更された個々のファイル名や、変更箇所のファイルシステム上のアドレスなどにより特定した変更箇所を記録する。変更箇所を特定する方法は、他の方法でもよい。また、更新データや更新前データも含めて記録してもよい。また、当該記録はハイパバイザプログラムまたはマスタVMまたは別なコンピュータが行うことが考えられる。
(ステップ2)個別VM上のOSの再起動を検知し、記録された変更箇所のデータをマスタVMのディスクイメージから個別VMのディスクイメージにコピーする。当該検知及びコピーはハイパバイザプログラムまたはマスタVMまたは別なコンピュータが行うことが考えられる。なお、個別VMにのみ存在するファイルまたは設定と矛盾する上記コピーについては矛盾を発生させるファイル(またはデータ)についてのコピーを抑止してもよい。
(ステップ3)コピー後に個別VM上にてOSの起動を行わせる。これによってコピーされたファイル(データ)を反映したソフトウェア実行環境が個別VM上にて実現される。
ただし、共通の情報の変更を反映させるために、仮想クライアントの再起動を必要としない仮想化技術については、第1の実施の形態の範囲では本発明を適用可能である。
なお、本実施の形態では、以上のような仮想化技術の実装には依存しないため、仮想化技術の詳細な説明は省略し、一例として簡単に説明するにとどめる。また、以上のような仮想化技術には、共有するマシンの構成情報があるマシンイメージそのものであり、共有するマシンの構成情報だけで仮想マシンが構成できる技術(以下、これを仮想化技術1と呼ぶ)と、共有するマシンの構成情報だけでは仮想マシンが構成できず、共有するマシンの構成情報と、個別の仮想クライアントごとに持つ、個別のマシンの構成情報を合わせて個別の仮想クライアントが構成できる技術(以下、これを仮想化技術2と呼ぶ)がある。本実施の形態では、かかる仮想化技術1及び仮想化技術2のいずれにも対応できる方式について説明する。
図1との対応部分に同一符号を付して示す図19において、700は全体として第2の実施の形態によるネットワークシステムを示す。このネットワークシステム700は、第1及び第2の物理クライアント702A,702Bの外部記憶装置303(図20)並びにストレージ装置703において保持されるプログラム及び各種情報と、セキュリティ管理サーバ701により実行されるセキュリティチェックのチェック項目及び当該セキュリティチェックの処理手順とが異なる点を除いて第1の実施の形態によるネットワークシステム100と同様に構成されている。
まず本実施の形態による第1及び第2の物理クライアント702A,702Bの構成について説明する。図7との対応部分に同一符号を付して示す図20は、第2の実施の形態による第1の物理クライアント702Aの構成を示す。なお第2の物理クライアント702Bも、第1の物理クライアント702Aと同様の構成である。
第1の物理クライアント702Aの外部記憶装置303には、ハイパバイザプログラム310に加え、VMイメージ管理プログラム800が保持される。また、ストレージ装置703には、複数又は単数のVM共通構成情報801、複数又は単数の個別VM構成情報802、並びに共通/個別対応情報803が格納される。
VM共通構成情報801は、複数又は単数の仮想クライアントを構成する情報の一部又は全部であり、典型的には、複数の仮想クライアントから共有される。上記仮想化技術1においては、ある仮想クライアントのマシンイメージであり、上記仮想化技術2においては、ある仮想クライアントを構成する情報の一部である。
個別VM構成情報802は、個別の仮想クライアントごとにカスタマイズした情報を含む、仮想クライアントを構成する情報の一部である。上記仮想化技術1においては、VM共通構成情報802のみから構成される仮想クライアントとの差分情報であり、上記仮想化技術2においては、VM共通構成情報801とあわせて、ある仮想クライアントを構成する情報である。
共通/個別対応情報803は、個別VM構成情報802のそれぞれについて、どのVM共通構成情報801と関連するかを示す情報である。
VMイメージ管理プログラム800は、VM共通構成情報801と、個別VM構成情報802を管理するプログラムであり、ハイパバイザプログラム310に対して仮想的なマシンイメージを提供する。すなわち、本実施の形態におけるハイパバイザプログラム310は、VMイメージ管理プログラム800を介してマシンイメージにアクセスする。
例えばVMイメージ管理プログラム800は、共通/個別対応情報802に基づいて、VM共通構成情報801と、個別VM構成情報802とを合わせたマシンイメージを仮想的に構築する。またVMイメージ管理プログラム800は、あるVM共通構成情報801に変更があった場合は、すべての仮想クライアントに変更後の情報が反映されたことを確認するまで(つまり変更前の情報が不要になるまで)、変更前の情報と、変更後の情報の両方を管理し、ハイパバイザプログラム310の要求に応じて、変更前か変更後のいずれかの情報を提供する。
(2−2)論理構成
続いて、本実施の形態によるネットワークシステム700の論理構成について、上述した第1の実施の形態によるネットワークシステム100の論理構成(図11参照)と異なる部分を説明する。なお、本実施の形態では、上記仮想化技術1のように、VM共通構成情報801が、当該情報のみで仮想マシンを起動するに十分な情報を有するマシンイメージであるものとする。
図21は、第2の実施の形態によるネットワークシステム700の論理構成を示す。ストレージ装置703には、VM共通構成情報801と、第1の仮想クライアントVM1以外の各仮想クライアント(第2〜第4の仮想クライアントVM2〜VM4)用の個別VM構成情報802(VM共通構成情報801との差分情報)とが格納されている。
なお、上述のようにVM共通構成情報801は、当該情報のみで、第1の仮想クライアントVM1を起動するに十分な情報を有するマシンイメージとするが、ストレージ装置703に第1の仮想クライアントVM1用の個別VM構成情報802を格納し、第1の仮想クライアントVM1がVM共通構成情報801と、当該第1の仮想クライアントVM1用の個別VM構成情報802とを合わせて仮想マシンを起動するに十分な情報を有する構成をとってもよい。
第2〜第4の仮想クライアントVM2〜VM4は、第1の仮想クライアントVM1をベースに生成した仮想マシンであり、これら第2〜第4の仮想クライアントVM2〜VM4のマシンイメージは、VMイメージ管理プログラム800により、VM共通構成情報801と、各仮想クライアント用の個別VM構成情報802とを合わせて仮想的に構成される。
本実施の形態では、マスタVMにインストールしたソフトウェアのアンインストールを除く、あらゆる操作を個別VMの利用者に許すこととする。なお、ソフトウェアのアンインストールを抑止する方法としては、レジストリへのアンインストールの禁止設定、個別VMの利用者のユーザ権限による保護、アンインストールパスワードの設定などがあるが、他の方法でも構わない。
また第1の実施の形態と同様に、セキュリティ管理サーバ701が保持する個別VM/マスタVM対応管理テーブル221(図2及び図4)には、第2〜第4の仮想クライアントVM2〜VM4のマスタVMがいずれも第1の仮想クライアントVM1であることが登録される。
なお、上述のように本実施の形態では、VM共通構成情報801は、当該情報のみで、第1の仮想クライアントVM1を起動するに十分な情報を有するマシンイメージとしたが、第1の仮想クライアントVM1がVM共通構成情報801と、当該第1の仮想クライアントVM1用の個別VM構成情報802とを合わせて仮想クライアントを起動するに十分な情報を有する構成をとった場合、いずれかの個別VM、すなわち第2〜第4の仮想クライアントVM2〜VM4をマスタVMとしても定義する。具体的には、例えば第2の仮想クライアントVM2をマスタVMかつ個別VMとし、個別VM/マスタVM対応管理テーブル221には、第2〜第4の仮想クライアントVM2〜VM4のマスタVMがそれぞれ第2の仮想クライアントVM2であることを登録する。
(2−3)処理手順
続いて、本実施の形態におけるチェックポリシについて説明する。図22は、本実施の形態によるセキュリティ管理サーバ701により保持されるチェックポリシ管理テーブル705の構成例を示す。
マスタVMに対するセキュリティチェックが合格した場合、個別VMに対するセキュリティチェックを行わないチェック項目(すなわちチェック対象が「マスタ」又は「マスタor個別」であるチェック項目)については、マスタVMの変更が個別VMにも反映されていることを確認する必要がある。すなわち起動中の個別VMには、マスタVMの変更が反映されないため、個別VMのOSの再起動が必要となる。
そこで、本実施の形態におけるチェックポリシは、第1の実施の形態におけるチェックポリシの内容に加え、「マスタの変更の反映」というチェック項目を持つ。このチェック項目は、マスタVMの変更が個別VMに反映されたか否かを確認するチェック項目である。なお、このチェック項目は、「チェック対象」が「個別」、「重要度」が「高」にそれぞれ固定されており、これら「チェック対象」及び「重要度」の変更はできないものとする。またこのチェック項目の「チェック期限」は、他のチェック項目と異なり、セキュリティチェックを実行する期限を表すものではなく、「対策期限」を表す。
本実施の形態における、セキュリティチェックプログラム213の処理手順について説明する。本実施の形態におけるセキュリティチェック処理は、図16との対応部分に同一符号を付した図23に示すように、第1の実施の形態によるセキュリティチェック処理のステップSP312の後にステップSP400を、ステップSP314の後にステップSP401を、ステップSP315の後にステップSP402をそれぞれ加えた内容となっている。
また本実施の形態のセキュリティチェック処理では、ステップSP326の後のステップSP403、ステップSP328の後のステップSP404及びステップSP320の後のステップSP405において、第1の実施の形態によるセキュリティチェック処理の対応するステップSP327、ステップSP329又はステップSP330と同じ処理を実行した後に、上述のようにチェックポリシに追加した「マスタの変更の反映」というチェック項目に関するセキュリティチェックを実施する。
まず、追加したステップSP400、ステップSP401及びステップSP402におけるセキュリティ管理サーバ701のセキュリティチェックプログラム704(図21)の処理内容について説明する。
本実施の形態のセキュリティチェックプログラム704は、ステップSP312の処理後、ステップSP312で実施したチェック項目について、前回のセキュリティチェックのチェック結果と、今回のセキュリティチェックのチェック結果とを比較する。そしてセキュリティチェックプログラム704は、前回のセキュリティチェックでは不合格で、今回のセキュリティチェックでは合格したチェック項目がある場合には、マスタVMの変更の反映が必要と判断し、マスタVMの変更日時として、OS214から、現在の日時を取得する(SP400)。またセキュリティチェックプログラム704は、これと同様の処理を、ステップSP401ではステップSP314で実施したチェック項目について、ステップSP402ではステップSP315で実施したチェック項目について実行する。
次に、ステップSP403、ステップSP404及びステップSP405におけるセキュリティチェックプログラム704の処理内容について説明する。
セキュリティチェックプログラム704は、ステップSP403において、図16のステップSP327同様に、処理対象の個別VMに対し、重要度が「高」のチェック項目、重要度が「中」のチェック項目及びチェック期限を過ぎたチェック項目についてのみ、チェックを行う。
ただし、「マスタの変更の反映」というチェック項目については、かかるステップSP400、ステップSP401又はステップSP402において行ったマスタVMの変更反映の要否判定の結果、マスタVMの変更の反映が必要と判断した場合に限り、セキュリティチェックを実行する。
このセキュリティチェックの方法は、例えば、チェック対象の個別VMのイベントログやsyslogなどのログ情報を参照し、最終リブート日時を取得し、上記ステップSP400、ステップSP401又はステップSP402で取得した、マスタVMの変更日時以降にリブートが行われているかどうかで判定する。
このセキュリティチェックのチェック結果が不合格であった場合、セキュリティチェックプログラム704は、マスタVMの変更日時と、現在時刻とを比較し、指定された期限を過ぎていればアラートを発行する。
ステップSP404及びステップSP405は、それぞれ第1の実施の形態におけるステップSP329及びステップSP330と同様の処理を行った後に、ステップSP403で説明した「マスタの変更の反映」のチェック項目についてのチェック処理を実行する。
以上、本実施の形態のセキュリティ管理方法におけるチェックポリシ管理テーブルのチェック期限の項目は、第1の実施の形態に記載のように、当該期限を経過する前はマスタVM及び個別VMに対する強制的なチェック開始を抑制するための設定値とすることに加え、本実施の形態に記載のように、OSの再起動の有無を繰り返し確認し、対策期限経過後にも未再起動であれば再起動を促す所定の処理(上記ではアラート発行)を開始するための設定値とするものである。
なお、本実施の形態では、セキュリティチェックプログラム213がマスタVMの変更を検知した時刻を、マスタVMの変更時刻とみなし、その時刻を基点とし、対策期限内に個別VMが再起動されたかどうか判断する例について説明したが、実際のマスタVMに変更が生じた日時を基点として、期限切れを判断してもよい。例えば、セキュリティ管理サーバは、マスタVMが起動している物理クライアント702のハイパバイザプログラム310、またはVMイメージ管理プログラム800、またはVM管理サーバからマスタVMに対する変更日時を取得し、この変更日時に対策期限を加えた日時を現在日時と比較してもよい。
(2−4)本実施の形態の効果
以上のように本実施の形態のセキュリティ管理方法によれば、マスタVMの構成情報に変更を加えても、既に起動中の仮想クライアントには変更が反映されず、仮想クライアントを再起動した際に、その変更が反映される仮想化技術を適用したネットワークシステム700に対しても、第1の実施の形態と同様のセキュリティ管理を行うことができる。
(3)第3の実施の形態
次に、第3の実施の形態について説明する。図1との対応部分に同一符号を付して示す図24は、第3の実施の形態によるネットワークシステム900を示す。このネットワークシステム900は、チェックポリシに設定するチェック対象を、システムの環境の情報から当該システムが自動的に判断する点を除いて第1の実施の形態によるネットワークシステム1と同様に構成されている。
図2との対応部分に同一符号を付した図25は、本実施の形態におけるセキュリティ管理サーバ901の構成を示す。このセキュリティ管理サーバ901は、外部記憶装置205に、図2について上述した各種プログラム及び各種情報に加えて、チェック対象設定プログラム1000が格納されている点と、チェックポリシに設定するチェック対象を、システムの環境の情報から自動的に判断する機能がセキュリティ管理制御プログラム1001に搭載された点とを除いて第1の実施の形態によるセキュリティ管理サーバ901と同様に構成されている。
チェック対象設定プログラム1000は、システムの環境の情報から個別VMにおいてカスタマイズ可能な項目と、カスタマイズ不可能な項目とを調査し、個別VMにおいてカスタマイズ不可能な項目ついてはマスタVMをチェック対象とし、カスタマイズ可能な項目については個別VMをチェック対象として、チェックポリシ管理テーブル220に設定するプログラムである。
カスタマイズの可否を判断するための環境情報を取得する方法としては、マスタVMのレジストリの情報から取得したり、個別VMを利用する利用者の権限を調査する方法などが考えられるが、本実施の形態においては、VM管理サーバ902への問い合わせによって、カスタマイズの可否を判断する。
一方、図8との対応部分に同一符号を付した図26は、本実施の形態におけるVM管理サーバ902の構成を示す。このVM管理サーバ902は、外部記憶装置405に、図8について上述した各種プログラム及び各種情報に加え、セキュリティ管理プログラム1002が格納されている点を除いて第1の実施の形態によるVM管理サーバ103と同様に構成されている。
セキュリティ管理プログラム1002は、当該VM管理サーバ902で生成する仮想クライアントに対してセキュリティに関する利用制限を設定でき、さらに指示入力装置403を用いた利用者からの指示や、ネットワーク105経由での他のプログラムからの指示に従い、上記利用制限の情報を返すプログラムである。
図27は、本実施の形態によるセキュリティ管理サーバ901により表示されるチェックポリシ設定画面1100を示す。本実施の形態のチェックポリシ設定画面1100は、チェック対象として「マスタ」、「個別」、「マスタor個別」及び「マスタand個別」に加えて「自動」も指定できる点が第1の実施の形態によるチェックポリシ設定画面500と異なる。チェック対象として「自動」を指定した場合、そのチェック項目については、個別VMでカスタマイズが可能か否かを、セキュリティ管理サーバ901のセキュリティ管理制御プログラム1001がシステムの環境の情報から自動的に判断し、チェック対象を特定する。
次に、以上のようにチェックポリシに設定するチェック対象を、システムの環境の情報から自動的に判断する処理に関するセキュリティ管理制御プログラム1001の処理手順について説明する。
図12との対応部分に同一符号を付して示す図28は、本実施の形態によるセキュリティ管理制御処理の処理手順を示す。本実施の形態によるセキュリティ管理制御処理は、ステップSP102の処理実行の前に、ステップSP500及びステップSP501の処理を実行する点が第1の実施の形態によるセキュリティ管理制御処理と異なる。
この場合、セキュリティ管理制御プログラム1001は、ステップSP500に進むと、チェックポリシのチェック対象として「自動」が選択されているかを確認し、「自動」が選択されている場合には、ステップSP501に進む。またセキュリティ管理制御プログラム1001は、ステップSP501では、チェック対象設定プログラム1000を実行することによりチェック対象を自動判定し、チェックポリシに設定された「自動」の部分に「マスタ」や「個別」などの値を設定する。
図29は、図28のステップSP501において起動されたチェック対象設定プログラム1000により実行されるチェック対象設定処理の処理手順を示す。
本実施の形態におけるチェック対象設定プログラム1000は、まず、チェックポリシを参照し、チェック対象が「自動」の項目をリストアップし(SP600)、この後セキュリティ管理プログラム1002を呼び出し、仮想クライアントの利用制限の情報を取得する(SP601)。
続いてチェック対象設定プログラム1000は、ステップSP602において、ステップSP600においてリストアップしたチェック対象が「自動」の各項目について、ステップSP603〜ステップSP605の処理を繰り返す(SP602)。
具体的に、チェック対象設定プログラム1000は、ステップSP601で取得した利用制限の情報を参照し、処理対象のチェック項目がカスタマイズ可能か否かを判定する(SP603)。
そしてチェック対象設定プログラム1000は、この判定において肯定結果を得ると、そのチェック項目のチェック対象として「個別」を設定し(SP604)、否定結果を得ると、そのチェック項目のチェック対象として「マスタ」を設定する(SP605)。例えばチェック対象設定プログラム1000は、パスワード付きスクリーンセーバが設定されているか、というチェック項目のチェック対象は、個別VMでのスクリーンセーバの設定が、禁止されていなければ「個別」を、禁止されていれば「マスタ」を設定する。
そしてチェック対象設定プログラム1000は、ステップSP604又はステップSP605の処理を完了すると、この図29に示すチェック対象設定処理を終了する。
以上のように本実施の形態によるネットワークシステム900では、チェックポリシに設定するチェック対象を、システムの環境の情報から自動的に判断して設定するため、第1の実施の形態により得られる効果に加えて、チェックポリシの設定作業を容易化することができるという効果をも得ることができる。
(4)第4の実施の形態
次に、第4の実施の形態について説明する。本実施の形態では、第3の実施の形態同様、チェックポリシに設定するチェック対象について、システムの環境の情報から自動的に判断する例について説明する。第3の実施の形態では、1つのチェック項目に対してすべてのマスタVMに共通する1つのチェック対象しか設定できなかったが、本実施の形態では、1つのチェック項目に対してマスタVM別に異なるチェック対象を指定できる。
図24との対応部分に同一符号を付して示す図30は、第4の実施の形態によるネットワークシステム1200を示す。このネットワークシステム1200は、セキュリティ管理サーバ1201の構成が異なる点を除いて第3の実施の形態によるネットワークシステム900と同様に構成されている。
この場合は、セキュリティ管理サーバ1201は、図26との対応部分に同一符号を付した図31に示すように、外部記憶装置205に格納されたセキュリティ管理制御プログラム1300、セキュリティチェックプログラム1301及びチェック対象設定プログラム1302の構成が異なる点と、当該外部記憶装置205に、図2について上述した各種プログラム及び各種情報に加えて、チェック対象管理テーブル1303が格納されている点とを除いて第3の実施の形態によるセキュリティ管理サーバ901と同様に構成されている。
なお、以下においては、カスタマイズ可否を判断するための環境情報の例として、マスタVMのレジストリの情報を参照する例を示す。また本実施の形態におけるセキュリティチェックプログラム1301は、チェックポリシにおいてチェック対象が「自動」に設定された項目については、チェック対象管理テーブル1303を参照してチェック対象の情報を取得する、という違いのみであるため、処理手順の説明は省略する。
チェック対象管理テーブル1303は、マスタVMごとにそれぞれ設定された、チェック項目ごとのチェック対象を管理するためのテーブルであり、図29に示すように、マシンID欄1303A及び複数のID欄1302Bから構成される。
そしてマシンID欄1303Aには、チェックポリシにおいてチェック対象が「自動」に設定された各マスタVMのマシンIDが格納される。またID欄1302Bは、チェックポリシにおいて設定された各チェック項目にそれぞれ対応させて設けられており、これらID欄1302Bには、それぞれ対応するチェック項目についてそのマスタVMに関して設定されたチェック対象(「マスタ」又は「個別」)が格納される。
図33は、図28のステップSP501において起動されたチェック対象設定プログラム1302により実行されるチェック対象設定処理の処理手順を示す。
本実施の形態におけるチェック対象設定プログラム1302は、まず、チェックポリシを参照し、チェック対象が「自動」の項目をリストアップする(SP700)。
続いてチェック対象設定プログラム1302は、個別VM/マスタVM対応管理テーブル221と、クライアント管理テール223を参照し、すべてのマスタVMの管理情報を取得する(SP701)。
この後、チェック対象設定プログラム1302は、すべてのマスタVMに対して、以下に説明するステップSP703〜ステップSP706の処理を繰り返す(SP702)。
具体的に、チェック対象設定プログラム1302は、ステップSP700においてリストアップした、チェック対象が「自動」の各項目について、ステップSP704〜ステップSP706の処理を繰り返す(SP703)。
すなわち、チェック対象設定プログラム1302は、処理対象のマスタVMのレジストリの情報を参照して、処理対象の項目がカスタマイズ可能か判定する(SP704)。
そしてチェック対象設定プログラム1302は、この判定において肯定結果を得ると、チェック対象管理テーブル1303における該当マスタVMの該当チェック項目の欄に「個別」を設定し(SP705)、否定結果を得ると、当該チェック項目の欄に「マスタ」を設定する(ステップ706)。
そしてチェック対象設定プログラム1302は、ステップSP705又はステップSP706の処理を完了すると、この図33に示すチェック対象設定処理を終了する。
以上のように本実施の形態によるセキュリティ管理方法によれば、1つのチェック項目に対してマスタVM別に異なるチェック対象を指定できるため、第3の実施の形態により得られる効果に加えて、より詳細なセキュリティ管理を行うことができる。