https://www.prsol.cc/wp-content/uploads/2025/01/apple-cpu.jpg

セキュリティ研究者チームが、ウェブブラウザから機密情報を盗み出す可能性のある、最新のアップル製プロセッサの新たなサイドチャネル脆弱性を公表した。

ジョージア工科大学(Georgia Institute of Technology)とルール大学ボーフム(Ruhr University Bochum)の研究者は、2023年10月に「iLeakage」と名付けられた別の攻撃を発表しているが、今回の新たな発見は、FLOPとSLAPという2つの別々の論文で発表された。

これらの欠陥は、スペクターやメルトダウンのような悪名高い攻撃の根本的な原因である、投機的実行の実装の欠陥に起因している。

FLOPとSLAPのサイドチャネル攻撃は、将来の命令を待つ代わりに推測することで処理を高速化することを目的とした機能をターゲットとしており、機密情報を引き出すためにメモリ上に痕跡を残すことができる。

「M2/A15世代から、アップルのCPUは、コアによってアクセスされる次のメモリアドレスを予測しようとします。

「さらに、M3/A17世代からは、メモリから返されるデータ値を予測しようとする。しかし、これらのメカニズムにおける予測ミスは、境界外のデータや誤ったデータ値に対して任意の計算が実行される結果となる可能性がある。

これらの予測ミスは、2つの論文で実証されているように、ウェブブラウザのサンドボックスをエスケープしたり、サファリやクロームでクロスオリジンの個人識別情報を読み取ったりするなど、現実世界のセキュリティに影響を及ぼす可能性がある。

この攻撃は、JavaScriptまたはWebAssemblyコードを含む悪意のあるウェブページを使用して、ウェブブラウザ経由でリモートで実行される。

研究者らは、2024年3月24日(SLAP)と2024年9月3日(FLOP)にアップルにこの欠陥を公表した。

アップルは、共有された概念実証を認め、問題に対処する予定であると述べた。しかし、本稿執筆時点では、欠陥は未解決のままである。

「この概念実証によって、この種の脅威に対する我々の理解が深まったので、研究者の協力に感謝したい」とアップルは述べている。

「我々の分析によれば、この問題は我々のユーザーに対して直ちに危険をもたらすものではないと考えている。”

FLOP

最初の論文は、Appleの最新のM3、M4、A17プロセッサの問題であるFalse Load Output Prediction(FLOP)について記述している。FLOPは、アクセスするメモリアドレスだけでなく、メモリに格納されている実際の値までも予測する。

これらのLoad Value Prediction(LVP)の推測が間違っている場合、一時的な計算に不正なデータが使用され、攻撃者はこれを悪用して機密情報を漏洩させることができる。

Apple CPUs vulnerable to FLOP attacks
アップル製CPU、FLOP攻撃に脆弱
出典:flop.fail

研究者らは、特定の定数値をロードし、誤った予測をトリガーする実行ループを介してAppleのM3 CPUを訓練した後、間違った推測を行うようにだますことで、FLOP攻撃を実証した。

CPUがこの誤った状態にある間、キャッシュタイミング攻撃によってデータがリークする。このリークは、研究者がメモリアクセス時間を測定し、CPUが修正する前に秘密の値を推測するのに十分な時間続く。

Overview of the attack
攻撃の概要
出典:flop.fail

研究者らはFLOPを通じて、Safariのサンドボックスからの脱出、Proton Mailの受信トレイからの送信者と件名情報の取得、Google Mapsの位置情報履歴の窃取、iCloudカレンダーからのプライベートイベントの復元を実証した。

Leaking data via FLOP
FLOPによるデータ漏洩
Source: flop.fail

SLAP

2つ目の論文は、AppleのM2とA15プロセッサ、そしてそれ以降のモデルの多くに影響を与えるSpeculative Load Address Prediction(SLAP)について説明している。

SLAPは、メモリロードがどのような値を返すかを推測するFLOPの代わりに、ロードアドレス予測(LAP)と呼ばれる、次にアクセスされるメモリアドレスの予測に関するものである。

Apple CPUs supporting LAP
LAPをサポートするアップル製CPU
出典:slap.fail

攻撃者は、CPUを「訓練」して特定のメモリ・アクセス・パターンを予測させ、メモリ・レイアウトを突然変更することで秘密のデータにアクセスするように操作し、次の予測が秘密を指すようにすることができる。

CPUはその予測を信頼し、間違いに気づいて修正する前に機密データを読み込んで処理するため、攻撃者はキャッシュタイミングやその他のサイドチャネルを悪用して、漏えいしたデータを推測することができます。

Overview of the SLAP attack
SLAP攻撃の概要
出典:slap.fail

SLAP攻撃を繰り返し実行することで、攻撃者はGmailの受信トレイデータ、Amazonの注文や閲覧データ、Redditのユーザーアクティビティの取得など、盗まれた情報を再構築することができる。

Data retrieved via SLAP
SLAPによって取得された秘密
出典:slap.fail

現実世界への影響

FLOP攻撃とSLAP攻撃は、最新の広く使われているハードウェアに影響を与えること、そして物理的なアクセスを必要とせずにリモートで実行できることから、重要な意味を持つ。

被害者は悪意のあるウェブサイトにアクセスするだけで、ブラウザのサンドボックス、ASLR、および従来のメモリ保護をバイパスして秘密が漏えいする。

デモウェブサイトで使用されているスクリプトは、アップル社のFLOPとSLAPを操作するために設計された一連のメモリロードを実行するため、マルウェアへの感染は必要ない。最新のブラウザは高度な計算を可能にするため、このケースでは事実上攻撃ツールとなっている。

アップル社からのセキュリティ・アップデートが提供されるまでは、サファリやクロームでJavaScriptをオフにすることが可能な緩和策となるだろうが、これでは多くのウェブサイトが壊れてしまうことが予想される。