仮想マシンとセキュリティ「セキュアVM」 4

仮想TPM

仮想TPM

TXTで用いられているTPMはOSやアプリケーションの完全性を検証するためにも使うことができる。しかし、TPMは通常マザーボード上に1 つ存在するハードウェアであり、複数のVMを用いる場合にはすべてのVMが専用のTPMを持つことはできない。そこで各VMに「仮想的な TPM(vTPM)」を提供するという研究が行われており、Xenに統合されている。

vTPMではXenのドメイン0にVMごとのvTPMインスタンスを用意し、各VMのTPMドライバがドメイン0と通信することでTPMを仮想 的に使う(図3)。各VMに独立したTPMを提供しているように見せることで、TPMを利用する従来のソフトウェアをそのまま動かすことができる。

TPMを仮想化する際に考慮しなければならないのは、VMがマイグレーションされて別のホストに移動してしまう可能性があることである。VMをマイグレーションする際には、VMのメモリイメージなどとともにvTPMの状態も送る必要がある。

セキュリティを低下させないようにするために、マイグレーションの際には共通鍵を生成し、vTPMの状態を暗号化する。この共通鍵自体はTPM のストレージキーで暗号化される。ストレージキーはTPM標準で規定されているマイグレーション機能を使うことで安全に送ることができる。

図3:vTPMの仕組み
図3:vTPMの仕組み

その他のハードウェア支援とセキュアVMプロジェクト

TXT、VT-d、TPMなどの他にも、セキュリティに直接は関係しないがVMの実現を支援するハードウェアが提供されている。

例えば、インテルVTはCPUに「VMX Rootモード」と呼ばれる新しいCPU動作モードを追加することで、仮想マシンモニタを専用のモードで動かすことを可能にしている。このようなCPU支 援がない場合、仮想マシンモニタを保護するために従来特権モードで動かしていたOSを非特権モードで動かすように変更する必要があった。さらに一部の命令 が仮想化できなかったため、仮想マシンモニタが命令実行をエミュレートしてやる必要があった。

また第二世代のVTではメモリの仮想化をサポートするために拡張ページテーブル(EPT)が提供されている。従来は仮想アドレスを物理アドレス に変換することだけが必要だったが、VMを使う場合はさらにVMが使うゲスト物理アドレスをホスト物理アドレスに変換する必要がある。EPTを使うこと で、この2段階のアドレス変換をハードウェアで行うことができる。

これらのハードウェア支援は直接セキュリティを向上させるものではないが、仮想マシンモニタの実装を容易にするという点からセキュリティ向上に もつながる。仮想化を支援するハードウェアを使って仮想マシンモニタを実装することで、仮想マシンモニタをより小さくすることができ、その結果、バグを減 らすことができると考えられるからである。

筑波大学が中心となって進められているセキュアVMプロジェクトでもVTを利用して国産の仮想マシンモニタを開発しており、近々オープンソース として公開される予定である。この仮想マシンモニタには最終的に「セキュアID管理機構」「セキュアネットワーク管理機構」「セキュアストレージ管理機 構」が組み込まれるため、これらを応用した別のセキュリティ機構を開発することも可能になるだろう。

これまでオープンソースの仮想マシンモニタといえばXenが主流であったが、このような国産の仮想マシンモニタも出てきたことで、ますますホットな分野になることは間違いないだろう。セキュアVMの今後の発展に期待したい。

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る