New Downfall attacks steal encryption keys and sensitive data from Intel CPUs

Google の上級研究科学者が、複数の Intel マイクロプロセッサ ファミリに影響を及ぼし、同じコンピュータを共有するユーザーからパスワード、暗号化キー、電子メール、メッセージ、銀行情報などの個人データを盗むことを可能にする「ダウンフォール」と呼ばれる脆弱性を悪用する新しい CPU 攻撃を考案しました。

CVE-2022-40982 として追跡されているこの欠陥は、一時的な実行サイドチャネルの問題であり、Intel マイクロアーキテクチャ Skylake から Ice Lake に基づくすべてのプロセッサに影響します。

セキュリティ問題を悪用する攻撃者は、システム上のソフトウェアからメモリ コードとデータを分離する Intel のハードウェア ベースのメモリ暗号化であるSoftware Guard eXtensions (SGX)によって保護されている機密情報を抽出する可能性があります。

SGX は現在、サーバーの中央処理装置でのみサポートされており、オペレーティング システムですらアクセスできないソフトウェア用に信頼できる分離環境を提供します。

機密データを収集する

この脆弱性を発見し、責任を持ってインテルに報告した Google の研究者であるダニエル・モギミ氏は、彼のダウンフォール攻撃手法は「投機実行中に内部ベクトル レジスタ ファイルの内容を漏洩する」収集命令を利用していると述べています。

Gatherは Intel プロセッサのメモリ最適化の一部であり、メモリ内に散在するデータへのアクセスを高速化するために使用されます。ただし、モギミ氏は本日公開された技術論文で次のように説明しています。

「収集命令は兄弟 CPU スレッド間で共有される一時バッファを使用しているようで、データを後続の依存命令に一時的に転送します。データは別のプロセスに属し、同じコアで実行されている収集実行を実行します。」

Moghimi 氏は、Intel がこの問題を指すために使用している名前でもある Gather Data Sampling (GDS) と、GDS と 2020 年に公開されたLoad Value Injection (LVI) 技術を組み合わせた Gather Value Injection (GVI) という 2 つのダウンフォール攻撃手法を開発しました。

GDS 技術を使用して、Moghimi は、同じ CPU コアの兄弟スレッド上の各システムで、制御されている仮想マシン (VM) とは別の仮想マシン (VM) 上の AES 128 ビットおよび 256 ビット暗号キーを盗むことができました。

研究者は、10 秒未満で一度に 8 バイトずつ AES ラウンド キーを盗み、それらを組み合わせて暗号化を解読しました。

「100 個の異なるキーについて、AES-128 の最初の攻撃は 100% 成功しました。 AES-256 の最初の攻撃実行は 86% 成功しました。」

研究者は、マスター キーのデータが 10 秒以内に高頻度で表示されなかったため、試行が失敗したということは、キー全体を回復するには複数回攻撃を実行する必要があったことを意味すると指摘しています。

Moghimi は、暗号化キーとは別に、CPU がこの種の情報を SIMD レジスタ バッファにプリフェッチする 2 つの条件により、保存中の任意のデータを盗むことができる GDS 攻撃の亜種を提供します。

脅威の評価とマイクロコードのパフォーマンスへの影響

ダウンフォール攻撃では、攻撃者は被害者と同じ物理プロセッサ コア上に存在する必要があり、そのコンテキストは今日の共有コンピューティング モデルによって提供されるとモギミ氏は指摘します。

ただし、マルウェアなどのローカル プログラムがこの欠陥を悪用して機密情報を盗む可能性があります。

Intel は昨年 8 月にDownfall/GDS の脆弱性について知り、その調査結果について Moghimi 氏と協力しました。この問題を軽減するためのマイクロコードの更新が利用可能になりました。

この脆弱性の詳細は、相手先商標機器製造業者 (OEM) や通信サービス プロバイダー (CSP) がソリューションをテストおよび検証し、顧客に必要なアップデートを準備する時間を与えるために、ほぼ 1 年間非公開のままでした。

Intel は、この問題は Alder Lake、Raptor Lake、Sapphire Rapids には影響せず、ダウンフォールは次の 3 つのプロセッサ ファミリに影響を与えると述べました。

  • Skylake ファミリー (Skylake、Cascade Lake、Cooper Lake、Amber Lake、Kaby Lake、Coffee Lake、Whiskey Lake、Comet Lake)
  • タイガーレイクの家族
  • Ice Lake ファミリー (Ice Lake、Rocket Lake)

Intel の修復および対応エンジニアリング担当バイスプレジデントである Vivek Tiwari 氏は、「管理されたラボ環境の外でこれを悪用しようとすると、複雑な作業になるだろう」と考えています。

Intelは への声明で、顧客は同社からのリスク評価ガイダンスを確認し、WindowsとLinux、および仮想マシンマネージャー(VMM)で利用可能なメカニズムを通じてマイクロコード軽減策を無効にするかどうかを決定できると述べた。

このような決定は、ダウンフォール/GDS 緩和策による潜在的なパフォーマンス問題への懸念から、または問題が環境に対する脅威ではないために行われる可能性があります。

インテルは、特定の環境における問題の影響は最小限である可能性があると結論付ける、 脅威評価パフォーマンス分析情報の両方をお客様に提供します。

ハイ パフォーマンス コンピューティング (HPC) 環境に特有の、収集命令が頻繁に実行される状況では、潜在的な影響が存在します。

ただし、攻撃の状況とこれらの環境の一般的な構成により、この問題は HPC のコンテキストでは脅威とはみなされない可能性があるとチップメーカーは述べています。

「たとえば、攻撃者はターゲットと同じ物理コア上で実行され、信頼できないコードなどを実行できる必要がありますが、これらの環境では一般的ではありません。」 – Intel

ソフトウェアベースの軽減策

ダウンフォール/GDS 攻撃のリスクを排除するにはハードウェアの再設計が必要ですが、それには業界がまだ支払う準備ができていないコストがかかります。

ソフトウェアベースの代替手段も存在しますが、これらには注意事項があり、問題に対する一時的な解決策です。モギミ氏はそのような代替案を 4 つ提案していますが、そのうちの 3 つは重大な欠点があります。

  1. 同時マルチスレッディング (SMT) を無効にすると、GDS および GVI 攻撃を部分的に軽減できますが、ハイパースレッディングを切断するとパフォーマンスが 30% 低下し、コンテキスト切り替えによるリークが引き続き発生します。
  2. 影響を受ける命令がオペレーティング システムとコンパイラを通じて収集される秘密が漏洩するのを防ぐ。欠点は、一部のアプリが中断される可能性があり、いくつかの指示が見逃された場合でもリークが発生することです。
  3. 収集を無効にします。ここでの欠点は、命令を使用するアプリケーションが遅くなったり、壊れたりする可能性があることです。
  4. 収集命令後の一時的なデータ転送を防止すると (フェンス命令などのロード フェンスを追加)、ダウンフォールを軽減できます。これは、Intel が最新のマイクロコード アップデートで採用した解決策です。

しかし、モギミ氏は、問題の根本原因を排除しなければ、「自動テストでは事実上、CPU の新たな脆弱性を発見する可能性がある」と警告しています。

このようなツールは、ハードウェアとサポートされる命令をより適切にカバーする必要があるため、作成するのが簡単ではありませんが、ハードウェアの複雑さと独自の障壁を考慮すると、困難な作業です。

研究者はここで Downfall のコードを公開し、他の人がレビューして試すことができるようにしました。

ダニエル・モギミ氏は、明日開催される Black Hat USA セキュリティ カンファレンスで、Downfall の脆弱性と攻撃手法について講演する予定です。

Intel は、 CVE-2022-40982 のセキュリティ アドバイザリをリリースしました。現在、重大度は中程度で 6.5 です。同社の技術文書と、Downfall に関するモギミ氏のインタビューも公開されています。