Intel プロセッサの脆弱性によりサードパーティのチャネルを介したデータ漏洩が発生

中国とアメリカの大学の研究者グループは、インテルのプロセッサーに新たな脆弱性を発見しました。この脆弱性は、サードパーティのチャネルを介した投機的操作の結果に関する情報の漏洩につながります。この脆弱性は、たとえば、隠された通信チャネルを組織するために使用される可能性があります。プロセス間での監視や、メルトダウン攻撃中のリークの検出などを行います。

この脆弱性の本質は、命令の投機的実行の結果として発生した EFLAGS プロセッサ レジスタの変更が、その後の JCC 命令 (指定された条件が満たされた場合にジャンプ) の実行時間に影響を与えることです。 投機的操作は完了せず、結果は破棄されますが、破棄された EFLAGS の変更は、JCC 命令の実行時間を分析することで判断できます。 投機的に実行されたジャンプ前の比較操作は、比較が成功した場合にわずかな遅延を生じますが、これを測定して、コンテンツを照合するための特徴として使用できます。

Intel プロセッサの脆弱性によりサードパーティのチャネルを介したデータ漏洩が発生

サードパーティのチャネルを介した他の同様の攻撃とは異なり、この新しい手法は、キャッシュされたデータとキャッシュされていないデータへのアクセス時間の変化を分析せず、EFLAGS レジスタを初期状態にリセットする段階を必要としないため、攻撃を困難にします。攻撃を検出してブロックします。 デモンストレーションとして、研究者らは投機的操作の結果に関する情報を取得するための新しい手法を使用したメルトダウン攻撃の亜種を実装しました。 メルトダウン攻撃中に情報漏洩を整理する方法の動作は、Ubuntu 7 および Linux 6700 カーネルを備えた環境の Intel Core i7-7700 および i22.04-5.15 CPU を搭載したシステムで正常に実証されました。 Intel i9-10980XE CPU を搭載したシステムでは、攻撃は部分的にのみ成功しました。

メルトダウンの脆弱性は、設定された権限によりユーザー プロセスからのアクセスが禁止されているため、命令の投機的実行中にプロセッサがプライベート データ領域にアクセスし、結果を破棄できるという事実に基づいています。 プログラムでは、投機的に実行されるブロックは条件ジャンプによってメイン コードから分離されます。条件ジャンプは実際の条件では常に起動しますが、条件ステートメントではプリエンプティブ コード中にプロセッサが認識していない計算値が使用されるためです。実行すると、すべての分岐オプションが投機的に実行されます。

Meltdown のクラシック バージョンでは、通常実行される命令と同じキャッシュが投機的に実行される操作に使用されるため、投機的実行中に、閉じられたメモリ領域の個々のビットの内容を反映するマーカーをキャッシュに設定することができます。通常実行されるコード内で、キャッシュされたデータとキャッシュされていないデータへのアクセス時間の分析を通じてその意味を判断します。 新しい亜種は、EFLAGS レジスタの変化をリークのマーカーとして使用します。 Covert Channel のデモでは、XNUMX つのプロセスが送信データを変調して EFLAGS レジスタの内容を変更し、別のプロセスが JCC 命令実行時間の変化を解析して、最初のプロセスによって送信されたデータを再作成しました。

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

コメントを追加します