VMのメモリ暗号化によるクラウド管理者への情報漏洩の防止 田所 秀和(東工大) 内田 昴志(九工大) 光来 健一(九工大/JST CREST) 千葉 滋(東工大) クラウドコンピューティングの普及 VMメモリの暗号化・復号化 ドメイン0によるメモリマップ時に暗号化、アンマップ時に復号化 VMMがページテーブルの変更を検出 ハイパーコール(マップ時) ページフォールト(アンマップ時) ドメインUのメモリを上書きして暗号化 暗号化鍵はVMM内に保持 ドメインUの停止中に行う ドメイン0 ドメインU VMCrypt VMM マシンページ マップ時に暗号化 ネットワークを通して計算機やソフトウェアなどのサービスを提供 Infrastructure as a Service (Iaas) 仮想マシン(VM)を提供 クラウド管理者とゲストOSの管理者は異なる クラウド管理者が信用できるとは限らない 従来はマシンの管理者とOSの管理者は同じ クラウド管理者はユーザVMのメモリから情報を盗むことが可能 例:パスワード、ファイルキャッシュの内容 ハイパーバイザ型の場合 クラウド管理者は特権VMを使いユーザVMを管理 特権VMはユーザVMのメモリを読み書き可能 クラウド管理者への情報漏洩 特権VM ディスク ユーザVM 保存 仮想マシンモニタ メモリ読み込み 漏洩 メモリ サスペンド 非暗号化ページの識別 shared_infoページ VMMとドメインUの情報共有に使用 VMMが確保するので容易に識別可能 start_infoページ ドメイン0とドメインUの情報共有に使用 ドメインUを開始するハイパーコールで仮想レジスタを監視 P2M(Physical to Machine)テーブル サスペンド時はshared_infoからテーブルをたどれる レジューム時に識別するためにテーブル情報を保存 暗号化してドメインUの空きメモリに保存 ページテーブル サスペンド時はVMMが管 理するページタイプで識別 レジューム時はP2Mテー ブルと同様に実装予定 現在はドメイン0から 通知 ドメインU VMM ドメイン0 start_info shared_info VMCrypt: VMメモリの暗号化 特権VMによるアクセス時にVMMがユーザVMのメモリを暗号化 ユーザVMのメモリ内容を特権VMに漏洩させない 特権VMがアクセスする必要があるページは暗号化しない 特権VMがユーザVMのサスペンドなどに利用 漏えいして困る情報ではない 特権VM ディスク ユーザVM 保存 VMCrypt VMM 暗号化メモリ メモリ 暗号化 ドメインU ドメイン0 P2M ページテーブル shared_info 安全なサスペンド・レジューム Xen上の準仮想化Linuxの場合 4種類の非暗号化ページ ドメイン0 shared_info start_info page table P2M table 暗号化 メモリ サスペンドされる ドメインU レジュームされた ドメインU ディスク 保存 復元 非暗号化ページ 暗号化サスペンドに時間がかかる 非暗号化ページの判定が ページ数の2乗の計算量 メモリ割り当て量を変化 XORで暗号化・復号化 実験:サスペンド・レジュームの実行時間 非暗号化ページ識別の実装を完成させる ライブマイグレーションへの対応 ドメインを動かしたままメモリアクセス 完全仮想化に対応 VRAMなど多くのメモリにドメイン0がアクセス 今後の課題