ニュース

Spectreと同じ分岐予測を利用した新たなCPU脆弱性「BranchScope」

~Haswell/Skylakeなどで実証に成功、Intel SGXを突破

SKylake世代のCore i7プロセッサのパッケージ

 ウィリアム・アンド・メアリー大学、カーネギーメロン大学、カリフォルニア大学リバーサイド校、ニューヨーク州立大学ビンガムトン校の研究者らは、CPUの分岐予測ユニットを利用した新たなサイドチャネル攻撃「BranchScope」を発表した。

 BranchScopeは、3月24~28日にかけて、米ウィリアムズバーグで開催された「ASPLOS 2018」にて発表されたもので、1月に発見された「Spectre」脆弱性と同じく、投機実行機能を利用して機密情報を盗み出すことが可能であるという。

 分岐予測ユニット(Branch Prediction Unit: BPU)を利用した攻撃のため、Spectreのvariant 2(Branch Target Ingection、以下Sprctre 2)と類似しているが、Spectre 2がBTU内の「分岐予測バッファ(BTB: Branch Target Buffer)」に対するサイドチャネル攻撃であったのに対し、BranchScopeでは、Pattern History Table(PTH)に格納された「方向予測(Directional Predictor)」を利用している点が異なる。

 IntelのSandy Bridge/Haswell/Skylakeプロセッサを使った実証実験では、ユーザー空間からの攻撃の成功を確認できたという。

 論文によれば、同じ仮想コア上でスケジュールされたプロセス間でのみデータを盗み出せた、Spectre 2のようなBTBベースの攻撃と異なり、ハイパースレッディングされたコア間でも攻撃が成功することを示したとしている。

 加えて、Intel SGX(Software Guard eXtentions/ソフトウェア保護拡張)の保護領域への攻撃も達成しており、アドレス空間配置のランダム化(ASLR)の無効化などについても説明している。

 脆弱性の緩和についても、ソフトウェア、ハードウェアの両面で言及しているが、ソフトウェアベースではIntel SGXのような隔離された領域に干渉できず、完全な対策にならないため、ハードウェアベースでPTHのランダム化、機密情報を扱うブランチの予測を省く、BPUのパーティショニングといった対策を盛り込むことを推奨している。

 なお、今回の論文では実証実験をIntel製CPUで行なっているが、そのほかのプロセッサについても影響があるのかについては不明。