以前は攻撃手法の開発で知られていたグラーツ工科大学(オーストリア)の研究者グループ
どのキャッシュ チャネルに特定のメモリ アドレスが含まれるかを予測するために使用される、CPU の 1 次データ キャッシュ (LXNUMXD) 内のチャネル予測メカニズム (ウェイ プレディクター) の実装に問題が確認されました。 AMD プロセッサで使用される最適化は、μタグ (μTag) のチェックに基づいています。 μTag は、仮想アドレスに特定のハッシュ関数を適用することによって計算されます。 動作中、チャネル予測エンジンはμTag を使用してテーブルからキャッシュ チャネルを決定します。 したがって、μTag を使用すると、プロセッサはすべてのオプションを検索することなく、特定のチャネルのみへのアクセスに制限できるため、CPU のエネルギー消費が大幅に削減されます。
2011 年から 2019 年にかけてリリースされたさまざまな世代の AMD プロセッサにおけるチャネル予測システム実装のリバース エンジニアリング中に、XNUMX つの新しいサイドチャネル攻撃手法が特定されました。
- Collide+Probe - 攻撃者が同じ論理 CPU コアで実行されているプロセスのメモリ アクセスを追跡できるようにします。 この方法の本質は、μTag の計算に使用されるハッシュ関数で衝突を引き起こす仮想アドレスを使用してメモリ アクセスを追跡することです。 Intel プロセッサで使用される Flush+Reload 攻撃や Prime+Probe 攻撃とは異なり、Collide+Probe は共有メモリを使用せず、物理アドレスを知らなくても機能します。
- ロード+リロード - 同じ物理 CPU コア上のメモリ アクセス トレースを非常に正確に判断できます。 この方法は、物理メモリ セルは L1D キャッシュに 1 回しか存在できないという事実に基づいています。 それらの。 異なる仮想アドレスで同じメモリ セルにアクセスすると、そのセルが LXNUMXD キャッシュから削除され、メモリ アクセスを追跡できるようになります。 この攻撃は共有メモリに依存しますが、キャッシュ ラインをフラッシュしないため、最終レベルのキャッシュからデータを追い出さないステルス攻撃が可能になります。
研究者は、Collide+Probe および Load+Reload 手法に基づいて、いくつかのサイドチャネル攻撃シナリオを実証しました。
- 588 つのプロセス間の隠れた間接通信チャネルを組織する方法を使用して、最大 XNUMX KB/秒の速度でのデータ転送を可能にする可能性が示されています。
- μTag の衝突を使用すると、ASLR (アドレス空間レイアウトのランダム化) のさまざまなバリアントのエントロピーを削減し、完全に更新された Linux システム上のカーネルで ASLR 保護をバイパスすることができました。 ユーザー アプリケーションから、およびサンドボックス環境で実行される JavaScript コードと別のゲスト環境で実行されるコードを使用して、ASLR エントロピーを削減する攻撃を実行する可能性が示されています。
- Collide+Probe 手法に基づいて、脆弱な実装から暗号化キーを回復する攻撃が実行されました (
Tテーブル ) AES 暗号化。 - データ取得チャネルとして Collide+Probe メソッドを使用することにより、Spectre 攻撃は共有メモリを使用せずにカーネルからプライベート データを抽出することができました。
この脆弱性はマイクロアーキテクチャに基づいた AMD プロセッサで発生します
ブルドーザー、パイルドライバー、スチームローラー、Zen (Ryzen、Epic)、Zen+、Zen2。
AMD は 23 年 2019 月 XNUMX 日にこの問題について通知されましたが、これまでのところ
出所: オープンネット.ru