NetSpectre:ネットワーク上の任意のメモリの読み取り (PDF警告)というタイトルのドキュメントで新しい攻撃が明らかにされました。私はそれがかなり遅い攻撃であるという事実についていくつかの非技術的な記事を見てきました:
最大の[欠点]は、攻撃の途方もない遅い抽出速度です。これは、ネットワーク接続を介して実行され、CPUのキャッシュに格納されたデータを標的とする攻撃の場合、15ビット/時間です。
アカデミックは、IntelのCPUに固有のCPUのAVX2モジュールを介して処理されるデータを対象とするNetSpectreのバリエーションにより、最大60ビット/時間のより高い抽出速度を達成しました。
オリジナルと同じ欠陥を使用しているようです Spectre :
スペクターバリアント1に関連する新しいリモートサイドチャネル攻撃と呼ばれる「NetSpectre」は、投機的実行を悪用して境界チェックのバイパスを実行し、リモートシステムでのアドレス空間レイアウトのランダム化を無効にするために使用できます。
それは何で、どのように機能しますか?
Q:それはなんですか?
A:一般的なリモートSpectreバリアント1攻撃。
Q:どのように機能しますか?
A:NetSpectre攻撃の構成要素は、リークガジェットと送信ガジェットの2つのNetSpectreガジェットです。
スペクター攻撃は、プログラムの命令の厳密に直列化された順序どおりの処理中には発生しない操作を投機的に実行し、秘密のチャネルを介して被害者の機密情報を攻撃者に漏らします。スペクターバリアント1は、境界チェックなどの条件付きブランチを誤ってトレーニングすることにより、被害者に投機的な実行を引き起こします。
攻撃はあらゆるSpectreバリアントを利用できますが、最も広く普及しているSpectreバリアント1に重点を置いています。さらに、Intelによると、MeltdownとSpectreのバリアント2とは対照的に、バリアント1は次のCPU生成のハードウェアで修正されません。
ローカルSpectre攻撃とは異なり、NetSpectre攻撃は2つのフェーズに分割されません。代わりに、攻撃者は常に操作を実行してプロセッサを誤ってトレーニングし、悪用される可能性のある投機的実行にプロセッサを常に実行させます。 NetSpectreは、プロセスの境界を越えて誤ったトレーニングを行わず、代わりに、有効な値と無効な値を交互に公開されたインターフェイス(有効なネットワークパケットと無効なネットワークパケットなど)に渡すことにより、インプレースでトレーニングします。
NetSpectre攻撃の場合、攻撃者は2つのSpectreガジェットを必要とします。これは、ネットワークパケットが受信された場合に実行されます。リークガジェットと送信ガジェットです。リークガジェットは、攻撃者が制御するインデックスでビットストリームにアクセスし、アクセスされたビットの状態に応じてマイクロアーキテクチャーの状態を変更します。送信ガジェットは、ランタイムがリークガジェットによって変更されたマイクロアーキテクチャの状態に依存する任意の操作を実行します。
大量のノイズに隠れて、攻撃者はネットワークパケットの応答時間のこのタイミングの違いを観察できます。