Virtual Machine Security on Cloud Computing 20090311
1. クラウドコンピューティングにおける
仮想マシンのセキュリティ
11/March/2009
産業技術総合研究所
情報セキュリティ研究センター
須崎有康
Research Center for Information Security
http://www.slideshare.net/suzaki
4. 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
13. 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)
14. メモリエラーが引き金になる脆弱性
• クラウドコンピューティングでは数万台を超える大規模なサーバ群から構成され
るため、各デバイスの障害も半端でない
• ” 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ビットのようなデータ領域のコードを実行できな
い機能を有効にする
15. ランダムにならない乱数
• 仮想マシンモニタは仮想マシンの実行途中を保存するスナッ
プショット機能を提供
• スナップショットイメージを複数回使うと前の疑似乱数生成を
繰り返すことになる
• 更に問題なのは、疑似乱数のシードは時計などの物理的要
因から取られるが、スナップショット再開後に時計が同 な
因から取られるが スナップショット再開後に時計が同一な
仮想マシンがある。
– When Good Randomness Goes Bad [NDSS10]
• 対処
– Hedged cryptography
– 暗号化レベルで仮想マシンの乱数生成の問題を意識して回避する
17. 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