(邦訳:仮想マシンを用いた調整可能で安全なサーバ統合)
田所 秀和 (株)東芝 研究開発センター |
[背景]仮想マシンを用いたサーバ統合
[問題]仮想マシンが複数存在することによる性能とセキュリティの問題
[貢献]VMMに最小限の機能を実装することで実現
[問題]仮想マシンが複数存在することによる性能とセキュリティの問題
[貢献]VMMに最小限の機能を実装することで実現
仮想マシン(VM)を用いたサーバ統合がよく行われている.複数のサーバを少数の物理マシンに統合することで,リソースを共有し利用効率の向上や管理コストを削減できる.このとき,仮想マシンモニタ(VMM)はCPUやディスク・ネットワークなどのリソースを多重化し,必要に応じて各VMに割り当てる.CPUをどの程度割り当てるかなどVMへのリソース割り当てを設定するために,管理者は管理VMと呼ばれる特権的なVMを用いることが多い.設定以外にも,管理VMはVMのサスペンドやマイグレーションといったVMの一般的な管理に使われる.
このような状況では,各VMは同じ物理マシンを共有する他のVMから影響を受ける.性能の問題では,物理CPUを共有しているため,VM上のプロセスは別のVM上のプロセスとも競合する.例えばアンチウイルスソフトがアイドル時のみ動くよう設定される場合,自分が動くVMがアイドル時にはたとえ他のVMが動いている場合にも動いてしまう.この結果,重要なプロセスの実行を阻害してしまうことがある.セキュリティの問題では,管理VMの特権が原因で,管理VMを経由してVMの情報が漏洩する恐れがある.もし攻撃者が管理VMに侵入したら,VMのメモリから簡単に機密情報を盗むことができる.管理VMはサスペンドやマイグレーションを実現するために,VMのメモリを読み書きする能力がある.この能力を悪用することで,攻撃者は単純にメモリをダンプするだけで,VMのメモリ中の機密情報を取得できる.
このような問題を解決するために,本研究では調整可能で安全なサーバ統合(図-1)を提案する.我々の開発したVMMは,Monarch Schedulerと呼ばれるシステム全体を対象とするプロセススケジューラと,VMCryptと呼ばれるセキュアなメモリマネージャを提供している.これらの特徴は,既存のしくみを利用しVMMに実装する機能を小さく抑えたことである.Monarch SchedulerはゲストOSのプロセススケジューラをその機能の一部として利用し,プロセスの実行を変更する.異なるVMのプロセスでもCPUの利用を調停することで,システム全体でスケジューリングポリシを実現できる.プロセスの実行を制御するために,Monarch SchedulerはゲストOSのメモリを実行時に直接書き換える.例えば,ランキューでCPUを待っているプロセスをキューから取り除くことで,プロセスを止めることができる.再びキューに挿入すれば,もう一度実行可能になる.VMCryptは,暗号化による管理VMへの機密情報漏洩防止と,管理VMによるVM管理を両立している.管理VMに対してメモリを暗号化して見せることで,VM内の機密情報を盗めないようにしている.メモリをダンプしたとしても,VMのメモリ中の機密情報は暗号化されており,情報は漏洩しない.一方で,管理VM上の既存の管理ソフトウェアがそのまま利用できる.既存の管理ソフトウェアは,管理のためにいくつかの領域を読み書きする必要がある.これらの管理に必要な領域だけを暗号化しないことにより,管理と情報漏洩の防止を両立している.
このような状況では,各VMは同じ物理マシンを共有する他のVMから影響を受ける.性能の問題では,物理CPUを共有しているため,VM上のプロセスは別のVM上のプロセスとも競合する.例えばアンチウイルスソフトがアイドル時のみ動くよう設定される場合,自分が動くVMがアイドル時にはたとえ他のVMが動いている場合にも動いてしまう.この結果,重要なプロセスの実行を阻害してしまうことがある.セキュリティの問題では,管理VMの特権が原因で,管理VMを経由してVMの情報が漏洩する恐れがある.もし攻撃者が管理VMに侵入したら,VMのメモリから簡単に機密情報を盗むことができる.管理VMはサスペンドやマイグレーションを実現するために,VMのメモリを読み書きする能力がある.この能力を悪用することで,攻撃者は単純にメモリをダンプするだけで,VMのメモリ中の機密情報を取得できる.
このような問題を解決するために,本研究では調整可能で安全なサーバ統合(図-1)を提案する.我々の開発したVMMは,Monarch Schedulerと呼ばれるシステム全体を対象とするプロセススケジューラと,VMCryptと呼ばれるセキュアなメモリマネージャを提供している.これらの特徴は,既存のしくみを利用しVMMに実装する機能を小さく抑えたことである.Monarch SchedulerはゲストOSのプロセススケジューラをその機能の一部として利用し,プロセスの実行を変更する.異なるVMのプロセスでもCPUの利用を調停することで,システム全体でスケジューリングポリシを実現できる.プロセスの実行を制御するために,Monarch SchedulerはゲストOSのメモリを実行時に直接書き換える.例えば,ランキューでCPUを待っているプロセスをキューから取り除くことで,プロセスを止めることができる.再びキューに挿入すれば,もう一度実行可能になる.VMCryptは,暗号化による管理VMへの機密情報漏洩防止と,管理VMによるVM管理を両立している.管理VMに対してメモリを暗号化して見せることで,VM内の機密情報を盗めないようにしている.メモリをダンプしたとしても,VMのメモリ中の機密情報は暗号化されており,情報は漏洩しない.一方で,管理VM上の既存の管理ソフトウェアがそのまま利用できる.既存の管理ソフトウェアは,管理のためにいくつかの領域を読み書きする必要がある.これらの管理に必要な領域だけを暗号化しないことにより,管理と情報漏洩の防止を両立している.

(2013年6月15日受付)