管理 vm への キーボード入力情報漏洩の防止

22
管管 VM 管管 管管管管管管管管管管管管管管 管管 管管 管管管管管管管 () 管管 管 管管管管管管 一( / JST CREST

Upload: malini

Post on 21-Mar-2016

59 views

Category:

Documents


5 download

DESCRIPTION

管理 VM への キーボード入力情報漏洩の防止. 江川 友寿 (九州工業大学) 光来 健一 (九州工業大学 / JST CREST ). IaaS におけるユーザ VM の管理. 2. ユーザ VM. クラウド. ユーザ. VNC サーバ. VNC クライアント. 仮想マシン ( VM) をネットワーク経由で提供 ユーザはクラウド上の VM を 利用 ユーザ VM の VNC サーバに接続して 管理 VM 内のネットワーク障害時に管理が不可能 に ネットワークの設定ミス・ OS のクラッシュ時など. 障害に強い VM の管理方法. 3. クラウド. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 管理 VM への キーボード入力情報漏洩の防止

管理 VM へのキーボード入力情報漏洩の防止江川 友寿(九州工業大学)光来 健一(九州工業大学 / JST CREST )

Page 2: 管理 VM への キーボード入力情報漏洩の防止

IaaS におけるユーザ VM の管理仮想マシン (VM) をネットワーク経由で提供

ユーザはクラウド上の VM を利用ユーザ VM の VNC サーバに接続して管理

VM 内のネットワーク障害時に管理が不可能にネットワークの設定ミス・ OS のクラッシュ時など

2

ユーザVNCクライアント

クラウドVNCサーバ

ユーザ VM

Page 3: 管理 VM への キーボード入力情報漏洩の防止

障害に強い VM の管理方法管理 VM 経由でユーザ VM にアクセス

ユーザ VM 内のネットワーク障害時でも管理可能ユーザ VM の仮想デバイスに直接アクセス

管理 VM: ユーザ VM の作成、起動などを行う特別な VM例 ) Xen VNC Proxy

3

ユーザVNCクライアント

クラウドVNCサーバ

管理 VM

xvp [http://www.xvpsource.org]

ユーザ VM

仮想デバイス

Page 4: 管理 VM への キーボード入力情報漏洩の防止

信頼できない管理 VM の存在管理 VM は信頼できるとは限らない

管理 VM に脆弱性があり第三者に侵入される可能性システム管理者が管理 VM で不正を行う可能性

VM はマイグレーションで各地のデータセンタを移動セキュリティ意識の低い管理者の下で動作する可能性

4

VM VM管理 VM

改ざんVM管理 VM

マイグレーションVM

正当な管理者攻撃者

VM VM VM

Page 5: 管理 VM への キーボード入力情報漏洩の防止

管理 VM への情報漏洩ユーザ VM へのキーボード入力情報が漏洩

例 ) 管理 VM の VNC サーバの改ざんパスワードなどの機密情報が漏洩

VPN や SSH トンネリングでは対処できない

5

ユーザVNCクライアント

キーボード入力

クラウド管理 VM

VNC サーバ ユーザ VM

盗聴

パスワード情報漏洩

信頼できない管理者

VPN

Page 6: 管理 VM への キーボード入力情報漏洩の防止

提案 : FBCrypt管理 VM 経由のアクセスでもユーザ VM に安全にキーボード入力を送れるシステム

障害に強い VM 管理と情報漏洩の防止を両立VNC クライアントで暗号化、 VMM で復号化

6

ユーザ暗号化

キーボード入力

クラウドユーザ VM

仮想デバイス管理 VM

VNC サーバ

VMM復号化

Page 7: 管理 VM への キーボード入力情報漏洩の防止

脅威モデル管理 VM からのキーボード入力情報の漏洩を想定

VMM とハードウエアはリモートアテステーションで保証FBCrypt 導入時点で不正な改ざんはない

7

クラウド

VMM

ユーザVM管理 VM

ハードウエア

信頼できない管理者信頼できる管理者

ユーザVNCクライアント

Page 8: 管理 VM への キーボード入力情報漏洩の防止

システム構成Xen 上に実装 ( 準仮想化 )

管理 VM: ドメイン 0ユーザ VM: ドメイン UVNC サーバ : QEMUキーボード入力情報を書き込むメモリ領域 : I/O リング

8

ユーザ暗号化

クラウド

VMM復号化

ドメイン U

I/Oリング

ドメイン 0

QEMU

VNCクライアントTigerVNC

Page 9: 管理 VM への キーボード入力情報漏洩の防止

キーボード入力の復号化とコード変換VMM で復号化

暗号化された情報をハイパーコールで VMM に渡すキーコード変換

復号化後の情報は ASCII コードI/O リングに書き込む情報はキーコード

9

ドメイン U

I/Oリング

VMM復号化 キーコード変換

ドメイン 0

QEMU

ハイパーコール

従来

‘?’‘A’

shift + a

ASCII : ‘A’キーコード : shift+a

Page 10: 管理 VM への キーボード入力情報漏洩の防止

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

従来

Page 11: 管理 VM への キーボード入力情報漏洩の防止

I/O リングのアドレス取得 (2)VMM から XenBus の通信を監視

XenStore リングから I/O リングアドレスを取得VMM はイベントをトリガーに監視ドメイン 0 やドメイン U に修正を加える必要はない

11

ドメイン 0

XenStore

ドメイン UXenStoreリング

I/O リングアドレス取得VMM

I/Oリングアドレス イベント送信イベント

Page 12: 管理 VM への キーボード入力情報漏洩の防止

XenStore リングのアドレス取得起動情報ページから取得

ドメイン 0 がレジスタ経由でドメイン U に通知疑似物理アドレスからマシンフレーム番号を導出

M2P テーブルを使用XenStore リングを VMM にマップすることで監視可能

12

ドメイン 0

XenStoreリング

ドメイン U

起動情報ページ

M2PテーブルPFN MFN 監視

レジスタ経由で通知

Page 13: 管理 VM への キーボード入力情報漏洩の防止

I/O リングへのアクセス禁止復号化後の情報をドメイン 0 から参照できないように

ページテーブルの変更は VMM が管理I/O リングページのマップ要求を拒否VMM は I/O リングの MFN を取得済み

13

ドメイン U

I/O リング

ドメイン 0

QEMU

参照不可

VMM復号化 書き込み

キーボード入力

メモリ管理I/Oリング

I/O リング取得

マップ要求マップ拒否

参照可能

Page 14: 管理 VM への キーボード入力情報漏洩の防止

ストリーム暗号 RC4キーボード入力を一文字ごとに暗号化して送信

内部状態を変化させてキーストリームを生成同じ文字でも暗号化後の情報が毎回変化

VNC 接続のたびに VMM の内部状態をリセットVNC クライアントと VMM の内部状態の不一致を避けるため

14

ユーザ暗号化

VNC の内部状態

クラウド

VMM

ドメイン 0

復号化? ? ? ?

0 1 … 255

0 0 0 0

0 1 … 255 一致0 0 0 0

VMM の内部状態

接続

不一致リセット

Page 15: 管理 VM への キーボード入力情報漏洩の防止

VMM とクライアント間での鍵の共有暗号化と復号化に用いる共通鍵を安全に共有

起動時にリモートアテステーションで VMM の正当性を検証FBCrypt 導入時に鍵サーバに VMM の公開鍵を登録済み接続のたびにクライアント側で共通鍵を新規生成して共有TPM が VMM の秘密鍵を復号化し共通鍵を復号化

15

管理 VMVNC サーバVMM

ハードウエアTPM

鍵サーバ公開鍵

共有

VNC クライアント共通鍵公開鍵

共通鍵

リモートアテステーション

秘密鍵復号化

Page 16: 管理 VM への キーボード入力情報漏洩の防止

実験キーボード入力情報漏洩防止の確認FBCrypt によるオーバヘッドキーボード入力一回あたりのレスポンスタイム実験環境

Xen 4.0.2ドメイン 0/ ドメイン Uカーネル : Linux-2.6.32.21CPU: Intel Core2Quad 2.83GHzVNC クライアント : TigerVNCギガビットイーサネット LAN

16

Page 17: 管理 VM への キーボード入力情報漏洩の防止

キーボード入力情報漏洩防止の確認管理 VM の VNC サーバを改ざんし盗聴プログラムを仕込む

従来 : キーボード入力情報が漏洩FBCrypt: 暗号化されており情報が漏洩していない

17

FBCrypt

従来

Page 18: 管理 VM への キーボード入力情報漏洩の防止

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

キーコード変換

ハイパーコール

Page 19: 管理 VM への キーボード入力情報漏洩の防止

レスポンスタイム (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

画面の更新情報キーボード入力

Page 20: 管理 VM への キーボード入力情報漏洩の防止

レスポンスタイム (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

Page 21: 管理 VM への キーボード入力情報漏洩の防止

関連研究GuardedID [Strike Force Technology Inc.]

デバイスドライバでキーボード入力情報を暗号化し安全にアプリケーションに渡すソフトウェアキーボード

VNC クライアントで使用することで安全に入力を行えるVMCrypt [田所ら OS研究会’ 11]

VMM でユーザ VM のメモリを暗号化復号化された後のメモリ情報が盗まれることによるキーボード入力情報の漏洩を防ぐ

BitVisor [Shinagawa et al. VEE’09]ゲスト OS のストレージやネットワークの暗号化を VMM が行う

21

Page 22: 管理 VM への キーボード入力情報漏洩の防止

まとめFBCrypt を提案

管理 VM 経由のアクセスでもユーザ VM に安全にキーボード入力情報を送れる障害に強いユーザ VM 管理と情報漏洩の防止を両立VNC クライアントで暗号化、 VMM 内で復号化

今後の課題VNC クライアントと VMM 間での鍵交換の実装完全仮想化への対応マウス入力と画面情報の暗号化

22