Linux 6.2 カーネルに Spectre v2 攻撃保護をバイパスする可能性のある脆弱性

Linux 6.2 カーネル (CVE-2023-1998) で、異なる SMT またはハイパー スレッディング スレッド上で、同じ物理プロセッサ コア上で実行されている他のプロセスのメモリへのアクセスを許可する Spectre v2 攻撃に対する保護を無効にする脆弱性が確認されました。 この脆弱性は、とりわけ、クラウド システム内の仮想マシン間のデータ漏洩を組織するために悪用される可能性があります。 この問題は Linux 6.2 カーネルにのみ影響し、Spectre v2 に対する保護を適用する際の大幅なオーバーヘッドを削減するように設計された最適化が正しく実装されていないことが原因で発生します。 この脆弱性は、Linux 6.3 カーネルの実験ブランチで修正されました。

ユーザー空間では、Spectre 攻撃から保護するために、プロセスは prctl PR_SET_SPECULATION_CTRL を使用して投機的命令の実行を選択的に無効にするか、seccomp ベースのシステム コール フィルタリングを使用できます。 問題を特定した研究者によると、prctl を介した spectre-BTI 攻撃ブロック モードが含まれているにもかかわらず、6.2 カーネルでの不適切な最適化により、少なくとも 6.2 つの大規模クラウド プロバイダーの仮想マシンが適切な保護を受けられないままになっていました。 この脆弱性は、「spectre_v2=ibrs」設定を使用して起動される、XNUMX カーネルを搭載した通常のサーバーでも発生します。

この脆弱性の本質は、IBRS または eIBRS 保護モードを選択すると、最適化によって STIBP (Single Thread Indirect Branch Predictors) メカニズムの使用が無効になることです。STIBP (Single Thread Indirect Branch Predictors) メカニズムは、同時マルチスレッド テクノロジ (SMT またはハイパー スレッディング) を使用するときにリークをブロックするために必要です。 )。 同時に、eIBRS モードのみがスレッド間のリークに対する保護を提供しますが、IBRS モードは提供しません。これは、論理コア間のリークに対する保護を提供する IBRS ビットが、制御がユーザー空間に戻るときにパフォーマンス上の理由からクリアされるためです。これにより、ユーザー空間のスレッドが Spectre v2 クラスの攻撃から保護されなくなります。

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

コメントを追加します