ids オフロードを考慮した 仮想マシンへの動的メモリ割当

21
IDS オオオオオオオオオオ オオオオオオオオオオオオオオ オオオオ * オオオオ * オオオ*,** * オオオオオオ ** CREST

Upload: flann

Post on 23-Feb-2016

92 views

Category:

Documents


0 download

DESCRIPTION

IDS オフロードを考慮した 仮想マシンへの動的メモリ割当. 内田昂志 *  岡崎正剛 * 光来健一 *,** * 九州工業大学 ** CREST. IDS への攻撃. Tripwire. ディスク. 侵入検知システム (IDS) を攻撃してから本来の攻撃を行うことが増えてきた 例: Tripwire プロセスを停止 ポリシーファイル の 書き換え 改ざんしたファイル の チェックを回避 DB への再登録 改ざん後のファイルの内容を正しいと判定 レポートの改ざん 検出結果が管理者に通知されない. IDS オフロード. Tripwire. ディスク. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: IDS オフロードを考慮した 仮想マシンへの動的メモリ割当

IDSオフロードを考慮した仮想マシンへの動的メモリ割当内田昂志 * 岡崎正剛 * 光来健一 *,**

* 九州工業大学** CREST

Page 2: IDS オフロードを考慮した 仮想マシンへの動的メモリ割当

IDSへの攻撃侵入検知システム (IDS)を攻撃してから本来の攻撃を行うことが増えてきた例: Tripwire

プロセスを停止ポリシーファイルの書き換え

改ざんしたファイルのチェックを回避DBへの再登録

改ざん後のファイルの内容を正しいと判定レポートの改ざん

検出結果が管理者に通知されない

Tripwire

ディスク

Page 3: IDS オフロードを考慮した 仮想マシンへの動的メモリ割当

IDSオフロード仮想マシン (VM)を用いて IDSだけを別の VMで動かす手法が提案されているIDSが攻撃を受ける可能性を減らすXenの場合、ドメイン 0で IDSを動かす

プロセス、ポリシーファイル、 DB、レポートドメイン Uのディスクイメージをマウントして監視

ディスク

Tripwire

ドメイン 0 ドメイン U

Page 4: IDS オフロードを考慮した 仮想マシンへの動的メモリ割当

メモリに関する問題IDSがドメイン 0のメモリを使うことになるVM間の公平性が失われる

IDSをオフロードした VMは割り当てられたサイズ以上のメモリを使えるシステム全体の性能が低下する恐れがある

IDSがドメイン 0のメモリを使いすぎた場合IDS

ドメイン 0 ドメイン U ドメイン U

1GB 1GB

Page 5: IDS オフロードを考慮した 仮想マシンへの動的メモリ割当

静的なメモリ割り当ての問題VMと IDSのメモリサイズを静的に分割するとメモリの有効活用ができないIDS分として固定メモリ量をドメイン Uから減らす

IDSは増えたドメイン 0のメモリを使うIDSが動いていない間もドメイン Uはそのメモリを使えない

ドメイン 0 ドメイン U ドメイン U

0.3 0.7GB 1GB

IDS

Page 6: IDS オフロードを考慮した 仮想マシンへの動的メモリ割当

Balloon Performerオフロードした IDSが使用するメモリを考慮して VMのメモリを動的に割り当て直すドメイン 0で実行されている IDSのメモリ使用量を測定その分をドメイン Uのメモリ割り当てから減らす

ドメイン 0のメモリ割り当てを増やす

ドメイン 0 ドメイン U

1GB

IDS

ドメイン 0 ドメイン U

0.3 0.7GB

Page 7: IDS オフロードを考慮した 仮想マシンへの動的メモリ割当

Balloon Performerの効果IDSのメモリ使用量とドメイン Uのメモリ割り当ての合計を一定に保つVM間のメモリ割り当ての公平性を確保

IDSのオフロードの有無に関わらずドメイン 0のメモリの圧迫を防止

システム全体の性能低下を防ぐメモリを有効活用できる

IDSが動作していない間はドメイン Uが使える

Page 8: IDS オフロードを考慮した 仮想マシンへの動的メモリ割当

IDSが使用するメモリ大きく分けて 2種類のメモリを使用プロセス自身が使用するメモリ

テキスト領域、ヒープファイルの読み書きによって作られるファイルキャッシュ

OSカーネル内に作られるTripwireの場合

Tripwire

ドメイン 0

メモリの種類 使用量プロセスメモリ 121MBファイルキャッシュ 407MB

OS

(27,752個のファイルをスキャン )

Page 9: IDS オフロードを考慮した 仮想マシンへの動的メモリ割当

プロセスのメモリ消費量の測定ドメイン 0の Linuxカーネルが記録している/proc/<プロセス ID>/status から情報を取得

pidofコマンドで IDSのプロセス名からプロセス IDを取得VmRSS欄の値がメモリ消費量

Page 10: IDS オフロードを考慮した 仮想マシンへの動的メモリ割当

プロセスが使っているファイルキャッシュはどれ?ファイルキャッシュをプロセスに対応づける必要がある従来の Linuxでは対応づけられていない

複数のプロセスで共有されることがあるためどのプロセスが使っているか判断できない

プロセスが終了しても残されるため対応づけるべきプロセスがなくなる

ファイルキャッシュ

プロセス

ファイルキャッシュ

プロセス

Page 11: IDS オフロードを考慮した 仮想マシンへの動的メモリ割当

プロセスとファイルキャッシュの対応づけファイルキャッシュを確保したプロセスが使用しているとみなすIDSだけがドメイン U上のファイルにアクセス

IDSプロセスに一対一に対応づけられるIDS終了時には仮想ディスクをアンマウント

ファイルキャッシュが消去される

ドメイン 0 ドメイン U

IDS マウント

Page 12: IDS オフロードを考慮した 仮想マシンへの動的メモリ割当

ファイルキャッシュの使用量の測定ドメイン 0の Linuxがページキャッシュを確保する際にプロセス IDを記録ページキャッシュはメモリページ単位で管理

page構造体に pidメンバを追加ページキャッシュを破棄したら 0に初期化

使用量を調べるシステムコールを追加すべての page構造体を調べ、

pidが一致するページ数を返す IDS

ドメイン 0

pidpid

Page 13: IDS オフロードを考慮した 仮想マシンへの動的メモリ割当

VMへの動的メモリ割り当てXen APIを用いてドメイン Uのメモリサイズを変更するXen APIとは?

Xenの管理をプログラムから行うための APIドメイン Uの元々のメモリサイズから IDSのメモリ使用量を引いたサイズを割り当て直す

しきい値よりサイズが小さくならないようにするドメイン Uの動作に影響する場合があるため現在の実装では元の半分のサイズ

Page 14: IDS オフロードを考慮した 仮想マシンへの動的メモリ割当

Xen APIの動作xendとの間にセッションを確立して XML-RPCで通信ドメイン名を指定してメモリサイズを設定ゲスト OSに組み込まれたバルーンドライバがメモリサイズを調整

メモリを確保してXenに返却

Xenからメモリを取得して解放

ドメイン 0 ドメイン U

xend

VMM

BalloonPerformer

balloondriver

Page 15: IDS オフロードを考慮した 仮想マシンへの動的メモリ割当

実験Balloon Performerが VMのメモリ割り当てをうまく調整できているかどうか調べたプロセスのメモリ消費量を変化させた場合Tripwireを動かした場合実験環境

Intel Core 2 Quad 2.83GHz, 4GBメモリXen 3.4.0, Linux 2.6.18ドメイン 0、ドメイン Uに 1.5GBを割り当て

Page 16: IDS オフロードを考慮した 仮想マシンへの動的メモリ割当

プロセスのメモリ消費量に応じたメモリ割り当て5秒おきにランダムにメモリの確保・解放を行うプログラムをドメイン 0で実行プロセスのメモリ消費量とドメイン Uのメモリサイズの変化を測定実験結果

これらの合計はほぼ 1.5GBになったメモリ量

(MB

)

時刻 (秒 )

合計ドメイン U

プロセス

Page 17: IDS オフロードを考慮した 仮想マシンへの動的メモリ割当

ファイルキャッシュの使用量に応じたメモリ割り当て27,752個のファイルをスキャンする Tripwireをドメイン 0で実行ファイルキャッシュの使用量とドメイン Uのメモリサイズの変化を測定実験結果

これらの合計はほぼ 1.5GBになったメモ

リ量(M

B)

時刻 (秒 )

合計ドメイン U

ファイルキャッシュ

Page 18: IDS オフロードを考慮した 仮想マシンへの動的メモリ割当

関連研究OffloadCage [新井ら’ 10]IDSオフロードを考慮した CPUスケジューリング

IDSの CPU使用分を VMの CPU割り当てから減らすSEDF-DC [Gupta et al.’06]Xenのスプリットドライバを考慮した CPUスケジューリング

netbackの CPU使用量をパケット数から推定

Page 19: IDS オフロードを考慮した 仮想マシンへの動的メモリ割当

まとめBalloon Performerを提案IDSオフロードを考慮して VMへの動的なメモリ割り当てを実現

プロセスのメモリ消費量とファイルキャッシュ使用量を測定メモリ使用量に応じて VMのメモリ割り当てを増減

IDSのメモリ使用量と VMのメモリ割り当ての合計を一定に保てることを確認IDSのメモリ使用量が実行時に変化する場合

Page 20: IDS オフロードを考慮した 仮想マシンへの動的メモリ割当

今後の課題システム全体を考慮して VMにメモリを動的割り当てできるようにするドメイン Uが正常に動作できるかどうかや性能を測定しながらメモリ割り当てを減らす

オフロードした IDSのメモリ使用を制御できるようにするTripwireの場合、ファイルキャッシュは小さくても性能に影響しない

ほとんどのファイルには1回しかアクセスしない

Page 21: IDS オフロードを考慮した 仮想マシンへの動的メモリ割当

今後の課題: Cgroupsの利用プロセスグループの単位でページキャッシュも含めたメモリ使用量を取得できるIDSだけが所属するプロセスグループを作るプロセスグループに割り当てるメモリ量の制限もできる

IDSによるメモリの使い過ぎを抑制Xen 4.0以降の Linuxカーネル

(2.6.32)で利用可能実装に用いた 2.6.18では未サポート

IDS

ドメイン 0

メモリ

プロセスグループ