2018年にSpectreとMeltdownとして知られるデータ漏洩を引き起こす投機的実行の脆弱性を公開した科学者の中には、現在、Foreshadowの亜種を根絶する試みは的外れだったと主張する者もいる。
本日 ArXiv で配布予定の論文の中で、グラーツ工科大学の Martin Schwarzl、Thomas Schuster、Daniel Gruss、および Helmholtz Center for Information Security の Michael Schwarz は、コンピュータ サイエンスの世界が、Foreshadow を可能にするマイクロアーキテクチャの欠陥を誤解していることを明らかにしました。この欠陥は、マルウェアや脆弱なシステム上の不正ユーザーによって悪用され、Intel SGX エンクレーブ、オペレーティング システム カーネル、ハイパーバイザー アドレスなど、保護されているはずのメモリ領域からデータを抽出できる可能性があります。
論文「レジスタの投機的デリファレンス:Foreshadowの復活」では、この誤解に基づく防御策(例えば、KAISERとして知られるMeltdownの緩和策など)が、実際にはForeshadowに対して有効ではないことが詳述されています。そのため、緩和策が講じられているはずの古いカーネル、あるいはSpectreバリアント2の保護が削除されているパッチが完全に適用されたカーネルでも、Foreshadowを悪用することは依然として可能であるとされています。
「過去4年間に複数の学術論文で報告された影響が正しく理解されておらず、対策に関する誤った想定につながっていたことが判明しました」と、グラーツ工科大学セキュアシステムグループの助教授、ダニエル・グルス氏はThe Registerへのメールで述べています。「その結果、Foreshadowに対するパッチを適用し、すべての緩和策を有効にした古いカーネル、そしてSpectre-v2の緩和策のみを無効にした完全にパッチを適用したカーネルに対して、Foreshadow攻撃を仕掛けることが可能になりました。」
したがって、完全にパッチを適用した Intel 搭載 Linux サーバーでカーネル オプションを使用してnospectre_v2
セキュリティよりも速度を最適化し、それが Foreshadow の保護に影響しないと考えている場合は、もう一度考え直してください。マシンは Foreshadow に対して脆弱になっています。
Foreshadow(Intel用語でL1 Terminal Fault(L1TF)バグ)は、プロセッサの投機的実行を悪用し、サイドチャネル攻撃を介してIntel SGXエンクレーブのL1データキャッシュ内のプライベートデータを読み出すというものです。この脆弱性は、キャッシュから情報をプリフェッチする方法(つまり、必要になる前に収集する方法)を操作することで発生します。この先見的なデータ収集は、コンピュータ科学者が考えていた方法とは異なります。
メルトダウン続編がインテルチップを襲う – データ干渉LVIの欠陥に対する完全な緩和策でパフォーマンスが大幅に低下
続きを読む
「このプリフェッチ効果は、実際にはソフトウェアプリフェッチ命令やメモリアクセスによるハードウェアプリフェッチ効果とは無関係であり、カーネル内のユーザー空間レジスタの投機的な逆参照によって引き起こされることを発見しました」と論文は説明している。
この脆弱性の根本原因に関する誤解は、いくつかの意味合いを孕んでいます。まず、論文では、Meltdown は L3 キャッシュまたはメインメモリからリークするのに対し、Foreshadow は L1 キャッシュからのみリークするという誤った仮定について説明されています。
MeltdownとForeshadowのどちらも、データはL1キャッシュから取得する必要がありますが、プリフェッチガジェット(メモリ内のコードスニペット)を使用することで、この制限を回避することができます。つまり、必要なガジェットを備えたカーネルでは、L1キャッシュ外のデータ(例えばL3キャッシュ)に対してForeshadow攻撃を仕掛けることができると論文は述べています。
また、Foreshadow は AMD、Arm、IBM など、Intel 以外のベンダーの CPU コアに潜在的に影響を及ぼす可能性があり、論文で説明されているシナリオに基づくと、かなりゆっくりではあるが、ブラウザ ウィンドウ内の悪意のある JavaScript によってその影響が引き起こされる可能性があることも意味します。
幸いなことに、この論文に記載されている Foreshadow L3 攻撃に対する防御策として、Spectre-BTB (Branch Target Buffer) 対策を実装する方法があります。
「私たちの研究結果は、今のところ、Foreshadow のような影響の大きいマイクロアーキテクチャ攻撃を完全に軽減するためには、retpoline [改ざんされた分岐ターゲット バッファ エントリに対する防御] を最近の CPU 世代でも有効にしておく必要があることを示している」と論文は結論付けている。
したがって、Intelがさらなる修正プログラムのリリースを計画していないのも不思議ではありません。Intelの広報担当者はメールで、「この文書は、カーネルベース仮想マシン(KVM)において、緩和策の設定を実装するオプションが存在する特定のシナリオについて言及しています」と述べています。「Intelは、さらなる保護のためにV2とL1TFの両方の緩和策を有効にすることを推奨しています。Intelは追加の緩和策をリリースする予定はありません。」
AMD は、顧客が Foreshadow 防御を適用する必要はないと主張しており、コメントの要請には応じなかった。®