ニュース

新種のCPU脆弱性「GhostRace」をIBMが公表 ~Intel、AMD、ARMなどに影響

投機的実行と競合状態を組み合わせた新しい攻撃

投機的実行と競合状態を組み合わせた新しい攻撃「GhostRace」

 米IBMのセキュリティ研究チームは3月12日(現地時間)、投機的実行と競合状態を組み合わせた新しい攻撃「GhostRace」(CVE-2024-2193)を発表した。2023年後半に主要なCPUベンダー(Intel、AMD、ARM、IBM)とLinuxカーネルの開発チームへ事前に通知され、すべての関係者が報告された問題の影響を受けることを認めているという。

 投機的実行(speculative execution)とは、CPUの空きリソースを活用して条件分岐の先をあらかじめ実行しておくこと。CPUを高速化する手法の一つで、最近のCPUならばごく当たり前に実装されているが、2018年に「Meltdown」「Spectre」といったサイドチャネル攻撃(物理的観察により機密データを盗み出す手法)が相次いで発見。同一ホスト上の他の仮想マシンのデータへアクセスできる可能性があるため、仮想技術に依存するクラウド環境ではとくに深刻で、対策が進められてきた。

 一方の競合状態(race conditions)は、複数のスレッドが適切な同期を取らずに共有リソースにアクセスしようとするときに発生する問題で、多くの場合「concurrent use-after-free」と呼ばれる脆弱性につながる。そのため、OSは「ミューテックス」(共有リソースをロックして、他のプロセスが利用できないようにする)や「スピンロック」(共有リソースの利用状況をチェックする処理を繰り返しながら開放されるまで待つ)といった排他処理の仕組みを備えている。

 「GhostRace」で明らかにされたのは、競合状態を防止するために実装された諸実装がCPUの投機的実行を狙ったサイドチャネル攻撃(Spectre-v1)によりバイパスできてしまうということだ。投機的実行のサイドチャネル攻撃と競合状態が組み合わさっていることから、この攻撃手法は投機的競合状態(Speculative Race Conditions:SRCs)とも呼ばれている。公開された論文ではx86アーキテクチャーのCPUとLinuxカーネルに焦点が当てられているが、他の環境でも攻撃が成立するようだ。

Linux x86-64カーネルにおけるミューテックスロックのコア実装。赤い部分がSRCの細工を施させる部分

 CPUベンダーのうち、AMDはセキュリティアドバイザリをすでに公開済み。「Spectre」タイプの攻撃に関する既存のガイダンスに従うことを推奨している。