「Collide+Power」攻撃でパフォーマンスとセキュリティが再び衝突
ホームページホームページ > ニュース > 「Collide+Power」攻撃でパフォーマンスとセキュリティが再び衝突

「Collide+Power」攻撃でパフォーマンスとセキュリティが再び衝突

Oct 05, 2023

もう一週間、またBWAIN!

先週のポッドキャストをお聴きになった方ならわかると思いますが (ヒント、ヒント!)、BWAIN は Bug With An Impressive Name の略です。

S3 第145話 印象的な名前の虫たち!

これは、新しいサイバーセキュリティ攻撃の発見者がその発見に興奮し、PR 用のあだ名を付け、バニティ ドメイン名を登録し、カスタム Web サイトを構築し、特別なロゴをデザインするときに付けるニックネームです。

今回、Collide+Power という名前には厄介な句読点が含まれており、これはバグの名前付けにはプラスですが、インターネット ドメインを登録する場合にはマイナスになります。 (皮肉なことに、ドメイン名では - の使用は許可されていますが、+ の使用は許可されていません)。

そのため、ドメイン名を https://collidepower.com に少し短縮する必要がありましたが、追加記号を差し引いても、Web サイトでは問題の概要が表示されます。

この新しい論文の背後にある研究者は、オーストリアのグラーツ大学の Andreas Kogler、Jonas Juffinger、Lukas Givener、Martin Schwarzl、Daniel Gruss、Stefan Mangard と、ドイツの CISPA Helmholtz Center for Information Security の Lukas Gerlach と Michael Schwarz です。

この攻撃のさまざまな形態については、これ以上詳しく説明するつもりはありません。測定方法の技術的な詳細と、それらの測定から推論するために使用される数学的モデリングは複雑だからです。

しかし、部分的な語呂合わせをご容赦いただければ、問題の核心は、目に見えず自動的にパフォーマンスを向上させることを目的として、最新のプロセッサ チップ内に埋め込まれているキャッシュ メモリにあるのです…

…あなたが思っているほど常に目に見えないわけではなく、時にはそのコンテンツの一部またはすべてが、それを認識できないはずのプロセスにさえ漏洩する可能性があります。

名前が示すように、キャッシュ メモリ (気になったことがある方は、敬意や名声を意味する「カシェ」ではなく、ドルやセントのように「キャッシュ」と発音されます) は、従来の RAM からのデータ値の特別なコピーを CPU 内の隠れた場所に保持します。チップ自体。

CPU が最近使用した RAM アドレス (メモリの場所) を追跡しており、すぐに再び使用する可能性が高い RAM アドレスを十分に推測できる場合、それらをキャッシュ メモリに一時的に保持できるため、速度が大幅に向上します。それらの値への 2 回目のアクセス、3 回目、4 回目、というようになります。

たとえば、イメージ ピクセルを 1 つのカラー フォーマットから別のカラー フォーマットに変換するためにテーブル内の一連のデータ値を検索している場合、ほとんどの場合、ルックアップ テーブルはいずれかの RAM アドレス 0x06ABCC00 ( 「黒ピクセル」の特殊コードが保存されている場所)またはアドレス 0x3E00A040(「透明ピクセル」コードの場所である可能性があります)。

これらの一般的に必要な 2 つのメモリ アドレスの値をキャッシュに自動的に保持することで、CPU は将来これらのアドレスにアクセスしようとする試みを (文字通りではなく比喩的に!) 短絡できるため、プロセッサの外部に電気信号を送信する必要がなくなります。マザーボード全体に転送し、実際の RAM チップに転送して、そこに保存されているデータのマスター コピーを読み取ります。

したがって、キャッシュされたデータは通常、マザーボード RAM 内のデータよりもはるかに高速にアクセスできます。

ただし、一般的に言えば、どの RAM アドレスを格納するためにどのキャッシュ レジスタを使用するかを選択することはできません。また、CPU が「透明ピクセル コード」値のキャッシュをいつ停止し、別のプログラムの値のキャッシュを開始するかを選択することもできません。代わりに「超秘密暗号鍵」を使用します。

実際、キャッシュには、さまざまなユーザー アカウントと特権レベルのさまざまな混合に属する、RAM アドレスのさまざまな混合からの、さまざまな値の混合が同時に含まれる場合があります。

このため、効率とパフォーマンスの理由に加え、管理者レベルのプログラムであっても、キャッシュされたデータを外部スヌーピングから保護するために、現在キャッシュされているアドレスのリストを直接覗いたり、その値を取得したりすることはできません。

プログラマは、「アドレス 0x3E00A040 から透明ピクセル コードを読み出す」というマシン コード命令を依然として使用しており、オペレーティング システムは、たとえデータは最終的には、実際の RAM アドレス 0x3E00A040 からではなく、キャッシュから直接取得されます。