slide - KSL

VMマイグレーションを可能にす
るIDSオフロード機構
九州工業大学
宇都宮 寿仁
光来 健一
侵入検知システム(IDS)

IDSは攻撃者の侵入を検知するために用いられる
 ストレージ、メモリ、ネットワークの監視
 例:Tripwire
 勝手に追加、変更されたファイルを検出
攻撃者
 検出後管理者に通知する

IDSへの攻撃が増加
 侵入の検知ができなくなる
ホス
ト
IDS
停止
被害
検出
VMを用いたIDSのオフロード

IDSを別の仮想マシン(VM)で動かす手法
 Xenを用いた場合
 ドメイン0でIDSを動かす
攻撃者
 ドメインUでそれ以外を動かす

IDSが攻撃されにくくなる
 IDSを動かすVMには侵入が
難しい
ホス
ト
 攻撃を受けやすいサービス
を動かさないため
VM
[ドメイン
0]
サービ
ス
IDS
VM
[ドメイン
U]
VMのマイグレーション

別のホストにVMを移動することができる
 不可の高いVMを移動させることで負荷分散
 VMを移動させてから物理マシンをメンテナンス

マイグレーション先でサービスを継続できる
 マイグレーションする直前の状態から再開
ホスト1
サービ
ス
ドメインU
ホスト2
オフロード時のマイグレーションの
問題

オフロードしたIDSがマイグレーションできな
い
 ドメイン0はマイグレーションできない
 ドメイン0はマシン全体を管理
 ドメイン0のデバイスは仮想化されていない
 IDSがドメインUを監視できなくなる
ホスト1
IDS
ドメイン0
ドメインU
ホスト2
提案:ドメインM

マイグレーション可能なIDSオフロード専用の
VM
 指定したドメインUを監視できる
 ストレージ、メモリ
 監視を継続したままマイグレーション可能
 ドメインUと一緒にマイグレーションできる
ホスト1
ホスト2
IDS
ドメイン
0
ドメイン
U
ドメイン
M
ドメインUのストレージ監視

NFSサーバ上に仮想ディスクイメージを配置
 ドメイン0はこのディスクイメージを使ってドメ
インUを起動
 ドメインMもNFSをマウントすることでドメインU
のストレージを監視
 ディスクの整合性を保つために読み込み専用でマウン
ト
NFSサーバ
ホスト1
マウン
ト
ドメイン
0
ドメイン
U
ドメイン
M
ドメイ
ンUディ
スクイ
メージ
マイグレーション後のストレージ
監視

ドメインMのマイグレーション後もドメインU
のストレージを監視可能
 ドメインMにおけるNFSマウントを継続できる
 ドメインMのIPアドレスは変わらないため
ホスト1
ホスト2
NFSサーバ
ドメイン
U
ドメイン
M
ドメイン
Uディス
ク
イメージ
ストレージ監視の例

ドメインMでTripwireを動作させる
 ドメインUのストレージを/mnt/domにマウント
 ドメインMのカーネルがファイルシステムを解釈
 定期的に/mnt/dom以下のファイルを検査
 あらかじめドメインM上に整合性データベースを作成
ホスト1
NFSサーバ
チェッ
ク
データ
ベース
ドメインU
ドメインM
マウン
ト
ドメインUのメモリ監視

ドメインMにドメインUのメモリページをマッ
プ
 例:ドメインUのOSカーネルの監視
 カーネルチェッカを用いて行う
 定期的に実行中のカーネルのハッシュ値を計算し、改
ざんを検出
OSカーネル
IDS
ドメインU
ドメインM
ドメインUへのアクセスを許可

ドメインMにドメインUへのアクセス許可を与
える
 従来、ドメイン0しかドメインUにアクセスできな
かった
 VM間の隔離のため
 ドメイン0からアクセス許可を与える
 ドメインMがドメインUにアクセス可能に
 VM間の隔離は維持できる
ドメイン0
ドメインU
ドメインM
メモリ操作インターフェースの追
加

privcmdの利用をドメインMにも許可
 Linuxカーネルにサポートを加える

ドメインMにdomctlハイパーコールの実行を許
可
 ドメインUのメモリ情報を取得できる
ドメイン
ドメイン
ドメイン
U
M
0
IDS
IDS
マップ
マップ
privcmd
privcmd
domctl
VMM
メモリ監視中のマイグレーショ
ン

メモリマップを保持したままドメインMのマ
イグレーションを行う
 ドメインUのメモリマップ情報も一緒に送信
 従来はメモリマップ状態は考慮されていなかった
 マップされていない状態で再開
ホスト1
ドメインU
ドメインM
ホスト2
ドメインMの保存

ドメインUのメモリマップ状態も一緒に保存
 ページテーブル・エントリにDomUビットを追加
 ドメインUのメモリページをマップしていればビット
を立てる
 マップしているドメインUのメモリページ番号も保持
 ページテーブルの保存によりマップ状態も保存さ
れる
ドメイン0
ドメインU
ドメインM
ドメインMの復元

ドメインUのメモリマップ状態を復元
 ページテーブル・エントリのDomUビットを
チェック
 ビットが立っていれば対応するドメインUのメモリを
マップ
 ドメイン0がドメインUのメモリをドメインMに
マップできるように修正
 従来は許可されていなかった
ドメイン0
ドメインU
ドメインM
監視するドメインUの特定

UUIDを用いてマイグレーション前に監視して
いたドメインUを見つける
 ドメインMのコンフィグから監視するドメインU
のUUIDを取得
 再びドメインMに監視する権限を与える
ホスト1
ホスト2
IDS
ドメイン
0
ドメイン
U
uuid
ドメイン
M
ドメイン
0
実験

ドメインMによるストレージ監視およびメモ
リ監視における性能への影響を調べた
 ドメインMにオフロードしたIDSの実行性能
 ドメインMのマイグレーションのオーバヘッド
実験機器の詳細
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
実験1:ストレージの監視の性
能

オフロードしたTripwireの実行時間を測定
 ドメイン0とドメインMからそれぞれ実行

実験結果
 ドメインMから実行したほうが時間がかかる
 ドメインMはネットワークが仮想化されているため、
NFSサーバへのアクセスに時間がかかるため
Tripwireの実行時間[秒]
ドメイン0
4.5
ドメインM
18.9
実験2:ストレージ監視時の
マイグレー
ション

ストレージ監視時のドメインMのマイグレー
ション時間を測定
 ドメインUのディスクイメージをNFSマウントし
ている場合としていない場合を比較

実験結果
 ストレージ監視の有無はマイグレーション時間に
影響を与えない
マイグレーション時間[秒]
NFSマウントなし
92.6
NFSマウントあり
92.3
実験3:メモリ監視の性能

オフロードしたカーネルチェッカの実行時間
を測定
 カーネルのテキスト領域のハッシュ値を計算
 ドメイン0とドメインMからそれぞれ実行

実験結果
 ドメインMから実行したほうが速くなる
 原因の調査は今後の課題
カーネルチェッカの実行時間[ミリ秒]
ドメイン0
239
ドメインM
135
実験4:メモリ監視時のマイグレー
ション

メモリ監視時のドメインMのマイグレーショ
ン時間を測定
 ドメインUのメモリをマップしている場合とマッ
プしていない場合を比較

実験結果
 メモリマップの有無はマイグレーション時間に影
響しない
マイグレーション時間[秒]
メモリマップな
し
92.6
メモリマップあ
り
92.2
関連研究

Livewire [Garfinkel et al. ‘03]
 仮想マシン外でIDSを動かし、仮想マシンを監視
 マイグレーションは考慮されていない

スタブドメイン
 ドメイン0の特権の一部を持つドメイン
 マップしたままマイグレーションはできない

プロセスマイグレーション
 IDSプロセスのみをマイグレーションすることが
可能
 ドメインUのストレージ監視やメモリ監視を継続
できない
まとめ

IDSをオフロードしたままマイグレーションを
行えるドメインMを提案した
 ストレージとメモリの監視を実現
 監視を継続したままマイグレーション可能

今後の課題
 ドメインMからのネットワーク監視の実現
 ストレージのアクセス制限
 ライブマイグレーションへの対応