kvm における ids オフロードの実現

19
KVM にににに IDS にににににににに 中中中中 中中中中中中中 () 中中中 中中中中中中 一( /JST CREST

Upload: katina

Post on 18-Mar-2016

51 views

Category:

Documents


0 download

DESCRIPTION

KVM における IDS オフロードの実現. 中村孝介(九州工業大学) 光来健一(九州工業大学 /JST CREST ). 侵入検知システム (IDS). IDS は攻撃者の侵入を検知するシステム 監視対象 ディスク、メモリ、ネットワーク 攻撃者により改竄・停止させられる可能性がある 侵入を検知できなくなる. IDS. 検知. 改竄・停止. 監視. ディスク メモリ ネットワーク. 攻撃者. 仮想マシンによる IDS オフロード. IDS と監 視対象 VM を別々の VM 上で動作させる IDS 自身が攻撃を受けにくくなる - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: KVM における IDS オフロードの実現

KVMにおけるIDSオフロードの実現

中村孝介(九州工業大学)光来健一(九州工業大学 /JST CREST )

Page 2: KVM における IDS オフロードの実現

IDS は攻撃者の侵入を検知するシステム◦ 監視対象

ディスク、メモリ、ネットワーク 攻撃者により改竄・停止させられる可能性がある

◦ 侵入を検知できなくなる

侵入検知システム (IDS)

IDS

攻撃者

検知改竄・停止

ディスクメモリネットワーク

監視

Page 3: KVM における IDS オフロードの実現

IDS と監視対象 VM を別々の VM 上で動作させる◦ IDS 自身が攻撃を受けにくくなる

IDS を動作させる仮想マシンへの侵入は困難 外部へのサービスを提供しない

仮想マシンによる IDSオフロード

攻撃者

監視

VM VM

IDS

攻撃検知ディスクメモリネットワーク

Page 4: KVM における IDS オフロードの実現

Linux ベースの仮想マシンとして KVM が普及してきている◦ Linux に Xen よりも先にマージされた (2.6.20)

Xen は 2.6.23 で一部マージ、 3.0 で完全にマージ◦ RedHat 、 IBM 、 HP らが KVM 採用促進コンソーシアムを設立◦ NTT コム、さくらレンタルサーバらが KVM を用いたサービスを提供

KVMの普及

Page 5: KVM における IDS オフロードの実現

KVM で IDS オフロードは実現されていない◦ IDS オフロードの研究は主に Xen を用いて行われてきた

KVM に適用できるかは不明であった◦ KVM はアーキテクチャが Xen とは異なる

Linux カーネル内で仮想マシンモニタを動作 QEMU を使用し VM をホスト OS の1つのプロセスとして管理

KVMにおける IDSオフロード

Xen(VMM)

ドメイン Uドメイン 0

KVM

通常のプロセス

Linux カーネル ( ホストOS)

QEMUQEMU

VM VM

IDS? IDS

ディスクメモリネットワーク監視

Page 6: KVM における IDS オフロードの実現

KVM で IDS オフロードを実現するシステム◦ IDS をホスト OS 上のプロセスとして実行する

IDS を攻撃から守る◦ IDS が VM のディスクとメモリを監視◦ VM と IDS への統一的な CPU ・メモリ制限

一定のリソースを保証

提案 :KVMonitor

KVM

通常のプロセス

Linux カーネル ( ホストOS)

監視

VM

IDS

ディスク

メモリQEMU

Page 7: KVM における IDS オフロードの実現

ホスト OS に VM のディスクをマウントすることで監視◦ qcow2 形式は直接マウントできない◦ qemu-nbd を経由することで仮想的にブロックデバイスとして見せる

ディスクの監視

VMIDS(Tripwire)

ホスト OS

監視

ブロックデバイスディスクイメージ( qcow2)

qemu-nbd

Page 8: KVM における IDS オフロードの実現

VM の物理メモリを IDS の仮想メモリ上にマップ◦ QEMU にメモリ用ファイルをメモリとして使わせる

mmap を用いてメモリマップする QEMU がファイルを削除しないように修正

従来はオープンした後に削除していた◦ IDS もメモリ用ファイルをマップして参照する

メモリの監視

ホスト OS

VM 物理メモリ VM 物理メモリメモリ用ファイル

QEMU

IDS

マップVM

マップ監視

Page 9: KVM における IDS オフロードの実現

QEMU と通信して仮想アドレスを物理アドレスに変換◦ VM 内部の変数等は仮想アドレスだけが分かっている◦ IDS がアクセスできるのは物理アドレスである◦ QEMU に xaddr コマンドを追加し、 QMP を使って通信

メモリアドレスの変換

ホスト OS

VM 物理メモリ

IDS

xaddr

QEMU

VMQMP

ページテーブル

監視

Page 10: KVM における IDS オフロードの実現

VM と IDS をグループ化して CPU とメモリを割り当て◦ Linux の Cgroups を用いてグループ化

Cgroups は複数のプロセスをグループ化しグループ単位での資源管理を可能にする KVM では VM もプロセス

◦ グループ内ではリソースを融通し合える

IDSオフロードを考慮したリソース管理

ホスト OS

QEMU

IDS

VM

CPU :50% CPU :50%

Page 11: KVM における IDS オフロードの実現

KVMonitor では◦ qemu-ndb 経由でマウントする◦ qcow2 形式はディスクイメージを小さくできる

Xen では◦ 主に raw 形式を使用するため直接マウントできる◦ ディスクアクセスが速い◦ qcow2 形式を使用すれば KVMonitor と同様

ディスク監視手法の比較

Xen(VMM)

ドメイン 0 ドメイン U

ディスクイメージ( raw)

ディスクイメージ( raw)ホスト OS

ブロックデバイスディスクイメージ( qcow2)

qemu-nbd

VM

Page 12: KVM における IDS オフロードの実現

KVMonitor では◦ メモリ用ファイルをマップし QEMU がアドレス変換◦ QEMU との通信に時間がかかる

Xen では◦ メモリページを直接マップし、自力でアドレス変換◦ ページテーブルを何度もマップする必要がある

メモリ監視手法の比較

Xen(VMM)

ドメイン 0 ドメイン U

メモリページ

ページテーブルIDSアドレス空間

アドレス変換

ホスト OS

IDS

xaddrQEMU

VMQMP

ページテーブル

監視

VM 物理メモリメモリ用ファイル

Page 13: KVM における IDS オフロードの実現

KVMonitor では◦ Cgroups を使って IDS と VM をグループ化◦ 標準機能で実現可能

Xen では◦ VMM やドメイン 0 の OS に機能を追加 [ 新井ら’ 10][ 内田ら’ 11]◦ CPU の上限も設定可能

リソース管理手法の比較

Xen(VMM)

IDS

ドメイン0

ドメインU

ホスト OS

QEMU

IDS

VM

Page 14: KVM における IDS オフロードの実現

Tripwire によるディスクの検査にかかる時間を比較した◦ オフロードした方が実行時間が長くなった

NBD 経由のためファイルアクセスに時間がかかることが原因

実験: Tripwireによる監視

実験環境ホスト OS・ Intel Xeon 2.53GHz・メモリ 6GBVM・ディスク 30GB・メモリ 512MB

オフロードなし オフロードあり0123456789

1011

9.29.9

実行時間(分)

Page 15: KVM における IDS オフロードの実現

ホスト OS から VM のカーネルメモリ上にあるシステムコールテーブルを監視する時間を測定した◦ システムコールテーブルを読み出す IDS を 1000 回実行◦ ほとんどの時間はアドレス変換に費やされている

実験 :システムコールテーブルの監視

アドレス変換 システムコールテーブル読み出し0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.3

1.5実行時間(ミリ秒)

Page 16: KVM における IDS オフロードの実現

IDS と VM のグループに対して CPU 使用率の下限が設定できていることを確認◦ IDS として Tripwire を使用し VM とホスト OS で無限ループを行うプログラムを実行◦ CPU の割合を 40 : 60 とした

実験 :CPUにおける性能分離

/dev/cgroup

Group1 Group2

Tripwire

VM( loop )loop

40% 60%

Page 17: KVM における IDS オフロードの実現

Group1 の CPU 使用率は設定した 40% でほぼ一定しており制御できている

実験結果

0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 600

10

20

30

40

50

60

70

Group2 VM Tripwire Group1

time( S)

CPU(%

)Group1

Tripwire

VM( loop )

Group2

loop

Page 18: KVM における IDS オフロードの実現

VMwatcher [Xuxian et al.’07]◦ VMware 、 Xen 、 QEMU 、 UML で実装◦ ディスクとメモリの監視を行う

QEMU での実装は KVM でも適用できる可能性あり アドレス変換はゲスト OS のページテーブルを参照する

KVMonitor では QEMU に行わせることでアーキテクチャ依存度を減らしている リソースプール

◦ VMware で VM をグループ化し CPU ・メモリの制御を行う プロセスをグループ化することはできない

KVMonitor では VM とプロセスをグループ化できる

関連研究

Page 19: KVM における IDS オフロードの実現

KVM における IDS オフロードを実現するシステム KVMonitor を提案◦ 仮想ディスクをマウントできる形式に変更してディスクの監視◦ ファイルをメモリとして使いメモリの監視◦ Linux既存の Cgroups を使用し CPU とメモリの制限

今後の課題◦ ネットワーク IDS への対応◦ Xen との定量的な性能比較

まとめ