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

Slides:



Advertisements
Similar presentations
ファイルキャッシュを考慮したディスク監視のオフロード
Advertisements

セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
クラウド上の仮想マシンの安全なリモート監視機構
クラウドにおける ネストした仮想化を用いた 安全な帯域外リモート管理
Xenを用いたクラウドコンピュー ティングにおける情報漏洩の防止
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
中村孝介(九州工業大学) 光来健一(九州工業大学/JST CREST)
KVMにおけるIDSオフロードのための仮想マシン監視機構
「コンピュータと情報システム」 07章 インターネットとセキュリティ
「まめだくん Ver.1.0」 特徴と利用方法.
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
仮想計算機を用いたファイルアクセス制御の二重化
OSが乗っ取られた場合にも機能するファイルアクセス制御システム
XenによるゲストOSの解析に 基づくパケットフィルタリング
クラウドにおけるアプリケーション単位での VM構成の動的最適化
帯域外リモート管理を継続可能な マイグレーション手法
ファイルシステムキャッシュを 考慮したIDSオフロード
ネストした仮想化を用いた VMの安全な帯域外リモート管理
帯域外リモート管理の継続を 実現可能なVMマイグレーション手法
VMマイグレーションを可能にするIDSオフロード機構
IaaS型クラウドにおける キーボード入力情報漏洩の防止
クラウドの内部攻撃者に対する安全なリモートVM監視機構
アスペクト指向プログラミングを用いたIDSオフロード
サスペンドした仮想マシンの オフラインアップデート
SAccessor : デスクトップPCのための安全なファイルアクセス制御システム
踏み台攻撃だけを抑制できる VMMレベル・パケットフィルタ
KVMにおける仮想マシンの 内部監視機構の実装と性能評価
仮想マシン間にまたがる プロセススケジューリング
Xenによる ゲストOSの監視に基づく パケットフィルタリング
仮想計算機を用いて OSを介さずに行う安全な ファイルアクセス制御
分散IDSの実行環境の分離 による安全性の向上
共通暗号方式 共通のキーで暗号化/復号化する方法 例) パスワードつきのZIPを送信して、後からパスワードを送る方法 A さん B さん
仮想マシンモニタによる きめ細かい パケットフィルタリング
VMのメモリ暗号化によるクラウド管理者への情報漏洩の防止
VMのメモリ暗号化による クラウド管理者への情報漏洩の防止
VM専用仮想メモリとの連携による VMマイグレーションの高速化
IaaS型クラウドにおける インスタンス構成の動的最適化手法
暗号化された仮想シリアルコンソールを 用いたVMの安全な帯域外リモート管理
リモートホストの異常を検知するための GPUとの直接通信機構
シャドウデバイスを用いた 帯域外リモート管理を継続可能なVMマイグレーション
インターネットにおける真に プライベートなネットワークの構築
仮想メモリを用いた VMマイグレーションの高速化
複数ホストに分割されたメモリを用いる仮想マシンの監視機構
Linux リテラシ 2006 第5回 SSH と SCP CIS RAT.
仮想計算機を用いたサーバ統合に おける高速なリブートリカバリ
仮想シリアルコンソールを用いた クラウドの安全なリモート管理
クラウドにおけるIntel SGXを用いた VMの安全な監視機構
IaaS環境におけるVMのメモリ暗号化による情報漏洩の防止
クラウドにおけるVMリダイレクト攻撃を防ぐためのリモート管理機構
クラウドにおけるVM内コンテナを用いた 自動障害復旧システムの開発
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
仮想マシンを用いた 既存IDSのオフロード
Intel SGXを用いた仮想マシンの 安全な監視機構
軽量な仮想マシンを用いたIoT機器の安全な監視
複数ホストにまたがって動作する仮想マシンの障害対策
VMMのソフトウェア若化を考慮した クラスタ性能の比較
信頼できないクラウドにおける仮想化システムの監視機構
仮想環境を用いた 侵入検知システムの安全な構成法
Cell/B.E.のSPE Isolationモードを用いた監視システム
仮想マシンの監視を継続可能なマイグレーション機構
仮想マシンと物理マシンを一元管理するための仮想AMT
仮想マシンに対する 高いサービス可用性を実現する パケットフィルタリング
Cell/B.E. のSPE上で動作する 安全なOS監視システム
VMリダイレクト攻撃を防ぐための 安全なリモート管理機構
強制パススルー機構を用いた VMの安全な帯域外リモート管理
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
特定ユーザーのみが利用可能な仮想プライベート・ネットワーク
複数ホストにまたがるVMの メモリ使用状況に着目した高速化
Virtual Machine Introspectionを可能にするVMCryptの拡張 田所秀和 光来健一 (九州工業大学)
強制パススルー機構を用いた VMの安全な帯域外リモート管理
Presentation transcript:

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

IaaSにおけるユーザVMの管理 仮想マシン(VM)をネットワーク経由で提供 ユーザVMのVNCサーバに接続して管理 2 仮想マシン(VM)をネットワーク経由で提供 ユーザはクラウド上のVMを利用 ユーザVMのVNCサーバに接続して管理 VM内のネットワーク障害時に管理が不可能に ネットワークの設定ミス・OSのクラッシュ時など ユーザ VNC クライアント クラウド VNC サーバ ユーザVM

xvp [http://www.xvpsource.org] 障害に強いVMの管理方法 3 管理VM経由でユーザVMにアクセス ユーザVM内のネットワーク障害時でも管理可能 ユーザVMの仮想デバイスに直接アクセス 管理VM: ユーザVMの作成、起動などを行う特別なVM 例) Xen VNC Proxy ユーザ VNC クライアント クラウド VNC サーバ 管理VM ユーザVM 仮想 デバイス xvp [http://www.xvpsource.org]

信頼できない管理VMの存在 管理VMは信頼できるとは限らない 管理VMに脆弱性があり第三者に侵入される可能性 4 管理VMは信頼できるとは限らない 管理VMに脆弱性があり第三者に侵入される可能性 システム管理者が管理VMで不正を行う可能性 VMはマイグレーションで各地のデータセンタを移動 セキュリティ意識の低い管理者の下で動作する可能性 マイグレーション 管理VM 管理VM VM VM VM VM VM VM VM 改ざん 正当な管理者 攻撃者

管理VMへの情報漏洩 ユーザVMへのキーボード入力情報が漏洩 VPNやSSHトンネリングでは対処できない 5 ユーザVMへのキーボード入力情報が漏洩 例) 管理VMのVNCサーバの改ざん パスワードなどの機密情報が漏洩 VPNやSSHトンネリングでは対処できない クラウド 管理VM VNCサーバ ユーザVM ユーザ VNC クライアント キーボード入力 VPN 盗聴 情報漏洩 信頼できない 管理者 パスワード

提案: FBCrypt 管理VM経由のアクセスでもユーザVMに安全にキーボー ド入力を送れるシステム 6 管理VM経由のアクセスでもユーザVMに安全にキーボー ド入力を送れるシステム 障害に強いVM管理と情報漏洩の防止を両立 VNCクライアントで暗号化、VMMで復号化 クラウド ユーザ 暗号化 キーボード入力 管理VM VNCサーバ ユーザVM 仮想 デバイス VMM 復号化

脅威モデル 管理VMからのキーボード入力情報の漏洩を想定 VMMとハードウエアはリモートアテステーションで保証 7 管理VMからのキーボード入力情報の漏洩を想定 VMMとハードウエアはリモートアテステーションで保証 FBCrypt導入時点で不正な改ざんはない クラウド VMM ユーザVM 管理VM ハードウエア 信頼できない 管理者 信頼できる ユーザ VNC クライアント

システム構成 Xen上に実装 (準仮想化) 管理VM: ドメイン0 ユーザVM: ドメインU VNCサーバ: QEMU 8 Xen上に実装 (準仮想化) 管理VM: ドメイン0 ユーザVM: ドメインU VNCサーバ: QEMU キーボード入力情報を書き込むメモリ領域: I/Oリング クラウド VMM 復号化 ドメインU I/Oリング ドメイン0 QEMU ユーザ 暗号化 VNCクライアント TigerVNC

キーボード入力の復号化とコード変換 VMMで復号化 キーコード変換 暗号化された情報をハイパーコールでVMMに渡す 9 VMMで復号化 暗号化された情報をハイパーコールでVMMに渡す キーコード変換 復号化後の情報はASCIIコード I/Oリングに書き込む情報はキーコード ASCII : ‘A’ キーコード : shift+a ドメイン0 QEMU ドメインU I/Oリング 従来 ハイパーコール ‘?’ shift + a ‘A’ 復号化 キーコード変換 VMM

I/Oリングのアドレス取得(1) ドメインUとXenStoreの通信からI/Oリングのアドレス取 得 XenBusを使用して通信を行う 10 ドメインUとXenStoreの通信からI/Oリングのアドレス取 得 XenBusを使用して通信を行う XenStore: 各VMの情報管理データベース VMM ドメイン0 QEMU XenStore ドメインU I/Oリング MFN取得 従来 I/Oリング情報 パス device/vkbd/mfn MFN 102794

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

XenStoreリングのアドレス取得 起動情報ページから取得 ドメイン0がレジスタ経由でドメインUに通知 12 起動情報ページから取得 ドメイン0がレジスタ経由でドメインUに通知 疑似物理アドレスからマシンフレーム番号を導出 M2Pテーブルを使用 XenStoreリングをVMMにマップすることで監視可能 ドメインU 起動情報ページ ドメイン0 レジスタ経由で通知 XenStore リング 監視 M2P テーブル PFN MFN

I/Oリングへのアクセス禁止 復号化後の情報をドメイン0から参照できないように ページテーブルの変更はVMMが管理 13 復号化後の情報をドメイン0から参照できないように ページテーブルの変更はVMMが管理 I/Oリングページのマップ要求を拒否 VMMはI/OリングのMFNを取得済み ドメイン0 QEMU 参照不可 参照可能 ドメインU I/Oリング マップ要求 キーボード入力 マップ拒否 I/Oリング メモリ管理 書き込み I/Oリング 取得 復号化 VMM

ストリーム暗号RC4 キーボード入力を一文字ごとに暗号化して送信 VNC接続のたびにVMMの内部状態をリセット 14 キーボード入力を一文字ごとに暗号化して送信 内部状態を変化させてキーストリームを生成 同じ文字でも暗号化後の情報が毎回変化 VNC接続のたびにVMMの内部状態をリセット VNCクライアントとVMMの内部状態の不一致を避けるため ユーザ 暗号化 VNCの内部状態 クラウド 接続 VMM ドメイン0 復号化 リセット 0 1 … 255 ? 0 1 … 255 一致 不一致 VMMの内部状態

VMMとクライアント間での鍵の共有 暗号化と復号化に用いる共通鍵を安全に共有 起動時にリモートアテステーションでVMMの正当性を検証 15 暗号化と復号化に用いる共通鍵を安全に共有 起動時にリモートアテステーションでVMMの正当性を検証 FBCrypt導入時に鍵サーバにVMMの公開鍵を登録済み 接続のたびにクライアント側で共通鍵を新規生成して共有 TPMがVMMの秘密鍵を復号化し共通鍵を復号化 VNCクライアント 管理VM VNCサーバ 公開鍵 共通鍵 VMM ハード ウエア TPM 共有 共通鍵 秘密鍵 鍵サーバ 公開鍵 復号化 リモート アテステーション

実験 キーボード入力情報漏洩防止の確認 FBCryptによるオーバヘッド キーボード入力一回あたりのレスポンスタイム 実験環境 16 キーボード入力情報漏洩防止の確認 FBCryptによるオーバヘッド キーボード入力一回あたりのレスポンスタイム 実験環境 Xen 4.0.2 ドメイン0/ドメインUカーネル: Linux-2.6.32.21 CPU: Intel Core2Quad 2.83GHz VNCクライアント: TigerVNC ギガビットイーサネットLAN

キーボード入力情報漏洩防止の確認 管理VMのVNCサーバを改ざんし盗聴プログラムを仕込む 従来: キーボード入力情報が漏洩 17 管理VMのVNCサーバを改ざんし盗聴プログラムを仕込む 従来: キーボード入力情報が漏洩 FBCrypt: 暗号化されており情報が漏洩していない 従来 FBCrypt

FBCryptのオーバヘッド 44.2 10.7 VNCクライアント: 2μsのオーバヘッド QEMU: 31μsのオーバヘッド 18 VNCクライアント: 2μsのオーバヘッド ストリーム暗号による暗号化 QEMU: 31μsのオーバヘッド ハイパーコール、復号化、キーコード変換、I/Oリング書き込 み ハイパーコールの呼び出しに時間がかかる [μs] 35.3 44.2 8.9 3.9 6.8 10.7 VNCクライアント 暗号化 キーボード入力 VMM 復号化 ドメインU I/Oリング ドメイン0 QEMU キーコード変換 ハイパーコール

レスポンスタイム(1) キーボード入力後に画面の更新要求を受け取るまでの時間 通常の管理VM経由の接続 FBCrypt ユーザVMに直接接続 19 キーボード入力後に画面の更新要求を受け取るまでの時間 通常の管理VM経由の接続 FBCrypt ユーザVMに直接接続 画面の更新情報 キーボード入力 VNCクライアント 暗号化 管理VM VNCサーバ ユーザVM I/Oリング VMM 復号化 FBCrypt ユーザVM直接(SSHトンネリング) ユーザ VNC クライアント ユーザVM サーバ SSH ユーザ VNC クライアント 管理VM VNCサーバ ユーザVM I/Oリング 管理VM経由(SSHトンネリング) SSH

レスポンスタイム(2) FBCryptとの比較 FBCryptによるレスポンスタイムの悪化は小さい 1.26 1.17 1.10 20 FBCryptとの比較 管理VM経由: FBCryptの方が 0.07ms遅い ユーザVM直接: FBCryptの方が 0.07ms速い FBCryptによるレスポンスタイムの悪化は小さい 1.26 1.17 1.10

関連研究 GuardedID [Strike Force Technology Inc.] ソフトウェアキーボード 21 GuardedID [Strike Force Technology Inc.] デバイスドライバでキーボード入力情報を暗号化し安全にア プリケーションに渡す ソフトウェアキーボード VNCクライアントで使用することで安全に入力を行える VMCrypt [田所ら OS研究会’11] VMMでユーザVMのメモリを暗号化 復号化された後のメモリ情報が盗まれることによるキーボー ド入力情報の漏洩を防ぐ BitVisor [Shinagawa et al. VEE’09] ゲストOSのストレージやネットワークの暗号化をVMMが行う

まとめ FBCryptを提案 今後の課題 管理VM経由のアクセスでもユーザVMに安全にキーボード 入力情報を送れる 22 FBCryptを提案 管理VM経由のアクセスでもユーザVMに安全にキーボード 入力情報を送れる 障害に強いユーザVM管理と情報漏洩の防止を両立 VNCクライアントで暗号化、VMM内で復号化 今後の課題 VNCクライアントとVMM間での鍵交換の実装 完全仮想化への対応 マウス入力と画面情報の暗号化