IaaS 環環環環環環 VM 環環環環環環環環環環環環 環環環環環 環環 環環 環環環環環環環 () 環環 環 環環環環環環環 一() 環環 環 環環環環環環環 () 1
Jan 01, 2016
1
IaaS 環境における VM のメモリ暗号化による情報漏洩の防止
田所 秀和(東京工業大学)光来 健一(九州工業大学)千葉 滋 (東京工業大学)
2
IaaS の普及サービスとして仮想マシン (VM) を提供ユーザ VM 管理者とクラウド管理者が存在クラウド管理者が VM を管理
管理に特権 VM を使用ユーザはユーザ VM の中を管理
特権VM
ユーザ VM 管理者
クラウド管理者
ユーザ VM
3
クラウド管理者による情報漏洩クラウド管理者が信頼できるとは限らないVM はどのデータセンタで動くか不明悪意ある管理者、怠慢な管理者
特権 VM へ侵入を許してしまう
特権 VM を経由した情報漏洩サスペンドによりメモリ内容が漏洩
特権 VM
ディスク
ユーザ VM
保存
VMM
メモリ読み込み
メモリ
サスペンド
サスペンドプログラム
4
VM メモリからの情報漏洩メモリ中には機密情報が存在パスワードファイルキャッシュ
ディスク暗号化では情報漏洩を防げない
メモリ上の情報は暗号化すると正しく動かない
暗号化ディスク
メモリを覗くだけで機密情報取得可能
ユーザ VM
web appパスワード
/etc/shadow
.ssh/id_dsa
5
VMCrypt : VM のメモリ暗号化特権 VM には暗号化したメモリを見せるユーザ VM には暗号化せずに見せる
管理に必要なメモリは暗号化せずに見せる特権 VM は従来通りにユーザ VM を管理可能
VM の作成、サスペンド・レジューム漏えいして困る情報ではない
特権 VM
ディスク
ユーザ VM
保存
VMCrypt VMM
暗号化メモリ メモリ
暗号化
サスペンド
メモリ
6
VMCrypt が想定する脅威モデル特権 VM は信頼しないroot 権限奪取、カーネルの入れ替えもありうる
VMM を信頼するRemote Attestation で正しさを証明
ハードウェアを信頼するマシンは物理的に隔離
ハードウェアVMM
特権 VM ユーザ VM
TCB
マシンルーム
信頼できる第三者が検査
7
ページ単位の暗号化( Xen )ドメイン 0 によるページマップ時に暗号化
アンマップ後に復号化VMM がページテーブルの書き換えを検出
ページフォールト、ハイパーコールメモリを直接書き換えて暗号化
ドメインが一時停止中を想定
ドメイン 0 ドメイン U
Xen
ページ
ドメイン 0 によるマップを検出VMCrypt による暗号化ドメイン 0 によるアンマップVMCrypt による復号化
8
非暗号化ページ非暗号化ページをビットマップで管理サスペンド・レジュームでは4種類のページを暗号
化しない非暗号化ページ : Shared Infoドメイン U と Xen の通信に使われる
仮想 CPU の割り込み、時間などXen が管理
ビットマップへの登録は容易ドメイン U
Xen
ドメイン 0
shared infobitmap
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 をマップした時
10非暗号化ページ : Start Info
ドメイン 0 とドメイン U の情報共有に使われるドメイン U のレジスタを調べることでビット
マップに登録ドメイン 0 がレジスタ経由でドメイン U に通知
ブート時: rsi レジスタ疑似物理アドレスからマシンフレームを求める
M2P テーブルを利用レジューム時: edx レジスタ
ドメイン U
Xen
ドメイン 0
start_info
11
非暗号化ページ : ページテーブルページテーブルの変化を実行時に常に追跡ページテーブル用のページが追加されたらビット
マップに追加ページ属性を設定するハイパーコールをチェック
Xen はページがどう使われるかの属性を管理
01 00
32
……
ビットマップ0
ドメイン 0
ページテーブルドメイン U
Xen
MFN32ドメイン 0
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 のメモリ
13
kernel
ページテーブル
P2M
VMCrypt を用いたサスペンドドメイン U のメモリをファイルに保存VMCrypt が自動で暗号化Shared Info と P2M テーブルを読み込み
ドメイン U のメモリ全体を取得するためドメイン U のページテーブルを書き換え
疑似物理フレーム番号に変換して保存
ディスク
kernelkernel
ページテーブル
kernel
ページテーブル
start info
kernel
ページテーブル
P2M
ページテーブルなら書き換えて保存通常のメモリは VMCrypt が暗号化して保存P2M テーブルを使いメモリ全体の MFN を取得
DomU のメモリ
14ビットマップの埋め込み
ビットマップをドメイン U のメモリに埋め込むサスペンド時には暗号化されて保存
e820 を操作し埋め込み用のメモリを確保メモリ領域が reserved ならゲスト OS が使わな
いe820 は BIOS のメモリマップ
reservedとして確保
ディスクXenbitmap
bitmap
ビットマップをコピー
bitmap
DomU のメモリ
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
16実験
VMCrypt によるオーバーヘッドを測定vanilla Xen 、 null 暗号化、 AES 暗号化メモリマップサスペンド・レジューム
情報漏洩防止の確認
Xen 4.0.2
Dom0/DomU Linux 2.6.32.27
Xeon 2.67GHz 8core 12GB
17マップ・アンマップ時間
ドメイン 0 からドメイン U のメモリをマップnull : 45%劣化AES : 295%劣化
ドメイン U 内から自身のメモリをマップ18%劣化
map from dom0 map from domU0
10
20
30
40
50
60
vanillanullAES
実行時間(
us)
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)
実行時間(秒)
サスペンド レジューム
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#
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 環境でのクラウド管理者への情報漏洩を防ぐ
今後の課題マイグレーションへの対応暗号化鍵の管理完全仮想化への対応