ホストシステムが危険にさらされている場合、VMビルド(例:LinuxKitを使用)をどのように保護できますか?利用可能な方法はありますか、または常にホストのなすがままになっていますか?そして、内部で起こっていることを分離することは可能ですか? VMホストからのデータ漏洩を避けるために?
従来の仮想化モデルを使用して、ハイパーバイザーとゲストのすべてのコンポーネントが物理ハードウェアコンポーネントを共有します。この場合、ホストからVMを保護する試みは完全に難読化されており、決して真の保護ではありません。
VM=を侵害されたハイパーバイザーから保護するために、実際にはこのソフトウェア分離のためのハードウェアサポートが必要になります。クラウドコンピューティングの人気の高まりに伴い、多くのテクノロジーが実際に開発されています。具体的にはこれに対処します。
悪意のあるハイパーバイザーのアイデアからの従来の仮想化モデルを最も正確に反映するテクノロジーは、おそらく AMDのセキュアな暗号化仮想化 です。このテクノロジーは、サーバーの仮想化ですでにおなじみのKVM/QEMUインフラストラクチャで管理されます。
SEVはハードウェアサポートに依存して、実行中のVMのメモリコンテンツを暗号化できます。 AMDのセキュアプロセッサに対して、個別にVMを暗号化するように特別に要求が出され、ユーザーが保持していないか、このアクセスできないコプロセッサの外部のどこにも知られていないキーを使用して行われます。
VMが静止している場合は、画像の暗号化が懸念される場合は、SEVが必ずしも画像の暗号化をサポートしていないことに注意してください。それでも、ユーザー入力または何らかの形式の多要素認証がVMコンテンツが起動時にLUKSなどで暗号化されている場合、コンテンツを最初に復号化する必要があります。ただし、起動後、コンテンツはSEVで保護されたままになります。
悪意のあるまたは侵害された可能性のあるホストオペレーティングシステム内で安全な「信頼された実行環境」またはTEEを作成する同様のタスクを実行する他のテクノロジーが存在します。 IntelはSGX、またはSoftware Guard Extensionsを提供しています 、Intelハードウェア上にTEE(または「エンクレーブ」)を作成します。 SGXは通常、完全なオペレーティングシステムの仮想化よりも具体的なタスクに使用することを目的としています。代わりに、鍵の生成やデータの暗号化/秘密のストレージなど、外部で発生する他のステップの実行を保護および検証するためのコンポーネントとして機能するように設計されていますTEE。 SGXとSEVの比較を探している場合は、 この文書 をお勧めします。
ARMのTrustZone などの同様のテクノロジーがモバイルデバイスでも使用されています。これは、デバイスの暗号化や 指紋による認証 などの機能を侵害される可能性から保護するために使用される場合がありますホストによって。
要約すると、はい、VMまたはTEEを侵害されたホストハードウェアから完全に分離できますが、そのようなハードウェアがそのような保護を提供するように設計されている必要があります。
VMは、便宜上参照する抽象概念です。根本的な現実は、ホスト上で実行されるすべてのコードであるということです。実行されていないVMファイルを暗号化して保護できますが、実行中のVMクライアントはホスト上で実行され、ホストメモリとホストCPUを備えています。ホストはすべてへのアクセス。