インストラクター：このレッスンでは､
VMエスケープ､ VMホッピング､ サンドボックス・エスケープ､
その他のVMに関する問題を含む仮想マシン攻撃について説明します｡
まず､ VMエスケープ（仮想マシン・エスケープ）がある｡
VMエスケープとは､ 脅威者が隔離された仮想マシンから抜け出し､
基盤となるハイパーバイザーに直接コマンドを送信しようとする攻撃の一種である｡
各仮想マシンは隔離されているはずなので､
VMエスケープを実行するのは非常に難しいはずだ｡
結局のところ､ 各ゲストOSは､ 自分が仮想マシンの一部であることすら知らないはずだ｡
なぜなら､ ハイパーバイザーが提供しているエミュレートされた物理マシンにフルアクセスできると思っているからだ｡
VMエスケープが効果的であるためには､
攻撃者は物理サーバーのメモリ､ ハードドライブ､
処理など､ 基盤となる物理リソースに直接インターフェースする方法を見つけなければならない｡
これは通常､ ハイパーバイザーのコード自体の脆弱性を悪用することで発生する｡
このような事例がいくつかあり､
メーカーは脆弱性を発見するとすぐにパッチを開発し､ リリースしている｡
VMエスケープは､ タイプ2のハイパーバイザーではタイプ1のハイパーバイザーよりも簡単に実行できる｡
タイプ2またはポストイットのハイパーバイザーを使用している場合､
攻撃者は仮想マシンを実際にホストしている基本オペレーティング・システムにアクセスできる可能性がある｡
もしそれができれば､ 特権をエスカレートさせて､
同じデバイス上でホストされている他の仮想マシンにアクセスし､
事実上､ 仮想マシンエスケープを作成することができる｡
仮想マシンのエスケープを防ぐには､ ゲスト・オペレーティング・システム､
ホスト・オペレーティング・システム､ ハイパーバイザーのすべてにパッチが適用され､
最新の状態に保たれていることを常に確認することが重要です｡
次に､ VMホッピング（仮想マシンホッピング）がある｡
VMホッピングとは､ 脅威者が同じホスト上のある仮想マシンから別の仮想マシンに移動しようとする攻撃の一種である｡
VMホッピング攻撃は､ 仮想化ソフトウェアのハイパーバイザーを悪用するか､
隔離されているはずの2つの仮想マシン間を移動する何らかの機能に焦点を当てる｡
VMホッピングはVMエスケープと似ているように聞こえるが､
1つ重要な違いがある｡
一方､ VMエスケープについては､
基盤となるハイパーバイザーやホスト・オペレーティング・システムに到達することに焦点を当てている｡
VMホッピングから保護するためには､ 常にハイパーバイザーが最新で､
適切にパッチが適用されていることを確認する必要がある｡
また､ ベストプラクティスのコンフィギュレーションガイドを使用して､
ゲストOSとハイパーバイザーが安全に設定されていることを確認し､ 隔離されているはずの仮想マシン間で誤った接続がないことを確認する必要があります｡
3つ目は､ サンドボックスからの脱出だ｡
サンドボックスとは､ システム障害やソフトウェアの脆弱性が広がるのを防ぐために､
実行中のプロセスやプログラムを分離するためのセキュリティ・メカニズムである｡
ほとんどの場合､ サンドボックスは仮想マシンやコンテナを使って作成される｡
例えば､ ウェブ・ブラウザは､ 実行中のウェブ・コードを保護されたオペレーティング・システムやシステム上の他のソフトウェアから分離するサンドボックスの概念を一般的に使用している｡
サンドボックスからの脱出は､ 攻撃者がサンドボックスの保護を迂回し､
保護されたオペレーティング・システムに他の特権プロセスでアクセスできるようになった場合に発生する｡
サンドボックスからの脱走からシステムを保護するためには､
ソフトウェアやオペレーティングシステムにパッチを適用し､
最新の状態に保つことが重要です｡ また､ クライアントに強力なエンドポイント保護ソフトウェアをインストールし､ ウェブブラウザのサンドボックスからの脱走から保護する場合には､ ウェブブラウザにインストールされる拡張機能やアドオンを制限することも重要です｡
第4に､ 仮想マシンや仮想化環境について考えるときにも､
いくつかの懸念がある｡
これにはマイグレーションやデータの残骸なども含まれる｡
さて､ 仮想環境を使う大きなメリットのひとつは､
仮想マシンを実行中でも､ あるホストから別のホストに移行できることだ｡
これはライブマイグレーションと呼ばれる｡
現在､ この移行はネットワーク上で行われる｡
そのため､ 仮想マシンを設定するサーバーと仮想マシンを受け取るサーバーの間で､
常に信頼できるネットワーク､ または適切な暗号化を利用したネットワーク経由でのみ移行が行われるようにすることが重要だ｡
しかし､ ライブマイグレーションが暗号化されていない接続で行われた場合､
その仮想マシンに含まれるデータが覗き見されたり､
オンパス攻撃を使った攻撃者によって完全性が損なわれたりする可能性がある｡
これを防ぐために､ 仮想マシン・イメージは､ あるサーバーから別のサーバーへネットワーク経由で送信される前に暗号化されるべきである｡
覚えておいてほしいのは､ サーバーはもはやデータセンター内にある単なる物理デバイスではなく､
何らかのファイルシステム上にある単なるファイルである仮想マシンでもあるということだ｡
そして､ これらのファイルは攻撃者に盗まれる可能性がある｡
クラウド環境で仮想マシンを利用する際のもう1つの大きな懸念は､
余分な仮想サーバーをデプロイした際に残る可能性のあるデータの残骸だ｡
多くのクラウドプロバイダーはブロックストレージを利用しており､
不要になったデータをストレージデバイスに残すことができる｡
適切に消去されなければ､ そのデータは権限のないユーザーによってアクセスされる可能性がある｡
このようなデータ残存の脅威を軽減するには､
仮想マシンの保存場所を常に暗号化し､
仮想マシンが不要になってデプロビジョニングされるたびに暗号化キーが破棄されるようにする必要があります｡
セキュリティの観点から最後に取り上げる必要があるのは､
仮想マシンのスプロール（VM Sprawl）だ｡
仮想マシンスプロールとは､ 1つまたは複数の仮想マシンを無秩序に展開することである｡
ネットワーク上に不正なVMが無許可でインストールされているのだ｡
つまり､ これらのマシンのシステム管理は行われていないということだ｡
そして､ その存在を知らないために､
セキュリティ・パッチやアップデートを行わず､
それらのマシンを保護するためにマルウェア対策やウイルス対策を施していない｡
このため､ これらのVMは攻撃を非常に受けやすくなる｡
もし攻撃者が､ VMスプロールが原因で発生した不正なVMを1つでも見つけることができれば､
そのVMに侵入して攻撃し､ そのVMを基点としてネットワークの残りの部分に侵入して､ VMエスケープやVMホッピングを試みることができるようになります｡
VMのスプロールは大きな問題で､
特にネットワーク上で作業する請負業者や開発者が多く､ 通常のチームの一員ではなく､
通常の変更管理プロセスに従っていない場合は､ この点に留意する必要がある｡
このレッスンでは､ あなたが考えるべきセキュリティ要件と､
そのセキュリティ要件に反する可能性のある脆弱性についてお話ししました｡
これには､ VMのエスケープ､ VMのホッピング､ サンドボックスのエスケープ､
仮想マシンのスプロールなどが含まれる｡