Vrije Universiteit Amsterdamのセキュリティ研究者は、IntelプロセッサとArmプロセッサの両方で実行されるSpectre v2攻撃に対するハードウェアによる軽減策には、分岐履歴インジェクションに対して脆弱になる根本的な欠陥があることを示した。
Spectre v2の脆弱性が公開された後、IntelとArmは、投機的実行において、さまざまな特権ドメインを分離することを目的としたハードウェア軽減策を取り入れた。研究者によると、軽減された分岐ターゲットインジェクションをベースとする攻撃は、比較的簡単に実行できたとのことだ。
特権のないユーザーランドの攻撃者は、任意の分岐ターゲットをユーザーランドから間接分岐予測にフィードします。インジェクトされたターゲットコードの場所に投機的にジャンプし、そこにあるコードが実行されるように、カーネルをだまします。
効果的な特権ドメインの分離であれば、そのような攻撃を確実に防ぐことができる。しかし、Intel eIBRSとArm CSV2として知られるIntelとArmの両方のハードウェア軽減策は、不完全な分離しか提供しておらず、新しい種類のサイドチャネル攻撃(CVE-2022-0001、CVE-2022-2396)によって避けられてしまうことが判明している。
ハードウェア軽減策によって、特権のない攻撃者がカーネルの予測エントリをインジェクトするのを防ぎます。しかし、予測子は、グローバルヒストリーを使って、投機的実行をするターゲットエントリを選択します。また、攻撃者はユーザーランドにあるこの履歴を汚染する可能性があります。これはカーネルに対して誤った予測をさせ、データをリークする、より「興味深い」カーネルターゲット(ガジェットなど)に仕向けるためです。
言い換えると、ハードウェア軽減策には、分岐予測履歴などの分岐予測に関係するすべての要素を分離できないという設計上の欠陥がある。
第31回USENIXセキュリティシンポジウム2022での公開が承認された論文で、その研究者はSpectre v2のハードウェア軽減策を実装しているIntel、Arm、AMDプロセッサによって提供されるセキュリティ保証を分析している。そして、完全に保護されたLinuxシステムから任意のメモリをリークできるエンドツーエンドのユーザーランドエクスプロイトを実行した。
その研究者は実際に、現在のハードウェア軽減策が効果的でないことを単に示すだけでなく、分離ベースのアプローチが実際に効果的でないことも示している(CVE-2022-0002)。
現時点では、Spectre v2攻撃を軽減するための唯一のアプローチは、レトポリンなどのソフトウェアによる防御だと研究者は述べている。
レトポリンは、間接分岐(つまり実行時に決定される分岐)をリターン命令に置き換えることにより、全体の分岐予測メカニズムを損なうため、効果的な防御となる。レトポリンは効果的な反面、一番な欠点はパフォーマンスへの悪影響である。
さらに、その研究者は、残っている攻撃対象領域を減らすために、非特権eBPFなどの悪用に適した機能を無効にすることを提案している。