Presentation is loading. Please wait.

Presentation is loading. Please wait.

暗号化された仮想シリアルコンソールを 用いたVMの安全な帯域外リモート管理

Similar presentations


Presentation on theme: "暗号化された仮想シリアルコンソールを 用いたVMの安全な帯域外リモート管理"— Presentation transcript:

1 暗号化された仮想シリアルコンソールを 用いたVMの安全な帯域外リモート管理
九州工業大学大学院 情報工学府 情報創成工学専攻   梶原達也

2 クラウドコンピューティング IaaS(Infrastructure as a Service) 一般に,ネットワーク経由でVMに直接接続する
例:SSH 欠点:VM内のネットワーク障害で管理ができなくなる IaaS ユーザ 近年、ネットワークを介してサービスを提供するクラウドコンピューティングという手法が広がっています。その中にイアースクラウドがあります。 IaaSではサーバで仮想化したマシンそのものをネットワーク経由でユーザに提供するサービスをおこなっています。 仮想マシンとはソフトウェアで作られた計算機のことです。一般的にユーザは仮想マシンに対し、ネットワーク経由でログインし管理します。 *しかし,この管理方法はVM内で動作するリモート管理サーバやOSのバグであったり,ネットワークの設定ミスによって障害が起こり切断され管理ができない欠点があります。 ユーザVM VM VM SSH サーバ ログイン SSH クライアント

3 仮想シリアルコンソール VMの仮想的なシリアルデバイスを経由してアクセ スする管理手法
ネットワーク経由でVMにアクセスできない状況でもVMの操 作が可能 ユーザVMのコンソールに直接アクセス 管理VMにログインして利用 ユーザ クラウド 仮想シリアル デバイス このような直接接続ができない場合になってもVMを管理できるように、仮想シリアルコンソールが提供されています。 これはVMの仮想的なシリアルデバイスを経由してVMを操作する方法です。このような管理手法は帯域外リモート管理と呼ばれます。 帯域外リモート管理では管理VMにログインし、ユーザVMに割り当てられた仮想シリアルコンソールに接続することで操作を可能にします。 この方法はユーザVMのネットワークを用いない。 管理VM ユーザ VM SSH サーバ SSH クライアント ログイン 仮想シリアルコンソール

4 セキュリティの不安 クラウド内の管理VMが信用できるとは限らない SSHによって保護されるのは管理VMまで
セキュリティの不備により攻撃者に侵入される可能性 悪意あるクラウド管理者が存在する可能性 SSHによって保護されるのは管理VMまで 管理VMから先は無防備 クラウド SSHによって保護 無防備な状態 管理VM 管理VM SSH クライアント SSH しかし、帯域外リモート管理には不安がある。リモート管理クライアントが接続するクラウド内の管理VMが信用できるとは限らない。 従来では管理VMの管理者とユーザVMの管理者は同一あるいは、同一の組織に所属している。 * 管理VMのセキュリティの脆弱性を利用して外部の攻撃者が侵入してくる可能性 * 悪意のあるクラウド管理者が存在する可能性(2010年にGoogle社員によるユーザののぞき見で解雇された事例) * リモート管理ソフトウェアにSSHを用いた場合、SSHの暗号化による保護はクライアントから管理VM内サーバまで(管理VM内で平文になる) * 管理VMからユーザVMへの通信は無防備な状態のままで行われる。 VM VM VM VM VM VM 攻撃者 悪意のある 管理者 ユーザ

5 管理VMへの情報漏洩 管理VMの改ざんにより機密情報が漏洩する恐れ SSHクライアントからのコンソール入力 ユーザVMからのコンソール出力
例:パスワード ユーザVMからのコンソール出力 例:VMのセキュリティ設定 クラウド 管理VM セキュリティ設定 SSH クライアント ユーザ VM SSH サーバ パスワード したがって攻撃者や管理者によって不正な改竄を受けると情報が漏えいする危険がある。 * 例えば、ユーザVMにログインするため、ログインパスワードのコンソール入力が送られた場合、 * 管理VM内のリモート管理サーバや仮想シリアルデバイスを改ざんすることにより管理VMで容易に漏洩してしまう * セキュリティの設定などを行えば設定ファイルの内容がコンソール出力として無防備な状態のまま管理VMに送られる VMのセキュリティ設定が攻撃者にも知られることになる 仮想シリアル コンソール ユーザ 漏洩 パスワード 攻撃者 セキュリティ設定

6 提案:SCCrypt 管理VMに対して暗号化された仮想シリアルコン ソールを提供 入力:クライアントで暗号化されたコンソール入力
クライアントで復号 ls ** ls 暗号化 管理VM ユーザ VM そこで、クライアントとユーザVM間の入出力を安全に通信できるように、暗号化された仮想シリアルコンソール“SCCrypt”を提案 ユーザがVMに入力した際に、 * コンソール入力を暗号化して仮想シリアルコンソールへ送り、 * 復号してユーザVMに渡します。ユーザVMは入力を受け、それに対応したコンソール出力を * 仮想シリアルコンソールに渡し、暗号化した後にクライアントへ送ります。 * 復号はクライアント内など安全な環境で行われ、復号された出力が画面に表示されます。 ただし、この暗号化・復号化を管理VM内ですると従来同様に管理VM内で平文を扱うことになるため漏洩する。 暗号入力 暗号出力 クライアント 復号 Document Picture Music … 暗号化された 仮想シリアルコンソール *************** ******* Document Picture Music …

7 安全な暗号化・復号化 信頼できる仮想マシンモニタ(VMM)を用いてコンソー ル入出力を暗号化・復号化
VMMは管理VMの下で動作するソフトウェア 管理VMは復号後の入力も暗号化前の出力も見られない ストリーム暗号RC4を用いて暗号化 完全仮想化と準仮想化の両方に対応 復号/暗号化 クラウド ユーザVM 管理VM そこでクラウド内で安全に暗号化・復号化が行えるように仮想マシンモニタ内で暗号化・復号化を行う。VMMは複数の仮想マシンを動作させるソフトウェアで管理VMの下で動作している。 VMM内でユーザVMへのコンソール入力は復号され、ユーザVMからのコンソール出力はVMM内で暗号化を行う。管理VMは平文でコンソール入出力を見ることができなくなる。 暗号化にはストリーム暗号のRC4用いる。また、OSに手を加えずにVMのOSとして利用できる完全仮想化と、処理を高速にするようにOSを修正するために、使用できるOSが限られている準仮想化の両方のVMに対応している。 仮想シリアル コンソール ユーザ 復号/暗号化 VMM

8 クラウド内のVMMの信頼性 復号化・暗号化を行うクラウド内のVMMの正当性を保 証 起動時のリモート・アテステーション
あらかじめ登録しておいたハッシュ値と照合して確認 ハードウェア(TPM)によりハッシュ値の改ざんを防止 実行時のVMM自身による保護 VMMの正当性は、外部の検証によって保証することで信頼できるものとする。 VMMの起動時にハッシュ値を計算、署名付きで信頼できる外部の検証サーバに送り完全性を検証します。 ハッシュ値はシステム管理者であっても改竄が不可能なTPMなどのハードウェアの機能を利用することで改竄を防止。 実行中はVMM自身が保護しているので改ざんがされることはない。 ※TPMとはセキュリティ関連の処理機能を実装したチップ(耐タンパー性(内部構造や記憶しているデータの解析の困難さ)を有する) 管理VM ユーザVM 検証サーバ VMM 検証 ハードウェア TPM

9 コンソール入出力の処理(完全仮想化) ユーザVMで実行された出力命令がVMMにトラップさ れた時に暗号化
暗号化された出力が仮想シリアルデバイスに格納される 入力命令の結果を返す時にVMMが復号 暗号化された入力を仮想シリアルデバイスから取り出す 管理VM クラウド SSH クライアント SSHサーバ ユーザVM 次にコンソール入出力の処理と暗号化について説明。完全仮想化における従来のコンソール出力はVMMが出力命令をエミュレーションして出力をシリアルデバイスに格納。その後シリアルデバイスから取り出されてクライアントに送信される。 *SCCryptではコンソール出力がVMMにトラップされた時に暗号化を行う。暗号化されたコンソール出力は仮想シリアルデバイスに格納されたのち、クライアントに送られ復号される。 仮想シリアルデバイス シリアル ドライバ 復号化 出力命令 暗号化 VMM

10 コンソール入出力の処理(完全仮想化) ユーザVMで実行された出力命令がVMMにトラップさ れた時に暗号化
暗号化された出力が仮想シリアルデバイスに格納される 入力命令の結果を返す時にVMMが復号 暗号化された入力を仮想シリアルデバイスから取り出す 管理VM クラウド SSH クライアント SSHサーバ ユーザVM 一方、コンソール入力はクライアントから送られてきた入力データを仮想シリアルデバイスに格納。ユーザVM内のシリアルドライバから入力命令が発行されるとVMMが入力命令をエミュレーションする。仮想シリアルデバイスから返された入力データをVMMがシリアルデバイスに書き込む。 *SCCryptではコンソール入力が仮想シリアルデバイスに格納された後、入力命令の結果が返されシリアルドライバに書き込む時に復号を行う。 仮想シリアルデバイス シリアル ドライバ 暗号化 入力命令 入力情報 復号化 VMM

11 コンソール入出力の処理(準仮想化) 仮想シリアルデバイスはVMMに暗号化された入力を 送り,VMMがそれを暗号化
暗号化された出力が仮想シリアルデバイスに格納される クラウド 管理VM SSH クライアント ユーザVM 従来における準仮想化でのコンソールの入力は,クライアントから送られてきた入力は仮想シリアルデバイスに格納され、仮想シリアルデバイスからユーザVM内のコンソールバッファに直接アクセスし、入力データを書き込んでいた。*SCCryptでは仮想シリアルデバイスからコンソールバッファへの直接のアクセスを禁止して、ハイパーコールを用いてVMMを経由させる。VMMがコンソール入力を受け取り復号して仮想シリアルデバイスに代わりコンソールバッファに書き込む。ユーザVMはコンソールバッファから入力を読み込んで処理する。 アクセス禁止 コンソールバッファ 暗号化 仮想シリアル デバイス 復号化 VMM

12 コンソール入出力の処理(準仮想化) 仮想シリアルデバイスはVMMに暗号化された入力を 送り,VMMがそれを暗号化
暗号化された出力が仮想シリアルデバイスに格納される クラウド 管理VM SSH クライアント ユーザVM また、準仮想化でのコンソールの出力は,ユーザVMがコンソールバッファに出力データを書き込んだ後、コンソールバッファから仮想シリアルデバイスへと送られる。その後仮想シリアルデバイスから取り出され、クライアントに送信されていた。*SCCryptではハイパーコールを用いてVMMを経由させる。コンソール出力はVMMで暗号化され仮想シリアルデバイスに格納される。その後仮想シリアルデバイスから取り出されクライアントに送信され復号される。 アクセス禁止 コンソールバッファ 復号化 仮想シリアル デバイス 暗号化 VMM

13 仮想シリアルコンソールへの接続 仮想シリアルコンソールに接続するまでの入力も一律 に暗号化されてしまう
接続コマンド、アクセス権を取得するためのパスワード入力 SSHのリモートコマンド実行機能を利用 通所の入力とは別に扱われる このコマンドに限り,パスワード入力を省略できるように設定 ssh –t sudo xenconsole vm クラウド しかし、この暗号化は仮想シリアルコンソールに接続するまでの入力も一律に暗号化されてしまうという問題がある。具体的には接続のコマンドやアクセス権を取得するのに必要となるパスワード入力。そこで、SSHのリモートコマンド実行機能を利用して仮想シリアルコンソールに接続。SSHの接続先で実行するコマンドを通常の入力とは別に送信する。 よってコマンドの文字列を通常のキーボード入力とは別に扱うことができるため, * 管理VMに対するコマンドだけを暗号化せずにSSH サーバに送ることができます。また、コマンド実行のための権限を取得する際に、パスワードが必要になることについては、特定のコマンドを実行するときにだけ権限を与えるように設定することでパスワード入力を省略できます。 非暗号化 管理VM SSH クライアント SSHサーバ xen console 実行

14 実験 SCCryptの有効性を確かめる実験を行った 管理VMでの入出力の盗聴 SSHクライアントにおける応答時間 画面表示のスループット
CPU使用率 実験環境 クライアントマシン サーバマシン マシン Linux Xen-4.1.3 Linux CPU Intel Xeon E GHz Intel Core i GHz LAN ギガビット イーサネット SSH OpenSSH 6.0p1 OpenSSH 5.9p1 SCCryptの有効性を確かめる実験を行いました。実験は管理VMでの入出力の盗聴、SSHクライアントでの応答時間の比較、画面表示のスループットの比較と、CPU使用率のの比較をしました。実験の環境は表のとおりとなっております。

15 入出力の盗聴 コンソール入出力の盗聴ができるかどうか調べた デモ 管理VMで入出力を取得,ログファイルに書き込ませる クラウド 管理VM
暗号化を行わなかった場合と行った場合の両方の比較をする。 この実験にはデモ動画を用意してありますのでそちらを見ていただこうと思います。 仮想シリアル コンソール ユーザ 復号/暗号化 VMM

16 応答時間 入力から出力までの応答時間を測定 完全仮想化ではほぼ同じ応答時間 準仮想化では0.14msの遅延が発生
SSHクライアントでの入力がユーザVMで処理され、ユーザ端 末に表示されるまで 完全仮想化ではほぼ同じ応答時間 入出力の途中で暗号化・復号化するため 準仮想化では0.14msの遅延が発生 VMMを呼び出して 暗号化・復号化を行うため SSHクライアントから入力を行い、ユーザVMで処理され、ユーザ端末に表示されるまでの時間を応答時間にする。この実験では100回の測定を行いその平均時間を算出しています。

17 画面表示のスループット 巨大なファイルを表示するのにかかる時間を測定 表示スループットにはほとんど差がなかった
ユーザVMにログインしてcatコマンドで表示 表示スループットにはほとんど差がなかった 準仮想化は完全仮想化よりも大幅にスループットが 高かった 次に~。これはユーザVMにログインしてcatコマンドで巨大なファイルを表示させるのにかかる時間を測定。 完全仮想化よりも準仮想化のほうがスループットが高いことが確認できた。

18 CPU使用率 SSHクライアントから10.9字/秒で入力を行った場合 ユーザVMで1000字/秒で出力を行った場合 完全仮想化はほとんど同じ
完全仮想化、準仮想化ともにほとんど同じ またCPUの使用率について入力・出力に負荷をかけて測定。入力ではOSのデフォルトのキーリピートレートである毎秒10.9字の入力処理を実行させた結果の平均が左の図。準仮想化においてSCCryptのCPU使用率が3ポイント上昇しているのは先の応答時間の比較でも説明したようにVMMを呼び出しているためと考えられる。出力では巨大なファイルを表示させたと仮定して毎秒1000字の出力処理を実行させた時のCPU負荷がの平均が右の図となる。出力では4ポイント高くなっているが元々が120%という高い使用率であるためほとんど同じといってよい。 入力時 出力時

19 関連研究 FBCrypt [Egawa et al. ‘12] Xoar [Colp et al. ‘11]
VNCを用いたVM管理において情報漏洩を防止 データ量の多いビデオ出力を暗号化するためオーバヘッ ドが大きい Xoar [Colp et al. ‘11] 仮想シリアルデバイスを専用のコンソールVMで動作 クラウド管理者による攻撃について考慮されていない VMware vSphere Hypervisor [VMware Inc.] VNCサーバをVMM内で動作させてリモート管理 VNCサーバが攻撃されるとVMMに影響する恐れがある 関連研究について説明します。 FBCrypt:VNCを用いたVMのリモート管理においてクラウド内での情報漏えいを防止。データ量の多いビデオ出力を暗号化するためオーバヘッドが大きい欠点がある。SCCryptは比較的データ量の小さい文字の出力を暗号化しているのでオーバヘッドも比較的小さくなる。 ゾアー:仮想シリアルデバイスを専用のコンソールVMで動作させるシステム。管理VMで仮想シリアルデバイスを動かさないため管理VM上での漏洩を防止するが、クラウド管理者による攻撃について考慮されていないという問題があります。 VMware vSphere Hypervisor :管理VM内で動作しているVNCサーバをVMM内で動作させる。管理VMを経由しないという利点があるがVNCサーバが攻撃された場合、影響がVMMに及ぶことでクラウドサービスそのものが危険にさらされる恐れがある。

20 まとめ クラウド内の仮想シリアルコンソールから入出力情報 の漏洩を防ぐSCCryptを提案 SCCryptの有効性を確認 今後の課題
暗号化された仮想シリアルコンソールを提供 信頼できるVMMを用いて入出力を復号化・暗号化 SCCryptの有効性を確認 管理VM内では盗聴することができなかった オーバヘッドは十分小さい 今後の課題 ユーザVMへの再接続時における暗号鍵の同期 ユーザとVMの安全な関連付け 暗号鍵の同期:ユーザVMに再接続したときにクライアントの暗号鍵とVMM内の暗号鍵で同期ができない 関連付け:ユーザが正しいVMを管理しているか。異なるVMに接続せずに正しいVMに接続する方法


Download ppt "暗号化された仮想シリアルコンソールを 用いたVMの安全な帯域外リモート管理"

Similar presentations


Ads by Google