1 / 21

IaaS 環境における VM のメモリ暗号化による情報漏洩の防止

IaaS 環境における VM のメモリ暗号化による情報漏洩の防止. 田所 秀和(東京工業大学) 光来 健一(九州工業大学) 千葉 滋 (東京工業大学). IaaS の普及. ユーザ VM 管理者. クラウド管理者. 特権 VM. サービスとして仮想マシン (VM) を提供 ユーザ VM 管理者とクラウド管理者が存在 クラウド管理者が VM を管理 管理に特権 VM を使用 ユーザはユーザ VM の中を管理. ユーザ VM. クラウド管理者による情報漏洩. サスペンド. 特権 VM. ユーザ VM. メモリ読み込み. メモリ.

Download Presentation

IaaS 環境における VM のメモリ暗号化による情報漏洩の防止

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IaaS環境におけるVMのメモリ暗号化による情報漏洩の防止IaaS環境におけるVMのメモリ暗号化による情報漏洩の防止 田所 秀和(東京工業大学) 光来 健一(九州工業大学) 千葉 滋 (東京工業大学)

  2. IaaSの普及 ユーザVM管理者 クラウド管理者 特権VM • サービスとして仮想マシン(VM)を提供 • ユーザVM管理者とクラウド管理者が存在 • クラウド管理者が VM を管理 • 管理に特権VMを使用 • ユーザはユーザVMの中を管理 ユーザVM

  3. クラウド管理者による情報漏洩 サスペンド 特権VM ユーザVM メモリ読み込み メモリ サスペンドプログラム 保存 ディスク • クラウド管理者が信頼できるとは限らない • VMはどのデータセンタで動くか不明 • 悪意ある管理者、怠慢な管理者 • 特権VMへ侵入を許してしまう • 特権VMを経由した情報漏洩 • サスペンドによりメモリ内容が漏洩 VMM

  4. VMメモリからの情報漏洩 メモリを覗くだけで機密情報取得可能 ユーザVM /etc/shadow web appパスワード .ssh/id_dsa 暗号化ディスク • メモリ中には機密情報が存在 • パスワード • ファイルキャッシュ • ディスク暗号化では情報漏洩を防げない • メモリ上の情報は暗号化すると正しく動かない

  5. VMCrypt:VMのメモリ暗号化 サスペンド 特権VM ユーザVM 暗号化 暗号化メモリ メモリ 保存 メモリ ディスク • 特権VMには暗号化したメモリを見せる • ユーザVMには暗号化せずに見せる • 管理に必要なメモリは暗号化せずに見せる • 特権VMは従来通りにユーザVMを管理可能 • VMの作成、サスペンド・レジューム • 漏えいして困る情報ではない VMCrypt VMM

  6. VMCryptが想定する脅威モデル マシンルーム ユーザVM 特権VM 信頼できる第三者が検査 VMM ハードウェア TCB • 特権VMは信頼しない • root権限奪取、カーネルの入れ替えもありうる • VMMを信頼する • Remote Attestationで正しさを証明 • ハードウェアを信頼する • マシンは物理的に隔離

  7. ページ単位の暗号化(Xen) VMCryptによる暗号化 ドメイン0によるマップを検出 ドメイン0によるアンマップ VMCryptによる復号化 ドメイン0 ドメインU ページ • ドメイン0によるページマップ時に暗号化アンマップ後に復号化 • VMMがページテーブルの書き換えを検出 • ページフォールト、ハイパーコール • メモリを直接書き換えて暗号化 • ドメインが一時停止中を想定 Xen

  8. 非暗号化ページ ドメインU ドメイン0 shared info Xen • 非暗号化ページをビットマップで管理 • サスペンド・レジュームでは4種類のページを暗号化しない • 非暗号化ページ: Shared Info • ドメインUとXenの通信に使われる • 仮想CPUの割り込み、時間など • Xenが管理 • ビットマップへの登録は容易 bitmap

  9. 非暗号化ページ: P2Mテーブル 疑似物理メモリ 5 0 1 2 3 4 kernel • Shared Infoからたどり、ビットマップに登録 • ドメイン0がShared Infoをマップした時 P2Mテーブル 0 1 2 3 4 5 マシンメモリ VMM ドメインU ドメイン0 疑似物理フレーム番号からマシンフレーム番号への対応表 shared info Xen

  10. 非暗号化ページ: Start Info ドメインU ドメイン0 start_info • ドメイン0とドメインUの情報共有に使われる • ドメインUのレジスタを調べることでビットマップに登録 • ドメイン0がレジスタ経由でドメインUに通知 • ブート時:rsiレジスタ • 疑似物理アドレスからマシンフレームを求める • M2Pテーブルを利用 • レジューム時:edxレジスタ Xen

  11. 非暗号化ページ: ページテーブル ドメインU ページテーブル ドメイン0 ビットマップ ドメイン0 MFN32 … … 0 0 0 0 1 32 • ページテーブルの変化を実行時に常に追跡 • ページテーブル用のページが追加されたらビットマップに追加 • ページ属性を設定するハイパーコールをチェック • Xenはページがどう使われるかの属性を管理 Xen

  12. VMCryptを用いた起動 DomUのメモリ 起動後はドメイン0には暗号化したメモリが見える ドメインの作成 カーネル書き込み start info設定 ページテーブル設定 unpauseでOS起動 ビットマップ kernel kernel kernel kernel kernel kernel kernel kernel ページテーブルを登録 shared infoを登録 start infoを登録 ページテーブル ページテーブル ページテーブル ページテーブル ページテーブル ページテーブル 1 0 1 0 0 0 start info start info start info 0 0 1 0 0 1 ディスク start info 0 0 0 0 • ドメインUの作成時はメモリを暗号化しない • ビットマップの更新のみ行う • 機密情報は漏洩しない • 最初のunpauseハイパーコール後から暗号化 • ゲストOSの起動は暗号化で保護 … Xen shared info

  13. VMCryptを用いたサスペンド DomUのメモリ P2Mテーブルを使いメモリ全体のMFNを取得 ページテーブルなら書き換えて保存 通常のメモリはVMCryptが暗号化して保存 kernel kernel kernel kernel kernel ページテーブル ページテーブル ページテーブル ページテーブル P2M start info ディスク P2M • ドメインUのメモリをファイルに保存 • VMCryptが自動で暗号化 • Shared InfoとP2Mテーブルを読み込み • ドメインUのメモリ全体を取得するため • ドメインUのページテーブルを書き換え • 疑似物理フレーム番号に変換して保存

  14. ビットマップの埋め込み DomUのメモリ reservedとして確保 bitmap bitmap ビットマップをコピー ディスク Xen bitmap • ビットマップをドメインUのメモリに埋め込む • サスペンド時には暗号化されて保存 • e820を操作し埋め込み用のメモリを確保 • メモリ領域がreservedならゲストOSが使わない • e820はBIOSのメモリマップ

  15. VMCryptを用いたレジューム DomUのメモリ bitmap bitmap サスペンドイメージをメモリに戻す ドメインの作成 ページテーブルの書き換え start infoへ設定 unpause時に復号化 bitmapを取得 kernel kernel kernel kernel kernel kernel kernel kernel kernel kernel kernel kernel kernel kernel kernel ページテーブル ページテーブル ページテーブル ページテーブル ページテーブル ページテーブル ページテーブル ページテーブル ページテーブル ページテーブル ページテーブル start info start info start info start info ディスク start info start info start info • ドメイン0がサスペンドイメージをメモリに戻す • この時点では復号化しない • ドメインUの非暗号化ページにアクセス • ページテーブル書き換え、コンソールMFN設定 • 最初の再開時にまとめて復号化 • ドメインUのメモリからビットマップを取得 Xen bitmap

  16. 実験 • Xen 4.0.2 • Dom0/DomU Linux 2.6.32.27 • Xeon 2.67GHz 8core 12GB • VMCryptによるオーバーヘッドを測定 • vanilla Xen、null暗号化、AES暗号化 • メモリマップ • サスペンド・レジューム • 情報漏洩防止の確認

  17. マップ・アンマップ時間 • ドメイン0からドメインUのメモリをマップ • null:45%劣化 • AES:295%劣化 • ドメインU内から自身のメモリをマップ • 18%劣化

  18. サスペンド・レジューム時間 サスペンド レジューム • サスペンド・レジュームにかかる時間を測定 • ドメインUのメモリ量を変化 • 速度低下の大部分はAESによる暗号化

  19. パスワード漏洩防止の確認 root@mach# strings quattro1.img | grep 'root:\$' acroot:$6$aCJuBx5O$5HqjJyEGM.hDUBnczt2J.j6jN41.G02kHlNXHZrurOZpqL/Elnbc489ZrZqLD2gsPDB.yVcK6trNXAquhKFkG0:14879:0:99999:7::: root@mach# • 攻撃 • サスペンドイメージからシャドウパスワード取得 • 文字列を抽出し特徴的な文字列を探索 • VMCryptを使った場合 • パスワードを取得できなかった • VMCryptを使わなかった場合 • パスワードを取得できた

  20. 関連研究 • TCCP [Santos et al. HotCloud'09] • VMを管理者が信用できるサイトにだけ移動させる • 信用できないサイトでは動かせない • ドメインB [Murray et al. VEE'08] • ドメイン作成専用のドメインBを用意 • ドメイン0のカーネルとドメインBをTCBに含む • OverShadow[Xiaoxin et al. ASPLOS'08] • VMMがプロセスのメモリを暗号化し内容を保護 • ゲストOSへの情報漏えいを防ぐ

  21. まとめと今後の課題 • VMCryptを提案 • VMMがVMのメモリを暗号化 • IaaS環境でのクラウド管理者への情報漏洩を防ぐ • 今後の課題 • マイグレーションへの対応 • 暗号化鍵の管理 • 完全仮想化への対応

More Related