Download presentation
Presentation is loading. Please wait.
Published byこごろう こうじょう Modified 約 8 年前
1
九州工業大学大学院 情報工学府 情報創成工学専攻 11675501 塩田裕司
2
仮想マシン( VM )は必要なときだけ動かすこと が多い ◦ クラウドでもデスクトップでも ◦ 長期間使わない VM が存在する VM の再開時に攻撃を受ける可能性が高くなる ◦ 停止中に OS やアプリケーションの脆弱性が発見されるこ とが多い ◦ 長期間停止している VM ではセキュリティアップデート が適用されない VM アップデート A アップデート B アップデート C VM 停止 再開 危険
3
VM の再開後にアップデートを行うのが一般的だ が、危険性が高い ◦ ネットワーク経由の攻撃を受ける アップデータをダウンロードするためにネットワークに接 続 接続後、即座に攻撃を受ける可能性がある ◦ 無防備な時間が長い アップデートの処理に時間がかかる 完了するまでは攻撃にさらされる サーバ 仮想マシン アップデー タ 仮想 ディスク 仮想 ディスク 攻撃者
4
VM を再開する前にアップデートする手法も提案 されている ◦ 例: VM の仮想ディスクを直接更新 ◦ 完全に停止した VM が対象 サスペンド状態の VM には適用できない ◦ VM をサスペンドするとある瞬間の状態が保存される ◦ サスペンド状態で更新すると仮想ディスクが壊れる オンラインオフラインオンライン アップデート シャットダ ウン ブート 停止状態 サスペンドレジューム サスペンド状態
5
サスペンド状態の VM のオフラインアップデート ◦ オフラインでアップデートをエミュレーション 仮想ディスクが壊れるのを防ぐ 前処理・後処理のスクリプト実行を遅らせる ◦ VM のレジューム後にエミュレーション結果を反映 VM をネットワークに接続せずに安全に実行可能 オンライン時には短時間でアップデートを完了 更新ファイル の保存 更新ファイル の保存 スクリプト の保存 スクリプト の保存 更新ファイル の反映 スクリプト の実行 スクリプト の実行 サスペン ド レジュー ム アップデートのエミュレー ト エミュレーション結果の反 映 オフライン オンライン
6
VM Shadow [ 飯田ら ’11] を用いてアップデータ実 行のエミュレーション環境を構築 ◦ 既存のアップデータを実行できる VM 内のデータベースを参照 ◦ システムコールと proc ファイルシステムをエミュレート VM のメモリを解析 ◦ VM の仮想ディスクへのアクセスを提供 アップデー タ VM Shadow ホスト OS 仮想 ディスク 仮想 ディスク 仮想マシン
7
Aufs を用いて仮想ディスクの更新をエミュレー ション ◦ 保存用ディレクトリを仮想ディスクの上に重ねる 仮想ディスクを書き換えから守る ◦ 保存用ディレクトリには以下が書き込まれる 追加されたファイル( A ) 変更されたファイル( B’ ) 削除されたことを表す whiteout ファイル(.wh. ファイル C ) 仮想ディス ク ファイル A ファイル B’ ファイル B ファイル C.wh. ファイル C 保存用ディレク トリ アップデー タ
8
保存用ディレクトリを仮想ディスクへの更新情報 として抽出 ◦ すべての更新ファイルは保存用ディレクトリに作成され る whiteout ファイルから削除リストを作成 ◦ 保存用ディレクトリを検索して、 whiteout ファイルのパ ス名を取得 仮想ディス ク ファイル A ファイル B’ ファイル B 保存用ディレク トリ ファイル C.wh. ファイル C 削除リス ト 抽出
9
アップデータに含まれるスクリプトは実行せず に保存 ◦ アップデータによっては前処理や後処理を行うスクリ プトを含んでいる ◦ プログラムを実行する execve システムコールをエミュ レーション スクリプトを実行する代わりに保存 execve スクリプ ト アップデー タ VM Shadow 保存用ディレク トリ 保存
10
VM のレジューム直後に VM 自身に仮想ディスクへ の更新を行わせる ◦ 保存用ディレクトリのアーカイブを VM に送る 仮想ネットワーク経由 ◦ VM 上でアーカイブを展開し、ファイルの追加・変更を 行う ◦ 削除リストに基づいてファイルを消去 ホスト OS 仮想マシ ン ファイル A ファイル B ファイル B’.wh. ファイル C 削除リス ト ファイル C Tar ファイ ル Tar ファイ ル ファイル A ファイル B’.wh. ファイル C 削除リス ト
11
エミュレーション時に保存しておいたスクリプト を実行 ◦ スクリプトは更新ファイルと一緒に VM に送られる ◦ 前処理スクリプト 設定ファイルの保存やサーバの停止など 仮想ディスクの更新の前に行う ◦ 後処理スクリプト 新しい設定ファイルの作成やサーバの再起動など 仮想ディスクの更新の後で行う 前処理 仮想ディスク の 更新 仮想ディスク の 更新 後処理
12
OUassister と従来手法でパッケージのアップデー ト時間を比較 ◦ nginx ウェブサーバのインストール・アンインストール ◦ OpenSSL のバージョンアップ ◦ Ubuntu のパッケージリストの更新 アップデート処理の内訳とアップデート時間の関 係を調査 CPU: Intel Xeon E5630 2.53GHz メモリ : 6GB NIC: ギガビットイーサネット Xen 4.1.3 ドメイン 0: 4 CPU 、メモリ 5.3GB 、 Ubuntu 12.04 ドメイン U: 1 CPU 、メモリ 512MB 、 Ubuntu 12.04
13
オンラインでのアップデート時間を 11 〜 57% に短 縮 ◦ nginx ウェブサーバのアップデート: 21 秒前後 →2.5 秒 ◦ OpenSSL のバージョンアップ: 10.4 秒 →5.9 秒 ◦ パッケージリストの更新: 12.5 秒 →2.6 秒 アップデート時間の合計は長くなる場合もあった ◦ OpenSSL のバージョンアップ、パッケージリストの更新
14
OpenSSL のバージョンアップとパッケージリスト の更新では更新ファイルの合計サイズが大きい ◦ オンラインになってからの VM への転送に時間がかかる ◦ オフラインでの更新ファイルの抽出にも時間がかかる アップデートの 内容 更新ファ イル数 削除ファ イル数 更新ファイ ルサイズ (MB) スクリプト 数 インストール 1490449 アンインストー ル 4168409 バージョンアッ プ 20311102 パッケージリス ト 811108-
15
停止状態の VM のオフラインアップデート ◦ NetChk Protect [VMware, Inc.] オフラインでダウンロードしたアップデータを仮想ディス クに保存 VM の起動時にアップデータを実行 ◦ Nuwa [Zhou et al.’10] オフラインでアップデータを実行して仮想ディスクを更新 アップデータのスクリプトを書き換えてできるだけ実行 サスペンド状態の VM のオフラインアップデート ◦ Offline Virtual Machine Servicing Tool [Microsoft] アップデート専用環境で VM をレジュームしてアップデート 専用環境を構築してメンテナンスする必要がある
16
サスペンド状態の VM のオフラインアップデート を可能にする OUassister を提案 ◦ オフライン時にアップデータ実行をエミュレーション VM Shadow と Aufs を用いて更新されたファイルを抽出 前処理・後処理スクリプトを保存 ◦ レジューム後にエミュレーション結果を反映 スクリプトを実行 オンライン時のアップデート時間を削減 今後の課題 ◦ 可能な範囲でのスクリプトのオフライン実行 ◦ Windows アップデートへの対応
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.