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

Slides:



Advertisements
Similar presentations
九州工業大学 塩田裕司 光来健一.  仮想マシンは必要なときだけ動かす使い方が一般 的 ◦ 一台の計算機上に複数の計算機を仮想的に作成できる ◦ デスクトップ  異なる OS を使用するため作成 ◦ サーバ  最大負荷に合わせた数の仮想マシンを作成  長期間使わない仮想マシンも存在する VM.
Advertisements

九州工業大学大学院 情報工学府 情報創成工学専攻 塩田裕司.  仮想マシン( VM )は必要なときだけ動かすこと が多い ◦ クラウドでもデスクトップでも ◦ 長期間使わない VM が存在する  VM の再開時に攻撃を受ける可能性が高くなる ◦ 停止中に OS やアプリケーションの脆弱性が発見されるこ.
安全なログオン手順 2004/08/26 Port139 伊原 秀明.
ファイルキャッシュを考慮したディスク監視のオフロード
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
クラウド上の仮想マシンの安全なリモート監視機構
クラウドにおける ネストした仮想化を用いた 安全な帯域外リモート管理
受動的攻撃について Eiji James Yoshida penetration technique research site
Xenを用いたクラウドコンピュー ティングにおける情報漏洩の防止
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
中村孝介(九州工業大学) 光来健一(九州工業大学/JST CREST)
KVMにおけるIDSオフロードのための仮想マシン監視機構
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
メモリ暗号化による Android端末の盗難対策
仮想計算機を用いたファイルアクセス制御の二重化
OSが乗っ取られた場合にも機能するファイルアクセス制御システム
侵入検知システム(IDS) 停止 IDS サーバへの不正アクセスが増加している
第13回 今日の目標 §4.3 情報セキュリティー 情報化社会の特徴を社会的な面から概観する 情報に関わる危険の要因を示す
帯域外リモート管理を継続可能な マイグレーション手法
ネストした仮想化を用いた VMの安全な帯域外リモート管理
帯域外リモート管理の継続を 実現可能なVMマイグレーション手法
VMマイグレーションを可能にするIDSオフロード機構
IaaS型クラウドにおける キーボード入力情報漏洩の防止
クラウドの内部攻撃者に対する安全なリモートVM監視機構
アスペクト指向プログラミングを用いたIDSオフロード
サスペンドした仮想マシンの オフラインアップデート
型付きアセンブリ言語を用いた安全なカーネル拡張
SAccessor : デスクトップPCのための安全なファイルアクセス制御システム
九州大学キャンパスクラウド 利用法 情報ネットワーク特論 講義資料.
Xenによる ゲストOSの監視に基づく パケットフィルタリング
仮想計算機を用いて OSを介さずに行う安全な ファイルアクセス制御
分散IDSの実行環境の分離 による安全性の向上
共通暗号方式 共通のキーで暗号化/復号化する方法 例) パスワードつきのZIPを送信して、後からパスワードを送る方法 A さん B さん
VMのメモリ暗号化によるクラウド管理者への情報漏洩の防止
VMのメモリ暗号化による クラウド管理者への情報漏洩の防止
IaaS型クラウドにおける インスタンス構成の動的最適化手法
リモートホストの異常を検知するための GPUとの直接通信機構
シャドウデバイスを用いた 帯域外リモート管理を継続可能なVMマイグレーション
実行時情報に基づく OSカーネルのコンフィグ最小化
仮想メモリを用いた 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の安全な帯域外リモート管理
ネット時代のセキュリティ3(暗号化) 2SK 情報機器工学.
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
複数ホストにまたがるVMの 高速かつ柔軟な 部分マイグレーション
Virtual Machine Introspectionを可能にするVMCryptの拡張 田所秀和 光来健一 (九州工業大学)
強制パススルー機構を用いた VMの安全な帯域外リモート管理
管理VMへの キーボード入力情報漏洩の防止
Presentation transcript:

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

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

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

セキュリティの不安 クラウド内の管理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 攻撃者 悪意のある 管理者 ユーザ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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