AMD、AMD-Vハイパーバイザーに新しいセキュリティメカニズムを導入

AMDは Secure Encrypted Virtualization(SEV)と呼ばれるハイパーバイザー仮想マシンのメモリを保護するための新しいテクノロジーのリリースを発表しました 。 AMDの新しいテクノロジーは、Intel Software Guard Extensions(SGX)と呼ばれるIntelの別の同様のイニシアチブと類似点を共有します。 SGXとは異なり、SEVは仮想マシンメモリに対して同様の概念を提供しますが、この場合の保護はメモリブロックの内容を暗号化することによって構築されます。 仮想マシンメモリのプライベート部分はゲストキーで暗号化され、共有メモリは特別なハイパーバイザーキーで暗号化されます。



SEVは、ハイパーバイザーの制御下で複数のVMを実行することをサポートするAMD-Vアーキテクチャの拡張機能です。 有効にすると、SEVハードウェアはすべてのコードとデータにVM ASIDをタグ付けします。VMASIDは、データの送信元または送信先のVMを示します。 このタグは、SOC内では常にデータとともに保持され、所有者以外の人がそのデータを使用することを防ぎます。 タグはSOC内のVMデータを保護しますが、128ビット暗号化を使用したAESはSOC外のデータを保護します。 データがSOCを出入りするとき、関連するタグに基づくキーを使用してハードウェアによって暗号化/復号化されます。








SEVアーキテクチャ、仮想マシンのメモリの内容は、対称AESアルゴリズムと各仮想マシンの個別のキーを使用して暗号化されます。



したがって、メモリ内容の暗号化/復号化は、マイクロプロセッサレベル(System-on-Chip、SOC)で、データ自体が内部キャッシュにある時点で発生します。 データがマイクロプロセッサーの内部メモリーにロードされると、暗号化が解除され、アンロードされると暗号化されます。









SEVを使用すると、個々のアプリケーションのメモリを分離して暗号化し、不正アクセスから保護することもできます。



AMDの専門家は、メモリブロックの分離と暗号化は、仮想マシン全体のレベルだけでなく、Intel SGXで提供される個々のアプリケーションのレベルでも発生する可能性があることを示しています。



SEVは、良性であるが脆弱な(完全に悪意のない)ハイパーバイザーからゲストVMを保護するように設計されています。 特に、ゲストVMの攻撃対象領域を減らし、ゲストデータを盗むために特定のタイプのVMエスケープバグ(たとえば、ハイパーバイザーの読み取り専用)が使用されるのを防ぐことができます。


SEVにより、アプリケーションは、より高い特権レベルのアプリケーションからだけでなく、潜在的に脆弱なハイパーバイザー、VMエスケープなどの攻撃に対して攻撃者が使用できる脆弱性からもメモリ領域を保護できます。









SEVの使用例。



上の図は、SEVの典型的な使用例を示しています。 仮想マシン(ゲスト)は、仮想ページにコードとアプリケーションデータをプライベート(つまり、暗号化される)としてマークし、プロセスページのテーブルがあるメモリページにも保護対策が必須です。 ハイパーバイザーと仮想マシンの両方で利用可能なサービス共有データ(共有)は、パブリックとしてマークされます。 メモリのプライベート部分のすべてのコンテンツは、ハイパーバイザーに認識されていない特定の仮想マシンの個別のキーを使用して暗号化されます。 共有メモリの内容は、ハイパーバイザーキーを使用して暗号化されます。



SEVの詳細な説明は、AMDのマニュアルに記載されています



All Articles