Intel プロセッサの MMIO メカニズムの脆弱性

Intelは、プロセッサのマイクロアーキテクチャ構造を介した新しい種類のデータ漏洩に関する情報を公開しました。これにより、MMIO(メモリマップド入出力)メカニズムの操作を通じて、他のCPUコアで処理された情報を特定できるようになります。 たとえば、脆弱性により、他のプロセス、Intel SGX エンクレーブ、または仮想マシンからデータが抽出される可能性があります。 この脆弱性は Intel CPU にのみ特有のものであり、他のメーカーのプロセッサはこの脆弱性の影響を受けません。

この脆弱性は、Haswell、Skylake、IceLake、Broadwell、Lakefield、Kabylake、Cometlake、Rocketlake マイクロアーキテクチャに基づくプロセッサや、Xeon EP/EX、Scalable、および一部の Atom サーバー プロセッサを含むさまざまな Intel CPU に発生します。 攻撃を実行するには、MMIO へのアクセスが必要です。これは、たとえば、攻撃者が制御するゲスト システムの MMIO にアクセスする機能を提供する仮想化システムで取得できます。 Intel SGX (Software Guard Extensions) 分離エンクレーブを使用するシステムにも修正が必要になる場合があります。

脆弱性をブロックするには、マイクロコードの更新と、カーネルからユーザー空間に戻るとき、またはゲスト システムに制御を移すときにマイクロアーキテクチャ バッファの内容をクリアする VERW 命令の使用に基づく追加のソフトウェア保護方法の使用の両方が必要です。 同様の保護は、以前に特定された MDS (マイクロアーキテクチャ データ サンプリング)、SRBDS (特殊レジスタ バッファ データ サンプリング)、および TAA (トランザクション非同期アボート) クラスの攻撃をブロックするためにも使用されます。

マイクロコード側では、保護を実装するために必要な変更が、Intel CPU 用の 2022.1 月のマイクロコード アップデート (IPU 5.18.5) で提案されました。 Linux カーネルでは、新しいクラスの攻撃に対する保護がリリース 5.15.48、5.10.123、5.4.199、4.19.248、4.14.284、4.9.319、および XNUMX に含まれています。 MMIO の脆弱性に対するシステムの露出をチェックし、特定の保護メカニズムのアクティビティを評価するために、ファイル「/sys/devices/system/cpu/vulnerabilities/mmio_stale_data」が Linux カーネルに追加されました。 保護の包含を制御するために、カーネル ブート パラメータ「mmio_stale_data」が実装されています。このパラメータは、「full」(ユーザー空間および VM 内に移動するときにバッファのクリーニングを有効にします)、「full,nosmt」( 「フル」+さらに SMT/ハイパースレッドを無効にする)および「オフ」(保護が無効)。 Xen ハイパーバイザーと Qubes オペレーティング システムには個別の修正が提供されます。

特定されたクラスの脆弱性の本質は、一部の操作により、他の CPU コアでの実行後に残ったデータが、あるマイクロアーキテクチャ バッファから別のマイクロアーキテクチャ バッファにコピーまたは移動されることです。 MMIO の脆弱性により、この残留データが分離されたマイクロアーキテクチャ バッファからアプリケーションから見えるレジスタまたは CPU バッファに転送される可能性があります。 MMIO を通じて残留データを抽出するには XNUMX つの方法が確認されています。

  • DRPW (デバイス レジスタ部分書き込み、CVE-2022-21166) は、一部の MMIO レジスタへの書き込み処理が正しくない問題です。 書き込まれるデータのサイズがレジスタのサイズより小さい場合、フィル バッファからの残りの情報もレジスタにコピーされます。 その結果、MMIO レジスタへの不完全な書き込み操作を開始するプロセスは、他の CPU コアで実行された操作からマイクロアーキテクチャ バッファーに残っているデータを取得できます。
  • SBDS (共有バッファ データ サンプリング、CVE-2022-21125) は、すべてのカーネルに共通の中間バッファからの移動によって生じる、カーネル バインドされたフィル バッファからの残留データのリークです。
  • SBDR (共有バッファ データ読み取り、CVE-2022-21123) - 問題は SBDS に似ていますが、残留データがアプリケーションから見える CPU 構造内に残る可能性がある点で異なります。 SBDS および SBDR の問題は、クライアント システムのプロセッサおよび Intel Xeon E3 サーバー ファミリでのみ発生します。

Intel プロセッサの MMIO メカニズムの脆弱性


出所: オープンネット.ru

コメントを追加します