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