VMマイグレーションを可能にするIDSオフロード機構

Slides:



Advertisements
Similar presentations
九州工業大学 塩田裕司 光来健一.  仮想マシンは必要なときだけ動かす使い方が一般 的 ◦ 一台の計算機上に複数の計算機を仮想的に作成できる ◦ デスクトップ  異なる OS を使用するため作成 ◦ サーバ  最大負荷に合わせた数の仮想マシンを作成  長期間使わない仮想マシンも存在する VM.
Advertisements

九州工業大学大学院 情報工学府 情報創成工学専攻 塩田裕司.  仮想マシン( VM )は必要なときだけ動かすこと が多い ◦ クラウドでもデスクトップでも ◦ 長期間使わない VM が存在する  VM の再開時に攻撃を受ける可能性が高くなる ◦ 停止中に OS やアプリケーションの脆弱性が発見されるこ.
ファイルキャッシュを考慮したディスク監視のオフロード
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
クラウド上の仮想マシンの安全なリモート監視機構
クラウドにおける ネストした仮想化を用いた 安全な帯域外リモート管理
Xenを用いたクラウドコンピュー ティングにおける情報漏洩の防止
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
中村孝介(九州工業大学) 光来健一(九州工業大学/JST CREST)
KVMにおけるIDSオフロードのための仮想マシン監視機構
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
OSが乗っ取られた場合にも機能するファイルアクセス制御システム
侵入検知システム(IDS) 停止 IDS サーバへの不正アクセスが増加している
XenによるゲストOSの解析に 基づくパケットフィルタリング
クラウドにおけるアプリケーション単位での VM構成の動的最適化
帯域外リモート管理を継続可能な マイグレーション手法
大きな仮想マシンの 複数ホストへのマイグレーション
ファイルシステムキャッシュを 考慮したIDSオフロード
ネストした仮想化を用いた VMの安全な帯域外リモート管理
帯域外リモート管理の継続を 実現可能なVMマイグレーション手法
クラウドの内部攻撃者に対する安全なリモートVM監視機構
アスペクト指向プログラミングを用いたIDSオフロード
サスペンドした仮想マシンの オフラインアップデート
SAccessor : デスクトップPCのための安全なファイルアクセス制御システム
KVMにおける仮想マシンの 内部監視機構の実装と性能評価
仮想マシン間にまたがる プロセススケジューリング
Xenによる ゲストOSの監視に基づく パケットフィルタリング
仮想計算機を用いて OSを介さずに行う安全な ファイルアクセス制御
セキュリティ機構のオフロードを考慮した 仮想マシンのスケジューリング
分散IDSの実行環境の分離 による安全性の向上
VMのメモリ暗号化によるクラウド管理者への情報漏洩の防止
VMのメモリ暗号化による クラウド管理者への情報漏洩の防止
VM専用仮想メモリとの連携による VMマイグレーションの高速化
IaaS型クラウドにおける インスタンス構成の動的最適化手法
リモートホストの異常を検知するための GPUとの直接通信機構
シャドウデバイスを用いた 帯域外リモート管理を継続可能なVMマイグレーション
実行時情報に基づく OSカーネルのコンフィグ最小化
仮想メモリを用いた VMマイグレーションの高速化
複数ホストに分割されたメモリを用いる仮想マシンの監視機構
仮想計算機を用いたサーバ統合に おける高速なリブートリカバリ
クラウドにおけるIntel SGXを用いた VMの安全な監視機構
IaaS環境におけるVMのメモリ暗号化による情報漏洩の防止
クラウドにおけるVMリダイレクト攻撃を防ぐためのリモート管理機構
クラウドにおけるVM内コンテナを用いた 自動障害復旧システムの開発
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
クラウドにおけるVM内コンテナを用いた 低コストで迅速な自動障害復旧
Intel SGXを利用する 巨大なアプリケーションの マイグレーション機構
仮想マシンを用いた 既存IDSのオフロード
Intel SGXを用いた仮想マシンの 安全な監視機構
軽量な仮想マシンを用いたIoT機器の安全な監視
複数ホストにまたがって動作する仮想マシンの障害対策
セキュリティ機構のオフロード時の 性能分離
VMMのソフトウェア若化を考慮した クラスタ性能の比較
信頼できないクラウドにおける仮想化システムの監視機構
仮想環境を用いた 侵入検知システムの安全な構成法
Cell/B.E.のSPE Isolationモードを用いた監視システム
仮想マシンの監視を継続可能なマイグレーション機構
仮想マシンと物理マシンを一元管理するための仮想AMT
仮想マシンに対する 高いサービス可用性を実現する パケットフィルタリング
Cell/B.E. のSPE上で動作する 安全なOS監視システム
VMリダイレクト攻撃を防ぐための 安全なリモート管理機構
ゼロコピー・マイグレーションを 用いた軽量なソフトウェア若化手法
強制パススルー機構を用いた VMの安全な帯域外リモート管理
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
複数ホストにまたがるVMの 高速かつ柔軟な 部分マイグレーション
複数ホストにまたがるVMの メモリ使用状況に着目した高速化
Virtual Machine Introspectionを可能にするVMCryptの拡張 田所秀和 光来健一 (九州工業大学)
強制パススルー機構を用いた VMの安全な帯域外リモート管理
管理VMへの キーボード入力情報漏洩の防止
Presentation transcript:

VMマイグレーションを可能にするIDSオフロード機構 九州工業大学   宇都宮 寿仁  光来 健一

侵入検知システム(IDS) IDSは攻撃者の侵入を検知するために用いられる IDSへの攻撃が増加 ストレージ、メモリ、ネットワークの監視 例:Tripwire 勝手に追加、変更されたファイルを検出 検出後管理者に通知する IDSへの攻撃が増加 侵入の検知ができなくなる 攻撃者 ホスト 停止 検出 IDS 年々サーバへの不正アクセスが増加している。 このような不正アクセスへの対抗手段として侵入検知システム IDS が用いられている。 IDSは攻撃者の侵入を検知するために用いられており、攻撃者が侵入して来たのを検出し通知してくれます IDSはストレージ、メモリ、ネットワークを監視します。 IDSの例としてTripwireを挙げる。Tripwireは攻撃者によって勝手に追加、変更されたファイルを検出する。 検出された場合にはただちに管理者へと通知してくれる。 しかし近年攻撃者の攻撃方法が変わり、IDSを攻撃して動作を停止させます。 その後ホスト自身へと攻撃を行い被害を与えてきます。 被害

VMを用いたIDSのオフロード IDSを別の仮想マシン(VM)で動かす手法 IDSが攻撃されにくくなる Xenを用いた場合 ドメインUでそれ以外を動かす IDSが攻撃されにくくなる IDSを動かすVMには侵入が  難しい 攻撃を受けやすいサービス を動かさないため 攻撃者 ホスト VM [ドメイン0] VM [ドメインU] サービス そこでIDSを攻撃されない手段の一つとして仮想マシンを用いたIDSのオフロードという手法が提案されています。 IDSを別の仮想マシンで動作させ、サービスを展開している仮想マシンを監視するもの。 本研究では仮想化ソフトウェアXenを用いて行う。 Xenではドメイン0でIDSを動かし、ドメインUでそれ以外を動かす。 たとえサービスを提供しているマシンに侵入されてもIDSは別の仮想マシンで稼働しているので攻撃されにくく、 また、IDSを動作させているVM は外部との通信を極力なくしているため、攻撃を受けにくいので安全に監視を行うことができる。 またVM の利点としてマイグレーションという機能がある。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ IDSが攻撃されにくい→難しくなるように設定している IDS

VMのマイグレーション 別のホストにVMを移動することができる マイグレーション先でサービスを継続できる マイグレーションする直前の状態から再開 ホスト1 ホスト2 マイグレーションとは別のホストへVM を移動させる機能。 例えば時間帯によって負荷が高くなるVM をマイグレーションさせることで負荷を分散させることができる。 また物理マシンのメンテナンスを行う際にマイグレーションを用いることで、 マイグレーション直前の状態から再開することができるのでサービスを継続したままメンテナンスを行うことができる。 ドメインU サービス

オフロード時のマイグレーションの問題 オフロードしたIDSがマイグレーションできな い ドメイン0はマイグレーションできない ドメイン0はマシン全体を管理 ドメイン0のデバイスは仮想化されていない IDSがドメインUを監視できなくなる ホスト1 ホスト2 しかしIDSオフロードをした際にIDSがマイグレーションできない問題がある Xenにおいてドメイン0にIDSオフロードを行う、しかしドメイン0はマシン全体を管理し、デバイスを仮想化できていないためマイグレーションを行うことができない。 そのためマイグレーションを行うと監視すべきドメインのみがマイグレーションされIDSをオフロードしたドメインがマイグレーションされないのでセキュリティが低下してしまう。 ドメイン0 IDS ドメインU

提案:ドメインM マイグレーション可能なIDSオフロード専用の VM 指定したドメインUを監視できる 監視を継続したままマイグレーション可能 ストレージ、メモリ 監視を継続したままマイグレーション可能 ドメインUと一緒にマイグレーションできる そこでマイグレーション可能なIDSオフロード専用 VM としてドメイン M を提案する。 ドメインM は指定したドメインUのストレージやメモリを監視することができる。 またドメインM はドメインUの監視を継続したままマイグレーションすることができ、マイグレーション後も監視を継続することができる。 ホスト1 ホスト2 ドメイン0 ドメインU ドメインM IDS

ドメインUのストレージ監視 NFSサーバ上に仮想ディスクイメージを配置 ドメイン0はこのディスクイメージを使ってドメ インUを起動 ドメインMもNFSをマウントすることでドメインU のストレージを監視 ディスクの整合性を保つために読み込み専用でマウン ト NFSサーバ ホスト1 ドメインUのストレージ監視方法としてNFSサーバを利用します。 NFSサーバ上にドメインUの仮想ディスクイメージを配置します。 ドメイン0はNFSサーバをマウントし、このディスクイメージを使ってドメインUを起動する。 ドメインMは整合性を保つために読み取り専用でNFSサーバをマウントし、ドメインUのストレージを監視する。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ドメイン0に仮想ディスクイメージを置いたのではドメインMがマウントできないため なんでNFSサーバを用いているの? 何か理由があったはず・・・? ほかのシステムだと性能は?セキュリティは? NFSサーバは信頼するものとしておかねばならない マウント ドメイン0 ドメインU ドメインM ドメインUディスクイメージ

マイグレーション後のストレージ監視 ドメインMのマイグレーション後もドメインU のストレージを監視可能 ドメインMにおけるNFSマウントを継続できる ドメインMのIPアドレスは変わらないため ホスト1 ホスト2 またマイグレーションを行った際にもドメインUのストレージ監視の継続は可能で ドメインMのNFSサーバマウントはマイグレーションした際もドメインMのIPアドレスは変わらないため継続可能である。 ドメインU ドメインM NFSサーバ ドメインUディスク イメージ

ストレージ監視の例 ドメインMでTripwireを動作させる ドメインUのストレージを/mnt/domにマウント ホスト1 NFSサーバ ドメインU ドメインM チェック ストレージの監視の例としてTripwireを挙げる。 ドメインUのストレージをドメインMの/mnt/domにマウントする。 ドメインMのカーネルがドメインUのストレージのファイルシステムを解釈してくれる。 次にデータベースを作成を作成する。 このデータベースは正常時のドメインUのストレージの内容が保存されている。 このデータベースを基にドメインUのストレージの整合性をチェックする。 !!!!!!!!!!!!!!!説明加える!!!!!!!!!!!!!!!!! みているもの(ハッシュ値 ファイルサイズ ファイルタイプ パーミッション uid)etc  データベース マウント

ドメインUのメモリ監視 ドメインMにドメインUのメモリページをマッ プ 例:ドメインUのOSカーネルの監視 カーネルチェッカを用いて行う 定期的に実行中のカーネルのハッシュ値を計算し、改 ざんを検出 ドメインU ドメインM OSカーネル IDS ドメインUのメモリ監視方法について説明します。 ドメインMにドメインUのメモリページをマップすることでドメインMから監視を行うことができる。 マップとはドメインM のメモリにアクセスしたときにドメインU のメモリにアクセスすることができるものである メモリページをマップして行う監視の例としてOSカーネルの監視を挙げる。 ここではカーネルチェッカを用いて行います。 ドメインUのカーネルのテキスト領域をドメインMにマップする。 あらかじめ正常状態のカーネルのハッシュ値を計算しておき、実行中のカーネルのハッシュ値を定期的に計算し二つを比べて改ざんを検出する

ドメインUへのアクセスを許可 ドメインMにドメインUへのアクセス許可を与 える 従来、ドメイン0しかドメインUにアクセスできな かった VM間の隔離のため ドメイン0からアクセス許可を与える ドメインMがドメインUにアクセス可能に VM間の隔離は維持できる ドメイン0 ドメインU ドメインM ドメインMにドメインUのメモリをマップさせるためにはドメインUへのアクセス権を与える必要がある。 従来だと、各ドメインを干渉させないようにドメイン0からしかドメインUへのアクセスを行うことができなかった。 スタブドメインを元にドメインMを実装することでドメインUへのアクセスを可能にした スタブドメインは指定されたドメインUにアクセスできるVM のことである。 アクセスするドメインU はドメイン0によって指定することができる。

メモリ操作インターフェースの追加 privcmdの利用をドメインMにも許可 ドメインMにdomctlハイパーコールの実行を許 可 Linuxカーネルにサポートを加える ドメインMにdomctlハイパーコールの実行を許 可 ドメインUのメモリ情報を取得できる ドメイン0 ドメインU ドメインM IDS IDS マップ マップ 従来のマップ方法はprivcmd というインターフェースを用いてドメインUのメモリページをマップする。 domctl ハイパーコールを用いてドメインUのメモリページ情報を取得していた しかしドメインMにはprivcmd の利用ができなかった。 そこでLinux カーネルにサポートを加えることでドメインMにもprivcmd の利用を許可した。 またdomctl ハイパーコールはドメイン0にしか利用を許可されていないため、メモリページを取得するためのハイパーコールをドメインM にも使用する許可を与えた。 privcmd privcmd domctl VMM

メモリ監視中のマイグレーション メモリマップを保持したままドメインMのマ イグレーションを行う ドメインUのメモリマップ情報も一緒に送信 従来はメモリマップ状態は考慮されていなかった マップされていない状態で再開 ホスト1 ホスト2 ドメインU ドメインM メモリマップを保持したままドメインMのマイグレーションを行います。 従来はメモリマップを行ったままのマイグレーションは考慮されていなかったため、 マイグレーション後はマップされていない状態で再開されていた。 そのためドメインUのメモリマップの情報も一緒に送信することで解決した。

ドメインMの保存 ドメインUのメモリマップ状態も一緒に保存 ページテーブル・エントリにDomUビットを追加 ページテーブルの保存によりマップ状態も保存さ れる ドメイン0 ドメインU ドメインM マイグレーションの際にはまずドメインを保存します。 ドメインM を保存する際にドメインUのメモリマップ状態も一緒に保存することにした ドメインを保存するときにはメモリイメージとして保存する。 ドメインM のページテーブルにDomUビットを追加してドメインUのマップ状態を知らせる。 保存時にドメインUのメモリページをマップしていた場合にはDomU ビットを立てる。 その際にはドメインU のメモリページ番号も保持される。 この後ページテーブルを保存することでメモリマップ状態も保存される。

ドメインMの復元 ドメインUのメモリマップ状態を復元 ページテーブル・エントリのDomUビットを チェック ドメイン0がドメインUのメモリをドメインMに マップできるように修正 従来は許可されていなかった ドメイン0 ドメインU ドメインM 復元の際にはページテーブル・エントリ上に存在するDomU ビットをチェックする。 DomU ビットが立っていれば対応するドメインUのメモリをマップし監視を継続する。 またドメイン0によってドメインUのメモリをドメインM にマップできなければならないのだが、従来のVMMではこのようなメモリマップを想定していなかったため ドメインM のページテーブル登録に失敗する。 そこでページテーブル登録のチェックを修正することでドメイン0からメモリマップの設定が可能に

監視するドメインUの特定 UUIDを用いてマイグレーション前に監視して いたドメインUを見つける ドメインMのコンフィグから監視するドメインU のUUIDを取得 再びドメインMに監視する権限を与える ホスト1 ホスト2 マイグレーション後復元した際にドメインMはどのドメインUを監視していたかが分からなくなってしまいます。 そこで監視していたドメインを発見するためにuuidを用いました。 UUIDは各ドメインそれぞれが固有でもつものであり、マイグレーション後も変化がすることがない そのためマイグレーション前に監視対象のドメインUのUUID をドメインM のコンフィグに保存しておき マイグレーション後、保存されていたUUIDを元に監視対象のドメイン探しだし、再び監視する権限を与えます。 !!!!!!!!!!!!説明を加える!!!!!!!!!!!!!!!! ドメイン0 ドメインU ドメインM ドメイン0 IDS uuid

実験 ドメインMによるストレージ監視およびメモ リ監視における性能への影響を調べた ドメインMにオフロードしたIDSの実行性能 実験機器の詳細 Xen4.0.1 CPU Intel Core 2 Quad 2.83GHz メモリ 4GB ネットワーク ギガビットイーサネット ドメイン0、ドメインU、ドメインMについて Linuxカーネル 2.6.32.25 メモリ 4GB 512MB 512MB NFSサーバ CPU Intel Xeon X5640 3.16GHz メモリ 32GB SATA16TB RAID5 ネットワーク ギガビットイーサネット Open-E OS ドメインM のストレージ監視及びメモリ監視における実験を行った。 ドメインM にオフロードしたIDSの実行性能とドメインM のマイグレーション時のオーバーヘッドを調べました 実験機器の詳細は以下の通り

実験1:ストレージの監視の性能 オフロードしたTripwireの実行時間を測定 実験結果 ドメイン0とドメインMからそれぞれ実行 ドメインMはネットワークが仮想化されているため、 NFSサーバへのアクセスに時間がかかるため ストレージ監視のIDSとしてTripwire を用いる ドメイン0及びドメインM からのそれぞれ実行時間を測定。 実験結果としてドメイン0からは4.5秒、ドメインM からは18.9秒かかりドメインM から実行すると時間がかかるということが分かった。 この原因としてドメインM はネットワークが仮想化されているため、NFSサーバへのアクセスの際にネットワークアクセスがドメイン0を経由するので時間がかかると考えられる。 必要最低限のファイルしかないため短い時間で終わっているが、実際はもっとファイル数があるため実行時間は長くなってしまう ~~~~~~~~~~~~~~~~~~~~~~~ ディスクサイズは4GB 10270ファイルのスキャン スキャン内容はドメインU のファイルすべてのプロパティをチェック Tripwireの実行時間[秒] ドメイン0 4.5 ドメインM 18.9

実験2:ストレージ監視時の マイグレーション 実験2:ストレージ監視時の           マイグレーション ストレージ監視時のドメインMのマイグレー ション時間を測定 ドメインUのディスクイメージをNFSマウントし ている場合としていない場合を比較 実験結果 ストレージ監視の有無はマイグレーション時間に 影響を与えない ドメインU のディスクをドメインM がマウントしている場合とマウントしていない場合とでのマイグレーション時間を測定した。 マイグレーションはドメインU ドメインM 一緒に行った。 実験結果としてマウントなしの場合92.6秒マウントありの場合92.3秒かかった マウントありのほうが若干速くなっているがこれは誤差の範囲と考えられ、NFSのマウントをしているかしていないかはマイグレーション時間に影響を与えないことが分かった。 マイグレーション時間[秒] NFSマウントなし 92.6 NFSマウントあり 92.3

実験3:メモリ監視の性能 オフロードしたカーネルチェッカの実行時間 を測定 実験結果 カーネルのテキスト領域のハッシュ値を計算 ドメイン0とドメインMからそれぞれ実行 実験結果 ドメインMから実行したほうが速くなる 原因の調査は今後の課題 ドメイン0からとドメインM からそれぞれカーネルチェッカを実行しその実行時間を計測した。 このカーネルチェッカはカーネルのテキスト領域のハッシュ値を計算するものである。 この計算を100回させてその1回あたりの時間を計測した 実験結果としてドメイン0からは239ミリ秒ドメインM からは135ミリ秒とドメインM から実行したほうが速くなることが分かった。 なぜドメインM から実行したほうが速くなるのかは不明で原因を調査は今後の課題となっています。 カーネルチェッカの実行時間[ミリ秒] ドメイン0 239 ドメインM 135

実験4:メモリ監視時のマイグレーション メモリ監視時のドメインMのマイグレーショ ン時間を測定 実験結果 ドメインUのメモリをマップしている場合とマッ プしていない場合を比較 実験結果 メモリマップの有無はマイグレーション時間に影 響しない ドメインU のメモリをマップしている場合としていない場合でのマイグレーション時間を測定した。 この時のマイグレーションはドメインU とドメインM 一緒に行っている。 実験結果としてメモリマップがない場合は92.6秒メモリマップがある場合は92.2秒かかった 若干メモリマップありのほうが速くなっているが誤差の範囲としてみられ、マイグレーション時間はメモリマップの有無にかかわらないとわかった。 マイグレーション時間[秒] メモリマップなし 92.6 メモリマップあり 92.2

関連研究 Livewire [Garfinkel et al. ‘03] スタブドメイン プロセスマイグレーション 仮想マシン外でIDSを動かし、仮想マシンを監視 マイグレーションは考慮されていない スタブドメイン ドメイン0の特権の一部を持つドメイン マップしたままマイグレーションはできない プロセスマイグレーション IDSプロセスのみをマイグレーションすることが 可能 ドメインUのストレージ監視やメモリ監視を継続 できない Livewire 仮想マシンの外でIDSを動かして仮想マシンを監視する マイグレーションが考慮されていないためマイグレーションを行うと監視の継続ができなくなってしまう。 スタブドメイン ドメイン0の特権の一部を持つドメイン メモリマップを行ったままマイグレーションを行うことができないため、こちらもマイグレーションを行うと監視の継続ができなくなってしまう。 プロセスマイグレーション IDSのプロセスのみをマイグレーションすることが可能でマイグレーションできる環境が限られる またドメインU のストレージ監視やメモリ監視の継続を行うことができない。

まとめ IDSをオフロードしたままマイグレーションを 行えるドメインMを提案した 今後の課題 ストレージとメモリの監視を実現 監視を継続したままマイグレーション可能 今後の課題 ドメインMからのネットワーク監視の実現 ストレージのアクセス制限 ライブマイグレーションへの対応 IDSをオフロードしたままマイグレーションを行えるオフロード専用VMドメインMを提案した 現在ストレージの監視とメモリの監視を実現している。 また、マイグレーションを行った後も監視の継続が可能となっている・ 今後の課題として ドメインMからのネットワーク監視が行えていないのでその実現 現在ドメインUのストレージに誰でもアクセスできてしまうので、ストレージにドメインM のみアクセスできるようにしてセキュリティの強化を行う。 ライブマイグレーションへの対応Xenにはマイグレーションのほかにも動作を停止させずにマイグレーションを行うライブマイグレーションがあり、 現状実行することができないのでライブマイグレーションへも対応させること