大学の研究者グループが、AppleのMシリーズチップに、暗号鍵へのアクセスに悪用される可能性のある脆弱性を発見しました。「GoFetch」と呼ばれるこの脆弱性は、攻撃者がユーザーの暗号化されたファイルにアクセスするために利用される可能性があります。
GoFetchの概要ウェブサイトで、研究者らは、GoFetchがMシリーズチップのデータメモリ依存型プリフェッチャー(DMP)を標的としていると説明しています。DMPは、実行中のコードが使用するメモリアドレスを予測することでパフォーマンスを最適化します。しかし、AppleのDMP実装は、メモリの実際の内容とメモリアドレスの予測に使用されるポインタを混同することがあり、「データとメモリアクセスパターンの混在を禁じる定数時間プログラミングパラダイムの要件に明確に違反しています」。攻撃者はこの混同を悪用し、暗号鍵のビットを正しく推測することで、鍵全体が明らかになるまで攻撃を続ける可能性があります。
GoFetchを使用する攻撃者はMacのルート権限を必要としません。必要なのは、ユーザーが通常持っているアクセス権限だけです。研究者たちはM1、M2、M3のMacでGoFetchを実行し、その結果を昨年12月にAppleに報告しました。IntelベースのMacに関する研究は今後予定されています。
GoFetchの研究者たちは、オンラインで公開されているGoFetchの論文で詳細な情報を提供しており、Appleが現在のチップアーキテクチャに基づいて修正を実装する方法も推奨しています。最も「抜本的な」修正はDMPを無効にすることですが、もう1つの可能性として、チップの効率化コアにはDMP機能がないため、これらのコアで暗号コードを実行するというものがあります。
その他の提案としては、暗号ブラインド化や、特定の攻撃ポイントを妨害するアドホック防御の実装などが挙げられます。長期的には、研究者らはAppleに対し、macOSにおけるDMPの使用をより適切に管理し、「セキュリティ上重要なアプリケーションの実行時にDMPを選択的に無効化する」方法を見つけることを推奨しています。
残念ながら、いかなる修正も暗号コード処理時のチップパフォーマンスに影響を与えるため、Appleはそれを犠牲にしたくないかもしれません。GoFetchは2023年12月5日にAppleにこの脆弱性について報告しましたが、Appleはまだ修正をリリースしていません。ArsTechnicaが指摘しているように、新しいM3チップのDMPには、開発者がこの機能を無効にするためのスイッチが搭載されています。しかし、研究者たちは、このパフォーマンス最適化をオフにした場合にどのようなペナルティが発生するかはまだ分かっていません。
GoFetchから身を守る方法
DMPの脆弱性は目新しいものではありません。2022年には、大学の研究者がAuguryというDMPエクスプロイトを初めて公開しましたが、当時は深刻なリスクではありませんでした。しかし、GoFetchに関しては、パフォーマンスの問題が原因と思われるため、Appleは未だこの問題に対処していないようです。
DMPベースの攻撃は一般的ではなく、ハッカーがMacに物理的にアクセスする必要があります。そのため、攻撃を防ぐ最善の方法は、Macのユーザーアカウントを強力なパスワードで保護し、知らない人にMacを使わせないことです。Macのセキュリティに関する詳細は、「Macがハッキングされたかどうかを確認する方法」と「Macのセキュリティはどの程度ですか?」をご覧ください。また、Macでウイルス対策プログラムを実行することも検討してください。
著者: ロマン・ロヨラ、Macworld シニアエディター
ロマンはMacworldのシニアエディターで、30年以上にわたりテクノロジー業界を取材し、MacをはじめとするAppleエコシステム製品を中心に活躍しています。Macworld Podcastのホストも務めています。彼のキャリアはMacUserで始まり、Apple認定修理技術者(当時はAppleがそのような制度を設けていた)として認定されました。MacAddict、MacLife、TechTVでも活躍しています。