Virtual Machine Security on Cloud Computing 20090311
Upcoming SlideShare
Loading in...5
×
 

Virtual Machine Security on Cloud Computing 20090311

on

  • 4,374 views

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

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

Statistics

Views

Total Views
4,374
Views on SlideShare
4,324
Embed Views
50

Actions

Likes
2
Downloads
62
Comments
1

3 Embeds 50

http://www.slideshare.net 47
http://s.deeeki.com 2
http://jisi.dreamblog.jp 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • クラウド研究会での資料。とてもおもしろかったです。
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Virtual Machine Security on Cloud Computing 20090311 Virtual Machine Security on Cloud Computing 20090311 Presentation Transcript

  • クラウドコンピューティングにおける 仮想マシンのセキュリティ 11/March/2009 産業技術総合研究所 情報セキュリティ研究センター 須崎有康 Research Center for Information Security http://www.slideshare.net/suzaki
  • 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に挿入可能な仮想マシンモニタによる異常挙動解析とデバイス制御の研究開発”
  • • クラウドコンピューティングと言うとコストとか、 スケールアウトとか注目されますが、セキュリ ティは? – IPA 「クラウド・コンピューティング社会の基盤に関 する研究会報告書(案)」では乗り換えに対して価 格やサービス向上より懸念されていることが示さ れている。
  • Overview of Security on Cloud Computing (IaaS) Authentication Internet man in the middle attack Cross VM Side Channel Attack ・VM Isolation Client •Key management App1 App2 App3 login, data, application User’s •personal authentication Responsibility •Software vulnerability OS1 OS2 OS3 •Component Integrity Verified Boot by “ChromeOS” Formal Verification Peeping In the future Mem Mem Mem Privacy &Security CPU CPU CPU •privacy homomorphism Software Vulnerability ・Hypervisor Virtual Machine Monitor Provider’s ・Manage OS Responsibility Memory ・System Configuration CPU Security Guideline • CSA (Cloud Security Alliance) • Open Cloud Manifesto Auditing Standard • SAS70 • HIPPA Data Management Auditing •Lost (消去) provider’s matter •Digital Forensic •Leak (漏えい) •Log •Erasure (削除) provider’s matter
  • アウトライン • 仮想化はセキュリティを強化するか? • 各種の攻撃 – VM内(Inter VM)の攻撃/脆弱性 • 仮想マシン上のOS管理 • I/O Fuzzing攻撃 [Google Report], [Symantec Report] • メモリエラーが引き金になる脆弱性 [SIGMETICS09][SSP03] • ランダムにならない乱数[NDSS10] – VM間(Cross VM)の攻撃/脆弱性 • 物理キャッシュを通した覗き見 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 攻撃
  • セキュリティの基本と仮想化 • セキュリティの基本 (“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 は便利だがセキュリティホールになる
  • 仮想化はセキュリティを強化する根拠(?) • 仮想マシンモニタ(ハイパーバイザー)はOS、アプリケーションよりOSより小さく 作ることができ強固である(?) – カーネルより強固にできるのか • ドライバ以外はカーネルソースは形式的検証が可能。SEL4 [SOSP09]は8,700行のカー ネルCコードをTheorem Prober (Isabelle/HOL)で検証。 • つまり、ドライバを除く論理的なプログラムは検証可能 – 多くの問題はドライバから起こっているが、仮想化の役目は計算機資源を仮想化す ること。しかし、タイミングなど完全に仮想化できない。 • Compatibility is Not Transparency [HotOS’07, Tal Garfinkel] – 仮想化はデバイスドライバを二重に作っているようなもの • 物理デバイスが共有されるためサイドチャネル攻撃の危険もある App1 App2 App3 安全? ManagementOS Guest OS Guest OS 安全? Device Driver Device Driver Device Driver 仮想マシンモニ タにより多層防 VM (Virtual Device) VM (Virtual Device) VM (Virtual Device) 衛を強化? 仮想マシンモニタ 安全? ハードウェア (Real Device)
  • 仮想マシンモニタの問題点 • 脆弱性(bug)はコード量に比例する – “An Empirical Study of Operating Systems Error”,SOSP’01 • デバイスドライバでは対応項目が多い。 – “Tolerating Hardware Device Failures in Software”, SOSP’09で示さ れた各社のドライバ開発ガイドライン • 更に問題なのは仮想マシンモニタを乗っ取られると被害が甚大 – マルチテナントでは他のOSにまで被害が及ぶ。
  • 仮想化はセキュリティを強化する根拠(!) • 攻撃対象であるOSより下位(ハード寄り)にあり、OSを 防御・監視 – VM Introspection • OSが汚染されても挙動解析できる。 • 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] • しかし、監視インターフェイスから情報漏洩する恐れあり。
  • 問題が起こる仮想化資源 • PC固有で複製してはまずい資源 – MACアドレス – TPMのEK (Endorsement Key), SRK (Storage Root Key) • 複数同時に存在してまずい資源 – 上記のもの – ソフトウェアのライセンス – 乱数のシード [NDSS10] • “Should Everything Be Virtualized?“ – http://storageio.com/blog/?p=719
  • アウトライン • 仮想化はセキュリティを強化するか? • 各種の攻撃 – VM内(Inter VM)の攻撃/脆弱性 • 仮想マシン上のOS管理 • I/O Fuzzing攻撃 [Google Report], [Symantec Report] • メモリエラーが引き金になる脆弱性 [SIGMETICS09][SSP03] • ランダムにならない乱数[NDSS10] – VM間(Cross VM)の攻撃/脆弱性 • 物理キャッシュを通した覗き見 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 攻撃
  • 仮想マシン上のOS管理 • クラウドではOSのインストール作業が無い! – ダッシュボード機能からメニューで作成。 • VMI(Virtual Machine Image), AMI (Amazon Machine Image) • (基本的に)インストール後は管理者権限譲渡やプライバーの 問題 あり、 問題があり、ユーザが管理。 管 。 – 長い間使われなかったVMIでは脆弱性対処がなく、攻撃対象となる • クラウド&仮想化ベンダーでもこの問題は認識しており、対策 を提供 • VMIを直接扱うツール – VMware Update Manager(VUM) – Microsoft Offline Virtual Machine Servicing Tool
  • 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 • I/O fuzzing – VMware, Xen での報告あり。 Guest OS – 対策は不要なデバイスを付けない smash! ManagementOS Device Driver Device Driver VM (Virtual Device) Hypervisor CPU (Real Device)
  • メモリエラーが引き金になる脆弱性 • クラウドコンピューティングでは数万台を超える大規模なサーバ群から構成され るため、各デバイスの障害も半端でない • ” 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ビットのようなデータ領域のコードを実行できな い機能を有効にする
  • ランダムにならない乱数 • 仮想マシンモニタは仮想マシンの実行途中を保存するスナッ プショット機能を提供 • スナップショットイメージを複数回使うと前の疑似乱数生成を 繰り返すことになる • 更に問題なのは、疑似乱数のシードは時計などの物理的要 因から取られるが、スナップショット再開後に時計が同 な 因から取られるが スナップショット再開後に時計が同一な 仮想マシンがある。 – When Good Randomness Goes Bad [NDSS10] • 対処 – Hedged cryptography – 暗号化レベルで仮想マシンの乱数生成の問題を意識して回避する
  • アウトライン • 仮想化はセキュリティを強化するか? • 各種の攻撃 – VM内(Inter VM)の攻撃/脆弱性 • 仮想マシン上のOS管理 • I/O Fuzzing攻撃 [Google Report], [Symantec Report] • メモリエラーが引き金になる脆弱性 [SIGMETICS09][SSP03] • ランダムにならない乱数[NDSS10] – VM間(Cross VM)の攻撃/脆弱性 • 物理キャッシュを通した覗き見 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 攻撃
  • 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のIsolation Log of Cache delay Normal Attacker VM VM 仮想マシンモニタ Core1 Core2 Cache Line 64 byte Set Associative 2 way Cache Main Memory
  • Cross VM 攻撃(メモリの覗き見) • 既存の物理メモリへの覗き見攻撃 – IEEE1394(FireWire)によるメモリ覗き見 – メモリを冷やして解析。Cold Boot Attack [USENIX Security08] • 仮想マシンでは同様の攻撃がソフトウェアのみで出来る – 管理OSを乗っ取られればVM Introspection機能から可能。 • 対策 – VMメモリの暗号化。他のVMからのぞき見られても情報漏えいしない – Overshadow [ASPLOS08], SP3[Vee08] SP3[Vee08]より SID: SP3 Domain ID
  • 仮想デバイスによるセキュリティ障害 • 仮想マシンモニタでは、同一物理マシン上の仮想マシン間を 高速な仮想ネットワークで繋ぐ – XenSocket[Middleware07], XWAY[Vee08], XenLoop[Cluster Computing09] • 全通信プロトコルが仮想マシンモニタ内に閉じ込められ、表に 出てこない – フィルタリング、ネットワーク型IDSなど既存のツールを利用できない • 対策 – 日本IBM「Virtual Server Security for VMware(VSS)」 • VMWareのVMSafeを利用し、各仮想マシンの通信内容をチェック
  • Live Migration • OSを起動させたまま、VMの他のサーバ移動 – サービスを継続しつつ、ハードウェアを停止するた めに必要。 • スケールアウトには必須 “Exploiting live virtual machine migration” [BlackHat DC 2008]
  • Live Migrationの問題 • VM移動中にRootkitを仕込まれてしまう – Virtual Machine Based Rootkits • “Exploiting live virtual machine migration”, [BlackHat DC 2008] • VMイメージの完全性を検証することでRootkit混入は防げるが、 • 完全性のみでは覗き見による鍵漏洩は防げない。暗号化によ る秘匿性も必要。
  • アウトライン • 仮想化はセキュリティを強化するか? • 各種の攻撃 – VM内(Inter VM)の攻撃/脆弱性 • 仮想マシン上のOS管理 • I/O Fuzzing攻撃 [Google Report], [Symantec Report] • メモリエラーが引き金になる脆弱性 [SIGMETICS09][SSP03] • ランダムにならない乱数[NDSS10] – VM間(Cross VM)の攻撃/脆弱性 • 物理キャッシュを通した覗き見 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 攻撃
  • VM排他制御 (Isolation) • 利害の異なるVMは同時に実行させない、他のサーバに割当て排他制御が必要 – XenはXSM(Xen Security Module)のACM(Access Control Module)では可能 • [XenSummit07] • これにより実行時デバイス共有によるCross VM Attackは防げる… • しかし、Isolationを困難にするデバイス共有技術(重複除外: deduplication 同じ コンテンツは参照でまとめる技術)が出てきている。 – ストレージ • Content Addressable Storage – メモリ • VMware ESX: Content-Based Page Sharing • Xen: Satori[USENIX09],Differential Engine[OSDI08] • Linux kernel KSM (Kernel Samepage Merging) [LinuxSympo09]
  • 暗号化、完全性検証 • 各種デバイスの暗号化・完全性 – メモリの暗号化 (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 • 他人数で分散計算を行い、個々のサーバでは計算内容が判らず、計算結果 が秘匿できる方式。
  • VM Introspection • VMのメモリやデバイスの状態をハイパーバイザー から覗き見る技術。 – ゲストOS自身ではRootkitにより正しく状態を把握でき ない場合がある。 • VMにIDSを含める (LiveWire[NDSS03]) • 隠ぺいプロセス(hidden processを)検出(Licosid[Vee08]) – フォレンジック対策で必要? – VMSafe, XenAccess[CCS07], AnyDoor[FrHack09] • プライバシにはSLAで対処(?) • この機能を悪用される恐れもある
  • Cloud Computing特有の問題 • AutoScaleのためにブートが多いことが想定される が、ブートはSensitiveな処理なため新たな危険性 がある。 • Live MigrationではTOCTOU (time-of-check-to- time-of-use) 攻撃を考慮する必要がある • エラー忘却型コンピューティング(Failure Oblivious Computing)などスケールアウトするためにエラーを 無視する技術への対処。 – 楽天技術研究所の森正弥所長のコメント • 「エラー忘却型コンピューティングは,データの完全性や保全性を犠牲に してでも,分散処理の大規模化や高速化を実現しようとする考え方だ。 このような考え方を,世界で初めて大規模に実用化した点が,Googleと 他社の最大の差だろう」 • http://itpro.nikkeibp.co.jp/article/COLUMN/20081031/318297/
  • まとめ • 仮想化は計算資源の共有、動的移動など可用性を高 めるが、新たな脅威を招くものでもある。 – 脆弱性が増え、そこを叩く攻撃の増加 • 新たな防御技術(VM排他制御、メモリ暗号化、VMイ 新たな防御技術(VM排他制御、 リ暗号化、VMイ メージ完全性検証、VM Introspection)の導入の必要 がある。 • 資料 – http://www.slideshare.net/suzaki
  • まとめ 各種VMの対応 脆弱性対応 排他制御 暗号化・ VM (コード検証) 完全性検証 Introspection VMware EAL4 VMSafe Xen XSM OverShadow XenAccess (sHype) SP3 Hyper-V EAL4 KVM Oracle VM