検索
特集/連載

秘密鍵が盗まれる「Appleシリコンの脆弱性」は修正困難……苦肉の策とは?GoFetch攻撃の手口と対策【後編】

Macから秘密鍵を盗み取る攻撃「GoFetch」は、SoC「M」シリーズの脆弱性を突くものだ。この脆弱性はマイクロアーキテクチャの欠陥に起因するため、簡単に修正する方法はないという。どのような対策があるのか。

Share
Tweet
LINE
Hatena

 Appleのクライアントデバイス「Mac」用のSoC(統合型プロセッサ)「M」シリーズの脆弱(ぜいじゃく)性を悪用し、秘密鍵を盗み取る攻撃手法「GoFetch」を、米国の学術研究グループが発表した。イリノイ大学アーバナ・シャンペーン校(The University of Illinois Urbana-Champaign)の研究者らで構成する研究グループが、論文「GoFetch: Breaking Constant-Time Cryptographic Implementations Using Data Memory-Dependent Prefetchers」で報告したものだ。

 研究グループによると、GoFetchにつながる脆弱性はマイクロアーキテクチャ(マイクロプロセッサ内部の設計)の欠陥に由来するため、簡単に修正する方法はない。どのような対策があるのか。

GoFetchに対する“考えられる対策”とは

 Mシリーズには、エンドユーザーが将来アクセスするメモリアドレスを予測し、そのデータをメインメモリから先に読み込んでおくことで、処理時間を短縮させる「DMP」(Data Memory-Dependent Prefetcher)という機能が備わっている。GoFetchは、この機能を悪用している。

 “抜本的な解決策”になり得るのは、MシリーズのDMPを無効化することだ。ただしDMPを無効化すると、処理時間のパフォーマンスが低下する可能性がある。考えられる対策の一つは、DMPを搭載していないMシリーズの高効率コア「Icestorm」で、全ての暗号化を実行することだ。だが研究グループは、そのような対策は「パフォーマンスの低下を招く」と指摘する。

 GoFetch攻撃から秘密鍵の漏えいを防ぐための特別な仕組みを適用する方法も考えられる。しかし研究グループは「全ての暗号ライブラリに対し、DMPのためだけにソースコードの変更を加える必要があることが欠点の一つだ」とその問題点を指摘する。パフォーマンスが大幅に低下する可能性もあるという。

 Appleの広報担当者によれば、考えられる対策の一つになるのは、影響のあるチップで「DIT」(data-independent timing)という機能を有効化することだ。DITを有効にすると、プロセッサがデータに関係なく、より長時間をかけて処理を実行する。Appleは「機密データを一定時間かけて処理するソフトウェアで、情報漏えいを避ける場合」にDITを実行することを推奨している。

 研究グループは、機密データの漏えいを防ぐには、DMPの適用方法をより適切に制御できるようにマイクロアーキテクチャの設計を変更する必要があると結論付けている。

 研究グループは「Apple M1」「Apple M2」「Apple M3」への攻撃を検証したが、DMPが引き起こす問題はこれらだけにとどまらない可能性があると警告している。同グループは、論文の中で「この問題は特定のプロセッサやハードウェアベンダーだけのものではなく、専用のハードウェア対策が必要だ」と述べている。

 AppleのSoCに対するサイドチャネル攻撃(デバイスの利用時間や消費電力など間接的な情報を基に、機密データを読み取る手法)は、他にも報告されている。2023年10月に学術研究グループが発表した「iLeakage」というサイドチャネル攻撃だった。攻撃者はこの手法を使い、AppleのWebブラウザ「Safari」から機密データを取得できる可能性がある。

TechTarget発 先取りITトレンド

米国TechTargetの豊富な記事の中から、最新技術解説や注目分野の製品比較、海外企業のIT製品導入事例などを厳選してお届けします。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る