クラウド・セキュリティ : 2.IaaS型クラウドにおける仮想マシンのセキュリティ課題
全文
(2) 2 分散化:Distributed Computing 2000 年初頭 •マシンは安価で追加が容易 •サーバごとに機能分割 •メモリもCPUも固定. 仮想化:Virtualization 2006年以降 Intel-VT/AMD-SVM の出現 (’ 06) OpenVZ(’ 05-), Xen (’ 03-) KVM (’ 06-, Feb’ 07にLinux6.20統合) • 仮想マシンにより複数サーバを 1台の物理マシンに集約. IaaS 型クラウドにおける仮想マシンのセキュリティ課題. Web. CGI. Linux. Windows. BSD. メモリ CPU. メモリ CPU. メモリ CPU. DB. Web. CGI. DB. Linux. Windows. BSD. メモリ CPU. メモリ CPU. メモリ CPU. 仮想マシンモニタ メモリ CPU. レガシーシステム. • プロビジョニングにより仮想化した メモリ,CPUに物理能力を動的に分配 • 仮想化した総メモリサイズが物理 メモリを超えるメモリオーバーコミット 機能により柔軟に管理. 自動化:Autonomics System 2008年以降 • ライブマイグレーションにより負荷分散,障害時の移動が仮想マシン単位で可能 複製 • 仮想マシンの複製も容易 移動 Web Linux. ・VMI (Virtual Machine Image) によりOSのインストールをせず にコピーのみでインスタンスが 増やせる. CGI. Web. CGI. DB. DB. DB. Windows. Linux. Windows. BSD. BSD. BSD. 仮想マシンモニタ. 仮想マシンモニタ. 仮想マシンモニタ. 図 -1 仮想マシンによるクラウドコンピューティング環境の変遷.レガシーな分散化から仮想化,さらには自動化へ進化.. コミットした物理マシンで物理的資源が不足したと きには仮想マシンが自動的にライブマイグレーショ ンされるようになり,クラウドコンピューティング. そもそも仮想マシンによって セキュリティが強化されるのか?. のデータセンタの管理の自動化(Automatic System). 多くの仮想化技術開発者は仮想マシンモニタと管. が行えるようになった.これらの機能により管理者. 理 OS はゲスト OS より小さいため脆弱性も少なく,. の労力が軽減され,不特定多数の仮想マシンをホス. セキュリティを強化できると主張している.一般に. ティングするマルチテナントの大規模化が可能と. バグの混入はコード量に比例することが示されてい. なった.. るのでこの主張は正しく見える.しかし,仮想マシ. このように仮想マシンおよびそれから派生した技. ンモニタは物理デバイスの仮想化を行っており,通. 術によりクラウドコンピューティングが成り立って. 常のアプリケーションプログラムでは話題にならな. いるが,いずれの技術もセキュリティの課題を内在. い物理デバイスの再現問題がある.特に多くの仮想. している.それらの問題について以下の項目で解説. マシンモニタではオーバーヘッドを隠すためのバッ. していく.. ファリングなどの最適化が行われており,エラー処 理やタイミングなど物理デバイスを完全にエミュレ 1). ートできているわけではない . 仮想マシンモニタはデバイスを再現するため,ゲ. 情報処理 Vol.51 No.12 Dec. 2010. 1603.
(3) [小特集]. クラウド・セキュリティ. ManagementOS. App1 App2. App3. 安全?. Device Emulator. Guest OS. Guest OS. 安全?. Device Driver. Device Driver. Device Driver. 仮想マシンモニタ. 安全?. 仮想マシンモニタ により多層防衛を 強化?. network ハードウェア (Real Device). スト OS のドライバと管理 OS デバイスエミュレー タ,実デバイスに対する管理 OS 内のドライバな ど,ドライバが多重化されている(図 -2).一般に. 図 -2 仮想マシンモニタ自体のセキュリ ティ.ドライバの 2 重化による再現の困 難性.. 仮想マシン内(VM Internal)の攻撃/ 脆弱性. ドライバ開発は問題が多い.2009 年に OS 関連の. 単独の仮想マシン内(VM Internal)の攻撃/脆弱. 学会で最も権威のある ACM SOSP(Symposium on. 性はクラウド環境以外の仮想マシン利用でも気をつ. Operating Systems Principles)で発表されて話題にな. ければならないセキュリティの問題であるが,クラ. 2). った seL4 ではカーネルの全コード(8,700 行)を形. ウド内で起こることにより他の仮想マシンや管理. 式検証しているが,ブートローダやデバイスドライ. OS に被害を及ぼす危険性がある.. バなどハードウェアに関係する部分は形式的検証の 対象外になっている.つまり,仮想マシンモニタで. --- デバイスの仮想化は完全ではない ---. は形式検証が難しい部分のプログラミングを要求さ. 先に述べたデバイスの仮想化であるが,この部分. れているわけである.. が脆弱であることはすでに多く知られている.仮想. また,仮想マシンモニタへの攻撃はすべてのゲ. マシンの仮想デバイスを過剰にアクセスすることや. スト OS の権限を乗っ取ることができるので被害. 想定外の要求を行うことで,管理 OS 乗っ取りや悪. も大きい.実際,アメリカ政府の支援を受けた非. 意あるコードの挿入を行うことが可能である.具. 営 利 団 体 の 脆 弱 性 デ ー タ ベ ー ス CVE(Common. 体的な仮想マシンの攻撃については Google の Tavis. Vulnerabilities and Exposures)においてもゲスト OS. Ormandy 氏の報告書 3) に詳しく記載されている.. の権限昇格(VMWare と Xen)やゲスト OS 外のリソ. ここでは,高頻度の読み書きやランダムデータ読み. ースアクセスの脆弱性(Xen)が報告されている.今. 書きによるアクセスなど,想定外の処理を要求する. 後このような脆弱性の問題が見つからない保証は. ことでデバイスドライバのテストを行う I/O fuzzing. ない.. の技術を悪用する(図 -3).この攻撃により仮想デ. 変遷の章で述べたように仮想化は IaaS 型のクラ. バイスで障害を起こし,ゲスト OS の管理者権限や. ウドコンピューティングでは必須の技術であるが,. 管理 OS へのコード挿入が可能であることが示さ. 仮想化自体にも問題が少なくなく,常に安全性を確. れている.具体的には CRASHME というツールを. 認する必要がある.以下,2 つの章を使って IaaS 型. 使ってビデオデバイスの bitblt(bit block transfer). クラウドにおいて仮想マシン内(VM Internal)の攻. heap overflow やネットワークカードの netsock heap. 撃/脆弱性と複数の仮想マシン間(Cross VM)の攻. overflow を起こすことが可能であったことが報告. 撃/脆弱性に分けて問題点と対処法を紹介していく.. されている.また,元 Symantec の Peter Ferrie(現. MicroSoft)の報告書 4)においては仮想マシンが仮想. 1604 情報処理 Vol.51 No.12 Dec. 2010.
(4) 2. IaaS 型クラウドにおける仮想マシンのセキュリティ課題. cryptography という暗号化レベルで仮想マシンの乱 数生成の問題を意識して回避する手法を提案してい. Guest OS ManagementOS. Device Driver. る.乱数や暗号に限らず,一時的であるはずのデー. smash!. Device Emulator. タがスナップショットの再開により繰り返されしま. Device Driver. うため,この機能は注意して使う必要がある.. Hypervisor network. --- メモリエラーを引き金にする ---. ハードウェア. クラウドコンピューティングは数万台を超える大 規模なサーバ群から構成されるため,各デバイスの. 図 -3 I/O Fuzzing による仮想デバイスへの攻撃. 障害も半端ではない.2009 年の SIGMETRICS の 論文. 6). において Google のサーバ群におけるメモリ. 化しきれないデバイスを攻撃する手法を紹介して. のエラーレートが報告された.ここでは通常考えら. いる.. れている以上に物理的なメモリエラーが起こること. このような仮想デバイスへの攻撃に対する基本的. が示されている.Google サーバのメモリはエラー. な対策は不要なデバイスを付けないことである.当. 訂正機能である ECC(Error Correcting Code)を付. たり前であるがレガシーなデバイスであるフロッピ. けているが,それでもエラー訂正できない障害が発. ーなどを無効にする.クラウドコンピューティング. 生した.特に最近 1 カ月以内に訂正可能なエラーが. でビデオを使うことがなければビデオカードの設定. 発生したメモリモジュールでは,訂正されないメモ. は無効にすべきである.. リエラーの確率が非常に高く,場合によっては 431 倍になることが報告されている.通常の PC ならば. --- 乱数がランダムにならない ---. 多くのデータがハードディスクに格納されるので深. 現在の多くの仮想マシンモニタは仮想マシンの実. 刻な問題は起こりにくいが,クラウドコンピューテ. 行途中を保存するスナップショット機能がある.カ. ィングでは応答性を考えてメモリ上の処理が多く,. ーネルの更新などを試したい場合に更新前の状態に. このようなメモリエラーはサーバの障害となる.サ. 戻ることができる.この機能は便利であるが,そこ. ーバが停止するのみならまだ良いのだが,このよう. にセキュリティの問題が含まれている.. な物理メモリエラーを想定した攻撃も考慮する必要. 通常の OS では乱数生成に疑似乱数を用いるが,. がある.. スナップショットイメージを使うと前の疑似乱数生. 実際,2003 年の IEEE Symposium on Security and. 成を繰り返すことになり,同じ乱数列を生成してし. Privacy の論文 7)においてメモリエラーを想定した. まう.さらに問題なのは,疑似乱数の生成の元とな. 攻撃が紹介されている.ここではメモリエラーが起. る「種」の値は時計などの物理的要因から取られる. こった際にランダムに制御が移ることを想定し,悪. が,仮想マシンモニタによってはスナップショット. 意のあるコードにジャンプする仕組みをメモリ内に. 再開後に時間を同期しないため,同じ時間から再開. 敷き詰める.この攻撃はスプレー攻撃と呼ばれるも. され,種が同じになってしまう危険性がある.物理. のであり,何かの拍子にそこに行けば悪意のコード. マシンなら明らかに時間が異なるが,仮想マシンの. が実行されてしまう.論文では Java のバーチャル. 柔軟性から派生した新たな問題である.この危険性. マシンを想定しているが,手法としてはクラウドコ. については 2010 年の NDSS の論文. 5). において暗号. ンピューティング内でも同一のことが起こり得る.. で同じ乱数が使われている危険性の詳細が述べられ. この対処としては SELinux が提供しているような. ている.この対処として文献 5)の著者らは Hedged. 各権限での強制アクセス制御を施すことである.乗. 情報処理 Vol.51 No.12 Dec. 2010. 1605.
(5) [小特集]. クラウド・セキュリティ. っ取られると被害が大きい管理者権限などは,何か. --- 隔離技術でどこまで隔離するか ---. 障害があっても他に影響を与えないように設定して. IaaS 型のクラウドコンピューティングでは,不特. おくべきである.また,制御がデータ領域に飛ん. 定多数のユーザから多く仮想マシンを預かるマルチ. だ場合の対処としては AMD の NX ビットや Intel. テナント環境である.この環境では仮想マシンが覗. CPU の DX ビ ッ ト の よ う な デ ー タ 領 域 が コ ー ド. き見られないための隔離(isolation)技術が重要であ. 実行に使われないデータ実行防止機能(DEP : Data. る.各仮想マシンは仮想マシンモニタにより論理的. Execution Prevention)も有効である.. に隔離されているために他の仮想マシンを覗き見 ることができないことになっているが,実際には. --- 仮想マシンの OS のメンテナンス ---. 物理デバイスを共有しているためにその動作から. 仮想マシンへの OS インストールは VMI の利用. 覗き見られる危険性がある.特に 2009 年のセキュ. により簡単になった.クラウドコンピューティング. リティで権威のある学会 CCS(ACM Computer and. によっては VMI の作成が簡単なメニューから選択. Communications Security Conference)で発表された. するのみで可能になっている.しかしプライバシー. 論文. の問題もあり,VMI の OS のセキュリティアップ. 他の仮想マシンを覗き見るサイドチャネル攻撃で話. デートは各ユーザが行うことになっている.特に仮. 題になった.これは Cross VM Side Channel Attack. 想マシンを長い間立ち上げずに OS のセキュリティ. と呼ばれる.. アップデートが行われていないと無防備な状態で起. この攻撃ではマルチコア CPU でコアごとに仮想. 動して攻撃される危険性が多い.. マシンが割り当てられ,同時に複数の仮想マシン. クラウドコンピューティング提供者および商用仮. がキャッシュを共有することを悪用している.ま. 想マシンモニタのベンダでもこの問題を認識して. ず,あるコアで実行する仮想マシン(攻撃側)が物理. おり,VMware Update Manager(VUM)や Microsoft. CPU キャッシュをアクセスし続ける.他のコアで. Offline Virtual Machine Servicing Tool などの VMI を. 実行する仮想マシン(被害側)からアクセスがあった. 直接扱うツールをリリースしている.これらのツー. 場合に攻撃側のアクセスの遅れが出るため,そのパ. ルの使用についてはベンダのサービスとしてのみで. ターンから被害側の仮想マシンの処理を推定する攻. はなく,ユーザのプライバシーや既存の OS を使い. 撃である(図 -4).. 続けたい意向など,要求に適した組合せを探す必要. 現在の多くの CPU のキャッシュはセットアソシ. がある.. アティブと呼ばれる手法で管理されている.この. 8). は仮想マシンからキャッシュの動作を通して. 方式ではあるサイズで領域を分け,下位ビットで. 仮想マシン間(Cross VM)の攻撃/ 脆弱性. その領域(キャッシュライン)ごとにデータ管理す る.キャッシュは通常多段(図中では 2way)になっ ており,個々のキャッシュラインごとに LRU(Least. 仮想マシン間(Cross VM)の攻撃/脆弱性は,複. Recently Used)により保持される.この環境でまず. 数の仮想マシンによるデバイス共有やライブマイグ. 悪意のある仮想マシンは各キャッシュラインに連続. レーションによる物理マシン移動から派生する問題. にアクセスする.被害者の仮想マシンがあるキャッ. である.IaaS 型のクラウド環境ではマルチテナント. シュにアクセスすると悪意のある仮想マシンのキャ. 環境になっており,他の仮想マシンからの攻撃にも. ッシュアクセスは遅くなるため,被害者がどのよ. 考慮しなければならない.. うにアクセスしているかを知ることで何の処理を しているかを推定する.この攻撃自体は 2005 年に. Hyper-Threading の脆弱性として知られていた問題. 1606 情報処理 Vol.51 No.12 Dec. 2010.
(6) 2. IaaS 型クラウドにおける仮想マシンのセキュリティ課題. Log of Cache delay Normal VM. Attacker VM. 仮想マシンモニタ. Core1. Core2 Cache Line 64 byte. Set Associative Cache. 2 way. Main Memory. 図 -4 Cross VM Side Channel Attack.キャッシュの動作から同じ CPU 上の仮想マシンの振舞いを推定する.. であるが,今回は実際に Amazon EC2 のクラウドコ. 時の SLA(Service Level Agreement)で検討すべきで. ンピューティングで使われたことが報告されており,. ある.. ある条件では暗号鍵の漏えいまで可能であることが. Cross VM Side Channel Attack は物理的キャッシ. 報告されている.ただし,この攻撃は被害者が実行. ュの振舞いを通した覗き見であったが,メモリの覗. しているコードがあらかじめ分かっていることを前. き見は仮想マシンモニタを乗っ取れれば容易に行う. 提としているので現状では実害がないが,このよう. ことができる.幸いにもこれに対する仮想マシンの. な攻撃があることを想定して対処しておく必要は. メモリを暗号化する方式(Overshadow など)がすで. ある.. に提案されている.. 防御方法としてはいくつがあるが,ポイントは. メモリの暗号化は有用であるが,最近はメモリ. 「同時に物理的に共有するキャッシュを使わない」よ. 内で同一内容のブロックがある場合には共有して. うにできればよい.物理的には CPU コアごとに異. メモリ使用量を抑制する「重複除外(Deduplication)」. なる物理キャッシュを持つような構成が作れればこ. 技術が出ており,メモリの隔離を難しくしている.. の攻撃は回避されるが,現在提供されている CPU. VMWare ESX では Content-Based Page Sharing があ. を改良するのは困難である.仮想マシンモニタでも. り,Xen においては Differential Engine, Satori がある.. 対処が可能であり,「利害関係のある仮想マシンは. KVM においては Linux kernel 2.6.32 から採用され. キャッシュを共有する CPU コアで同時に実行しな. た KSM(Kernel Samepage Merging)を管理 OS で有. い」ポリシーを記述できればよい.Xen ではこの機. 効にすることで,仮想マシンの重複除外が可能であ. 能を XSM(Xen Security Module)の sHype を通して. る.いずれも仮想マシン上の OS に意識させること. 設定できる.この機能を提供するクラウドコンピュ. なく,メモリの集約を可能にする.重複除外技術は. ーティングは少ないと思うが,クリティカルな処理. 共有を促進する技術であり,覗き見などの攻撃を誘. を要求する側は物理的に分離する方法も含めて契約. 発する危険性がある.. 情報処理 Vol.51 No.12 Dec. 2010. 1607.
(7) [小特集]. クラウド・セキュリティ. Live Migration アプリ. OS メモリ CPU 仮想マシンモニタ メモリ CPU. アプリ. アプリ. OS VMBR. OS VMBR Attached By Attacker. メモリ CPU 仮想マシンモニタ メモリ CPU. 図 -5 ライブマイグレーション時のル ートキット挿入攻撃. --- 仮想デバイスがセキュリティの邪魔をする ---. ーションでメモリのイメージを転送する際にルー. 多くの仮想マシンモニタでは,同一物理マシン上. トキットによる感染の危険性が 2008 年の BlackHat. の仮想マシン間を仮想ネットワークで繋ぎ,高速な. DC の論文 9) で報告されている.ここでは,2006. 通信経路として利用できる.物理ネットワークを通. IEEE Symposium on Security and Privacy の論文 10)で. さずに仮想マシンモニタ内においてすべてメモリ上. 紹介された VMBR(Virtual Machine Based Rootkit). で処理される.これは効率化のためによいことであ. をライブマイグレーションする際に挿入している. るが,全通信プロトコルが仮想マシンモニタ内に閉. (図 -5).VMBR は仮想マシンモニタを利用したル. じ込められ,表に出てこない.つまり,ネットワー. ートキットであり,攻撃対象の OS から仮想マシン. クトラフィックが他から見えなくなり,フィルタリ. モニタを隠蔽してしまうため,検出が難しい.. ングできなくなってしまう.仮想マシンモニタ上の. この問題はライブマイグレーションに移動前後の. 特定仮想マシンへのブルートフォースアタックも検. イメージの完全性を検証する仕組みがないことに. 出できず,かつ効率的に行われてしまう.. 起因する.また,通信路の暗号化により外部から. この対処として仮想マシンモニタが仮想マシン. の VMBR 挿入攻撃は防げるが,内部の仮想マシン. ファイアウォールを提供するようになってきてい. から通信を覗き見られていた場合には対処できない.. る.たとえば,日本 IBM では VMware に特化した. この対処としてはライブマイグレーションの前後で. セキュリティ対策ソフト「Virtual Server Security for. 転送するメモリイメージのハッシュ値などの完全性. VMware(VSS)」をリリースした.ここでは VMware. 検証を導入する必要性がある.. がセキュリティ対策ソフトベンダ向けに公開する. API の VMsafe を使って,各仮想マシンの通信内容. --- プロバイダ管理者からの覗き見や情報漏洩 ---. をチェックする.これ以外にも仮想マシンファイ. 仮想マシンでは管理者権限があれば仮想化された. アウォールや仮想マンモニタ内に IDS(Intrusion. デバイスの状態を覗き見ることができる.特に最近. Detection System)を含めたものがあるので必要に応. の仮想マシンモニタではセキュリティ向上を目的と. じて機能を確認すべきである.. した仮想デバイスにアクセスする仕組み(VMWare の VMSafe や Xen の XenAccess など)が付加されて. --- ライブマイグレーション時の脅威 ---. いる.これらのインタフェースはカーネルに対する. ライブマイグレーションは任意の仮想マシンを効. ルートキットのような OS 自体からは確認できない. 率よく管理する上で必須の技術であるが,ここにも. 攻撃に対して,仮想デバイス状態と照らし合わせて. セキュリティの問題が潜んでいる.ライブマイグレ. 検出することを目的としているが,逆に悪用される. 1608 情報処理 Vol.51 No.12 Dec. 2010.
(8) 2 恐れもある.悪用を防ぐ対策としては仮想デバイス のアクセスできる機能はその権限分離とアクセス制 御を行い,必要なこと以外で利用することを禁止す る必要がある.. おわりに 仮想マシンは便利であるが,上記のように仮想 マシン内(VM Internal)および仮想マシン間(Cross. VM)で思いがけないセキュリティの問題が含んで いる.特にクラウドコンピューティングでは何万と いう仮想マシンがデータセンタで実行されているた め,個人のパソコンで使っていたときには見逃され ていた問題が明らかになってきている.現在,クラ ウドの普及に向けてガイドラインが多く発行されて. IaaS 型クラウドにおける仮想マシンのセキュリティ課題. 参考文献 1) Garfinkel, T. et al. : Compatibility is Not Transparency : VMM. Detection Myths and Realities, HotOS 07. 2) Klein, G. et al. : seL4 : Formal Verification of an OS Kernel, SOSP 09. 3) Ormandy, T. : An Empirical Study into the Security Exposure to Hosts of Hostile Virtual Environments, http://taviso.decsystem.org/ virtsec.pdf 4) Ferrie, P. : Attacks on Virtual Machine Emulators, SYMANTEC ADVANCED THREAT RESEARCH, http://www.symantec.com/ avcenter/reference/Virtual_Machine_Threats.pdf 5) Ristenpart, T. and Yilek, S. : When Good Randomness Goes Bad : Virtual Machine Reset Vulnerabilities and Hedging Deployed Cryptography, NDSS 09. 6) Schroeder, B. : DRAM Errors in the Wild: A Large-scale Field Study, SIGMETRICS/Performance 09, 7) Govindavajhala, S. and Appel, A. W. : Using Memory Errors to Attack a Virtual Machine, IEEE Symposium on Security and Privacy 2003. 8) Ristenpart, T. et al. : Hey, You, Get Off of My Cloud : Exploring Information Leakage in Third-Party Compute Clouds, CCS 09. 9) Oberheide, J. : Exploiting Live Virtual Machine Migration, BlackHat DC 2008. 10)King, S. et al. : SubVirt : Implementing Malware with Virtual Machines, IEEE Symposium on Security and Privacy 2006. (平成 22 年 8 月 31 日受付). いるが,セキュリティ関連の学会や BlackHat など で発表されている新しい問題に追いついていないの が現状である.少なくともクラウドプロバイダとの 契約で SLA を結ぶ際に本稿で挙げた問題を考慮し ているか確認してほしい.. 須崎有康(正会員) [email protected] 1991 年に東京農工大学大学院中退.同年より電子技術総合研究所. 2001 年に改組を経て(独)産業技術研究所情報セキュリティ研究セ ンター主任研究員.日本クラウドセキュリティアライアンス(CSA Japan Chapter)ボードメンバ.情報理工学博士(東京大学).. 情報処理 Vol.51 No.12 Dec. 2010. 1609.
(9)
関連したドキュメント
●Gartner Magic QuadrantにてクラウドHCM Suiteにおけるリーダーの評価.. Copyright © 2022 Nomura System Corporation Co, Ltd. All Rights Reserved.. Copyright © 2022 Nomura
学術資源リポジトリにおけるLightweight Information Describing ObjectLIDOの検討 A study of Lightweight Information Describing Object LIDO in Academic Resource
世界に一つだけの花 Dreams come true. SMAP Hey!Say!JUMP
Linux Foundation とハーバード大学による CensusⅡプロジェクトの予備的レポート ~アプリケーシ ョンに最も利用されている
12) Security and Privacy Controls for Information Systems and Organizations, September 2020, NIST Special Publication 800-53 Revision 5. 13) Risk Management Framework
ガイダンス: 5G 技術サプライヤと 5G サービスプロバイダは、 5G NR
of IEEE 51st Annual Symposium on Foundations of Computer Science (FOCS 2010), pp..
But the third section will explain in detail the form of the problem and find a solution by using Adomian Decomposition Method to get a stream function, velocity and vorticity of