21
IaaS 環環環環環環 VM 環環環環環環環環環環環環 環環環環環 環環 環環 環環環環環環環 () 環環 環環環環環環環 一() 環環 環環環環環環環 () 1

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

Embed Size (px)

DESCRIPTION

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

Citation preview

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

1

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

田所 秀和(東京工業大学)光来 健一(九州工業大学)千葉 滋 (東京工業大学)

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

2

IaaS の普及サービスとして仮想マシン (VM) を提供ユーザ VM 管理者とクラウド管理者が存在クラウド管理者が VM を管理

管理に特権 VM を使用ユーザはユーザ VM の中を管理

特権VM

ユーザ VM 管理者

クラウド管理者

ユーザ VM

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

3

クラウド管理者による情報漏洩クラウド管理者が信頼できるとは限らないVM はどのデータセンタで動くか不明悪意ある管理者、怠慢な管理者

特権 VM へ侵入を許してしまう

特権 VM を経由した情報漏洩サスペンドによりメモリ内容が漏洩

特権 VM

ディスク

ユーザ VM

保存

VMM

メモリ読み込み

メモリ

サスペンド

サスペンドプログラム

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

4

VM メモリからの情報漏洩メモリ中には機密情報が存在パスワードファイルキャッシュ

ディスク暗号化では情報漏洩を防げない

メモリ上の情報は暗号化すると正しく動かない

暗号化ディスク

メモリを覗くだけで機密情報取得可能

ユーザ VM

web appパスワード

/etc/shadow

.ssh/id_dsa

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

5

VMCrypt : VM のメモリ暗号化特権 VM には暗号化したメモリを見せるユーザ VM には暗号化せずに見せる

管理に必要なメモリは暗号化せずに見せる特権 VM は従来通りにユーザ VM を管理可能

VM の作成、サスペンド・レジューム漏えいして困る情報ではない

特権 VM

ディスク

ユーザ VM

保存

VMCrypt VMM

暗号化メモリ メモリ

暗号化

サスペンド

メモリ

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

6

VMCrypt が想定する脅威モデル特権 VM は信頼しないroot 権限奪取、カーネルの入れ替えもありうる

VMM を信頼するRemote Attestation で正しさを証明

ハードウェアを信頼するマシンは物理的に隔離

ハードウェアVMM

特権 VM ユーザ VM

TCB

マシンルーム

信頼できる第三者が検査

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

7

ページ単位の暗号化( Xen )ドメイン 0 によるページマップ時に暗号化

アンマップ後に復号化VMM がページテーブルの書き換えを検出

ページフォールト、ハイパーコールメモリを直接書き換えて暗号化

ドメインが一時停止中を想定

ドメイン 0 ドメイン U

Xen

ページ

ドメイン 0 によるマップを検出VMCrypt による暗号化ドメイン 0 によるアンマップVMCrypt による復号化

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

8

非暗号化ページ非暗号化ページをビットマップで管理サスペンド・レジュームでは4種類のページを暗号

化しない非暗号化ページ : Shared Infoドメイン U と Xen の通信に使われる

仮想 CPU の割り込み、時間などXen が管理

ビットマップへの登録は容易ドメイン U

Xen

ドメイン 0

shared infobitmap

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

9

非暗号化ページ : P2M テーブル疑似物理フレーム番号からマシンフレーム番号

への対応表

P2M テーブルドメイン U

Xenshared info

ドメイン 0

0 1 2 3 4

0 1 2 3 4

kernel

VMM

5

5

疑似物理メモリ

マシンメモリ

Shared Info からたどり、ビットマップに登録ドメイン0が Shared Info をマップした時

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

10非暗号化ページ : Start Info

ドメイン 0 とドメイン U の情報共有に使われるドメイン U のレジスタを調べることでビット

マップに登録ドメイン 0 がレジスタ経由でドメイン U に通知

ブート時: rsi レジスタ疑似物理アドレスからマシンフレームを求める

M2P テーブルを利用レジューム時: edx レジスタ

ドメイン U

Xen

ドメイン 0

start_info

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

11

非暗号化ページ : ページテーブルページテーブルの変化を実行時に常に追跡ページテーブル用のページが追加されたらビット

マップに追加ページ属性を設定するハイパーコールをチェック

Xen はページがどう使われるかの属性を管理

01 00

32

……

ビットマップ0

ドメイン 0

ページテーブルドメイン U

Xen

MFN32ドメイン 0

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

12VMCrypt を用いた起動

ドメイン U の作成時はメモリを暗号化しないビットマップの更新のみ行う機密情報は漏洩しない

最初の unpause ハイパーコール後から暗号化ゲスト OS の起動は暗号化で保護

kernelkernel

ページテーブル

kernel

ページテーブル

start info

ドメインの作成

kernel

ページテーブル

start info

カーネル書き込みページテーブル設定start info 設定unpause で OS 起動

ディスク0 00

ビットマップ

00 0000 000

11 1

start info を登録ページテーブルを登録kernelkernel

ページテーブル

kernel

ページテーブル

start info

kernel

ページテーブル

start info

起動後はドメイン 0 には暗号化したメモリが見える

Xenshared info

1

shared info を登録

DomU のメモリ

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

13

kernel

ページテーブル

P2M

VMCrypt を用いたサスペンドドメイン U のメモリをファイルに保存VMCrypt が自動で暗号化Shared Info と P2M テーブルを読み込み

ドメイン U のメモリ全体を取得するためドメイン U のページテーブルを書き換え

疑似物理フレーム番号に変換して保存

ディスク

kernelkernel

ページテーブル

kernel

ページテーブル

start info

kernel

ページテーブル

P2M

ページテーブルなら書き換えて保存通常のメモリは VMCrypt が暗号化して保存P2M テーブルを使いメモリ全体の MFN を取得

DomU のメモリ

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

14ビットマップの埋め込み

ビットマップをドメイン U のメモリに埋め込むサスペンド時には暗号化されて保存

e820 を操作し埋め込み用のメモリを確保メモリ領域が reserved ならゲスト OS が使わな

いe820 は BIOS のメモリマップ

reservedとして確保

ディスクXenbitmap

bitmap

ビットマップをコピー

bitmap

DomU のメモリ

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

15VMCrypt を用いたレジューム

ドメイン 0 がサスペンドイメージをメモリに戻すこの時点では復号化しないドメイン U の非暗号化ページにアクセス

ページテーブル書き換え、コンソール MFN 設定

最初の再開時にまとめて復号化ドメイン U のメモリからビットマップを取得

ドメインの作成

ディスク

サスペンドイメージをメモリに戻すページテーブルの書き換えstart info へ設定unpause 時に復号化bitmap を取得

kernelkernel

ページテーブル

kernel

ページテーブル

start info

kernelkernel

ページテーブル

kernel

ページテーブル

start info

bitmap

kernel

ページテーブル

start info

kernelkernel

ページテーブル

kernel

ページテーブル

start info

bitmap

kernel

ページテーブル

start info

kernelkernel

ページテーブル

kernel

ページテーブル

start info

kernel

ページテーブル

start info

DomU のメモリ

Xen bitmap

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

16実験

VMCrypt によるオーバーヘッドを測定vanilla Xen 、 null 暗号化、 AES 暗号化メモリマップサスペンド・レジューム

情報漏洩防止の確認

Xen 4.0.2

Dom0/DomU Linux 2.6.32.27

Xeon 2.67GHz 8core 12GB

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

17マップ・アンマップ時間

ドメイン 0 からドメイン U のメモリをマップnull : 45%劣化AES : 295%劣化

ドメイン U 内から自身のメモリをマップ18%劣化

map from dom0 map from domU0

10

20

30

40

50

60

vanillanullAES

実行時間(

us)

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

18サスペンド・レジューム時間

サスペンド・レジュームにかかる時間を測定ドメイン U のメモリ量を変化

速度低下の大部分は AES による暗号化

0 256 512 768 10240

5

10

15

20

vanilla null AES

メモリ量(MB)

実行時間(秒)

0 256 512 768 10240

5

10

15

20

vanilla null AES

メモリ量(MB)

実行時間(秒)

サスペンド レジューム

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

19パスワード漏洩防止の確認

攻撃サスペンドイメージからシャドウパスワード取得文字列を抽出し特徴的な文字列を探索

VMCrypt を使った場合パスワードを取得できなかった

VMCrypt を使わなかった場合パスワードを取得できた

root@mach# strings quattro1.img | grep 'root:\$'acroot:$6$aCJuBx5O$5HqjJyEGM.hDUBnczt2J.j6jN41.G02kHlNXHZrurOZpqL/Elnbc489ZrZqLD2gsPDB.yVcK6trNXAquhKFkG0:14879:0:99999:7:::root@mach#

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

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 への情報漏えいを防ぐ

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

21まとめと今後の課題

VMCrypt を提案VMM が VM のメモリを暗号化IaaS 環境でのクラウド管理者への情報漏洩を防ぐ

今後の課題マイグレーションへの対応暗号化鍵の管理完全仮想化への対応