中村孝介(九州工業大学) 光来健一(九州工業大学/JST CREST) IDSは攻撃者の侵入を検知するシステム ◦ 監視対象 ディスク、メモリ、ネットワーク 攻撃者により改竄・停止させられる可能性がある ◦ 侵入を検知できなくなる IDS 監視 ディスク メモリ ネットワーク 改竄・停止 検知 攻撃者 IDSと監視対象VMを別々のVM上で動作させる ◦ IDS自身が攻撃を受けにくくなる IDSを動作させる仮想マシンへの侵入は困難 外部へのサービスを提供しない VM VM IDS 監視 検知 攻撃 ディスク メモリ ネットワーク 攻撃者 Linuxベースの仮想マシンとしてKVMが普及してきて いる ◦ LinuxにXenよりも先にマージされた(2.6.20) Xenは2.6.23で一部マージ、3.0で完全にマージ ◦ RedHat、IBM、HPらがKVM採用促進コンソーシアムを設立 ◦ NTTコム、さくらレンタルサーバらがKVMを用いたサービスを 提供 KVMでIDSオフロードは実現されていない ◦ IDSオフロードの研究は主にXenを用いて行われてきた KVMに適用できるかは不明であった ◦ KVMはアーキテクチャがXenとは異なる Linuxカーネル内で仮想マシンモニタを動作 QEMUを使用しVMをホストOSの1つのプロセスとして管理 VM 通常の プロセス ? VM IDS ドメイン0 IDS 監視 QEMU Linuxカーネル(ホストOS) QEMU KVM ドメインU ディスク メモリ ネットワーク Xen(VMM) KVMでIDSオフロードを実現するシステム ◦ IDSをホストOS上のプロセスとして実行する IDSを攻撃から守る ◦ IDSがVMのディスクとメモリを監視 ◦ VMとIDSへの統一的なCPU・メモリ制限 VM 一定のリソースを保証 IDS QEMU メモリ 通常の プロセス 監視 Linuxカーネル(ホストOS) ディスク KVM ホストOSにVMのディスクをマウントすることで監視 ◦ qcow2形式は直接マウントできない ◦ qemu-nbdを経由することで仮想的にブロックデバイスとし て見せる IDS(Tripwire) VM 監視 ブロック デバイス qemu-nbd ホストOS ディスク イメージ (qcow2) VMの物理メモリをIDSの仮想メモリ上にマップ ◦ QEMUにメモリ用ファイルをメモリとして使わせる mmapを用いてメモリマップする QEMUがファイルを削除しないように修正 従来はオープンした後に削除していた ◦ IDSもメモリ用ファイルをマップして参照する IDS VM 監視 マップ VM物理 メモリ マップ メモリ用 ファイル ホストOS QEMU VM物理 メモリ QEMUと通信して仮想アドレスを物理アドレスに変換 ◦ VM内部の変数等は仮想アドレスだけが分かっている ◦ IDSがアクセスできるのは物理アドレスである ◦ QEMUにxaddrコマンドを追加し、QMPを使って通信 IDS QMP 監視 VM QEMU xaddr VM物理 メモリ ページ テーブル ホストOS VMとIDSをグループ化してCPUとメモリを割り当て ◦ LinuxのCgroupsを用いてグループ化 Cgroupsは複数のプロセスをグループ化しグループ単位での資 源管理を可能にする KVMではVMもプロセス ◦ グループ内ではリソースを融通し合える CPU:50% VM IDS QEMU ホストOS CPU:50% KVMonitorでは ◦ qemu-ndb経由でマウントする ◦ qcow2形式はディスクイメージを小さくできる Xenでは ◦ 主にraw形式を使用するため直接マウントできる ◦ ディスクアクセスが速い ◦ qcow2形式を使用すればKVMonitorと同様 VM ブロック デバイス qemu-nbd ホストOS ディスク イメージ (qcow2) ドメイン0 ドメインU ディスク イメージ (raw) ディスク イメージ (raw) Xen(VMM) KVMonitorでは ◦ メモリ用ファイルをマップしQEMUがアドレス変換 ◦ QEMUとの通信に時間がかかる Xenでは ◦ メモリページを直接マップし、自力でアドレス変換 ◦ ページテーブルを何度もマップする必要がある IDS QMP 監視 VM QEMU ドメイン0 IDS アドレス空間 アドレス 変換 xaddr VM物理 メモリ メモリ用 ファイル ホストOS ドメインU ページ テーブル メモリ ページ ページ テーブル Xen(VMM) KVMonitorでは ◦ Cgroupsを使ってIDSとVMをグループ化 ◦ 標準機能で実現可能 Xenでは ◦ VMMやドメイン0のOSに機能を追加[新井ら’10][内田ら’11] ◦ CPUの上限も設定可能 VM ドメイン0 ドメインU IDS IDS QEMU ホストOS Xen(VMM) Tripwireによるディスクの検査にかかる時間を比較し た ◦ オフロードした方が実行時間が長くなった NBD経由のためファイルアクセスに時間がかかることが原因 11 10 9.2 9.9 9 実験環境 ホストOS ・Intel Xeon 2.53GHz ・メモリ 6GB VM ・ディスク 30GB ・メモリ 512MB 8 実行時間(分) 7 6 5 4 3 2 1 0 オフロードなし オフロードあり ホストOSからVMのカーネルメモリ上にあるシステム コールテーブルを監視する時間を測定した ◦ システムコールテーブルを読み出すIDSを1000回実行 ◦ ほとんどの時間はアドレス変換に費やされている 1.6 1.4 1.5 1.3 1.2 実行時間(ミリ秒) 1 0.8 0.6 0.4 0.2 0 アドレス変換 システムコールテーブル読み出し IDSとVMのグループに対してCPU使用率の下限が設 定できていることを確認 ◦ IDSとしてTripwireを使用しVMとホストOSで無限ループを行 うプログラムを実行 ◦ CPUの割合を40:60とした /dev/cgroup 40% 60% Group1 Group2 Tripwire VM (loop) loop Group1のCPU使用率は設定した40%でほぼ一定し ており制御できている Group2 VM Tripwire Group1 70 60 Tripwire VM (loop) Group2 loop 50 CPU(%) Group1 40 30 20 10 0 0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 time(S) 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との定量的な性能比較
© Copyright 2024 ExpyDoc