VMのメモリ暗号化による クラウド管理者への情報漏洩の防止 田所 秀和 (東工大) 内田 昴志 (九工大) 光来 健一 (九工大/JST CREST) 千葉 滋 (東工大)
クラウドコンピューティングの普及 ネットワークを通して計算機やソフトウェアなどのサービスを提供 Infrastructure as a Service (Iaas) 仮想マシン(VM)を提供 クラウド管理者とゲストOSの管理者は異なる クラウド管理者が信用できるとは限らない 従来はマシンの管理者とOSの管理者は同じ サービス
クラウド管理者への情報漏洩 クラウド管理者はユーザVMのメモリから情報を盗むことが可能 例:パスワード、ファイルキャッシュの内容 ハイパーバイザ型の場合 クラウド管理者は特権VMを使いユーザVMを管理 特権VMはユーザVMのメモリを読み書き可能 特権VM ディスク ユーザVM 保存 仮想マシンモニタ メモリ読み込み 漏洩 メモリ サスペンド
VMCrypt: VMメモリの暗号化 特権VMによるアクセス時にVMMがユーザVMのメモリを暗号化 漏えいして困る情報ではない 特権VM ディスク ユーザVM 保存 VMCrypt VMM 暗号化メモリ メモリ 暗号化 サスペンド
安全なサスペンド・レジューム Xen上の準仮想化Linuxの場合 4種類の非暗号化ページ ドメイン0 shared_info start_info page table P2M table 暗号化 メモリ サスペンドされるドメインU レジュームされたドメインU ディスク 保存 復元 非暗号化ページ
VMメモリの暗号化・復号化 ドメイン0によるメモリマップ時に暗号化、アンマップ時に復号化 VMMがページテーブルの変更を検出 ハイパーコール(マップ時) ページフォールト(アンマップ時) ドメインUのメモリを上書きして暗号化 暗号化鍵はVMM内に保持 ドメインUの停止中に行う ドメイン0 ドメインU VMCrypt VMM マシンページ
VMメモリの暗号化・復号化 ドメイン0によるメモリマップ時に暗号化、アンマップ時に復号化 VMMがページテーブルの変更を検出 ハイパーコール(マップ時) ページフォールト(アンマップ時) ドメインUのメモリを上書きして暗号化 暗号化鍵はVMM内に保持 ドメインUの停止中に行う ドメイン0 ドメインU VMCrypt VMM マシンページ マップ時に暗号化
VMメモリの暗号化・復号化 ドメイン0によるメモリマップ時に暗号化、アンマップ時に復号化 VMMがページテーブルの変更を検出 ハイパーコール(マップ時) ページフォールト(アンマップ時) ドメインUのメモリを上書きして暗号化 暗号化鍵はVMM内に保持 ドメインUの停止中に行う ドメイン0 ドメインU VMCrypt VMM マシンページ アンマップ時に復号化
非暗号化ページの識別(1/2) shared_infoページ start_infoページ VMMとドメインUの情報共有に使用 ブート時はrsiレジスタ、レジューム時はedxレジスタ ドメインU VMM ドメイン0 start_info shared_info
非暗号化ページの識別(2/2) P2M(Physical to Machine)テーブル ページテーブル サスペンド時はshared_infoからテーブルをたどれる レジューム時に識別するためにテーブル情報を保存 暗号化してドメインUの空きメモリに保存 ページテーブル サスペンド時はVMMが管理するページタイプで識別 レジューム時はP2Mテーブルと同様に実装予定 現在はドメイン0から通知 ドメインU ドメイン0 P2M ページテーブル shared_info
再設計:非暗号化ページの識別 非暗号化ページを識別するビットマップを管理 ドメインUの空きメモリ上に用意 VMMにより暗号化 ブート時にVMMがビットマップを作成 ページテーブルはCR3レジスタからたどる 実行時にビットマップを更新 例:ページテーブルの拡張 ドメイン0に監視させたいページも登録可能 サスペンド・レジューム時の識別の 単純化 これまではマップ時に毎回非暗号化判定 shared_info start_info page table p2m table 暗号化 ページ ビット マップ
実験 サスペンド・レジュームの実行時間を測定 暗号化サスペンドに時間がかかる メモリ割り当て量を変化 XORで暗号化・復号化 非暗号化ページの判定が ページ数の2乗の計算量 ビットマップを作ることで 改善できる CPU: Xeon 2.67GHz 8コア メモリ: 12Gb VMM: Xen 4.0.1 Dom0: Linux 2.6.32.24 DomU: Linux 2.6.32.25
関連研究 Trusted Cloud Computing [Santos et al. HotCloud'09] VMを管理者が信頼できるサイトにだけ移動させる 信頼できないサイトでは動かせない Domain Disaggregation [Murray et al. VEE'08] ドメイン作成専用のドメインBを用意 管理者はドメインBから情報を盗める Bitvisor [Shinagawa et al. VEE'09] VMMがディスクやネットワークを暗号化 メモリは暗号化しない
まとめと今後の課題 クラウド管理者への情報漏洩を防ぐVMCryptを提案 今後の課題 特権VMのアクセス時にVMMがVMのメモリを暗号化 Xenへプロトタイプ実装 今後の課題 非暗号化ページ識別の実装を完成させる ライブマイグレーションへの対応 ドメインを動かしたままメモリアクセス 完全仮想化に対応 VRAMなど多くのメモリにドメイン0がアクセス