Upload
flann
View
92
Download
0
Embed Size (px)
DESCRIPTION
IDS オフロードを考慮した 仮想マシンへの動的メモリ割当. 内田昂志 * 岡崎正剛 * 光来健一 *,** * 九州工業大学 ** CREST. IDS への攻撃. Tripwire. ディスク. 侵入検知システム (IDS) を攻撃してから本来の攻撃を行うことが増えてきた 例: Tripwire プロセスを停止 ポリシーファイル の 書き換え 改ざんしたファイル の チェックを回避 DB への再登録 改ざん後のファイルの内容を正しいと判定 レポートの改ざん 検出結果が管理者に通知されない. IDS オフロード. Tripwire. ディスク. - PowerPoint PPT Presentation
Citation preview
IDSオフロードを考慮した仮想マシンへの動的メモリ割当内田昂志 * 岡崎正剛 * 光来健一 *,**
* 九州工業大学** CREST
IDSへの攻撃侵入検知システム (IDS)を攻撃してから本来の攻撃を行うことが増えてきた例: Tripwire
プロセスを停止ポリシーファイルの書き換え
改ざんしたファイルのチェックを回避DBへの再登録
改ざん後のファイルの内容を正しいと判定レポートの改ざん
検出結果が管理者に通知されない
Tripwire
ディスク
IDSオフロード仮想マシン (VM)を用いて IDSだけを別の VMで動かす手法が提案されているIDSが攻撃を受ける可能性を減らすXenの場合、ドメイン 0で IDSを動かす
プロセス、ポリシーファイル、 DB、レポートドメイン Uのディスクイメージをマウントして監視
ディスク
Tripwire
ドメイン 0 ドメイン U
メモリに関する問題IDSがドメイン 0のメモリを使うことになるVM間の公平性が失われる
IDSをオフロードした VMは割り当てられたサイズ以上のメモリを使えるシステム全体の性能が低下する恐れがある
IDSがドメイン 0のメモリを使いすぎた場合IDS
ドメイン 0 ドメイン U ドメイン U
1GB 1GB
静的なメモリ割り当ての問題VMと IDSのメモリサイズを静的に分割するとメモリの有効活用ができないIDS分として固定メモリ量をドメイン Uから減らす
IDSは増えたドメイン 0のメモリを使うIDSが動いていない間もドメイン Uはそのメモリを使えない
ドメイン 0 ドメイン U ドメイン U
0.3 0.7GB 1GB
IDS
Balloon Performerオフロードした IDSが使用するメモリを考慮して VMのメモリを動的に割り当て直すドメイン 0で実行されている IDSのメモリ使用量を測定その分をドメイン Uのメモリ割り当てから減らす
ドメイン 0のメモリ割り当てを増やす
ドメイン 0 ドメイン U
1GB
IDS
ドメイン 0 ドメイン U
0.3 0.7GB
Balloon Performerの効果IDSのメモリ使用量とドメイン Uのメモリ割り当ての合計を一定に保つVM間のメモリ割り当ての公平性を確保
IDSのオフロードの有無に関わらずドメイン 0のメモリの圧迫を防止
システム全体の性能低下を防ぐメモリを有効活用できる
IDSが動作していない間はドメイン Uが使える
IDSが使用するメモリ大きく分けて 2種類のメモリを使用プロセス自身が使用するメモリ
テキスト領域、ヒープファイルの読み書きによって作られるファイルキャッシュ
OSカーネル内に作られるTripwireの場合
Tripwire
ドメイン 0
メモリの種類 使用量プロセスメモリ 121MBファイルキャッシュ 407MB
OS
(27,752個のファイルをスキャン )
プロセスのメモリ消費量の測定ドメイン 0の Linuxカーネルが記録している/proc/<プロセス ID>/status から情報を取得
pidofコマンドで IDSのプロセス名からプロセス IDを取得VmRSS欄の値がメモリ消費量
プロセスが使っているファイルキャッシュはどれ?ファイルキャッシュをプロセスに対応づける必要がある従来の Linuxでは対応づけられていない
複数のプロセスで共有されることがあるためどのプロセスが使っているか判断できない
プロセスが終了しても残されるため対応づけるべきプロセスがなくなる
ファイルキャッシュ
プロセス
ファイルキャッシュ
プロセス
プロセスとファイルキャッシュの対応づけファイルキャッシュを確保したプロセスが使用しているとみなすIDSだけがドメイン U上のファイルにアクセス
IDSプロセスに一対一に対応づけられるIDS終了時には仮想ディスクをアンマウント
ファイルキャッシュが消去される
ドメイン 0 ドメイン U
IDS マウント
ファイルキャッシュの使用量の測定ドメイン 0の Linuxがページキャッシュを確保する際にプロセス IDを記録ページキャッシュはメモリページ単位で管理
page構造体に pidメンバを追加ページキャッシュを破棄したら 0に初期化
使用量を調べるシステムコールを追加すべての page構造体を調べ、
pidが一致するページ数を返す IDS
ドメイン 0
pidpid
VMへの動的メモリ割り当てXen APIを用いてドメイン Uのメモリサイズを変更するXen APIとは?
Xenの管理をプログラムから行うための APIドメイン Uの元々のメモリサイズから IDSのメモリ使用量を引いたサイズを割り当て直す
しきい値よりサイズが小さくならないようにするドメイン Uの動作に影響する場合があるため現在の実装では元の半分のサイズ
Xen APIの動作xendとの間にセッションを確立して XML-RPCで通信ドメイン名を指定してメモリサイズを設定ゲスト OSに組み込まれたバルーンドライバがメモリサイズを調整
メモリを確保してXenに返却
Xenからメモリを取得して解放
ドメイン 0 ドメイン U
xend
VMM
BalloonPerformer
balloondriver
実験Balloon Performerが VMのメモリ割り当てをうまく調整できているかどうか調べたプロセスのメモリ消費量を変化させた場合Tripwireを動かした場合実験環境
Intel Core 2 Quad 2.83GHz, 4GBメモリXen 3.4.0, Linux 2.6.18ドメイン 0、ドメイン Uに 1.5GBを割り当て
プロセスのメモリ消費量に応じたメモリ割り当て5秒おきにランダムにメモリの確保・解放を行うプログラムをドメイン 0で実行プロセスのメモリ消費量とドメイン Uのメモリサイズの変化を測定実験結果
これらの合計はほぼ 1.5GBになったメモリ量
(MB
)
時刻 (秒 )
合計ドメイン U
プロセス
ファイルキャッシュの使用量に応じたメモリ割り当て27,752個のファイルをスキャンする Tripwireをドメイン 0で実行ファイルキャッシュの使用量とドメイン Uのメモリサイズの変化を測定実験結果
これらの合計はほぼ 1.5GBになったメモ
リ量(M
B)
時刻 (秒 )
合計ドメイン U
ファイルキャッシュ
関連研究OffloadCage [新井ら’ 10]IDSオフロードを考慮した CPUスケジューリング
IDSの CPU使用分を VMの CPU割り当てから減らすSEDF-DC [Gupta et al.’06]Xenのスプリットドライバを考慮した CPUスケジューリング
netbackの CPU使用量をパケット数から推定
まとめBalloon Performerを提案IDSオフロードを考慮して VMへの動的なメモリ割り当てを実現
プロセスのメモリ消費量とファイルキャッシュ使用量を測定メモリ使用量に応じて VMのメモリ割り当てを増減
IDSのメモリ使用量と VMのメモリ割り当ての合計を一定に保てることを確認IDSのメモリ使用量が実行時に変化する場合
今後の課題システム全体を考慮して VMにメモリを動的割り当てできるようにするドメイン Uが正常に動作できるかどうかや性能を測定しながらメモリ割り当てを減らす
オフロードした IDSのメモリ使用を制御できるようにするTripwireの場合、ファイルキャッシュは小さくても性能に影響しない
ほとんどのファイルには1回しかアクセスしない
今後の課題: Cgroupsの利用プロセスグループの単位でページキャッシュも含めたメモリ使用量を取得できるIDSだけが所属するプロセスグループを作るプロセスグループに割り当てるメモリ量の制限もできる
IDSによるメモリの使い過ぎを抑制Xen 4.0以降の Linuxカーネル
(2.6.32)で利用可能実装に用いた 2.6.18では未サポート
IDS
ドメイン 0
メモリ
プロセスグループ