研究者らは、MeltdownとSpectreの脆弱性を悪用する新たな手法を開発しました。この手法は、異なるCPUコアのキャッシュ間で共有されるデータに対する投機的実行の影響を観察することで機能します。Meltdown/Spectreに対する既存のソフトウェア緩和策は、これらの新たな亜種に対しても有効であると考えられています。
以下は研究者の論文からの抜粋です。
我々は、2つの入力((i)ドメイン固有言語によるマイクロアーキテクチャの形式的記述 [...]、(ii)対象となるマイクロアーキテクチャ実行パターンの形式的記述)から、マイクロアーキテクチャを考慮したアセンブリ言語プログラムを自動合成するツールを開発しました。このツールは、セキュリティエクスプロイトのクラスを代表する、ユーザーが指定したあらゆる脅威パターンを誘発できる実装を考慮したプログラムを合成できます。
テストの過程で、メルトダウンとスペクターの脆弱性によって悪用される投機的実行手法は、CPUの共有キャッシュだけでなく、コアの個別キャッシュにも痕跡を残す可能性があることを発見しました。その原因は、多くのCPUに採用されている無効化ベースのキャッシュコヒーレンスプロトコルの設計にあります。
CPUキャッシュは、システムメモリの一部の小さなスナップショットです。メモリアクセスはキャッシュに存在しないデータに対してのみ行われるため、実際にはキャッシュがメモリの最新バージョンを保持しています。マルチコアCPUには、共有キャッシュとコアごとのキャッシュがあります。同じメモリを使用するコアはそれぞれ、そのメモリのスナップショットを個別のキャッシュに保持します。あるコアが自身のキャッシュを変更すると、メモリが変更されたのと同じことになり、他のコアのキャッシュは古くなります。キャッシュコヒーレンスプロトコルは、他のコアにキャッシュが無効であることを通知するプロセスです。
Meltdown/Spectre脆弱性は、共有キャッシュを永続的に変更し、ソフトウェアプロセス境界を越えて検出可能にすることで、投機的実行がソフトウェアによって検出されないという原則を破ります。研究者らは、特定のキャッシュがコア間で部分的にミラーリングされている可能性があるため、あるコアで発生した投機的実行の影響が別のコアでも検出可能であることを発見しました。この原則を利用したテストケースは、隠されたデータを99.95%の精度で復元できました。比較対象として、従来のSpectreエクスプロイトのテストケースでは、精度はわずか97.9%でした。
Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。
あまり心配しすぎないでください。研究者たちは、現在のソフトウェアベースのMeltdown/Spectre対策は、新しい脆弱性のブロックに成功しているようだと述べています。しかし、これらの脆弱性をハードウェアで軽減するには、従来のSpectre対策とは異なる独自の修正が必要になる可能性が高いでしょう。IntelとAMDは、次世代CPUで多くの課題に直面することになりそうです。