中村孝介(九州工業大学) 光来健一(九州工業大学/JST CREST) KVMにおける IDSオフロードの実現 中村孝介(九州工業大学) 光来健一(九州工業大学/JST CREST) ネットワークの見通しは? 物理アドレスは連続していないと読めなさそうだけどどういうふうになってるの? 物理アドレスとページ情報が必要じゃないの? ホストにオフロードする利点は? ホストにオフロードした分Xenには勝てそう? 負けそう・・・ 反省 知識が少ないから自信がなくちゃんとした説明が出来なかった
侵入検知システム(IDS) IDSは攻撃者の侵入を検知するシステム 攻撃者により改竄・停止させられる可能性がある 監視対象 ディスク、メモリ、ネットワーク 攻撃者により改竄・停止させられる可能性がある 侵入を検知できなくなる IDS 改竄・停止 検知 監視 ディスクとかを消さない 近年、インターネットに接続されたホストへの攻撃に対抗する手段としてIDSが用いられている IDSはディスクメモリネットワークのパケットを監視することで攻撃者の侵入の予兆を検知し管理者に伝える しかし、IDSが侵入した攻撃者を検知するよりも先に改ざん停止させられる可能性があり、IDSが侵入を検知できなくなる ディスク メモリ ネットワーク 攻撃者
仮想マシンによるIDSオフロード IDSと監視対象VMを別々のVM上で動作させる IDS自身が攻撃を受けにくくなる 外部へのサービスを提供しない VM VM IDS 監視 検知 このIDSへの攻撃に対抗する手法として仮想マシンによるIDSオフロードという手法が用いられている これはIDSと監視対象VMを別々のVM上で動作させる手法である これにより攻撃者が監視対象VMに侵入してきてもIDSは別のVM上で動作しているので攻撃されることなく検知することができる IDSを動作させるVMへの侵入は外部へのサービスを提供しないことで侵入が困難になるように運用する 攻撃 ディスク メモリ ネットワーク 攻撃者
KVMの普及 Linuxベースの仮想マシンとしてKVMが普及してきて いる LinuxにXenよりも先にマージされた(2.6.20) RedHat、IBM、HPらがKVM採用促進コンソーシアムを設立 NTTコム、さくらレンタルサーバらがKVMを用いたサービスを 提供 KVMとXenのシェア KVMの重要性 ニュースなどからデータセンタの適用率 Xen(2007/10/9) 約8年フル(2011) KVM(2007/2/5) RedHatがXenからのマイグレーションをサポート http://www.plathome.co.jp/solution/virtualserver/introduction/04.html
KVMにおけるIDSオフロード ? KVMでIDSオフロードは実現されていない IDSオフロードの研究は主にXenを用いて行われてきた KVMはアーキテクチャがXenとは異なる Linuxカーネル内で仮想マシンモニタを動作 QEMUを使用しVMをホストOSの1つのプロセスとして管理 ドメイン0 ドメインU VM VM ? IDS Xenとの違いを踏まえながら IDS 通常の プロセス ディスク メモリ ネットワーク 監視 QEMU QEMU Xen(VMM) Linuxカーネル(ホストOS) KVM
提案:KVMonitor KVMでIDSオフロードを実現するシステム IDSをホストOS上のプロセスとして実行する IDSがVMのディスクとメモリを監視 VMとIDSへの統一的なCPU・メモリ制限 一定のリソースを保証 VM IDS QEMU 通常の プロセス 安全性はKVMが弱そう?(比較) メモリ ディスク 監視 Linuxカーネル(ホストOS) KVM
ディスクの監視 ホストOSにVMのディスクをマウントすることで監視 qcow2形式は直接マウントできない qemu-nbdを経由することで仮想的にブロックデバイスとし て見せる IDS(Tripwire) VM 監視 ブロック デバイス NBD経由で見てるような図 ディスク イメージ (qcow2) qemu-nbd ホストOS
メモリの監視 VMの物理メモリをIDSの仮想メモリ上にマップ QEMUにメモリ用ファイルをメモリとして使わせる mmapを用いてメモリマップする QEMUがファイルを削除しないように修正 従来はオープンした後に削除していた IDSもメモリ用ファイルをマップして参照する IDS VM 監視 Hugetlbfsによって性能向上するの? ページフォールトが起きると2MB探索したことに QEMU マップ マップ VM物理 メモリ VM物理 メモリ メモリ用 ファイル ホストOS
メモリアドレスの変換 QEMUと通信して仮想アドレスを物理アドレスに変換 VM内部の変数等は仮想アドレスだけが分かっている IDSがアクセスできるのは物理アドレスである QEMUにxaddrコマンドを追加し、QMPを使って通信 VM IDS QMP QEMU 監視 xaddr VM物理 メモリ ページ テーブル ホストOS
IDSオフロードを考慮したリソース管理 VMとIDSをグループ化してCPUとメモリを割り当て LinuxのCgroupsを用いてグループ化 KVMではVMもプロセス グループ内ではリソースを融通し合える CPU:50% CPU:50% VM IDS QEMU ホストOS
ディスク監視手法の比較 KVMonitorでは Xenでは qemu-ndb経由でマウントする qcow2形式はディスクイメージを小さくできる Xenでは 主にraw形式を使用するため直接マウントできる ディスクアクセスが速い qcow2形式を使用すればKVMonitorと同様 VM ドメイン0 ドメインU KVM図 qcowの特徴 ディスクイメージ (raw) ディスクイメージ (raw) ブロック デバイス ディスク イメージ (qcow2) qemu-nbd Xen(VMM) ホストOS
メモリ監視手法の比較 KVMonitorでは Xenでは メモリ用ファイルをマップしQEMUがアドレス変換 QEMUとの通信に時間がかかる メモリページを直接マップし、自力でアドレス変換 ページテーブルを何度もマップする必要がある ドメイン0 ドメインU IDS VM QMP アドレス 変換 IDS アドレス空間 監視 ページ テーブル QEMU KVM図 物理アドレスを含むメモリページをIDSのアドレス空間にマップ ページテーブルのメモリページもアクセスするたびにマップする必要がある xaddr VM物理 メモリ メモリ ページ ページ テーブル メモリ用 ファイル ホストOS Xen(VMM)
リソース管理手法の比較 KVMonitorでは Xenでは Cgroupsを使ってIDSとVMをグループ化 標準機能で実現可能 VMMやドメイン0のOSに機能を追加[新井ら’10][内田ら’11] CPUの上限も設定可能 ドメイン0 ドメインU VM IDS IDS QEMU ホストOS Xen(VMM)
実験:Tripwireによる監視 Tripwireによるディスクの検査にかかる時間を比較し た オフロードした方が実行時間が長くなった NBD経由のためファイルアクセスに時間がかかることが原因 実験環境 ホストOS ・Intel Xeon 2.53GHz ・メモリ 6GB VM ・ディスク 30GB ・メモリ 512MB グラフを0基点に
実験:システムコールテーブルの監視 ホストOSからVMのカーネルメモリ上にあるシステム コールテーブルを監視する時間を測定した システムコールテーブルを読み出すIDSを1000回実行 ほとんどの時間はアドレス変換に費やされている グラフを0基点に
実験:CPUにおける性能分離 IDSとVMのグループに対してCPU使用率の下限が設 定できていることを確認 IDSとしてTripwireを使用しVMとホストOSで無限ループを行 うプログラムを実行 CPUの割合を40:60とした /dev/cgroup 40% 60% Group1 Group2 Tripwire loop VM (loop)
実験結果 Group1のCPU使用率は設定した40%でほぼ一定し ており制御できている Group1 Group2 Tripwire loop VM (loop)
関連研究 VMwatcher [Xuxian et al.’07] リソースプール VMware、Xen、QEMU、UMLで実装 ディスクとメモリの監視を行う QEMUでの実装はKVMでも適用できる可能性あり アドレス変換はゲストOSのページテーブルを参照する KVMonitorではQEMUに行わせることでアーキテクチャ依存度を減 らしている リソースプール VMwareでVMをグループ化しCPU・メモリの制御を行う プロセスをグループ化することはできない KVMonitorではVMとプロセスをグループ化できる
まとめ KVMにおけるIDSオフロードを実現するシステム KVMonitorを提案 今後の課題 仮想ディスクをマウントできる形式に変更してディスクの監視 ファイルをメモリとして使いメモリの監視 Linux既存のCgroupsを使用しCPUとメモリの制限 今後の課題 ネットワークIDSへの対応 Xenとの定量的な性能比較