Intel CPUリングバスを介したデータ漏洩

イリノイ大学の研究者チームは、Intel プロセッサのリング インターコネクトを介して情報漏洩を操作する新しいサイドチャネル攻撃手法を開発しました。 この攻撃により、別のアプリケーションのメモリ使用量情報を強調表示したり、キーストロークのタイミング情報を追跡したりできます。 研究者らは、関連する測定を実行するためのツールといくつかのプロトタイプのエクスプロイトを公開しました。

以下を可能にする XNUMX つのエクスプロイトが提案されています。

  • サイドチャネル攻撃に対して脆弱な RSA および EdDSA 実装を使用する場合は、暗号化キーの個々のビットを回復します (計算遅延が処理されるデータに依存する場合)。 たとえば、EdDSA の初期化ベクトル (ノンス) に関する情報を含む個々のビットが漏洩すると、攻撃を使用して秘密鍵全体を順次回復するのに十分です。 この攻撃は実際に実行するのが難しく、多数の予約があれば実行される可能性があります。 たとえば、SMT (ハイパースレッディング) が無効で、LLC キャッシュが CPU コア間でセグメント化されている場合、正常な動作が示されます。
  • キーストローク間の遅延に関するパラメータを定義します。 遅延はキーの位置に依存し、統計分析により、キーボードから入力されたデータを一定の確率で再作成できます (たとえば、ほとんどの人は通常、「a」の後に「g」を入力するよりもはるかに速く「s」を入力します) 「す」)。
  • 共有メモリ、プロセッサ キャッシュ、CPU コア固有のリソースとプロセッサ構造を使用せずに、プロセス間で約 4 メガビット/秒の速度でデータを転送するための隠し通信チャネルを組織します。 提案された秘密チャネルを作成する方法は、サイドチャネル攻撃に対する既存の保護方法ではブロックすることが非常に困難であることに注意してください。

エクスプロイトには昇格された特権は必要なく、特権のない通常のユーザーでも使用できます。 この攻撃は仮想マシン間のデータ漏洩を組織化するために応用される可能性があることに留意されたいが、この問題は研究の範囲を超えており、仮想化システムのテストは実施されなかった。 提案されたコードは、Ubuntu 7 の Intel i9700-16.04 CPU でテストされました。 一般に、この攻撃手法は Intel Coffee Lake および Skylake ファミリのデスクトップ プロセッサでテストされており、Broadwell ファミリの Xeon サーバー プロセッサにも適用できる可能性があります。

リング インターコネクト テクノロジは、Sandy Bridge マイクロアーキテクチャに基づいたプロセッサで登場し、コンピューティング コアとグラフィック コア、サーバー ブリッジ、およびキャッシュを接続するために使用されるいくつかのループ バスで構成されています。 この攻撃手法の本質は、リング バスの帯域幅制限により、あるプロセスのメモリ操作により別のプロセスのメモリへのアクセスが遅延することです。 リバース エンジニアリングを通じて実装の詳細を特定することで、攻撃者は別のプロセスでメモリ アクセスの遅延を引き起こす負荷を生成し、これらの遅延を情報を取得するためのサイド チャネルとして使用することができます。

内部 CPU バスへの攻撃は、バスのアーキテクチャと操作方法に関する情報が不足していること、および高レベルのノイズによって妨げられ、有用なデータを分離することが困難になります。 バスを介してデータを送信するときに使用されるプロトコルのリバース エンジニアリングを通じて、バスの動作原理を理解することができました。 機械学習手法に基づくデータ分類モデルを使用して、有益な情報をノイズから分離しました。 提案されたモデルにより、複数のプロセスが同時にメモリにアクセスし、データの特定の部分がプロセッサ キャッシュから返される状況で、特定のプロセスの計算中の遅延を監視することが可能になりました。

さらに、Linux システムへの攻撃中に、Spectre 脆弱性の最初の亜種 (CVE-2017-5753) のエクスプロイトが使用された痕跡が確認されています。 このエクスプロイトは、サイドチャネル情報漏洩を使用してメモリ内のスーパーブロックを見つけ、/etc/shadow ファイルの i ノードを特定し、ディスク キャッシュからファイルを取得するためのメモリ ページ アドレスを計算します。

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

コメントを追加します