1 - KSL - 九州工業大学

Download Report

Transcript 1 - KSL - 九州工業大学

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