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