セキュリティ機構のオフロード時の 性能分離 新井 昇鎬* 光来 健一** 千葉 滋* *東京工業大学 **九州工業大学 / CREST 2 セキュリティ機構のオフロード • 外部にサービスを提供している仮想マシンの外へ 出す ▫ セキュリティが向上 仮想マシンが攻撃されてもセキュリティ機構まで影響が 及びにくい セキュリティ機構のポリシやログなどの 仮想マシン データの改竄を防ぐ • セキュリティ機構とは? ▫ 侵入検知システム ▫ ファイヤーウォール ▫ アクセス制御 セキュリティ 機構 3 仮想マシンを利用したオフロードの例 • Snort のオフロード ▫ ドメイン0で通信パ ケットを監視可 ドメイン0 オフロード元の 仮想マシン Snort • Tripwire のオフロード ドメイン0でファイル システムを検査可 ドメイン0 オフロード元の 仮想マシン Tripwire ディスク イメージ パケット Xen Xen 4 仮想マシン間の性能分離の問題 • しかし、オフロードすると性能分離ができなくなる ▫ 性能分離とは 各仮想マシンの性能を保障すること ▫ オフロードしたセキュリティ機構により、他の仮想マシンの CPU 40% CPU 50% 使える資源が減少 20% Web サーバ セキュリティ 機構 VMM 5 性能分離の問題が生じる例 • Snortの場合 ▫ オフロード元 VM に大量のパケットが送受信されたと き Snort にも負荷がかかる • Tripwireの場合 ▫ ファイルシステムを検査するとき Tripwire だけで大量の資源 を消費 CPUを大量 に消費 オフロード元の 仮想マシン Snort VMM 6 提案: OffloadCage • オフロードしたセキュリティ機構を考慮して性 能分離を実現 ▫ セキュリティ機構とオフロード元 VM をひと まとまりとしてスケジューリング 合計としてオフロード元 VM の制限を守る + VMM 7 システム構成 • OC-Monitor ▫ セキュリティ機構が使 用した資源を監視 ▫ 監視した資源の量を OC-Scheduler に通知 • OC-Scheduler ▫ オフロードを考慮して仮 想マシンをスケジューリ ング ドメイン0 オフロード元 の仮想マシン OC-Monitor セキュリティ 機構 OC-Scheduler VMM 8 OC-Monitor (1) 定期的に 計測・通知 • セキュリティ機構のCPU使用率を計測 ▫ VMM 全体に対しての使用率 ▫ /proc /pid/stat を利用 • オフロード元 VM とセキュリティ 機構を関連付ける ▫ オフロード元はドメインIDで指定 OC-Monitor 20 セキュリティ 機構 • モニタするセキュリティ機構はプロセス ID で指定 ハイパーコール OC-Scheduler 9 OC-Monitor (2) • 監視しているセキュリティ機構の CPU 使用率を制 限可 ▫ セキュリティ機構だけでオフロード元の制限を超えさ せない Tripwire などは動作すると検査するだけで大量の CPU を消費 ▫ 停止、動作させたりして制限を守る 現段階では、cpulimitを利用 CPU 使用率を 制限 OC-Monitor セキュリティ 機構 10 OC-Scheduler • セキュリティ機構が使った資源をオフロード元の仮 想マシンのものとしてスケジューリング ▫ セキュリティ機構が使用した分だけ、オフロード元の 使用できる CPU 時間は減少 • クレジットスケジューラを改良 ▫ Xenの仮想マシンスケジューラ ▫ debt パラメータを追加 OC- Monitor からのハイパーコールで debt を更新 仮想マシン クレジットスケジューラ • クレジット ▫ ▫ ▫ ▫ 仮想マシン 仮想マシン 11 over under 仮想 仮想 CPU CPU under 仮想 CPU 物理 CPU を使用できる量 30ms ごとに仮想 CPU に配布 物理 CPU 10ms ごとに減少 クレジットが正の仮想 CPU が優先 • 30ms ごとに仮想 CPU を切替 物理CPUを使用している 仮想CPUのcreditの変化 200 100 0 -100 クレジット 10ms 20ms 30ms 12 クレジットの計算方法 • weight、capのそれぞれからクレジットを計算 ▫ weight …総 weight 数と比較する値 ▫ cap … 最大 CPU 使用率を表す値 ▫ 結果の小さい方を配布 weight cap: 60 weight:256 cap 配布 256 : 256 60 : 40 仮想マシンA 仮想マシンB cap: 40 weight: 256 13 OC-Scheduler によるクレジットの計算方法 • オフロードしたセキュリティ機構のCPU 使用分をオフ ロード元 VM から減少 仮想マシンA 仮想マシンB • debt パラメータを利用 ▫ セキュリティ機構の CPU 使用率 weight セキュリティ 機構 cap: 60 weight:256 debt: 0 cap 配布 cap: 40 weight: 256 debt : 20 14 実験 • Snort と Tripwire をオフロード • オフロードした場合の仮想マシン間の性能の分離を 確かめる • 実験環境 ▫ オフロードなし、オフロードあり、OffloadCage の3つの 場合で比較 ▫ マシン CPU:Athlon™ 2.2GHz (コア1) メモリ:2 GB VMM : Xen3.3.0 (x86_64) OS:Linux Kernel 2.6.18 15 Snort のオフロード • 実験内容 40% httperf web ▫ オフロード元はウェブサーバ ▫ 外部のマシンから攻撃 httperf を使用 ▫ オフロード元には cap を40 snort httperf 最大 CPU 使用率 40% web snort httperf web snort 実験: Snort とオフロード元 VM の CPU 使 用率の合計 • オフロードすると制限を大幅 に超えている • OffloadCage ▫ オフロードしてもオフロー ド元 VM の制限を守れて いる • オフロードなし場合はオフ ロード元 VM のCPU使用率 CPU 使用率% 16 オフロードなし オフロードあり OffloadCage 90 80 70 60 50 40 30 20 10 0 0 9 18 27 時間 ( 秒 ) 36 17 実験: 配布されるクレジット • OffloadCage Snort の分、配布される クレジットが減少 • オフロードあり オフロードしないときと同 様のクレジットが配布 • オフロードなし 設定されたcap と weight で計算されたクレジット が配布 credit 140 オフロードなし オフロード OffloadCage 120 100 80 60 40 20 0 30 480 930 1380 1830 2280 時間 ( m秒 ) 18 オフロードなし オフロードあり OffloadCage CPU 使用率 ( % ) 実験: 性能比 60 50 40 30 20 10 0 • Snort の CPU 使用率 ▫ OffloadCage オフロードしない場合より 高い CPU 使用率 ウェブサーバの分が減少 ▫ OffloadCage オフロードなしのときより、 スループットが減少 Snort がオフロード前と異なる 資源の使い方をしている 9 18 27 時間 ( 秒 ) 3500 3000 2500 2000 1500 1000 500 0 req/s • ウェブサーバのスループッ ト 0 スループット(req/s) 36 19 50% Tripwire のオフロード • 実験内容 web snort オフロードなし ▫ オフロード元では無限ループするプログラムが動作 CPU を制限まで使用 ▫ cap を 50 に設定 ▫ Tripwire は 30% に制限 web オフロードあり snort web OffloadCage snort 20 実験 : Tripwire とオフロード元 VM の合計 • Tripwire とオフロード元の CPU 使用率の合計 ▫ OffloadCage オフロード元の制限を 守れている ▫ オフロードするとTripwire の分だけ制限を超えてい る オフロードなし オフロードあり OffloadCage CPU 使用率 ( % ) 100 90 80 70 60 50 40 30 20 10 0 0 15 30 45 60 75 時間 ( 秒 ) 90 21 関連研究 • セキュリティ機構のオフロードの研究 ▫ Livewire [ Garfinkel. ’03 ] ▫ Saccessor [ 滝澤ら. ‘08 ] • SEDF-DC [ Gupta et al. ’06] ▫ 仮想マシン間の性能分離 Xen のスプリットドライバのドメイン0内の処理による資 源の使用を仮想マシンに適切にカウント • LRP [ Druschel et al. ’96 ] ▫ アプリケーション間の性能分離 カーネル内のネットワーク処理による資源の使用をアプ リケーションに適切にカウント 22 まとめ • セキュリティ機構のオフロードを考慮して性能分離 を実現するシステム OffloadCageを提案した ▫ OC-Monitor はセキュリティ機構の使用した資源を監 視 ▫ OC-Scheduler はセキュリティ機構とオフロード元の仮 想マシンをひとまとまりとしてスケジューリング • Snort と Tripwire をオフロードしてもオフロード元の 制限を守れていることを確認した 23 今後の課題 • オフロードしたセキュリティ機構とオフロード元の仮 想マシンの資源分配を考慮 ▫ オフロード元の状況を応じて、セキュリティ機構のCPU 資源を制限 • CPU 以外の資源も監視 ▫ メモリ ▫ ディスク
© Copyright 2024 ExpyDoc