Intel プロセッサに新しいクラスの脆弱性が導入されました

インテル опубликовала 新作情報 脆弱性クラス 彼らのプロセッサでは - MDS (マイクロアーキテクチャ データ サンプリング)。 これまでの Spectre 攻撃と同様、新たな問題により、オペレーティング システム、仮想マシン、その他のプロセスから個人データが漏洩する可能性があります。 この問題は内部監査中にインテルの従業員とパートナーによって最初に特定され、その後独立した研究者が同様の問題に関する情報をインテルに提供したと言われている。 AMD および ARM プロセッサはこの問題の影響を受けません。

グラーツ工科大学(オーストリア)の研究者が特定した問題に基づく 発展した いくつかの実際的なサイドチャネル攻撃:

  • ZombieLoad (PDF) - 他のプロセス、オペレーティング システム、仮想マシン、保護されたエンクレーブ (TEE、信頼できる実行環境) から機密情報を抽出できます。 たとえば、別の仮想マシンで実行されている Tor ブラウザでページを開いた履歴を特定する機能や、アプリケーションで使用されるアクセス キーとパスワードを特定する機能が実証されました。


  • リドル (PDF) - フィル バッファー、ストレージ バッファー、ロード ポートなど、インテル プロセッサーのさまざまな分離領域間での情報漏洩を許可します。 他のプロセス、オペレーティング システム、仮想マシン、保護されたエンクレーブからのリークを組織化する攻撃の例が示されています。 たとえば、定期的な認証試行中に /etc/shadow から root パスワード ハッシュの内容を見つける方法を示します (攻撃には 24 時間かかりました)。

    さらに、SpiderMonkey エンジンで悪意のあるページを開いたときの JavaScript と WebAssembly を使用した攻撃の例が示されています (最新の本格的なブラウザでは、タイマーの精度と Spectre に対する保護手段が限られているため、このような攻撃は起こりそうにありません)。

  • Fallout (PDF) - オペレーティング システムによって最近書き込まれたデータを読み取り、他の攻撃を簡素化するために OS のメモリ レイアウトを決定できるようにします。
  • ストアからリークへの転送 — ストレージ バッファを操作するために CPU の最適化を活用し、カーネル アドレス空間ランダム化メカニズム (KASLR) をバイパスしたり、オペレーティング システムの状態を監視したり、 組織 Spectre手法に基づくガジェットと組み合わせてリークします。

明らかに 脆弱性:

  • CVE-2018-12126 - MSBDS (マイクロアーキテクチャ ストア バッファ データ サンプリング)、ストレージ バッファの内容のリカバリ。 フォールアウトの攻撃で使用されました。 危険度は 6.5 ポイント (CVSS) と判断されます。
  • CVE-2018-12127 - MLPDS (マイクロアーキテクチャ ロード ポート データ サンプリング)、ロード ポートの内容の回復。 RIDL 攻撃で使用されます。 CVSS 6.5;
  • CVE-2018-12130 - MFBDS (マイクロアーキテクチャ フィル バッファ データ サンプリング)、フィル バッファの内容の回復。 ZombieLoad および RIDL 攻撃で使用されます。 CVSS 6.5;
  • CVE-2019-11091 – MDSUM (マイクロアーキテクチャ データ サンプリング キャッシュ不能メモリ)、キャッシュ不能なメモリ内容の回復。 RIDL 攻撃で使用されます。 CVSS3.8。

物質 アプリケーションが直接アクセスできないマイクロアーキテクチャ構造のデータにサイドチャネル分析手法を適用する能力の問題を特定しました。 ここでは、フィル バッファ (ライン フィル バッファ)、ストレージ バッファ (ストア バッファ)、ロード ポート (ロード ポート) などの低レベルの構造について説明します。これらは、1 次キャッシュ (L1D) やデータ ロード キャッシュ ( RDCL ) または L1TF (LXNUMX Terminal Fault) に応じて、含まれる情報が少なくなり、より集中的に更新されます。

Intel プロセッサに新しいクラスの脆弱性が導入されました

マイクロアーキテクチャ構造に対するサイドチャネル攻撃は、キャッシュの内容を復元する方法に比べて実行がはるかに難しく、メモリ内の特定のアドレスとの関係を判断するために大量のデータを追跡および分析する必要があります(本質的に、攻撃者は特定のデータを意図的に傍受することはできません)ただし、リークを蓄積し、統計的手法を適用して特定の種類のデータを再構築する時間がかかる場合があります)。 さらに、この攻撃は、攻撃者のコードと同じ物理 CPU コア上のデータにのみ影響します。

マイクロアーキテクチャ構造の内容を決定するために提案された方法は、これらの構造が例外 (フォールト) の投機的処理またはロードおよびストア操作中に使用されるという事実に基づいています。
投機的実行中、内部構造の内容は処理のためにレジスタまたはキャッシュにリダイレクトされます。 投機的な操作は完了せず、結果は破棄されますが、リダイレクトされたコンテンツはサイドチャネル キャッシュ分析技術を使用して特定できます。

ロード ポートは、メモリまたは I/O サブシステムからデータを受信し、受信した情報を CPU レジスタに提供するためにプロセッサによって使用されます。 この実装機能により、古いダウンロード操作のデータは、新しいデータで上書きされるまでポートに残ります。これにより、例外 (障害) と SSE/AVX/ 512 ビットを超えるデータをロードする AVX-64 命令。 このような状況では、ロード操作により、内部構造から依存する操作に古いデータ値が投機的に公開されます。 同様の方法で、リークは、CPU キャッシュへの書き込みを高速化するために使用され、アドレス、値、フラグのテーブルを含むストレージ バッファーと、データが含まれるフィル バッファーを通じて組織されます。はまだ L1 キャッシュにありません (キャッシュミス)。当面は他のレベルのキャッシュからロードされます。

Intel プロセッサに新しいクラスの脆弱性が導入されました

問題 影響を与える 2011 年以降に生産された Intel プロセッサー モデル (第 6 世代以降)。 この場合、ハードウェアの脆弱性は、第 8 世代および第 9 世代のインテル Core および第 2 世代のインテル Xeon スケーラブルの一部のモデルからブロックされます (IA32_ARCH_CAPABILITIES MSR の ARCH_CAP_MDS_NO ビットを使用して確認できます)。 脆弱性もすでに存在しています 排除された ファームウェア、マイクロコード、オペレーティング システムのレベルで。 インテルは、ほとんどのユーザーに対してパッチをアクティブ化した後のパフォーマンスの低下を推定しています を超えない 3%。 ハイパー スレッディング テクノロジが無効になっている場合、パフォーマンスの低下は SPECint_rate_base テストで最大 9%、アクティブな整数計算で最大 11%、サーバーサイド Java アプリケーションの実行時で最大 19% に達する可能性があります (HT が有効な場合、パフォーマンスの低下はほぼゼロになります)。パフォーマンスの低下はありません)。 パッチは I/O パフォーマンスにほとんど影響を与えません。

Linux カーネルは MDS から保護します 追加した 今日の 更新 5.1.2、5.0.16、
4.19.43、4.14.119、および 4.9.176。 保護方式 工事中 カーネルからユーザー空間に戻るとき、または VERW 命令が使用されるゲスト システムに制御を移すときに、マイクロアーキテクチャ バッファの内容をクリアします。 保護が機能するには、最新のマイクロコード更新で実装された MD_CLEAR モードのサポートが必要です。 完全に保護するには、ハイパー スレッディングを無効にすることもお勧めします。 システムが Linux カーネルの脆弱性にさらされているかどうかを確認するには 追加されました ハンドラー「/sys/devices/system/cpu/vulnerabilities/mds」。 さまざまな脆弱性ブロック モードの包含を制御するために、「mds=」パラメータがカーネルに追加されました。このパラメータは、「full」、「full,nosmt」(ハイパースレッドの無効化)、「vmwerv」、および「vmwerv」の値を取ることができます。 "オフ"。

パッケージのアップデートはすでにリリースされています RHEL и Ubuntu、しかし今のところ利用できないままです Debianの, フェドーラ и SUSE.
仮想マシンからのデータ漏洩をブロックする修正も 形成された Xenハイパーバイザー用。 別の仮想マシンに制御を移す前に L1D_FLUSH コマンドを発行する仮想化システムを保護し、Intel SGX エンクレーブを保護するには、マイクロコードの更新で十分です。

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

コメントを追加します