OWN NEWS GATHER
← 戻る
The Hacker News

IntelとAMDのCPUでSpectre防御を回避する新攻撃「割り込み注入」が判明

要点

  • MIT CSAILの研究者が、Spectre v2の防御策を回避する新たな攻撃手法「INTERRUPT INJECTION(割り込み注入)」を発表した。
  • CPUが分岐予測器を無害化してからカーネルが使用するまでの極めて短い隙間に、ハードウェア割り込みをタイミングよく発生させて再汚染する。
  • AMDのZen 2環境において、すべてのデフォルト対策が有効な状態でもカーネルメモリの漏洩が実証された。
  • AMD製CPUを対象とする修正パッチはLinuxカーネルに統合済みで、Intelは追加の対策を不要と判断している。

リード文

米マサチューセッツ工科大学(MIT)コンピュータ科学・人工知能研究所(CSAIL)の研究チームは、IntelおよびAMDのCPUに存在する分岐予測の防御策を回避する新たなサイドチャネル攻撃「INTERRUPT INJECTION(割り込み注入)」を公開した。本攻撃は、CPUが脆弱性対策として分岐予測器(プログラムの実行経路を予測して処理を高速化する回路)を無害化した直後、カーネル(OSの中核となるプログラム)がそれを使用するまでの時間差を狙うものである。

本文

新たな攻撃クラス「TONTOU」

研究者のダニエル・トルヒーヨ氏とメンジア・ヤン氏によると、この攻撃は「TONTOU(無害化から使用までの時間)」と呼ばれる新しい攻撃クラスに分類される。

Spectre v2などのCPU脆弱性に対する従来の防御策は、分岐予測器の状態をクリアまたは隔離することを前提としている。Intelはカーネルエントリ(カーネルへの移行)時にこれを処理し、AMDはカーネルリターン(カーネルからの復帰)の直前に保護シーケンス「saferet(Safe-RET)」を実行する。

しかし、これらの防御策は「クリアから使用までの間に敵対的なコードが実行されないこと」を前提としていた。LinuxなどのOSでは一般権限でもナノ秒単位でハードウェア割り込み(処理を一時中断させて別処理を行う仕組み)をスケジュールできるため、この隙間に割り込み処理を滑り込ませて分岐予測器を再汚染することが可能になるという。

漏洩の実証実験とリスク

実際にAMDの「Zen 2」プロセッサと「Linux 6.14」を搭載し、デフォルトの対策をすべて有効にしたシステムで実験が行われた。研究チームが作成したエクスプロイト(脆弱性悪用プログラム)を実行したところ、91.97%の精度、毎秒5.47バイトの転送速度で任意のカーネルメモリデータを漏洩させることに成功した。この攻撃により、暗号化されたパスワード情報が保存されている /etc/shadow ファイルを特定し、その内容を読み取ることが10回中5回成功した。

この攻撃には管理者権限は不要で、ローカルでコードを実行できれば実行できるため、同一の物理ハードウェアを複数のユーザーで共有するクラウド環境などで特に脅威となる。

攻撃の技術的メカニズム

Zen 2プロセッサにおいて、防御策のクリアから実際の使用(RET命令の実行)までの隙間はわずか「2命令(6バイト)」しかない。研究チームはこの極めて狭い実行ウィンドウに割り込みを発生させるため、ハイパースレッディング(1コアで複数スレッドを動かす技術)を利用し、隣接するスレッドからキャッシュメモリ(データを高速に読み書きするためのCPU内蔵メモリ)のデータを追い出すことで実行速度を低下させ、ウィンドウを広げた。

さらに、攻撃者が制御できる2つのレジスタ(データを一時保持する領域)を残した状態で呼び出せる「write」システムコールを選択した。これにより、割り込みが目的のウィンドウ内に発生する確率は5%から12%となり、レジスタを攻撃者が制御した状態でも約2%の確率で割り込みに成功した。ウィンドウ内に侵入した後は、2023年に報告されたAMD製CPUの脆弱性「Inception(CVE-2023-20569)」を応用して、分岐予測器を汚染した。

各社の対応とパッチ

研究チームは2026年2月にAMDとIntelへ本脆弱性を通知した。

AMDは2026年8月にアドバイザリ「AMD-SB-7061」を公開し、Zen 1からZen 4プロセッサが影響を受ける可能性があると発表した。実証実験はZen 1およびZen 2で行われ、Zen 3およびZen 4は可能性の示唆に留まる。アドバイザリにCVE番号や修正カーネルバージョンの記述はない。

これに対し、Linuxカーネルにはすでに「x86/bugs: Make Safe-RET robust against interrupt injection」という修正が統合されている。AMDのエンジニアらが開発したもので、Safe-RET実行中に割り込みが発生してもレジスタ状態を復元し、復帰後のRET命令実行を避けることで投機的実行(CPUが先回りで命令を実行する技術)による漏洩を防ぐ。パッチは通常のOSアップデートで入手可能だ。

一方、Intelは本脆弱性に対する新たな対策は不要と判断している。同社製CPUで分岐予測の誤りが発生したものの、実証実験でデータ漏洩自体は確認されなかった。

元URL