(57)【特許請求の範囲】
【請求項１】
物理クライアントがユーザ端末に提供するそれぞれ仮想的な計算機環境である複数の仮想マシンのセキュリティを管理するセキュリティ管理装置において、
前記複数の仮想マシンに対するセキュリティチェックに関する１又は複数のチェック項目を規定したチェックポリシと、セキュリティチェックプログラムとを記憶する記憶装置と、
前記セキュリティチェックプログラムに基づき、前記チェックポリシに従って、前記複数の仮想マシンに対するセキュリティチェックを実行するＣＰＵ（Central Processing Unit）と
を備え、
前記複数の仮想マシンは、マスタ仮想マシンと、前記マスタ仮想マシンの複製又は派生である個別仮想マシンとを含み、
前記チェックポリシにおいて、前記セキュリティチェックのチェック対象となる前記仮想マシンの種別が、前記チェック項目ごとにユーザにより予め定められ、
前記種別がマスタの場合、前記ＣＰＵは前記マスタ仮想マシンに対して行ったセキュリティチェック結果を前記個別仮想マシンのセキュリティチェック結果として流用し、
前記種別が個別の場合、前記ＣＰＵは前記マスタ仮想マシンに対して行ったセキュリティチェック結果を流用せずに、前記個別仮想マシンのセキュリティチェックを実行する
ことを特徴とするセキュリティ管理装置。
【請求項２】
前記個別仮想マシンは、再起動後に前記仮想マシンの一部又は全部を構成するマスタ情報の変更が反映され、
前記ＣＰＵは、
前記マスタ仮想マシンのセキュリティチェック後に、前記個別仮想マシンが再起動されているか否かを確認する
ことを特徴とする請求項１に記載のセキュリティ管理装置。
【請求項３】
前記チェックポリシにおいて、前記チェック項目ごとに重要度が予め設定され、
前記ＣＰＵは、
前記チェック項目に設定された重要度に応じて当該チェック項目のセキュリティチェックを実行するか否かを判定する
ことを特徴とする請求項１に記載のセキュリティ管理装置。
【請求項４】
前記チェックポリシにおいて、前記チェック項目ごとにセキュリティチェックを実行すべきチェック期限が予め設定され、
前記ＣＰＵは、
先行するチェック期限内にセキュリティチェックを実行していない前記チェック項目のセキュリティチェックを優先的に実行する
ことを特徴とする請求項１に記載のセキュリティ管理装置。
【請求項５】
前記セキュリティチェックは、前記物理クライアント以外のリソースに空きのあるその他の物理クライアントを用いて前記複数の仮想マシンの一部の起動を伴う
ことを特徴とする請求項１に記載のセキュリティ管理装置。
【請求項６】
前記ＣＰＵは、
前記チェックポリシにおいて、前記セキュリティチェックのチェック対象を自動選択すべき設定がなされている前記チェック項目については、当該チェック項目に関して前記個別仮想マシンごとにカスタマイズが可能か否かに基づいて、チェック対象とする前記仮想マシンの種別を選択する
ことを特徴とする請求項１に記載のセキュリティ管理装置。
【請求項７】
前記ＣＰＵは、
チェック対象の前記仮想マシンが動作を停止中であるときには、前記物理クライアントにおける空きリソース量に応じて、当該仮想マシンに対して実行するセキュリティチェックのチェック項目を決定する
ことを特徴とする請求項１に記載のセキュリティ管理装置。
【請求項８】
物理クライアントがユーザ端末に提供するそれぞれ仮想的な計算機環境である複数の仮想マシンのセキュリティを管理するセキュリティ管理装置によるセキュリティ管理方法において、
（１）前記複数の仮想マシンに対するセキュリティチェックに関する１又は複数のチェック項目を規定したチェックポリシと、セキュリティチェックプログラムとを前記セキュリティ管理装置が備える記憶装置に記憶する第１のステップと、
（２）前記セキュリティ管理装置が備えるＣＰＵ（Central Processing Unit）が、前記セキュリティチェックプログラムに基づき、前記チェックポリシに従って、前記複数の仮想マシンに対するセキュリティチェックを実行する第２のステップと
を備え、
前記複数の仮想マシンは、マスタ仮想マシンと、前記マスタ仮想マシンの複製又は派生である個別仮想マシンとを含み、
前記チェックポリシにおいて、前記セキュリティチェックのチェック対象となる前記仮想マシンの種別が、前記チェック項目ごとにユーザにより予め定められ、
前記第２のステップにおいて、前記ＣＰＵは、
前記種別がマスタの場合、前記マスタ仮想マシンに対して行ったセキュリティチェック結果を前記個別仮想マシンのセキュリティチェック結果として流用し、
前記種別が個別の場合、前記マスタ仮想マシンに対して行ったセキュリティチェック結果を流用せずに、前記個別仮想マシンのセキュリティチェックを実行する
ことを特徴とするセキュリティ管理方法。
【請求項９】
前記個別仮想マシンは、再起動後に前記仮想マシンの一部又は全部を構成するマスタ情報の変更が反映され、
前記第２のステップでは、
前記ＣＰＵが、前記マスタ情報の変更後に、前記個別仮想マシンが再起動されているか否かを確認する
ことを特徴とする請求項８に記載のセキュリティ管理方法。
【請求項１０】
前記チェックポリシにおいて、前記チェック項目ごとに重要度が予め設定され、
前記第２のステップでは、
前記ＣＰＵが、前記チェック項目に設定された重要度に応じて当該チェック項目のセキュリティチェックを実行するか否かを判定する
ことを特徴とする請求項８に記載のセキュリティ管理方法。
【請求項１１】
前記チェックポリシにおいて、前記チェック項目ごとにセキュリティチェックを実行すべきチェック期限が予め設定され、
前記第２のステップでは、
前記ＣＰＵが、先行するチェック期限内にセキュリティチェックを実行していない前記チェック項目のセキュリティチェックを優先的に実行する
ことを特徴とする請求項８に記載のセキュリティ管理方法。
【請求項１２】
前記チェックポリシにおいて、前記セキュリティチェックのチェック対象となる前記仮想マシンの種別が、前記チェック項目ごとにユーザにより予め定められた
ことを特徴とする請求項８に記載のセキュリティ管理方法。
【請求項１３】
前記第２のステップでは、
前記ＣＰＵが、前記チェックポリシにおいて、前記セキュリティチェックのチェック対象を自動選択すべき設定がなされている前記チェック項目については、当該チェック項目に関して前記個別仮想マシンごとにカスタマイズが可能か否かに基づいて、チェック対象とする前記仮想マシンの種別を選択する
ことを特徴とする請求項８に記載のセキュリティ管理方法。
【請求項１４】
前記第２のステップでは、
前記ＣＰＵが、チェック対象の前記仮想マシンが動作を停止中であるときには、前記物理クライアントにおける空きリソース量に応じて、当該仮想マシンに対して実行するセキュリティチェックのチェック項目を決定する
ことを特徴とする請求項８に記載のセキュリティ管理方法。
【請求項１５】
物理クライアントがユーザ端末に提供するそれぞれ仮想的な計算機環境である複数の仮想マシンのセキュリティを管理するセキュリティ管理装置に実装されるセキュリティ管理プログラムにおいて、
前記セキュリティ管理装置が備えるＣＰＵ（Central Processing Unit）に、
（１）前記複数の仮想マシンに対するセキュリティチェックに関する１又は複数のチェック項目を規定したチェックポリシと、セキュリティチェックプログラムとを前記セキュリティ管理装置が備える記憶装置に記憶する第１のステップと、
（２）前記セキュリティチェックプログラムに基づき、前記チェックポリシに従って、前記複数の仮想マシンに対するセキュリティチェックを行う第２のステップと
を備える処理を実行させ、
前記複数の仮想マシンは、マスタ仮想マシンと、前記マスタ仮想マシンの複製又は派生である個別仮想マシンとを含み、
前記チェックポリシにおいて、前記セキュリティチェックのチェック対象となる前記仮想マシンの種別が、前記チェック項目ごとにユーザにより予め定められ、
前記第２のステップでは、前記ＣＰＵが、
前記種別がマスタの場合、前記マスタ仮想マシンに対して行ったセキュリティチェック結果を前記個別仮想マシンのセキュリティチェック結果として流用し、
前記種別が個別の場合、前記マスタ仮想マシンに対して行ったセキュリティチェック結果を流用せずに、前記個別仮想マシンのセキュリティチェックを実行する
ことを特徴とするセキュリティ管理プログラム。
【請求項１６】
前記個別仮想マシンは、再起動後に前記仮想マシンの一部又は全部を構成するマスタ情報の変更が反映され、
前記第２のステップでは、
前記ＣＰＵが、前記マスタ情報の変更後に、前記個別仮想マシンが再起動されているか否かを確認する
ことを特徴とする請求項１５に記載のセキュリティ管理プログラム。
【請求項１７】
前記チェックポリシにおいて、前記チェック項目ごとに重要度が予め設定され、
前記第２のステップでは、
前記ＣＰＵが、前記チェック項目に設定された重要度に応じて当該チェック項目のセキュリティチェックを実行するか否かを判定する
ことを特徴とする請求項１５に記載のセキュリティ管理プログラム。
【請求項１８】
前記チェックポリシにおいて、前記チェック項目ごとにセキュリティチェックを実行すべきチェック期限が予め設定され、
前記第２のステップでは、
前記ＣＰＵが、先行するチェック期限内にセキュリティチェックを実行していない前記チェック項目のセキュリティチェックを優先的に実行する
ことを特徴とする請求項１５に記載のセキュリティ管理プログラム。
【請求項１９】
前記第２のステップでは、
前記ＣＰＵが、前記チェックポリシにおいて、前記セキュリティチェックのチェック対象を自動選択すべき設定がなされている前記チェック項目については、当該チェック項目に関して前記個別仮想マシンごとにカスタマイズが可能か否かに基づいて、チェック対象とする前記仮想マシンの種別を選択する
ことを特徴とする請求項１５に記載のセキュリティ管理プログラム。
【請求項２０】
前記第２のステップでは、
前記ＣＰＵが、チェック対象の前記仮想マシンが動作を停止中であるときには、前記物理クライアントにおける空きリソース量に応じて、当該仮想マシンに対して実行するセキュリティチェックのチェック項目を決定する
ことを特徴とする請求項１５に記載のセキュリティ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティ管理装置及び方法並びにプログラムに関し、特に、複数の仮想クライアントが共通の構成をもつネットワークシステムにおいて当該複数の仮想クライアントに対するセキュリティ検査を実行するセキュリティ管理サーバに適用して好適なものである。
【背景技術】
【０００２】
ＳＯＸ法の施行などを背景に、企業によるコンプライアンス対応や、情報セキュリティ対策の強化が求められている。企業内の各個人が利用するクライアント端末においてもセキュリティ管理が重要となっており、ネットワークに接続されたクライアント端末（以下、これを単にクライアントと呼ぶ）について常に最新のセキュリティ状態を把握及び監視したいというニーズが高まってきている。
【０００３】
従来、このようなニーズに答える技術として、ネットワークに接続されたクライアントのセキュリティ状態を監査する方法が、例えば特開２００２−２４７０３３号公報（以下、これを特許文献１と呼ぶ）に開示されている。また、ネットワークに接続された各クライアントの資産（インストールされたソフトウェアやパッチなど）がセキュアであるか否かを検査し、検査結果を集計して管理者に報告するソフトウェアが様々なベンダからリリースされている。
【０００４】
一方、ＴＣＯ削減や運用管理容易化などの観点から、ソフトウェアで計算機をエミュレーションし、仮想的な計算機環境、すなわち仮想マシンを提供する仮想化技術が普及している。仮想化技術を用いることにより、複数の仮想マシン間で仮想マシンのマシンイメージを共有することが可能となる。この場合、共有するマシンイメージとの差分情報のみを仮想マシンごとに管理すればよい。
【０００５】
このような仮想化技術は、例えば、特許文献１や特開２００６−２２１６４９号公報（以下、これを特許文献２と呼ぶ）などに開示されており、さらに、VMware（登録商標）社のLinked Clone技術（VMware（登録商標）View3パンフレット、http://www.vmware.com/files/pdf/view_brochure.pdf（以下、これを非特許文献１と呼ぶ）参照）や、NetApp（登録商標）社のFlexClone（登録商標）技術（NetApp（登録商標）社 FlexClone（登録商標）データシート、http://media.netapp.com/documents/ds-2837-0808-flexclone.pdf（以下、これを非特許文献２と呼ぶ））など、様々なベンダよりかかる仮想化技術を用いた製品がリリースされている。また、仮想マシンをある物理マシンから別の物理マシンへマイグレーションさせる技術も、例えば特開２００７−６６２６５号公報において開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−２４７０３３号公報
【特許文献２】特開２００６−２２１６４９号公報
【非特許文献】
【０００７】
【非特許文献１】http://www.vmware.com/files/pdf/view_brochure.pdf
【非特許文献２】http://media.netapp.com/documents/ds-2837-0808-flexclone.pdf
【発明の概要】
【発明が解決しようとする課題】
【０００８】
大規模なネットワーク環境ではセキュリティ検査対象のクライアント数が多いため、すべてのクライアントのセキュリティチェックを行うためには長時間を要し、各クライアントの最新のセキュリティ状態を把握することが困難である。
【０００９】
また近年の仮想化技術の普及に伴う仮想マシン数の増加により、管理対象のクライアント数が大幅に増加することが予想され、今後、ますます大規模なネットワーク環境における各仮想マシンの最新のセキュリティ状態を把握することが困難となる可能性がある。そのため、このようなネットワーク環境では、セキュリティチェックを高速に行うことが要求されている。
【００１０】
本発明は以上の点を考慮してなされたもので、セキュリティチェックを高速かつ効率的に行い得るセキュリティ管理装置及び方法並びにプログラムを提案しようとするものである。
【課題を解決するための手段】
【００１１】
かかる課題を解決するため本発明においては、物理クライアントがユーザ端末に提供するそれぞれ仮想的な計算機環境である複数の仮想マシンのセキュリティを管理するセキュリティ管理装置において、前記複数の仮想マシンに対するセキュリティチェックに関する１又は複数のチェック項目を規定したチェックポリシと、セキュリティチェックプログラムとを記憶する記憶装置と、前記セキュリティチェックプログラムに基づき、前記チェックポリシに従って、前記複数の仮想マシンに対するセキュリティチェックを実行するＣＰＵ（Central Processing Unit）とを備え、前記複数の仮想マシンは、マスタ仮想マシンと、前記マスタ仮想マシンの複製又は派生である個別仮想マシンとを含み、前記チェックポリシにおいて、前記セキュリティチェックのチェック対象となる前記仮想マシンの種別が、前記チェック項目ごとにユーザにより予め定められ、前記種別がマスタの場合、前記ＣＰＵは前記マスタ仮想マシンに対して行ったセキュリティチェック結果を前記個別仮想マシンのセキュリティチェック結果として流用し、前記種別が個別の場合、前記ＣＰＵは前記マスタ仮想マシンに対して行ったセキュリティチェック結果を流用せずに、前記個別仮想マシンのセキュリティチェックを実行することを特徴とする。
【００１２】
また本発明においては、物理クライアントがユーザ端末に提供するそれぞれ仮想的な計算機環境である複数の仮想マシンのセキュリティを管理するセキュリティ管理装置によるセキュリティ管理方法において、（１）前記複数の仮想マシンに対するセキュリティチェックに関する１又は複数のチェック項目を規定したチェックポリシと、セキュリティチェックプログラムとを前記セキュリティ管理装置が備える記憶装置に記憶する第１のステップと、（２）前記セキュリティ管理装置が備えるＣＰＵ（Central Processing Unit）が、前記セキュリティチェックプログラムに基づき、前記チェックポリシに従って、前記複数の仮想マシンに対するセキュリティチェックを実行する第２のステップとを備え、前記複数の仮想マシンは、マスタ仮想マシンと、前記マスタ仮想マシンの複製又は派生である個別仮想マシンとを含み、前記チェックポリシにおいて、前記セキュリティチェックのチェック対象となる前記仮想マシンの種別が、前記チェック項目ごとにユーザにより予め定められ、前記第２のステップにおいて、前記ＣＰＵは、前記種別がマスタの場合、前記マスタ仮想マシンに対して行ったセキュリティチェック結果を前記個別仮想マシンのセキュリティチェック結果として流用し、前記種別が個別の場合、前記マスタ仮想マシンに対して行ったセキュリティチェック結果を流用せずに、前記個別仮想マシンのセキュリティチェックを実行することを特徴とする。
【００１３】
さらに本発明においては、物理クライアントがユーザ端末に提供するそれぞれ仮想的な計算機環境である複数の仮想マシンのセキュリティを管理するセキュリティ管理装置に実装されるセキュリティ管理プログラムにおいて、前記セキュリティ管理装置が備えるＣＰＵ（Central Processing Unit）に、（１）前記複数の仮想マシンに対するセキュリティチェックに関する１又は複数のチェック項目を規定したチェックポリシと、セキュリティチェックプログラムとを前記セキュリティ管理装置が備える記憶装置に記憶する第１のステップと、（２）前記セキュリティチェックプログラムに基づき、前記チェックポリシに従って、前記複数の仮想マシンに対するセキュリティチェックを行う第２のステップとを備える処理を実行させ、前記複数の仮想マシンは、マスタ仮想マシンと、前記マスタ仮想マシンの複製又は派生である個別仮想マシンとを含み、前記チェックポリシにおいて、前記セキュリティチェックのチェック対象となる前記仮想マシンの種別が、前記チェック項目ごとにユーザにより予め定められ、前記第２のステップでは、前記ＣＰＵが、前記種別がマスタの場合、前記マスタ仮想マシンに対して行ったセキュリティチェック結果を前記個別仮想マシンのセキュリティチェック結果として流用し、前記種別が個別の場合、前記マスタ仮想マシンに対して行ったセキュリティチェック結果を流用せずに、前記個別仮想マシンのセキュリティチェックを実行することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、セキュリティチェックを、チェック項目ごとに、必要な種別の仮想マシンに対して選択的に実行することができるため、不要な種別に対するセキュリティチェックを省略させることができる。かくするにつきセキュリティチェックを高速かつ効率的に行い得るセキュリティ管理システム及び方法並びにプログラムを実現できる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施の形態によるネットワークシステムの全体構成を示すブロック図である。
【図２】第１の実施の形態によるセキュリティ管理サーバの概略構成を示すブロック図である。
【図３】第１の実施の形態によるチェックポリシ管理テーブルの構成を示す図表である。
【図４】個別ＶＭ／マスタＶＭ対応管理テーブルの構成を示す図表である。
【図５】チェック結果管理テーブルの構成を示す図表である。
【図６】クライアント管理テーブルの構成を示す図表である。
【図７】第１の実施の形態による物理クライアントの概略構成を示すブロック図である。
【図８】第１の実施の形態によるＶＭ管理サーバの概略構成を示すブロック図である。
【図９】仮想マシン管理テーブルの構成を示す図表である。
【図１０】物理マシン管理テーブルの構成を示す図表である。
【図１１】第１の実施の形態によるネットワークシステムの論理構成を示すブロック図である。
【図１２】第１の実施の形態によるセキュリティ管理制御処理の処理手順を示すＰＡＤ図である。
【図１３】第１の実施の形態の設定処理の処理手順を示すＰＡＤ図である。
【図１４】第１の実施の形態のチェックポリシ設定画面の構成例を示す概略図である。
【図１５】第１の実施の形態の個別ＶＭ／マスタＶＭ対応設定画面の構成例を示す概略図である。
【図１６】第１の実施の形態のセキュリティチェック処理の処理手順を示すＰＡＤ図である。
【図１７】ＶＭ情報収集処理の処理手順を示すＰＡＤ図である。
【図１８】第１の実施の形態の動作例を示す図である。
【図１９】第２の実施の形態によるネットワークシステムの全体構成を示すブロック図である。
【図２０】第２の実施の形態による物理クライアントの構成を示すブロック図である。
【図２１】第２の実施の形態によるネットワークシステムの論理構成を示す図である。
【図２２】第２の実施の形態によるチェックポリシ管理テーブルの構成を示す図表である。
【図２３】第２の実施の形態のセキュリティチェック処理の処理手順を示すＰＡＤ図である。
【図２４】第３の実施の形態によるネットワークシステムの全体構成を示すブロック図である。
【図２５】第３の実施の形態によるセキュリティ管理サーバの構成を示すブロック図である。
【図２６】第３の実施の形態によるＶＭ管理サーバの構成を示すブロック図である。
【図２７】第３の実施の形態によるチェックポリシ設定画面の構成例を示す概略図である。
【図２８】第３の実施の形態によるセキュリティ管理制御処理の処理手順を示すＰＡＤ図である。
【図２９】第３の実施の形態によるチェック対象設定処理の処理手順を示すＰＡＤ図である。
【図３０】第４の実施の形態によるネットワークシステムの全体構成を示すブロック図である。
【図３１】第４の実施の形態によるセキュリティ管理サーバの構成を示すブロック図である。
【図３２】チェック対象管理テーブルの構成を示す図表である。
【図３３】第４の実施の形態のチェック対象設定処理の処理手順を示すＰＡＤ図である。
【発明を実施するための形態】
【００１６】
本発明の一実施の形態について図面について詳述する。
【００１７】
なお、以後の説明では「ｘｘｘテーブル」、「ｘｘｘリスト」、「ｘｘｘＤＢ」、「ｘｘｘキュー」等の表現にて本発明の情報を説明するが、これら情報は必ずしもテーブル、リスト、ＤＢ、キュー、等のデータ構造以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために「ｘｘｘテーブル」、「ｘｘｘリスト」、「ｘｘｘＤＢ」、「ｘｘｘキュー」等について「ｘｘｘ情報」と呼ぶことがある。
【００１８】
以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート（通信制御装置）を用いながら行うため、プロセッサ（ＣＰＵ）を主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。
【００１９】
また、各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
【００２０】
（１）第１の実施の形態
（１−１）本実施の形態によるネットワークシステムの構成
図１において、１００は全体として本実施の形態によるネットワークシステムを示す。このネットワークシステム１００では、セキュリティ管理サーバ１０１と、第１及び第２の物理クライアント１０２Ａ，１０２Ｂからなる物理クライアント群と、ＶＭ（Virtual Machine：仮想マシン）管理サーバ１０３と、ユーザ端末１０７とが例えばＬＡＮ（Local Area Network）又はＷＡＮ（Wide Area Network）などから構成されるネットワーク１０５を介して相互に接続されている。また第１及び第２の物理クライアント１０２Ａ，１０２Ｂには、ＳＡＮ（Storage Area Network）１０６を介してストレージ装置１０４に接続されている。なお本実施の形態では、簡単のために、物理クライアント群を第１及び第２の物理クライアント１０２Ａ，１０２Ｂの２台のみから構成している場合について説明するが、物理クライアント群を構成する物理クライアントの台数が３台以上であっても本発明は適用可能である。
【００２１】
セキュリティ管理サーバ１０１は、例えばパーソナルコンピュータ、ワークステーション又はメインフレームなどから構成され、後述のように第１及び第２の物理クライアント１０２Ａ，１０２Ｂ上で動作する各仮想マシンのセキュリティ状態を管理する。
【００２２】
第１及び第２の物理クライアント１０２Ａ，１０２Ｂは、クライアントマシンとして利用される仮想マシン（以下、適宜、これを仮想クライアントと呼ぶ）をユーザ端末１０７に提供する。またＶＭ管理サーバ１０３は、第１及び第２の物理クライアント１０２Ａ，１０２Ａ上で動作する仮想クライアントを管理する。
【００２３】
ストレージ装置１０４は、第１及び第２の物理クライアント１０２Ａ，１０２Ｂ上で動作する各仮想クライアントの構成情報（ＣＰＵ（Central Processing Unit）、メモリ、通信装置及び記憶装置に格納されたデータなどの各情報）である複数又は単数のマシンイメージ情報３２０や、仮想クライアントが使用する各種データなどが格納される。
【００２４】
ユーザ端末１０７は、一般的なパーソナルコンピュータやシンクライアントなどから構成される端末装置であり、一般利用者が第１及び第２の物理クライアント１０２Ａ，１０２Ｂ上で動作する仮想クライアントを利用するために利用する。ユーザ端末１０７は、本実施の形態のセキュリティ管理方法によるセキュリティ管理の対象外である。
【００２５】
なお、セキュリティ管理サーバ１０１とＶＭ管理サーバ１０３は１つの計算機から構成されていてもよく、また第１又は第２の物理クライアント１０２Ａ，１０２Ｂと同じ計算機であってもよい。またセキュリティ管理サーバ１０１に保持される各種プログラムや各種情報の一部又は全部を、１つ以上の（複数の）計算機に配置し、複数の計算機でセキュリティ管理サーバ１０１を実現する構成をとってもよい。同様に、１つ以上の（複数の）計算機でＶＭ管理サーバ１０３を構築したり、１つ以上の（複数の）計算機で第１及び第２の物理クライアント１０２Ａ，１０２Ｂを構築するようにしてもよい。
【００２６】
また第１及び第２の物理クライアント１０２Ａ，１０２Ｂ上で動作する仮想マシンに対する命令や情報の入出力方法としては以下の（ａ）及び（ｂ）の方法が考えられるが、これら以外であってもよい。
（ａ）第１及び第２の物理クライアント１０２Ａ，１０２Ｂが有するディスプレイやキーボード及び又はマウス等の入出力装置を対象として、当該入出力装置からの入力を仮想マシンに提供し、仮想マシンの出力（例えば表示及び音声）をその入出力装置へ出力する。
（ｂ）第１及び第２の物理クライアント１０２Ａ，１０２Ｂとは別の計算機が有するディスプレイやキーボード及び又はマウス等の入出力装置を対象として、当該入出力装置からの入力を仮想マシンに提供し、仮想マシンの出力（例えば表示及び音声）をその入出力装置へ出力する。
【００２７】
（１−２）セキュリティ管理サーバの構成
図２は、本実施の形態におけるセキュリティ管理サーバ１０１の具体的な構成を示す。セキュリティ管理サーバ１０１は、ＣＰＵ２０１、主メモリ２０２、指示入力装置２０３、ディスプレイ２０４、外部記憶装置２０５及び通信制御装置２０６を備え、これらがシステムバス２０７を介して相互に接続されることにより構成されている。
【００２８】
ＣＰＵ２０１は、セキュリティ管理サーバ１０１全体の動作制御を司るプロセッサである。このＣＰＵ２０１が主メモリ２０２に格納された各種プログラムを実行することにより、セキュリティ管理サーバ１０１により後述のような処理が行われる。また主メモリ２０２は、各種プログラムや各種情報を保持するために用いられるほか、ＣＰＵ２０１のワークメモリとしても用いられる。
【００２９】
指示入力装置２０３は、セキュリティ管理サーバ１０１に対する各種指示を入力するための装置であり、キーボード及び又はマウスなどから構成される。ディスプレイ２０４は、例えば液晶パネルやＣＲＴ（Cathode-Ray Tube）などから構成され、ＣＰＵ２０１の制御のもとに、セキュリティ管理サーバ１０１による処理の実行状況や実行結果等を表示する。
【００３０】
外部記憶装置２０５は、例えばハードディスク装置から構成される大容量の記憶媒体であり、各種のプログラムやデータを保存するために用いられる。外部記憶装置２０５に保存されたプログラムは、指示入力装置２０３からのプログラム起動命令などに応じて主メモリ２０２にロードされ、ＣＰＵ２０１により実行される。通信制御装置２０６は、ネットワーク１０５を介して当該ネットワーク１０５に接続された他の装置と各種データやコマンドを交換するために用いられる。
【００３１】
なお、セキュリティ管理サーバ１０１は、指示入力装置２０３及びディスプレイ２０４以外の入出力装置を有してもよく、さらにこの入出力装置をセキュリティ管理サーバ１０１とは別の計算機が有してもよい。この場合、その計算機が有する入出力装置からの入力をセキュリティ管理サーバ１０１が受信したり、仮想クライアントＶＭの出力（例えば表示及び又は音声等）を当該計算機へ送信することによって、この計算機が有する入出力装置への出力を実現することが考えられる。
【００３２】
ここで本実施の形態によるセキュリティ管理サーバ１０１の外部記憶装置２０５に格納される主要なプログラムについて説明する。
【００３３】
本実施の形態の場合、上述のようにセキュリティ管理サーバ１０１は、第１及び第２の物理クライアント１０２Ａ，１０２Ｂ上で動作する各仮想クライアントのセキュリティを管理する。そのための手段として、外部記憶装置２０５には、図２に示すように、セキュリティ管理制御プログラム２１０、設定プログラム２１１、ＶＭ情報収集プログラム２１２、セキュリティチェックプログラム２１３及びＯＳ２１４などのプログラムが格納される。
【００３４】
このうちセキュリティ管理制御プログラム２１０は、セキュリティ管理サーバ１０１の各種プログラムを制御するためのプログラムであり、設定プログラム２１１は、ユーザからの指示に従って各種設定を行うためのプログラムである。
【００３５】
またＶＭ情報収集プログラム２１２は、ＶＭ管理サーバ１０３から仮想クライアントの管理情報を収集し、後述のクライアント管理テーブル２２３を作成又は更新するためのプログラムである。
【００３６】
さらにセキュリティチェックプログラム２１３は、クライアント管理テーブル２２３に登録された各クライアントに対するセキュリティチェックを行うためのプログラムである。ＯＳ２１４は、周辺装置との間のデータの入出力など、コンピュータ上で各プログラムを実行するための基本機能を提供する。
【００３７】
次に、外部記憶装置２０５に格納される主要な情報について説明する。これに際して、まず「マスタ情報」、「マスタＶＭ」、「個別カスタマイズ情報」及び「個別ＶＭ」という用語について定義する。
【００３８】
以下において、「マスタ情報」とは、個別の仮想マシン（仮想クライアント）や、個別の利用者の環境で、個別にカスタマイズした部分を除く、仮想マシンを構成する情報のことをいうものとする。仮想マシンを構成する情報とは、マシンイメージの一部又は全部を指す。またマシンイメージとは、仮想マシンのＣＰＵ、メモリ及び通信制御装置などのハードウェアの仕様や個数や量、ＢＩＯＳの設定、及び、仮想マシンのディスクをエミュレーションするディスクイメージなどを含んで構成される、仮想マシンを起動するために必要な各種情報を指す。なお、同じマスタ情報を持つ複数の仮想マシンにとって、マスタ情報は、仮想マシンを構成する情報の共通部分となる。
【００３９】
また「マスタＶＭ」とは、マスタ情報に対するセキュリティチェックを行う対象となる仮想マシンのことをいう。
【００４０】
さらに「個別カスタマイズ情報」とは、マスタ情報をベースとして個別に仮想マシンをカスタマイズした場合において、個別にカスタマイズした部分の情報をいう。例えば、利用者毎にカスタマイズしたデスクトップ環境や利用者のプロファイルに関する情報、及び、特別な用途の仮想マシン（仮想クライアント）に個別にインストールしたソフトウェアの情報などがこれに該当する。
【００４１】
さらに「個別ＶＭ」とは、個別カスタマイズ情報に対するセキュリティチェックを行う対象となる仮想マシンのことをいう。
【００４２】
「マスタ情報」及び「個別カスタマイズ情報」の具体例について説明する。例えば、あるソフトウェアＡをインストール済みの仮想マシンＡのマシンイメージをコピーし、当該仮想マシンＡと同じ構成の仮想マシンＢを生成した後、当該仮想マシンＢにソフトウェアＢをインストールした場合、ソフトウェアＡを含む仮想マシンＡのマシンイメージがマスタ情報、ソフトウェアＢを含む仮想マシンＢで個別にカスタマイズした部分、すなわち仮想マシンＢのマシンイメージにおける仮想マシンＡのマシンイメージとの差分が個別カスタマイズ情報である。
【００４３】
また、他の例として、複数の仮想マシンで共通に利用する、仮想マシンを構成する情報に基づいて複数の仮想マシンを起動し、仮想マシンごとの差分情報を個別管理する仮想化技術（例えば特開２００６−２２１６４９号公報）において、「複数の仮想マシンで共通に利用する仮想マシンを構成する情報」が「マスタ情報」に該当し、「仮想マシンごとの差分情報」が個別カスタマイズ情報に該当する。
【００４４】
セキュリティ管理サーバ１０１の外部記憶装置２０５に格納される主要な情報の説明に戻る。本実施の形態の場合、セキュリティ管理サーバ１０１が第１及び第２の物理クライアント１０２Ａ，１０２Ｂ上で動作する各仮想クライアントのセキュリティを管理する手段として、外部記憶装置２０５には、図２に示すように、チェックポリシ管理テーブル２２０、個別ＶＭ／マスタＶＭ対応管理テーブル２２１、チェック結果管理テーブル２２２及びクライアント管理テーブル２２３などが格納される。
【００４５】
チェックポリシ管理テーブル２２０は、第１及び第２の物理クライアント１０２Ａ，１０２Ｂ上で動作する仮想クライアントに対して実行すべきセキュリティチェックのポリシを管理するためのテーブルであり、図１３及び図１４について後述するように図１４に示すチェックポリシ設定画面５００を用いた管理者の設定操作に応じて設定プログラム２１１により作成される。
【００４６】
このチェックポリシ管理テーブル２２０は、図３に示すように、チェック事項欄２２０Ａ、ＩＤ欄２２０Ｂ、詳細欄２２０Ｃ、チェック対象欄２２０Ｄ、重要度欄２２０Ｅ及びチェック期限欄２２０Ｆから構成される。
【００４７】
そしてチェック事項欄２２０Ａには、予め固定的に規定されているセキュリティチェックを実行すべき事項（以下、これをチェック事項と呼ぶ）の名称が格納される。
【００４８】
本実施の形態の場合、かかるチェック事項としては、所定の更新プログラムを適用しているか否かを判定する「更新プログラムの判定」、ウィルス対策製品をインストールしているか否かを判定する「ウィルス対策製品の判定」、インストール禁止の不正ソフトウェアをインストールしていないか否かを判定する「不正ソフトウェアの判定」、必ずインストールすべきソフトウェアをインストールしているか否かを判定する「必須ソフトウェアの判定」、及び、適切なセキュリティ設定を行っているか否かを判定する「セキュリティ設定の判定」の５つがある。ただし、チェック事項の数及び内容はこれに限られない。
【００４９】
また詳細欄２２０Ｃには、対応するチェック事項内の詳細項目が格納される。例えば図３の場合、「更新プログラム」に関しては、チェック対象の仮想マシンが「パッチＡ」，「パッチＢ」，……を適用しているか否かをそれぞれチェックすべきことが規定され、「ウィルス対策製品」に関しては、「2008/1/1」にウィルス定義された「ウィルスチェッカーＡ」のバージョン「1.0」、「2008/1/1」にウィルス定義された「ウィルスチェッカーＢ」のバージョン「１．０」、……のいずれかがインストールされているか否かをチェックすべきことが規定されている。
【００５０】
以下においては、チェック事項内のセキュリティチェックすべき各詳細項目をそれぞれチェック項目と呼ぶものとする。例えば、「更新プログラム」というチェック事項に関しては、「パッチＡ」、「パッチＢ」、……を適用しているか否かのチェックがそれぞれチェック項目に該当する。また「不正ソフトウェア」というチェック事項に関しては、「ソフトウェアＸ」のバージョン「2.0」、「ソフトウェアＹ」の全バージョン、……がそれぞれインストールされているか否かのチェックがそれぞれチェック項目に該当する。なお、「ウィルス対策製品」というチェック事項に関しては、詳細欄２２０Ｃに挙げられたウィルス対策製品のうちのいずれかがインストールされているか否かというチェックが１つのチェック項目となる。
【００５１】
ＩＤ欄２２０Ｂには、対応するチェック項目に対して付与されたＩＤが格納される。図３の場合、例えば「更新プログラム」というチェック事項の「パッチＡ」というチェック項目については「C1-01」というＩＤが付与され、「更新プログラム」というチェック事項の「パッチＢ」というチェック項目については「C1-02」というＩＤが付与されている。
【００５２】
さらにチェック対象欄２２０Ｄには、対応するチェック項目についてセキュリティチェックを実行すべき対象が格納される。具体的に、チェック対象欄２２０Ｄには、「マスタ」、「個別」、「マスタor個別」及び「マスタａｎｄ個別」のいずれかが格納される。「マスタ」はマスタＶＭのみがチェックに合格すればよいことを表し、「個別」は個別ＶＭのみがチェックに合格すればよいことを表す。また「マスタor個別」は、マスタＶＭ及び個別ＶＭのいずれか一方がチェックに合格すればよいことを表し、「マスタａｎｄ個別」は、マスタＶＭ及び個別ＶＭの双方がチェックに合格する必要があることを表す。
【００５３】
例えば、あるソフトウェアをマスタＶＭにインストールして配布する場合、マスタＶＭにインストールされていれば、そのソフトウェアは個別ＶＭにもインストールされているため、該当ソフトウェアのインストール状況を判定するチェック項目についてはチェック対象として「マスタ」が指定される。「マスタ」が指定された場合、そのチェック項目については、マスタＶＭに対してのみセキュリティチェックが行われ、そのチェック結果が該当マスタＶＭだけでなく、該当マスタＶＭと関連するすべての個別ＶＭのチェック結果として採用される。
【００５４】
またセキュリティ設定を個人で不正に変更していないか、というようなチェック項目については、チェック対象として「個別」が設定される。「個別」が設定された場合、そのチェック項目については、個別ＶＭに対してのみセキュリティチェックが行われ、そのチェック結果がその個別ＶＭのチェック結果として採用される。なお、このチェック項目について、マスタＶＭはチェック対象外となる。
【００５５】
重要度欄２２０Ｅには、対応するチェック項目について設定された重要度が格納される。本実施の形態の場合、かかる重要度としては、「高」、「中」又は「低」のいずれかが設定される。なお、重要度として設定される値は、チェック項目の重要度を表す値であれば、他の値でも構わない。
【００５６】
このうち「高」は、システムの空きリソース不足などの問題がない限り、できる限り迅速にチェックを行うべきことを表す。また「中」は、チェック期限内であれば、チェック対象の仮想クライアントの利用者の邪魔をしないよう、仮想クライアントが未使用時に、空きリソース上で該当仮想クライアントを起動してチェックを行うべきことを表す。
【００５７】
さらに「低」は、「中」と同様に、チェック期限内であれば、仮想クライアントが未使用時に空きリソース上で該当仮想クライアントを起動してチェックを行うが、システムの空きリソース量が残り少ないなど、該当仮想クライアントを起動することにより、他の仮想クライアントへの悪影響が懸念される場合には、チェックを抑制してもよい。本実施の形態では、システムの空きリソース量が、該当仮想クライアントを起動すると、それ以上の仮想クライアントを起動できない場合には、空きリソース量が十分になるまで、チェックを行わないことを表す。
【００５８】
なお、重要度が「中」又は「低」に設定されたいずれのチェック項目についても、後述するチェック期限を経過した場合には、できる限り迅速にセキュリティチェックを行う。
【００５９】
なお、本実施の形態の場合、「高」、「中」、「低」は、上記の意味を示すものとしたが、システムの状況と、チェック項目ごとの重要度の値に応じて、該当チェック項目のチェック処理をすぐに行うか、後で行うかを判断するための材料であれば、他の意味でもよい。
【００６０】
さらにチェック期限欄２２０Ｆには、対応するチェック項目について設定されたセキュリティチェックを実行すべき期限（以下、これをチェック期限と呼ぶ）が格納される。
【００６１】
このチェックポリシ管理テーブル２２０は、セキュリティチェックプログラム２１３が各仮想クライアントに対するセキュリティチェックを実行する際に参照される。
【００６２】
一方、個別ＶＭ／マスタＶＭ対応管理テーブル２２１は、各仮想クライアント（個別ＶＭ）と、当該仮想クライアントのマスタ情報をチェックするための仮想クライアント（マスタＶＭ）との対応関係を管理するためのテーブルであり、図１３及び図１５について後述するように、図１５に示す個別ＶＭ／マスタＶＭ対応設定画面６００を用いた管理者の設定操作に応じて設定プログラム２１１により各エントリが登録される。ただし、個別ＶＭとマスタＶＭとの対応関係はＶＭ管理サーバ１０３においても管理しているため、この情報を設定プログラム２１１がＶＭ管理サーバ１０３から定期的に取得し、個別ＶＭ／マスタＶＭ対応管理テーブル２２１を自動更新するようにしてもよい。
【００６３】
この個別ＶＭ／マスタＶＭ対応管理テーブル２２１は、図４に示すように、クローンＶＭ欄２２１Ａ及びマスタＶＭ欄２２１Ｂから構成される。そしてクローンＶＭ欄２２１Ａには対応する仮想クライアントに対して付与されたＩＤ（以下、これをマシンＩＤと呼ぶ）が格納され、マスタＶＭ欄２２１Ｂには対応するマスタＶＭのマシンＩＤが格納される。
【００６４】
他方、チェック結果管理テーブル２２２は、個別ＶＭ及びマスタＶＭに対するセキュリティチェックのチェック結果を管理するためのテーブルであり、図５に示すように、ＣＩＤ欄２２２Ａ、マシンＩＤ欄２２２Ｂ及び複数のＩＤ欄２２２Ｃから構成される。
【００６５】
そしてＣＩＤ欄２２２Ａには、そのチェック期限のセキュリティチェックに対して付与された識別情報（ＣＩＤ）が格納される。またマシンＩＤ欄２２２Ｂには、セキュリティチェックを行った対応する仮想クライアントのマシンＩＤが格納される。
【００６６】
さらに各ＩＤ欄２２２Ｃは、それぞれ図３について上述した各チェック項目に対して付与されたＩＤ（ＩＤ欄２２０Ｂ参照）にそれぞれ対応付けられており、これらＩＤ欄２２２Ｃには、それぞれ対応するセキュリティチェックの際に対応する仮想クライアントについて実行したセキュリティチェックのチェック結果が格納される。
【００６７】
例えば図５において、「○」はそのチェック期限のその仮想マシンのそのチェック項目に関するセキュリティチェックに合格したことを表し、「×」は、かかるセキュリティチェックに不合格であったことを表し、「&#8212;」は、かかるセキュリティチェックの対象外であることを表している。また「未」は、かかるセキュリティチェックが未だ行われていない（未チェック）であることを表す。また図５において、破線２２２Ｄで囲まれた行は、マスタＶＭに対するセキュリティチェックのチェック結果の例を表し、破線２２２Ｅ、２２２Ｆ及び２２２Ｇでそれぞれ囲まれたエリアは、マスタＶＭに対するセキュリティチェックのチェック結果を個別ＶＭにも反映した結果を表している。
【００６８】
なお仮想クライアントに対するセキュリティチェックのチェック方法としては、ＷＭＩ（Windows（登録商標）Management Instrumentation）やＳＳＨ（Secure SHell）を用いて採取した情報をもとにセキュリティの対策状況をチェックするエージェントレス方式や、仮想クライアント上で稼動するエージェントから情報を取得してセキュリティの対策状況をチェックする方式など様々な方法があるが、本実施の形態においては、いずれの方法でも採用可能である。
【００６９】
他方、クライアント管理テーブル２２３は、セキュリティ管理サーバ１０１において第１及び第２の物理クライアント１０２Ａ，１０２Ｂ上で動作するセキュリティチェック対象の仮想クライアントを管理するためのテーブルであり、ＶＭ管理サーバ１０３の仮想マシン管理テーブル４２０から読み出した各仮想マシンの管理情報がそれぞれ格納される。
【００７０】
実際上、このクライアント管理テーブル２２３は、図６に示すように、マシンＩＤ欄２２３Ａ、ＩＰアドレス欄２２３Ｂ、対応物理マシンＩＤ欄２２３Ｃ及びリソース情報欄２２３Ｄから構成される。
【００７１】
そしてマシンＩＤ欄２２３Ａには、システム上に存在する仮想クライアント及び物理クライアントに対してそれぞれ付与されたマシンＩＤが格納され、ＩＰアドレス欄２２３Ｂには、その仮想クライアント又は物理クライアントにアクセスするためのＩＰアドレスが格納される。
【００７２】
また対応物理マシンＩＤ欄２２３Ｃには、対応する仮想マシンが仮想クライアントである場合にその仮想クライアントが動作している物理クライアント（第１又は第２の物理クライアント１０２Ａ，１０２Ｂ）に対して付与された識別情報（物理マシンＩＤ）が格納される。
【００７３】
リソース情報欄２２３Ｄは、ＣＰＵ欄２２３ＤＡ、メモリ欄２２３ＤＢ及びディスク欄２２３ＤＣなどから構成されており、これらＣＰＵ欄２２３ＤＡ、メモリ欄２２３ＤＢ及びディスク欄２２３ＤＣには、それぞれ対応する仮想クライアント又は物理クライアントに割り当てられているＣＰＵ、メモリ及びディスクなどのリソースのリソース量が格納される。ただし、このリソース情報欄２２３Ｄは省略してもよい。
【００７４】
なお、以上のチェックポリシ管理テーブル２２０、個別ＶＭ／マスタＶＭ対応管理テーブル２２１、チェック結果管理テーブル２２２及びクライアント管理テーブル２２３は、プログラムが動的に生成や更新を行うため、プログラムの起動前から外部記憶装置２０５内に存在している必要はない。またこれらのテーブルを、外部記憶装置２０５ではなく、初期時より主メモリ２０２において保持するようにしてもよい。
【００７５】
（１−３）物理クライアントの構成
続いて、第１及び第２の物理クライアント１０２Ａ，１０２Ｂの構成について説明する。なお、第２の物理クライアント１０２Ｂは、第１の物理クライアント１０２Ａと同じ構成を有するため、ここでは第１の物理クライアント１０２Ａの構成のみを説明することとし、第２の物理クライアント１０２Ｂの構成については説明を省略する。
【００７６】
図７は、第１の物理クライアント１０２Ａの概略構成を示す。この図７に示すように、第１の物理クライアント１０２Ａは、ＣＰＵ３０１、主メモリ３０２、外部記憶装置３０３、通信制御装置３０４及びホストバスアダプタ（ＨＢＡ）３０５がシステムバス３０６を介して相互に接続されることにより構成されている。
【００７７】
ＣＰＵ３０１は、第１の物理クライアント１０２Ａ全体の動作制御を司るプロセッサである。このＣＰＵ３０１が主メモリ３０２に格納された各種プログラムを実行することにより、第１の物理クライアント１０２Ａによって、ユーザ端末１０７への仮想クライアントの提供を含む各種処理が行われる。また主メモリ３０２は、かかる各種プログラムや各種情報を保持するために用いられるほか、ＣＰＵ３０１のワークメモリとしても用いられる。
【００７８】
通信制御装置３０４は、ネットワーク１０５に接続された他の装置と当該ネットワーク１０５を介して各種データやコマンドを交換するための通信制御機能を備える。またホストバスアダプタ３０５は、ＳＡＮ１０６を介してストレージ装置１０４に対するデータの読み書きを行うための通信制御機能を備える。
【００７９】
外部記憶装置３０３は、例えばハードディスク装置から構成される大容量の記憶媒体であり、ハイパバイザプログラム３１０を含む各種プログラムを保持するために用いられる。
【００８０】
ハイパバイザプログラム３１０は、ストレージ装置１０４に格納されているマシンイメージ情報３２０に基づき、ＣＰＵ３０１、主メモリ３０２、外部記憶装置３０３及び通信制御装置３０４を含む第１の物理クライアント１０２Ａのハードウェア資源を用いて仮想クライアントを動作させるためのプログラムである。なお「マシンイメージ情報」とは、仮想クライアントのＣＰＵ、メモリ及び通信制御装置などのハードウェアの仕様や個数や量、ＢＩＯＳの設定、及び、仮想マシンのディスクをエミュレーションするディスクイメージなどを含んで構成される、各ユーザ端末１０７にそれぞれ提供する仮想クライアントを起動するために必要な各種情報のことをいう。
【００８１】
またハイパバイザプログラム３１０は、性能情報取得機能３１１を備える。性能情報取得機能３１１は、ネットワーク１０５経由で第１の物理クライアント１０２ＡのＣＰＵ利用率やメモリ使用量を取得できる機能である。この性能情報取得機能３１１による情報の取得方法としては、例えば、ＳＮＭＰ（Simple Network Management Protocol）エージェントによるＭＩＢ（Management Information Base）情報を提供する方法や、ＷＭＩなどの管理用のインタフェースを備える方法、又はＳＳＨを利用してリモートで性能情報取得コマンドを実行する方法などがある。
【００８２】
ストレージ装置１０４には、ハイパバイザプログラム３１０が使用する、仮想マシン（仮想クライアント）のマシンイメージ情報３２０が格納されている。ストレージ装置１０４は、ＳＡＮ１０６を介して第１及び第２の物理クライアント１０２Ａ，１０２Ｂと接続されており、マシンイメージ情報３２０は、第１又は第２の物理クライアント１０２Ａ，１０２Ｂ上で稼動するいずれのハイパバイザプログラム３１０からも参照可能である。本実施の形態の場合、マシンイメージ情報３２０は、複製可能な単数又は複数のファイルから構成される。
【００８３】
ハイパバイザプログラム３１０は、マシンイメージ情報３２０を読み込み、仮想マシンに割り当てるリソース量（ＣＰＵ処理時間、メモリ容量、ディスク容量など）や、エミュレーションするハードウェア（ＣＰＵや通信制御装置など）を決定し、仮想マシンに割り当てるリソース量の制御や、エミュレーションするハードウェアに対する命令を、第１及び第２の物理クライアント１０２Ａ，１０２Ｂの各種ハードウェア資源に対する命令に変換することにより、仮想マシン（仮想クライアント）をエミュレーションする。またハイパバイザプログラム３１０は、マシンイメージ情報３２０内のディスクイメージに格納されたＯＳ及びアプリケーションなどのプログラムや、各種設定情報及び又はユーザデータなどを読み込み、仮想マシン上で稼動する各種ソフトウェアを実行する。さらにハイパバイザプログラム３１０は、一般的なＯＳと同様に、ネットワーク１０５経由で、外部記憶装置３０３又はストレージ装置１０４に格納された各種ファイルをコピーする機能を備える。
【００８４】
（１−４）ＶＭ管理サーバの構成
図８は、本実施の形態におけるＶＭ管理サーバ１０３の概略構成を示す。ＶＭ管理サーバ１０３は、ＣＰＵ４０１、主メモリ４０２、指示入力装置４０３、ディスプレイ４０４、外部記憶装置４０５及び通信制御装置４０６を備え、これらがシステムバス４０７を介して相互に接続されることにより構成されている。
【００８５】
ＣＰＵ４０１は、ＶＭ管理サーバ１０３全体の動作制御を司るプロセッサである。このＣＰＵ４０１が主メモリ４０２に格納された各種プログラムを実行することにより、ＶＭ管理サーバ１０３により後述のような処理が行われる。また主メモリ４０２は、各種プログラや各種データを保持するために用いられるほか、ＣＰＵ４０１のワークメモリとしても用いられる。
【００８６】
指示入力装置４０３は、セキュリティ管理サーバ１０１に対する各種指示を入力するための装置であり、キーボード及び又はマウスなどから構成される。ディスプレイ４０４は、例えば液晶パネルやＣＲＴなどから構成され、ＣＰＵ４０１の制御のもとに、ＶＭ管理サーバ１０３による処理の実行状況や実行結果等を表示する。
【００８７】
外部記憶装置４０５は、例えばハードディスク装置から構成される大容量の記憶媒体であり、各種のプログラムやデータを保存するために用いられる。外部記憶装置４０５に保存されたプログラムは、指示入力装置４０３からのプログラム起動命令などに応じて主メモリ４０２にロードされ、ＣＰＵ４０１により実行される。通信制御装置４０６は、ネットワーク１０５を介して当該ネットワーク１０５に接続された他の装置と各種データやコマンドを交換するために使用する。
【００８８】
ここで、本実施の形態によるＶＭ管理サーバ１０３の外部記憶装置４０５に格納される主要なプログラムについて説明する。
【００８９】
本実施の形態の場合、上述のようにＶＭ管理サーバ１０３は、第１及び第２の物理クライアント１０２Ａ，１０２Ａ上で動作する仮想クライアントを管理する。そのための手段として、外部記憶装置４０５には、図８に示すように、ＶＭ管理プログラム４１０、ＶＭ移動プログラム４１１及び管理情報参照プログラム４１２などのプログラム群と、仮想マシン管理テーブル４２０及び物理マシン管理テーブル４２１が格納される。
【００９０】
このうちＶＭ管理プログラム４１０は、指示入力装置４０３を用いた利用者からの指示やネットワーク１０５経由での他のプログラムからの指示に従って仮想マシンの生成、削除、起動又は停止などを行い、その結果に基づき、仮想マシン管理テーブル４２０に各仮想マシンの管理情報や状態を登録するプログラムである。またＶＭ管理プログラム４１０は、既存の仮想マシンのマシンイメージの一部又は全部の複製や、それに準ずる技術により、既存の仮想マシンと同様の構成の仮想マシンを作成する機能を持つプログラムである。かかる仮想マシンの作成は、例えば指示入力装置４０３を用いたマシンイメージの複製命令に応じて、ネットワーク１０５経由でハイパバイザプログラム３１０に対してマシンイメージを構成するファイルのコピーを指示することにより実現される。
【００９１】
ＶＭ移動プログラム４１１は、指示入力装置４０３を用いた利用者からの指示や、ネットワーク１０５経由での他のプログラムからの指示に従って、ある物理マシン上の仮想マシンを別の物理マシンに移動させるプログラムである。
【００９２】
管理情報参照プログラム４１２は、指示入力装置４０３を用いた利用者からの指示や、ネットワーク１０５経由での他のプログラムからの指示に従い、仮想マシン管理テーブル４２０及び物理マシン管理テーブル４２１の情報を返すプログラムである。
【００９３】
仮想マシン管理テーブル４２０は、ＶＭ管理サーバ１０３の管理対象の各仮想マシンについて、当該仮想マシンの識別情報、ＩＰアドレス、当該仮想マシンが稼働させる物理クライアント（第１又は第２の物理クライアント１０２Ａ，１０２Ｂ）の識別情報、必要リソース量（当該仮想マシンに割り当てるＣＰＵやメモリなどのリソース量）、及び、状態（「起動中」や「停止中」など）を含む各種管理情報を管理するために用いられる。
【００９４】
実際上、この仮想マシン管理テーブル４２０は、図９に示すように、マシンＩＤ欄４２０Ａ、ＩＰアドレス欄４２０Ｂ、対応物理マシンＩＤ欄４２０Ｃ、状態欄４２０Ｄ及びリソース情報欄４２０Ｅなどから構成される。そしてこれらマシンＩＤ欄４２０Ａ、ＩＰアドレス欄４２０Ｂ及び対応物理マシンＩＤ欄４２０Ｃには、図６について上述したクライアント管理テーブル２２３のエントリのうち、仮想クライアントに対応するエントリのマシンＩＤ欄２２３Ａ、ＩＰアドレス欄２２３Ｂ又は対応物理マシンＩＤ欄２２３Ｃと同じ情報が格納される。また状態欄４２０Ｄには、対応する仮想マシンのそのときの状態（起動又は停止）を表す値が格納される。
【００９５】
さらにリソース情報欄４２０Ｅは、ＣＰＵ欄４２０ＥＡ、メモリ欄４２０ＥＢ及びディスク欄４２０ＥＣなどから構成されており、これらＣＰＵ欄４２０ＥＡ、メモリ欄４２０ＥＢ及びディスク欄４２０ＥＣなどには、それぞれ図６のクライアント管理テーブル２２３の対応するＣＰＵ欄２２３ＤＡ、メモリ欄２２３ＤＢ又はディスク欄２２３ＤＣなどに格納されている情報と同じ情報が格納される。
【００９６】
また物理マシン管理テーブル４２１は、ネットワーク１０５に接続された物理マシン（本実施の形態においては第１及び第２の物理クライアント１０２Ａ，１０２Ｂ）を管理するためのテーブルであり、図１０に示すように、マシンＩＤ欄４２１Ａ、ＩＰアドレス欄４２１Ｂ及びリソース情報欄４２１Ｃから構成される。
【００９７】
そしてマシンＩＤ欄４２１Ａには、対応する物理マシンに付与された識別情報が格納され、ＩＰアドレス欄４２１Ｂには、その物理マシンのＩＰアドレスが格納される。またリソース情報欄４２１Ｃは、ＣＰＵ情報欄４２１ＣＡ、メモリ情報欄４２１ＣＢ及びディスク情報欄４２１ＣＣなどから構成され、これらＣＰＵ情報欄４２１ＣＡ、メモリ情報欄４２１ＣＢ及びディスク情報欄４２１ＣＣ等には、対応する物理マシンに搭載されたＣＰＵ、メモリ及びディスク等のスペックが格納される。
【００９８】
（１−５）論理構成及び設定内容
続いて、本実施の形態によるネットワークシステム１００の論理構成について説明する。図１１は、本実施の形態におけるネットワークシステム１００の論理構成例を示す。
【００９９】
第１の物理クライアント１０２Ａのハイパバイザプログラム３１０Ａ上には、第１〜第４の仮想クライアントＶＭ１〜ＶＭ４が存在し、これら第１〜第４の仮想クライアントＶＭ１〜ＶＭ４の状態は、第１〜第３の仮想クライアントＶＭ１〜ＶＭ３が起動中、第４の仮想クライアントＶＭ４が停止中となっている。また第２の物理クライアント１０２Ｂのハイパバイザプログラム３１０Ｂ上には、一つの仮想クライアントも存在しない。
【０１００】
一方、ストレージ装置１０４には、第１〜第４の仮想クライアントＶＭ１〜ＶＭ４のマシンイメージが格納されている。第２〜第４の仮想クライアントＶＭ２〜ＶＭ４のマシンイメージは、第１の仮想クライアントＶＭ１のマシンイメージの複製により生成したものである。マシンイメージの複製は、例えば、管理者がＶＭ管理サーバ１０３を用いて、ネットワーク１０５経由でハイパバイザプログラム３１０Ａに対して、マシンイメージを構成するファイルのコピーを指示することにより実現される。
【０１０１】
なお、第１の仮想クライアントＶＭ１は、管理者が、一般利用者へ提供する仮想クライアントを生成する際に、スクラッチから仮想マシンを構築せずに済むよう、マシンイメージ情報３２０を複製して新規の仮想クライアントを生成するために使用する。
【０１０２】
第２〜第４の仮想クライアントＶＭ２〜ＶＭ４は、一般利用者が使用する仮想マシンであり、これら第２〜第４の仮想クライアントＶＭ２〜ＶＭ４は、一般利用者の手によって、カスタマイズされている。ただし、本実施の形態では、第１の仮想クライアントＶＭ１のディレクトリやファイルに対するユーザ権限の設定やＯＳの設定（レジストリの設定など）などにより、一般利用者が可能なカスタマイズ可能な項目は、以下の（Ａ）〜（Ｃ）に制限されているものとする。
（Ａ）個人のデスクトップ環境の設定（壁紙やスクリーンセーバの設定など）
（Ｂ）個人のプロファイル情報（個人のパスワードなど）
（Ｃ）ユーザ権限でアクセス可能な特定のディレクトリへのユーザファイルの作成、変更、削除又は外部から取り込んだファイルの配置（過半媒体やネットワーク１０５経由でのマシン外部から取り込んだファイルの配置）
【０１０３】
ＶＭ管理サーバ１０３の仮想マシン管理テーブル４２０（図９）には、第１〜第４の仮想クライアントＶＭ１〜ＶＭ４に関する情報が登録されている。また物理マシン管理テーブル４２１（図１０）には、第１及び第２の物理クライアント１０２Ａ，１０２Ｂに関する情報が登録されている。
【０１０４】
さらにセキュリティ管理サーバ１０１の個別ＶＭ／マスタＶＭ対応管理テーブル２２１（図８）には、第２〜第４の仮想クライアントＶＭ２〜ＶＭ４のマスタＶＭが第１の仮想クライアントＶＭ１であるという情報がそれぞれ登録されている。
【０１０５】
（１−６）処理手順
続いて、本実施の形態による仮想クライアントのセキュリティ管理方法に関する各プログラムの処理の手順について説明する。なお、以下においては、各種処理の主体を「プログラム」として説明するが、実際には対応するＣＰＵ２０１，３０１，４０１がその「プログラム」に基づいてその処理を実行することは言うまでもない。
【０１０６】
（１−６−１）セキュリティ管理制御プログラムの処理
まず、セキュリティ管理サーバ１０１（図２）のセキュリティ管理制御プログラム２１０（図２）の処理について説明する。図１２は、本実施の形態におけるセキュリティ管理制御プログラム２１０により実行されるセキュリティ管理制御処理の処理手順を示す。
【０１０７】
セキュリティ管理制御プログラム２１０は、指示入力装置２０３からのセキュリティチェックの開始指示コマンド等により起動されると、まずＶＭ管理サーバ１０３の管理情報参照プログラム４１２から第１及び第２の物理クライアント１０２Ａ，１０２Ｂ上で動作する各仮想クライアントに関する情報を取得し、取得した各仮想クライアントに関する情報をクライアント管理テーブル２２３に格納する（ＳＰ１００）。
【０１０８】
続いてセキュリティ管理制御プログラム２１０は、チェックポリシ管理テーブル２２０にチェックポリシが登録済みであるか否かを判定する（ＳＰ１０１）。そしてセキュリティ管理制御プログラム２１０は、この判定において否定結果を得ると、チェックポリシの設定を促すメッセージをディスプレイ２０４に出力してこのセキュリティ管理制御処理を終了する（ＳＰ１０９）。
【０１０９】
これに対してセキュリティ管理制御プログラム２１０は、ステップＳＰ１０１の判定において肯定結果を得ると、一連のセキュリティチェック処理（ＳＰ１０４の繰り返し処理によって、全チェック項目のチェックが完了するまでの一連の処理）ごとの一意な識別情報であるチェックＩＤ（図５のＣＩＤ）を生成する（ＳＰ１０２）。このチェックＩＤは、チェック結果管理テーブル２２２内に格納されたチェック結果が、今回のセキュリティチェックのチェック結果であるか否かを判断するために用いる。チェックＩＤは、一意であればよく、ＧＵＩＤ（Global Unique Identifier）などの一意であることが保障される文字列データであっても、連番の数値データであっても、他の形式のデータであっても構わない。続いてセキュリティ管理制御プログラム２１０は、現在の日時をＯＳ２１４から取得し、メモリ２０２に保存する（ＳＰ１０３）。
【０１１０】
この後、セキュリティ管理制御プログラム２１０は、チェックポリシに設定されたすべてのチェック項目のチェックが完了するまで、以下に説明するステップＳＰ１０５〜ステップＳＰ１０８の処理を繰り返し実行する（ＳＰ１０４）。
【０１１１】
すなわちセキュリティ管理制御プログラム２１０は、セキュリティチェックプログラム２１３を実行し、各仮想クライアントに対するセキュリティチェックを行う（ＳＰ１０５）。なお、セキュリティチェックプログラム２１３を実行する際、プログラムの引数などにより、ステップＳＰ１０２で作成したチェックＩＤと、ステップＳＰ１０３で取得した日時データと、ステップＳＰ１０４の繰り返し処理におけるインターバル時間（＝Ｔとする）を渡す。本実施の形態では、インターバル時間の値は、システムで定めた固定値Ｔとするが、チェックポリシの一項目として管理者が指定する構成としてもよい。
【０１１２】
続いて、セキュリティ管理制御プログラム２１０は、チェック結果管理テーブル２２２を確認し、まだチェックが完了していないチェック項目が残っているか否かを判定する（ＳＰ１０６）。
【０１１３】
セキュリティ管理制御プログラム２１０は、この判定において肯定結果を得ると、一定時間（＝Ｔ）の間待った（ＳＰ１０７）後にステップＳＰ１０４に戻り、この後ステップＳＰ１０６において否定結果を得るまで、ステップＳＰ１０４〜ステップＳＰ１０７の処理を繰り返す。
【０１１４】
そしてセキュリティ管理制御プログラム２１０は、やがてすべてのチェック項目のセキュリティチェックが完了することによりステップＳＰ１０６において否定結果を得ると、このセキュリティ管理制御処理を終了する（ＳＰ１０８）。
【０１１５】
（１−６−２）設定プログラムの処理
一方、図１３は、セキュリティ管理サーバ１０１（図２）の設定プログラム２１１により実行される設定処理の処理手順を示す。設定プログラム２１１は、指示入力装置２０３からの設定プログラムの開始指示コマンド等により起動されると、そのとき何らかの設定をしようとする項目（以下、これを設定対象項目と呼ぶ）の指定を促すメッセージをディスプレイ２０４上に表示し、管理者により設定対象項目が指定されるのを待ち受ける（ＳＰ２００）。
【０１１６】
そして設定プログラム２１１は、やがて設定対象項目が指定されると、そのとき指定された設定対象項目が「チェックポリシの設定」及び「個別ＶＭとマスタＶＭとの対応関係の設定」のいずれであるかを判定する（ＳＰ２０１）。
【０１１７】
そして設定プログラム２１１は、ステップＳＰ２０１の判定において、そのとき指定された設定対象項目が「チェックポリシの設定」であると判定した場合には、チェックポリシを設定するための所定のＧＵＩ画面（以下、これをチェックポリシ設定画面と呼ぶ）をディスプレイ２０４に表示する。かくして管理者は、このチェックポリシ設定画面を用いて所望のチェックポリシを設定することができる。そして設定プログラム２１１は、このとき管理者により設定されたチェックポリシをチェックポリシ管理テーブル２２０に格納し（ＳＰ２０２）、この後この設定処理を終了する。
【０１１８】
また設定プログラム２１１は、ステップＳＰ２０１の判定において、そのとき指定された設定対象項目が「個別ＶＭとマスタＶＭとの対応関係の設定」であると判定した場合には、個別ＶＭとマスタＶＭとの対応関係を設定するための所定のＧＵＩ画面（以下、これを個別ＶＭ／マスタＶＭ対応設定画面と呼ぶ）をディスプレイ２０４に表示する。かくして管理者は、この個別ＶＭ／マスタＶＭ対応設定画面を用いて個別ＶＭとマスタＶＭとの対応関係を設定することができる。そして設定プログラム２１１は、このとき管理者により設定された個別ＶＭとマスタＶＭとの対応関係を個別ＶＭ／マスタＶＭ対応管理テーブル２２１に格納し（ＳＰ２０３）、この後この設定処理を終了する。
【０１１９】
さらに設定プログラム２１１は、ステップＳＰ２０１の判定において、そのとき指定された設定対象項目が「チェックポリシの設定」及び「個別ＶＭとマスタＶＭとの対応関係の設定」のいずれでもないと判定したときには、エラーをディスプレイ２０４に表示し（ＳＰ２０４）、この後この設定処理を終了する。
【０１２０】
なおチェックポリシ設定画面の構成例を図１４に示す。この図１４のチェックポリシ設定画面５００では、セキュリティチェックのチェック項目として予め定められた各項目にそれぞれ対応させてチェックポリシ詳細設定部５０１〜５０５が設けられている。本実施の形態の場合、上述のようにかかるチェック項目として、「更新プログラムの判定」、「ウィルス対策製品の判定」、「不正ソフトウェアの判定」、「必須ソフトウェアの判定」及び「セキュリティ設定の判定」の５つが予め定められている。
【０１２１】
そして例えば「更新プログラムの判定」というチェック項目に対応するチェックポリシ詳細設定部５０１では、更新が適用されたか否かをチェックすべき更新プログラムを指定でき、指定した更新プログラムごとにチェック対象、重要度及びチェック期限を指定できる。
【０１２２】
また「ウィルス対策製品の判定」というチェック項目に対応するチェックポリシ詳細設定部５０２では、許可するウィルス対策製品、該当ウィルス対策製品のウィルス定義ファイルのバージョン及び定義日と、チェック対象、重要度及びチェック期限とを指定できる。
【０１２３】
さらに「不正ソフトウェアの判定」というチェック項目に対応するチェックポリシ詳細設定部５０３では、インストールを禁止するソフトウェア及び当該ソフトウェアのバージョンを指定でき、指定したソフトウェアごとにチェック対象、重要度及びチェック期限を指定できる。
【０１２４】
また「必須ソフトウェアの判定」というチェック項目に対応するチェックポリシ詳細設定部５０４では、必ずインストールすべきソフトウェアを指定でき、指定したソフトウェアごとにチェック対象、重要度及びチェック期限を指定できる。
【０１２５】
さらに「セキュリティ設定の判定」というチェック項目に対応するチェックポリシ詳細設定部５０５では、予め用意されたセキュリティ設定に関するチェック項目ごとにチェックの要否、チェック対象、重要度及びチェック期限を指定できる。
【０１２６】
また「セキュリティ設定の判定」というチェック項目に対応するチェックポリシ詳細設定部５０５以外のチェックポリシ詳細設定部５０１〜５０４には、それぞれ対応するチェック項目をチェック対象とするか否かを指定するためのラジオスイッチ５０１Ａ〜５０４Ａが設けられている。
【０１２７】
そしてチェックポリシ設定画面５００では、所望するチェックポリシ詳細設定部５０１内に必要事項を入力後、ＯＫボタン５０６又はキャンセルボタン５０７をクリックすることによって、このチェックポリシ設定画面５００を閉じることができる。
【０１２８】
この際、設定プログラム２１１は、ＯＫボタン５０６がクリックされた場合には、チェックポリシ設定画面５００において指定された情報をチェックポリシ管理テーブル２２０に新規登録し、又はチェックポリシ設定画面５００において指定された情報に基づいてチェックポリシ管理テーブル２２０を更新し、キャンセルボタン５０７がクリックされた場合は、何もせずに処理を終了する。
【０１２９】
また個別ＶＭ／マスタＶＭ対応設定画面の構成例を図１５に示す。この図１５に示す個別ＶＭ／マスタＶＭ対応設定画面６００は、クライアント管理テーブル２２３から取得した、管理対象の仮想クライアントを表示する管理対象ＶＭ一覧表示部６０１と、個別ＶＭ／マスタＶＭ対応管理テーブルに登録済みの個別ＶＭとマスタＶＭとの関係を提示する登録済み情報表示部６０２と、追加的に対応付けようとする個別ＶＭ及びマスタＶＭを指定する対応情報追加設定部６０４とからなる。
【０１３０】
そして設定プログラム２１１は、登録済み情報表示部６０２に表示された個別ＶＭ及びマスタＶＭの対応関係のうち、いずれかの対応関係と対応付けられたチェックボックス６０７がチェックされた状態で削除ボタン６０３がクリックされると、その個別ＶＭ及びマスタＶＭの対応関係に関する情報を個別ＶＭ／マスタＶＭ対応管理テーブル２２１から削除する。
【０１３１】
また設定プログラム２１１は、対応情報追加設定部６０４において個別ＶＭ及びマスタＶＭのペアが指定された後、追加ボタン６０５がクリックされると、指定された情報を個別ＶＭ／マスタＶＭ対応管理テーブル２２１に追加する。
【０１３２】
さらに設定プログラム２１１は、個別ＶＭ／マスタＶＭ対応設定画面５００の右下に表示された終了ボタン６０６がクリックされると、この個別ＶＭ／マスタＶＭ対応設定画面５００を閉じて処理を終了する。
【０１３３】
（１−６−３）セキュリティチェックプログラムの処理
次に、図１２のステップＳＰ１０５におけるセキュリティチェックプログラム２１３の処理内容について説明する。なお、上述のようにセキュリティチェックプログラム２１３は、セキュリティ管理制御プログラム２１０から、ステップＳＰ１０２で作成したチェックＩＤと、ステップＳＰ１０３で取得した日時データと、ステップＳＰ１０５〜ステップＳＰ１０８における繰り返し処理のインターバル時間（＝Ｔ）とを受け取る。
【０１３４】
図１６は、セキュリティ管理サーバ１０１のセキュリティチェックプログラム２１３が実行するセキュリティチェック処理の処理手順を示す。セキュリティチェックプログラム２１３は、まず、クライアント管理テーブル２２３を参照することにより各仮想クライアントの管理情報を取得し、さらに個別ＶＭ／マスタＶＭ対応管理テーブル２２１を参照して、取得した各仮想クライアントの管理情報を、個別ＶＭの管理情報とマスタＶＭの管理情報に分類する（ＳＰ３００）。
【０１３５】
続いてセキュリティチェックプログラム２１３は、ステップＳＰ３００において分類した管理情報のうち、マスタＶＭの管理情報を取得し、全マスタＶＭに対して、後述するステップＳＰ３０２〜ステップＳＰ３１５の処理を繰り返し実行する（ＳＰ３０１）。
【０１３６】
具体的に、セキュリティチェックプログラム２１３は、チェックポリシ管理テーブル２２０からマスタＶＭのチェック項目に関する情報を取得し、さらにチェック結果管理テーブル２２２からそのとき対象としているマスタＶＭのチェック結果のうち、今回のセキュリティチェックの結果（つまりチェックＩＤが一致するエントリの情報）を取得する。
【０１３７】
次いで、セキュリティチェックプログラム２１３は、ステップＳＰ３０２で取得したマスタＶＭに対するチェック項目と、そのとき対象としているマスタＶＭに対するセキュリティチェックのチェック結果とを参照し、未チェックのチェック項目が存在するかを判定する（ＳＰ３０３）。
【０１３８】
セキュリティチェックプログラム２１３は、この判定において否定結果を得ると、ステップＳＰ３０１に戻って、この後ステップＳＰ３０３において肯定結果を得るまで同様の処理を繰り返す。
【０１３９】
そしてセキュリティチェックプログラム２１３は、やがて対象とするマスタＶＭに対するすべてのチェック項目のセキュリティチェックが終了することによりステップＳＰ３０３において肯定結果を得ると、チェックポリシ管理テーブル２２０に設定された重要度に基づいて、対象としているマスタＶＭに対して未チェックのチェック項目を、重要度が「高」のチェック項目と、重要度が「中」のチェック項目と、重要度が「低」のチェック項目とに分類する。またセキュリティチェックプログラム２１３は、セキュリティ管理制御プログラム２１０から受け取った日時情報と、現在の日時と、チェックポリシ管理テーブル２２０に設定されたチェック期限との情報に基づいて、チェック期限切れのチェック項目をリストアップする（ＳＰ３０４）。なお、期限切れの判断は、ＳＰ１０３にて採取してメモリ２０２に格納した時刻（すなわち、一連のチェック処理の開始時刻）に、チェック期限に記載の時間を加えた時刻が、現在時刻よりも古い場合は期限切れと判断する。なお、本実施の形態では、チェック期限として、一連のチェック処理の開始時刻からの経過時間を記載するものとしたが、ＵＮＩＸ時間（1970年1月1日0時0分0秒からの秒数）や、特定の日時などを記載し、チェック期限に記載された時刻が、現在時刻よりも古い場合に期限切れと判断してもよい。なお、この場合は、一度、該当チェック項目のセキュリティチェックに合格した仮想クライアントは、再度、同じ項目のセキュリティチェックは実行しないようにしてもよい。
【０１４０】
さらにセキュリティチェックプログラム２１３は、ＶＭ管理サーバ１０３の管理情報参照プログラム４１２から仮想マシン管理テーブル４２０に格納された情報と、物理マシン管理テーブル４２１に格納された情報とを取得し、これらの情報と仮想マシン管理テーブル４２０とに基づいて、対象としているマスタＶＭが現在起動中であるか否かを判定する（ＳＰ３０５）。なお、所定のＶＭが停止中とは、ハイパバイザプログラム３１０が所定のＶＭ上で動作するアプリケーションプログラムやＯＳ等のソフトウェア実行を終了し、所定のＶＭの提供に用いていた物理クライアント１０２の主メモリ３０２の領域を開放する、いわゆる所定のＶＭが終了した状態（かつ所定のＶＭの初期化前の状態）を指す。しかし、本実施の形態では所定のＶＭの停止中とした場合に、ハイパバイザプログラム３１０が所定のＶＭが提供するレジスタ及びメモリ空間の内容をマシンイメージに書き戻し、所定のＶＭ上で動作するアプリケーションプログラムやＯＳ等のソフトウェア実行を終了する一次停止状態を含めてもよい。なお、ハイパバイザプログラム３１０は一時停止状態のＶＭの処理を再開して再び起動中にするために、当該ＶＭのマシンイメージから、メモリ空間の内容やレジスタの内容を含む各種情報を読み込み、これらの内容に基づいて所定のＶＭのレジスタ内容とメモリ空間の内容を復旧し、ＶＭとしてのソフトウェア実行を再開させることができる。したがって、ハイパバイザプログラム３１０の説明で述べた、仮想マシン（仮想クライアント）をエミュレーションする処理を、一時停止中のＶＭに適用する場合は上記復旧を行うものと読み替えてもよい。
【０１４１】
そしてセキュリティチェックプログラム２１３は、この判定において否定結果を得ると、ステップＳＰ３０５において取得した仮想マシン管理テーブル４２０の情報に基づいて、そのマスタＶＭの必要リソース量を取得する。またセキュリティチェックプログラム２１３は、これに加えて物理マシン管理テーブル４２１から各物理クライアント（第１及び第２の物理クライアント１０２Ａ，１０２Ｂ）に必要な各リソース（ＣＰＵ、メモリ及びディスク等）の量（以下、これを必要リソース量と呼ぶ）を取得する。さらにセキュリティチェックプログラム２１３は、同じく物理マシン管理テーブル４２１から取得したＩＰアドレスを用いて、各物理クライアント（第１及び第２の物理クライアント１０２Ａ，１０２Ｂ）にリモートアクセスし、これら物理クライアントの性能情報取得機能３１１から現在の性能情報（ＣＰＵ利用率及びメモリ使用量）を取得し、現在のシステムの空きリソース量を算出する（ＳＰ３０６）。
【０１４２】
続いてセキュリティチェックプログラム２１３は、ステップＳＰ３０６において取得した、対象とするマスタＶＭの必要リソース量と、現在のシステムの空きリソース量とを比較し、当該マスタＶＭを起動できるか否かを判定する（ＳＰ３０７）。
【０１４３】
セキュリティチェックプログラム２１３は、この判定によりかかるマスタＶＭの起動ができないと判断した場合は、ステップＳＰ３０４で作成した、当該マスタＶＭの未チェックのチェック項目の分類結果を参照し（ＳＰ３０８）、重要度が「高」のチェック項目又はチェック期限を過ぎたチェック項目があれば、管理者に対するアラートを発行する（ＳＰ３０９）。なお、管理者に対するアラートの発行方法としては、管理者にリソース不足の旨を通知する方法であれば、ディスプレイ２０４にメッセージを表示する方法や、管理者宛てに電子メールを送信する方法などのほか、他の種々の方法を広く適用することができる。そしてセキュリティチェックプログラム２１３は、ステップＳＰ３０１に戻って、この後同様の処理を繰り返す。
【０１４４】
またセキュリティチェックプログラム２１３は、ステップＳＰ３０７において、そのマスタＶＭの２台分の空きリソースがないと判断した場合（対象とするマスタＶＭを起動すると、それ以上のＶＭを起動できないと判断した場合）は、ステップＳＰ３０４において作成したそのマスタＶＭに対して未チェックのチェック項目の分類結果を参照し、重要度が「高」、重要度が「中」又はチェック期限を過ぎたチェック項目があるか否かを判定する（ステップＳＰ３１０）。
【０１４５】
そしてセキュリティチェックプログラム２１３は、この判定において肯定結果を得ると、ＶＭ管理サーバ１０３のＶＭ管理プログラム４１０を利用してそのマスタＶＭを起動する（ＳＰ３１１）。具体的に、セキュリティチェックプログラム２１３は、第１又は第２の物理クライアント１０２Ａ，１０２Ｂを制御することにより、そのハイパバイザプログラム３１０に、ストレージ装置１０４から対応するマシンイメージ情報３２０を読み込ませ、これを主メモリ３０２上で展開させる。ただし、このマスタＶＭを稼働させる物理クライアント（第１又は第２の物理クライアント１０２Ａ，１０２Ｂ）の空きリソースが不足している場合には、ＶＭ管理サーバ１０３のＶＭ移動プログラム４１１を利用して、最も空きリソースが多い物理クライアントにそのマスタＶＭを移動させた後、当該マスタＶＭを起動する。
【０１４６】
続いてセキュリティチェックプログラム２１３は、対象とするマスタＶＭに対し、重要度が「高」のチェック項目、重要度が「中」のチェック項目及びチェック期限を過ぎたチェック項目に対してそれぞれセキュリティチェックを行い、そのチェック結果をチェック結果管理テーブル２２２に格納する。またセキュリティチェックプログラム２１３は、チェック対象が「マスタ」であるチェック項目については、そのマスタＶＭと関連する個別ＶＭに対するセキュリティチェックのチェック結果として、当該マスタＶＭのチェック結果をチェック結果管理テーブル２２２に格納する。さらに、セキュリティチェックプログラム２１３は、チェック対象が「マスタor個別」であるチェック項目については、そのマスタＶＭに対するセキュリティチェックのチェック結果が合格であった場合にのみ、当該マスタＶＭと関連する個別ＶＭのチェック結果として、チェック結果管理テーブル２２２に当該マスタＶＭに対するセキュリティチェックのチェック結果を格納する（ステップＳＰ３１２）。そしてセキュリティチェックプログラム２１３は、ステップＳＰ３０１に戻って、この後同様の処理を繰り返す。
【０１４７】
さらにセキュリティチェックプログラム２１３は、ステップＳＰ３０７において、対応する物理クライアント（第１又は第２の物理クライアント１０２Ａ，１０２Ｂ）内にそのマスタＶＭの２台分以上の空きリソースが存在すると判断した場合には、ＶＭ管理サーバ１０３のＶＭ管理プログラム４１０を利用してそのマスタＶＭを起動する（ステップＳＰ３１３）。この際、セキュリティチェックプログラム２１３は、ステップＳＰ３１１と同様に、そのマスタＶＭを稼働させる物理クライアント（第１又は第２の物理クライアント１０２Ａ，１０２Ｂ）の空きリソースが不足している場合には、ＶＭ管理サーバ１０３のＶＭ移動プログラム４１１を利用して、最も空きリソースが多い物理クライアントにそのマスタＶＭを移動させた後、当該マスタＶＭを起動する。
【０１４８】
続いて、セキュリティチェックプログラム２１３は、対象とするマスタＶＭに対してセキュリティチェックを行い、そのチェック結果をチェック結果管理テーブル２２２に格納する。またセキュリティチェックプログラム２１３は、ステップＳＰ３１２と同様に、チェック対象の設定に応じて、そのマスタＶＭと関連する個別ＶＭに対するセキュリティチェックのチェック結果として、当該マスタＶＭのチェック結果をチェック結果管理テーブル２２２に格納する（ＳＰ３１４）。そしてセキュリティチェックプログラム２１３は、ステップＳＰ３０１に戻って、この後同様の処理を繰り返す。
【０１４９】
なお、ステップＳＰ３０７〜ステップＳＰ３１４の処理は一例であって、例えば、ステップＳＰ３０７においてそのマスタＶＭの２台分の空きリソースがないと判断した場合にもステップＳＰ３０８及びステップＳＰ３０９の処理を行うようにしてもよい。
【０１５０】
これに対してセキュリティチェックプログラム２１３は、ステップＳＰ３０５の判定において肯定結果を得ると、対象とするマスタＶＭに対して、重要度が「高」のチェック項目及びチェック期限を過ぎたチェック項目についてのみセキュリティチェックを行い、そのチェック結果をチェック結果管理テーブル２２２に格納する。このようにマスタＶＭが起動されている場合には、重要度が「高」のチェック項目及びチェック期限を過ぎたチェック項目についてのみセキュリティチェックを行うのは、そのマスタＶＭが起動されている場合、そのマスタＶＭによって何らかの処理が行われている可能性があるため、その処理を邪魔しないようにするためである。またセキュリティチェックプログラム２１３は、ステップＳＰ３１２と同様に、チェック対象の設定に応じて、そのマスタＶＭと関連する個別ＶＭに対するセキュリティチェックのチェック結果として、当該マスタＶＭのチェック結果をチェック結果管理テーブル２２２に格納する（ＳＰ３１５）。そしてセキュリティチェックプログラム２１３は、ステップＳＰ３０１に戻って、この後同様の処理を繰り返す。
【０１５１】
続いて、セキュリティチェックプログラム２１３は、ステップＳＰ３００において分類した管理情報のうち、個別ＶＭの管理情報を取得し、全個別ＶＭに対して、後述するステップＳＰ３１７〜ステップＳＰ３３０の処理を繰り返し実行する（ＳＰ３１６）。
【０１５２】
具体的に、セキュリティチェックプログラム２１３は、チェックポリシ管理テーブル２２０から個別ＶＭのチェック項目に関する情報を取得し、さらにチェック結果管理テーブル２２２からそのとき対象としている個別ＶＭのチェック結果のうち、今回のセキュリティチェックのチェック処理の結果（つまりチェックＩＤが一致するエントリの情報）を取得する（ＳＰ３１７）。
【０１５３】
次いで、セキュリティチェックプログラム１２３は、ステップＳＰ３１７で取得した個別ＶＭに対するセキュリティチェックのチェック項目と、そのとき対象としている個別ＶＭに対するセキュリティチェックのチェック結果とを参照し、未チェックのチェック項目が残っているかを判定する（ＳＰ３１８）。
【０１５４】
セキュリティチェックプログラム２１３は、この判定において否定結果を得るとステップＳＰ３１６に戻り、この後ステップＳＰ３１８において肯定結果を得るまで同様の処理を繰り返す。
【０１５５】
そしてセキュリティチェックプログラム２１３は、やがてすべてのチェック項目に対するセキュリティチェックが終了することによりステップＳＰ３１８において肯定結果を得ると、ステップＳＰ３０４と同様にして、対象とする個別ＶＭに対して未チェックのチェック項目をリストアップする（ＳＰ３１９）。
【０１５６】
続いてセキュリティチェックプログラム２１３は、ステップＳＰ３０５と同様にして、対象とする個別ＶＭが起動中であるか否かを判断し（ＳＰ３２０）、当該個別ＶＭが停止中のときには、ステップＳＰ３０６と同様にして、その個別ＶＭの必要リソース量と、各物理クライアントの現在の性能情報とをそれぞれ取得し、現在のシステムの空きリソース量を算出する（ＳＰ３２１）。
【０１５７】
次いでセキュリティチェックプログラム２１３は、ステップＳＰ３０７と同様にして、その個別ＶＭを起動できるか否かを判定する（ＳＰ３２２）。
【０１５８】
そしてセキュリティチェックプログラム２１３は、その個別ＶＭの起動ができないと判断した場合は、ステップＳＰ３０８同様に、その個別ＶＭの未チェックのチェック項目に、重要度が「高」のチェック項目又はチェック期限を過ぎたチェック項目があれば、管理者へアラートを発行する（ＳＰ３２３，ＳＰ３２４）。そしてセキュリティチェックプログラム２１３は、ステップＳＰ３１６に戻って、この後同様の処理を繰り返す。
【０１５９】
またセキュリティチェックプログラム２１３は、ステップＳＰ３２２において、そのマスタＶＭの２台分の空きリソースがないと判断した場合（対象とするマスタＶＭを起動すると、それ以上のＶＭを起動できないと判断した場合）は、ステップＳＰ３１９において作成したその個別ＶＭの未チェックのチェック項目の分類結果を参照し、重要度が「高」、重要度が「中」又はチェック期限を過ぎたチェック項目があるか否かを判定する（ＳＰ３２５）。
【０１６０】
そしてセキュリティチェックプログラム２１３は、この判定において肯定結果を得ると、ステップＳＰ３１１と同様にして、その個別ＶＭを起動する（ＳＰ３２６）。
【０１６１】
またセキュリティチェックプログラム２１３は、ステップＳＰ３１２と同様にして、その個別ＶＭに対して、重要度が「高」のチェック項目、重要度が「中」のチェック項目及びチェック期限を過ぎたチェック項目についてのみセキュリティチェックを行い、そのチェック結果をチェック結果管理テーブル２２２に格納する（ＳＰ３２７）。そしてセキュリティチェックプログラム２１３は、ステップＳＰ３１６に戻って、この後同様の処理を繰り返す。
【０１６２】
さらにセキュリティチェックプログラム２１３は、ステップＳＰ３２２において、対応する物理クライアント（第１又は第２の物理クライアント１０２Ａ，１０２Ｂ）内にそのマスタＶＭの２台分以上の空きリソースが存在すると判断した場合には、ステップＳＰ３１３と同様の手順で、その個別ＶＭを起動し（ＳＰ３２８）、この後ステップＳＰ３１４と同様の手順によりその個別ＶＭに対するチェックを行い、チェック結果をチェック結果管理テーブル２２２に格納する（ＳＰ３２９）。そしてセキュリティチェックプログラム２１３は、ステップＳＰ３１６に戻って、この後同様の処理を繰り返す。
【０１６３】
これに対してセキュリティチェックプログラム２１３は、ステップＳＰ３２０の判定において肯定結果を得ると、ステップＳＰ３１５と同様にして、その個別ＶＭに対して重要度が「高」のチェック項目及びチェック期限を過ぎたチェック項目についてのみセキュリティチェックを行い、そのチェック結果をチェック結果管理テーブル２２２に格納する（ＳＰ３３０）。そしてセキュリティチェックプログラム２１３は、ステップＳＰ３１６に戻って、この後同様の処理を繰り返し、やがてすべての個別ＶＭに対するステップＳＰ３１７〜ステップＳＰ３３０の処理が完了すると、このセキュリティチェック処理を終了する。
【０１６４】
（１−６−４）ＶＭ情報収集プログラムの処理
続いて、セキュリティ管理サーバ１０１（図２）のＶＭ情報収集プログラム２１２（図２）の処理内容について説明する。
【０１６５】
図１７は、本実施の形態によるＶＭ情報収集プログラム２１２により実行されるＶＭ情報収集処理の処理手順を示す。ＶＭ情報収集プログラム２１２は、まずＶＭ管理サーバ１０３の管理情報参照プログラム４１２を呼び出し、仮想マシン管理テーブル４２０から各仮想マシンの管理情報（以下、これを仮想マシン管理情報と呼ぶ）を取得する（ＳＰ４００）。
【０１６６】
続いてＶＭ情報収集プログラム２１２は、取得した仮想マシン管理情報の一部又は全部をクライアント管理テーブル２２３に格納し（ＳＰ４０１）、この後このＶＭ情報収集処理を終了する。
【０１６７】
（１−７）本実施の形態の動作及び効果
本実施の形態における動作例を、図１８に示す。例えばチェクポリシ管理テーブル２２０における「C1-01」というチェック項目を仮想マシンＶＭ１に対して実施し、チェックに合格した場合は（図１８の「C1-01-（1）」）、個別ＶＭ（ＶＭ２〜ＶＭ４）に対するチェックを行わずに、各個別のチェック結果を「○」にすることができる（図１８の「C1-01-（2）」）。これにより、セキュリティチェック処理の処理量を減らすことができ、仮想クライアントの利用者への影響を抑えつつ、セキュリティチェック処理の高速化ができるようになる。
【０１６８】
また、チェクポリシ管理テーブル２２０における「C5-01」というチェック項目を仮想マシンＶＭ２に対して実施しようとした場合に、仮想マシンＶＭ２が利用中であれば、この「C5-01」というチェック項目の重要度が「低」なのでチェックをスキップし、後に仮想マシンＶＭ２が未使用のときにチェック処理を行う（図１８の「C5-01」）。これにより、セキュリティチェック処理が仮想マシンＶＭ２の利用者に与える影響をおさえることができるようになる。
【０１６９】
また、チェクポリシ管理テーブル２２０における「C3-02」というチェック項目を仮想マシンＶＭ３に対して実施しようとした場合、この「C3-02」というチェック項目は重要度が「高」なので、仮想マシンＶＭ３が利用中にも関わらず、当該チェック項目のチェック処理を実施する（図１８の「C3-02-（1）」）。同じく、「C3-02」というチェック項目を仮想マシンＶＭ４に対して実施しようとした際、第１の物理クライアント１０２Ａがリソース不足であった場合（図１８の「C3-02-（2）」）、仮想マシンＶＭ４は第２の物理クライアント１０２Ｂ上で起動しチェック処理を実施する（図１８の「C3-02-（3）」）。これにより、重要度が高いチェック項目については迅速にチェックを行うことができるようになる。
【０１７０】
以上のように本実施の形態によるセキュリティ管理方法によれば、セキュリティチェックを、チェック項目ごとに、必要な種別の仮想マシンに対して選択的に実行することができるため、不要な種別に対するセキュリティチェックを省略させることができる。かくするにつき仮想クライアントのセキュリティチェックを高速かつ効率的に行うことができる。
【０１７１】
また従来技術によると、各仮想クライアントに対するセキュリティチェックの実行により、チェック処理を行う管理サーバ側だけでなく、チェック対象のクライアント側にも少なからずの負荷を与えるという問題もあるが、本実施の形態によるセキュリティ管理方法によれば、複数台の管理サーバでの並列実行などによって高速化を行う方法ではなく、セキュリティチェックの処理量を減らす方法での高速化を実現できる。
【０１７２】
（２）第２の実施の形態
（２−１）本実施の形態によるネットワークシステムの構成
次に、第２の実施の形態について説明する。本実施の形態では、管理対象の複数の仮想クライアントがマシンの構成情報（あるマシンイメージの全部又は一部など）を共有し、共有するマシンの構成情報に変更を加えると、当該マシンの構成情報を共有しているすべての仮想クライアントにその変更が反映される仮想化技術、特に、共有するマシンの構成情報に変更を加えると、既に起動中の仮想クライアントには変更が反映されず、仮想クライアントのＯＳを再起動した際に、その変更が反映される仮想化技術をベースとする（例えば特許文献２や、非特許文献１の技術）。なお、ＯＳの再起動とは仮想クライアントを起動した状態で、当該仮想クライアントのＯＳの処理を終了し、再度起動を行う場合のみならず、当該仮想クライアントのＯＳの終了後に仮想クライアントが停止状態となり、その後仮想クライアントを起動してＯＳを起動する場合も含む。なお、このような変更反映を行う仮想化技術の一例としては以下の処理によって実現する方法が考えられる。しかし、これ以外の方法を採用してもよい。
【０１７３】
（ステップ１）マスタＶＭに対する変更箇所を記録する。なお、変更箇所の記録方法としては変更された個々のファイル名や、変更箇所のファイルシステム上のアドレスなどにより特定した変更箇所を記録する。変更箇所を特定する方法は、他の方法でもよい。また、更新データや更新前データも含めて記録してもよい。また、当該記録はハイパバイザプログラムまたはマスタＶＭまたは別なコンピュータが行うことが考えられる。
【０１７４】
（ステップ２）個別ＶＭ上のＯＳの再起動を検知し、記録された変更箇所のデータをマスタＶＭのディスクイメージから個別ＶＭのディスクイメージにコピーする。当該検知及びコピーはハイパバイザプログラムまたはマスタＶＭまたは別なコンピュータが行うことが考えられる。なお、個別ＶＭにのみ存在するファイルまたは設定と矛盾する上記コピーについては矛盾を発生させるファイル（またはデータ）についてのコピーを抑止してもよい。
【０１７５】
（ステップ３）コピー後に個別ＶＭ上にてＯＳの起動を行わせる。これによってコピーされたファイル（データ）を反映したソフトウェア実行環境が個別ＶＭ上にて実現される。
【０１７６】
ただし、共通の情報の変更を反映させるために、仮想クライアントの再起動を必要としない仮想化技術については、第１の実施の形態の範囲では本発明を適用可能である。
【０１７７】
なお、本実施の形態では、以上のような仮想化技術の実装には依存しないため、仮想化技術の詳細な説明は省略し、一例として簡単に説明するにとどめる。また、以上のような仮想化技術には、共有するマシンの構成情報があるマシンイメージそのものであり、共有するマシンの構成情報だけで仮想マシンが構成できる技術（以下、これを仮想化技術１と呼ぶ）と、共有するマシンの構成情報だけでは仮想マシンが構成できず、共有するマシンの構成情報と、個別の仮想クライアントごとに持つ、個別のマシンの構成情報を合わせて個別の仮想クライアントが構成できる技術（以下、これを仮想化技術２と呼ぶ）がある。本実施の形態では、かかる仮想化技術１及び仮想化技術２のいずれにも対応できる方式について説明する。
【０１７８】
図１との対応部分に同一符号を付して示す図１９において、７００は全体として第２の実施の形態によるネットワークシステムを示す。このネットワークシステム７００は、第１及び第２の物理クライアント７０２Ａ，７０２Ｂの外部記憶装置３０３（図２０）並びにストレージ装置７０３において保持されるプログラム及び各種情報と、セキュリティ管理サーバ７０１により実行されるセキュリティチェックのチェック項目及び当該セキュリティチェックの処理手順とが異なる点を除いて第１の実施の形態によるネットワークシステム１００と同様に構成されている。
【０１７９】
まず本実施の形態による第１及び第２の物理クライアント７０２Ａ，７０２Ｂの構成について説明する。図７との対応部分に同一符号を付して示す図２０は、第２の実施の形態による第１の物理クライアント７０２Ａの構成を示す。なお第２の物理クライアント７０２Ｂも、第１の物理クライアント７０２Ａと同様の構成である。
【０１８０】
第１の物理クライアント７０２Ａの外部記憶装置３０３には、ハイパバイザプログラム３１０に加え、ＶＭイメージ管理プログラム８００が保持される。また、ストレージ装置７０３には、複数又は単数のＶＭ共通構成情報８０１、複数又は単数の個別ＶＭ構成情報８０２、並びに共通／個別対応情報８０３が格納される。
【０１８１】
ＶＭ共通構成情報８０１は、複数又は単数の仮想クライアントを構成する情報の一部又は全部であり、典型的には、複数の仮想クライアントから共有される。上記仮想化技術１においては、ある仮想クライアントのマシンイメージであり、上記仮想化技術２においては、ある仮想クライアントを構成する情報の一部である。
【０１８２】
個別ＶＭ構成情報８０２は、個別の仮想クライアントごとにカスタマイズした情報を含む、仮想クライアントを構成する情報の一部である。上記仮想化技術１においては、ＶＭ共通構成情報８０２のみから構成される仮想クライアントとの差分情報であり、上記仮想化技術２においては、ＶＭ共通構成情報８０１とあわせて、ある仮想クライアントを構成する情報である。
【０１８３】
共通／個別対応情報８０３は、個別ＶＭ構成情報８０２のそれぞれについて、どのＶＭ共通構成情報８０１と関連するかを示す情報である。
【０１８４】
ＶＭイメージ管理プログラム８００は、ＶＭ共通構成情報８０１と、個別ＶＭ構成情報８０２を管理するプログラムであり、ハイパバイザプログラム３１０に対して仮想的なマシンイメージを提供する。すなわち、本実施の形態におけるハイパバイザプログラム３１０は、ＶＭイメージ管理プログラム８００を介してマシンイメージにアクセスする。
【０１８５】
例えばＶＭイメージ管理プログラム８００は、共通／個別対応情報８０２に基づいて、ＶＭ共通構成情報８０１と、個別ＶＭ構成情報８０２とを合わせたマシンイメージを仮想的に構築する。またＶＭイメージ管理プログラム８００は、あるＶＭ共通構成情報８０１に変更があった場合は、すべての仮想クライアントに変更後の情報が反映されたことを確認するまで（つまり変更前の情報が不要になるまで）、変更前の情報と、変更後の情報の両方を管理し、ハイパバイザプログラム３１０の要求に応じて、変更前か変更後のいずれかの情報を提供する。
【０１８６】
（２−２）論理構成
続いて、本実施の形態によるネットワークシステム７００の論理構成について、上述した第１の実施の形態によるネットワークシステム１００の論理構成（図１１参照）と異なる部分を説明する。なお、本実施の形態では、上記仮想化技術１のように、ＶＭ共通構成情報８０１が、当該情報のみで仮想マシンを起動するに十分な情報を有するマシンイメージであるものとする。
【０１８７】
図２１は、第２の実施の形態によるネットワークシステム７００の論理構成を示す。ストレージ装置７０３には、ＶＭ共通構成情報８０１と、第１の仮想クライアントＶＭ１以外の各仮想クライアント（第２〜第４の仮想クライアントＶＭ２〜ＶＭ４）用の個別ＶＭ構成情報８０２（ＶＭ共通構成情報８０１との差分情報）とが格納されている。
【０１８８】
なお、上述のようにＶＭ共通構成情報８０１は、当該情報のみで、第１の仮想クライアントＶＭ１を起動するに十分な情報を有するマシンイメージとするが、ストレージ装置７０３に第１の仮想クライアントＶＭ１用の個別ＶＭ構成情報８０２を格納し、第１の仮想クライアントＶＭ１がＶＭ共通構成情報８０１と、当該第１の仮想クライアントＶＭ１用の個別ＶＭ構成情報８０２とを合わせて仮想マシンを起動するに十分な情報を有する構成をとってもよい。
【０１８９】
第２〜第４の仮想クライアントＶＭ２〜ＶＭ４は、第１の仮想クライアントＶＭ１をベースに生成した仮想マシンであり、これら第２〜第４の仮想クライアントＶＭ２〜ＶＭ４のマシンイメージは、ＶＭイメージ管理プログラム８００により、ＶＭ共通構成情報８０１と、各仮想クライアント用の個別ＶＭ構成情報８０２とを合わせて仮想的に構成される。
【０１９０】
本実施の形態では、マスタＶＭにインストールしたソフトウェアのアンインストールを除く、あらゆる操作を個別ＶＭの利用者に許すこととする。なお、ソフトウェアのアンインストールを抑止する方法としては、レジストリへのアンインストールの禁止設定、個別ＶＭの利用者のユーザ権限による保護、アンインストールパスワードの設定などがあるが、他の方法でも構わない。
【０１９１】
また第１の実施の形態と同様に、セキュリティ管理サーバ７０１が保持する個別ＶＭ／マスタＶＭ対応管理テーブル２２１（図２及び図４）には、第２〜第４の仮想クライアントＶＭ２〜ＶＭ４のマスタＶＭがいずれも第１の仮想クライアントＶＭ１であることが登録される。
【０１９２】
なお、上述のように本実施の形態では、ＶＭ共通構成情報８０１は、当該情報のみで、第１の仮想クライアントＶＭ１を起動するに十分な情報を有するマシンイメージとしたが、第１の仮想クライアントＶＭ１がＶＭ共通構成情報８０１と、当該第１の仮想クライアントＶＭ１用の個別ＶＭ構成情報８０２とを合わせて仮想クライアントを起動するに十分な情報を有する構成をとった場合、いずれかの個別ＶＭ、すなわち第２〜第４の仮想クライアントＶＭ２〜ＶＭ４をマスタＶＭとしても定義する。具体的には、例えば第２の仮想クライアントＶＭ２をマスタＶＭかつ個別ＶＭとし、個別ＶＭ／マスタＶＭ対応管理テーブル２２１には、第２〜第４の仮想クライアントＶＭ２〜ＶＭ４のマスタＶＭがそれぞれ第２の仮想クライアントＶＭ２であることを登録する。
【０１９３】
（２−３）処理手順
続いて、本実施の形態におけるチェックポリシについて説明する。図２２は、本実施の形態によるセキュリティ管理サーバ７０１により保持されるチェックポリシ管理テーブル７０５の構成例を示す。
【０１９４】
マスタＶＭに対するセキュリティチェックが合格した場合、個別ＶＭに対するセキュリティチェックを行わないチェック項目（すなわちチェック対象が「マスタ」又は「マスタor個別」であるチェック項目）については、マスタＶＭの変更が個別ＶＭにも反映されていることを確認する必要がある。すなわち起動中の個別ＶＭには、マスタＶＭの変更が反映されないため、個別ＶＭのＯＳの再起動が必要となる。
【０１９５】
そこで、本実施の形態におけるチェックポリシは、第１の実施の形態におけるチェックポリシの内容に加え、「マスタの変更の反映」というチェック項目を持つ。このチェック項目は、マスタＶＭの変更が個別ＶＭに反映されたか否かを確認するチェック項目である。なお、このチェック項目は、「チェック対象」が「個別」、「重要度」が「高」にそれぞれ固定されており、これら「チェック対象」及び「重要度」の変更はできないものとする。またこのチェック項目の「チェック期限」は、他のチェック項目と異なり、セキュリティチェックを実行する期限を表すものではなく、「対策期限」を表す。
【０１９６】
本実施の形態における、セキュリティチェックプログラム２１３の処理手順について説明する。本実施の形態におけるセキュリティチェック処理は、図１６との対応部分に同一符号を付した図２３に示すように、第１の実施の形態によるセキュリティチェック処理のステップＳＰ３１２の後にステップＳＰ４００を、ステップＳＰ３１４の後にステップＳＰ４０１を、ステップＳＰ３１５の後にステップＳＰ４０２をそれぞれ加えた内容となっている。
【０１９７】
また本実施の形態のセキュリティチェック処理では、ステップＳＰ３２６の後のステップＳＰ４０３、ステップＳＰ３２８の後のステップＳＰ４０４及びステップＳＰ３２０の後のステップＳＰ４０５において、第１の実施の形態によるセキュリティチェック処理の対応するステップＳＰ３２７、ステップＳＰ３２９又はステップＳＰ３３０と同じ処理を実行した後に、上述のようにチェックポリシに追加した「マスタの変更の反映」というチェック項目に関するセキュリティチェックを実施する。
【０１９８】
まず、追加したステップＳＰ４００、ステップＳＰ４０１及びステップＳＰ４０２におけるセキュリティ管理サーバ７０１のセキュリティチェックプログラム７０４（図２１）の処理内容について説明する。
【０１９９】
本実施の形態のセキュリティチェックプログラム７０４は、ステップＳＰ３１２の処理後、ステップＳＰ３１２で実施したチェック項目について、前回のセキュリティチェックのチェック結果と、今回のセキュリティチェックのチェック結果とを比較する。そしてセキュリティチェックプログラム７０４は、前回のセキュリティチェックでは不合格で、今回のセキュリティチェックでは合格したチェック項目がある場合には、マスタＶＭの変更の反映が必要と判断し、マスタＶＭの変更日時として、ＯＳ２１４から、現在の日時を取得する（ＳＰ４００）。またセキュリティチェックプログラム７０４は、これと同様の処理を、ステップＳＰ４０１ではステップＳＰ３１４で実施したチェック項目について、ステップＳＰ４０２ではステップＳＰ３１５で実施したチェック項目について実行する。
【０２００】
次に、ステップＳＰ４０３、ステップＳＰ４０４及びステップＳＰ４０５におけるセキュリティチェックプログラム７０４の処理内容について説明する。
【０２０１】
セキュリティチェックプログラム７０４は、ステップＳＰ４０３において、図１６のステップＳＰ３２７同様に、処理対象の個別ＶＭに対し、重要度が「高」のチェック項目、重要度が「中」のチェック項目及びチェック期限を過ぎたチェック項目についてのみ、チェックを行う。
【０２０２】
ただし、「マスタの変更の反映」というチェック項目については、かかるステップＳＰ４００、ステップＳＰ４０１又はステップＳＰ４０２において行ったマスタＶＭの変更反映の要否判定の結果、マスタＶＭの変更の反映が必要と判断した場合に限り、セキュリティチェックを実行する。
【０２０３】
このセキュリティチェックの方法は、例えば、チェック対象の個別ＶＭのイベントログやsyslogなどのログ情報を参照し、最終リブート日時を取得し、上記ステップＳＰ４００、ステップＳＰ４０１又はステップＳＰ４０２で取得した、マスタＶＭの変更日時以降にリブートが行われているかどうかで判定する。
【０２０４】
このセキュリティチェックのチェック結果が不合格であった場合、セキュリティチェックプログラム７０４は、マスタＶＭの変更日時と、現在時刻とを比較し、指定された期限を過ぎていればアラートを発行する。
【０２０５】
ステップＳＰ４０４及びステップＳＰ４０５は、それぞれ第１の実施の形態におけるステップＳＰ３２９及びステップＳＰ３３０と同様の処理を行った後に、ステップＳＰ４０３で説明した「マスタの変更の反映」のチェック項目についてのチェック処理を実行する。
【０２０６】
以上、本実施の形態のセキュリティ管理方法におけるチェックポリシ管理テーブルのチェック期限の項目は、第１の実施の形態に記載のように、当該期限を経過する前はマスタＶＭ及び個別ＶＭに対する強制的なチェック開始を抑制するための設定値とすることに加え、本実施の形態に記載のように、ＯＳの再起動の有無を繰り返し確認し、対策期限経過後にも未再起動であれば再起動を促す所定の処理（上記ではアラート発行）を開始するための設定値とするものである。
【０２０７】
なお、本実施の形態では、セキュリティチェックプログラム２１３がマスタＶＭの変更を検知した時刻を、マスタＶＭの変更時刻とみなし、その時刻を基点とし、対策期限内に個別ＶＭが再起動されたかどうか判断する例について説明したが、実際のマスタＶＭに変更が生じた日時を基点として、期限切れを判断してもよい。例えば、セキュリティ管理サーバは、マスタＶＭが起動している物理クライアント７０２のハイパバイザプログラム３１０、またはＶＭイメージ管理プログラム８００、またはＶＭ管理サーバからマスタＶＭに対する変更日時を取得し、この変更日時に対策期限を加えた日時を現在日時と比較してもよい。
【０２０８】
（２−４）本実施の形態の効果
以上のように本実施の形態のセキュリティ管理方法によれば、マスタＶＭの構成情報に変更を加えても、既に起動中の仮想クライアントには変更が反映されず、仮想クライアントを再起動した際に、その変更が反映される仮想化技術を適用したネットワークシステム７００に対しても、第１の実施の形態と同様のセキュリティ管理を行うことができる。
【０２０９】
（３）第３の実施の形態
次に、第３の実施の形態について説明する。図１との対応部分に同一符号を付して示す図２４は、第３の実施の形態によるネットワークシステム９００を示す。このネットワークシステム９００は、チェックポリシに設定するチェック対象を、システムの環境の情報から当該システムが自動的に判断する点を除いて第１の実施の形態によるネットワークシステム１と同様に構成されている。
【０２１０】
図２との対応部分に同一符号を付した図２５は、本実施の形態におけるセキュリティ管理サーバ９０１の構成を示す。このセキュリティ管理サーバ９０１は、外部記憶装置２０５に、図２について上述した各種プログラム及び各種情報に加えて、チェック対象設定プログラム１０００が格納されている点と、チェックポリシに設定するチェック対象を、システムの環境の情報から自動的に判断する機能がセキュリティ管理制御プログラム１００１に搭載された点とを除いて第１の実施の形態によるセキュリティ管理サーバ９０１と同様に構成されている。
【０２１１】
チェック対象設定プログラム１０００は、システムの環境の情報から個別ＶＭにおいてカスタマイズ可能な項目と、カスタマイズ不可能な項目とを調査し、個別ＶＭにおいてカスタマイズ不可能な項目ついてはマスタＶＭをチェック対象とし、カスタマイズ可能な項目については個別ＶＭをチェック対象として、チェックポリシ管理テーブル２２０に設定するプログラムである。
【０２１２】
カスタマイズの可否を判断するための環境情報を取得する方法としては、マスタＶＭのレジストリの情報から取得したり、個別ＶＭを利用する利用者の権限を調査する方法などが考えられるが、本実施の形態においては、ＶＭ管理サーバ９０２への問い合わせによって、カスタマイズの可否を判断する。
【０２１３】
一方、図８との対応部分に同一符号を付した図２６は、本実施の形態におけるＶＭ管理サーバ９０２の構成を示す。このＶＭ管理サーバ９０２は、外部記憶装置４０５に、図８について上述した各種プログラム及び各種情報に加え、セキュリティ管理プログラム１００２が格納されている点を除いて第１の実施の形態によるＶＭ管理サーバ１０３と同様に構成されている。
【０２１４】
セキュリティ管理プログラム１００２は、当該ＶＭ管理サーバ９０２で生成する仮想クライアントに対してセキュリティに関する利用制限を設定でき、さらに指示入力装置４０３を用いた利用者からの指示や、ネットワーク１０５経由での他のプログラムからの指示に従い、上記利用制限の情報を返すプログラムである。
【０２１５】
図２７は、本実施の形態によるセキュリティ管理サーバ９０１により表示されるチェックポリシ設定画面１１００を示す。本実施の形態のチェックポリシ設定画面１１００は、チェック対象として「マスタ」、「個別」、「マスタor個別」及び「マスタａｎｄ個別」に加えて「自動」も指定できる点が第１の実施の形態によるチェックポリシ設定画面５００と異なる。チェック対象として「自動」を指定した場合、そのチェック項目については、個別ＶＭでカスタマイズが可能か否かを、セキュリティ管理サーバ９０１のセキュリティ管理制御プログラム１００１がシステムの環境の情報から自動的に判断し、チェック対象を特定する。
【０２１６】
次に、以上のようにチェックポリシに設定するチェック対象を、システムの環境の情報から自動的に判断する処理に関するセキュリティ管理制御プログラム１００１の処理手順について説明する。
【０２１７】
図１２との対応部分に同一符号を付して示す図２８は、本実施の形態によるセキュリティ管理制御処理の処理手順を示す。本実施の形態によるセキュリティ管理制御処理は、ステップＳＰ１０２の処理実行の前に、ステップＳＰ５００及びステップＳＰ５０１の処理を実行する点が第１の実施の形態によるセキュリティ管理制御処理と異なる。
【０２１８】
この場合、セキュリティ管理制御プログラム１００１は、ステップＳＰ５００に進むと、チェックポリシのチェック対象として「自動」が選択されているかを確認し、「自動」が選択されている場合には、ステップＳＰ５０１に進む。またセキュリティ管理制御プログラム１００１は、ステップＳＰ５０１では、チェック対象設定プログラム１０００を実行することによりチェック対象を自動判定し、チェックポリシに設定された「自動」の部分に「マスタ」や「個別」などの値を設定する。
【０２１９】
図２９は、図２８のステップＳＰ５０１において起動されたチェック対象設定プログラム１０００により実行されるチェック対象設定処理の処理手順を示す。
【０２２０】
本実施の形態におけるチェック対象設定プログラム１０００は、まず、チェックポリシを参照し、チェック対象が「自動」の項目をリストアップし（ＳＰ６００）、この後セキュリティ管理プログラム１００２を呼び出し、仮想クライアントの利用制限の情報を取得する（ＳＰ６０１）。
【０２２１】
続いてチェック対象設定プログラム１０００は、ステップＳＰ６０２において、ステップＳＰ６００においてリストアップしたチェック対象が「自動」の各項目について、ステップＳＰ６０３〜ステップＳＰ６０５の処理を繰り返す（ＳＰ６０２）。
【０２２２】
具体的に、チェック対象設定プログラム１０００は、ステップＳＰ６０１で取得した利用制限の情報を参照し、処理対象のチェック項目がカスタマイズ可能か否かを判定する（ＳＰ６０３）。
【０２２３】
そしてチェック対象設定プログラム１０００は、この判定において肯定結果を得ると、そのチェック項目のチェック対象として「個別」を設定し（ＳＰ６０４）、否定結果を得ると、そのチェック項目のチェック対象として「マスタ」を設定する（ＳＰ６０５）。例えばチェック対象設定プログラム１０００は、パスワード付きスクリーンセーバが設定されているか、というチェック項目のチェック対象は、個別ＶＭでのスクリーンセーバの設定が、禁止されていなければ「個別」を、禁止されていれば「マスタ」を設定する。
【０２２４】
そしてチェック対象設定プログラム１０００は、ステップＳＰ６０４又はステップＳＰ６０５の処理を完了すると、この図２９に示すチェック対象設定処理を終了する。
【０２２５】
以上のように本実施の形態によるネットワークシステム９００では、チェックポリシに設定するチェック対象を、システムの環境の情報から自動的に判断して設定するため、第１の実施の形態により得られる効果に加えて、チェックポリシの設定作業を容易化することができるという効果をも得ることができる。
【０２２６】
（４）第４の実施の形態
次に、第４の実施の形態について説明する。本実施の形態では、第３の実施の形態同様、チェックポリシに設定するチェック対象について、システムの環境の情報から自動的に判断する例について説明する。第３の実施の形態では、１つのチェック項目に対してすべてのマスタＶＭに共通する１つのチェック対象しか設定できなかったが、本実施の形態では、１つのチェック項目に対してマスタＶＭ別に異なるチェック対象を指定できる。
【０２２７】
図２４との対応部分に同一符号を付して示す図３０は、第４の実施の形態によるネットワークシステム１２００を示す。このネットワークシステム１２００は、セキュリティ管理サーバ１２０１の構成が異なる点を除いて第３の実施の形態によるネットワークシステム９００と同様に構成されている。
【０２２８】
この場合は、セキュリティ管理サーバ１２０１は、図２６との対応部分に同一符号を付した図３１に示すように、外部記憶装置２０５に格納されたセキュリティ管理制御プログラム１３００、セキュリティチェックプログラム１３０１及びチェック対象設定プログラム１３０２の構成が異なる点と、当該外部記憶装置２０５に、図２について上述した各種プログラム及び各種情報に加えて、チェック対象管理テーブル１３０３が格納されている点とを除いて第３の実施の形態によるセキュリティ管理サーバ９０１と同様に構成されている。
【０２２９】
なお、以下においては、カスタマイズ可否を判断するための環境情報の例として、マスタＶＭのレジストリの情報を参照する例を示す。また本実施の形態におけるセキュリティチェックプログラム１３０１は、チェックポリシにおいてチェック対象が「自動」に設定された項目については、チェック対象管理テーブル１３０３を参照してチェック対象の情報を取得する、という違いのみであるため、処理手順の説明は省略する。
【０２３０】
チェック対象管理テーブル１３０３は、マスタＶＭごとにそれぞれ設定された、チェック項目ごとのチェック対象を管理するためのテーブルであり、図２９に示すように、マシンＩＤ欄１３０３Ａ及び複数のＩＤ欄１３０２Ｂから構成される。
【０２３１】
そしてマシンＩＤ欄１３０３Ａには、チェックポリシにおいてチェック対象が「自動」に設定された各マスタＶＭのマシンＩＤが格納される。またＩＤ欄１３０２Ｂは、チェックポリシにおいて設定された各チェック項目にそれぞれ対応させて設けられており、これらＩＤ欄１３０２Ｂには、それぞれ対応するチェック項目についてそのマスタＶＭに関して設定されたチェック対象（「マスタ」又は「個別」）が格納される。
【０２３２】
図３３は、図２８のステップＳＰ５０１において起動されたチェック対象設定プログラム１３０２により実行されるチェック対象設定処理の処理手順を示す。
【０２３３】
本実施の形態におけるチェック対象設定プログラム１３０２は、まず、チェックポリシを参照し、チェック対象が「自動」の項目をリストアップする（ＳＰ７００）。
【０２３４】
続いてチェック対象設定プログラム１３０２は、個別ＶＭ／マスタＶＭ対応管理テーブル２２１と、クライアント管理テール２２３を参照し、すべてのマスタＶＭの管理情報を取得する（ＳＰ７０１）。
【０２３５】
この後、チェック対象設定プログラム１３０２は、すべてのマスタＶＭに対して、以下に説明するステップＳＰ７０３〜ステップＳＰ７０６の処理を繰り返す（ＳＰ７０２）。
【０２３６】
具体的に、チェック対象設定プログラム１３０２は、ステップＳＰ７００においてリストアップした、チェック対象が「自動」の各項目について、ステップＳＰ７０４〜ステップＳＰ７０６の処理を繰り返す（ＳＰ７０３）。
【０２３７】
すなわち、チェック対象設定プログラム１３０２は、処理対象のマスタＶＭのレジストリの情報を参照して、処理対象の項目がカスタマイズ可能か判定する（ＳＰ７０４）。
【０２３８】
そしてチェック対象設定プログラム１３０２は、この判定において肯定結果を得ると、チェック対象管理テーブル１３０３における該当マスタＶＭの該当チェック項目の欄に「個別」を設定し（ＳＰ７０５）、否定結果を得ると、当該チェック項目の欄に「マスタ」を設定する（ステップ７０６）。
【０２３９】
そしてチェック対象設定プログラム１３０２は、ステップＳＰ７０５又はステップＳＰ７０６の処理を完了すると、この図３３に示すチェック対象設定処理を終了する。
【０２４０】
以上のように本実施の形態によるセキュリティ管理方法によれば、１つのチェック項目に対してマスタＶＭ別に異なるチェック対象を指定できるため、第３の実施の形態により得られる効果に加えて、より詳細なセキュリティ管理を行うことができる。
【産業上の利用可能性】
【０２４１】
本発明は、ネットワーク上の仮想クライアントに対してセキュリティ検査を行う種々の構成のセキュリティ管理装置に広く適用することができる。
【図１】
0005439559.tif 000002
【図２】
0005439559.tif 000003
【図３】
0005439559.tif 000004
【図４】
0005439559.tif 000005
【図５】
0005439559.tif 000006
【図６】
0005439559.tif 000007
【図７】
0005439559.tif 000008
【図８】
0005439559.tif 000009
【図９】
0005439559.tif 000010
【図１０】
0005439559.tif 000011
【図１１】
0005439559.tif 000012
【図１２】
0005439559.tif 000013
【図１３】
0005439559.tif 000014
【図１４】
0005439559.tif 000015
【図１５】
0005439559.tif 000016
【図１６】
0005439559.tif 000017
【図１７】
0005439559.tif 000018
【図１８】
0005439559.tif 000019
【図１９】
0005439559.tif 000020
【図２０】
0005439559.tif 000021
【図２１】
0005439559.tif 000022
【図２２】
0005439559.tif 000023
【図２３】
0005439559.tif 000024
【図２４】
0005439559.tif 000025
【図２５】
0005439559.tif 000026
【図２６】
0005439559.tif 000027
【図２７】
0005439559.tif 000028
【図２８】
0005439559.tif 000029
【図２９】
0005439559.tif 000030
【図３０】
0005439559.tif 000031
【図３１】
0005439559.tif 000032
【図３２】
0005439559.tif 000033
【図３３】
0005439559.tif 000034