Transcript slide - KSL
仮想シリアルコンソールを用いた クラウドの安全なリモート管理 九州工業大学 情報創成工学専攻 光来研究室 梶原達也 IaaS型クラウド クラウドコンピューティングの普及 1つの形態としてIaaS型クラウドが挙げられる ユーザに仮想マシン(VM)を提供 ユーザはネットワーク経由でVMにアクセス ユーザ インターネット VM VM IaaS型クラウド VMの管理 一般的に,ネットワーク経由で直接接続する 例:SSH 欠点:VM内のシステム障害で管理ができなくなる ネットワーク設定のミス:ファイアウォールなど SSHサーバの障害・設定ミス OSの障害 ユーザ クラウド ネットワーク ユーザVM SSH クライアント ログイン SSH サーバ 仮想シリアルコンソール VMの仮想的なシリアルデバイスを経由してアクセス する管理手法 ネットワーク経由でVMにアクセスできない状況でもVMの 操作が可能 ユーザVMのコンソールに直接アクセス 管理VMにログインして利用 クラウド ユーザ 仮想シリアル デバイス 管理VM SSH クライアント ユーザ VM SSH サーバ ログイン 仮想シリアルコンソール セキュリティの不安 クラウド内の管理VMが信用できるとは限らない セキュリティの不備により攻撃者に侵入される可能性 悪意あるクラウド管理者が存在する可能性 クラウド SSHによって保護 SSH クライアント SSH 無防備な状態 管理VM VM 攻撃者 ユーザ 悪意のある 管理者 VM VM 管理VMへの情報漏洩 管理VMの改ざんによる情報の漏洩 SSHクライアントからのコンソール入力 パスワード ユーザVMからのコンソール出力 VMのセキュリティ設定 クラウド 管理VM SSH クライアント セキュリティ 設定 ユーザ SSH サーバ パスワード VM 仮想シリアル コンソール 漏洩 ユーザ 攻撃者 セキュリティ パスワード 設定 提案:SCCrypt 管理VMに対して暗号化された仮想シリアルコン ソールを提供 入力:ユーザが暗号化したコンソール入力 出力:暗号化されたユーザVMのコンソール出力 ls 復号してユーザVMに送る ユーザが復号 暗号化 ** 暗号入力 暗号出力 ユーザ 復号 Document Picture Music … 管理VM ls ユーザ VM *************** Document Picture 暗号化された ******* Music … 仮想シリアルコンソール 安全な暗号化・復号化 信頼できる仮想マシンモニタ(VMM)を用いてコ ンソール入出力を暗号化・復号化 VMMは管理VMの下で動作するソフトウェア 管理VMは復号後の入力および暗号化前の出力を見 ることができない クラウド 管理VM ユーザVM 仮想シリアル コンソール ユーザ VMM 復号/暗号化 クラウド内のVMMの信頼性 復号化・暗号化を行うクラウド内のVMMの正当性 を保証 起動時のリモート・アテステーション 起動時にVMMのハッシュ値を計算し,外部の検証サーバに送信 あらかじめ登録しておいたハッシュ値と照合して確認 ハードウェア(TPM)によりハッシュ値の改ざんを防止 実行時のVMM自身による保護 ユーザ VM 管理VM VMM TPM ハードウェア 検証 検証サーバ コンソール入力の復号 従来は仮想シリアルデバイスが直接コンソール バッファに入力を書き込んでいた ユーザVMはコンソールバッファから入力を取得 SCCryptではVMMに暗号入力を渡す VMMが復号し、コンソールバッファに書き込む ユーザVMへの変更は不要 管理VM クラウド コンソール バッファ 仮想シリアル デバイス 入力 VMM ユーザVM 書き込み 復号 コンソール入力の暗号化と問題点 SSHクライアントでSCCrypt用に入力を暗号化 SSHによる従来の暗号化とは別に行う 問題:仮想シリアルコンソールに接続するまでの 入力も一律に暗号化されてしまう 接続コマンドの入力 アクセス権を取得するためのパスワード入力 クラウド SCCrypt用 暗号化 SSH クライアント 管理VM 入力 xenconsole ????????? Pass:**** ????:**** SSH サーバ 仮想シリアル コンソール 仮想シリアルコンソールへの接続 SSHのリモートコマンド実行機能を利用 通常の入力とは別にコマンドを送信できる コマンドは暗号化せずに管理VMに送信 このコマンドに限り,パスワード入力を省略できる ように設定 ssh –t user@host sudo xenconsole vm クラウド 非暗号化 SSH クライアント xen console 管理VM SSH サーバ 実行 コンソール出力の暗号化 VMの出力情報も同様に暗号化する 従来は仮想シリアルデバイスがユーザVMのコンソー ルバッファから直接読み込んでいた SCCryptではVMMを経由して取得 その際に暗号化を行う SSHクライアントで復号 管理VM 出力 SSH クライアント SCCrypt用 復号 クラウド SSH サーバ VMM ユーザVM コンソール バッファ 暗号化 読み込み コンソールバッファの特定 VMMは管理VMとユーザVM間の通信を監視して コンソールバッファのアドレスを取得 VMMがユーザVM内のコンソールバッファを特定する 必要がある 従来のVMMはコンソールバッファを認識していなかった ユーザVM起動時に管理VMがアドレスを通知 起動 管理VM コンソール バッファの アドレス 通知 ユーザVM コンソール バッファ チェック VMM 仮想シリアルコンソールの鍵管理 VMの所有者のみが仮想シリアルコンソール接続 のセッション鍵をVMMに登録できる必要 クラウド管理者が登録できると暗号化の意味なし 単純な鍵交換では不十分 セッション鍵 クラウド 管理VM ユーザVM 仮想シリアル コンソール ユーザ VMM 復号/暗号化 セッション鍵 ユーザとVMの関連付け VMとその所有者が生成した秘密IDを関連付け ディスク暗号化により所有者のみがVMを起動可に {VMの秘密ID,ディスク暗号鍵}をVMMに送信 鍵サーバから取得したVMMの公開鍵で暗号化 所有者のみが正常起動したVMに秘密IDを関連付け可 SSHクライアント ??? 秘密ID ディスク ??? 暗号鍵 暗号化 鍵サーバ 公開鍵 接続 管理VM 起動 ユーザ VM SSHサーバ ディスク 復号 秘密ID ディスク 暗号鍵 復号 秘密鍵 VMM VMへのセッション鍵の登録 VMの秘密IDを介してセッション鍵をVMに登録 SSHクライアントは接続のたびにセッション鍵を生成 {VMの秘密ID,セッション鍵}をVMMに暗号化して送信 秘密IDからVMを見つけ、セッション鍵を登録 秘密IDを知っている所有者しか登録できない SSHクライアント 秘密ID ??? ??? セッション鍵 暗号化 鍵サーバ 公開鍵 接続 管理VM SSHサーバ 接続 ユーザ VM 秘密ID セッション鍵 復号 秘密鍵 VMM 実験 従来手法との比較 管理VMでの入出力の盗聴 SSHクライアントにおける応答時間 画面表示のスループット 実験環境 クライアントマシン サーバマシン マシン Linux-3.2.0.63 Xen-4.1.3 Linux-3.2.0.63 CPU Intel Xeon E3-1270 3.40GHz Intel Core i7 870 2.93GHz LAN ギガビット イーサネット ギガビット イーサネット SSH OpenSSH 6.0p1 OpenSSH 5.9p1 入出力の盗聴 コンソール入出力の盗聴 管理VMで入出力を取得,ログファイルに書き込ませる デモ 管理VM クラウド 盗聴 仮想シリアル コンソール ユーザ VMM 復号/暗号化 ユーザVM SSHクライアントにおける応答時間 SSHクライアントでのコンソール入力から対応する コンソール出力を受け取るまでの時間 暗号化しない従来の接続方法と比較して0.35msの遅 延が確認された ほとんどは暗号化・復号化のためにVMMを呼び出す オーバヘッドと考えられる abc ??? ユーザ クラウド 管理VM ユーザ VM abc VMM 2.32 応答時間(ms) 入力 表示 2 1.97 0 従来 SCCrypt 画面表示のスループット ファイルの内容を画面に表示するのにかかる時 間を測定 対象とするファイルのサイズ:9.6MB 暗号化しない従来の接続方法と比較してもほとんど差 はない 表示 入力 ??? cat クラウド 実行 管理VM ユーザ VM ユーザ cat ? VMM スループット(万文字/秒) 60 53.09 53.18 従来 SCCrypt 40 20 0 関連研究 FBCrypt [Egawa et al. ‘12] VNCを用いたVM管理において情報漏洩を防止 データ量の多いビデオ出力を暗号化するためオーバ ヘッドが大きい Xoar[Colp 仮想シリアルデバイスを専用のコンソールVMで動作 クラウド管理者による攻撃について考慮されていない VMware et al. ‘11] vSphere Hypervisor[VMware Inc.] VNCサーバをVMM内で動作させてリモート管理 VNCサーバが攻撃されるとVMMに影響する恐れがある まとめ クラウド内の仮想シリアルコンソールからの入出 力情報の漏洩を防ぐSCCryptを提案 暗号化された仮想シリアルコンソールを提供 信頼できるVMMを用いて仮想シリアルコンソールの入 出力を復号化・暗号化 SSHクライアントで暗号化・復号化 管理VM内では暗号化されていることを確認 従来の方法に比べて0.35msの遅延が発生 コンソール出力のスループットはほとんど差がない 今後の課題 強度の高いストリーム暗号への対応 現在は固定鍵を用いた簡易な排他的論理和 RC4による暗号化を実装している途中 SSH以外のリモート管理ソフトウェアに適用 例:Webベース・シリアルコンソール(Ajaxterm) 完全仮想化環境への対応 現在は準仮想化環境にのみ対応 Windowsでも動かせるようにする 鍵管理の実装