アップデートされたGoogle Cloud は本日、VM ごとのキーを使用したオンザフライ RAM 暗号化機能を備えた、いわゆる Confidential Virtual Machines のベータ版の提供開始を発表します。
ここで詳しく説明するこれらのConfidential VMは、本日から始まる9週間のGoogle Cloud Nextカンファレンスに合わせてリリースされます。これらの仮想マシンは第2世代AMD Epycプロセッサを搭載し、チップのSecure Encrypted Virtualization(SEV)技術を使用してメモリ暗号化を実行します。
ホストサーバー上の各仮想マシンに、それぞれ独自の秘密SEV暗号鍵が割り当てられるという考え方です。この鍵は、ハードウェアのメモリコントローラによって使用され、VMのRAMページに書き込まれるデータを透過的かつ自動的に暗号化し、RAM領域から読み出されるデータを復号化します。したがって、個々のVMのSEV保護メモリを正しく復号化できるコードは、VM自体のソフトウェアのみとなります。他のものは、データを復号化するための正しい鍵を持つことはできません。
つまり、計画通りに進めば、他の顧客のVMや不正なGoogleスタッフ、あるいは侵害されたハイパーバイザーなど、マシン上の他のデバイスは、データを解読するための正しい鍵を持たないため、実行中のConfidential VMを直接スヌーピングすることはできません。AMDのSEVテクノロジーについては、以前こちらとこちらで取り上げました。後者のケースでは、Google社員がAMDのSEVテクノロジーを破壊し、脆弱性に対処するためにファームウェアのアップデートが必要になりました。
リーナス・トーバルズがインテルを捨て、個人用PCに32コアのAMD Ryzen Threadripperを採用
続きを読む
ここで理解しておくべき重要な点は、AMDのSEVテクノロジーは、ホストマシン上の他のコードやユーザーによるデータの盗難からデータを保護するということです。整合性保護はないため、侵入されたハイパーバイザーや不正なGoogle社員がSEVで保護されたVMのメモリに不正書き込みを行い、Confidential Virtual Machineの動作を妨害、終了、または干渉する可能性があります。
悪意のある読み書きを防ぐには、AMDが発表したばかりのSEV-SNPテクノロジーが必要です。SEVとSEV-SNPの比較はこちら[PDF]をご覧ください。Confidential VMsがSEV、SEV-SNP(Secure Nested Paging)、あるいはその中間的なSEV-ES(Encrypted State)のどれを採用しているかについて問い合わせました。これらの仮想マシンを実際に使用することに興味がある場合は、Googleの営業担当者にこの点について問い合わせることをお勧めします。
Confidential VMs は、Google の N2D インスタンスと Shielded VMs 上に構築されています。RAM アクセスをリアルタイムで暗号化・復号化することによるパフォーマンスへの影響についてご心配でしたら、Google も同様の対策を講じています。Google によると、システムのネットワークとストレージ トラフィックのスループットを向上させ、「Confidential VMs のパフォーマンス指標が非 Confidential VMs のパフォーマンス指標に近づくように」したとのことです。
Google Cloudのチームは、本日公開予定のブログ記事で、「当社のクラウドインフラストラクチャでは、マルチテナントアーキテクチャのセキュリティ確保のため、既に様々な分離およびサンドボックス化技術を採用しています。Confidential VMsは、メモリ暗号化を提供することで、クラウド内でワークロードをさらに分離できるようにすることで、この技術をさらに進化させます」と述べています。
「Confidential VMsは、すべてのお客様の機密データの保護に役立ちますが、特に規制の厳しい業界のお客様にとって興味深いものになると考えています。データは、使用中、インデックス作成中、クエリ実行中、トレーニング中も暗号化されたままになります。暗号化キーはVMごとにハードウェアで生成され、エクスポートできません。」
もう少し技術的に知りたい場合は、Google によると、裏で何が動いているかを見てみましょう。
Google は、Ubuntu v18.04、Ubuntu 20.04、Container Optimized OS (COS v81)、RHEL 8.2 を実行する Confidential VM を提供する予定で、CentOS、Debian、その他の OS のサポートも追って提供される予定です。®
追加更新
AMD の広報担当者は、Confidential VMs では SEV-ES や SEV-SNP ではなく SEV が使用されると語りました。