Apple M1、M2、M3のキャッシュフェッチ機能に脆弱性……サイドチャンネル攻撃が出来る「GoFetch」
tomshardware.comの記事である。
これ仕組みがなかなか面白い。
Data Memory-dependent Prefetcher(クリックするとIntelのDMP説明に飛びます。AppleのMと同じ仕様ではありませんが実装理論は同様のものです。)では、過去の参照整合やプログラムパターンから、アドレスの予測が行われることで、データのキャッシュラインに対する指示を待たずに、先読み出来る。それが、プリフェチである。この機能はこれまでサイドチャンネル攻撃によって崩されたことがあるので、その対策として暗号化による隠蔽隠匿や権限の厳格なチェックが一定のサイクルレベルで行われる。
今回のこの攻撃はアドレスラインに対する隠匿が行われ実データにはアクセス出来ないので、直接攻撃はしないというのが新しい。
不正な指示であれ、ある細工されたアドレスやポインター情報を含む処理を送ると、名目上(本来ラベルとして振っているはず)の位置(ポインター)情報は、返してくるというのを逆に利用するというもののようだ。
この名目上の回答が、アドレス予測に基づくポインターで割り当てる位置情報に似たものになることから、このポインター情報を元に今度はデータを読み取るよ。このポインターでお願いしますと正規の処理発行を行うと、その中の機密データが読み取れるよ……といういわゆる「なりすまし」手法による攻撃だ。
この手の攻撃は、持続継続的にこの脆弱性に攻撃を続ければ、高高度な暗号鍵を完全な形で読み取れる可能性が高いので、緊急度と危険性が極めて高い攻撃手法として発表されているようだ。
尚これに対して対策を講じると性能の大幅な低下が伴う恐れがあることも示されている。まあ、キャッシュ系の先読み機能で脆弱性が見つかると、遅延対策が機能を失うため、プリフェチに強く依存して遅延を低減しているプログラムは激烈に速度が落ちるだろう。
ただ、サイドチャンネル関連の攻撃は、実質的に常時メモリーに常駐して、その処理をさせ続ける必要があるわけで、一般的なクライアント環境で、この攻撃に晒される可能性は低いだろう。リモートサポート詐欺などに騙されれば可能性はある。そのため、すぐに影響がある問題ではないと言える。ただし、Windowsとは違ってAppleの場合は、クローズドプラットフォーム故に、大規模攻撃が始まっていても、気が付かなかったということも過去にはあったので、今セキュリティサポートが続いている間は良いが、今後M1などのセキュリティサポートが終了していくと、この攻撃が水面下で始まるだろう。まだ、M1のOSサポート終了はだいぶ先の話だろうと思うので、すぐに影響はないだろう。

Apple 2024 MacBook Air M3チップ搭載13インチノートブック: 13.6インチLiquid Retina ディスプレイ, 8GB ユニファイドメモリ, 256GB SSD ストレージ, バッ クライトキーボード, 1080p FaceTime HD カメラ, Touch ID。iPhone や iPad との連係 機能, ミッドナイト