Apple独自開発のいわゆるAppleシリコンに大規模な脆弱性が見つかった。Mac及び一部iPadに搭載されているAppleシリコンの「M1、M2、M3」チップに見つかった、「GoFetch」と名付けられたこの脆弱性は、CPUキャッシュから暗号情報を盗み出し、攻撃プログラムが盗んだデータから暗号鍵を作成し、アプリケーションが暗号化された機密データにアクセスすることを可能にするという。そして重大なことに、この問題はチップの設計上の問題であるため、緩和することは非常に難しいと言う事だ。
データメモリ依存型プリフェッチャー(DMP)を悪用する
GoFetchは、最先端のデータメモリ依存型プリフェッチャー(DMP)を悪用する物だ。DMPはAppleシリコンとIntelのRaptor Lake CPUアーキテクチャーにのみ搭載されている次世代プリフェッチャーで、現在実行中のコードによってアクセスされる可能性の高いデータのメモリアドレスを予測し、必要になる前にキャッシュにロードする。GoFetchは、プリフェッチャの見落とされた動作に関連しており、他のデータをロードするために使用されるポインタ値を特徴として、CPUキャッシュに重要な素材をロードする。これは、プリフェッチャが、次にフェッチするデータの予測値を決定するために、過去のアクセスパターンを使用しているためだ。攻撃者はこのような動作方法を利用して、プリフェッチされるデータに影響を与え、機密データへのアクセスへの扉を開くことが可能になるという
この脆弱性の問題は、プリフェッチャ関連のサイドチャネル/CPUキャッシュ関連の攻撃を打ち負かすために使用されるサイドチャネル緩和暗号化アルゴリズムであるコンスタント・タイム・プログラミングのセキュリティ効果を完全に無効にしてしまうことだ。その結果、GoFetchを利用するアプリケーションは、暗号化ソフトウェアを騙して機密データをキャッシュに入れさせ、攻撃アプリケーションに盗ませることができるという。
研究者らは、この攻撃は古典的な暗号化アルゴリズムだけでなく、新しい量子強化バージョンに対しても有効であるとしている。残念ながら、Appleシリコンのアーキテクチャに依拠する脆弱性であり、パッチによって修正する方法はない。唯一の方法は、M1、M2、M3の暗号化と復号のパフォーマンスを低下させるソフトウェアベースの緩和策である。技術的には、開発者は暗号化ソフトウェアを、このプリフェッチャを持たない効率コア上でのみ実行するように強制することができるが、これには明らかなパフォーマンスの低減に繋がる。
AppleのM3シリコンについては、開発者は特別な「スイッチ」をオンにすることで、チップのDMPを無効にすることができるとされている。しかし、これをオフにした場合、どれだけのパフォーマンス減少が見られるかは不明だ。恐らくソフトウェアによる緩和と同じようにパフォーマンスを妨げる可能性がある。
また、同じくDMPを採用するIntelのRaptor Lake CPUアーキテクチャ(第13世代と第14世代の両方のCPUを含む)については、Intelの実装はより制限的であり、攻撃を防ぐことができるという。
ちなみに、Appleシリコンの設計に関する問題は、今回が初めてではない。2022年、マサチューセッツ工科大学(MIT)の研究者たちは、ポインタ認証プロセスを利用したサイドチャネル攻撃「PACMAN」と呼ばれる修正不可能な脆弱性を発見し、報告している。
願わくはM4シリーズではこうした脆弱性がないことを。
論文
参考文献
コメントを残す