【セキュリティ最前線】仮想マシンとセキュリティ「セキュアVM」
第4回:土台となるハードウェアのアーキテクチャ
著者:東京工業大学 光来 健一
公開日:2008/1/30(水)
仮想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の仕組み
その他のハードウェア支援とセキュアVMプロジェクト
TXT、VT-d、TPMなどの他にも、セキュリティに直接は関係しないがVMの実現を支援するハードウェアが提供されている。
例えば、インテルVTはCPUに「VMX Rootモード」と呼ばれる新しいCPU動作モードを追加することで、仮想マシンモニタを専用のモードで動かすことを可能にしている。このようなCPU支援がない場合、仮想マシンモニタを保護するために従来特権モードで動かしていたOSを非特権モードで動かすように変更する必要があった。さらに一部の命令が仮想化できなかったため、仮想マシンモニタが命令実行をエミュレートしてやる必要があった。
また第二世代のVTではメモリの仮想化をサポートするために拡張ページテーブル(EPT)が提供されている。従来は仮想アドレスを物理アドレスに変換することだけが必要だったが、VMを使う場合はさらにVMが使うゲスト物理アドレスをホスト物理アドレスに変換する必要がある。EPTを使うことで、この2段階のアドレス変換をハードウェアで行うことができる。
これらのハードウェア支援は直接セキュリティを向上させるものではないが、仮想マシンモニタの実装を容易にするという点からセキュリティ向上にもつながる。仮想化を支援するハードウェアを使って仮想マシンモニタを実装することで、仮想マシンモニタをより小さくすることができ、その結果、バグを減らすことができると考えられるからである。
筑波大学が中心となって進められているセキュアVMプロジェクトでもVTを利用して国産の仮想マシンモニタを開発しており、近々オープンソースとして公開される予定である。この仮想マシンモニタには最終的に「セキュアID管理機構」「セキュアネットワーク管理機構」「セキュアストレージ管理機構」が組み込まれるため、これらを応用した別のセキュリティ機構を開発することも可能になるだろう。
これまでオープンソースの仮想マシンモニタといえばXenが主流であったが、このような国産の仮想マシンモニタも出てきたことで、ますますホットな分野になることは間違いないだろう。セキュアVMの今後の発展に期待したい。 タイトルへ戻る