セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当 所属:機械情報工学科光来研究室 指導教員:光来健一 准教授 学籍番号:06237018 名前:岡﨑 正剛
侵入検知システム(IDS) IDSは攻撃者の侵入を検知するために用いられ ている IDS自身が攻撃を受ける ネットワークパケットの解析 ファイルの監視 例:Tripwire ・定期的にディスクをチェック ・勝手に変更・追加されたファイルを 発見すると警告 IDS自身が攻撃を受ける 機能の停止・改ざん 侵入の検知ができなくなる ウィルス 不正アクセス ディスク tripwire 監視 侵入 Tripwire Tripwireに対する攻撃
仮想マシンを用いたオフロード サーバーを仮想マシンで動かし、IDSだけ別の仮 想マシンで動かす手法 IDSが攻撃を受けにくくなる 仮想マシンとは ハードウェアをエミュレートする事で 仮想的に作成されたマシン 仮想マシン同士は分離 Xenにおける構成 ドメイン0でIDSを動かす 特権をもった仮想マシン ドメインUでサーバーを動かす (特権ドメイン) ドメイン0 (一般ドメイン) ドメインU ウィルス 不正アクセス 仮想マシン 仮想マシン IDS 監視 IDSのオフロード
IDSによるメモリ消費の問題 オフロードされたIDSがドメイン0のメモリを使用 ドメイン0にあらかじめ割り 当てるのは無駄が大きい ドメイン0のメモリが不足する可能性 仮想マシン全体の性能低下につながる ドメイン0が全ての仮想マシンを管理するため ドメイン0にあらかじめ割り 当てるのは無駄が大きい IDSが動作していない時は 不要 ドメイン0 ドメインU IDS 監視 メモリ メモリ Xen オフロード時のメモリ使用状況
提案:Balloon Performer IDSが使用するメモリを考慮して、仮想マシンに メモリを動的に割り当てる IDSが使うメモリをドメインUから ドメイン0に移動 IDSが終了したらドメインUに メモリを返す IDSのオフロードによってドメイン0の メモリが圧迫されない ドメイン0 ドメインU IDS 監視 Balloon Performer メモリ メモリ Xen IDSが使用するメモリの移動
IDSが使用するメモリ IDSのメモリ消費には2種類ある Tripwireのメモリ消費量 IDSプロセス自身が使用するメモリ プログラム本体、データ領域 OS内に作られるファイルキャッシュ IDSがファイルを読み込んだ時にキャッシュとして保持 Tripwireのメモリ消費量 プロセス:121MB ファイルキャッシュ:407MB IDS OS HDD
IDSプロセスの消費メモリ量の測定 ドメイン0のprocファイルシステムから取得 /proc/プロセスID/statusから消費メモリ量が取得できる pidofコマンドを使ってIDS名からプロセスIDを取得 IDS OS HDD statusファイル
使用ファイルキャッシュ量の測定 ファイルキャッシュ割当時にプロセスIDを記録 するようにOSを改造 従来はどのプロセスが割り当てたかわからなかった 特定のプロセスが使用したファイルキャッシュ量を取得するシステムコールを追加 pid = 50 IDS その他のプロセス 12kB pid = 50 pid =100 システムコール 50 50 50 100 100 HDD 4kB OS
仮想マシンへの動的メモリ割当 XenAPIを利用して仮想マシンのメモリ割り当て を増減する XenAPIとは 割り当てるメモリ量をバイト単位で設定できる balloon driverが仮想マシン内 のメモリを確保・解放 Xen balloon driver XenAPI hypercall ドメイン0 ドメインU Balloon Performer
実験1 プロセスの消費メモリを考慮したメモリ割当の確認 実験用に作成したプログラムをドメイン0で実行 15秒ごとにランダムにメモリ領域の確保・解放 プロセスの消費メモリとドメイン0に追加されたメモリ量を比較 メモリ(MB) メモリ(MB) メモリ(MB) 実験環境 CPU:Intel Core 2 Quad 2.83GHz メモリ:4GB 仮想化ソフトウェア:Xen ドメイン0 割当メモリ:1.5GB カーネル:Linux 2.6.18.8 ドメインU カーネル:Linux 2.6.27.5 ほぼ完全に一致 時間(s) 時間(s) 時間(s)
実験2 ファイルキャッシュを考慮したメモリ割当の確認 Tripwireの実行中にOS内に確保されたファイルキャッシュの量とドメイン0に追加されたメモリ量を比較 メモリ(MB) メモリ(MB) メモリ(MB) ほぼ完全に一致 時間(s) 時間(s) 時間(s)
関連研究 OffloadCage [新井ら‘09] SEDF-DC [Gupta et al. ‘06] ドメイン0にオフロードしたIDSのCPU消費量を考慮したスケジューリング Balloon PerformerはIDSの使用メモリ量を考慮して動的メモリ割当を行う SEDF-DC [Gupta et al. ‘06] ドメイン0側で動くデバイスドライバのCPU消費を考慮したスケジューリング ドメイン0がドメインUのために行う入出力処理への対応
まとめ IDSの使用メモリを考慮した仮想マシンへの動的メ モリ割当を提案 今後の課題 実験により、正確に動的メモリ割当ができることを確認 今後の課題 より柔軟な動的メモリ割り当て手法の開発