AMD SEV / SEV-SNP
AMD SEV / SEV-SNP とは何ですか?
AMD SEV / SEV-SNPAMD EPYC が各仮想マシンのメモリを暗号化し完全性を保護することで、悪意あるあるいは侵害されたハイパーバイザからゲストを隔離する技術。
AMD Secure Encrypted Virtualization(SEV)は、チップ上の AMD Secure Processor が管理する VM ごとの鍵で各仮想マシンのメモリを暗号化します。SEV-ES はこれを拡張し、VM 退出時のレジスタ状態も暗号化します。EPYC 7003 Milan で導入された SEV-SNP(Secure Nested Paging)は、逆マップテーブル(Reverse Map Table、RMP)によって悪意あるハイパーバイザによる再マップ・リプレイ・エイリアシングに対するメモリ完全性保護を追加します。SEV-SNP は機密コンピューティングのワークロード向けに、ゲスト測定値のリモート証明(VCEK/VLEK 連鎖)をサポートします。これは Azure Confidential VMs(DCasv5/ECasv5)、AWS Nitro Enclaves に隣接する製品群、Google Cloud Confidential VMs の基盤となっており、テナントは未変更の Linux/Windows ゲストを実行しつつ、クラウド事業者から暗号学的に隔離できます。
脅威モデルは意図的に強く設定されており——ハイパーバイザは敵対的であると仮定されます——、そのため研究者はその境界を探ってきました。CacheWarp(CVE-2023-20592)は 2023 年に CISPA、TU Graz、および独立研究者 Youheng Lu によって公表されたソフトウェアフォールトインジェクション攻撃で、悪意あるハイパーバイザが VM のキャッシュ書き込みを破棄してメモリを古い状態に巻き戻すことを可能にし、第 1 世代から第 3 世代の EPYC(Naples、Rome、Milan)で SEV-ES/SEV-SNP の完全性を打ち破ります。2024 年に公表された BadRAM(CVE-2024-21944)は、$10 未満のハードウェアで DIMM の SPD チップを改竄し、エイリアス化された「ゴースト」アドレスを生成して SEV-SNP のメモリ保護を回避します。AMD はマイクロコードおよびファームウェアの緩和策を提供しています。防御側は Secure Processor のファームウェアにパッチを適用し、ゲストを信頼する前に証明レポート内で報告された TCB バージョンを検証すべきです。
flowchart TB
subgraph Untrusted
HV[ハイパーバイザ / クラウド管理者]
end
subgraph EPYC SoC
ASP[AMD Secure Processor]
ME[メモリ暗号化エンジン + RMP]
end
G[ゲスト VM のメモリ] -->|VM ごとの暗号化鍵| ME
ASP -->|鍵を管理| ME
HV -.->|平文を読み取れない| G
ASP -->|測定値に署名| ATT[証明レポート VCEK/VLEK]
ATT -->|TCB と測定値を検証| Tenant[依拠当事者]機密コンピューティングでは証明のステップが不可欠です。ゲストは、いかなる秘密(ディスク鍵、ワークロードデータ)も渡される前に、正規かつ最新の AMD シリコン上で期待どおりの測定値で起動したことを依拠当事者に証明しなければなりません。
● 例
- 01
Azure DCasv5/ECasv5 機密 VM は AMD SEV-SNP を使用する。
- 02
機密 Kubernetes ノードはクラスタ参加前に証明レポートを検証する。
● よくある質問
AMD SEV / SEV-SNP とは何ですか?
AMD EPYC が各仮想マシンのメモリを暗号化し完全性を保護することで、悪意あるあるいは侵害されたハイパーバイザからゲストを隔離する技術。 サイバーセキュリティの 暗号 カテゴリに属します。
AMD SEV / SEV-SNP とはどういう意味ですか?
AMD EPYC が各仮想マシンのメモリを暗号化し完全性を保護することで、悪意あるあるいは侵害されたハイパーバイザからゲストを隔離する技術。
AMD SEV / SEV-SNP からどのように防御しますか?
AMD SEV / SEV-SNP に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
AMD SEV / SEV-SNP の別名は何ですか?
一般的な別名: SEV, SEV-ES, SEV-SNP, Secure Encrypted Virtualization。