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

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

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

特開2022-190970情報処理装置、情報処理方法、およびプログラム
<>
  • 特開-情報処理装置、情報処理方法、およびプログラム 図1
  • 特開-情報処理装置、情報処理方法、およびプログラム 図2
  • 特開-情報処理装置、情報処理方法、およびプログラム 図3
  • 特開-情報処理装置、情報処理方法、およびプログラム 図4
  • 特開-情報処理装置、情報処理方法、およびプログラム 図5
  • 特開-情報処理装置、情報処理方法、およびプログラム 図6
  • 特開-情報処理装置、情報処理方法、およびプログラム 図7
  • 特開-情報処理装置、情報処理方法、およびプログラム 図8
  • 特開-情報処理装置、情報処理方法、およびプログラム 図9
  • 特開-情報処理装置、情報処理方法、およびプログラム 図10
  • 特開-情報処理装置、情報処理方法、およびプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022190970
(43)【公開日】2022-12-27
(54)【発明の名称】情報処理装置、情報処理方法、およびプログラム
(51)【国際特許分類】
   G06F 21/51 20130101AFI20221220BHJP
   G06F 21/64 20130101ALI20221220BHJP
   G06F 8/60 20180101ALI20221220BHJP
   G06F 9/445 20180101ALI20221220BHJP
【FI】
G06F21/51
G06F21/64
G06F8/60
G06F9/445
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2021099531
(22)【出願日】2021-06-15
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】100091487
【弁理士】
【氏名又は名称】中村 行孝
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【弁理士】
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100118876
【弁理士】
【氏名又は名称】鈴木 順生
(74)【代理人】
【識別番号】100206243
【弁理士】
【氏名又は名称】片桐 貴士
(72)【発明者】
【氏名】春木 洋美
(72)【発明者】
【氏名】金井 遵
(72)【発明者】
【氏名】上原 龍也
(72)【発明者】
【氏名】佐野 文彦
(72)【発明者】
【氏名】出口 典孝
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AA07
5B376AE12
5B376AE51
5B376EA17
(57)【要約】
【課題】本発明の一実施形態は、仮想環境ごとに個別のセキュリティポリシーを適用しても、脆弱性を小さくすることが可能な情報処理装置を提供する。
【解決手段】本発明の一実施形態である情報処理装置は、展開部と、仮想環境生成部と、記録部と、管理部と、正常判定部と、を備える。展開部は、イメージファイルを展開し、ファイル群を生成する。仮想環境生成部は、当該ファイル群を用いて仮想環境を生成する。記録部は、ファイル群に含まれる第1ファイルの情報を記録する。管理部は、仮想環境内に保存されている第1ファイルにアクセスし、当該アクセスにより取得された情報に基づき、仮想環境において実行が検知されたソフトウェアの実行是非を判定する。正常判定部は、当該アクセスにより取得された情報と、記録された第1ファイルの情報と、の相違に基づき、第1ファイルが正常であるかどうかを判定する。
【選択図】図1
【特許請求の範囲】
【請求項1】
イメージファイルを展開し、仮想環境に用いられるファイル群を生成する展開部と、
前記ファイル群を用いて前記仮想環境を生成する仮想環境生成部と、
前記ファイル群に含まれる第1ファイルの情報を記録する記録部と、
前記仮想環境内に保存されている前記第1ファイルにアクセスし、前記第1ファイルにアクセスしたことにより取得された情報に基づき、前記仮想環境において実行が検知されたソフトウェアの実行是非を判定する管理部と、
前記第1ファイルにアクセスしたことにより取得された情報と、記録された前記第1ファイルの情報と、の相違に基づき、前記第1ファイルが正常であるかどうかを判定する正常判定部と、
を備える情報処理装置。
【請求項2】
前記第1ファイルが正常と判定されなかった場合、または、前記ソフトウェアが実行されてもよいと判定されなかった場合には、前記仮想環境において前記ソフトウェアが実行されないように制御するソフトウェア制御部
をさらに備える請求項1に記載の情報処理装置。
【請求項3】
前記正常判定部は、前記第1ファイルが存在するという情報が記録され、かつ、前記第1ファイルが存在しないという情報が取得されたときに、前記第1ファイルは正常でないと判定する、
請求項1または2に記載の情報処理装置。
【請求項4】
前記正常判定部は、前記第1ファイルの記録されたパス名および取得されたパス名が異なるときに、前記第1ファイルは正常でないと判定する、
請求項1ないし3のいずれか一項に記載の情報処理装置。
【請求項5】
前記正常判定部は、前記第1ファイルの記録されたハッシュ値および取得されたハッシュ値が異なるとき、または、前記第1ファイルの記録されたハッシュ値および取得された情報に基づいて算出されたハッシュ値が異なるときに、前記第1ファイルは正常でないと判定する、
請求項1ないし4のいずれか一項に記載の情報処理装置。
【請求項6】
前記仮想環境におけるソフトウェアの実行を検知する検知部、
をさらに備え、
前記管理部が、前記実行が検知されたときに、前記第1ファイルの情報を取得する、
請求項1ないし5のいずれか一項に記載の情報処理装置。
【請求項7】
前記仮想環境におけるファイルの削除を検知する検知部、
をさらに備え、
前記正常判定部は、前記第1ファイルの削除が検知され、かつ、前記第1ファイルが存在するという情報が記録されているときに、前記第1ファイルは正常でないと判定する、
請求項1ないし6のいずれか一項に記載の情報処理装置。
【請求項8】
前記管理部を生成する管理統括部
をさらに備え、
前記管理統括部は、生成された仮想環境を管理する管理部がない場合に、生成された仮想環境を管理する管理部を生成する、
請求項1ないし7のいずれか一項に記載の情報処理装置。
【請求項9】
前記管理統括部は、生成された仮想環境を管理する管理部がない場合でも、生成された仮想環境に前記第1ファイルが存在するという情報が記録されていないときは、仮想環境に対応する管理部を生成しない、
請求項8に記載の情報処理装置。
【請求項10】
前記管理部が、定期的に、前記第1ファイルの情報を取得する、
請求項1ないし9のいずれか一項に記載の情報処理装置。
【請求項11】
イメージファイルを展開し、仮想環境に用いられるファイル群を生成する展開部と、
前記ファイル群を用いて前記仮想環境を生成する仮想環境生成部と、
前記ファイル群に含まれる第1ファイルの情報を記録する記録部と、
前記ファイル群に含まれる第1ファイルを保存する記録部と、
前記第1ファイルに示された情報に基づき、前記仮想環境において実行が検知されたソフトウェアの実行是非を判定する管理部と
を備える情報処理装置。
【請求項12】
イメージファイルを展開し、仮想環境に用いられるファイル群を生成するステップと、
前記ファイル群を用いて前記仮想環境を生成するステップと、
前記ファイル群に含まれる第1ファイルの情報を記録するステップと、
前記仮想環境内に保存されている前記第1ファイルにアクセスするステップと、
前記第1ファイルにアクセスしたことにより取得された情報に基づき、前記仮想環境において実行が検知されたソフトウェアの実行是非を判定するステップと、
前記第1ファイルにアクセスしたことにより取得された情報と、記録された前記第1ファイルの情報と、の相違に基づき、前記第1ファイルが正常であるかどうかを判定するステップと、
を備える情報処理方法。
【請求項13】
イメージファイルを展開し、仮想環境に用いられるファイル群を生成するステップと、
前記ファイル群を用いて前記仮想環境を生成するステップと、
前記ファイル群に含まれる第1ファイルの情報を記録するステップと、
前記仮想環境内に保存されている前記第1ファイルにアクセスするステップと、
前記第1ファイルにアクセスしたことにより取得された情報に基づき、前記仮想環境において実行が検知されたソフトウェアの実行是非を判定するステップと、
前記第1ファイルにアクセスしたことにより取得された情報と、記録された前記第1ファイルの情報と、の相違に基づき、前記第1ファイルが正常であるかどうかを判定するステップと、
をコンピュータによって実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
仮想化技術の一つとして、コンテナ型仮想化技術がある。コンテナ型仮想化技術では、仮想環境(コンテナ)におけるアプリケーションの実行をホストOS(operating system)が制御する。例えば、仮想環境においてアプリケーションを起動しようとすると、ホストOSのカーネルに対する呼び出し(システムコール)が行われ、カーネルがシステムコールを処理することにより、アプリケーションが動作する。ゆえに、コンテナ型仮想化技術では、複数の仮想環境がホスト環境のリソースを共有することになる。
【0003】
しかし、アプリケーションの実行権限を仮想環境ごとに変えたいという要望も多い。そのためには、ホスト環境は、アプリケーションの起動時においていずれの仮想環境において起動されたかを確認し、確認された仮想環境のセキュリティに関する設定(言い換えれば、セキュリティポリシー)に基づき、当該アプリケーションの実行を許可するか否かを決定する必要がある。
【0004】
管理などの都合上、セキュリティに関する設定が示されたファイルを、ホストではなく、仮想環境に保存したい場合もあり得る。しかし、そのような対応は、仮想環境において当該ファイルが削除されるなどの攻撃を受ける恐れがあり、脆弱性の要因となり得る。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開第6840063号公報
【特許文献2】特許第5126447号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明の一実施形態は、仮想環境ごとに個別のセキュリティポリシーを適用しても、脆弱性を小さくすることが可能な情報処理装置を提供する。
【課題を解決するための手段】
【0007】
本発明の一実施形態である情報処理装置は、展開部と、仮想環境生成部と、記録部と、管理部と、正常判定部と、を備える。展開部は、イメージファイルを展開し、ファイル群を生成する。仮想環境生成部は、当該ファイル群を用いて仮想環境を生成する。記録部は、ファイル群に含まれる第1ファイルの情報を記録する。管理部は、仮想環境内に保存されている第1ファイルにアクセスし、当該アクセスにより取得された情報に基づき、仮想環境において実行が検知されたソフトウェアの実行是非を判定する。正常判定部は、当該アクセスにより取得された情報と、記録された第1ファイルの情報と、の相違に基づき、第1ファイルが正常であるかどうかを判定する。
【図面の簡単な説明】
【0008】
図1】第1実施形態に係る情報処理装置の一例を示すブロック図。
図2】記録された情報の一例を示す図。
図3】第1実施形態における仮想環境の起動時の処理の概略フローチャート。
図4】第1実施形態のソフトウェアの実行制御に関する処理の概略フローチャート。
図5】第1実施形態における仮想環境の終了時の処理の概略フローチャート。
図6】第2実施形態における仮想環境の起動時の処理の概略フローチャート。
図7】第2実施形態のソフトウェアの実行制御に関する処理の概略フローチャート。
図8】第2実施形態における仮想環境の終了時の処理の概略フローチャート。
図9】第3実施形態における仮想環境の起動時の処理の概略フローチャート。
図10】第3実施形態のソフトウェアの実行制御に関する処理の概略フローチャート。
図11】本発明の一実施形態におけるハードウェア構成の一例を示すブロック図。
【発明を実施するための形態】
【0009】
以下、図面を参照しながら、本発明の実施形態について説明する。
【0010】
(第1実施形態)
図1は、第1実施形態に係る情報処理装置の一例を示すブロック図である。第1実施形態に関する情報処理装置1は、仮想環境イメージデータ記憶部11と、仮想環境生成部12と、管理部13と、仮想環境制御部14と、を備える。仮想環境制御部14は、制御記憶部141と、仮想環境検知部142と、展開部143と、ソフトウェア検知部144と、仮想環境情報取得部145と、管理統括部146と、記録部147と、ソフトウェア実行制御部148と、正常判定部149と、を備える。なお、図1の符号のアルファベットは、同じ構成要素を区別するために用いている。
【0011】
なお、図1に示した構成要素は、本実施形態の処理を説明するためのものであり、その他の構成要素が存在していてもよい。また、図1に示した構成要素が複数に分かれていてもよいし、複数の構成要素が一つにまとめられていてもよい。
【0012】
本実施形態の情報処理装置1は、1以上の仮想環境121を提供可能な装置である。仮想環境121の実現および提供は、従来手法と同様でよく、例えば、所定の仮想環境イメージファイルを用いて仮想環境121を生成することが可能である。仮想環境イメージファイルは、予め情報処理装置1に保存しておいてもよいし、図1に示すように、実行したい仮想環境121に対応する仮想環境イメージファイルをレポジトリサーバなどの外部の装置から取得してもよい。
【0013】
なお、仮想環境イメージファイルには、仮想環境121に関するファイルが含まれており、例えば、仮想環境設定ファイル、仮想環境セキュリティファイル、仮想環境ファイルなどが含まれ得る。なお、以降、仮想環境イメージファイルに含まれていたファイル群を総称して仮想環境イメージデータと称する。
【0014】
仮想環境設定ファイルは、仮想環境121を実行するために必要な情報が記載されたファイルである。例えば、仮想環境121で実行するOSの名前やソフトウェアの名前が記載されている。仮想環境セキュリティファイルは、仮想環境121のセキュリティに関する情報を示すものである。仮想環境セキュリティファイルは、例えば、仮想環境121での実行を許可するソフトウェアを示す許可リストでもよいし、仮想環境121での実行を禁止するソフトウェアを示す不許可リストでもよい。以降では、仮想環境セキュリティファイルを、単に、セキュリティファイルと記載する。仮想環境ファイルは、共有ライブラリ、スクリプトファイル、ソフトウェアの設定ファイルなど仮想環境121において実行されるファイルである。
【0015】
仮想環境121ではソフトウェアが実行可能である。ただし、情報処理装置1は、仮想環境121においてソフトウェアの起動を検知し、当該ソフトウェアの実行が適切か否か、言い換えれば、当該ソフトウェアが実行されてよいものかどうか、をセキュリティファイルに基づいて確認する。そして、適切と確認されたソフトウェアは実行され、適切と確認されなかったソフトウェアは終了させられる。このように仮想環境121におけるソフトウェアの実行制御を行うことにより、仮想環境121を保護する。
【0016】
例えば、レポジトリサーバから情報処理装置1にセキュリティファイルを含む仮想環境イメージファイルが配布されることを想定する。仮想環境イメージファイルの配布方法および展開方法は、既存手法と同様でよい。仮想環境イメージファイルが展開されて仮想環境イメージデータに基づく仮想環境121が生成されると、セキュリティファイルは仮想環境121においてアクセスすることができる。
【0017】
なお、セキュリティファイルが含まれていない仮想環境イメージファイルに基づいて仮想環境121が生成されることもあり得る。その場合、生成された仮想環境121で実行するソフトウェアは制限されないとする。すなわち、仮想環境121がセキュリティファイルを有しない場合、当該仮想環境121におけるソフトウェアの実行は、セキュリティファイルに基づいて終了されないものとする。
【0018】
なお、ソフトウェアは用途などによってアプリケーションとも称されるが、本開示ではこれらを区別せずに、ソフトウェアという用語を用いる。すなわち、アプリケーションは、ソフトウェアに含まれるものとする。
【0019】
なお、仮想環境121のソフトウェアは、実行のために、例えば、カーネル、デバイスドライバなどといったホスト環境のリソースを利用する。そのため、ソフトウェアの実行の検知および制御が可能である。
【0020】
情報処理装置1の各構成要素の処理について説明する。
【0021】
仮想環境イメージデータ記憶部11は、仮想環境イメージデータを仮想環境121ごとに設けられた領域に記憶する。例えば、仮想環境121Aのイメージデータを「/virtual/container1/」の領域に記憶した場合、仮想環境121Bのイメージデータは、「/virtual/container1/」とは別の「/virtual/container2/」の領域に記憶させるようにする。
【0022】
仮想環境121で利用されるデータは、仮想環境イメージデータ記憶部11に格納された仮想環境イメージデータである。また、仮想環境イメージデータ記憶部11に記憶された仮想環境イメージデータは、仮想環境121ごとに異なり得る。ゆえに、各仮想環境121内のセキュリティファイルも異なり得るため、セキュリティレベルの異なる複数の仮想環境121が同時に存在し得る。
【0023】
仮想環境生成部12は、仮想環境イメージデータ記憶部11内の仮想環境イメージデータを用いて仮想環境121を生成(起動)する。言い換えれば、仮想環境生成部12は、仮想環境121のプロセスを生成する。生成された仮想環境121においてソフトウェアが実行される。例えば、コンテナ型仮想化技術を用いる場合は、仮想環境生成部12はコンテナエンジンに相当し、仮想環境121はコンテナに相当する。なお、情報処理装置1が用いる仮想化技術がコンテナ型仮想化技術に限られるわけではなく、同様の処理を行うことができる仮想化技術が用いられてもよい。生成される仮想環境121は、図1に示すように複数であってもよいし、一つであってもよい。
【0024】
また、仮想環境生成部12は、指示を受けて仮想環境121を消去(終了)する。言い換えれば、仮想環境生成部12は、仮想環境121のプロセスを消去する。なお、本実施形態では、消去された仮想環境121に対応する仮想環境イメージデータは、仮想環境121の消去と同時には、仮想環境イメージデータ記憶部11から削除されないようにする。ゆえに、仮想環境121の消去後に、仮想環境イメージデータ記憶部11に保存されていた仮想環境イメージデータを用いて、同じ仮想環境121を再開することが可能である。すなわち、仮想環境121を再起動するといったことが可能である。
【0025】
管理部13は、仮想環境121を管理し、管理する仮想環境121においてソフトウェアの起動が検知されたときに、仮想環境制御部14からの情報に基づき、ソフトウェアの実行是非を判定する実行判定を行う。なお、ソフトウェアの起動の検知は、仮想環境制御部14によって行われるため、管理部13は、仮想環境制御部14から判定を実行するよう指示される。
【0026】
なお、図1では、管理部13Aが仮想環境121Aを管理し、管理部13Bが仮想環境121Bを管理し、管理部13Cが仮想環境121Cを管理することを示している。このように、一つの管理部13が一つの仮想環境121を管理してもよいし、一つの管理部13が複数の仮想環境121を管理してもよい。
【0027】
管理部13の読込部131は、管理する仮想環境121内に保存されているセキュリティファイルにアクセスし、セキュリティファイルに関する情報を取得する。例えば、セキュリティファイルに登録された情報を読み込む。当該情報は、仮想環境121において実行可能なソフトウェアを示すものでもよいし、実行不可能なソフトウェアを示すものでもよい。なお、仮想環境121内にセキュリティファイルが保存されていなかった場合は、セキュリティファイルに関する情報として、セキュリティファイルが存在しないという情報を取得する。また、管理部13の実行判定部132は、仮想環境121において起動が検知されたソフトウェアの実行判定を、当該アクセスによって取得された仮想環境121のセキュリティに関する情報と、仮想環境制御部14からの情報と、に基づいて行う。
【0028】
ソフトウェアの実行判定に用いられる情報は、例えば、ソフトウェアのパス名、ソフトウェアの実行イメージのハッシュ値などがある。例えば、セキュリティファイルに許可されるソフトウェアのパス名が示されている場合に、仮想環境制御部14から送られてきたソフトウェアのパス名がセキュリティファイルに記載されていたときは、実行判定部132はソフトウェアの実行を適切と判定し、そうでないときは、ソフトウェアの実行を不適切と判定する。また、例えば、仮想環境121から取得した情報に基づいてハッシュ値を算出し、仮想環境制御部14から取得したハッシュ値と比較し、同じ場合には正常と判定し、異なる場合には正常ではない、つまり、異常と判定してもよい。
【0029】
なお、仮想環境121にセキュリティファイルが存在しない場合は、実行判定部132は、「この仮想環境121をソフトウェアの実行を制御する対象ではない」として、全てのソフトウェアに対し実行されてもよいとの判定を行ってもよい。なお、仮想環境121にセキュリティファイルが存在しないことを確認した場合は、仮想環境121にセキュリティファイルが存在しないことを記録しておき、以降は、当該記録に基づき、ソフトウェアは実行されてもよいとの判定を行ってもよい。なお、仮想環境121にセキュリティファイルが存在しない場合に、全てのソフトウェアの実行を不適切と判定してもよいし、所定のソフトウェア以外の実行を不適切と判定してもよい。
【0030】
仮想環境制御部14は、仮想環境イメージデータ記憶部11、仮想環境生成部12、および管理部13が上述の処理を行うことを可能にするための処理を行う。また、管理部13の実行判定に基づいてソフトウェアの実行制御を行う。これにより、仮想環境121を保護する。
【0031】
さらに、仮想環境制御部14は、管理部13によるソフトウェアの実行判定とは別に、仮想環境121のセキュリティファイルが正常であるかどうかを判定する正常判定を行う。セキュリティファイルは仮想環境121からアクセス可能であるため、悪意のあるソフトウェアがセキュリティファイルに攻撃を行うことが可能ある。例えば、前述のように、セキュリティファイルが存在しない場合には全てのソフトウェアは実行されてもよいとの判定を行うと、セキュリティファイルが不正な攻撃により削除されてしまった場合に問題が生じる。当該問題を防ぐために正常判定を行う。
【0032】
仮想環境制御部14内の構成要素について説明する。
【0033】
制御記憶部141は、仮想環境制御部14によって用いられるデータを記憶する。記憶されるデータは、特に限られるものではない。各構成要素の処理に用いられるデータ、各構成要素の処理結果が、制御記憶部141に記憶されてよい。例えば、後述するが、管理部13と仮想環境121の対応関係を示すデータなどが記憶される。
【0034】
仮想環境検知部142は、仮想環境121の生成および消去を検知する。例えば、仮想環境121に該当するプロセスIDを監視してもよいし、仮想環境121の生成および消去時において実行される所定のソフトウェアの起動を検知してもよい。
【0035】
なお、本実施形態では、仮想環境制御部14は、仮想環境121の生成および消去を独自に検知することを想定するが、仮想環境生成部12が仮想環境121の生成および消去について仮想環境制御部14に通知してもよい。
【0036】
展開部143は、生成される仮想環境121に対応する仮想環境イメージファイルを展開し、仮想環境イメージデータ、言い換えれば、仮想環境121に用いられるファイル群を生成する。これにより、仮想環境生成部12が仮想環境121を生成することが可能になる。なお、仮想環境イメージファイル内にセキュリティファイルがある場合は、生成された仮想環境イメージデータ内にもセキュリティファイルが含まれる。展開部143は、前述の通り、生成された仮想環境イメージデータを、仮想環境イメージデータ記憶部11の仮想環境121ごとに異なる領域に保存する。
【0037】
なお、展開部143は、仮想環境121を利用するユーザなどから指定された仮想環境イメージファイルを展開してもよいし、当該ユーザの情報に基づいて複数の仮想環境イメージファイルから一つを選出してもよい。
【0038】
なお、前述のように、仮想環境121は、消去されても同じ仮想環境イメージファイルを用いて再生成(再起動)されることもある。ゆえに、展開部143は、仮想環境イメージデータ記憶部11に仮想環境イメージデータが保存されていないときに、仮想環境イメージファイルを展開する。
【0039】
ソフトウェア検知部144は、仮想環境121内のソフトウェアの起動を検知する。当該検知は、様々な手段により実現が可能である。例えば、フックと呼ばれるOSの仕組みを用いることにより、ソフトウェアの起動を検知することができる。
【0040】
仮想環境情報取得部145は、検知されたソフトウェアに関する情報を取得する。例えば、ソフトウェアの検知手法と同様、フックを用いることにより、ソフトウェアのパス名、ソフトウェアが実行された仮想環境121の識別子などの情報を取得することができる。取得されたソフトウェアの情報は、管理部13に送信され、ソフトウェアの実行判定に用いられる。例えば、ソフトウェアのパス名などに相違がないかに基づいてソフトウェアの実行判定が行われる。
【0041】
また、仮想環境情報取得部145は、仮想環境121の識別子、仮想環境121内のファイルなどの情報も取得する。例えば、セキュリティファイルのパス名は、仮想環境イメージデータ記憶部11から、確認対象の仮想環境121に対応する仮想環境イメージデータを抽出し、当該仮想環境イメージデータ内のセキュリティファイルを検索することにより、当該セキュリティファイルのパス名を取得することができる。
【0042】
管理統括部146は、各仮想環境121を管理し、1以上の仮想環境121のいずれかにおいてソフトウェアの実行が検知された場合に、検知された仮想環境121を管理する管理部13に、検知された仮想環境121におけるソフトウェアの実行是非を判定するように指示を行う。
【0043】
なお、管理部13がいずれの仮想環境121を管理するかは、管理統括部146によって決定されてよい。また、記録部147は、管理部13がいずれの仮想環境121を管理するかを、管理部13と仮想環境121の対応関係を示すデータとして、制御記憶部141に記録する。当該記録は、ソフトウェアの実行が検知された場合に、仮想環境121を管理する管理部13を確認する際に用いられる。
【0044】
なお、管理統括部146は、管理部13を生成してもよい。言い換えれば、管理部13に相当するプロセスを生成してもよい。例えば、仮想環境検知部142によって仮想環境121の生成が検知された時点で、管理統括部146は、生成された仮想環境121の管理を行う管理部13を新たに生成してもよい。あるいは、管理統括部146は、検知された仮想環境121を管理する管理部13がないことが判明した時点で、検知された仮想環境121を管理する管理部13を生成してもよい。また、仮想環境121が消去された場合に、消去された仮想環境121を管理する管理部13を消去してもよい。
【0045】
なお、管理部13の判定が正常に行われない場合も想定される。そのため、管理統括部146は、管理部13の判定が正常に行われない場合に、エラー処理を行ってもよい。管理部13の判定が正常に行われなかった原因は様々であることが想定されるが、原因を特に限る必要はなく、単に、管理部13から判定の結果を所定時間内に取得できなかった場合に、エラー処理を行うとしてよい。管理統括部146は、例えば、仮想環境制御部14の外部にエラーを送信してもよい。また、管理統括部146は、管理部13の代わりに、判定を行ってもよい。例えば、いずれの仮想環境121であっても、所定のソフトウェアだけを許可し、その他は拒絶するといった判定を行ってもよい。あるいは、いずれのソフトウェアであっても一律に許可または不許可と判定してもよい。なお、管理部13の代理で判定を行う場合も、仮想環境121ごとに判定結果が異なっていてもよい。
【0046】
ソフトウェア実行制御部148は、管理部13によるソフトウェアの実行判定の結果などに基づき、仮想環境121におけるソフトウェアの実行を制御する。例えば、ソフトウェア実行制御部148は、仮想環境121において起動されたソフトウェアが不適切と判定された場合は、当該ソフトウェアの実行を終了するよう制御する。なお、ソフトウェア実行制御部148は、ソフトウェアの起動処理の途中において、実行判定を行うために当該ソフトウェアの一時停止を行ってもよい。
【0047】
また、ソフトウェア実行制御部148は、ソフトウェアの実行についての情報を出力してもよい。例えば、仮想環境121において起動されたソフトウェアが不適切と判定された場合に、ソフトウェア実行制御部148は、エラーを出力してもよい。エラーは、仮想環境121に対して出力されてもよいし、情報処理装置1の管理者に知らせるために、所定のログ、情報処理装置1に接続されたモニタなどに出力してもよい。
【0048】
このように、仮想環境から読み込まれたセキュリティファイルに基づいて仮想環境121におけるソフトウェアの実行を制御する場合、仮想環境制御部14が仮想環境121ごとにセキュリティポリシーを管理する必要がなく、仮想環境121のセキュリティポリシーに沿った仮想環境イメージファイルを展開するだけで済む。そのため、仮想環境制御部14の管理の手間を減少することができる。また、既存の仮想環境イメージファイルの既存の配布方法および展開方法を用いることもできる。
【0049】
しかし、前述のように、仮想環境121内にセキュリティファイルが含まれることで、仮想環境121内の悪意のあるソフトウェアがセキュリティファイルを消去、または、改ざんする恐れもある。例えば、セキュリティファイルが存在しないときには全てのソフトウェアの実行が許可される場合、セキュリティファイル自体が消去されると、実際には禁止されているソフトウェアが実行されてしまう。また、セキュリティファイルが不許可リストである場合に、不許可リストから登録されていたソフトウェアが削除されてしまうと、実際には禁止されているソフトウェアが実行されてしまう。また、セキュリティファイルが許可リストである場合に、ソフトウェアを許可リストに追記する不正が実行される恐れもある。
【0050】
そのため、本実施形態では、仮想環境121内のセキュリティファイルの消去または改ざんにより、禁止されているソフトウェアが実行されることを防ぐ。具体的には、セキュリティファイルに関する情報が、仮想環境121が最初に生成された時点における記録と、異なっていないことを確認する。
【0051】
セキュリティファイルに関する情報の取得は、仮想環境情報取得部145により行われる。すなわち、仮想環境情報取得部145は、前述の検知されたソフトウェアに関する情報だけでなく、仮想環境121の情報を取得する。取得される仮想環境121の情報は、例えば、仮想環境121を識別するための情報(例えば、仮想環境121のID)、当該仮想環境121のセキュリティファイルのパス名などを取得する。仮想環境121の情報の取得は、仮想環境検知部142によって仮想環境121の生成が検知された場合を想定するが、特に限られるわけではない。
【0052】
また、仮想環境情報取得部145は、仮想環境121内のファイルの内容などの情報に基づいて、ハッシュ値を算出してもよい。算出されたハッシュ値は、ファイルの改ざんなどが行われたどうかを認識するために用いることができる。
【0053】
記録部147は、仮想環境121の正常な情報を記録する。例えば、展開部143による仮想環境イメージファイルの展開が行われてから初めて仮想環境121が生成されたときに仮想環境情報取得部145によって取得された情報は、以前に攻撃を受けていないと考えられるため、記録部147は、当該情報を正常な情報とみなして記録してもよい。記録された情報は、正常判定の判定基準として用いられる。なお、仮想環境情報取得部145によって取得された情報を全て記録する必要はなく、正常判定に用いられるものを記憶すればよい。
【0054】
図2は、記録された情報の一例を示す図である。図2の例では、仮想環境121を識別するための情報と、当該仮想環境121に格納されているセキュリティファイルのパス名と、が含まれており、これらの対応関係が分かるように記憶されている。図2の表の左側1番目の列の項目名として「仮想環境識別情報」と示されているが、これは仮想環境121を識別するための情報を表している。例えば、仮想環境121のIDなどが仮想環境識別情報に該当する。図2の左側2番目の列には、仮想環境121に含まれるセキュリティファイルのパス名が示されている。例えば、仮想環境識別情報が「0x1234」である仮想環境121は、セキュリティファイルを有し、当該セキュリティファイルは、「/virtual/container1/allow-list」に保存されていることを示す。また、図2の例のように、ハッシュ値などの情報が当該記録に含まれていてもよい。このように、記録部147は、仮想環境イメージデータに含まれるセキュリティファイルになどの情報を記録する。
【0055】
正常判定部149は、記録部147によって記録された仮想環境121の情報と、記録後に取得された仮想環境121の情報と、に相違があるかを確認することにより、正常か否かを判定する。例えば、記録されたセキュリティファイルのパス名と、記録後に取得されたセキュリティファイルのパス名と、が一致しなかった場合、異常と判定する。異常と判定された場合は、所定の処理を行う。例えば、情報処理装置1の管理者に異常を知らせるために、所定のログ、情報処理装置1に接続されたモニタなどにエラーを出力してもよい。また、異常と判定されたセキュリティファイルを有する仮想環境121を停止するよう仮想環境生成部12に通知してもよい。
【0056】
次に、情報処理装置1の各処理の流れについて説明する。図3は、第1実施形態における仮想環境121の起動時の処理の概略フローチャートである。なお、本開示におけるフローは、例示であって、各処理の順番が例示の通りに限られるわけではない。例えば、順番に記載した二つの処理が、並列に行われる場合もあり得る。
【0057】
まず、仮想環境検知部142が仮想環境121の生成を検知する(S101)。当該検知には、仮想環境121の再生成(再起動)の検知も含まれるため、展開部143は、検知された仮想環境121の仮想イメージデータが仮想データ記憶部に記憶されているかを検索する(S102)。
【0058】
仮想データ記憶部に仮想イメージデータが存在しなかった場合(S103のNO)、展開部143は、仮想環境イメージファイルを展開し、仮想環境イメージデータを生成する(S104)。例えば、仮想環境121が新規生成された場合が該当する。そして、仮想環境情報取得部145は、仮想環境検知部142によって生成が検知された仮想環境121に関する情報を取得する(S105)。取得される情報には、仮想環境121の識別子、セキュリティファイルのパス名などが含まれる。記録部147は、取得された情報を記録する(S106)。記録された情報は、正常の情報として扱われる。
【0059】
そして、管理統括部146は生成された仮想環境121を管理する管理部13を生成し(S107)、記録部147は、管理部13および仮想環境121の情報を対応関係が分かるように記録する(S108)。そして、仮想環境生成部12は仮想環境イメージデータを用いて仮想環境121を生成し(S109)、本フローは終了する。
【0060】
一方、仮想データ記憶部に仮想イメージデータが生成されていた場合(S103のYES)は、仮想環境イメージファイルの展開は行われず、仮想環境情報取得部145が、仮想環境検知部142によって生成が検知された仮想環境121の仮想環境121に関する情報を取得する(S110)。例えば、仮想環境121が再起動された場合が該当する。なお、取得された情報は、記録部147によって記録されない。取得された情報が、既に第三者からの攻撃によって正常ではない恐れがあるためである。
【0061】
そして、正常判定部149が、取得された情報と、記録された情報と、に基づき、正常判定を行う(S111)。例えば、取得されたセキュリティファイルのパス名がセキュリティファイル記憶部に記録されているものと一致した場合は正常と判定され、そうでない場合は異常と判定してもよい。正常と判定されなかった場合(S112のNO)は、正常判定部149が異常を知らせるためのエラーを出力し(S113)、フローは終了する。正常と判定された場合(S112のYES)は、仮想環境生成部が仮想環境イメージデータを用いて仮想環境121を生成し(S109)、本フローは終了する。
【0062】
本フローを用いて、実際に悪意のあるソフトウェアがセキュリティファイルに問題を起こした場合の検知について例示する。例えば、悪意のあるソフトウェアが仮想環境121Bに侵入し、仮想環境121Bに含まれるセキュリティファイルを削除した後、仮想環境121Bを再起動する場合を説明する。なお、三つの仮想環境121A、B、およびCの識別子はそれぞれ、「0x1234」、「0x5678」、「0x9abc」とする。また、仮想環境121Bのセキュリティファイルの正当なパス名は「/virtual/container2/allow-list」とする。
【0063】
図3のフローチャートに示す通り、まず、仮想環境121起動部が仮想環境121Bの再起動を検知する(S101)。再起動のため、仮想環境イメージデータが存在するので(S103のYES)、仮想環境情報取得部145は、仮想環境121Bの識別子「0x5678」、仮想環境121Bのセキュリティファイルのパス名などを取得する(S110)。仮想環境121Bのセキュリティファイルは削除されているので、取得されたパス名は「NULL」である。正常判定部149は、記録上の仮想環境121Bの識別子「/virtual/container2/allow-list」を認識し、仮想環境情報取得部145が取得したセキュリティファイルのパス名「NULL」とは異なることから、異常と判定する(S112)。そして、異常と判定されたため(S112のNO)、異常判定のためエラーが出力される(S113)。
【0064】
なお、仮想環境121上で動作する悪意のあるソフトウェアが、別の仮想環境121に悪影響を及ぼすことも想定される。例えば、仮想環境121Aは実行を停止しており(仮想環境121Aの仮想環境イメージデータが削除されていない)、仮想環境121Bと仮想環境121Cは稼働しており、仮想環境121C上で動作する悪意のあるソフトウェアが仮想環境イメージデータにある仮想環境121Aをマウントし、仮想環境121Aに含まれるセキュリティファイル(パス名:/virtual/container1/allow-list)を削除した後、仮想環境121Aを起動することもあり得る。しかし、この場合においても、記録上の仮想環境121Aの識別子が、仮想環境情報取得部145が取得したセキュリティファイルのパス名「NULL」とは異なることから、異常としてエラーを出力することができる。
【0065】
次に、ソフトウェアの実行制御の処理の流れについて説明する。図4は、第1実施形態のソフトウェアの実行制御に関する処理の概略フローチャートである。
【0066】
ソフトウェア検知部144が仮想環境121においてソフトウェアの起動を検知し(S201)、仮想環境情報取得部145が、仮想環境121の識別子、ソフトウェアのパス名などといった仮想環境121の情報を取得する(S202)。
【0067】
管理統括部146は、仮想環境121と管理部13の対応関係を示すデータを参照し(S203)、検知された仮想環境121を管理する管理部13に対し、実行判定に用いられる仮想環境121の情報を送信して実行判定を行うよう指示する(S204)。指示を受けた管理部13の読込部131は、仮想環境内のセキュリティファイルへのアクセスを試みる(S205)。
【0068】
仮想環境121のセキュリティファイルを読み込み可能な場合(S206のYES)は、管理部13の読込部131がセキュリティファイルを読み込み、実行判定部132がソフトウェアの実行是非を判定する(S207)。セキュリティファイルが存在しないため、仮想環境121のセキュリティファイルを読み込み不可な場合(S206のNO)は、実行判定部132は、前述の通り、ソフトウェアの実行は適切と判定する(S208)。
【0069】
そして、ソフトウェア実行制御部148は、ソフトウェアの実行是非の判定結果に基づき、ソフトウェアの実行を制御する(S209)。判定に問題があれば、ソフトウェアは実行されない。なお、ソフトウェアが実行されない場合は、警告メッセージを出力するソフトウェアを実行してもよい。このようにして実行制御が行われて、本フローは終了する。
【0070】
なお、正常判定部149による正常判定は、図3に示したように、仮想環境121の起動時または再起動時に行われることを想定しているが、仮想環境121の起動時または再起動時以外でも、正常判定が実行されてよい。例えば、仮想環境情報取得部145が仮想環境121の情報を取得したときに、当該情報を用いて正常判定が実行されてもよい。ゆえに、図4のソフトウェアの起動を検知したときに、正常判定部149は、仮想環境121の起動検知時と同様、仮想環境情報取得部145によって取得された情報と、記録された情報と、に基づいて正常判定を行ってもよい。そして、ソフトウェア実行制御部148は、ソフトウェアの実行是非の判定結果と、セキュリティファイルの正常判定結果と、の両方に基づいてソフトウェアの実行を制御してもよい。なお、正常判定の実行タイミングは、適宜に定めてよい。実行判定と並列に実行されてもよいし、実行判定の前後に実行されてもよい。また、実行判定と正常判定のいずれか先に行われたほうの結果が悪かった場合、残りは実行しないとしてもよい。
【0071】
本フローを用いて、仮想環境121におけるソフトウェアの実行判定について例示する。なお、セキュリティファイルの読み込みは、起動時、または、再起動時に行われるものとする。
【0072】
例えば、仮想環境121Aのセキュリティファイルに登録されているファイル「/bin/user.exe」が、仮想環境121A上で実行開始された場合は、次のように処理される。ソフトウェア検知部144は、「/bin/user.exe」の実行開始を検知する(S201)。仮想環境情報取得部145は、ソフトウェアの情報としてファイル名「/bin/user.exe」を取得する(S202)。取得された情報は、管理統括部146を介して、仮想環境121Aを管理する管理部13Aに送られ(S204)、管理部13Aの読込部131Aは「/bin/user.exe」が仮想環境121A内のセキュリティファイルに含まれているかを確認する(S205)。「/bin/user.exe」は仮想環境121A内のセキュリティファイルに登録されているため、管理部13Aの実行判定部132Aは「/bin/user.exe」の実行は適切と判定する(S207)。そのため、ソフトウェア実行制御部148は、仮想環境121A内の「/bin/user.exe」の実行を開始する(S209)。
【0073】
また、例えば、仮想環境121Bのセキュリティファイルに登録されていないファイル「/bin/mal.exe」が仮想環境121B上で実行された場合は、次の通りに処理される。ソフトウェア検知部144は、「/bin/mal.exe」の実行開始を検知する(S201)。仮想環境情報取得部145は、ソフトウェアの情報としてファイル名「/bin/mal.exe」を取得する(S202)。取得された情報は、管理統括部146を介して、仮想環境121Bを管理する管理部13Bに送られ(S204)、管理部13Bの読込部131Bは「/bin/mal.exe」が仮想環境121B内のセキュリティファイルに含まれているかを確認する(S205)。「/bin/mal.exe」は仮想環境121B内のセキュリティファイルに登録されていないので、管理部13Bの実行判定部132Bは「/bin/mal.exe」を実行してはいけないと判定する(S207)。そのため、ソフトウェア実行制御部148は、仮想環境121B内の「/bin/mal.exe」の実行を停止する(S209)。
【0074】
また、例えば、セキュリティファイルが存在しない仮想環境121C上で「/bin/cafe.exe」で実行された場合は、次の通りに処理される。ソフトウェア検知部144は、「/bin/cafe.exe」の実行開始を検知する(S201)。仮想環境情報取得部145は、仮想環境情報取得部145は、ソフトウェアの情報としてファイル名「/bin/cafe.exe」を取得する(S202)。取得された情報は、管理統括部146を介して、仮想環境121Cを管理する管理部13Cに送られ(S204)、管理部13Cの読込部131Cは仮想環境121C内のセキュリティファイルにアクセスしようとする(S205)。しかし、仮想環境121C内にはセキュリティファイルがなかったため(S206のNO)、管理部13Cの実行判定部132は「/bin/cafe.exe」の実行は適切と判定する(S208)。そのため、ソフトウェア実行制御部148は、仮想環境121C内の「/bin/cafe.exe」の実行を開始する(S209)。
【0075】
次に、仮想環境121の 終了時の処理の流れについて説明する。図5は、第1実施形態における仮想環境121の終了時の処理の概略フローチャートである。
【0076】
まず、仮想環境検知部142が仮想環境121の終了を検知する(S301)。次に、仮想環境情報取得部145は、消去が検知された仮想環境121を識別するための情報を取得する(S302)。管理統括部146は、対応関係を示すデータを参照し、仮想環境121に対応する管理部13、つまり、消去された仮想環境121を管理する管理部13を特定して消去する(S304)。記録部147は、当該消去を受けて、消去された仮想環境121に関する情報を記録から削除する(S305)。
【0077】
その後、仮想環境イメージデータ記憶部11は、使用されなくなった期間が所定期間を超えるなどの条件を満たした仮想環境イメージデータを削除し(S305)、本フローは終了する。再起動など、仮想環境イメージデータが短時間で再度使用される場合もあり得るためである。使用されなくなったと判定されるための条件は適宜に定めてよい。例えば、仮想環境121が消去されてからの日数が閾値を超えた場合に消去するとしてもよい。
【0078】
以上のように、本実施形態の情報処理装置1は、複数の仮想環境121を制御するが、各仮想環境121のセキュリティポリシーを個別に設けることが可能である。さらに、本実施形態では、各仮想環境121に格納されたセキュリティファイルが正常であることを確認する。これにより、仮想環境121にセキュリティファイルを格納しても、悪意のあるソフトウェアなどによってセキュリティファイルが消去または改ざんされることによって不許可のソフトウェアが実行れてしまうリスクを減らすことができる。
【0079】
なお、本実施形態では、セキュリティファイルが不正な攻撃を受けた恐れがあるため、ソフトウェアの実行検知時にセキュリティファイルが正常性を確認した。それに加えて、セキュリティファイルが不正な攻撃を受けたときにも、不正な攻撃を回避するような処理を加えることにより、さらに安全性を向上させてもよい。
【0080】
例えば、ソフトウェア検知部144は、ソフトウェアの検知と同様の手段によって、仮想環境121におけるファイルの削除、編集といった所定の処理を検知し、対象のファイルのパス名を取得することができる。ゆえに、削除等が不可なファイルがセキュリティファイルに記載されている場合は、図4に示したソフトウェアの実行制御のフローと同様に、処理することが可能である。すなわち、ファイルの削除、編集といった処理もソフトウェアの処理とみなしてよい。
【0081】
また、セキュリティファイルとは別に、削除等が不可なファイルを示すデータを予め制御記憶部141に保存しておいてもよい。その場合は、仮想環境情報取得部145が仮想環境121の情報を取得した後に、ソフトウェア実行制御部148が、当該データを参照し、検知された処理の対象のファイルがセキュリティファイルなどの処理不可とされたファイルであった場合は当該処理を停止し、セキュリティファイルなどの処理不可とされたファイル以外であった場合は当該処理を実行するとしてよい。なお、ソフトウェアの実施制御同様、所定のエラー処理を行い、例えば、所定のログ、情報処理装置1に接続されたモニタなどにエラーを出力してもよい。
【0082】
なお、上記では、ソフトウェア検知部144が、ファイルの削除、編集といった所定の処理も検知するとしたが、検知対象の違いに応じて、前述のように、構成要素を分けてもよい。すなわち、ソフトウェア検知部144とは別に、ファイルの削除を検知する検知部、ファイルの編集を検知する検知部などを、情報処理装置1に設けてもよい。
【0083】
なお、上記では、ソフトウェア検知時に、都度、管理部13が仮想環境121内に保存されているセキュリティファイルにアクセスし、当該セキュリティファイルの情報に基づいて、ソフトウェアの実行判定を行っているが、そのような処理を繰り返さずに、一度、正常と判定されたセキュリティファイルを管理部13が保存し、保存されたセキュリティファイルを基準として用いて、実行判定を行ってもよい。
【0084】
また、管理部13が正常と判定されたセキュリティファイルを仮想環境制御部14に送信し、以降は、管理部13ではなく、仮想環境制御部14がソフトウェアの実行判定を行ってもよい。例えば、仮想環境制御部14が当該情報を受信してから所定期間が経過するまでは、仮想環境制御部14が、管理部13に代わり、当該情報に基づき、実行判定を行うといったことも可能である。
【0085】
(第2実施形態)
第1実施形態では、一つの管理部13は一つの仮想環境121を管理してもよいし、複数の仮想環境121を管理してもよいとした。しかし、一つの管理部13が一つの仮想環境121を管理する場合では、仮想環境121の数が多くなるにつれて管理部13の数も増加し、情報処理装置1のメモリ、CPU(Computing Processor Unit)使用率などのリソースを消費する。そのため、生成された仮想環境121に対する実行判定が不要な場合には、管理部13を生成しないといった対応もリソースの観点からは有効である。
【0086】
そこで、本実施形態では、管理統括部146は、セキュリティファイルを有しないなどの所定の条件を満たす仮想環境121に対しては、管理する管理部13を生成しない。例えば、仮想環境情報取得部145が仮想環境121の情報を取得する処理において、仮想環境イメージデータ内のセキュリティファイルを検索し、セキュリティファイルが存在しない場合、管理統括部146は、当該仮想環境121を管理する管理部13を生成しないとしてもよい。
【0087】
図6は、第2実施形態における仮想環境121の起動時の処理の概略フローチャートである。本フローでは、仮想環境121がセキュリティファイルを有しないことを、管理部13を生成しない条件とする。第1実施形態におけるフローとの相違点について説明する。
【0088】
仮想環境イメージデータが存在しなかった場合(S103のNO)に、仮想環境情報取得部145は仮想環境121の情報を取得し(S105)、取得された情報は記録部147によって正常な情報として記録される(S106)ということは、第1実施形態と同様である。ただし、第2実施形態では、仮想環境情報取得部145は、仮想環境121の情報として、セキュリティファイルの情報も取得する。例えば、セキュリティファイルのパス名を取得する。また、セキュリティファイルの情報も、記録部147によって正常な情報として記録される。なお、セキュリティファイルが仮想環境121に存在しない場合は、セキュリティファイルが仮想環境121に存在しないことを示す情報が記録される。例えば、セキュリティファイルのパス名が「NULL」と記録される。
【0089】
そして、管理部13の生成条件であるセキュリティファイルの存在に応じてフローが分岐するよう、条件分岐(S114)が追加されている。セキュリティファイルが存在する場合(S114のYES)は、第1実施形態におけるフローと同様にS107およびS108の処理が実施され、仮想環境121を管理する管理部13が生成されて記録される。一方、セキュリティファイルが存在しない場合(S114のNO)は、S107およびS108の処理は省略される。これにより、管理部13の数は、仮想環境121の数よりも少なくなる。
【0090】
図7は、第2実施形態のソフトウェアの実行制御に関する処理の概略フローチャートである。図6に示したように、第2実施形態では、仮想環境121が生成されても当該仮想環境121を管理する管理部13が存在せず、仮想環境121と管理部13の対応関係を示すデータに、ソフトウェアの実行が検知された仮想環境121に対応する管理部13が記録されていないことがあり得る点が第1実施形態と異なる。そのため、管理統括部146が仮想環境と管理部13の対応関係を示すデータを参照する処理(S203)の後に、条件分岐(S210)が追加されている。また、本フローでは、S208の処理の代わりに、S211の処理が追加されている。
【0091】
当該データに管理部13が記載されていない場合(S210のNO)は、管理部13が存在しないため、管理部13に対する処理S204からS208は実行されない。判定が省略された場合は、ソフトウェア実行制御部148は、ソフトウェアを実行するように制御する(S209)。こうして、管理する管理部13が存在しない仮想環境121に対しては、ソフトウェアの実行が許可される。
【0092】
一方、当該データに管理部13が記載されている場合(S210のYES)は、第1実施形態と同様に処理が進むが、管理部13の読込部131が仮想環境内のセキュリティファイルへのアクセスを試行した際に、セキュリティファイルが存在しなかった場合(S06のNO)は、管理部13の実行判定部132が異常と判定する(S211)。管理部13が存在している場合、セキュリティファイルも存在していたはずである。ゆえに、第1実施形態と異なり、セキュリティファイルが存在していない場合は、実行判定は異常と判定され、ソフトウェア実行制御部148は、ソフトウェアを停止するように制御する(S209)。
【0093】
なお、第2実施形態では、管理部13の読込部131がセキュリティファイルにアクセスできなかった時点で異常と分かる。そのため、管理部13の読込部131は、定期的に仮想環境内のセキュリティファイルへのアクセスするようにしてもよい。その場合、アクセスの度に実行判定は行ず、アクセスできなかったときに、その旨を仮想環境制御部14に通知するようにし、正常判定部149は、当該通知をもって異常と判定してもよい。これにより、仮想環境121および管理部13の負荷を高めることなく、セキュリティファイルに対する異常の検知を早めることができる。
【0094】
図8は、第2実施形態における仮想環境121の終了時の処理の概略フローチャートである。図6に示したように、第2実施形態では、仮想環境121が生成されても当該仮想環境121を管理する管理部13が存在せず、仮想環境と管理部13の対応関係を示すデータに、ソフトウェアの実行が検知された仮想環境121に対応する管理部13が記録されていないことがある点が、第1実施形態と異なる。そのため、管理統括部146が仮想環境と管理部13の対応関係を示すデータを参照する処理(S303)の後に、条件分岐(S307)が追加されている。
【0095】
対応する管理部13が記録されている場合(S307のYES)は、第1実施形態と同様に、管理統括部146が消去された仮想環境121を管理する管理部13を消去する(S304)。一方、対応する管理部13が記録されていない場合(S307のNO)は、消去された仮想環境121を管理する管理部13が存在しないため、S304の処理は省略される。以降の処理は、第1実施形態と同じである。
【0096】
以上のように、本実施形態では、不要な管理部13の生成を抑えることができ、情報処理装置1のリソースの消費を抑えることができる。
【0097】
(第3実施形態)
これまでの実施形態では、仮想環境121にアクセスし、攻撃された可能性があるセキュリティファイルを読み込み、読み込まれたセキュリティファイルに基づいてソフトウェアの実行判定を行っていた。そのため、読み込まれたセキュリティファイルが正常であるかを確認する必要があった。
【0098】
そこで、本実施形態では、攻撃された可能性があるセキュリティファイルを用いずに、実行判定を行う。
【0099】
図9は、第3実施形態における仮想環境121の起動時の処理の概略フローチャートである。
【0100】
図3に示した第1実施形態におけるフローでは、仮想環境イメージデータが存在しない場合(S103のNO)、仮想環境情報取得部145が仮想環境121の情報を取得したが(S105)、第3実施形態では、仮想環境情報取得部145は仮想環境イメージデータからセキュリティファイルを取得する(S115)。取得されたファイルは、攻撃を受けていない正常なものとして扱われ、管理統括部146が取得されたセキュリティファイルを管理部13に送信する(S116)。これにより、管理部13は、正常なセキュリティファイルを取得でき、正常なセキュリティファイルに基づいて実行判定を行うことができる。
【0101】
また、第3実施形態では正常判定を行う必要がないため、仮想環境イメージデータが存在する場合(S103のYES)では、単に、仮想環境生成部が仮想環境イメージデータを用いて仮想環境121を生成する(S109)。
【0102】
図10は、第3実施形態のソフトウェアの実行制御に関する処理の概略フローチャートである。
【0103】
仮想環境121の起動時の処理において管理部13はセキュリティファイルを取得しているため、管理部13が仮想環境121のセキュリティファイルを読み込む処理(S205)はなく、管理部13の実行判定部132は、管理統括部146から取得したセキュリティファイルに基づき実行判定を行う(S212)。その他の処理は、第1実施形態と同様である。
【0104】
このように、本フローでは、予め取得しておいた正常なセキュリティファイルに基づいて実行判定が行われるため、仮想環境121内においてセキュリティファイルが改ざんされても、正常性が保証される。
【0105】
なお、本フローでは、これまでの実施形態同様、管理部13が実行判定を行うが、管理部13が実行判定を行う必要はなく、仮想環境制御部14が実行判定を行うとしてもよい。仮想環境制御部14が実行判定を行う場合、仮想環境制御部14が管理部13にセキュリティファイルや実行が検知されたソフトウェアの情報を送信する必要がなくなる。
【0106】
なお、終了処理のフローは、第1実施形態と同様でよいため省略する。
【0107】
以上のように、本実施形態では、攻撃された可能性があるセキュリティファイルを用いずに実行判定を行う。これにより、実行判定の正当性を保証することができる。
【0108】
なお、上記の実施形態の少なくとも一部は、プロセッサ、メモリなどを実装しているIC(Integrated Circuit:集積回路)などの専用の電子回路(すなわちハードウェア)により実現されてもよい。また、上記の実施形態の少なくとも一部は、ソフトウェア(プログラム)を実行することにより、実現されてもよい。例えば、汎用のコンピュータ装置を基本ハードウェアとして用い、コンピュータ装置に搭載されたCPUなどのプロセッサにプログラムを実行させることにより、上記の実施形態の処理を実現することが可能である。すなわち、図1に示された各部は、プロセスとして実現され得る。
【0109】
例えば、コンピュータが読み取り可能な記憶媒体に記憶された専用のソフトウェアをコンピュータが読み出すことにより、コンピュータを上記の実施形態の装置とすることができる。記憶媒体の種類は特に限定されるものではない。また、通信ネットワークを介してダウンロードされた専用のソフトウェアをコンピュータがインストールすることにより、コンピュータを上記の実施形態の装置とすることができる。こうして、ソフトウェアによる情報処理が、ハードウェア資源を用いて、具体的に実装される。
【0110】
図11は、本発明の一実施形態におけるハードウェア構成の一例を示すブロック図である。情報処理装置1は、プロセッサ21と、主記憶装置22と、補助記憶装置23と、ネットワークインタフェース24と、デバイスインタフェース25と、を備え、これらがバス26を介して接続されたコンピュータ装置2として実現できる。情報処理装置1の各記憶部は、主記憶装置22または補助記憶装置23により実現可能であり、仮想環境制御部14などの記憶部以外の構成要素は、プロセッサ21により実現可能である。
【0111】
なお、図11のコンピュータ装置2は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図11は、1台のコンピュータ装置2が示されているが、ソフトウェアが複数のコンピュータ装置にインストールされて、当該複数のコンピュータ装置それぞれがソフトウェアの異なる一部の処理を実行してもよい。
【0112】
プロセッサ21は、コンピュータの制御装置および演算装置を含む電子回路である。プロセッサ21は、コンピュータ装置2の内部構成の各装置などから入力されたデータやプログラムに基づいて演算処理を行い、演算結果や制御信号を各装置などに出力する。具体的には、プロセッサ21は、コンピュータ装置2のOSやソフトウェアなどを実行し、コンピュータ装置2を構成する各装置を制御する。プロセッサ21は、上記の処理を行うことができれば特に限られるものではない。
【0113】
主記憶装置22は、プロセッサ21が実行する命令および各種データなどを記憶する記憶装置であり、主記憶装置22に記憶された情報がプロセッサ21により直接読み出される。補助記憶装置23は、主記憶装置22以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、メモリでもストレージでもよい。また、メモリには、揮発性メモリと、不揮発性メモリがあるが、いずれでもよい。
【0114】
ネットワークインタフェース24は、無線または有線により、通信ネットワーク3に接続するためのインタフェースである。ネットワークインタフェース24は、既存の通信規格に適合したものを用いればよい。ネットワークインタフェース24により、通信ネットワーク3を介して通信接続された外部装置4Aと情報のやり取りが行われてもよい。
【0115】
デバイスインタフェース25は、外部装置4Bと直接接続するUSBなどのインタフェースである。外部装置4Bは、外部記憶媒体でもよいし、データベースなどのストレージ装置でもよい。
【0116】
外部装置4Aおよび4Bは出力装置でもよい。出力装置は、例えば、画像を表示するための表示装置でもよいし、音声などを出力する装置などでもよい。例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、スピーカなどがあるが、これらに限られるものではない。
【0117】
なお、外部装置4Aおよび4Bは入力装置でもよい。入力装置は、キーボード、マウス、タッチパネルなどのデバイスを備え、これらのデバイスにより入力された情報をコンピュータ装置2に与える。入力装置からの信号はプロセッサ21に出力される。
【0118】
上記に、本発明の一実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、移行を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0119】
1 情報処理装置
11 仮想環境イメージデータ記憶部
12 仮想環境生成部
121(121A、121B、121C) 仮想環境
13(13A、13B、13C) 管理部
131(131A、131B、131C) 読込部
132(132A、132B、132C) 実行判定部
14 仮想環境制御部
141 制御記憶部
142 仮想環境検知部
143 展開部
144 ソフトウェア検知部
145 仮想環境情報取得部
146 管理統括部
147 記録部
148 ソフトウェア実行制御部
149 正常判定部
2 コンピュータ装置
21 プロセッサ
22 主記憶装置
23 補助記憶装置
24 ネットワークインタフェース
25 デバイスインタフェース
26 バス
3 通信ネットワーク
4Aおよび4B 外部装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11