140 likes | 256 Views
VM のメモリ暗号化による クラウド管理者への情報漏洩の防止. 田所 秀和 (東工大) 内田 昴志 (九工大) 光来 健一 (九工大 /JST CREST ) 千葉 滋 (東工大). クラウドコンピューティングの普及. ネットワークを通して計算機やソフトウェアなどのサービスを提供 Infrastructure as a Service ( Iaas ) 仮想マシン (VM) を提供 クラウド管理者と ゲスト OS の 管理者は異なる クラウド管理者が信用できるとは限らない 従来はマシンの管理者と OS の管理者は同じ. サービス. クラウド管理者への情報漏洩.
E N D
VMのメモリ暗号化によるクラウド管理者への情報漏洩の防止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に漏洩させない • 特権VMがアクセスする必要があるページは暗号化しない • 特権VMがユーザVMのサスペンドなどに利用 • 漏えいして困る情報ではない サスペンド 特権VM ユーザVM 暗号化 暗号化メモリ メモリ 保存 ディスク VMCrypt VMM
安全なサスペンド・レジューム • Xen上の準仮想化Linuxの場合 • 4種類の非暗号化ページ レジュームされたドメインU サスペンドされるドメインU ドメイン0 shared_info shared_info 非暗号化ページ start_info start_info page table page table P2M table P2M table 保存 復元 暗号化メモリ 暗号化メモリ ディスク
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ページ • VMMとドメインUの情報共有に使用 • VMMが確保するので容易に識別可能 • start_infoページ • ドメイン0とドメインUの情報共有に使用 • ドメインUを開始するハイパーコールで仮想レジスタを監視 • ブート時はrsiレジスタ、レジューム時はedxレジスタ ドメインU ドメイン0 start_info shared_info VMM
非暗号化ページの識別(2/2) • P2M(Physical to Machine)テーブル • サスペンド時はshared_infoからテーブルをたどれる • レジューム時に識別するためにテーブル情報を保存 • 暗号化してドメインUの空きメモリに保存 • ページテーブル • サスペンド時はVMMが管理するページタイプで識別 • レジューム時はP2Mテーブルと同様に実装予定 • 現在はドメイン0から通知 ドメイン0 ドメインU 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のメモリを暗号化 • VMMが非暗号化ページを識別 • Xenへプロトタイプ実装 • 今後の課題 • 非暗号化ページ識別の実装を完成させる • ライブマイグレーションへの対応 • ドメインを動かしたままメモリアクセス • 完全仮想化に対応 • VRAMなど多くのメモリにドメイン0がアクセス