仮想マシンの監視を継続可能なマイグレーション機構 九州工業大学大学院 情報工学府情報創成工学専攻 11675002 宇都宮 寿仁
侵入検知システムへの攻撃 侵入検知システム(IDS)が攻撃者の侵入を検知 するために用いられている IDSが攻撃の最初の ストレージ、ネットワーク、メモリ上のデータなどを 監視 例:Tripwire 攻撃者によるファイルの改ざんを検出、通知 IDSが攻撃の最初の ターゲットとなってきた IDSを無効化 その後で目的の攻撃を行う ホスト 停止 ・不正アクセスなどのサーバへの攻撃増加 ・IDSは攻撃者の侵入を検知、管理者へ通知 ・攻撃方法が変化 そういう手口も増えてきた ・IDSを停止後本当の攻撃 被害をおよぼす 図:IDSの見る先を変える IDS 攻撃 被害
VMを用いたIDSのオフロード IDSだけを別の仮想マシン(VM)で動かす手法 IDSを攻撃から守ることができる 管理VMでIDS、監視対象VMでサービスを動かす IDSは監視対象VMの内部を監視 IDSを攻撃から守ることができる 監視対象VMに侵入されても IDSに干渉できない VM間は隔離されているため 管理VMへの侵入は困難 外部との通信を制限 攻撃 ホスト ・IDSへの攻撃被害を緩和するため 図:IDSの見る先を変える ディスクを見たり サービス IDS 監視対象VM 管理VM
オフロード時のマイグレーション 監視対象VMをマイグレーションすると監視でき なくなる マイグレーションとは別のホストにVMを移動すること 電力削減、負荷分散が行える マイグレーション後もサービスが継続できる 管理VMはマイグレーションできない 管理VMはホストのハードウェアに強く依存しているた め マイグレーション->上->説明 ホスト1 ホスト2 IDS 監視対象VM 管理VM 管理VM
提案:ドメインM マイグレーション可能なIDSオフロード専用VM 指定した監視対象VMを監視できる ストレージ、ネットワーク、メモリを監視可能 監視したまま監視対象VMと同時にマイグレーションで きる マイグレーション後も監視を継続 ・ドメインMはIDSをオフロードできる ドメインMはアニメーションを使って出す 管理VMの色を変える ホスト1 ホスト2 IDS 監視対象VM ドメインM 管理VM
メモリ監視 ドメインMに監視対象VMのメモリをマップして 監視 VMM メモリマップはVM間でメモリを共有するための操作 許可を与える VMMのアクセス制限を変更 ドメインMのOSにメモリマップ用 のインターフェースを追加 IDS ・マップとはメモリの一部を共有すること ・従来は管理VMしかマップできなかった ・監視許可を与えるために OSの修正->マップするインターフェースを作成 VMMの修正->ドメインMにもマップを許可 ・こうすることでメモリマップを可能にし IDSによる監視を行える マップの簡易的な図? メモリを共有している感じ OS消してIDSがメモリを見ている 頭:ドメインMに監視対象VMのメモリをマップして監視をする 管理VMにしかマップできなかった ドメインMにもできるように監視許可を与える ドメインMのOSの修正ー>メモリをマップするインターフェースを追加 VMMの修正ー>ドメインMにも許可 監視対象VM ドメインM VMM
メモリ監視中のマイグレーション ドメインMのメモリマップ状態を保持したまま マイグレーション 従来は他のVMのメモリをマップしていることはなかっ た 送信側:ページテーブルにメモリマップ状態を保存 受信側:ページテーブルの情報を基に再度メモリマッ プ ホスト1 ホスト2 ・メモリマップしていたならばページテーブルにマップしていた情報を保存する ・保存された情報を基にVMを復元マップ情報があれば再マップが行われる 図をメモリを共有しているような図 VM単位でのマイグレーションしか考えられてなかった 監視対象VM ドメインM
ネットワーク監視 監視対象VMのパケットを複製して監視 各VMのパケットは管理VMを経由して送られる 管理VMでポートミラーリングを行う マイグレーション先で再度ポートミラーリングの設定 をすることで監視を継続 ドメインMではなぜ簡単にできないのか? ドメインMには監視対象VMのパケットが経由しないため ・ポートミラーリング:監視対象VMに出入りするパケットを ドメインMにも送る 従来の話をする 文章中に従来の話 言う:監視用インターフェースを見れば監視対象VMのパケットを見ることができる 図:監視用インターフェースと書く 管理VM ドメインM 監視対象 VM 監視用 インターフェース
ストレージ監視 ファイルサーバに置かれた監視対象VMのスト レージを監視 マイグレーション後もアクセスを継続できる ファイルサーバへの接続が自動的に保たれる ・ファイルサーバ上の監視対象VMのストレージに アクセスすることで監視を可能にする ・マイグレーション後もファイルサーバへの接続が 保たれるのでアクセスを継続 ファイルサーバ 使用 監視 監視対象VM ドメインM
同時マイグレーション 同期をとりながらドメインMと監視対象VMをマ イグレーション マイグレーション中に監視が途切れる可能性 監視対象VMが停止するまでドメインMは待つ ドメインMが再開されるまで監視対象VMは待つ マイグレーション中に監視が途切れる可能性があるので なぜ停止するのかの説明 メモリを送信して停止しないと送れないCPUの状態を送る ・稼働中にマイグレーション先にメモリイメージを送信 その後停止して稼働中に遅れないCPUの状態を送信し マイグレーション先で再開する 時間軸で図を描く 時間軸1本 ドメインM 監視対象VM メモリ イメージ 送信 停止 CPU状態 送信 再開
実験 ドメインMの監視性能およびマイグレーション 性能を調べた ドメインMにオフロードしたIDSの監視性能 実験機器の詳細 Xen4.0.1 CPU Intel Core 2 Quad 2.83GHz メモリ 4GB ネットワーク ギガビットイーサネット 管理VM、サーバVM、ドメインMについて Linuxカーネル 2.6.32.38 NFSサーバ CPU Intel Xeon X5640 3.16GHz メモリ 32GB SATA16TB RAID5 ネットワーク ギガビットイーサネット Open-E OS
実験1:監視性能 (1/2) ドメインMからの監視性能を調べた メモリ監視性能 従来の管理VMからの監視性能と比較 実験1:監視性能 (1/2) ドメインMからの監視性能を調べた 従来の管理VMからの監視性能と比較 メモリ監視性能 監視対象VMのOSカーネルのハッシュ値を計算 ドメインMから実行したほうが 高速 仮想CPU数が多いと同期の オーバヘッドが大きい 管理VMは多くの仮想CPUを 必要とする ・従来の監視手法である管理VMからとドメインMからでの監視性能を比較 ・監視対象VMのメモリをマップし、ハッシュ値の計算を行った ハッシュ値:データの改ざんが行われていないかを確認するために用いる 管理VM:203ミリ秒 ドメインM:135ミリ秒 ・vcpu数が多いとvcpuどうしの同期が必要->遅くなる ・管理VMは多くのVMからの要求を処理するため容易に vcpu数を削れない どういう監視を行ったか 2枚に分ける メモリ監視 domM:1dom0:4のグラフ 実験の図 ーーーーーーーーーー ネットワーク監視 パケットをたくさん送ってSnortのCPU使用率をみる Xm topとかで見るといい ストレージ監視
実験1:監視性能 (2/2) ストレージ監視性能 ネットワーク監視性能 Tripwireを用いてストレージ全体のファイルをチェック 実験1:監視性能 (2/2) ストレージ監視性能 Tripwireを用いてストレージ全体のファイルをチェック ドメインMでの実行は遅い ネットワークの仮想化 ネットワーク監視性能 Snortを用いて監視 CPU使用率に影響は無し 管理VM:4.5秒 ドメインM:18.9秒 ・ドメインMはネットワークが仮想化されている ・ストレージへのアクセスの際に管理VMを経由 ・短い時間で終わっている理由 ・ネットワークは・・・
実験2:マイグレーション時間 IDSオフロード時のマイグレーション時間を測定 実験結果 監視対象VMのメモリサイズは1024MBに固定 オフロード時には わずかに長くなる メモリサイズ差が大きい ほうが差が開く オフロードせずに独立した~~ ・監視有りのほうが低速化している ・監視をするとマイグレーションの際に同期をとるため低速化 ・ドメインMのメモリサイズが小さいほうが 同期の待ち時間が長くなるためより遅くなる 同期するから低速化している メモリサイズ差が大きくなると同期の待ち時間が長くなるから低速化 ドメインMのメモリサイズが小さいほうが差が開く
実験3:ダウンタイム IDSオフロード時のマイグレーションにおける監 視対象VMのダウンタイムを測定 実験結果 監視対象VMのメモリサイズを1024MBに固定 実験結果 同期のために39ms~ 162ms増加 メモリサイズ差が 小さいほど増加 同期待ち時間 256:39ミリ秒 512:69ミリ秒 768:81ミリ秒 1024:162ミリ秒 マイグレーション 無 747 801 900 893 有 786 870 981 1055 ・ドメインMのメモリサイズが小さいと 同期によるダウンタイムも小さくなる 実験2と実験3は似たようなグラフで 監視有り無しで表現する?
関連研究 プロセスマイグレーション vShield Endpoint[VMware] 管理VMにオフロードしたIDSのみをマイグレーション 可能 メモリ監視は継続できない vShield Endpoint[VMware] IDSの状態だけをマイグレーション先に送る IDSごとに対応する必要がある ギャング・ライブマイグレーション[Wang et al.’11] 複数のVMのマイグレーションを高速化 同じメモリ内容は一回の送信で済ませる VM間の同期はしない プロセスマイグレーション 管理VMにオフロードされたIDSのみマイグレーションを可能とする ストレージやネットワークは監視継続できるがメモリの監視継続を行うことができない Vmware vShield Endpoint vShieldでは仮想アプライアンス(VM)にIDSをオフロードできる VMやIDSプロセスをマイグレーションするのではなく、IDSの状態だけマイグレーション ギャング・ライブマイグレーション 同じメモリ内容を一回の送信で済ませることで複数のVMのマイグレーションを高速化する VM間の同期はしない
まとめ マイグレーション可能なIDSオフロード専用VM であるドメインMを提案 今後の課題 ストレージ、ネットワーク、メモリの監視を実現 監視を継続したままマイグレーションできる 同時マイグレーションにより監視の空白期間が生じる のを防ぐ 今後の課題 ドメインMを用いて管理VMの機能をマイグレーション 可能にする 例:VNCサーバ