Spectreは主に分岐予測子の状態を利用することで機能することを理解しました。バウンドチェックバイパスと分岐ターゲットの注入は、同じコインの2つの面であり、投機的実行と分岐予測子の相互作用です。
さて、これを聞いた直後に、分岐予測子の状態をクリアするための指示が必要だと思いました。このような命令は、コンテキストをユーザー空間からカーネル空間に、またはその逆に、または2つのユーザー空間プロセス間で切り替えるときに使用できます。
どうやら私は一人ではありません。 Markは質問に対して優れた答えを持っています Spectreはどれほど悪いのですか? とMarkは同じことを提案します。これは Real World Techディスカッションフォーラム でも提案されています。
ただし、これはSpectreに対する完全な修正ですか?信頼できるコードを実行する同じユーザー空間プロセスで信頼できないコードを実行する必要があるJVMなどのVMはどうですか?この説明は、このようなVMのセキュリティ保護に役立ちますか?
予測子フラッシュ命令は必要ですが、Spectreからの保護には不十分です。 A Spectre攻撃に対する完全な保護には2つのことが必要です :