Presentation is loading. Please wait.

Presentation is loading. Please wait.

仮想シリアルコンソールを用いた クラウドの安全なリモート管理

Similar presentations


Presentation on theme: "仮想シリアルコンソールを用いた クラウドの安全なリモート管理"— Presentation transcript:

1 仮想シリアルコンソールを用いた クラウドの安全なリモート管理
九州工業大学 情報創成工学専攻 光来研究室  梶原達也

2 IaaS型クラウド クラウドコンピューティングの普及 1つの形態としてIaaS型クラウドが挙げられる ユーザに仮想マシン(VM)を提供
近年、ネットワークを介してサービスを提供するクラウドコンピューティングという手法が広がっています。 このクラウドコンピューティングの利用形態を表す用語の一つに、イアース型クラウドが挙げられます。 IaaSとは Infrastructure as a Service の略でサーバで仮想化したマシンそのものをネットワーク経由でユーザに提供するサービスです。 仮想マシンとはソフトウェアで作られた計算機のことです。一般的にユーザは仮想マシンに対し、ネットワーク経由でアクセスし、OSをインストールして使用することができます。 インターネット VM IaaS型クラウド

3 VMの管理 一般的に,ネットワーク経由で直接接続する 欠点:VM内のシステム障害で管理ができなくなる 例:SSH
ネットワーク設定のミス:ファイアウォールなど SSHサーバの障害・設定ミス OSの障害 ユーザ ユーザVMに対し、ユーザは何らかの方法でログインして操作する。 リモート管理ソフトウェアを用いてユーザVMに直接接続する管理方法が用いられている。 VM内のシステム障害が発生した時に接続が強制的に中断され、管理ができなくなる。* システム障害の例:ネットワーク設定(インタフェース、ファイアウォール)のミスやSSHサーバ(バグや設定ミス)の障害、そしてユーザVMのOS障害などが考えられる。 クラウド ネットワーク ユーザVM SSH サーバ SSH クライアント ログイン

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

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

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

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

8 安全な暗号化・復号化 信頼できる仮想マシンモニタ(VMM)を用いてコ ンソール入出力を暗号化・復号化
VMMは管理VMの下で動作するソフトウェア 管理VMは復号後の入力および暗号化前の出力を見ることができない クラウド ユーザVM 管理VM クラウド内で安全に暗号化・復号化が行えるようにVMM内で暗号化・復号化を行う。 VMMは複数の仮想マシンを動作させるソフトウェアで管理VMの下で動作している。 VMM内でユーザVMへのコンソール入力は復号され、ユーザVMからのコンソール出力はVMM内で暗号化を行う 管理VMは平文でコンソール入出力を見ることができなくなる。 仮想シリアル コンソール ユーザ 復号/暗号化 VMM

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

10 コンソール入力の復号 従来は仮想シリアルデバイスが直接コンソール バッファに入力を書き込んでいた SCCryptではVMMに暗号入力を渡す
クラウド ユーザVM 次にSCCryptのより詳しい実装について説明していきます。 従来のシステム:仮想シリアルデバイスが直接コンソールバッファに入力を書き込む。ユーザVMはコンソールバッファからコンソール入力を取得 * SCCryptでは暗号化されたコンソール入力はVMMを経由する。ハイパーコールを用いてVMMに入力を渡す 仮想シリアルデバイスに代わりVMMが書き込む。ユーザVMは従来通り、特別な修正は不要となります。 コンソールバッファ 仮想シリアル デバイス 入力 書き込み 復号 VMM

11 コンソール入力の暗号化と問題点 SSHクライアントでSCCrypt用に入力を暗号化
問題:仮想シリアルコンソールに接続するまでの 入力も一律に暗号化されてしまう 接続コマンドの入力 アクセス権を取得するためのパスワード入力 クラウド 暗号化の実装について説明します。SSHクライアントでストリーム暗号を用いて暗号化を行います。 この暗号化はSSH本来の暗号化とは別の暗号化です。 SSHクライアントからSSHサーバまでの通信は2重に暗号化された状態 それは仮想シリアルコンソールを利用するためのコマンド入力まで暗号化するという問題です。 仮想シリアルコンソールに接続するコマンドやアクセス権限を取得するパスワード入力を行いますが * この方法ではこれらの入力も暗号化されて管理VMに送信されて実行されるので * 仮想シリアルコンソールを利用することができなくなります。 管理VM SCCrypt用暗号化 仮想シリアル コンソール SSH クライアント SSHサーバ 入力 xenconsole Pass:**** ????????? ????:****

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

13 コンソール出力の暗号化 VMの出力情報も同様に暗号化する 従来は仮想シリアルデバイスがユーザVMのコンソールバッファから直接読み込んでいた
SCCryptではVMMを経由して取得 その際に暗号化を行う SSHクライアントで復号 クラウド 管理VM ユーザVM 出力 次に、ユーザVMからのコンソール出力の暗号化 通常では仮想シリアルデバイスがコンソールバッファから出力を読み込む * 本手法ではハイパーコールによって、VMMがコンソールバッファからコンソール出力を読み込みVMM内で暗号化 SSH クライアント SSH サーバ コンソールバッファ SCCrypt用復号 読み込み 暗号化 VMM

14 コンソールバッファの特定 VMMは管理VMとユーザVM間の通信を監視して コンソールバッファのアドレスを取得
起動 管理VM 通知 ユーザVM 本手法では、クラウド内で入出力情報を復号・暗号化するためにVMMを経由することになりますが、従来のVMMはユーザVMのコンソールバッファの情報を認識していませんでした。 そのため、VMMがユーザVMのコンソールバッファに対し書き込み・読み込み処理ができるように、コンソールバッファのアドレスを取得する必要があります。 * ユーザVMが起動した時に、管理VMはメモリ内に割り当てたユーザVMのコンソールバッファのアドレスなどを通知しています。 * そこでSCCryptのVMMは、ユーザVMの起動時に管理VMとユーザVMの間で行われる通知からコンソールバッファのアドレス情報を取得しています。 これにより、VMMはコンソールバッファに書き込み・読み込み処理が行えるようになります。 コンソールバッファの アドレス コンソールバッファ チェック VMM

15 仮想シリアルコンソールの鍵管理 VMの所有者のみが仮想シリアルコンソール接続 のセッション鍵をVMMに登録できる必要
クラウド管理者が登録できると暗号化の意味なし 単純な鍵交換では不十分 セッション鍵 クラウド ユーザVM 管理VM SCCryptの暗号化・復号化に必要なセッション鍵を登録するのはVMの正しい所有者にのみ行えるようにする必要がある クラウド管理者によって登録できる状態では暗号化をしても管理者が復号できてしまう セッション鍵の交換はただ鍵を交換するだけでは不十分であり,正しい所有者であると認識できることが求められる 仮想シリアル コンソール ユーザ 復号/暗号化 VMM セッション鍵

16 ユーザとVMの関連付け VMとその所有者が生成した秘密IDを関連付け ディスク暗号化により所有者のみがVMを起動可に
{VMの秘密ID,ディスク暗号鍵}をVMMに送信 鍵サーバから取得したVMMの公開鍵で暗号化 所有者のみが正常起動したVMに秘密IDを関連付け可 起動 SSHクライアント 管理VM ユーザVM 接続 ??? 秘密ID 正しいVMの所有者であることを認識させるために秘密IDとディスクの暗号化を使う。ユーザVMのディスクを暗号化しておくことで正しい鍵で復号しないとVMを起動できないようにしておく * ユーザは信頼できる鍵サーバからVMMで生成された公開鍵を取得して * 所有者が生成したVMの秘密IDとディスクの暗号鍵を暗号化 * 秘密IDとディスク暗号鍵は管理VMを経由してVMMに送信され復号、 * ディスクの正常な復号による起動で秘密IDを関連付けることができる SSHサーバ ディスク 復号 ??? ディスク暗号鍵 暗号化 秘密ID 鍵サーバ ディスク暗号鍵 秘密鍵 公開鍵 公開鍵 復号 VMM

17 VMへのセッション鍵の登録 VMの秘密IDを介してセッション鍵をVMに登録 SSHクライアントは接続のたびにセッション鍵を生成
{VMの秘密ID,セッション鍵}をVMMに暗号化して送信 秘密IDからVMを見つけ、セッション鍵を登録 秘密IDを知っている所有者しか登録できない SSHクライアント 接続 管理VM ユーザVM ??? 秘密ID 接続 SSHサーバ またセッション中の暗号鍵は関連付けた秘密IDを利用する。SSHクライアントは鍵サーバから * VMMで生成された公開鍵を入手。SSHクライアントは管理VMに接続時 * 暗号化に使うセッション鍵を生成、この鍵を * 公開鍵で暗号化し管理VMに送ります。 * 管理VMはVMMに送り、VMM内で秘密鍵を用いて復号。 * 秘密IDから正しいVMを見つけセッション鍵を登録 これによりセッション鍵の登録は秘密IDを知っている所有者しか登録できないようにすることができより暗号化を安全に行える ??? セッション鍵 暗号化 秘密ID 鍵サーバ セッション鍵 秘密鍵 VMM 公開鍵 公開鍵 復号

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

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

20 SSHクライアントにおける応答時間 SSHクライアントでのコンソール入力から対応する コンソール出力を受け取るまでの時間
暗号化しない従来の接続方法と比較して0.35msの遅延が確認された ほとんどは暗号化・復号化のためにVMMを呼び出すオーバヘッドと考えられる 入力 表示 クラウド ??? abc 次に応答時間を比較。 * ユーザが入力をしてユーザVMが対応する出力を返して表示するまでを応答時間とする。 100回測定を行いその平均時間を求めた結果はグラフおよそ0.35ミリ秒の平均して遅延。 遅延はほとんどが暗号化・復号化のためにハイパーコールによってVMMを経由するオーバヘッド 管理VM ユーザVM ユーザ abc VMM

21 画面表示のスループット ファイルの内容を画面に表示するのにかかる時 間を測定 対象とするファイルのサイズ:9.6MB
暗号化しない従来の接続方法と比較してもほとんど差はない 入力 表示 クラウド 実行 cat ??? また、ファイルの内容を画面に表示するのにかかる時間を測定し、スループットを比較しました。 catコマンドで1000万文字(バイト)のテキストファイルを表示、1秒当たりの文字表示数をスループットとする。 SCCryptと暗号化しない従来の方法ではほとんど差がない結果。 ※オリジナルよりもSCCrypt の方が僅かによいのは、SCCrypt のオーバヘッドのためにコンソールリングにより多くのデータがたまるためであると考えられます。 ※その結果,一度により多くの文字を処理できることになりオーバヘッドが削減されます。 管理VM ユーザVM ユーザ cat VMM ?

22 関連研究 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に及ぶことでクラウドサービスそのものが危険にさらされる恐れがある。

23 まとめ クラウド内の仮想シリアルコンソールからの入出 力情報の漏洩を防ぐSCCryptを提案 管理VM内では暗号化されていることを確認
暗号化された仮想シリアルコンソールを提供 信頼できるVMMを用いて仮想シリアルコンソールの入出力を復号化・暗号化 SSHクライアントで暗号化・復号化 管理VM内では暗号化されていることを確認 従来の方法に比べて0.35msの遅延が発生 コンソール出力のスループットはほとんど差がない

24 今後の課題 強度の高いストリーム暗号への対応 SSH以外のリモート管理ソフトウェアに適用 完全仮想化環境への対応 鍵管理の実装
現在は固定鍵を用いた簡易な排他的論理和 RC4による暗号化を実装している途中 SSH以外のリモート管理ソフトウェアに適用 例:Webベース・シリアルコンソール(Ajaxterm) 完全仮想化環境への対応 現在は準仮想化環境にのみ対応 Windowsでも動かせるようにする 鍵管理の実装 ユーザのインスタンスへのCUI を用いた帯域外リモート管理を行うことを可能にしています。Ajaxterm を用いることで、ブラウザ経由で仮想シリアルコンソールにアクセスできます。 SCCryptではSSHの代わりにAjaxtermを用いることも可能 ※完全仮想化に対応することでwindowsでも動かせるようになる ※Webブラウザに実装されているJavaScriptのHTTP通信機能を使って、Webページのリロードを伴わずにサーバとXML形式のデータのやり取りを行って処理を進めていく対話型Webアプリケーションの実装形態。XMLドキュメント読み込み機能を使ってリロードなしに処理結果を得るスタイルを実現している


Download ppt "仮想シリアルコンソールを用いた クラウドの安全なリモート管理"

Similar presentations


Ads by Google