管理 vm への キーボード入力情報漏洩の防止
DESCRIPTION
管理 VM への キーボード入力情報漏洩の防止. 江川 友寿 (九州工業大学) 光来 健一 (九州工業大学 / JST CREST ). IaaS におけるユーザ VM の管理. 2. ユーザ VM. クラウド. ユーザ. VNC サーバ. VNC クライアント. 仮想マシン ( VM) をネットワーク経由で提供 ユーザはクラウド上の VM を 利用 ユーザ VM の VNC サーバに接続して 管理 VM 内のネットワーク障害時に管理が不可能 に ネットワークの設定ミス・ OS のクラッシュ時など. 障害に強い VM の管理方法. 3. クラウド. - PowerPoint PPT PresentationTRANSCRIPT
管理 VM へのキーボード入力情報漏洩の防止江川 友寿(九州工業大学)光来 健一(九州工業大学 / JST CREST )
IaaS におけるユーザ VM の管理仮想マシン (VM) をネットワーク経由で提供
ユーザはクラウド上の VM を利用ユーザ VM の VNC サーバに接続して管理
VM 内のネットワーク障害時に管理が不可能にネットワークの設定ミス・ OS のクラッシュ時など
2
ユーザVNCクライアント
クラウドVNCサーバ
ユーザ VM
障害に強い VM の管理方法管理 VM 経由でユーザ VM にアクセス
ユーザ VM 内のネットワーク障害時でも管理可能ユーザ VM の仮想デバイスに直接アクセス
管理 VM: ユーザ VM の作成、起動などを行う特別な VM例 ) Xen VNC Proxy
3
ユーザVNCクライアント
クラウドVNCサーバ
管理 VM
xvp [http://www.xvpsource.org]
ユーザ VM
仮想デバイス
信頼できない管理 VM の存在管理 VM は信頼できるとは限らない
管理 VM に脆弱性があり第三者に侵入される可能性システム管理者が管理 VM で不正を行う可能性
VM はマイグレーションで各地のデータセンタを移動セキュリティ意識の低い管理者の下で動作する可能性
4
VM VM管理 VM
改ざんVM管理 VM
マイグレーションVM
正当な管理者攻撃者
VM VM VM
管理 VM への情報漏洩ユーザ VM へのキーボード入力情報が漏洩
例 ) 管理 VM の VNC サーバの改ざんパスワードなどの機密情報が漏洩
VPN や SSH トンネリングでは対処できない
5
ユーザVNCクライアント
キーボード入力
クラウド管理 VM
VNC サーバ ユーザ VM
盗聴
パスワード情報漏洩
信頼できない管理者
VPN
提案 : FBCrypt管理 VM 経由のアクセスでもユーザ VM に安全にキーボード入力を送れるシステム
障害に強い VM 管理と情報漏洩の防止を両立VNC クライアントで暗号化、 VMM で復号化
6
ユーザ暗号化
キーボード入力
クラウドユーザ VM
仮想デバイス管理 VM
VNC サーバ
VMM復号化
脅威モデル管理 VM からのキーボード入力情報の漏洩を想定
VMM とハードウエアはリモートアテステーションで保証FBCrypt 導入時点で不正な改ざんはない
7
クラウド
VMM
ユーザVM管理 VM
ハードウエア
信頼できない管理者信頼できる管理者
ユーザVNCクライアント
システム構成Xen 上に実装 ( 準仮想化 )
管理 VM: ドメイン 0ユーザ VM: ドメイン UVNC サーバ : QEMUキーボード入力情報を書き込むメモリ領域 : I/O リング
8
ユーザ暗号化
クラウド
VMM復号化
ドメイン U
I/Oリング
ドメイン 0
QEMU
VNCクライアントTigerVNC
キーボード入力の復号化とコード変換VMM で復号化
暗号化された情報をハイパーコールで VMM に渡すキーコード変換
復号化後の情報は ASCII コードI/O リングに書き込む情報はキーコード
9
ドメイン U
I/Oリング
VMM復号化 キーコード変換
ドメイン 0
QEMU
ハイパーコール
従来
‘?’‘A’
shift + a
ASCII : ‘A’キーコード : shift+a
I/O リングのアドレス取得 (1)ドメイン U と XenStore の通信から I/O リングのアドレス取得
XenBus を使用して通信を行うXenStore: 各 VM の情報管理データベース
10
VMM
ドメイン 0
QEMU
XenStore
ドメイン U
I/Oリング
MFN取得
I/Oリング情報パス device/vkbd/
mfnMFN 102794
従来
I/O リングのアドレス取得 (2)VMM から XenBus の通信を監視
XenStore リングから I/O リングアドレスを取得VMM はイベントをトリガーに監視ドメイン 0 やドメイン U に修正を加える必要はない
11
ドメイン 0
XenStore
ドメイン UXenStoreリング
I/O リングアドレス取得VMM
I/Oリングアドレス イベント送信イベント
XenStore リングのアドレス取得起動情報ページから取得
ドメイン 0 がレジスタ経由でドメイン U に通知疑似物理アドレスからマシンフレーム番号を導出
M2P テーブルを使用XenStore リングを VMM にマップすることで監視可能
12
ドメイン 0
XenStoreリング
ドメイン U
起動情報ページ
M2PテーブルPFN MFN 監視
レジスタ経由で通知
I/O リングへのアクセス禁止復号化後の情報をドメイン 0 から参照できないように
ページテーブルの変更は VMM が管理I/O リングページのマップ要求を拒否VMM は I/O リングの MFN を取得済み
13
ドメイン U
I/O リング
ドメイン 0
QEMU
参照不可
VMM復号化 書き込み
キーボード入力
メモリ管理I/Oリング
I/O リング取得
マップ要求マップ拒否
参照可能
ストリーム暗号 RC4キーボード入力を一文字ごとに暗号化して送信
内部状態を変化させてキーストリームを生成同じ文字でも暗号化後の情報が毎回変化
VNC 接続のたびに VMM の内部状態をリセットVNC クライアントと VMM の内部状態の不一致を避けるため
14
ユーザ暗号化
VNC の内部状態
クラウド
VMM
ドメイン 0
復号化? ? ? ?
0 1 … 255
0 0 0 0
0 1 … 255 一致0 0 0 0
VMM の内部状態
接続
不一致リセット
VMM とクライアント間での鍵の共有暗号化と復号化に用いる共通鍵を安全に共有
起動時にリモートアテステーションで VMM の正当性を検証FBCrypt 導入時に鍵サーバに VMM の公開鍵を登録済み接続のたびにクライアント側で共通鍵を新規生成して共有TPM が VMM の秘密鍵を復号化し共通鍵を復号化
15
管理 VMVNC サーバVMM
ハードウエアTPM
鍵サーバ公開鍵
共有
VNC クライアント共通鍵公開鍵
共通鍵
リモートアテステーション
秘密鍵復号化
実験キーボード入力情報漏洩防止の確認FBCrypt によるオーバヘッドキーボード入力一回あたりのレスポンスタイム実験環境
Xen 4.0.2ドメイン 0/ ドメイン Uカーネル : Linux-2.6.32.21CPU: Intel Core2Quad 2.83GHzVNC クライアント : TigerVNCギガビットイーサネット LAN
16
キーボード入力情報漏洩防止の確認管理 VM の VNC サーバを改ざんし盗聴プログラムを仕込む
従来 : キーボード入力情報が漏洩FBCrypt: 暗号化されており情報が漏洩していない
17
FBCrypt
従来
FBCrypt のオーバヘッドVNC クライアント : 2μs のオーバヘッド
ストリーム暗号による暗号化QEMU: 31μs のオーバヘッド
ハイパーコール、復号化、キーコード変換、 I/O リング書き込みハイパーコールの呼び出しに時間がかかる
18
[μs]
従来システム FBCrypt0
1020304050 QEMU
VNC クライアント35.3
44.2
8.93.9
6.8
10.7
VNC クライアント暗号化
キーボード入力
VMM復号化
ドメイン U
I/Oリング
ドメイン 0
QEMU
キーコード変換
ハイパーコール
レスポンスタイム (1)19
VNC クライアント暗号化
管理 VM
VNC サーバユーザ VM
I/Oリング
VMM復号化
FBCryptユーザ VM直接 (SSHトンネリング )ユーザVNCクライアント
ユーザ VM
VNCサーバSSH
キーボード入力後に画面の更新要求を受け取るまでの時間通常の管理 VM 経由の接続FBCryptユーザ VM に直接接続
ユーザVNCクライアント
管理 VM
VNC サーバユーザ VM
I/Oリング
管理 VM経由 (SSHトンネリング )
SSH
画面の更新情報キーボード入力
レスポンスタイム (2)FBCrypt との比較
管理 VM 経由 : FBCrypt の方が 0.07ms遅いユーザ VM 直接 : FBCrypt の方が 0.07ms速い
FBCrypt によるレスポンスタイムの悪化は小さい
20
管理 VM経由 FBCrypt ユーザ VM直接0
0.0005
0.001
0.0015 トンネリングなしSSH トンネリングあり1.10 1.17 1.26
関連研究GuardedID [Strike Force Technology Inc.]
デバイスドライバでキーボード入力情報を暗号化し安全にアプリケーションに渡すソフトウェアキーボード
VNC クライアントで使用することで安全に入力を行えるVMCrypt [田所ら OS研究会’ 11]
VMM でユーザ VM のメモリを暗号化復号化された後のメモリ情報が盗まれることによるキーボード入力情報の漏洩を防ぐ
BitVisor [Shinagawa et al. VEE’09]ゲスト OS のストレージやネットワークの暗号化を VMM が行う
21
まとめFBCrypt を提案
管理 VM 経由のアクセスでもユーザ VM に安全にキーボード入力情報を送れる障害に強いユーザ VM 管理と情報漏洩の防止を両立VNC クライアントで暗号化、 VMM 内で復号化
今後の課題VNC クライアントと VMM 間での鍵交換の実装完全仮想化への対応マウス入力と画面情報の暗号化
22