SLAPとFLOP: Appleのプロセッサーの脆弱性
先週、SLAP and FLOPと言うAppleプロセッサーの2種類の脆弱性が研究者から発表されました。
SLAPはM2とA15以降に存在し、FLOPはM3とA17以降に存在するそうです。僕のメインマシンのMacBook Pro (14-inch, Nov 2023)とiPhone 16 Proは、どちらも該当することになります。どちらの脆弱性もプロセッサーの高速化手法である、投機実行の仕組みを突いています。ネーミングは英単語に当てていて、よく考えていますね。
興味で、SLAPの論文"SLAP: Data Speculation Attacks via Load Address Prediction on Apple Silicon"を読みましたが、悪用の前半であるLoad Address Predictionの仕組みと、その悪用の仕方は理解できました。投機実行中のアドレス予測を外させることで、狙ったアドレスのデータを読み込ませています。しかし、悪用の後半であるデータの取得方法は概要すら書かれていません。投機実行ですから、外れた場合は元からキャンセルされてしまうので、通常のプログラムからは見えません。万一見えたら、プロセッサーの単なるかつ重要な不具合になってしまいます。おそらく、キャッシュメモリに格納されることによる性能の変化等を観察するのでしょうけど... 既存の技法を使うのか、書かれていません。
具体的な悪用は、悪いWebサイトを表示しているSafariのタブから、隣のタブの情報を読み出す例等が書かれています。
SLAPでくたびれたので、FLOPの論文は読んでいません。現時点で、ユーザーレベルでできる現実的な対応はないので、アクセスする先を注意する、と言うできそうで、たぶん何かの時に失敗するかもしれない、努力を継続するしかありません。