完全仮想化 - KSL

九州工業大学大学院
情報工学府 情報創成工学専攻
13675013
梶原達也

IaaS(Infrastructure as a Service)
◦ ユーザに仮想マシン(VM)を提供
◦ ユーザはネットワーク経由でVMにアクセス

一般に,ネットワーク経由でVMに直接接続する
◦ 例:SSH
◦ 欠点:VM内のネットワーク障害で管理ができなくなる
IaaS
ユーザ
ユーザVM
SSH
クライアント
ログイン
SSH
サーバ
VM
VM

VMの仮想的なシリアルデバイスを経由してアクセ
スする管理手法
◦ ネットワーク経由でVMにアクセスできない状況でもVMの操
作が可能
◦ ユーザVMのコンソールに直接アクセス
◦ 管理VMにログインして利用
クラウド
ユーザ
仮想シリアル
デバイス
管理VM
SSH
クライアント
ユーザ
VM
SSH
サーバ
ログイン
仮想シリアルコンソール

クラウド内の管理VMが信用できるとは限らない
◦ セキュリティの不備により攻撃者に侵入される可能性
◦ 悪意あるクラウド管理者が存在する可能性

SSHによって保護されるのは管理VMまで
◦ 管理VMから先は無防備
クラウド
SSHによって保護
SSH
クライアント
SSH
管理VM
VM
攻撃者
ユーザ
無防備な状態
悪意のある
管理者
VM
VM

管理VMの改ざんにより機密情報が漏洩する恐れ
◦ SSHクライアントからのコンソール入力
 例:パスワード
◦ ユーザVMからのコンソール出力
 例:VMのセキュリティ設定
クラウド
管理VM
SSH
クライアント
セキュリティ
設定
ユーザ
SSH
サーバ
パスワード
VM
仮想シリアル
コンソール
ユーザ
漏洩
攻撃者
セキュリティ
パスワード
設定

管理VMに対して暗号化された仮想シリアルコン
ソールを提供
◦ 入力:クライアントで暗号化されたコンソール入力
 SCCryptが復号してユーザVMに送る
◦ 出力:SCCryptが暗号化したユーザVMのコンソール出力
 クライアントで復号
ls
**
暗号化
暗号入力
暗号出力
クライアント
復号
Document Picture
Music …
管理VM
ls
ユーザ
VM
Document Picture
***************
暗号化された
Music …
*******
仮想シリアルコンソール

信頼できる仮想マシンモニタ(VMM)を用いてコンソー
ル入出力を暗号化・復号化
◦
◦
◦
◦
VMMは管理VMの下で動作するソフトウェア
管理VMは復号後の入力も暗号化前の出力も見られない
ストリーム暗号RC4を用いて暗号化
完全仮想化と準仮想化の両方に対応
復号/暗号化
管理VM
クラウド
ユーザVM
仮想シリアル
コンソール
ユーザ
VMM
復号/暗号化

復号化・暗号化を行うクラウド内のVMMの正当性を保
証
◦ 起動時のリモート・アテステーション
 起動時にVMMのハッシュ値を計算し,外部の検証サーバに送信
 あらかじめ登録しておいたハッシュ値と照合して確認
 ハードウェア(TPM)によりハッシュ値の改ざんを防止
◦ 実行時のVMM自身による保護
ユーザ
VM
管理VM
VMM
TPM ハードウェア
検証
検証サーバ

ユーザVMで実行された出力命令がVMMにトラップさ
れた時に暗号化
◦ 暗号化された出力が仮想シリアルデバイスに格納される

入力命令の結果を返す時にVMMが復号
◦ 暗号化された入力を仮想シリアルデバイスから取り出す
クラウド
管理VM
SSH
クライアント
SSHサーバ
仮想シリアルデバイス
復号化
ユーザVM
シリアル
ドライバ
出力命令
暗号化
VMM

ユーザVMで実行された出力命令がVMMにトラップさ
れた時に暗号化
◦ 暗号化された出力が仮想シリアルデバイスに格納される

入力命令の結果を返す時にVMMが復号
◦ 暗号化された入力を仮想シリアルデバイスから取り出す
クラウド
管理VM
SSH
クライアント
SSHサーバ
ユーザVM
シリアル
ドライバ
仮想シリアルデバイス
暗号化
入力命令
VMM
復号化
入力情報

仮想シリアルデバイスはVMMに暗号化された入力を
送り,VMMがそれを暗号化
◦ VMMがユーザVMのコンソールバッファに書き込む

VMMがコンソールバッファ内の出力を暗号化
◦ 暗号化された出力が仮想シリアルデバイスに格納される
SSH
クライアント
管理VM
クラウド
ユーザVM
仮想シリアル
デバイス
暗号化
VMM
復号化
コンソール
バッファ

仮想シリアルデバイスはVMMに暗号化された入力を
送り,VMMがそれを暗号化
◦ VMMがユーザVMのコンソールバッファに書き込む

VMMがコンソールバッファ内の出力を暗号化
◦ 暗号化された出力が仮想シリアルデバイスに格納される
SSH
クライアント
管理VM
クラウド
ユーザVM
仮想シリアル
デバイス
復号化
VMM
暗号化
コンソール
バッファ

仮想シリアルコンソールに接続するまでの入力も一律
に暗号化されてしまう
◦ 接続コマンド、アクセス権を取得するためのパスワード入力

SSHのリモートコマンド実行機能を利用
◦ 通所の入力とは別に扱われる
◦ このコマンドに限り,パスワード入力を省略できるように設定
ssh –t user@host sudo xenconsole vm
クラウド
非暗号化
SSH
クライアント xen
console
管理VM
SSH
サーバ
実行

SCCryptの有効性を確かめる実験を行った
◦
◦
◦
◦
管理VMでの入出力の盗聴
SSHクライアントにおける応答時間
画面表示のスループット
CPU使用率
実験環境
クライアントマシン
サーバマシン
マシン
Linux-3.2.0.35
Xen-4.1.3 Linux-3.2.0.60
CPU
Intel Xeon E5630
2.53GHz
Intel Core i7 870 2.93GHz
LAN
ギガビット イーサネット
ギガビット イーサネット
SSH
OpenSSH 6.0p1
OpenSSH 5.9p1

コンソール入出力の盗聴ができるかどうか調べた
◦ 管理VMで入出力を取得,ログファイルに書き込ませる

デモ
管理VM
クラウド
盗聴
仮想シリアル
コンソール
ユーザ
VMM
復号/暗号化
ユーザVM

入力から出力までの応答時間を測定
◦ SSHクライアントでの入力がユーザVMで処理され、ユーザ端
末に表示されるまで

完全仮想化ではほぼ同じ応答時間
◦ 入出力の途中で暗号化・復号化するため
準仮想化では0.14msの遅延が発生
◦ VMMを呼び出して
暗号化・復号化を行うため
2.0
応答時間(ms)

1.75 1.70
1.5
従来
SCCrypt
1.23
1.37
1.0
0.5
0.0
完全仮想化
準仮想化

巨大なファイルを表示するのにかかる時間を測定
◦ ユーザVMにログインしてcatコマンドで表示

表示スループットにはほとんど差がなかった
準仮想化は完全仮想化よりも大幅にスループットが
高かった
600
スループット(KB/s)

400
従来
SCCrypt
522.7
519.5
200
0
38.4 40.5
完全仮想化
準仮想化

SSHクライアントから10.9字/秒で入力を行った場合
◦ 完全仮想化はほとんど同じ
◦ 準仮想化ではCPU使用率が3ポイント高い

ユーザVMで1000字/秒で出力を行った場合
◦ 完全仮想化、準仮想化ともにほとんど同じ
20
従来
21 20
SCCrypt
21
18
10
0
150
CPU使用率(%)
CPU使用率(%)
30
120
従来
124 123
SCCrypt
120 124
90
60
30
0
完全仮想化
入力時
準仮想化
完全仮想化
出力時
準仮想化

FBCrypt [Egawa et al. ‘12]
◦ VNCを用いたVM管理において情報漏洩を防止
◦ データ量の多いビデオ出力を暗号化するためオーバヘッ
ドが大きい

Xoar [Colp et al. ‘11]
◦ 仮想シリアルデバイスを専用のコンソールVMで動作
◦ クラウド管理者による攻撃について考慮されていない

VMware vSphere Hypervisor [VMware Inc.]
◦ VNCサーバをVMM内で動作させてリモート管理
◦ VNCサーバが攻撃されるとVMMに影響する恐れがある

クラウド内の仮想シリアルコンソールから入出力情報
の漏洩を防ぐSCCryptを提案
◦ 暗号化された仮想シリアルコンソールを提供
◦ 信頼できるVMMを用いて入出力を復号化・暗号化

SCCryptの有効性を確認
◦ 管理VM内では盗聴することができなかった
◦ オーバヘッドは十分小さい

今後の課題
◦ ユーザVMへの再接続時における暗号鍵の同期
◦ ユーザとVMの安全な関連付け