1 - KSL - 九州工業大学
Download
Report
Transcript 1 - KSL - 九州工業大学
九州工業大学大学院情報工学府情報創成工学専攻
光来研究室修士2年
内田昂志
攻撃者の侵入を検知するために用いられる
ファイルの監視
例:Tripwire
定期的にディスクをチェック
許可無く変更・追加された
ファイルを検出する
外部からの攻撃
ネットワークの解析
例:Snort
ネットワークに入ってくる
データを監視
シグネチャに合致するもの
を検出
Tripwire
検知
Disk
監視
侵入検知システム(IDS)を攻撃してから本来の
攻撃を行うことが増えてきた
例:Tripwireへの攻撃
プロセスを停止
ファイルの整合性チェックが行われなくなる
ポリシーファイルの書き換え
改ざんしたファイルのチェックを回避できる
データベースへの再登録
改ざん後のファイルの内容が正しいと判定される
レポートの改ざん
検出結果が管理者に通知されないようにできる
仮想マシン(VM)を用いてIDSだけを別のVMで
動かす手法が提案されている
IDSが攻撃を受ける可能性を減らす
Xenの場合、ドメイン0でIDSを動かす
Tripwireプロセス、ポリシーファイル、データベース、
レポートをドメイン0に移動
ドメインUのディスクイメージをマウントして監視
IDS
監視
ドメイン0
Disc
ドメインU
IDSがドメイン0のメモリを使うことになる
VM間の公平性が失われる
IDSをオフロードしたVMは割り当てられたサイズ以上の
メモリを使える
システム全体の性能が低下する恐れがある
IDSがドメイン0のメモリを使いすぎた場合
ドメイン0
IDS
ドメイン0メモリ
IDSの使用するメモリ
ドメインU
サーバ
ドメインUメモリ
5000
サイズ(MB)
VM+Tripwireの
メモリサイズ
4000
3000
2000
1000
VMは512MB固定
0
0
50
100
150
オフロードしたIDSが使用するメモリを考慮し
てVMのメモリを動的に割り当て直す
IDSのメモリ使用量とドメインUのメモリ割り当て
の合計を一定に保つ
ドメイン0で動くIDSのメモリ使用量を測定
その分をドメインUのメモリ割り当てから減らす
減らした分をドメイン0のメモリ割り当てに加える
ドメイン0
ドメインU
監視
IDS
Balloon
Balloon
Performe
Performer
r
メモリ
Disc
メモリ
Xen ver.3と
Xen ver.4で実装
大きく分けて2種類のメモリを使用
プロセス自身が使用するメモリ
malloc関数などでプロセス内に確保されたメモリ
ファイルの読み書きによってOS内に確保された
ファイルキャッシュ
次のアクセスを高速化するために保持され続ける
これもIDSが使っているメモリと考えるべき
IDSプロセス
ファイルキャッシュ
OS
プロセスのメモリ使用量
procファイルシステムから取得
ファイルキャッシュ使用量
OS内でキャッシュを確保する際にプロセスIDを記
録するようにした
キャッシュを破棄したら初期化
使用量を調べるシステムコールを追加
pid = 50
Disc
50 50
50
50
4kB
pid =100
50 100
50
100
pid = 50 12kB
システムコール
OS
Linuxのcgroupの機能を用いて測定
Linux 2.6.25以降で利用可能
Xen 4でドメイン0のOSとして使えるようになった
IDSの所属するグループを作成する
グループ内のプロセスの使用している
メモリ使用量、ファイルキャッシュ使用量を取得
cgroup
IDSプロセス
他のプロセス
ファイルキャッシュ
OS
Xen
APIやLibvirtを用いてVMへのメモリ割り当
てを変更
xendとの間にセッションを確立
ドメインUを指定してメモリサイズを設定
ゲストOSに組み込まれたバルーンドライバがメモ
リサイズを調整
メモリを確保してXenに返却
ドメイン0
Xenからメモリを受け取る
ドメインU
Balloon
Balloon
Performer
Performe
r
XenAPI
Balloon
driver
xend
Xen VMM
Cgroupの機能を用いてIDSのグループが使える
メモリの最大量を制限
IDSが過度にメモリを使用することを抑制する
メモリ不足によるドメインUの性能低下を防ぐ
IDSのメモリが足りなくなったらグループ内の
ファイルキャッシュを自動で解放
Xen 4用のBalloon Performerでのみ対応
Balloon
PerformerがVMのメモリ割り当てをう
まく調整できているかどうか調べた
IDSがメモリの確保・解放を繰り返した場合
Tripwireを動かした場合
実験環境
Xen 3 (3.4.0)
Intel Core 2 Quad 2.83GHz, 6GBメモリ
ドメインUに1.5GBを割り当て
Xen 4 (4.1.3)
Intel Xeon X5675 2基, 16GBメモリ
ドメインUに512MBを割り当て
考察
VMとIDSのメモリ使用量の合計を1.5GBに保てた
Tripwireがメモリを使いすぎるとVMのメモリが足
りなくなった
Tripwire
malloc
ドメインUのメモリ
ドメイン0に追加されたメモリ(MB)
プロセスの消費メモリ+ファイルキャッシュ
140
ドメインU+プロセスの消費メモリ+ファイルキャッシュ
120
1600
100
1400
80
1200
1000
60
800
40
600
20
400
200
0
0
15
30
45
60
75
90
105
120
135
150
0
0
50
100
150
200
250
考察
VMとIDSのメモリ使用量の合計を512MBに保てた
Tripwireが128MBしか使わないように制限できた
malloc
キャッシュ
VM
合計
600
500
400
300
200
100
0
0
30
60
時間(秒)
90
プロセス
メモリサイズ(MB)
メモリサイズ(MB)
プロセス
Tripwire
キャッシュ
VM
合計
600
500
400
300
200
100
0
0
30
60
90
時間(秒)
120
KVMonitor
[中村ら'10]
KVMにおけるIDSオフロードを考慮したメモリ割り
当て
KVMではVMとIDSをcgroupでグループ化できる
OffloadCage
IDSオフロードを考慮したCPUスケジューリング
IDSのCPU使用分をVMのCPU割り当てから減らす
SEDF-DC
[新井ら’10]
[Gupta et al.’06]
Xenのドライバがドメイン間で協調して動作する
ことを考慮したCPUスケジューリング
CPU使用量をパケット数から推定
Balloon
IDSオフロードを考慮してVMへの動的なメモリ割
り当てを実現
Performerを提案
プロセスのメモリ消費量とファイルキャッシュ使用量
を測定
メモリ使用量に応じてVMのメモリ割り当てを増減
実験によりVMとIDSのメモリ使用量の合計を一定
に保てることを確認
今後の課題
VMとIDSの間で自動的に最適なメモリ配分を行え
るようにする
全体の性能が最もよくなるようにする