1 / 25

仮想マシンを用いた IDS オフロードを考慮するための 資源管理機構

仮想マシンを用いた IDS オフロードを考慮するための 資源管理機構. 数理・計算科学専攻 指導教員: 千葉滋 09M37028 新井昇鎬. IDS( 侵入検知システム ) オフロードとは. 監視対象 VM の外から監視 IDS 自体が攻撃されにくいためセキュリティが向上 IDS のポリシやログなどのデータの改竄を防ぐ 攻撃者はシステム侵入後に IDS を狙う 発見されるのを防ぐ. IDS オフロード. 監視対象 VM. IDS-VM. 通常. IDS. 検知. IDS. 攻撃. VMM. Xen を用いた IDS オフロードの例.

Télécharger la présentation

仮想マシンを用いた IDS オフロードを考慮するための 資源管理機構

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 仮想マシンを用いたIDSオフロードを考慮するための資源管理機構仮想マシンを用いたIDSオフロードを考慮するための資源管理機構 数理・計算科学専攻 指導教員: 千葉滋 09M37028 新井昇鎬

  2. IDS(侵入検知システム) オフロードとは • 監視対象 VM の外から監視 • IDS自体が攻撃されにくいためセキュリティが向上 • IDS のポリシやログなどのデータの改竄を防ぐ • 攻撃者はシステム侵入後に IDS を狙う • 発見されるのを防ぐ IDSオフロード 監視対象 VM IDS-VM 通常 IDS 検知 IDS 攻撃 VMM

  3. Xenを用いた IDS オフロードの例 • Snort のオフロード • 監視対象の仮想インターフェイスを監視 • ClamAVのオフロード • 監視対象のディスクイメージをマウントして監視 • Livewire (Garfinkel, ’03)、SAccessor (滝沢ら, ‘08) 監視対象 VM IDS-VM 監視対象 VM IDS-VM ClamAV Snort 監視 監視 Disk image パケット VMM VMM

  4. VM 間の性能分離の問題 • オフロードすると性能分離が難しくなる • 性能分離とは • 各 VM への資源割り当てを保証すること • 例: 上限 50 % が設定された VM はその分を利用可 • IDS による資源消費分は監視対象元 VM に含めるべき • IDS は監視対象 VM のために動作 • 合計すると監視対象 VM の資源割り当てを超える CPU 40% CPU 50% CPU20% IDS

  5. VM 単位の資源管理が原因 • VM の外で動作している IDS を考慮することはできない • VMM は VM 単位で性能分離を実現 • 例: Xenでは VM に cap, weight を設定 • IDS と VM に個別に資源割り当てを行うだけでは不十分 • IDS が利用しない分を VM が使用できない VM(40%) CPU20% IDS Xen

  6. 提案: Resource Cage • RC 単位で資源管理 • VM という実行単位から資源管理を切り離す • RC: VM、プロセス • cap(上限), weight (割合) を設定 • 複数の RC をグルーピング可能 • IDS オフロードを考慮 Resource Cage RC2(Group) RC1 VM1 VM2 VM1 RC4 RC3 VM2 IDS IDS VMM

  7. ClamAVオフロードを考慮する例 • ClamAVと VM2 合わせて最大 CPU 50 % • VM2 は 50% まで使用可 • ClamAVが使用しない分 • cap の値が 0 (無指定) のとき • ClamAVは最大 20 %まで RC2(Group) cap: 50 weight: 256 RC1(VM1) cap:0 weight: 256 VM1 VM2 cap: 0 w:128 cap:20 w:128 ClamAV VMM RC3(ClamAV) RC4(VM2)

  8. 実装: Resource Cage の構成 ( Xenに実装) • RC-Monitor • 仮想マシンモニタレベルで CPU 使用率を監視 • RC Credit Scheduler • RC を元に VM をスケジューリング • RC-Limiter • RC に応じてプロセスの 動作を制御 dom0 監視対象 VM RC-Limiter 制御 IDS 参照 監視 RC-Monitor dom0 記録 Xen 参照 RC Credit Scheduler IDS VM

  9. RC-Monitor • CR3 レジスタの切り替えを利用してCPU 使用率を計測 • CR3 = プロセスのページディレクトリ のアドレス • ゲスト OS のカーネル、 スケジューラに依存しない • 0(1)スケジューラ、CFS • VMの切り替えが考慮されて いない古いカーネルや完全仮想化 VM ユーザランド P1 P2 カーネル OC-Monitor VMM 監視 CR3

  10. RC Credit Scheduler • 所属している RC の cap, weight を元に VM をスケジューリング • Xenのクレジットスケジューラを改良 • VM の cap, weight を参照してスケジューリング • 監視対象の仮想マシンの場合は同じグループ内の RC も考慮 RC2(Group) cap: 80 weight: 256 VM1 VM2 cap: 0 w:128 cap:40 w:128 ClamAV RC4(VM2) RC3(ClamAV) VMM

  11. VM VM VM クレジットスケジューラ over under 仮想 CPU 仮想 CPU • クレジット • 物理 CPU を使用できる量 • 30 ms ごとに仮想 CPU に配布 • 10 ms ごとに減少 (物理CPU 上の) • 正の値の仮想 CPU が優先 under 仮想 CPU 物理CPUを使用している仮想CPUのcreditの変化 20ms 10ms 30ms

  12. RC-CS によるクレジットの配分 • 同じグループ内の IDS の RC の weight、cap を参照してクレジットを計算 • IDS の CPU 使用率に応じてクレジットが増減 • 例: cap による制御 VM2 VM1 IDS がほとんど動作していないとき IDS クレジット cap: 50 VM1 cap:40 IDS が最大20%まで利用した時 IDS cap: 20 VM2 cap: 0 クレジット Resource cage

  13. RC-Limiter • RC のプロセスの CPU 使用率を制限 • 設定された cap を超えさせない • グループに所属してる場合: 全体のcap を超えない • プロセスの動作を制御 • SIGCONT, SIGSTOP シグナルを利用 例: 40%に制限 100ms IDS-VM 監視対象 VM 時間 OC-Limiter IDS SIGCONT SIGSTOP

  14. 実験: Snort のオフロード • 実験内容 • 監視対象 VM はウェブサーバ • 外部マシンから攻撃 • httperfを使用 • RC (group) = RC1 (snort) + RC2 (監視対象VM) • RC: 最大CPU使用率 50% • RC1: 最大CPU使用率20% 監視対象 VM Dom 0 httperf web 実験環境マシン CPU: Intel Core i72.80GHz(コア1) メモリ:8 GB VMM : Xen4.1.0(x86_64) OS:Linux Kernel 2.6.32.39 snort

  15. Snort と VM の CPU使用率の合計 • オフロードすると制限を超える(上図) • Resource Cage • オフロードしても 50 % の制限を守れている (下図) • RC-Limiterにより、Snort は 20 %以下 CPU 使用率 ( % ) 時間 ( 秒 )

  16. ウェブサーバのスループット • offloadなしの場合 (赤) • Snortの分だけウェブサーバが使用できる • 本システムの場合 (緑) • オフロードしない場合とほぼ同じスループット req/sec offloadなし offloadあり

  17. 実験: ClamAVのオフロード • 実験内容 • 監視対象 VM のディスクイメージをマウントすることで VM の外からウイルスチェック • 監視対象では無限ループが動作 • 途中から Clam AV が動作を始める • RC = RC1(ClamAV) + RC2(監視対象VM) • 合計で最大 CPU 使用率 60 % • ClamAVは最大 CPU使用率 30 % 監視対象 VM Dom 0 loop ClavAV

  18. ClamAVと VM の CPU 使用率の合計 • オフロードすると制限を超える(上図) • Resource Cage • オフロードしても 60 % の制限を守れている (下図) • RC-Limiterにより、ClamAVは 30 %以下

  19. 実験: CR3 と proc • 無限ループを計測 • 途中で別のVM でも  無限ループを動作 • CR3 はVM 切り替えが考慮 • Snort の CPU 使用率 • O(1) は正確に課金できない CPU 使用率 ( % ) 時間 ( 秒 ) 実験環境マシン CPU:Athlon™2.2GHz(コア1) メモリ:2 GB VMM : Xen3.3.0(x86_64) OS:Linux Kernel 2.6.18

  20. 関連研究 • SEDF-DC [ Guptaet al. ’06] • 仮想マシン間の性能分離 • Xenのスプリットドライバのドメイン0内の処理による資源の使用を使用した仮想マシンに適切にカウント • Resource Container [ Banga et al. ‘99] • プロセス単位ではなく適切な単位でOSの資源管理 • VMdesched Component [VMware] • 完全仮想化で正確な時間管理 • VMDeschedプロセス動作時に溜まっていた割り込みを処理

  21. Future Work • シェアスケジューリングの実現 • オフロードしたプロセスを監視対象の仮想マシンの物理CPUと共有させる • CGroupでプロセスと VCPUを固定 • その VCPU を監視対象の 仮想マシンの物理 CPU と共有 VM1 VM2 IDS 仮想 CPU1 仮想 CPU3 仮想 CPU2 共有 物理 CPU

  22. まとめ • 仮想マシンを用いた IDS をオフロードを考慮した資源管理機構をXen上に実装 • VM単位ではなく、Resource Cage 単位で資源管理 • Resource Cage に対して CPU 制約 • Snort とClamAVをオフロードして実験 • ここまでの成果 • ’09 VM ミニワークショップ • ’10 DSW • ’10 OS 研究会

  23. 実験: ClamAVのオフロード時の性能分離 CPU使用率 • グループ内のClamAVとdomUは1 対 2 でスケジューリング • 途中からdomU内で無限ループ domU 時間 Clam AV Xen

  24. 実験: シェアスケジューリング(無限ループ) CPU使用率 • 無限ループとdomUでグルーピング • 最大60 % • ループとdomUで1: 2シェアスケジューリング domU 時間 loop loop Xen

  25. 新しい手法 • オフロードしたプロセスに VCPU (仮想 CPU) を持たせ、オフロード元の仮想マシンと共有 Resource Cage VM1 VM2 RC2(Group) RC1 VM1 RC4 RC3 IDS VM2 IDS 仮想 CPU1 仮想 CPU3 仮想 CPU2 共有 仮想 CPU1 仮想 CPU2 仮想 CPU3 物理 CPU 物理 CPU

More Related