のグループ グラーツ工科大学の研究者 オーストリアで とヘルムホルツ情報セキュリティセンター (CISPA)、 新しいフォアシャドウ攻撃ベクトルを特定しました (L1TF)。これにより、Intel SGXエンクレーブ、SMM、オペレーティングシステムのカーネルメモリ領域、および仮想化システムの仮想マシンのメモリからデータを抽出できます。
元のフォアシャドウ攻撃とは異なり、 新しいバリアントはIntelプロセッサに固有のものではなく、影響します などの他のメーカーのCPU ARM、IBM、AMD。 さらに、新しいオプションは高性能を必要とせず、WebブラウザでJavaScriptとWebAssemblyを実行しても攻撃を実行できます。
Foreshadowは、メモリが仮想アドレスでアクセスされるときにその事実を利用します、例外(ターミナルページの障害)を生成すると、プロセッサは投機的に物理アドレスを計算し、L1キャッシュにある場合はデータをロードします。
投機的アクセスは、反復が完了する前に行われます。 メモリページテーブル。メモリページテーブル(PTE)エントリのステータスに関係なく、つまり、データが物理メモリ内にあり、読み取り可能であることを確認する前。
メモリの可用性チェックを完了した後、PTEに存在するインジケータがない場合、 操作は破棄されますが、データはキャッシュされ、取得できます サイドチャネルを介してキャッシュコンテンツを決定する方法を使用する(キャッシュされたデータとキャッシュされていないデータへのアクセス時間の変化を分析することによって)。
研究者は示しています その 伏線に対する既存の保護方法は効果がありません そして、それらは問題の誤った解釈で実装されています。
Foreshadowの脆弱性 カーネルでの保護メカニズムの使用に関係なく活用できます 以前は十分と考えられていました。
その結果、 研究者たちは、比較的古いカーネルを搭載したシステムに対してForeshadow攻撃を実行する可能性を実証しました、使用可能なすべてのForeshadow保護モードが有効になっているほか、Spectre-v2保護のみが無効になっている新しいカーネル(Linuxカーネルオプションnospectre_v2を使用)。
プリフェッチ効果は、メモリアクセス中のソフトウェアプリフェッチ命令またはハードウェアプリフェッチ効果とは無関係であることがわかっていますが、カーネル内のユーザースペースレジスタの投機的な逆参照から発生します。
脆弱性の原因のこの誤解は、当初、Foreshadowでのデータ漏洩はL1キャッシュを介してのみ発生する可能性があるが、カーネル内に特定のコードスニペット(プリフェッチデバイス)が存在すると、L1からのデータ漏洩に寄与する可能性があるという仮定につながりました。キャッシュ、たとえばL3キャッシュ。
明らかにされた機能は、新しい攻撃を作成する機会も開きます。 サンドボックス環境で仮想アドレスを物理アドレスに変換し、CPUレジスタに格納されているアドレスとデータを判別することを目的としています。
デモとして、研究者は示した 明らかにされた効果を使用する能力 約10ビット/秒のスループットでXNUMXつのプロセスから別のプロセスにデータを抽出します Intel Core i7-6500UCPUを搭載したシステム。
レコードのコンテンツをフィルタリングする可能性も示されています Intel SGXエンクレーブから(15ビットレジスタに書き込まれた32ビット値を決定するのに64分かかりました)。
Foreshadowの攻撃をブロックするには L3キャッシュ経由、 Spectre-BTB保護方式 (分岐ターゲットバッファ) retpolineパッチセットに実装されていると効果的です。
そのため、 研究者は、レトポリンを有効にしておく必要があると信じています CPU命令の投機的実行メカニズムの既知の脆弱性に対する保護がすでにある、新しいCPUを搭載したシステムでも。
その部分については、 Intelの代表者は、保護対策を追加する予定はないと述べた プロセッサに対するForeshadowに対して、Spectre V2およびL1TF(Foreshadow)攻撃に対する保護を有効にするのに十分であると考えます。