【セキュリティ最前線】仮想マシンとセキュリティ「セキュアVM」
第2回:強制アクセス制御機構「sHype」とは?
著者:東京工業大学 光来 健一
公開日:2008/1/16(水)
sHypeのセキュリティポリシー
sHypeはさまざまな強制アクセス制御ポリシーをサポートしている。本記事では「Chinese Wallポリシー」と「Type Enforcementポリシー」について取りあげる。
Chinese Wallポリシーとは指定したVM同士が同時に同じ仮想マシンモニタ(つまり、同じ物理マシン)上で動かないことを保証するものである。例えば、競合するA社とB社がデータセンターにVMを置いている場合を考えよう。万が一、仮想マシンモニタにバグがあったとしてもこの2社のVM間で情報漏洩を起こすことがあってはならない。このような場合には、A社とB社のVMを同じ仮想マシンモニタ上では動かすことができないポリシーを適用しておくことで、事故を防ぐことができる。
Chinese WallポリシーはCWタイプを定義し、VMに割り当てる。そして、いくつかのCWタイプからなる衝突集合を定義し、同じ衝突集合の中のCWタイプを割り当てられたVM同士は同時に動かないことを保証する。上の例では、A社とB社のVMに割り当てたCWタイプを同じ衝突集合に入れておけばよい。
一方、Type EnforcementポリシーとはどのVM間で仮想資源の共有を許可するかを指定するものだ。例えば、Webサーバを動かすVMとデータベースを動かすVMとの間で仮想ネットワークの共有を許すことで、通信できるようにすることができる。その上で、他のVMとの間では仮想ネットワークの共有を禁止しておけば、データベースを動かしているVMからの情報漏洩の危険性を抑えることができる。
Type EnforcementポリシーはTEタイプを定義し、VMに割り当てる。共通のTEタイプを持っているVM間でのみ通信を行うことができる。また、VMと仮想資源に共通のTEタイプが割り当てられている場合のみ、VMはその仮想資源にアクセスすることができる。
sHypeの設計
sHypeの構成は図2のようになっている。仮想マシンモニタに挿入されたセキュリティ強制フックがアクセス制御モジュール(ACM)を呼び出し、強制アクセス制御を行う。
図2:sHypeの構成
sHypeでは仮想マシンモニタの中の「VM操作」「イベントチャンネル操作」「共有メモリ操作」の箇所にセキュリティ強制フックが挿入されている。
VM操作に関しては、VMの作成・破棄、サスペンド/レジューム、マイグレーションなどを行う箇所でフックが呼ばれる。VMを新しく作成したり、サスペンドで一時停止していたVMを復元(レジューム)したり、他のホストからVMを移動(マイグレーション)させたりする際に、VMの実行を開始してよいかどうかをチェックするために使われる。
イベントチャンネルはXen内部でのVM間の通信(ドメイン間通信)を行うために使われる資源であるため、このイベントチャンネルを生成・破棄する箇所でフックが呼ばれる。このフックはドメイン間通信を許可してよいかどうかをチェックするために使われる。
Xenではドメイン間通信の際のデータの受け渡しには共有メモリが使われるため、共有メモリを確立する箇所でもフックが呼ばれる。あるVMのメモリページに他のVMがアクセスしてよいかどうかをチェックするために使われる。
フックから呼び出されたACMは、セキュリティポリシーとVMおよび仮想資源につけられたセキュリティラベルに基づいてアクセスを許可するかどうかを判断する。セキュリティポリシーはポリシーマネージャVMと呼ばれる信頼できるVMからACMに登録される。 次のページ