説明

安全に管理された仮想マシンの実行環境を構築する方法、プログラムおよびコンピュータ装置

【課題】本発明は、安全に管理された仮想マシンの実行環境を構築する方法およびそのために用いられるプログラムを提供することを目的とする。
【解決手段】仮想マシンのウィンドウ画面を選択的にマスクする手段とセキュリティ機能が一体化したプログラムをユーザ端末のホストOS上に管理者権限でインストールした上で、管理者が仮想マシンに導入させたいと考えるセキュリティ機能と上記マスクを解除するため手段が一体化したプログラムをユーザに提供する。管理者によってこのようなシチュエーションが創出されると、仮想化環境を利用したいユーザは、管理者の所望するセキュリティ機能を仮想マシン上にインストールすることを受け入れざるを得なくなる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パーソナル・コンピュータのセキュリティ技術に関し、より詳細には、仮想化環境のセキュリティ状態を向上させるための手法に関する。
【背景技術】
【0002】
近年、パーソナル・コンピュータ(PC)における仮想化環境の利用が注目を集めている。これに伴って、PC用の仮想化アプリケーションや、仮想化環境を標準搭載するOSが提供されるようになってきており、エンドユーザがPC上で仮想化環境を利用する機会は、今後、ますます拡大することが予想される。ここで、PCにおける仮想化について、以下概説する。
【0003】
図10は、いわゆるホストOS型の仮想化環境が構築されたPC200(実マシン)を示す。PC200(実マシン)は、ハードウェア202と、その上にインストールされたホストOS204を備え、ホストOS204の上に各種アプリケーションがインストールされている。仮想マシン400は、ホストOS204上で動作する1つのアプリケーションとして参照することができる。仮想マシン400は、共通プラットフォーム401と、仮想ハードウェア領域402を備える。仮想ハードウェア領域402は、実マシンのハードウェア(CPU,ハードディスク、BIOS、NIC、キーボード、マウス等)をエミュレートする機能部であり、ユーザは、この仮想ハードウェア領域402の上にホストOS204とは別のOS(ゲストOS404)をインストールすることができる。
【0004】
図11は、実マシン200のホストOS画面1000の上位レイヤーに仮想マシン400のウィンドウ画面2000が表示された状態を示す。仮想マシン400のウィンドウ画面2000には、仮想マシン400上にインストールされたゲストOS404のOS画面が表示されている。ユーザは、1つのディスプレイに表示される2つのOS画面を切り替えながら、異なる2つのOS環境を同時に利用することができる。
【0005】
一般に、古いバージョンのOSでしか動作しないアプリケーションを最新のホストOS上で動作させるといったことが仮想マシンの用途として想定されている。たとえば、実マシンのホストOS204がアプリDおよびアプリEの動作をサポートしていない場合、ユーザは、仮想マシン400のゲストOS404(旧バージョンOS)上にアプリDおよびアプリEをインストールすることによって、これらを使用することができる。ゲストOS404は、アプリDまたはアプリEから発行される命令に応答して仮想ハードウェア領域402を本物のハードウェアとして制御しようとする。仮想マシン400は、ゲストOS404から発行されるハードウェア制御命令を実マシンが対応可能な形式に解釈し直して、ホストOS204にこれを伝える。その結果、実マシン上のホストOS204に対応していないアプリDおよびアプリEが実マシンのハードウェア202を制御することが可能になる。上述したように、PCにおける仮想化技術は、ユーザの利便性を向上させるものであることは確かである。しかし、それは、一方で、管理者にとって悩ましい問題を生じさせる。以下、この点について説明する。
【0006】
多くの企業は、セキュリティポリシーを遵守させるべく、社員が使用するPCに対してセキュリティ・アプリケーションを常駐させること義務付けている。この点につき、特開2007−287078号公報(特許文献1)は、アプリケーションから出力されるデータにつき個人情報管理の必要性をリアルタイムに判定し、その判定結果に基づいて、アプリケーションの処理を続行または中断、修整するプログラムを開示する。このようなセキュリティ・アプリケーションは、OS上で動作するアプリケーションのファイル・アクセスやネットワーク・アクセスを、セキュリティポリシーに則って制御するものであるが、仮想化環境にこれを適用する場合、以下のような問題が生じる。
【0007】
図12は、仮想マシン環境を備える実マシンのホストOS上に従来型のセキュリティ・アプリケーションであるセキュリティ・エージェント500が導入された状態を示す。セキュリティ・エージェント500は、セキュリティポリシーに基づいて所定のプロセスやオブジェクトに関連するアクセスを監視するアクセス制御部502や監査ログを記録するログ監査部504などを含んで構成されている。アクセス制御部502は、セキュリティポリシーに則って定義されたアクセス制御リストに基づいてアプリケーションのファイル・アクセスやネットワーク・アクセスを制御する機能部であり、セキュリティポリシーにおいて「アプリA」の使用禁止が定義されているような場合、アクセス制御部502が備えるAPIフック手段は、ホストOS204上で動作する「アプリA」からのファイル・アクセス等をフックし、これらに対してエラーを返す。
【0008】
一方、セキュリティポリシーによって仮想マシン400の利用が許可されている場合、アクセス制御部502のアクセス制御リストは、仮想マシン400からのファイル・アクセス等を許可するように定義される。ここで問題となるのは、「アプリA」が仮想マシン400のゲストOS404上にインストールされた場合である。この場合、本来禁止されるべき「アプリA」からのファイル・アクセスは、アクセス制御部502をスルーしてしまう。なぜなら、アクセス制御部502は、ゲストOS404上で動作する「アプリA」からのファイル・アクセスと、「アプリD」や「アプリE」からのファイル・アクセスを区別することができず、いずれも仮想マシン400(というアプリケーション)からのファイル・アクセスとして認識するため、アクセス制御リストに基づいてこれを許可してしまうからである。
【0009】
もちろん、この問題は、図13に示すように、ホストOS204上にインストールしたセキュリティ・エージェント500と同じセキュリティ・エージェント500をゲストOS404上にも重ねてインストールすることによって、一応は解決する。しかし、残念ながら、ことはそう簡単ではない。なぜなら、管理者が強制的にゲストOS404側にセキュリティ・エージェント500をインストールしたとしても、ユーザは、自身の権限でこれを簡単にアンインストールすることができ、仮想マシン環境に権限を持たない管理者は、セキュリティ・エージェント500が仮想マシンからアンインストールされた事実を知ることができないからである。したがって、管理者にできることと言えば、ユーザに対してセキュリティ・エージェントを導入するようにお願いすることしかなく、後はユーザの良心に任せるよりほか術がないのが現状である。つまり、現状では、仮想マシン環境は、管理者の目が届かないブラックボックスとなっており、これを放置することは、セキュリティ・リスクの増大に直結する。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2007−287078号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
本発明は、上記従来技術における課題に鑑みてなされたものであり、本発明は、安全に管理された仮想マシンの実行環境を構築する方法およびそのために用いられるプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明者らは、安全に管理された仮想マシンの実行環境を構築する方法につき鋭意検討した結果、仮想マシンのウィンドウ画面を選択的にマスクする手段とセキュリティ機能が一体化したプログラムをユーザ端末のホストOS上に管理者権限でインストールした上で、管理者が仮想マシンに導入させたいと考えるセキュリティ機能と上記マスクを解除するため手段が一体化したプログラムをユーザに提供する構成に想到し、本発明に至ったのである。
【0013】
すなわち、本発明によれば、コンピュータに対し、アプリケーションのアクセスを制御するためのアクセス制御手段と、画面描画命令をフックするための描画命令フック手段であって、仮想マシン・アプリケーションが発行する画面描画命令を選択的にフックする第1のモードと、アプリケーションが発行する画面描画命令をフックする第2のモードとを有する描画命令フック手段と、フックした前記画面描画命令について共通鍵暗号方式による暗号処理を実行する暗号処理手段と、前記描画命令フック手段の動作モードを切り替えるためのモード切替手段とを実現するためのコンピュータ実行可能なプログラムが提供される。本発明においては、前記モード切替手段は、前記プログラムがインストールされたOSがホストOSまたはゲストOSのいずれであるかを判定する手段を備え、前記OSがホストOSである実マシンモードのときに、前記描画命令フック手段を前記第1のモードにセットし、前記OSがゲストOSである仮想マシンモードのときに、前記描画命令フック手段を前記第2のモードにセットするものとすることができ、前記コンピュータに対し、さらに、前記暗号処理に使用する秘密鍵を管理するための秘密鍵管理手段を実現するように構成することもできる。本発明においては、前記秘密鍵管理手段は、前記秘密鍵としてランダムキーを生成するためのキー生成手段と、他のプロセスとの間で前記ランダムキーの送受信を実行するキー送受信手段とを含むことができ、前記実マシンモードのときに、前記ランダムキーを前記他のプロセスに送信し、前記仮想マシンモードのときに、前記ランダムキーを前記他のプロセスから受信するように構成することができる。また、本発明においては、前記キー送受信手段は、名前付きパイプまたは共有フォルダ機構を介して前記ランダムキーの送受信を実行するように構成することができる。
【0014】
また、本発明によれば、ユーザ端末について安全に管理された仮想マシンの実行環境の構築を促進するための方法であって、ユーザ端末のホストOS上に第1のセキュリティ・アプリケーションを管理者権限でインストールするステップと、前記ユーザ端末のユーザに対し、第2のセキュリティ・アプリケーションを提供するステップとを含み、前記第1のセキュリティ・アプリケーションは、コンピュータに対し、アプリケーションのアクセスを制御するためのアクセス制御手段と、仮想マシン・アプリケーションが発行する画面描画命令を選択的にフックするための第1の描画命令フック手段と、前記第1の描画命令フック手段がフックした前記画面描画命令について共通鍵暗号方式による暗号処理を実行する暗号処理手段とを実現するためのコンピュータ実行可能なプログラムであり、前記第2のセキュリティ・プログラムは、コンピュータに対し、アプリケーションのアクセスを制御するためのアクセス制御手段と、アプリケーションが発行する画面描画命令をフックするための第2の描画命令フック手段と、前記第2の描画命令フック手段がフックした前記画面描画命令について共通鍵暗号方式による暗号処理を実行する暗号処理手段とを実現するためのコンピュータ実行可能なプログラムである方法が提供される。
【0015】
さらに、本発明によれば、ホストOS上に仮想マシンが構築された仮想化環境を備え、前記ホストOS上に第1のセキュリティ・エージェントが常駐し、仮想マシンのゲストOS上に第2のセキュリティ・エージェントが常駐するコンピュータ装置であって、前記第1のセキュリティ・エージェントは、前記ホストOS上のアプリケーションのアクセスを制御するためのアクセス制御部と、前記仮想マシンが発行する画面描画命令を選択的にフックするための第1の描画命令フック部と、前記第1の描画命令フック部がフックした前記画面描画命令について共通鍵暗号方式による暗号処理を実行する暗号処理部とを含み、前記第2のセキュリティ・エージェントは、前記ゲストOS上のアプリケーションのアクセスを制御するためのアクセス制御部と、前記ゲストOS上のアプリケーションが発行する画面描画命令をフックするための第2の描画命令フック部と、前記第2の描画命令フック部がフックした前記画面描画命令について共通鍵暗号方式による暗号処理を実行する暗号処理部とを含むコンピュータ装置が提供される。
【発明の効果】
【0016】
上述したように、本発明によれば、安全に管理された仮想マシンの実行環境を構築する方法およびそのために用いられるプログラムが提供される。
【図面の簡単な説明】
【0017】
【図1】本実施形態のセキュリティ・エージェントの機能ブロック図。
【図2】本実施形態のセキュリティ・エージェントのインストール時のホストOS画面を示す図。
【図3】仮想化環境が構築されたPCのホストOS上に本実施形態のセキュリティ・エージェントがインストールされた状態を示す図。
【図4】判読不能な状態になった仮想マシンのウィンドウ画面を示す図。
【図5】「セットアップ・モード」を設定するためのプロパティ画面を示す図。
【図6】本実施形態のセキュリティ・エージェントが「セットアップ・モード」に設定された状態を示す図。
【図7】本実施形態のセキュリティ・エージェントのインストール時の仮想マシンのウィンドウ画面を示す図。
【図8】ホストOSおよびゲストOSの両方に本実施形態のセキュリティ・エージェントがイントールされた状態を示す図。
【図9】秘密鍵を動的に更新する構成を採用した本実施形態のセキュリティ・エージェントを搭載したPCを示す図。
【図10】ホストOS型の仮想化環境が構築されたPCを示す図。
【図11】実マシンのホストOS画面の上位レイヤーに仮想マシンのウィンドウ画面が表示された状態を示す図。
【図12】仮想マシン環境を備える実マシンのホストOS上に従来型のセキュリティ・エージェントが導入された状態を示す図。
【図13】ホストOSおよびゲストOSの両方に従来型のセキュリティ・エージェントがイントールされた状態を示す図。
【発明を実施するための形態】
【0018】
以下、本発明を図面に示した実施の形態をもって説明するが、本発明は、図面に示した実施の形態に限定されるものではない。なお、以下に参照する各図においては、共通する要素について同じ符号を用い、適宜、その説明を省略するものとする。
【0019】
本発明の方法によれば、安全に管理された仮想マシンの実行環境を構築することができる。本発明の方法は、ホストOS型の仮想化環境に適用されることを前提とするものであり、その実現のために本発明の新規なセキュリティ・アプリケーションを用いる。本発明のセキュリティ・アプリケーションは、ユーザ端末のホストOSおよび仮想マシンのゲストOSの両方にインストールされることを前提とするプログラム製品として提供される。ここでプログラム製品とは、プログラムを記録した記録媒体およびネットワークを介して提供される形態を含む。本発明に係るプログラム製品は、PCにインストールされることによって以下に説明する機能手段をコンピュータ上に実現する。
【0020】
図1は、本発明のセキュリティ・アプリケーションの実施形態であるセキュリティ・エージェント100の機能ブロック図を示す。本実施形態のセキュリティ・エージェント100は、セキュリティ機能部110と画面マスク処理部120を含んで構成される。セキュリティ機能部110は、少なくともアクセス制御部112を含んで構成される。アクセス制御部112は、OS上で動作するアプリケーションのファイル・アクセスおよびネットワーク・アクセスについて強制アクセス制御を実行する機能部であり、管理者が定義するセキュリティポリシーに則って、アプリケーションからのアクセスにつきその許否を判断する。具体的には、セキュリティポリシーがセットされたアクセス制御リスト(ACL)に基づいて制御内容を決定する。なお、セキュリティ機能部110には、アクセス制御部112の他に、ログ監査部などの必要な機能部を適宜追加してもよい。
【0021】
一方、画面マスク処理部120は、描画命令フック部122と、暗号処理部124と、秘密鍵管理部126と、モード切替部128とを含んで構成される。描画命令フック部122は、OS上で動作するアプリケーションからGDI(Graphical Device Interface)に対して発行される画面描画命令をフック(Hook)するAPIフック手段であり、好ましくは、3つの動作モードを有する。すなわち、仮想マシン・アプリケーションが発行する画面描画命令をだけを選択的にフックする第1のモード、OS上で動作するアプリケーション(OS付属プログラムを含む)が発行する画面描画命令をフックする第2のモード、および、画面描画命令をフックしない第3のモードである。
【0022】
暗号処理部124は、描画命令フック部122がフックした画面描画命令を共通鍵暗号方式によって暗号処理(暗号化/復号)する機能部である。本実施形態においては、共通鍵暗号方式として、ビットごとの排他的論理和演算を利用したブロック暗号やストリーム暗号などの既知の手法を採用することができる。
【0023】
秘密鍵管理部126は、暗号処理部124が実行するビットごとの排他的論理和演算(以下、単に、XOR演算という)において用いられる鍵データの基となる秘密鍵を管理する機能部である。ブロック暗号を採用する場合、暗号処理部124は、秘密鍵管理部126から読み出した秘密鍵に基づいて拡大鍵を生成し、これを使用してXOR演算を実行する。ストリーム暗号を採用する場合、暗号処理部124は、秘密鍵管理部126から読み出した秘密鍵を初期値とした疑似乱数列(鍵ストリーム)を生成し、これを使用してXOR演算を実行する。
【0024】
本発明は、実マシンのホストOSおよび仮想マシンのゲストOSのそれぞれにインストールされる2つのセキュリティ・エージェント100が同一の秘密鍵(すなわち、共通鍵)を管理することを前提として成立する。両者の間で秘密鍵の同一性を担保する最も単純な方法は、全てのプログラム製品の製造時に、同一の秘密鍵を設定しておく方法である。この場合、秘密鍵管理部126には当該秘密鍵が固定値として保持される。この他に、本発明は、管理者およびユーザのそれぞれがアプリケーションのインストール時に秘密鍵をセットする第2の方法、一方のセキュリティ・エージェント100が秘密鍵を自動生成して他方にそれを通知する第3の方法を採用することができる。
【0025】
セキュリティ・エージェント100は、好ましくは、3つの動作モードを有する。1つめは、実マシンのホストOS上で動作させるための「実マシンモード」であり、2つめは、仮想マシンのゲストOS上で動作させるための「仮想マシンモード」である。3つめは、仮想マシンのゲストOS上にセキュリティ・エージェント100をインストールするための「セットアップ・モード」である。モード切替部128は、描画命令フック部122およびアクセス制御部112に働きかけてこれら3つの動作モードを実現するための機能部であり、外部からの指示に応じて、あるいは、自動的に、動作モードを切り替える。以上、本実施形態のセキュリティ・エージェント100の構成について概説してきたが、続いて、セキュリティ・エージェント100を用いることによって実現される本発明の方法、すなわち、安全に管理された仮想マシンの実行環境を提供する方法について説明する。
【0026】
本発明の方法においては、管理者は、ユーザのPCに本実施形態のセキュリティ・エージェント100をインストールした上で、これと同様のセキュリティ・エージェント100をユーザに提供し、仮想マシン上にインストールするように命じる。この場合、一見すると、ユーザが管理者の命令に従う必然性が無いようにも見える。なぜなら、ユーザは、管理者が実際に仮想マシン上にセキュリティ・エージェント100をインストールされている否かを確認できないことを知っているからである。この点につき、本発明の方法は、ユーザが管理者の命令に従わざるを得ないシチュエーションを創り出す。以下、その具体的な内容について順を追って説明する。なお、以下の説明においては、適宜、図1を参照するものとする。
【0027】
(ステップ1)
まず、管理者は、ユーザのPCのホストOS上に本実施形態のセキュリティ・エージェント100をインストールする。このとき、セキュリティ・エージェント100に対し、動作モードおよび秘密鍵が設定される。本発明においてはこれらを自動的に設定するように構成することもできるが、この点については後に説明するとものとし、ここでは、動作モードおよび秘密鍵を手動で設定する実施形態を例にとって説明する。
【0028】
図2は、インストール作業時のホストOS画面1000を示す。ホストOS画面1000には、インストール・ウィザード1004が表示されている。管理者は、図2(a)に示すインストール・ウィザードの動作モード選択画面1004aにおいて「実マシンモード」を選択する。続いて、管理者は、図2(b)に示すインストール・ウィザードのパスワード設定画面1004bを介してパスワードを入力する。上述した手順を経てPCのホストOS上にインストールされたセキュリティ・エージェント100のモード切替部128には、選択された「実マシンモード」が設定され、秘密鍵管理部126には、入力されたパスワードが秘密鍵として設定される。なお、本実施形態においては、セキュリティ・エージェント100は、管理者権限でホストOS上にインストールされ、ユーザは、これを勝手にアンインストールすることができず、設定内容(動作モード、パスワード)を変更することも制限される。なお、本実施形態においては、インストール・ウィザード画面に代えて、専用のダイアログ画面から動作モードおよびパスワード設定するように構成してもよく、本発明は、それらの具体的な構成に限定されない。
【0029】
PCのホストOS上にのみセキュリティ・エージェント100がインストールされた場合、仮想化環境は実質的に利用不能になる。以下、この点を図3に基づいて説明する。図3は、仮想化環境が構築されたPCのホストOS204上にセキュリティ・エージェント100がインストールされた状態を示す。図3に示す例の場合、ホストOS204上に、「アプリA」、「アプリB」、「アプリC」という3つのアプリケーションとともに、仮想マシン・アプリケーション400(以下、仮想マシン400として参照する)が展開されている。なお、図3においては、仮想マシン400の仮想ハードウェア領域および共通プラットフォームは省略して示す(以下の図において同様)。さらに、仮想マシン400のゲストOS404上には、「アプリA」、「アプリD」、「アプリE」という3つのアプリケーションが展開されている。ここで、「アプリA」については、セキュリティポリシーがその使用を禁止しているアプリケーションとして参照されたい。
【0030】
先に述べたように、ホストOS204上のセキュリティ・エージェント100のモード切替部128は、「実マシンモード」に設定される。この場合、モード切替部128は、描画命令フック部122を第1のモード、すなわち、仮想マシン400が発行する画面描画命令のみを選択的にフックするモードにセットする。この時、仮想マシン400を表示するウィンドウが占める領域のうち、クライアント領域と呼ばれるウィンドウ内部のみをフックし、非クライアント領域と呼ばれるウィンドウ枠やタイトル領域はフックしない方式が望ましい。その結果、仮想マシン400内で動く「アプリA」、「アプリD」、「アプリE」から発行される画面描画命令ならびにゲストOS404に付属する描画アプリケーション(壁紙やデスクトップを描画する)から発行される画面描画命令が描画命令フック部122によってフックされる。これを受けて、暗号処理部124は、秘密鍵管理部126に設定されたパスワード(秘密鍵)を読み出し、描画命令フック部122がフックした画面描画命令について共通鍵暗号方式による暗号化を実行する。
【0031】
暗号化された画面描画命令が、画面マスク処理部120からホストOS204に転送され、図示しないGDIおよびVideo Driverの処理を経てディスプレイ装置に出力されると、図4に示すように、仮想マシン400のウィンドウ画面2000が判読不能な状態になり、ユーザは、画面上の操作ができなくなる。その結果、仮想化環境で動作する全てのアプリケーション(禁止された「アプリA」、「アプリD」、「アプリE」)を利用することが実質的に不可能になる。
【0032】
(ステップ2)
ユーザのPCへのセキュリティ・エージェント100のインストールが完了した後、管理者は、ユーザに対し、仮想マシン400上にセキュリティ・エージェント100をインストールされている場合に限り、ウィンドウ画面のマスクが解除される旨を伝える。その上で、管理者は、ホストOS204のセキュリティ・エージェント100に設定したパスワード情報(秘密鍵)とともに、ゲストOS用のセキュリティ・エージェント100をユーザに提供し、あとは、ユーザの自主性に任せるだけである。しかし、管理者によってこのようなシチュエーションが創出されると、仮想化環境を利用したいユーザは、管理者が所望するセキュリティ・エージェント100を仮想マシン400上にインストールすることを受け入れざるを得なくなる。
【0033】
(ステップ3)
管理者からのアナウンスを受けて、ユーザは、自ら、仮想マシン400上にセキュリティ・エージェント100をインストールする。ただし、仮想マシン400のウィンドウ画面2000がマスクされた状態では、インストール作業自体を行うことができないので、ホストOS204上のセキュリティ・エージェント100を「セットアップ・モード」に設定する。先に述べたように、ホストOS204上のセキュリティ・エージェント100の設定内容を変更するには、基本的に管理者権限が必要となるが、本実施形態においては、「セットアップ・モード」の設定についてのみユーザに許可する。この場合、ユーザは、図5(a)に示すようなプロパティ画面1006をセキュリティ・エージェント100から呼び出して「セットアップ・モード」を設定することができる。
【0034】
図6は、ホストOS204上のセキュリティ・エージェント100が「セットアップ・モード」に設定された状態を示す。「セットアップ・モード」において、モード切替部128は、描画命令フック部122を第3のモード、すなわち、画面描画命令をフックしないモードにセットする。その結果、仮想マシン400から発行される画面描画命令は、セキュリティ・エージェント100をスルーしてそのままホストOS204に転送されるので、仮想マシン400のウィンドウ画面2000は、図5(b)に示すような通常の状態に戻る。
【0035】
併せて、「セットアップ・モード」において、モード切替部128は、仮想マシン400についてのアクセス制限の内容を変更するようにアクセス制御部112に依頼する。具体的には、モード切替部128は、仮想マシン400から発行されるファイル・アクセスの内、セキュリティ・エージェント100のプログラムを収めたEXEファイル210へのファイル・アクセスを除く全てのファイル・アクセスならびにネットワーク・アクセスを禁止するようにアクセス制御部112に依頼する。アクセス制御部112は、これを受けてACLをそのように修整する。上述した設定条件の下では、ユーザに、ウィンドウ画面2000を操作してEXEファイル210へアクセスすることが許可されるので、セキュリティ・エージェント100のインストール作業を実行することが可能になる。
【0036】
なお、「セットアップ・モード」においては、仮想マシン400から発行される画面描画命令をフックすることなく転送するので、禁止された「アプリA」の画面を含む全ての画面が表示されることなるが、アクセス制御部112が制御内容を変更することによって仮想マシン400からのファイル・アクセス(EXEファイル210を除く)ならびにネットワーク・アクセスが全て禁止されるため、この間、「アプリA」はフリーズした状態になり、使用することができなくなる。つまり、「セットアップ・モード」においては、PCのセキュリティ状態は適正に維持されるのである。ただし、このままでは、本来許可されるべき「アプリD」、「アプリE」についても同様に使用することができないことに留意されたい。
【0037】
図7は、インストール作業時の仮想マシン400のウィンドウ画面2000を示す。ウィンドウ画面2000には、インストール・ウィザード2004が表示されている。ユーザは、図7(a)に示すインストール・ウィザードの動作モード選択画面2004aにおいて「仮想マシンモード」を選択する。続いて、ユーザは、図7(b)に示すインストール・ウィザードのパスワード設定画面1004bを介して管理者から提供されたパスワードを入力する。ユーザは、インストール・ウィザードに従ってインストール作業を完了すると、ホストOS204上のセキュリティ・エージェント100のプロパティ画面1006を再び呼び出して「セットアップ・モード」を解除する。これに応答して、ホストOS204上のセキュリティ・エージェント100は、「実マシンモード」に戻る。あるいは、ホストOS204側がインストール完了を自動検出し、これに応答して、ホストOS204上のセキュリティ・エージェント100が「実マシンモード」に戻るように構成することもできる。
【0038】
図8は、ホストOS204およびゲストOS404の両方にセキュリティ・エージェント100がイントールされた状態を示す。なお、図8においては、2つのエージェントを区別するために、ホストOS204側をセキュリティ・エージェント100(H)とし、ゲストOS404側をセキュリティ・エージェント100(G)として示す。
【0039】
図7(a)に示したユーザによる動作モード設定によって、セキュリティ・エージェント100(G)は「仮想マシンモード」がセットされている。この場合、モード切替部128Gは、描画命令フック部122Gを第2のモード、すなわち、OS上のアプリケーションが発行する画面描画命令をフックするモードにセットする。その結果、仮想マシン400内で動く「アプリA」、「アプリD」、「アプリE」から発行される画面描画命令ならびにゲストOS404に付属する描画アプリケーションから発行される画面描画命令が描画命令フック部122Gによってフックされる。これを受けて、暗号処理部124Gは、秘密鍵管理部126Gに設定されたパスワード(秘密鍵)を読み出し、描画命令フック部122がフックした画面描画命令について共通鍵暗号方式による暗号処理(暗号化)を実行する。なお、図7(b)に示したユーザによるパスワード設定によって、秘密鍵管理部126Gには、セキュリティ・エージェント100(H)の秘密鍵管理部126Hにセットされたものと同一の秘密鍵がセットされていることに留意されたい。
【0040】
画面マスク処理部120GにおけるXOR演算によって暗号化された画面描画命令は、仮想マシン400からホストOS204に対して発行される。このとき、実マシンモードで動作しているセキュリティ・エージェント100(H)の描画命令フック部122Hは、仮想マシン400から発行された画面描画命令(暗号化された画面描画命令)を選択的にフックする。これを受けて、暗号処理部124Hは、秘密鍵管理部126Hに設定されたパスワード(秘密鍵)を読み出し、描画命令フック部122Hがフックした画面描画命令(暗号化された画面描画命令)について共通鍵暗号方式による暗号処理(復号)を実行する。つまり、ホストOS204およびゲストOS404の両方にセキュリティ・エージェント100がイントールされている場合には、同一の鍵データを用いたXOR演算が2回行われることになるので、仮想マシン400内で発行される全ての画面描画命令は、平文に戻された状態でホストOS204に転送され、その結果、禁止された「アプリA」の画面を含む全ての画面が表示されることなる。
【0041】
一方、セキュリティ・エージェント100(G)のアクセス制御部112Gは、セキュリティ・エージェント100(H)のアクセス制御部112Hと同じ制御内容で動作しているので、「アプリA」からのファイル・アクセスならびにネットワーク・アクセスが全て禁止される一方、「アプリD」、「アプリE」からのアクセスは許可される。つまり、仮想マシン400にセキュリティ・エージェント100(G)が導入されたことにより、仮想マシン400が実マシンと同じセキュリティ環境に置かれたのである。
【0042】
以上、説明したように、ユーザは、セキュリティ・エージェント100(G)を仮想マシン400にインストールすること(すなわち、管理者の定義するセキュリティポリシーを遵守すること)と引き替えに、仮想マシン環境の利用を許されることになる。本発明の構成は、ユーザが、セキュリティ・エージェント100(G)をアンインストールしたり、管理者の許可なく別の仮想マシン・アプリケーションをインストールしたりすることを強制的に排除するものではないが、実質的に等価な効果をユーザに及ぼすことができ、その結果、安全に管理された仮想マシンの実行環境が構築される。
【0043】
なお、上述した実施形態においては、セキュリティ・エージェント100の動作モード(実マシンモード/仮想マシンモード)をユーザの指示によって切り替える態様について示したが、セキュリティ・エージェント100自身が自律的に動作モードを切り替えるように構成することもできる。この場合、モード切替部128は、セキュリティ・エージェント100がインストールされたOSがホストOSまたはゲストOSのいずれであるかをOSから読み出したハードウェア属性やBIOS情報に基づいて判定する手段を備える。モード切替部128は、セキュリティ・エージェント100がインストールされたOSがホストOSであると判定した場合には、セキュリティ・エージェント100を「実マシンモード」にセットし、ゲストOSであると判定した場合には、セキュリティ・エージェント100を「仮想マシンモード」にセットする。
【0044】
また、上述した実施形態においては、実マシンのホストOSおよび仮想マシンのゲストOSのそれぞれにインストールされる2つのセキュリティ・エージェント100が共有する秘密鍵を固定鍵として設定する構成について説明したが、悪意あるプログラムによって秘密鍵情報が盗用されることを防止するため、秘密鍵が動的に更新されるように構成することもできる。この点について図9を参照して説明する。
【0045】
図9は、秘密鍵を動的に更新する構成を採用したセキュリティ・エージェント100を搭載したPC200(実マシン)を示す。本実施形態におけるセキュリティ・エージェント100の秘密鍵管理部126は、ランダムキーを動的に生成するためのキー生成部125と、他のプロセスとの間でランダムキーの送受信を実行するためのキー送受信部127を備える。本実施形態における秘密鍵管理部126は、2つの動作モードを有する。すなわち、秘密鍵としてランダムキーを動的に生成しこれを他のプロセス宛てに送信する第1のモードと、他のプロセスからランダムキーを受信してこれを秘密鍵としてセット(更新)する第2のモードである。図示しないモード切替部128は、秘密鍵管理部126の2つの動作モードを切り替える。具体的には、セキュリティ・エージェント100が「実マシンモード」に設定されている場合には、その秘密鍵管理部126を第1のモードにセットし、「仮想マシンモード」に設定されている場合には、その秘密鍵管理部126を第2のモードにセットする。
【0046】
図9に示す例の場合、ホストOS204上のセキュリティ・エージェント100(H)の秘密鍵管理部126Hは、第1のモードで動作する。その結果、キー生成部125Hが秘密鍵としてランダムキーを動的に生成し、キー送受信部127Hが生成したランダムキーを他のプロセス(すなわち、セキュリティ・エージェント100(G)の秘密鍵管理部126G)に宛てて送信する。一方で、ゲストOS404上のセキュリティ・エージェント100(G)の秘密鍵管理部126Gは、第2のモードで動作する。その結果、秘密鍵管理部126Gのキー送受信部127Gは、他のプロセス(すなわち、セキュリティ・エージェント100(H)の秘密鍵管理部126H)からランダムキーを受信し、これを秘密鍵としてセット(更新)する。このとき、秘密鍵管理部126Hと秘密鍵管理部126Gの間のプロセス間通信は、名前付きパイプ220を介して実行することができる。
【0047】
また、仮想マシン・アプリケーションが、ホストOS204上の特定のファイルについて、ゲストOS404からの読み書きを可能にする共有フォルダ機能を備えている場合には、共有フォルダ上に秘密鍵用のファイルを設け、これを介して秘密鍵を共有(送受信)することもできる。なお、秘密鍵情報に対する不正なアクセスを防止するため、秘密鍵の交換に使用する名前付きパイプや共有フォルダには、適切なアクセス制限を設ける他、通信データやファイルを暗号化するなどしてセキュアな状態に置くことが好ましい。
【0048】
以上、本発明について、セキュリティ・エージェントが「実マシンモード」と「仮想マシンモード」の2つ動作モードを切替可能に有する実施形態をもって説明してきたが、本発明は、上述した実施形態に限定されるものではない。例えば、本発明の方法は、「実マシンモード」の動作設定をデフォルトとする第1のセキュリティ・アプリケーションと、「仮想マシンモード」の動作設定をデフォルトとする第2のセキュリティ・アプリケーションを別々に用意し、管理者が、ユーザ端末のホストOS上に第1のセキュリティ・アプリケーションを管理者権限でインストールした上で、ユーザに対し、第2のセキュリティ・アプリケーションを提供することによって実現することができる。その他、当業者が推考しうる実施態様の範囲内において、本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【0049】
また、本発明の上記機能は、C、C++、C#、Java(登録商標)などのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、CD−ROM、MO、DVD、フレキシブルディスク、EEPROM、EPROMなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【符号の説明】
【0050】
100…セキュリティ・エージェント
110…セキュリティ機能部
112…アクセス制御部
120…画面マスク処理部
122…描画命令フック部
124…暗号処理部
125…キー生成部
126…秘密鍵管理部
127…キー送受信部
128…モード切替部
200…実マシン
202…ハードウェア
204…ホストOS
210…EXEファイル
220…名前付きパイプ
400…仮想マシン
401…共通プラットフォーム
402…仮想ハードウェア領域
404…ゲストOS
500…セキュリティ・エージェント
502…アクセス制御部
504…ログ監査部
1000…ホストOS画面
1004…インストール・ウィザード
1006…プロパティ画面
2000…仮想マシンのウィンドウ画面
2004…インストール・ウィザード

【特許請求の範囲】
【請求項1】
コンピュータに対し、
アプリケーションのアクセスを制御するためのアクセス制御手段と、
画面描画命令をフックするための描画命令フック手段であって、仮想マシン・アプリケーションが発行する画面描画命令を選択的にフックする第1のモードと、アプリケーションが発行する画面描画命令をフックする第2のモードとを有する描画命令フック手段と、
フックした前記画面描画命令について共通鍵暗号方式による暗号処理を実行する暗号処理手段と、
前記描画命令フック手段の動作モードを切り替えるためのモード切替手段と
を実現するためのコンピュータ実行可能なプログラム。
【請求項2】
前記モード切替手段は、前記プログラムがインストールされたOSがホストOSまたはゲストOSのいずれであるかを判定する手段を備え、前記OSがホストOSである実マシンモードのときに、前記描画命令フック手段を前記第1のモードにセットし、前記OSがゲストOSである仮想マシンモードのときに、前記描画命令フック手段を前記第2のモードにセットする、請求項1に記載のプログラム。
【請求項3】
前記コンピュータに対し、さらに、前記暗号処理に使用する秘密鍵を管理するための秘密鍵管理手段を実現する、請求項1または2に記載のプログラム。
【請求項4】
前記秘密鍵管理手段は、
前記秘密鍵としてランダムキーを生成するためのキー生成手段と、
他のプロセスとの間で前記ランダムキーの送受信を実行するキー送受信手段とを含む、
請求項3に記載のプログラム。
【請求項5】
前記キー送受信手段は、
前記実マシンモードのときに、前記ランダムキーを前記他のプロセスに送信し、
前記仮想マシンモードのときに、前記ランダムキーを前記他のプロセスから受信する、
請求項4に記載のプログラム。
【請求項6】
前記キー送受信手段は、名前付きパイプを介して前記ランダムキーの送受信を実行する、請求項4または5に記載のプログラム。
【請求項7】
前記キー送受信手段は、共有フォルダ機構を介して前記ランダムキーの送受信を実行する、請求項4または5に記載のプログラム。
【請求項8】
前記秘密鍵管理手段は、外部からの設定入力に基づいて前記秘密鍵を設定する、請求項3に記載のプログラム。
【請求項9】
前記モード切替手段は、外部からのモード設定入力に応答して、前記描画命令フック手段を前記第1のモードまたは前記第2のモードにセットする、請求項1に記載のプログラム。
【請求項10】
コンピュータに対し、
アプリケーションのアクセスを制御するためのアクセス制御手段と、
画面描画命令をフックするための描画命令フック手段であって、仮想マシン・アプリケーションが発行する画面描画命令を選択的にフックする第1のモードと、アプリケーションが発行する画面描画命令をフックする第2のモードとを有する描画命令フック手段と、
フックした前記画面描画命令について共通鍵暗号方式による暗号処理を実行する暗号処理手段と、
を実現するためのコンピュータ実行可能なプログラム。
【請求項11】
請求項1〜10のいずれか一項に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項12】
ホストOS上に仮想マシンが構築された仮想化環境を備え、前記ホストOS上に第1のセキュリティ・エージェントが常駐し、仮想マシンのゲストOS上に第2のセキュリティ・エージェントが常駐するコンピュータ装置であって、
前記第1のセキュリティ・エージェントは、
前記ホストOS上のアプリケーションのアクセスを制御するためのアクセス制御部と、
前記仮想マシンが発行する画面描画命令を選択的にフックするための第1の描画命令フック部と、
前記第1の描画命令フック部がフックした前記画面描画命令について共通鍵暗号方式による暗号処理を実行する暗号処理部と
を含み、
前記第2のセキュリティ・エージェントは、
前記ゲストOS上のアプリケーションのアクセスを制御するためのアクセス制御部と、
前記ゲストOS上のアプリケーションが発行する画面描画命令をフックするための第2の描画命令フック部と、
前記第2の描画命令フック部がフックした前記画面描画命令について共通鍵暗号方式による暗号処理を実行する暗号処理部と
を含む、
コンピュータ装置。
【請求項13】
前記第1のセキュリティ・エージェントおよび前記第2のセキュリティ・エージェントは、前記暗号処理部が使用する秘密鍵を管理するための秘密鍵管理部を含む、請求項12に記載のコンピュータ装置。
【請求項14】
前記秘密鍵管理部は、
前記秘密鍵としてランダムキーを生成するためのキー生成部と、
他のプロセスとの間で前記ランダムキーの送受信を実行するキー送受信部とを含む、
請求項13に記載のコンピュータ装置。
【請求項15】
前記第1のセキュリティ・エージェントの前記キー送受信部は、前記ランダムキーを生成して前記第2のセキュリティ・エージェントの前記キー送受信部に送信する、
請求項14に記載のコンピュータ装置。
【請求項16】
前記キー送受信部は、名前付きパイプを介して前記ランダムキーの送受信を実行する、請求項14または15に記載のコンピュータ装置。
【請求項17】
前記キー送受信手段は、共有フォルダ機構を介して前記ランダムキーの送受信を実行する、請求項14または15に記載のコンピュータ装置。
【請求項18】
ユーザ端末について安全に管理された仮想マシンの実行環境の構築を促進するための方法であって、
ユーザ端末のホストOS上に第1のセキュリティ・アプリケーションを管理者権限でインストールするステップと、
前記ユーザ端末のユーザに対し、第2のセキュリティ・アプリケーションを提供するステップとを含み、
前記第1のセキュリティ・アプリケーションは、
コンピュータに対し、
アプリケーションのアクセスを制御するためのアクセス制御手段と、
仮想マシン・アプリケーションが発行する画面描画命令を選択的にフックするための第1の描画命令フック手段と、
前記第1の描画命令フック手段がフックした前記画面描画命令について共通鍵暗号方式による暗号処理を実行する暗号処理手段と
を実現するためのコンピュータ実行可能なプログラムであり、
前記第2のセキュリティ・プログラムは、
コンピュータに対し、
アプリケーションのアクセスを制御するためのアクセス制御手段と、
アプリケーションが発行する画面描画命令をフックするための第2の描画命令フック手段と、
前記第2の描画命令フック手段がフックした前記画面描画命令について共通鍵暗号方式による暗号処理を実行する暗号処理手段と
を実現するためのコンピュータ実行可能なプログラムである、
方法。
【請求項19】
前記第1のセキュリティ・アプリケーションが前記コンピュータに対して実現する前記アクセス制御手段と前記第2のセキュリティ・アプリケーションが前記コンピュータに対して実現する前記アクセス制御手段が同一のセキュリティポリシーに基づいて動作する、請求項18に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2013−12018(P2013−12018A)
【公開日】平成25年1月17日(2013.1.17)
【国際特許分類】
【出願番号】特願2011−143993(P2011−143993)
【出願日】平成23年6月29日(2011.6.29)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【復代理人】
【識別番号】100110607
【弁理士】
【氏名又は名称】間山 進也
【Fターム(参考)】