コンピューターサイエンスの研究者グループが、スペクターとメルトダウンの脆弱性の背景にあるデータ処理技術である投機的実行によってもたらされるセキュリティリスクを克服する方法を提案した。
今週、ArXivプレプリントサーバーを通じて配布された論文「SafeSpec: 漏洩のない投機的実行でメルトダウンの恐怖を追放する」の中で、カリフォルニア大学リバーサイド校、ウィリアム・アンド・メアリー大学、ビンガムトン大学のコンピューター科学者らは、投機的実行によって生成されたアーティファクトを分離し、特権データの収集に使用されないようにする方法を説明しています。
SafeSpec は「投機的な状態がコミットされた命令ではアクセスできない一時的な構造に保存される設計原理」であると、Khaled N. Khasawneh、Esmaeil Mohammadian Koruyeh、Chengyu Song、Dmitry Evtyushkin、Dmitry Ponomarev、および Nael Abu-Ghazaleh が共同執筆した論文で説明されている。
この論文では一時的な構造、あるいは「シャドウ構造」と呼んでいるものは、投機攻撃を防ぐ方法でメモリ階層を修正します。
「特に、ロードストアキューを拡張し、投機的にロードされたキャッシュラインを保持する一時的な連想構造へのポインタを格納できるようにしました」と論文には記されている。「また、投機的にロードされたTLB(トランスレーション・ルックアサイド・バッファ)エントリを保持するための同様の構造も導入しました。」
研究者らは、このアプローチによって、SpectreとMeltdownのデータ漏洩脆弱性に基づく現在知られている攻撃のバリエーションに加え、一時的な投機的攻撃と呼ばれる新しい種類の攻撃も修正できると主張している。この攻撃は、投機的に生成されたデータを分離するために使用されるシャドウ構造のサイズを変更することで軽減できると研究者らは主張している。
セキュリティに関する推測
現代のコンピュータチップのほとんどは、速度向上のために投機的実行を採用しています。命令群を並列処理する能力を最大限に活用するために、分岐予測器を用いてプログラムがどのパスを取るかを予測し、必要なときに必要な命令セットを実行します。
インテルチップの欠陥:数学ユニットが暗号の秘密をアプリに漏らす可能性 ― 最新のLinux、Windows、BSDは免れる
続きを読む
プログラムが予測されたパスをたどる場合、作業はすでに完了しているため、時間が節約されます。分岐予測の推測が間違っていた場合は、結果のデータは単に破棄されます。
この手法の問題点は、チップメーカーが今年初めに認めたように、投機的実行で処理されるコードが他の命令と同じ権限チェックを受けないことです。
その結果、ユーザー メモリを超えてカーネル メモリを調べるサイド チャネル攻撃を考案できるようになります。
当初はSpectreの亜種が2つ(CVE 2017-5753および2017-5715)とMeltdownの亜種が1つ(2017-5754)存在していました。その後、さらに3つの亜種(2018-3640、2018-3639、2018-3665)が出現しており、今後もさらに亜種が増える可能性があります。
これらの脆弱性は、コンパイラへの LFENCE 命令の追加、マイクロコードの更新によるプロセッサ インターフェイスの追加 (IBRS、STIBP、IBPB)、Windows、Linux、および macOS オペレーティング システムの変更、カーネル ページ テーブル分離 (KPTI)、Return Trampoline (Retpoline)、および PoisonIvy によって解決されています。
少なくとも当面はそうだろう。論文によると、Intelのエンジニアは、予定されているチップアーキテクチャの変更により、Spectreバリアント2として知られる間接分岐ターゲットインジェクション攻撃に対するGoogleの防御策であるRetpolineが破られる可能性があることを認識しているという。この脚注は明らかに出版を意図したものではなく、今後の改訂では残らない可能性がある。
いずれにせよ、SafeSpec は投機的実行を再び素晴らしいものにすることを約束します。
インテルのさらなる仕事
The RegisterはIntelにコメントを求めたが、記事掲載前に回答者を特定できなかった。しかしながら、Intelはこの調査について認識していると理解している。
この研究が検証され採用されれば、インテルや他のチップメーカーにとってさらなる仕事が増えることになる。
「SafeSpec では、投機的な状態を永続的な状態から分離するために CPU の大幅な再設計が必要です」と論文では説明されている。
The Registerとの電話インタビューで、カリフォルニア大学リバーサイド校のコンピュータサイエンスおよびエンジニアリングの教授であり、この論文の共著者でもある Nael Abu-Ghazaleh 氏は、SafeSpec が Intel の数値演算プロセッサに影響を及ぼす最近公開された Lazy FP 状態バグから防御できると考えている、と語った。
「スペクター/メルトダウンの他の亜種と同様に、投機的にアクセスされた浮動小数点状態はシャドウ状態に移行しますが、目に見えるアーキテクチャ状態には到達しないため、攻撃は阻止されます」と彼は述べた。
この脆弱性は、最近公開された別の亜種である投機的ストアバイパス(亜種4)にも対処しています。「この脆弱性の良い点は、投機の出所を問わないことです」と彼は述べています。
アブ・ガザレー氏は、SafeSpec がL1キャッシュにいくらかの追加スペースを必要とすることを認めつつも、ハードウェアの変更は最小限であると考えている。また、パフォーマンス面では、SafeSpec によってわずかな改善がもたらされる可能性があると述べた。
「経費の面から考えると、これは本当に実用的だと思う」と彼は語った。
これは完全な解決策ではありません。論文でも指摘されているように、分岐予測器やDRAMバッファなど、投機的命令の影響を受ける他のシリコン構造も強化する必要があります。
しかし、過去のパッチよりも優れている可能性があります。®