はい。Specterはホスト/ゲスト、ゲスト/ホスト、ゲスト/ゲストの境界を越えることができます。これはCPUレベルの欠陥であり、潜在的に機密情報がCPUコアで実行されるあらゆるものに漏洩する可能性があるためです。
インターネット上のニュース記事のほとんどは、クラウドプロバイダーが仮想化されたシステムの大規模なクラスターを有し、機密情報を漏らすために悪用される可能性があるため、これにより最悪の打撃を受けていることについて語っています。
大規模なプロバイダーのほとんどは、できる限り最善の方法で欠陥に対してパッチを適用する必要がありますが、これはしばらくの間私たちと一緒に生きる問題になるでしょう。
Security.SEには、これに関する標準的なQ&Aがあり、VMについて言及しています。
仮想マシン/コンテナを実行していますが、どの程度まで脆弱ですか?
あたりとしてステファン・ウルリッヒの答え
- メルトダウン攻撃はVMを通過せず、カーネルメモリをローカルプロセスにリークするだけです。
- SpectreはVM間で機能します。
また、Steffenから、MeltdownとSpectreはコンテナで動作します。コンテナはホストカーネルに依存しているためです。
VMは、システム内の実際のCPUを使用しますが、一部の特権命令はトラップされ、リダイレクトされます。ホストと同じキャッシュと命令を使用します。基本的には、システムの物理CPU内の別のレイヤーです。
仮想化は、できるだけ抽象化せずに物理CPUを使用し、CPUハードウェアに依存して分離を提供するため、高速です。qemuのようなものは、ハードウェアCPUではないため安全なエミュレーションを実行できますが、はるかに遅く、仮想化とは異なります。
Security.se正規のポスト再び:
スペクターは異なるレベルで動作し、ユーザー空間からカーネル空間データへのアクセスを許可しません。この攻撃では、攻撃者は投機的実行をだまして、命令を誤って誤って実行します。一言で言えば、予測子は特定の分岐結果を予測するように強制され(-> trueの場合)、犠牲プロセスが通常は要求しなかった範囲外のメモリアクセスを要求し、不正な投機的実行をもたらします。次に、サイドチャネルで、このメモリの値を取得します。このようにして、被害者プロセスに属するメモリが悪意のあるプロセスにリークされます。
そのため、VMは実際のCPUハードウェアで実行され、必要なのは特定のループを実行して投機的実行エンジンを「トレーニング」するだけです。次に、正確なタイミングを使用して、悪用しようとしているホストまたはゲスト(または他のVM)プロセスを示す特定のアクセスパターンのキャッシュを監視します。
このように、それはマシンがあらゆる方向で悪用可能であることを意味します。ホストからVM、VMからホスト、VMからVM。
はい、それは決して簡単ではなく、ホストの気まぐれでVM CPUコアが変更され、ホストも異なるコアでタスクを喜んでスケジュールすることができますが、長期間にわたって十分な情報いくつかの重要なシステムまたはアカウントへの秘密鍵を放棄するために漏洩する可能性があります。十分な時間と適切にステルスなソフトウェアを考えると、すべてが潜在的にオープンです。
「安全な」VMが必要な場合は、コアが分離されていることを保証する必要があります。この攻撃をブロックする唯一の本当の方法は、ホストとVMが特定のコアのみを使用するように「強制」することであり、同じハードウェアで実行されることはありませんが、これはできないため、コストの効果的な増加につながります特定のホストに同じ数のVMがあります。使用可能なコアよりも多くのVMを実行することで逃げることはできません。これは、多くのシステムがその90%の期間アイドル状態にあるため、「低負荷」サーバーで行われることです。