Googleは機密コンピューティングVMのデータにアクセスできますか?

Dec 01 2020

Googleなどのクラウドオペレーターは、通常のVMのスナップショットを撮ることができます。これには、CPUの状態、RAM、およびディスクが含まれます。次に、これを別の物理にコピーして、そこで再開できます。または、オフラインで分析して、メモリ内またはCPU状態の暗号鍵を抽出することもできます。

つまり、クラウドVMプロバイダーを信頼していない場合(クラウドVMプロバイダーは最悪の競合他社が所有している可能性があります)、それらのVMで機密データを処理しないでください。

https://cloud.google.com/confidential-computing ハードウェアRAM暗号化を含むAMDのSecureEncryptedVirtualizationを使用しているようです。 https://developer.amd.com/sev/

RAMが暗号化されていると、次のような攻撃を使用しにくくなります。 https://rambleed.com/

しかし、それはグーグルからも保護しますか?

RAMはCPUにあるキーで暗号化されているようです。しかし、GoogleがVMのCPU状態のスナップショットを取得するときに、このキーは含まれていますか?

理論的には、次のように機能することがわかりました。CPUには、AMDによって署名されたTLS証明書を備えた小さなWebサーバーがあります。Webサーバーにアクセスし、AMDの証明書を確認すると、GoogleがアクセスできないCPUへの安全な接続が確立されました。

次に、RAMを暗号化するための秘密鍵をCPUに渡します。次に、同じキーで暗号化されたディスクイメージを提供します。次に、VMを起動します。

秘密鍵が物理的にCPUを離れることができない場合、Googleが私のデータにアクセスすることは不可能です。RAMは暗号化され、ディスクとネットワークへのデータは暗号化されます。したがって、RAM、ストレージ、ネットワークのいずれも信頼する必要はありません。ただし、これは、GoogleがVMのスナップショットを作成して別のCPUに復元できないことも意味します。

これは、この回答が古くなっていることも意味します。 https://security.stackexchange.com/a/215927/84564

現在、Googleの現在のソリューションでAMD証明書を検証するのと同じようなことをする方法はありません。したがって、Googleがアクセスできないキーを安全に設定する方法がわかりません。

Googleは実行中の機密コンピューティングVMのスナップショットを取り、それを復元できますか?

AMDのSEVを使用すると、北朝鮮がデータにアクセスできなくても、北朝鮮の機密クラウド上で最も秘密のデータをCIAが安全に処理できます(AMDが信頼できると仮定しますが、CPU以外のすべてのハードウェアは北朝鮮で製造されています)韓国?

回答

2 OleTange Dec 02 2020 at 05:24

私が見つけた: https://www.youtube.com/watch?v=0-ISmJNxGiY

11:00〜15:30を見ると、内部Webサーバーに関する私の理論は設計方法にかなり近いようです。

したがって、これはそれが実際に可能であることを確認します。これは巨大です:CPUを信頼している限り、やがて信頼できないハードウェアで実行できるようになります。したがって、この答えは確かに時代遅れです:ホスティング会社がVMの暗号化キーにアクセスするのを防ぐ方法は?専任の攻撃者がAMDCPUを開いて、CPU内にワイヤーを接続する可能性があるため、答えは完全に間違っているわけではありませんが、特にAMDがCPUを改ざん防止に積極的にした場合、攻撃ははるかに困難になります。

しかし、Googleは15:00にスライドからの情報を提供していないようです(つまり、PDHを取得せず、CPUと直接通信できないため)、Googleはまだサーバーを制御しているようです。偽装されていない)中間者、つまりコントロールパネル。これは、AMDCPUで生成されているVMについて嘘をついている可能性があります。

これにより、Google ConfidentialコンピューティングVMは、同じサーバー上で実行されている他のVMからの攻撃からおそらく十分に保護されているという結論に至ります( https://rambleed.com/)が、現在Googleからの攻撃から保護されていません

ただし、GoogleがPDHへのアクセスを許可した場合、これは変更される可能性があります。

AMD Secure Processorからの証明書を使用して、Diffie-Hellmann(チップ承認キー)を使用して、この一意のCPUへの安全なチャネルを設定できます。 https://youtu.be/0-ISmJNxGiY?t=728 およびプラットフォームDiffie-Hellmann https://youtu.be/0-ISmJNxGiY?t=660)-httpsとほぼ同じで、信頼の連鎖に従って証明書が正しいWebサイトからのものであることを確認することもできます。

したがって、CPUの外部のハードウェアは、httpsを話すときのインターネットに似ています。暗号化されたデータしか表示しないため、ハードウェアを信頼する必要はありません(インターネットを信頼する必要がないのと同じです)。

別の言い方をすれば、通常のコンピューターでは、信頼できるとは思わないインターネットへの接続に問題はありません。暗号化を使用しているため、コンピューターに出入りするデータをスパイすると、暗号化されたデータしか表示されません。デジタル証明書を使用して、正しい受信者と通信していることを引き続き確認できます。

AMD SEVは、この制限をCPU内に移動するだけです。CPUに出入りするすべてのものが暗号化されます。また、クラウドのお客様は、デジタル証明書を使用して、独自のAMDセキュアプロセッサと話していることを確認できます。

ハイパーバイザー(マシン上で起動し、AMDセキュアプロセッサーへのインターネットアクセスを提供するために使用される最初のOS)は信頼できる必要はありませ。ハイパーバイザーはVMから分離されています。ハイパーバイザーは暗号化されたメモリの読み取りと書き込みはできますが、この暗号化のキーはできません(https://youtu.be/0-ISmJNxGiY?t=86)。VPNに少し似ています。信頼できない接続に信頼できる接続を搭載させることができます。

ハイパーバイザーはVMを制御できますが、VMの暗号化キーを設定することはできません。VPNを復号化せずにインターネット接続を制限できるISPに少し似ています。

信頼できるVMは、暗号化されていない、信頼されていないBIOS(https://youtu.be/0-ISmJNxGiY?t=563)。次に、このBIOSは信頼できるCPUによってハッシュおよび暗号化され、ハッシュが顧客に提供されます。このようにして、お客様はVMのBIOSが変更されたかどうかを知ることができます。顧客がハッシュを正しいものとして受け入れる場合、顧客は秘密を挿入します(たとえば、暗号化されたディスクイメージ、または信頼できないストレージに保存されている暗号化されたディスクイメージを開くためのキー)(https://youtu.be/0-ISmJNxGiY?t=639)、VMは暗号化されたRAMで起動します。

httpsとAMDSEVの類似点をまとめると:

特徴 HTTPSサーバー AMD SEV
信頼できない機能
高速ストレージ フルディスク暗号化SSD 暗号化されたRAM
遅い保管 暗号化されたリモートバックアップ フルディスク暗号化SSD
制御チャネル(「ネットワークトラフィック」) https暗号化 DiffieHellman暗号化
信頼できる機能 サーバー全体 AMDセキュアプロセッサ
証明書 httpsのTLS証明書 安全なプロセッサの証明書
証明する機関 例:Thawte AMD
高速ストレージの鍵 フルディスク暗号化キー RAM暗号化キー
遅いストレージの鍵 バックアップ暗号化キー フルディスク暗号化キー
キーストレージ 小さなブートディスク 安全な暗号化されたNVストレージ

CIAが北朝鮮の機密クラウドで機密データ処理を行うことをお勧めしますか(彼らが持っていると仮定して)?

いいえ:AMDのSEVは、攻撃者にとって非常に困難です。攻撃者は単にスナップショットを取り、それを使用することはできません。ただし、それでもメモリが破損する可能性があり、CPUを開く意思がある場合は、ワイヤを接続することでセキュリティを回避できる可能性があります。しかし、これらの攻撃は、通常のクラウドホスティングプロバイダーには届きません。

したがって、真に専用の邪悪なホスティングプロバイダーからは保護しませんが、顧客のデータを攻撃するための主要なリソースを持たないずさんなホスティングプロバイダーからは保護しているようです。

RDragonrydr Dec 05 2020 at 06:21

TL; DR:いいえ、保護することは不可能です。彼らはあなたの仕事をするコンピューターを所有しています。彼らはそれを改造することができたでしょう。それらはネットワークアクセスを制御します。彼らは受信者であるため、TLS通信を読み取ることができます。

編集:OPは、将来のコンピューティング技術に関する情報と、これが後で実現するかどうかについての情報を求めていました。それは単に実現可能ではありません。ある時点で、あなたは誰かがあなたのデータにアクセスできないことについて嘘をついていないことを信頼する必要があります。それがCPUメーカー、ホスティングプロバイダー、またはそこに到達するためのISPであるかどうかにかかわらず、彼らが言うことを実行するマシンへのキーを提供していると想定する必要があります。実際に入手してその特定のマシンを使用することを除いて、それを保証することはできませんそれでも、仮想の攻撃者と同じくらい多くの機器と知識が必要になります。なぜなら、彼らは少なくともあなたがそれを見つけることができるのと同じくらいそれを隠すことができるからです。そしてその時点で、あなたのテストマシンはおそらく発見を生き残ることができないでしょう、それであなたは新しいものを必要とするでしょう...


リンクAMDサイトから、鍵は...ハードウェアで発生した場合、それがBIOSで有効になっています。それ以外の場合、OSは少なくともプロセスに関与し、場合によってはそのキーを作成し(その間は脆弱です)、メモリコントローラーと通信してデータを直接暗号化します。

ただし、仮想化の場合、ハイパーバイザー(およびOS)はメモリコントローラーおよびそのキーのコレクションと相互作用します。これについてはよくわかりませんが、ハイパーバイザーが実際にキーを認識できないように構成されているように聞こえます。使用するキーを指定するだけです(また、キーはCPUレジスタで生成されます。 VMで画像化)。

それは素晴らしいように聞こえますが、私はそれを信頼しますか?もう少しかもしれませんが、それでも必ずしも安全ではありません。キーはRAMに保存されておらず、OSやGoogleからアクセスできない可能性がありますが、実際にシステムを使用していることをどのようにして知ることができますか?システムにはほとんど脆弱性が存在する必要があります(新しくて複雑です)。または、Googleが何らかのハードウェア改造を実行した可能性があります(マシンを物理的に保持しているため、表示されません)。IntelのMEエンジンのように物理的に停止することも可能かもしれないので、実行されていると思われますが、実際には何もしません。または、別のCPUを使用して適切な応答を取得するman-in-the-middle(MITM)を設定します。リクエストは通常​​のVMで実行されます。

このテクノロジーの前と同じように、あなたは実際にグーグルが「悪にならない」と信頼しなければなりません。あなたがそれを心配しているなら、おそらくAMDが「万が一に備えて」それらのキーを抽出する方法を持っているかどうか疑問に思うべきであり、あなたが心配する必要があるのはグーグルだけではありません。私が言及したIntelMEのことを覚えていますか?これは、コンピューターのすべてのハードウェアへの常時接続のバックドアです。AMDにも1つあり、システムにさらに多くの巻きひげがあり、無効にするのが困難です。その暗号化されたメモリコントローラーと通信できることはほぼ確実です。Googleは、マシンを所有するだけで、暗号化を実行するソフトウェアを実行するBIOSROMにアクセスできます。

そして最後に、VMへのネットワークアクセスを制御します。彼らは、あなたが送信したりダウンロードしたりするソフトウェアやコマンドを攻撃しようとする可能性があります。彼らはあなたの暗号化された接続をMITMすることができます(彼らはあなたが安全に接続するために使用している証明書を所有しています)。その「安全な」VMで実行されているOSで、パッチが適用されていないバグを使用できる可能性があります。アプリがWindowsXPのFlashで実行されている場合、なぜわざわざハードウェア攻撃を使用するのですか(私は本当に望んでいませんが、それは例です)。

あなたが言及した規則は、あなたがより洗練されたコンピュータを手に入れたとしても、依然として適用されます。Googleはそのマシンに完全にアクセスできます。それをどうするかは問題ではありません。この種のシナリオを安全に保つ方法はありません。特に、Googleと同じくらい多くの知識、ハードウェア、およびお金を持っている架空の敵に対してはそうです。