新しい研究論文によると、2011年から2019年の間に販売されたAMDプロセッサは、カーネルデータと秘密を抽出できる2つのサイドチャネル攻撃に対して脆弱である。
「Take A Way: AMD のキャッシュ ウェイ プレディクターのセキュリティへの影響の調査」と題された論文 [PDF] では、6 人の科学者 (Moritz Lipp、Vedad Hadžić、Michael Schwarz、Daniel Gruss (グラーツ工科大学)、Clémentine Maurice (レンヌ大学)、Arthur Perais (無所属)) が、AMD の L1D キャッシュ ウェイ プレディクターをリバース エンジニアリングして、メモリ内の機密データを公開した方法を説明しています。
セットアソシアティブキャッシュ内のキャッシュラインを検索する際の電力消費を抑えるため、AMDのCPUはウェイ予測と呼ばれる技術を採用しています。ウェイ予測により、CPUは特定のメモリアドレスに対して、すべてのキャッシュ位置をテストするのではなく、必要なキャッシュ位置を正確に予測することができます。これにより処理速度は向上しますが、予測ミスが発生した場合にはレイテンシが増加する可能性があります。
キャッシュの位置は、AMDが文書化していないハッシュ関数によって部分的に決定されます。このハッシュ関数は、メモリロードの仮想アドレスをハッシュします。研究者たちはこのハッシュ関数をリバースエンジニアリングすることで、アクセス時間の増加やL1キャッシュミスといった目に見えるタイミング効果を示すキャッシュ衝突を発生させることができました。これにより、完全にパッチが適用されたLinuxシステム、ハイパーバイザー、またはJavaScriptサンドボックスにおいて、カーネルデータの密かな流出、暗号鍵の復元、そしてASLR防御の弱体化が可能になります。
この種のタイミング攻撃により、攻撃者はシステムが特定の入力に応答するまでの時間に基づいて保護されたデータを推測できるようになります。
インテルのキャッシュフロー問題は継続中:さらなるデータ漏洩プロセッサ設計の欠陥が発見され、近日中にパッチがリリース予定
続きを読む
これら2つの攻撃は、関係する操作にちなんで「Collide+Probe」と「Load+Reload」と呼ばれます。前者はキャッシュタグの衝突を悪用し、後者は仮想アドレス予測器の動作が同じ物理アドレスにマッピングされる方法を悪用します。
「Collide+Probeを使えば、攻撃者は論理コアを時分割している場合でも、物理アドレスや共有メモリを知らなくても被害者のメモリアクセスを監視できる」と論文は説明しており、この技術は最大588.9kB/sのデータ転送速度で実証されていると指摘している。「Load+Reloadでは、ウェイ予測を利用して、同一物理コア上の被害者のメモリアクセスの痕跡を高精度に取得する」
Collide+Probeでは、攻撃者は標的マシン上で、被害者と同じ論理CPUコアを持つ非特権ネイティブコードを実行できると想定されています。また、被害者のコードは、ライブラリ内の関数呼び出しやシステムコールなど、攻撃者からの入力に応答すると想定されています。
Load+Reload の場合、攻撃者と被害者が同じ物理的で異なる論理 CPU スレッド上で、ターゲット マシン上で権限のないネイティブ コードを実行する機能も想定されます。
これらの攻撃にはローカル アクセスは必要ありません。研究者は、サンドボックス化された JavaScript と仮想化されたクラウド環境でその手法を実証しました。
研究者らによると、少なくとも2001年から2019年までの過去20年間に製造された以下のAMDチップには、悪用される可能性のある経路予測機能が搭載されているという。
- AMD FX-4100 ブルドーザー
- AMD FX-8350 パイルドライバー
- AMD A10-7870K スチームローラー
- AMD Ryzen スレッドリッパー 1920X ゼン
- AMD Ryzen スレッドリッパー 1950X ゼン
- AMD Ryzen スレッドリッパー 1700X ゼン
- AMD Ryzen スレッドリッパー 2970WX Zen+
- AMD Ryzen 7 3700X Zen 2
- AMD EPYC 7401p ゼン
- AMD EPYC 7571 ゼン
「これはソフトウェアのみの攻撃であり、権限のないコード実行のみを必要とします」と、論文の共著者の一人であるマイケル・シュワルツ氏はTwitterで述べた。「どのアプリケーションでも実行可能であり、攻撃の一つ(Collide+Probe)は、ユーザーの操作を必要とせずにブラウザ上のJavaScriptから実行できることも実証されています。」
研究者らは、いくつかの緩和策を提案している。ミスが多すぎる場合にキャッシュ ウェイ プレディクターを無効にするメカニズム、アドレス ハッシュの作成時に追加のデータを使用してより安全にする、別のユーザー空間アプリケーションに切り替えるときやカーネルから戻るときにウェイ プレディクターをクリアする、攻撃者がキャッシュ タグを監視できないようにする最適化された AES T テーブル実装などである。
AMDは土曜日、この論文に対する回答として、こうした攻撃を防ぐために追加の措置を講じる必要はないと示唆した。
「AMD製CPUに潜在的なセキュリティ脆弱性が存在するという新たなホワイトペーパーを我々は認識しています。この脆弱性により、悪意のある攻撃者がキャッシュ関連機能を操作し、意図しない方法でユーザーデータを送信してしまう可能性があります」と同社は述べた。「研究者らは、このデータパスと、既知かつ軽減済みのソフトウェアまたは投機的実行サイドチャネルの脆弱性を組み合わせました。AMDは、これらは新たな投機的攻撃ではないと考えています。」
もう一人の研究者、ダニエル・グルス氏はTwitterで、このサイドチャネルは未だ修正されていないと述べた。しかし、彼はこの技術が差し迫った脅威となるかどうかについては懐疑的な見方を示し、はるかに強力な攻撃であるメルトダウンが、誰も武器化していないように見えると指摘した。®