IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 株式会社東芝の特許一覧

特開2022-188598情報処理装置、情報処理方法、およびプログラム
<>
  • 特開-情報処理装置、情報処理方法、およびプログラム 図1
  • 特開-情報処理装置、情報処理方法、およびプログラム 図2
  • 特開-情報処理装置、情報処理方法、およびプログラム 図3
  • 特開-情報処理装置、情報処理方法、およびプログラム 図4
  • 特開-情報処理装置、情報処理方法、およびプログラム 図5
  • 特開-情報処理装置、情報処理方法、およびプログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022188598
(43)【公開日】2022-12-21
(54)【発明の名称】情報処理装置、情報処理方法、およびプログラム
(51)【国際特許分類】
   G06F 21/51 20130101AFI20221214BHJP
   G06F 9/455 20060101ALI20221214BHJP
【FI】
G06F21/51
G06F9/455 150
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2021096765
(22)【出願日】2021-06-09
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】100091487
【弁理士】
【氏名又は名称】中村 行孝
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【弁理士】
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100118876
【弁理士】
【氏名又は名称】鈴木 順生
(74)【代理人】
【識別番号】100206243
【弁理士】
【氏名又は名称】片桐 貴士
(72)【発明者】
【氏名】金井 遵
(72)【発明者】
【氏名】上原 龍也
(72)【発明者】
【氏名】佐野 文彦
(72)【発明者】
【氏名】春木 洋美
(57)【要約】
【課題】本発明の一実施形態は、仮想環境ごとに個別のセキュリティポリシーを適用しても、脆弱性を小さくすることが可能な情報処理装置を提供する。
【解決手段】本発明の一実施形態である情報処理装置は、1以上の仮想環境を管理するための1以上の管理部と、前記1以上の管理部を統括する管理統括部と、を備える。前記管理統括部は、前記1以上の仮想環境のいずれかにおいてソフトウェアの実行が検知された場合に、検知された仮想環境を管理する管理部に対し、前記検知された仮想環境における前記ソフトウェアの実行是非の判定を行うように指示を行う。前記管理部は、前記検知された仮想環境内に保存されているファイルを読み込み、前記ファイルに示された情報に基づき、前記検知された仮想環境における前記ソフトウェアの実行是非を判定する。
【選択図】図1
【特許請求の範囲】
【請求項1】
1以上の仮想環境を管理するための1以上の管理部と、
前記1以上の管理部を統括する管理統括部と、
を備え、
前記管理統括部は、前記1以上の仮想環境のいずれかにおいてソフトウェアの実行が検知された場合に、検知された仮想環境を管理する管理部に対し、前記検知された仮想環境における前記ソフトウェアの実行是非の判定を行うように指示を行い、
前記管理部は、
前記検知された仮想環境内に保存されているファイルを読み込み、
前記ファイルに示された情報に基づき、前記検知された仮想環境における前記ソフトウェアの実行是非を判定する、
情報処理装置。
【請求項2】
前記管理統括部は、前記検知された仮想環境を管理する管理部がない場合に、前記検知された仮想環境を管理する管理部を生成する、
請求項1に記載の情報処理装置。
【請求項3】
前記管理統括部は、前記1以上の管理部のうち、所定の条件を満たした管理部を消去する、
請求項1または2に記載の情報処理装置。
【請求項4】
前記管理統括部は、前記1以上の仮想環境のいずれかの消去が検知された場合に、消去された仮想環境を管理する管理部を消去する、
請求項3に記載の情報処理装置。
【請求項5】
前記管理統括部は、前記判定が行われていない期間が所定時間長を超えた管理部を消去する、
請求項3に記載の情報処理装置。
【請求項6】
前記管理統括部は、前記管理部の数が上限を超えた場合に、前記判定が行われていない期間が最も長い管理部を消去する、
請求項3に記載の情報処理装置。
【請求項7】
前記管理統括部は、前記指示を行った管理部からの応答がなくなった場合に、エラーを出力する、
請求項1ないし6のいずれか一項に記載の情報処理装置。
【請求項8】
前記管理統括部は、前記指示を行った管理部からの応答がなくなった場合に、前記指示を行った管理部の代わりに、前記ソフトウェアの実行可否を判定する、
請求項1ないし7のいずれか一項に記載の情報処理装置。
【請求項9】
前記判定の結果に基づき、前記仮想環境における前記ソフトウェアの実行を制御するソフトウェア制御部
をさらに備える請求項1ないし8のいずれか一項に記載の情報処理装置。
【請求項10】
1以上の仮想環境を管理するための1以上の管理部を生成するステップと、
前記1以上の仮想環境のいずれかにおいてソフトウェアの実行が検知された場合に、検知された仮想環境を管理する管理部に対し、前記検知された仮想環境における前記ソフトウェアの実行是非の判定を行うように指示を行うステップと、
前記管理部による、前記検知された仮想環境内に保存されているファイルを読み込むステップと、
前記管理部による、前記ファイルに示された情報に基づき、前記検知された仮想環境における前記ソフトウェアの実行是非を判定するステップと、
を備える情報処理方法。
【請求項11】
1以上の仮想環境を管理するための1以上の管理部を生成するステップと、
前記1以上の仮想環境のいずれかにおいてソフトウェアの実行が検知された場合に、検知された仮想環境を管理する管理部に対し、前記検知された仮想環境における前記ソフトウェアの実行是非の判定を行うように指示を行うステップと、
前記管理部による、前記検知された仮想環境内に保存されているファイルを読み込むステップと、
前記管理部による、前記ファイルに示された情報に基づき、前記検知された仮想環境における前記ソフトウェアの実行是非を判定するステップと、
をコンピュータによって実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
仮想化技術の一つとして、コンテナ型仮想化技術がある。コンテナ型仮想化技術では、仮想環境(コンテナ)におけるアプリケーションの実行をホストOS(operating system)が制御する。例えば、仮想環境においてアプリケーションを起動しようとすると、ホストOSのカーネルに対する呼び出し(システムコール)が行われ、カーネルがシステムコールを処理することにより、アプリケーションが動作する。ゆえに、コンテナ型仮想化技術では、複数の仮想環境がホスト環境のリソースを共有することになる。
【0003】
しかし、アプリケーションの実行権限を仮想環境ごとに変えたいという要望も多い。そのためには、ホスト環境は、アプリケーションの起動時においていずれの仮想環境において起動されたかを確認し、確認された仮想環境のセキュリティに関する設定(言い換えれば、セキュリティポリシー)に基づき、当該アプリケーションの実行を許可するか否かを決定する必要がある。
【0004】
管理などの都合上、セキュリティに関する設定が示されたファイルを、ホストではなく、仮想環境に保存したい場合もあり得る。その場合、ホストが当該ファイルを読み込む必要があるが、仮想環境において当該ファイルに不正な処理が行われていた場合、ホスト環境に問題が生じる恐れがある。ゆえに、そのような対応は、脆弱性の要因となり得る。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開第6840063号公報
【特許文献2】特許第5126447号公報
【特許文献3】特許第5423063号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明の一実施形態は、仮想環境ごとに個別のセキュリティポリシーを適用しても、脆弱性を小さくすることが可能な情報処理装置を提供する。
【課題を解決するための手段】
【0007】
本発明の一実施形態である情報処理装置は、1以上の仮想環境を管理するための1以上の管理部と、前記1以上の管理部を統括する管理統括部と、を備える。前記管理統括部は、前記1以上の仮想環境のいずれかにおいてソフトウェアの実行が検知された場合に、検知された仮想環境を管理する管理部に対し、前記検知された仮想環境における前記ソフトウェアの実行是非の判定を行うように指示を行う。前記管理部は、前記検知された仮想環境内に保存されているファイルを読み込み、前記ファイルに示された情報に基づき、前記検知された仮想環境における前記ソフトウェアの実行是非を判定する。
【図面の簡単な説明】
【0008】
図1】本発明の一実施形態に係る情報処理装置の一例を示すブロック図。
図2】ソフトウェアの実行是非の判定に用いられる情報の一例を示す図。
図3】管理部と仮想環境の対応関係を示すデータの一例を示す図。
図4】ソフトウェアの実行制御に関する処理の概略フローチャート。
図5】管理部の消去に関する処理の概略フローチャート。
図6】本発明の一実施形態におけるハードウェア構成の一例を示すブロック図。
【発明を実施するための形態】
【0009】
以下、図面を参照しながら、本発明の実施形態について説明する。
【0010】
(本発明の一実施形態)
図1は、本発明の一実施形態に係る情報処理装置の一例を示すブロック図である。第1の実施形態に関する情報処理装置1は、仮想環境生成部11と、ソフトウェア制御部12と、管理統括部13と、管理部14と、記憶部と、を備える。なお、記憶部は、都合上、図示していない。ソフトウェア制御部12は、起動検知部121と、実行制御部122と、を備える。管理統括部13は、指示部131と、生成部132と、消去部133と、記録部134と、エラー処理部135と、を備える。管理部14は、読込部141と、実行判定部142と、を備える。なお、図1の符号のアルファベットは、同じ構成要素を区別するために用いている。
【0011】
なお、図1に示した構成要素は、本実施形態の処理を説明するためのものであり、その他の構成要素が存在していてもよい。また、図1に示した構成要素が複数に分かれていてもよいし、複数の構成要素が一つにまとめられていてもよい。
【0012】
本実施形態の情報処理装置1は、1以上の仮想環境を提供可能な装置である。仮想環境の実現および提供は、従来手法と同様でよく、例えば、所定の仮想環境イメージファイルを用いて仮想環境を生成することが可能である。仮想環境イメージファイルは、予め情報処理装置1の記憶部に保存しておいてもよいし、仮想環境の実現時に仮想環境イメージファイルを提供するレポジトリサーバから取得してもよい。
【0013】
なお、仮想環境イメージファイルには、仮想環境に関するファイルが含まれており、例えば、仮想環境設定ファイル、仮想環境セキュリティファイル、仮想環境ファイルなどが含まれ得る。仮想環境設定ファイルは、仮想環境を実行するために必要な情報が記載されたファイルである。例えば、仮想環境で実行するOSの名前やソフトウェアの名前が記載されている。仮想環境セキュリティファイルは、仮想環境のセキュリティに関する情報を示すものである。仮想環境セキュリティファイルは、例えば、仮想環境での実行を許可するプログラムを示す許可リストでもよいし、仮想環境での実行を禁止するプログラムを示す不許可リストでもよい。以降では、仮想環境セキュリティファイルを、単に、セキュリティファイルと記載する。仮想環境ファイルは、共有ライブラリ、スクリプトファイル、ソフトウェアの設定ファイルなど仮想環境において実行されるファイルである。情報処理装置1は、仮想環境イメージファイルに含まれるこれらのファイルを記憶部に展開することにより、仮想環境を生成する。
【0014】
情報処理装置1によって生成された仮想環境では、ソフトウェアが実行可能である。ただし、情報処理装置1は、仮想環境においてソフトウェアの起動を検知し、当該ソフトウェアを実行してもよいかどうかをセキュリティファイルに基づいて確認する。そして、実行してもよいことが確認されたソフトウェアは実行され、実行してもよいことが確認されなかったソフトウェアは終了させられる。このように仮想環境におけるソフトウェアの実行制御を行うことにより、仮想環境を保護する。
【0015】
なお、ソフトウェアは用途などによってアプリケーションとも称されるが、本開示ではこれらを区別せずに、ソフトウェアという用語を用いる。すなわち、アプリケーションは、ソフトウェアに含まれるものとする。
【0016】
なお、仮想環境のソフトウェアは、実行のために、例えば、カーネル、デバイスドライバなどといったホスト環境のリソースを利用する。そのため、ソフトウェアの実行の検知および制御が可能である。
【0017】
本実施形態では、さらに、実行してもよいソフトウェアを仮想環境ごとに変更可能とする。そのため、セキュリティファイルは、仮想環境ごとに用意される。また、セキュリティファイルは、仮想環境内に保存されているものとする。
【0018】
情報処理装置1の各構成要素の処理について説明する。
【0019】
仮想環境生成部11は、仮想環境イメージファイルを記憶部に展開することにより、仮想環境111を生成する。例えば、コンテナ型仮想化技術を用いる場合は、仮想環境生成部11はコンテナエンジンに相当し、仮想環境111はコンテナに相当する。なお、情報処理装置1が用いる仮想化技術がコンテナ型仮想化技術に限られるわけではなく、同様の処理を行うことができる仮想化技術が用いられてもよい。生成される仮想環境は、図1に示す仮想環境111Aから111Cのように複数であってもよいし、一つであってもよい。
【0020】
仮想環境イメージファイルは仮想環境111ごとに異なってよく、仮想環境生成部11は、ユーザから指定された仮想環境イメージファイルを展開してもよいし、ユーザの情報に基づいて複数の仮想環境イメージファイルから一つを選択してもよい。そのため、生成された仮想環境111はそれぞれ異なり得る。また、各仮想環境111内のセキュリティファイルも異なり得るため、セキュリティレベルの異なる複数の仮想環境111が同時に存在し得る。
【0021】
ソフトウェア制御部12は、仮想環境111で実行されるソフトウェアを制御する。仮想環境111においてソフトウェアが実行されると、ソフトウェア制御部12の起動検知部121が当該実行を検知する。当該検知は、様々な手段により実現が可能である。例えば、フックと呼ばれるOSの仕組みを用いることにより、ソフトウェアの実行を検知することができる。
【0022】
なお、仮想環境111の生成も、ソフトウェアによる実行であるため、ソフトウェア制御部12は、仮想環境111の生成も検知することができる。なお、仮想環境111の生成は、ソフトウェア制御部12ではなく、管理統括部13が検知してもよい。
【0023】
また、起動検知部121は、検知されたソフトウェアに関する情報を取得する。例えば、ソフトウェアの検知手法と同様、フックを用いることにより、ソフトウェアのパス、ソフトウェアが実行された仮想環境111の識別子などの情報を取得することができる。取得されたソフトウェアの情報は、管理統括部13および管理部14に送信され、ソフトウェアの実行是非の判定に用いられる。
【0024】
図2は、ソフトウェアの実行是非の判定に用いられる情報の一例を示す図である。図2の例では、ソフトウェアのパスと、ソフトウェアのハッシュ値と、が示されている。ソフトウェアのハッシュ値は、パスなどのソフトウェアの情報に基づいて生成する。なお、ハッシュ値の生成は、ソフトウェア制御部12が行ってもよいし、管理統括部13または管理部14が行ってもよい。
【0025】
ソフトウェア制御部12の実行制御部122は、ソフトウェアの実行是非の判定の結果に基づき、仮想環境111におけるソフトウェアの実行を制御する。すなわち、仮想環境111において起動されたソフトウェアが不適切と判定された場合は当該ソフトウェアの実行を終了し、仮想環境111において起動されたソフトウェアが適切と判定された場合は当該ソフトウェアの実行を終了しない。なお、ソフトウェア制御部12は、ソフトウェアの起動処理の途中において、実行是非の判定のためにソフトウェアの一時停止を行ってもよい。
【0026】
管理統括部13および管理部14は、仮想環境111を管理し、ソフトウェア制御部12からソフトウェアの情報が送られてくると、言い換えれば、1以上の仮想環境111のいずれかにおいてソフトウェアの実行が検知された場合に、当該ソフトウェアの実行是非の判定およびそのための処理を行う。
【0027】
管理統括部13は、管理部14を統括し、管理部14を介して仮想環境111を管理する。例えば、管理統括部13の指示部131は、1以上の仮想環境111のいずれかにおいてソフトウェアの実行が検知された場合に、検知された仮想環境111を管理する管理部14に対し、検知された仮想環境111におけるソフトウェアの実行是非を判定するように指示を行う。
【0028】
管理部14は、予め対応づけられた仮想環境111を管理する。仮想環境111と管理部14は、基本的に、1対1で対応づけられる。管理部14が複数の仮想環境111を管理することもできるが、各仮想環境111の動作の安定性を担保する観点から、一つの管理部14が管理する仮想環境111は少ないほうが好ましい。例えば、仮想環境111Aと仮想環境111Bを管理部14Aが管理すると、仮想環境111Aが原因で管理部14Aに不具合が生じたときに、無関係の仮想環境111Bに影響が及んでしまう。逆に、仮想環境111Aを管理部14Aが管理し、仮想環境111Bを管理部14Bが管理していた場合に、仮想環境111Aにおいてマルウェアなどの悪意のあるソフトウェアがセキュリティファイルを不正に改ざんするなどの攻撃を行ったとしても、当該攻撃の被害を管理部14Aだけに留めるといった対応を行うことも可能である。
【0029】
そのため、管理統括部13の生成部132は、管理部14の生成を行う。言い換えれば、管理部14に相当するプロセスを生成する。例えば、ソフトウェア制御部12によって仮想環境111の生成が検知された時点で、生成部132は、生成された仮想環境111の管理を行う管理部14を新たに生成してもよい。あるいは、生成部132は、検知された仮想環境111を管理する管理部14がないことが判明した時点で、検知された仮想環境111を管理する管理部14を生成してもよい。
【0030】
しかし、仮想環境111ごとに管理部14を生成すると、管理部14の数は、仮想環境111の数に応じて増加してしまう。多数の管理部14が存在すると情報処理装置1の負荷は大きくなる。言い換えると、管理部14に相当するプロセスは、存在しているだけで情報処理装置1のメモリ、CPU(Computing Processor Unit)使用率などのリソースを消費してしまうため、管理部14に相当するプロセスが多数存在すると、リソースが枯渇してしまう。ゆえに、仮想環境111に対する管理が必要な期間だけ、管理部14が存在しているほうが好ましい。そこで、生成部132は、仮想環境111が生成された時点では当該仮想環境111を管理する管理部14を生成せず、検知された仮想環境111を管理する管理部14がないことが判明した時点で、当該仮想環境111を管理する管理部14を生成することが好ましい。
【0031】
同様に、仮想環境111に対する管理が不要と判定された場合には、当該仮想環境111を管理する管理部14を消去して、情報処理装置1のリソースを解放するほうが好ましい。そのため、管理統括部13の消去部133が、所定の条件を満たした管理部14を消去してもよい。当該条件は、情報処理装置1のスペック、要求される仕様などに基づき、適宜に定めてよい。例えば、仮想環境111が消去されたことを検知した場合や、仮想環境111に不具合が生じたと認定された場合に、消去部133は、当該仮想環境111を管理する管理部14を消去してもよい。また、判定が行われていない期間が所定時間長を超えた管理部14の消去が行われてもよい。
【0032】
また、管理部14の数が上限を超えた場合に、管理部14を少なくとも一つ選択し、選択された管理部14を消去することにより、管理部14の数を上限以内に抑えてもよい。選択基準は、適宜に定めてよい。例えば、管理統括部13の記録部134が、判定を行った時刻を記録しておき、判定が行われていない期間が最も長い管理部14を消去してもよい。これにより、情報処理装置1のリソースが下限を下回ることを抑えてもよい。当該上限は、情報処理装置1のスペックに応じて、適宜に定めてよい。
【0033】
仮想環境111の消去は、ソフトウェア制御部12によって、仮想環境111の生成と同様に検知することができる。また、例えば、情報処理装置1のプロセスを監視し、仮想環境111の生成時に認識された仮想環境111に対応するプロセスが終了したことを検知することにより、仮想環境111の消去を検知してもよい。また、例えば、仮想環境111がOSの名前空間機能を利用する場合には、仮想環境111の生成時に認識された仮想環境111に対応する名前空間が削除されたことを検知してもよい。また、仮想環境111の生成のために展開された仮想環境イメージファイルが削除されていないかを定期的に確認してもよい。なお、ソフトウェア制御部12ではなく、管理統括部13が仮想環境111の消去を検知してもよい。また、管理部14が、定期的に管理対象の仮想環境111に対し、定期通信などの死活監視を行い、仮想環境111に不具合が生じていないかを確認してもよい。
【0034】
管理部14と仮想環境111の対応関係は、記録部134によって、管理部14と仮想環境111の対応関係を示すデータに記録される。図3は、管理部14と仮想環境111の対応関係を示すデータの一例を示す図である。図3の例の表は、仮想環境111を示す識別子と、管理部14を示す識別子と、を示しており、同じ行に含まれる仮想環境111と管理部14が対応関係にある。なお、図3の例では、前述の判定を行った時刻も管理部14に対応付けて記録されている。なお、当該時刻は、別のデータに記録されていてもよい。
【0035】
管理部14と仮想環境111の対応関係を示すデータは、仮想環境111から対応する管理部14を特定するのに用いられる。ソフトウェアの実行が検知されてソフトウェア制御部12から、ソフトウェアに関する情報を受信すると、管理統括部13の指示部131は、対応関係を示すデータを参照し、ソフトウェアの実行が検知された仮想環境111を管理する管理部14を特定する。そのため、ソフトウェア制御部12から送信されるソフトウェアに関する情報には、管理統括部13が管理部14を選出できるよう、仮想環境111の識別子など仮想環境111を識別できる情報が含まれる。
【0036】
また、記録部134は、管理部14の生成時および消去時において、対応関係を示すデータの編集を行う。管理部14の生成時には、図3に示したように、生成された管理部14を示す識別子を、対応する仮想環境111の識別子との対応関係が認識できるように当該データに記録する。管理部14の消去時には、消去された管理部14を示す識別子を当該データから削除する。
【0037】
管理部14の読込部141は、管理する仮想環境111のセキュリティファイルにアクセスし、仮想環境111のセキュリティに関する情報を読み込む。また、管理部14の実行判定部142は、仮想環境111においてソフトウェアが実行されたときに、当該ソフトウェアの実行が許可または不許可とされているかを、セキュリティファイルに基づいて判定する。例えば、管理統括部13からのソフトウェア情報に示されたパスと、セキュリティファイルに示されたパスと、が一致しているかに基づいて判定することができる。また、仮想環境111から取得した情報に基づいてハッシュ値を算出し、管理統括部13からのソフトウェア情報に示されたハッシュ値と照合して、判定を行うことができる。そのため、ソフトウェア制御部12から送信されるソフトウェアに関する情報には、ソフトウェアのパスなど、判定を行うために必要な情報が含まれる。
【0038】
なお、管理部14の判定が正常に行われない場合も想定される。そのため、管理統括部13のエラー処理部135は、管理部14の判定が正常に行われない場合に、エラー処理を行う。管理部14の判定が正常に行われなかった原因は様々であることが想定されるが、原因を特に限る必要はなく、単に、管理部14から判定の結果を所定時間内に取得できなかった場合に、エラー処理を行うとしてよい。エラー処理部135は、例えば、ソフトウェア制御部12などの外部にエラーを送信してもよい。また、エラー処理部135は、管理部14の代わりに、判定を行ってもよい。例えば、いずれの仮想環境111であっても、所定のソフトウェアだけを許可し、その他は拒絶するといった判定を行ってもよい。あるいは、いずれのソフトウェアであっても一律に許可または不許可と判定してもよい。なお、管理部14の代理で判定を行う場合も、仮想環境111ごとに判定結果が異なっていてもよい。このようにして、管理部14または管理統括部13が判定結果をソフトウェア制御部12に返すことにより、仮想環境111におけるソフトウェアの実行を制御することができる。
【0039】
次に、情報処理装置1の各処理の流れについて説明する。図4は、ソフトウェアの実行制御に関する処理の概略フローチャートである。
【0040】
ソフトウェア制御部12の起動検知部121が仮想環境111においてソフトウェアの起動を検知し、仮想環境111の識別子、ソフトウェアのパスなどの情報を取得する(S101)。管理統括部13の指示部131は、対応関係を示すデータを参照し、検知された仮想環境111を管理する管理部14が存在するかを確認する(S102)。
【0041】
当該データに管理部14が記載されていない場合(S103のNO)は、管理統括部13は、対応する管理部14の生成処理を行う(S104)。対応する管理部14が正常に生成された場合(S105のYES)は、管理統括部13の記録部134が、生成された管理部14を、当該データに記録する(S106)。対応する管理部14が正常に生成されなかった場合(S105のNO)は、後述するエラー処理が行われる(S110)。
【0042】
管理部14が記載されている場合(S103のYES)、および、生成された管理部14の記録(S106)が行われた後は、管理統括部13の指示部131が、検知された仮想環境111に対応する管理部14に対し、実行是非の判定を行うよう指示する(S107)。
【0043】
管理部14が正常に判定可能な場合(S108のYES)は、管理部14の読込部141が仮想環境111にアクセスしてセキュリティファイルを読み込み、管理部14の実行判定部142がセキュリティファイルに基づいてソフトウェアの実施是非を判定する(S109)。判定結果は、管理統括部13を介して判定結果をソフトウェア制御部12に渡される。
【0044】
一方、対応する管理部14が正常に生成されなかった場合(S105のNO)、および、管理部14が正常に判定可能でなかった場合(S108のNO)は、エラー処理が行われる(S110)。例えば、管理部14からの返答がない場合、仮想環境111にアクセスできなかったという返答を管理部14から受け取った場合、仮想環境111のセキュリティファイルを読み込めなったという返答を管理部14から受け取った場合などが、管理部14が正常に判定可能でなかった場合に含まれる。
【0045】
エラー処理としては、例えば、管理部14の代わりに、ソフトウェアの実行是非を判定してもよい。あるいは、ソフトウェアの実行是非を判定せずに、単にエラーを返してもよい。エラー処理の結果は、ソフトウェア制御部12に渡される。
【0046】
なお、エラー処理において、判定などの指示(S107)を再実行してもよい。処理負荷などを原因とする一時的な不具合によって判定が失敗することもあり得るため、数回エラーが続いたときに、エラー処理を行うとしてもよい。
【0047】
ソフトウェア制御部12の実行制御部122は、管理統括部13からの結果に基づき、ソフトウェアの実行を制御する(S111)。なお、管理統括部13からエラーを取得した場合には、所定の制御を行えばよい。また、エラーを受け取った場合、判定結果が実行不可であった場合は、警告メッセージを出力するプログラムを実行してもよい。このようにして実行制御が行われて、本フローは終了する。
【0048】
図5は、管理部14の消去に関する処理の概略フローチャートである。まず、管理統括部13が管理部14の消去につながる情報を取得する(S201)。当該情報は、例えば、ソフトウェア制御部12などが仮想環境111の消去を検知したことを示す情報でもよい。また、管理部14が仮想環境111との通信が取れなくなったことを示す情報でもよい。また、仮想環境111に対するアクセスが行われなくなってから一定期間が経過したことを示す情報でもよい。管理統括部13は、対応関係を示すデータを参照し、検知された仮想環境111を管理する管理部14が存在するかを確認する(S102)。
【0049】
当該データに管理部14が記載されていない場合は(S203のNO)、既に管理部14が消去されているため、フローは終了する。例えば、仮想環境111に対するアクセスが行われなくなってから一定期間が経過したので管理部14を消去した後に、消去された管理部14と対応する仮想環境111の消去を検知した場合が該当する。
【0050】
当該データに管理部14が記載されている場合(S203のYES)、管理統括部13の消去部133は、管理部14を消去する(S204)。そして、管理統括部13は、対応関係を示すデータから消去された管理部14を削除する。このようにして、不要となった管理部14の消去が行われてリソースの消費を抑えることができ、対応関係を示すデータの更新が行われてソフトウェアの実施是非の判定において不具合が生じることを防ぐことができる。
【0051】
以上のように、本実施形態の情報処理装置1は、複数の仮想環境111のセキュリティポリシーを個別に変えることが可能である。さらに、本実施形態では、管理部14を仮想環境ごとに生成する。これにより、例えば、ある仮想環境に保存されたセキュリティファイルに不正な処理が行われていたことによる不具合が他の仮想環境111の管理に影響することを防ぐことができる。ゆえに、従来よりも、脆弱性が改善されている。また、管理が必要な期間において管理部14が存在するように制御することにより、情報処理装置1のリソースが枯渇することを防ぐことができる。
【0052】
なお、上記の実施形態の少なくとも一部は、プロセッサ、メモリなどを実装しているIC(Integrated Circuit:集積回路)などの専用の電子回路(すなわちハードウェア)により実現されてもよい。また、上記の実施形態の少なくとも一部は、ソフトウェア(プログラム)を実行することにより、実現されてもよい。例えば、汎用のコンピュータ装置を基本ハードウェアとして用い、コンピュータ装置に搭載されたCPUなどのプロセッサにプログラムを実行させることにより、上記の実施形態の処理を実現することが可能である。すなわち、図1に示された各部は、プロセスとして実現され得る。
【0053】
例えば、コンピュータが読み取り可能な記憶媒体に記憶された専用のソフトウェアをコンピュータが読み出すことにより、コンピュータを上記の実施形態の装置とすることができる。記憶媒体の種類は特に限定されるものではない。また、通信ネットワークを介してダウンロードされた専用のソフトウェアをコンピュータがインストールすることにより、コンピュータを上記の実施形態の装置とすることができる。こうして、ソフトウェアによる情報処理が、ハードウェア資源を用いて、具体的に実装される。
【0054】
図6は、本発明の一実施形態におけるハードウェア構成の一例を示すブロック図である。情報処理装置1は、プロセッサ21と、主記憶装置22と、補助記憶装置23と、ネットワークインタフェース24と、デバイスインタフェース25と、を備え、これらがバス26を介して接続されたコンピュータ装置2として実現できる。情報処理装置1の記憶部は、主記憶装置22または補助記憶装置23により実現可能であり、管理統括部13などの構成要素は、プロセッサ21により実現可能である。
【0055】
なお、図6のコンピュータ装置2は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図6は、1台のコンピュータ装置2が示されているが、ソフトウェアが複数のコンピュータ装置にインストールされて、当該複数のコンピュータ装置それぞれがソフトウェアの異なる一部の処理を実行してもよい。
【0056】
プロセッサ21は、コンピュータの制御装置および演算装置を含む電子回路である。プロセッサ21は、コンピュータ装置2の内部構成の各装置などから入力されたデータやプログラムに基づいて演算処理を行い、演算結果や制御信号を各装置などに出力する。具体的には、プロセッサ21は、コンピュータ装置2のOSやソフトウェアなどを実行し、コンピュータ装置2を構成する各装置を制御する。プロセッサ21は、上記の処理を行うことができれば特に限られるものではない。
【0057】
主記憶装置22は、プロセッサ21が実行する命令および各種データなどを記憶する記憶装置であり、主記憶装置22に記憶された情報がプロセッサ21により直接読み出される。補助記憶装置23は、主記憶装置22以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、メモリでもストレージでもよい。また、メモリには、揮発性メモリと、不揮発性メモリがあるが、いずれでもよい。
【0058】
ネットワークインタフェース24は、無線または有線により、通信ネットワーク3に接続するためのインタフェースである。ネットワークインタフェース24は、既存の通信規格に適合したものを用いればよい。ネットワークインタフェース24により、通信ネットワーク3を介して通信接続された外部装置4Aと情報のやり取りが行われてもよい。
【0059】
デバイスインタフェース25は、外部装置4Bと直接接続するUSBなどのインタフェースである。外部装置4Bは、外部記憶媒体でもよいし、データベースなどのストレージ装置でもよい。
【0060】
外部装置4Aおよび4Bは出力装置でもよい。出力装置は、例えば、画像を表示するための表示装置でもよいし、音声などを出力する装置などでもよい。例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、スピーカなどがあるが、これらに限られるものではない。
【0061】
なお、外部装置4Aおよび4Bは入力装置でもよい。入力装置は、キーボード、マウス、タッチパネルなどのデバイスを備え、これらのデバイスにより入力された情報をコンピュータ装置2に与える。入力装置からの信号はプロセッサ21に出力される。
【0062】
上記に、本発明の一実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、移行を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0063】
1 情報処理装置
11 仮想環境生成部
111(111A、111B、111C) 仮想環境
12 ソフトウェア制御部
121 起動検知部
122 実行制御部
13 管理統括部
131 指示部
132 生成部
133 消去部
134 記録部
135 エラー処理部
14(14A、14B、14C) 管理部
141(141A、141B、141C) 読込部
142(142A、142B、142C) 実行判定部
2 コンピュータ装置
21 プロセッサ
22 主記憶装置
23 補助記憶装置
24 ネットワークインタフェース
25 デバイスインタフェース
26 バス
3 通信ネットワーク
4Aおよび4B 外部装置
図1
図2
図3
図4
図5
図6