セキュリティ機構のオフロード時の 性能分離

Slides:



Advertisements
Similar presentations
九州工業大学大学院 情報工学府 情報創成工学専攻 塩田裕司.  仮想マシン( VM )は必要なときだけ動かすこと が多い ◦ クラウドでもデスクトップでも ◦ 長期間使わない VM が存在する  VM の再開時に攻撃を受ける可能性が高くなる ◦ 停止中に OS やアプリケーションの脆弱性が発見されるこ.
Advertisements

ファイルキャッシュを考慮したディスク監視のオフロード
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
クラウド上の仮想マシンの安全なリモート監視機構
クラウドにおける ネストした仮想化を用いた 安全な帯域外リモート管理
Xenを用いたクラウドコンピュー ティングにおける情報漏洩の防止
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
中村孝介(九州工業大学) 光来健一(九州工業大学/JST CREST)
KVMにおけるIDSオフロードのための仮想マシン監視機構
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
仮想計算機を用いたファイルアクセス制御の二重化
OSが乗っ取られた場合にも機能するファイルアクセス制御システム
侵入検知システム(IDS) 停止 IDS サーバへの不正アクセスが増加している
XenによるゲストOSの解析に 基づくパケットフィルタリング
ファイルシステムキャッシュを 考慮したIDSオフロード
ネストした仮想化を用いた VMの安全な帯域外リモート管理
帯域外リモート管理の継続を 実現可能なVMマイグレーション手法
VMマイグレーションを可能にするIDSオフロード機構
IaaS型クラウドにおける キーボード入力情報漏洩の防止
クラウドの内部攻撃者に対する安全なリモートVM監視機構
アスペクト指向プログラミングを用いたIDSオフロード
サスペンドした仮想マシンの オフラインアップデート
過負荷時のWebアプリケーションの 性能劣化を改善する Page-level Queue Scheduling
不正アクセス       ーrootkitについてー              環境情報学部              3年 櫻井美帆.
SAccessor : デスクトップPCのための安全なファイルアクセス制御システム
過負荷時の分散ソフトウェアの 性能劣化を改善する スケジューリングの提案
踏み台攻撃だけを抑制できる VMMレベル・パケットフィルタ
KVMにおける仮想マシンの 内部監視機構の実装と性能評価
仮想マシン間にまたがる プロセススケジューリング
Xenによる ゲストOSの監視に基づく パケットフィルタリング
仮想計算機を用いて OSを介さずに行う安全な ファイルアクセス制御
セキュリティ機構のオフロードを考慮した 仮想マシンのスケジューリング
セキュリティ(6) 05A2013 大川内 斉.
分散IDSの実行環境の分離 による安全性の向上
他のプロセスに あたえる影響が少ない 実行時ミラーリングシステム
仮想マシンモニタによる きめ細かい パケットフィルタリング
VMのメモリ暗号化によるクラウド管理者への情報漏洩の防止
VMのメモリ暗号化による クラウド管理者への情報漏洩の防止
IaaS型クラウドにおける インスタンス構成の動的最適化手法
仮想マシン間プロセススケジューリングの 実環境への適用にむけて
リモートホストの異常を検知するための GPUとの直接通信機構
実行時情報に基づく OSカーネルのコンフィグ最小化
仮想メモリを用いた VMマイグレーションの高速化
複数ホストに分割されたメモリを用いる仮想マシンの監視機構
仮想計算機を用いたサーバ統合に おける高速なリブートリカバリ
クラウドにおけるIntel SGXを用いた VMの安全な監視機構
IaaS環境におけるVMのメモリ暗号化による情報漏洩の防止
クラウドにおけるVM内コンテナを用いた 自動障害復旧システムの開発
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
仮想マシンを用いた 既存IDSのオフロード
Intel SGXを用いた仮想マシンの 安全な監視機構
軽量な仮想マシンを用いたIoT機器の安全な監視
複数ホストにまたがって動作する仮想マシンの障害対策
VMMのソフトウェア若化を考慮した クラスタ性能の比較
信頼できないクラウドにおける仮想化システムの監視機構
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
仮想環境を用いた 侵入検知システムの安全な構成法
Cell/B.E.のSPE Isolationモードを用いた監視システム
仮想マシンの監視を継続可能なマイグレーション機構
仮想マシンと物理マシンを一元管理するための仮想AMT
仮想マシンに対する 高いサービス可用性を実現する パケットフィルタリング
Cell/B.E. のSPE上で動作する 安全なOS監視システム
VMリダイレクト攻撃を防ぐための 安全なリモート管理機構
強制パススルー機構を用いた VMの安全な帯域外リモート管理
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
特定ユーザーのみが利用可能な仮想プライベート・ネットワーク
Virtual Machine Introspectionを可能にするVMCryptの拡張 田所秀和 光来健一 (九州工業大学)
強制パススルー機構を用いた VMの安全な帯域外リモート管理
管理VMへの キーボード入力情報漏洩の防止
Presentation transcript:

セキュリティ機構のオフロード時の 性能分離 新井 昇鎬* 光来 健一** 千葉 滋* *東京工業大学  **九州工業大学 / CREST 

セキュリティ機構のオフロード 外部にサービスを提供している仮想マシンの外へ 出す セキュリティ機構とは? セキュリティが向上 仮想マシンが攻撃されてもセキュリティ機構まで影響が 及びにくい セキュリティ機構のポリシやログなどの データの改竄を防ぐ セキュリティ機構とは? 侵入検知システム ファイヤーウォール アクセス制御 仮想マシン セキュリティを向上させる方法として、仮想マシンを利用したセキュリティ機構のオフロードがある。 セキュリティ機構のオフロードとは、サービスなどを提供している仮想マシンからセキュリティ機構を仮想マシンの外へだし、 外から仮想マシンを監視します。 このオフロードにより、攻撃者からセキュリティ機構が直接攻撃されにくくなります。 オフロードしない場合では、仮想マシンがクラックされたときに、攻撃者によりセキュリティ機構のポリシーやログなどのデータなどが改ざんされてしまいます。 関連研究 仮想マシンを利用したセキュリティ機構のオフロードを行っている研究はたくさんあります。 ここではLivewire と Saccessor について説明します。 Livewireは侵入検知システムを仮想マシンからオフロードしていて、監視対象の仮想マシンの内部情報をみることで、外部から監視します。 Saccessorはファイルのアクセス制御を仮想マシンからオフロードしていて、オフロード先の仮想マシンをファイルサーバとして動作させることで、オフロード元の仮想マシンのファイルのアクセス制御を行っています。 セキュリティ 機構

仮想マシンを利用したオフロードの例 Snort のオフロード Tripwire のオフロード ドメイン0で通信パ ケットを監視可 ドメイン0でファイル システムを検査可 オフロード元の 仮想マシン オフロード元の 仮想マシン ドメイン0 ドメイン0 Xen を利用した 侵入検知システム のオフロードを紹介します。 Xen では、一般的に使用される仮想マシン、ドメインUとそれらの仮想マシンを管理する仮想マシン、ドメイン0の 2種類の仮想マシンがあります。 ここでは、一般的に使用される仮想マシンから Snort や Tripwire をドメイン0へオフロードします。 ドメイン0は一般的に使用される仮想マシンより攻撃されにくいのでセキュリティは向上します。 Snort とはネットワーク型の侵入検知システムで監視対象ホストの通信パケットを監視 シグネチャと呼ばれるルールと照らし合わせて、攻撃を検出する。 仮想マシンが送受信するパケットがドメイン0を経由することを利用してXen上でのSnortのオフロードを実現します。 一方、Tripwireとはホスト型の侵入検知システムで監視対象ホストのファイルシステムの状態を定期的にチェックすることでデータの改ざんなどを検知します。 オフロード元の仮想マシンのイメージファイル利用することで、オフロード元のファイルシステムをチェックすることができます。 Snort Tripwire ディスク イメージ Xen Xen パケット

仮想マシン間の性能分離の問題 しかし、オフロードすると性能分離ができなくなる 性能分離とは 各仮想マシンの性能を保障すること オフロードしたセキュリティ機構により、他の仮想マシンの 使える資源が減少 CPU 40% CPU 50% Web サーバ しかし、さきほどのオフロードにより、仮想マシン間の性能分離に問題が生じます 性能分離されているとは、仮想マシン間の性能が互いに影響されず、保障されている環境のことを言います。 たとえば図のようにセキュリティ機構をオフロードして、オフロード元にウェブサーバが動作しているとき、パケット処理などでWEB サーバが CPU を制限をいっぱいに使うと、 セキュリティ機構が少し使うだけで、セキュリティ機構とオフロード元の仮想マシンのCPU 使用率の合計はオフロード元の制限の 40 % をオーバーします。 オーバーした分だけ、他の仮想マシンの資源にも影響が出てきます。 図では、60%いくと、他の仮想マシンが50%まで使えなくなる 20% セキュリティ 機構 VMM

性能分離の問題が生じる例 Snortの場合 Snort にも負荷がかかる Tripwireの場合 Tripwire だけで大量の資源 を消費 オフロード元 VM に大量のパケットが送受信されたと き Snort にも負荷がかかる Tripwireの場合 ファイルシステムを検査するとき Tripwire だけで大量の資源 を消費 CPUを大量に消費 オフロード元の 仮想マシン Snort Tripwire のオフロードした時の性能分離の問題を説明します。 少量のパケットでは問題ないが オフロード元に大量のパケット 1, オフロード元はパケット処理で自分自身だけで制限分の CPU を使用 2., Snort はパケットを監視するので同様に負荷 3, 制限 プラス Snorの CPU 使用率 Tripwire が動いてないときは問題ない しかし、Tripwire がひとたび動作すると、オフロード元の仮想マシンの制限とは関係なしに必要な分だけ CPU を使用してしまう Snort VMM

提案: OffloadCage + オフロードしたセキュリティ機構を考慮して性 能分離を実現 セキュリティ機構とオフロード元 VM をひと まとまりとしてスケジューリング 合計としてオフロード元 VM の制限を守る このようなオフロード時の性能分離の問題を解決する OffloadCage を提案 オフロードしたセキュリティ機構の使ったCPU 資源をオフロード元の仮想マシンにカウント 図のように オフロードしたセキュリティ機構とオフロード元の仮想マシンをひとまとまりと考え、この2つの CPU 使用率の合計がオフロード元に設定された制限を超えないようにスケジューリングします + VMM

システム構成 OC-Monitor OC-Scheduler セキュリティ機構が使 用した資源を監視 オフロード元 の仮想マシン OC-Monitor セキュリティ機構が使 用した資源を監視 監視した資源の量を OC-Scheduler に通知 OC-Scheduler オフロードを考慮して仮 想マシンをスケジューリ ング ドメイン0 OC-Monitor セキュリティ 機構 VMM OC-Scheduler

OC-Monitor (1) セキュリティ機構のCPU使用率を計測 オフロード元 VM とセキュリティ 機構を関連付ける 定期的に 計測・通知 セキュリティ機構のCPU使用率を計測 VMM 全体に対しての使用率 /proc /pid/stat を利用 オフロード元 VM とセキュリティ 機構を関連付ける オフロード元はドメインIDで指定 モニタするセキュリティ機構はプロセス ID で指定 OC-Monitor 20 セキュリティ 機構 ハイパーコール OC-Scheduler

OC-Monitor (2) 監視しているセキュリティ機構の CPU 使用率を制 限可 セキュリティ機構だけでオフロード元の制限を超えさ せない Tripwire などは動作すると検査するだけで大量の CPU を消費 停止、動作させたりして制限を守る 現段階では、cpulimitを利用 制限できる why? オフロード元の制限を超えないように CPU 使用率を制限できる どうやって制限しているのか?Cpulimitが OC-Monitor CPU 使用率を 制限 セキュリティ 機構

OC-Scheduler セキュリティ機構が使った資源をオフロード元の仮 想マシンのものとしてスケジューリング クレジットスケジューラを改良 セキュリティ機構が使用した分だけ、オフロード元の 使用できる CPU 時間は減少 クレジットスケジューラを改良 Xenの仮想マシンスケジューラ debt パラメータを追加 OC- Monitor からのハイパーコールで debt を更新 OC-Scheduler の説明 まずクレジットスケジューラの概要をしてからOC-Scheduler の説明をします

物理CPUを使用している仮想CPUのcreditの変化 仮想マシン 仮想マシン 仮想マシン クレジットスケジューラ over under 仮想 CPU 仮想 CPU クレジット 物理 CPU を使用できる量 30ms ごとに仮想 CPU に配布 10ms ごとに減少 クレジットが正の仮想 CPU が優先 30ms ごとに仮想 CPU を切替 under 仮想 CPU 物理 CPU 物理CPUを使用している仮想CPUのcreditの変化 30ms ごとに仮想cpuが クレジットの値が正のほうが優先される 折れ線 10ms 20ms 30ms

クレジットの計算方法 weight、capのそれぞれからクレジットを計算 weight …総 weight 数と比較する値 cap … 最大 CPU 使用率を表す値 結果の小さい方を配布 仮想マシンA 仮想マシンB cap: 60 weight:256 cap: 40 weight: 256 weight cap 比率を書け 円全体を説明 配布 256 : 256 60 : 40

OC-Scheduler によるクレジットの計算方法 オフロードしたセキュリティ機構のCPU 使用分をオフ ロード元 VM から減少 debt パラメータを利用 セキュリティ機構の CPU 使用率 仮想マシンA 仮想マシンB セキュリティ 機構 cap: 60 weight:256 debt: 0 cap: 40 weight: 256 debt : 20 weight cap 配布

実験 Snort と Tripwire をオフロード オフロードした場合の仮想マシン間の性能の分離を 確かめる 実験環境 オフロードなし、オフロードあり、OffloadCage の3つの 場合で比較 マシン CPU:Athlon™ 2.2GHz (コア1) メモリ:2 GB VMM : Xen3.3.0 (x86_64) OS:Linux Kernel 2.6.18 実験目的 オフロード

Snort のオフロード 実験内容 オフロード元はウェブサーバ 外部のマシンから攻撃 オフロード元には cap を40 40% httperf 実験内容 オフロード元はウェブサーバ 外部のマシンから攻撃 httperf を使用 オフロード元には cap を40 最大 CPU 使用率 40% web snort httperf web snort httperf web snort

実験: Snort とオフロード元 VM の CPU 使用率の合計 オフロードすると制限を大幅 に超えている OffloadCage オフロードしてもオフロー ド元 VM の制限を守れて いる オフロードなし場合はオフ ロード元 VM のCPU使用率 実験内容は。 緑の線が単にオフロードした場合です。 オフロードした snort の分だけ制限を超えていることがわかります。 このオフロードした状態でOffloadCageを動作させた場合がピンク線です。 オフロードしたセキュリティ機構とオフロード元の仮想マシンの合計が制限を守れていることが確認できます。 オフロードしない場合はSnort がオフロード元に含まれているので、青の線がオフロード元の仮想マシンの CPU 使用率を表しています。 時間 ( 秒 )

実験: 配布されるクレジット OffloadCage Snort の分、配布される クレジットが減少 オフロードあり credit OffloadCage Snort の分、配布される クレジットが減少 オフロードあり オフロードしないときと同 様のクレジットが配布 オフロードなし 設定されたcap と weight で計算されたクレジット が配布 図をしっかり説明しろ 時間 ( m秒 )

実験: 性能比 Snort の CPU 使用率 ウェブサーバのスループッ ト Snort がオフロード前と異なる 資源の使い方をしている OffloadCage オフロードしない場合より 高い CPU 使用率 ウェブサーバの分が減少 ウェブサーバのスループッ ト オフロードなしのときより、 スループットが減少 Snort がオフロード前と異なる 資源の使い方をしている 時間 ( 秒 ) 右上の図はSnort の CPU 使用率です。 単純にオフロードした場合、Snort はオフロード先のドメイン0のCPU 資源を大量に消費していることが確認できます。 しかし、OffloadCage を使うと、オフロード元の仮想マシンにSnortの分だけ制限がかかるのでWebサーバのスループットが落ち、その結果Snort の監視するパケットの量も減るため、単純にオフロードした場合より CPU 使用率が落ちたと考えられます。 オフロードしない場合は 40%の制限のうちこの青の線くらいSnortが使用していることを表しています。 右下の図はオフロード元の仮想マシンで動作するウェブサーバのスループットです。 単純にオフロードした場合はSnortがオフロード元からいなくなる分だけウェブサーバが使える CPU 資源が増えるためスループットが上がったことを表します。 OffloadCage を使うと、オフロードしたSnortのCPU使用率の分だけオフロード元に制限がかかるため、その中で動作するWebserverが使える資源も減る。その結果スループットが単純にオフロードした場合よりも落ちています。 また、OffloadCageを使うと、オフロードしない場合よりもスループットが落ちてしまいます。 これは40%の制限をSnortとウェブサーバの分け合い割合がことなるためです。 オフロードしない場合はSnort10%,webはのこりの30% オフロードしてOffloadCageを用いた場合はsnort20%, web20% 今後、この割合も考慮にいれる必要があると思います。 req/s

Tripwire のオフロード 実験内容 CPU を制限まで使用 cap を 50 に設定 Tripwire は 30% に制限 50% Tripwire のオフロード web snort オフロードなし 実験内容 オフロード元では無限ループするプログラムが動作 CPU を制限まで使用 cap を 50 に設定 Tripwire は 30% に制限 web snort オフロードあり web snort OffloadCage

実験 : Tripwire とオフロード元 VM の合計 Tripwire とオフロード元の CPU 使用率の合計 OffloadCage オフロード元の制限を 守れている オフロードするとTripwire の分だけ制限を超えてい る CPU 使用率 ( % ) 時間 ( 秒 )

関連研究 セキュリティ機構のオフロードの研究 SEDF-DC [ Gupta et al. ’06] Livewire [ Garfinkel. ’03 ] Saccessor [ 滝澤ら. ‘08 ] SEDF-DC [ Gupta et al. ’06] 仮想マシン間の性能分離 Xen のスプリットドライバのドメイン0内の処理による資 源の使用を仮想マシンに適切にカウント LRP [ Druschel et al. ’96 ] アプリケーション間の性能分離 カーネル内のネットワーク処理による資源の使用をアプ リケーションに適切にカウント Xen の仮想マシンのドライバは一部がドメイン0内にあります。 そのためネットワーク処理などはドメイン0が一部負担します。 そのドメイン0内のドライバの処理による CPU 使用量を、その処理を行わせた仮想マシンに適切にカウントします。 ドメイン0とドメインUの間の通信の回数から使用量を推定しています。 ネットワーク処理のハンドラーなどのカーネル内の処理による資源の消費を、通信を行っているアプリケーションに適切にカウント 共有していたIP キューをプロセスごとに用意 ハンドラーが行っていた処理の一部をアプリケーションが呼ぶまで遅らせる

まとめ セキュリティ機構のオフロードを考慮して性能分離 を実現するシステム OffloadCageを提案した OC-Monitor はセキュリティ機構の使用した資源を監 視 OC-Scheduler はセキュリティ機構とオフロード元の仮 想マシンをひとまとまりとしてスケジューリング Snort と Tripwire をオフロードしてもオフロード元の 制限を守れていることを確認した セキュリティ機構をオフロードしても仮想マシン間の性能分離が実現する OffloadCage を提案しました。 セキュリティ機構をオフロードすると、攻撃者がセキュリティ機構を直接攻撃しにくくなりセキュリティが向上します。 しかし、このオフロードにより仮想マシン間の性能分離に問題が生じます。 OffloadCage では OC-Monitorによりオフロードしたセキュリティ機構が使用した資源を監視して、 OC-Schedulerによりオフロード元の仮想マシンにカウントします。 実験では Snort と Tripwire をオフロードして、仮想マシンの性能分離が確かめました。

今後の課題 オフロードしたセキュリティ機構とオフロード元の仮 想マシンの資源分配を考慮 CPU 以外の資源も監視 メモリ ディスク したいと考えています するべきであると思います。