Upload
dillon-hooper
View
95
Download
0
Embed Size (px)
DESCRIPTION
仮想マシンを用いた IDS オフロードを考慮するための 資源管理機構. 数理・計算科学専攻 指導教員: 千葉滋 09M37028 新井昇鎬. IDS( 侵入検知システム ) オフロードとは. 監視対象 VM の外から監視 IDS 自体が攻撃されにくいためセキュリティが向上 IDS のポリシやログなどのデータの改竄を防ぐ 攻撃者はシステム侵入後に IDS を狙う 発見されるのを防ぐ. IDS オフロード. 監視対象 VM. IDS-VM. 通常. IDS. 検知. IDS. 攻撃. VMM. Xen を用いた IDS オフロードの例. - PowerPoint PPT Presentation
Citation preview
2
IDS( 侵入検知システム ) オフロードとは
• 監視対象 VM の外から監視– IDS 自体が攻撃されにくいためセキュリティが
向上• IDS のポリシやログなどのデータの改竄を防ぐ
• 攻撃者はシステム侵入後に IDS を狙う– 発見されるのを防ぐ
IDS
VMM
監視対象 VM
IDS攻撃
通常
IDS オフロードIDS-VM
検知
3
Xen を用いた IDS オフロードの例
• Snort のオフロード– 監視対象の仮想インターフェイスを監視
• ClamAV のオフロード– 監視対象のディスクイメージをマウントして
監視• Livewire (Garfinkel, ’03) 、 SAccessor ( 滝沢ら , ‘08)
ClamAV
VMM
監視Disk
image
監視対象 VMIDS-VM
Snort
VMM
監視対象 VMIDS-VM
監視
パケット
4
VM 間の性能分離の問題• オフロードすると性能分離が難しくなる– 性能分離とは• 各 VM への資源割り当てを保証すること• 例 : 上限 50 % が設定された VM はその分を利用
可– IDS による資源消費分は監視対象元 VM に含
めるべき• IDS は監視対象 VM のために動作
– 合計すると監視対象 VM の資源割り当てを超える
IDS
CPU 40%
CPU20%
CPU 50%
5
VM 単位の資源管理が原因• VM の外で動作している IDS を考慮する
ことはできない– VMM は VM 単位で性能分離を実現• 例 : Xen では VM に cap, weight を設定
• IDS と VM に個別に資源割り当てを行うだけでは不十分– IDS が利用しない分を VM が使用できない
Xen
IDS
VM(40%)
CPU20%
6
提案 : Resource Cage
• RC 単位で資源管理– VM という実行単位から資源管理を切り離す– RC: VM 、プロセス• cap( 上限 ), weight ( 割合 ) を設定
– 複数の RC をグルーピング可能• IDS オフロードを考慮
IDS
VMM
VM1 VM2
VM1 IDS VM2
RC2(Group)RC1RC3 RC4
Resource Cage
7
ClamAV オフロードを考慮する例
• ClamAV と VM2 合わせて最大 CPU 50 %– VM2 は 50% まで使用可• ClamAV が使用しない分 • cap の値が 0 ( 無指定 ) のとき
– ClamAV は最大 20 % まで
cap:0weight: 256
cap: 50weight: 256
cap:20w:128
cap: 0w:128
RC2(Group)
RC1(VM1)
RC3(ClamAV) RC4(VM2)
ClamAV
VM1 VM2
VMM
8
実装 : Resource Cage の構成 ( Xen に実装 )
• RC-Monitor– 仮想マシンモニタレベルで CPU 使用率を監
視• RC Credit Scheduler– RC を元に VM をスケジューリング
• RC-Limiter– RC に応じてプロセスの 動作を制御
IDS
監視対象 VMdom0
RC Credit Scheduler
RC-Monitor
RC-Limiter
Xen
制御
監視
dom0
IDS VM
参照
記録
参照
9
RC-Monitor
• CR3 レジスタの切り替えを利用して CPU 使用率を計測– CR3 = プロセスのページディレクトリ のアドレス– ゲスト OS のカーネル、 スケジューラに依存しない• 0(1) スケジューラ、 CFS• VM の切り替えが考慮されて いない古いカーネルや完全仮想化
P1 P2
ユー
ザラ
ンド
カー
ネル
VM
CR3
VMM OC-Monitor
監視
10
RC Credit Scheduler
• 所属している RC の cap, weight を元に VM をスケジューリング– Xen のクレジットスケジューラを改良• VM の cap, weight を参照してスケジューリング
• 監視対象の仮想マシンの場合は同じグループ内の RC も考慮
ClamAV
VM1 VM2
VMM
cap: 80weight: 256
cap:40w:128
cap: 0w:128
RC2(Group)
RC3(ClamAV) RC4(VM2)
クレジットスケジューラ• クレジット– 物理 CPU を使用できる量– 30 ms ごとに仮想 CPU に配布– 10 ms ごとに減少 ( 物理 CPU 上の )– 正の値の 仮想 CPU が優先
11
仮想CPU
仮想CPU
underover
under
VM VM VM
仮想CPU
Series1
-100-50
050
100150200
クレジット
10ms 20ms 30ms
物理 CPU を使用している仮想 CPU の credit の
変化
12
RC-CS によるクレジットの配分
• 同じグループ内の IDS の RC の weight 、cap を参照してクレジットを計算– IDS の CPU 使用率に応じてクレジットが増減
• 例 : cap による制御 VM2
IDS
VM1cap:40 cap: 50
IDScap:20
VM2cap:
0Resource cage
IDS がほとんど動作していないとき
VM1
IDS が最大 20% まで利用した時
クレジット
クレジット
13
RC-Limiter
• RC のプロセスの CPU 使用率を制限– 設定された cap を超えさせない• グループに所属してる場合 : 全体の cap を超えな
い – プロセスの動作を制御• SIGCONT, SIGSTOP シグナルを利用
時間
SIGSTOPSIGCONT
100ms
IDS
監視対象 VMIDS-VM
OC-Limiter
例 : 40% に制限
14
実験 : Snort のオフロード• 実験内容– 監視対象 VM はウェブサーバ– 外部マシンから攻撃• httperf を使用
– RC (group) = RC1 (snort) + RC2 ( 監視対象 VM)• RC: 最大 CPU 使用率 50%• RC1: 最大 CPU 使用率 20%
web
snort
httperf
監視対象 VMDom 0
実験環境マシンCPU : Intel Core i7 2.80GHz ( コア1 )メモリ: 8 GB VMM : Xen4.1.0 (x86_64)OS : Linux Kernel 2.6.32.39
15
Snort と VM の CPU 使用率の合計
0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 450
20
40
60
80
100
0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 450
20
40
60
80
100
IDS VM IDS + VM
•オフロードすると制限を超える ( 上図 )
•Resource Cage▫オフロードしても 50 %
の制限を守れている ( 下図 )
▫RC-Limiter により、 Snort は 20 % 以下
CPU
使用
率 (
% )
時間 ( 秒 )
16
ウェブサーバのスループット• offload なしの場合
( 赤 )– Snort の分だけウェブ
サーバが使用できる• 本システムの場合
( 緑 )– オフロードしない場合
とほぼ同じスループット
throughput0
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
offload なしoffload ありoffload あり(RC)
offload なし offload あり
req/
sec
17
実験 : ClamAV のオフロード• 実験内容– 監視対象 VM のディスクイメージをマウント
することで VM の外からウイルスチェック– 監視対象では無限ループが動作• 途中から Clam AV が動作を始める
– RC = RC1(ClamAV) + RC2( 監視対象 VM)• 合計で最大 CPU 使用率 60 %• ClamAV は最大 CPU 使用率 30 % loop
ClavAV
監視対象 VMDom 0
18
ClamAV と VM の CPU 使用率の合計
0 6 12 18 24 30 36 420
20406080
100
IDS VMIDS + VM
0 6 12 18 24 30 36 420
20
40
60
80
100
•オフロードすると制限を超える ( 上図 )
•Resource Cage▫オフロードしても 60 %
の制限を守れている ( 下図 )
▫RC-Limiter により、 ClamAV は 30 % 以下
実験: CR3 と proc
• 無限ループを計測– 途中で別の VM でも 無限ループを動作– CR3 は VM 切り替えが考慮
• Snort の CPU 使用率– O(1) は正確に課金できない
19
0 6 12 18 24 30 36 420
20
40
60
80
100CR3 proc O(1)
0 6 12 18 24 30 36 42 480
102030405060708090
100CR3 proc O(1)
実験環境マシンCPU : Athlon™ 2.2GHz ( コア1 )メモリ: 2 GB VMM : Xen3.3.0 (x86_64)OS : Linux Kernel 2.6.18
CPU
使用
率 (
% )
時間 ( 秒 )
20
関連研究• SEDF-DC [ Gupta et al. ’06]– 仮想マシン間の性能分離
• Xen のスプリットドライバのドメイン0内の処理による資源の使用を使用した仮想マシンに適切にカウント
• Resource Container [ Banga et al. ‘99]– プロセス単位ではなく適切な単位で OS の資源管理
• VMdesched Component [VMware]– 完全仮想化で正確な時間管理
• VMDesched プロセス 動作時に溜まっていた割り込みを処理
21
Future Work
• シェアスケジューリングの実現
• オフロードしたプロセスを監視対象の仮想マシンの物理 CPU と共有させる– CGroup で プロセスと VCPU を固定– その VCPU を監視対象の 仮想マシンの物理 CPU と共有
IDS
VM1 VM2
仮想CPU1
仮想CPU2
仮想CPU3
物理 CPU
共有
22
まとめ• 仮想マシンを用いた IDS をオフロードを考慮
した資源管理機構を Xen 上に実装– VM 単位ではなく、 Resource Cage 単位で資源管理– Resource Cage に対して CPU 制約– Snort と ClamAV をオフロードして実験
• ここまでの成果– ’09 VM ミニワークショップ– ’10 DSW– ’10 OS 研究会
23
実験 : ClamAV のオフロード時の性能分離
Series1
0102030405060708090
100
ClamAVdomU
• グループ内の ClamAV と domU は 1 対 2 でスケジューリング
• 途中から domU 内で無限ループ
Xen
ClamAV
domU
CPU 使用率
時間
24
実験 : シェアスケジューリング ( 無限ループ )
• 無限ループと domU でグルーピング– 最大 60 %
• ループ と domU で 1: 2 シェアスケジューリング
Xen
looploop
domU
CPU 使用率
時間
Series1
0102030405060708090
100
loopdomUgroup