28
クラウドコンピューティングにおける 仮想マシンのセキュリティ 11/March/2009 産業技術総合研究所 産業技術総合研究所 情報セキュリティ研究センター 須崎有康 Research Center for Information Security http://www.slideshare.net/suzaki

Virtual Machine Security on Cloud Computing 20090311

Embed Size (px)

DESCRIPTION

クラウドコンピューティングでは仮想マシンが一つの主要な構成技術になっているが、このセキュリティ課題(I/O Fuzzing, Cross VM Side Channel Attack など)および対処について話します。

Citation preview

Page 1: Virtual Machine Security on Cloud Computing 20090311

クラウドコンピューティングにおける仮想マシンのセキュリティ

11/March/2009

産業技術総合研究所産業技術総合研究所

情報セキュリティ研究センター

須崎有康

Research Center for Information Security

http://www.slideshare.net/suzaki

Page 2: Virtual Machine Security on Cloud Computing 20090311

Who am I• 所属:独立行政法人 産業技術総合研究所

– 情報セキュリティ研究センター (秋葉原ダイビル)

• KNOPPIX日本語版の管理者– http://www.rcis.aist.go.jp/project/knoppix/

• IPA 「クラウド・コンピューティング社会の基盤に関する研究会」委員– 報告書のパブリック・コメントを募集中– 募

– http://www.ipa.go.jp/about/pubcomme/201003/index.html

• 仮想化は UML(UserModeLinux), coLinux, Xen, KVMなどに手を出して、OSマイグレーションの開発からクラウドに接近。– OSCircular: http://openlab.jp/oscircular/

• METI新世代情報セキュリティ研究開発シンポジウム 3/30 午後 秋葉原ダイビル5階

– http://www.mizuho-ir.co.jp/seminar/info/2010/itsec0330.html– “既存OSに挿入可能な仮想マシンモニタによる異常挙動解析とデバイス制御の研究開発”

Page 3: Virtual Machine Security on Cloud Computing 20090311

• クラウドコンピューティングと言うとコストとか、スケールアウトとか注目されますが、セキュリティは?

– IPA – IPA 「クラウド・コンピューティング社会の基盤に関

する研究会報告書(案)」では乗り換えに対して価格やサービス向上より懸念されていることが示されている。

Page 4: Virtual Machine Security on Cloud Computing 20090311

Client•Key management

login, data, application•personal authentication•Software vulnerability •Component Integrity

Verified Boot by “ChromeOS”

Software Vulnerability

User’s ResponsibilityOS1

App1

OS2

App2

OS3

App3

Mem

CPU

Mem

CPU

Mem

CPU

Virtual Machine Monitor

PeepingPrivacy &Security•privacy homomorphism

Internetman in the middle attack

Cross VM Side Channel Attack・VM Isolation

Authentication

Formal VerificationIn the future

Overview of Security on Cloud Computing (IaaS)

Data Management•Lost (消去) provider’s matter •Leak (漏えい)•Erasure (削除) provider’s matter

Software Vulnerability・Hypervisor・Manage OS・System Configuration

Security Guideline • CSA (Cloud Security Alliance)• Open Cloud Manifesto

Auditing Standard • SAS70• HIPPA

Memory

CPU

Virtual Machine Monitor

Auditing•Digital Forensic•Log

Provider’s Responsibility

Page 5: Virtual Machine Security on Cloud Computing 20090311

アウトライン• 仮想化はセキュリティを強化するか?• 各種の攻撃

– VM内(Inter VM)の攻撃/脆弱性• 仮想マシン上のOS管理• I/O Fuzzing攻撃 [Google Report], [Symantec Report]

• メモリエラーが引き金になる脆弱性 [SIGMETICS09][SSP03]

• ランダムにならない乱数[NDSS10]

– VM間(Cross VM)の攻撃/脆弱性• Cross VM Side Channel Attack • 物理キャッシュを通した覗き見 Cross VM Side Channel Attack [CSS09]

• 仮想メモリの覗き見 [ASPLOS08], [Vee08]

• 仮想デバイスによるセキュリティ障害• LiveMigration時のRootKit混入 [BlackHat DC 08]

• 防御技術• VM排他制御 (Isolation)• 暗号化、完全性検証• VM Introspection • Cloud Computing特有の問題

– Failure Oblivious Computing, AutoScale V.S. TOCTOU 攻撃

Page 6: Virtual Machine Security on Cloud Computing 20090311

セキュリティの基本と仮想化

• セキュリティの基本 (“Building Secure Software”, Addison-Wesley 2002)

– 原則2:Defense in Depth 多層防衛

– 原則4: Least Privilege 最小権限、原則6: Keep it simple 単純に

– Steady 安定して

• 仮想化では• 仮想化では– 多層防衛は実現している

– Large & Complicated• 仮想化によりコードが増えている

• 複雑なハードウェアをエミュレートしている。性能を出すために(Trickyな)最適化を施している

• 権限は複雑になっている

– Variable (よい意味でも悪い意味でも)• デバイスのタイミングなどは正確に仮想化できない

– Compatibility is Not Transparency [HotOS’07, Tal Garfinkel]

• Memory Ballooning, Live Migration は便利だがセキュリティホールになる

Page 7: Virtual Machine Security on Cloud Computing 20090311

仮想化はセキュリティを強化する根拠(?)• 仮想マシンモニタ(ハイパーバイザー)はOS、アプリケーションよりOSより小さく

作ることができ強固である(?)– カーネルより強固にできるのか

• ドライバ以外はカーネルソースは形式的検証が可能。SEL4 [SOSP09]は8,700行のカーネルCコードをTheorem Prober (Isabelle/HOL)で検証。

• つまり、ドライバを除く論理的なプログラムは検証可能

– 多くの問題はドライバから起こっているが、仮想化の役目は計算機資源を仮想化すること。しかし、タイミングなど完全に仮想化できない。

• Compatibility is Not Transparency [HotOS’07, Tal Garfinkel]• Compatibility is Not Transparency [HotOS’07, Tal Garfinkel]

– 仮想化はデバイスドライバを二重に作っているようなもの• 物理デバイスが共有されるためサイドチャネル攻撃の危険もある

仮想マシンモニタ

ハードウェア (Real Device)

VM (Virtual Device)

ManagementOS Guest OS

Device DriverDevice Driver安全?

Guest OS

Device Driver

App1 App2 App3安全?

安全?

仮想マシンモニタにより多層防衛を強化?VM (Virtual Device)VM (Virtual Device)

Page 8: Virtual Machine Security on Cloud Computing 20090311

仮想マシンモニタの問題点• 脆弱性(bug)はコード量に比例する

– “An Empirical Study of Operating Systems Error”,SOSP’01

• デバイスドライバでは対応項目が多い。– “Tolerating Hardware Device Failures in Software”, SOSP’09で示さ

れた各社のドライバ開発ガイドライン

• 更に問題なのは仮想マシンモニタを乗っ取られると被害が甚大– マルチテナントでは他のOSにまで被害が及ぶ。

Page 9: Virtual Machine Security on Cloud Computing 20090311

仮想化はセキュリティを強化する根拠(!)

• 攻撃対象であるOSより下位(ハード寄り)にあり、OSを防御・監視

– VM Introspection• OSが汚染されても挙動解析できる。

• IEEE Security&Privacy Sep/Oct 2008 (vol. 6 no. 5)• IEEE Security&Privacy Sep/Oct 2008 (vol. 6 no. 5)– http://www.computer.org/portal/web/csdl/abs/mags/sp/2008/05/msp05toc.htm

• VMSafe, XenAccess[CCS07], AnyDoor[FrHack09]

• しかし、監視インターフェイスから情報漏洩する恐れあり。

Page 10: Virtual Machine Security on Cloud Computing 20090311

問題が起こる仮想化資源

• PC固有で複製してはまずい資源– MACアドレス

– TPMのEK (Endorsement Key), SRK (Storage Root Key)

• 複数同時に存在してまずい資源– 上記のもの– 上記のもの

– ソフトウェアのライセンス

– 乱数のシード [NDSS10]

• “Should Everything Be Virtualized?“– http://storageio.com/blog/?p=719

Page 11: Virtual Machine Security on Cloud Computing 20090311

アウトライン• 仮想化はセキュリティを強化するか?• 各種の攻撃

– VM内(Inter VM)の攻撃/脆弱性• 仮想マシン上のOS管理• I/O Fuzzing攻撃 [Google Report], [Symantec Report]

• メモリエラーが引き金になる脆弱性 [SIGMETICS09][SSP03]

• ランダムにならない乱数[NDSS10]

– VM間(Cross VM)の攻撃/脆弱性• Cross VM Side Channel Attack • 物理キャッシュを通した覗き見 Cross VM Side Channel Attack [CSS09]

• 仮想メモリの覗き見 [ASPLOS08], [Vee08]

• 仮想デバイスによるセキュリティ障害• LiveMigration時のRootKit混入 [BlackHat DC 08]

• 防御技術• VM排他制御 (Isolation)• 暗号化、完全性検証• VM Introspection • Cloud Computing特有の問題

– Failure Oblivious Computing, AutoScale V.S. TOCTOU 攻撃

Page 12: Virtual Machine Security on Cloud Computing 20090311

仮想マシン上のOS管理

• クラウドではOSのインストール作業が無い!– ダッシュボード機能からメニューで作成。

• VMI(Virtual Machine Image), AMI (Amazon Machine Image)

• (基本的に)インストール後は管理者権限譲渡やプライバーの問題があり、ユーザが管理。問題 あり、 管 。– 長い間使われなかったVMIでは脆弱性対処がなく、攻撃対象となる

• クラウド&仮想化ベンダーでもこの問題は認識しており、対策を提供

• VMIを直接扱うツール

– VMware Update Manager(VUM)

– Microsoft Offline Virtual Machine Servicing Tool

Page 13: Virtual Machine Security on Cloud Computing 20090311

VM内攻撃

• In VM Vulnerabilities – 仮想マシンのデバイスを過剰に叩き、管理OS乗っ取りや悪意あるコードの

挿入を行う。• Tavis Ormandy, “An Empirical Study into the Security Exposure to Hosts

of Hostile Virtual Environments”, Google Report• Peter Ferrie,“Attacks on Virtual Machine Emulators”, Symantec Report

– ツール• CRASHME: Random input testing • CRASHME: Random input testing • I/O fuzzing

– VMware, Xen での報告あり。

– 対策は不要なデバイスを付けない

Hypervisor

CPU (Real Device)

VM (Virtual Device)

ManagementOS

Guest OS

Device DriverDevice Driver

smash!

Page 14: Virtual Machine Security on Cloud Computing 20090311

メモリエラーが引き金になる脆弱性

• クラウドコンピューティングでは数万台を超える大規模なサーバ群から構成されるため、各デバイスの障害も半端でない

• ” DRAM Errors in the Wild: A Large-Scale Field Study” [SIGMETICS09]においてGoogleのサーバ群におけるメモリのエラーレートを報告

– 通常考えられている以上に物理的なメモリエラーが起こる

– クラウドコンピューティングではメモリ上の処理が多い

• メモリエラーを狙った攻撃• メモリエラ を狙った攻撃

– “Using Memory Errors to Attack a Virtual Machine”, [IEEE Symposium on Security and Privacy’03]

• 悪意のあるコードにジャンプする仕組みをメモリ内に敷き詰め(スプレー攻撃)、メモリエラーを待つ。

• この論文自体はJavaVMを想定しているが、仮想マシンでも同じ。

• 対処

– SELinuxのような各権限(ルート)での強制アクセス制御を施すこと• ルートを乗っ取られても被害が限定できる

– AMD のNXビットやIntel CPUのDXビットのようなデータ領域のコードを実行できない機能を有効にする

Page 15: Virtual Machine Security on Cloud Computing 20090311

ランダムにならない乱数

• 仮想マシンモニタは仮想マシンの実行途中を保存するスナップショット機能を提供

• スナップショットイメージを複数回使うと前の疑似乱数生成を繰り返すことになる

• 更に問題なのは、疑似乱数のシードは時計などの物理的要因から取られるが スナップショット再開後に時計が同一な因から取られるが、スナップショット再開後に時計が同 な仮想マシンがある。– When Good Randomness Goes Bad [NDSS10]

• 対処– Hedged cryptography

– 暗号化レベルで仮想マシンの乱数生成の問題を意識して回避する

Page 16: Virtual Machine Security on Cloud Computing 20090311

アウトライン• 仮想化はセキュリティを強化するか?• 各種の攻撃

– VM内(Inter VM)の攻撃/脆弱性• 仮想マシン上のOS管理• I/O Fuzzing攻撃 [Google Report], [Symantec Report]

• メモリエラーが引き金になる脆弱性 [SIGMETICS09][SSP03]

• ランダムにならない乱数[NDSS10]

– VM間(Cross VM)の攻撃/脆弱性• Cross VM Side Channel Attack • 物理キャッシュを通した覗き見 Cross VM Side Channel Attack [CSS09]

• 仮想メモリの覗き見 [ASPLOS08], [Vee08]

• 仮想デバイスによるセキュリティ障害• LiveMigration時のRootKit混入 [BlackHat DC 08]

• 防御技術• VM排他制御 (Isolation)• 暗号化、完全性検証• VM Introspection • Cloud Computing特有の問題

– Failure Oblivious Computing, AutoScale V.S. TOCTOU 攻撃

Page 17: Virtual Machine Security on Cloud Computing 20090311

Cross VM 攻撃(キャッシュ共有)• “Hey, You, Get Off of My Cloud”[CCS’09]• Set Associative Cacheを共有している「悪意のあるVM」が連続してキャッ

シュを叩く。キャッシュの反応が遅れると他のVMでアクセスしていることが判る。– 限定した環境だが鍵漏洩の恐れがある

• 2005に話題になった Hyper Threading の脆弱性と同じ。– http://journal.mycom.co.jp/articles/2005/05/17/ht/index.html

• 対策はVMのIsolationLog of Cache delay

Set Associative Cache

Main Memory

AttackerVM

Cache Line64 byte

2 way

NormalVM

仮想マシンモニタ

Core1 Core2

Page 18: Virtual Machine Security on Cloud Computing 20090311

Cross VM 攻撃(メモリの覗き見)• 既存の物理メモリへの覗き見攻撃

– IEEE1394(FireWire)によるメモリ覗き見

– メモリを冷やして解析。Cold Boot Attack [USENIX Security08]

• 仮想マシンでは同様の攻撃がソフトウェアのみで出来る– 管理OSを乗っ取られればVM Introspection機能から可能。

• 対策– VMメモリの暗号化。他のVMからのぞき見られても情報漏えいしない– VMメモリの暗号化。他のVMからのぞき見られても情報漏えいしない

– Overshadow [ASPLOS08], SP3[Vee08]

SP3[Vee08]よりSID: SP3 Domain ID

Page 19: Virtual Machine Security on Cloud Computing 20090311

仮想デバイスによるセキュリティ障害

• 仮想マシンモニタでは、同一物理マシン上の仮想マシン間を高速な仮想ネットワークで繋ぐ– XenSocket[Middleware07], XWAY[Vee08], XenLoop[Cluster

Computing09]

• 全通信プロトコルが仮想マシンモニタ内に閉じ込められ、表に出てこない– フィルタリング、ネットワーク型IDSなど既存のツールを利用できない

• 対策– 日本IBM「Virtual Server Security for VMware(VSS)」

• VMWareのVMSafeを利用し、各仮想マシンの通信内容をチェック

Page 20: Virtual Machine Security on Cloud Computing 20090311

Live Migration• OSを起動させたまま、VMの他のサーバ移動

– サービスを継続しつつ、ハードウェアを停止するために必要。

• スケールアウトには必須

“Exploiting live virtual machine migration” [BlackHat DC 2008]

Page 21: Virtual Machine Security on Cloud Computing 20090311

Live Migrationの問題• VM移動中にRootkitを仕込まれてしまう

– Virtual Machine Based Rootkits• “Exploiting live virtual machine migration”, [BlackHat DC 2008]

• VMイメージの完全性を検証することでRootkit混入は防げるが、

• 完全性のみでは覗き見による鍵漏洩は防げない。暗号化による秘匿性も必要。

Page 22: Virtual Machine Security on Cloud Computing 20090311

アウトライン• 仮想化はセキュリティを強化するか?• 各種の攻撃

– VM内(Inter VM)の攻撃/脆弱性• 仮想マシン上のOS管理• I/O Fuzzing攻撃 [Google Report], [Symantec Report]

• メモリエラーが引き金になる脆弱性 [SIGMETICS09][SSP03]

• ランダムにならない乱数[NDSS10]

– VM間(Cross VM)の攻撃/脆弱性• Cross VM Side Channel Attack • 物理キャッシュを通した覗き見 Cross VM Side Channel Attack [CSS09]

• 仮想メモリの覗き見 [ASPLOS08], [Vee08]

• 仮想デバイスによるセキュリティ障害• LiveMigration時のRootKit混入 [BlackHat DC 08]

• 防御技術• VM排他制御 (Isolation)• 暗号化、完全性検証• VM Introspection • Cloud Computing特有の問題

– Failure Oblivious Computing, AutoScale V.S. TOCTOU 攻撃

Page 23: Virtual Machine Security on Cloud Computing 20090311

VM排他制御 (Isolation)• 利害の異なるVMは同時に実行させない、他のサーバに割当て排他制御が必要

– XenはXSM(Xen Security Module)のACM(Access Control Module)では可能• [XenSummit07]

• これにより実行時デバイス共有によるCross VM Attackは防げる…

• しかし、Isolationを困難にするデバイス共有技術(重複除外: deduplication 同じコンテンツは参照でまとめる技術)が出てきている。– ストレージ

• Content Addressable Storage• Content Addressable Storage

– メモリ• VMware ESX: Content-Based Page Sharing• Xen: Satori[USENIX09],Differential Engine[OSDI08]• Linux kernel KSM (Kernel Samepage Merging) [LinuxSympo09]

Page 24: Virtual Machine Security on Cloud Computing 20090311

暗号化、完全性検証

• 各種デバイスの暗号化・完全性– メモリの暗号化 (OverShadow[ASPLOS08], SP3[Vee08])– メモリの完全性 (SevVisor[ASPLOS08], NILKE[RAID08])– ファイルの改竄防止 (HyperShield[SACSIS09])

• Live Migration時のVMイメージ完全性検証

• Trusted Computing– 機器認証、正しいソフトウェアが正しい構成で使われていることの確認

• コードの改ざんが無い・計算が秘匿にできるリモート実行– Operational Authentication Code

• SETI@homeのような分散計算環境で懸賞が付いた場合、割り当てられた計算を正しく実行したことを保証する方式。

• http://www.distributed.net/source/specs/opcodeauth.html

– Secure Multi Party Computation• 他人数で分散計算を行い、個々のサーバでは計算内容が判らず、計算結果

が秘匿できる方式。

Page 25: Virtual Machine Security on Cloud Computing 20090311

VM Introspection• VMのメモリやデバイスの状態をハイパーバイザー

から覗き見る技術。– ゲストOS自身ではRootkitにより正しく状態を把握でき

ない場合がある。• VMにIDSを含める (LiveWire[NDSS03])• 隠ぺいプロセス(hidden processを)検出(Licosid[Vee08])

– フォレンジック対策で必要?

– VMSafe, XenAccess[CCS07], AnyDoor[FrHack09]

• プライバシにはSLAで対処(?)• この機能を悪用される恐れもある

Page 26: Virtual Machine Security on Cloud Computing 20090311

Cloud Computing特有の問題

• AutoScaleのためにブートが多いことが想定されるが、ブートはSensitiveな処理なため新たな危険性がある。

• Live MigrationではTOCTOU (time-of-check-to-time-of-use) 攻撃を考慮する必要があるtime-of-use)

• エラー忘却型コンピューティング(Failure Oblivious Computing)などスケールアウトするためにエラーを無視する技術への対処。– 楽天技術研究所の森正弥所長のコメント

• 「エラー忘却型コンピューティングは,データの完全性や保全性を犠牲にしてでも,分散処理の大規模化や高速化を実現しようとする考え方だ。このような考え方を,世界で初めて大規模に実用化した点が,Googleと他社の最大の差だろう」

• http://itpro.nikkeibp.co.jp/article/COLUMN/20081031/318297/

Page 27: Virtual Machine Security on Cloud Computing 20090311

まとめ

• 仮想化は計算資源の共有、動的移動など可用性を高めるが、新たな脅威を招くものでもある。– 脆弱性が増え、そこを叩く攻撃の増加

• 新たな防御技術(VM排他制御、メモリ暗号化、VMイ• 新たな防御技術(VM排他制御、 リ暗号化、VMイメージ完全性検証、VM Introspection)の導入の必要がある。

• 資料– http://www.slideshare.net/suzaki

Page 28: Virtual Machine Security on Cloud Computing 20090311

まとめ 各種VMの対応

脆弱性対応

(コード検証)排他制御 暗号化・

完全性検証

VM Introspection

VMware EAL4 VMSafe

Xen XSM OverShadow XenAccess(sHype) SP3

Hyper-V EAL4

KVM

Oracle VM