新たな「TONTOU」CPU攻撃、Spectre v2対策を回避しLinuxのパスワードハッシュを漏えい

研究者らは、Spectre v2投機的実行サイドチャネル攻撃に対する最近の緩和策を回避する手法を発見し、Linuxマシンから機密情報を漏えいさせるエクスプロイトを開発しました。

この手法は、分岐予測器のサニタイズや分離に依存するAMDおよびIntel製プロセッサ上のSpectre v2対策に対して有効です。研究者らはこうした対策を総称して「無効化ベース(neutralization-based)の緩和策」と呼んでいます。

Spectre v2はBranch Target Injection(BTI)としても知られ、Spectreクラスの脆弱性の一種です。

この脆弱性は、プロセッサの間接分岐予測器を悪用し、間接分岐のターゲットを誤予測させることで、攻撃者が操作可能なコードパスに沿った投機的実行を引き起こします。

現代のプロセッサは、分岐予測によって最も可能性の高い実行パスを推測し、分岐結果が判明する前に、その予測パスに沿って命令を投機的実行(speculative execution)する仕組みを備えています。

Spectre v2は、攻撃者がCPUの間接分岐予測器を操作することで、プロセッサに攻撃者が選択した場所の命令を投機的に実行させ、機密データを露出させる可能性がある攻撃です。

無効化ベースの緩和策では、分岐予測器が分離(サニタイズ)されるタイミングと、それが被害者側の分岐によって実際に使用されるタイミングとの間にギャップが存在します。

現行のSpectre v2対策は、攻撃者が分岐予測器の状態をクリーニングした後、それが使用されるまでの間の時間を悪用できないという前提に立っています。

しかし研究者らは、このクリーニング後、使用前の間に、CPUの状態を再び「汚染」できるプリミティブを発見しました。

MITコンピュータ科学・人工知能研究所(CSAIL)の博士課程学生であるDaniël Trujillo氏と、准教授のMengjia Yan氏は、この「無効化から使用までの時間差(Time-of-Neutralization to Time-of-Use、TONTOU)」というウィンドウを悪用して機密データを抽出する手法を発見しました。

「システムへの特別なアクセス権を持たない攻撃者であっても、ハッシュ化されたパスワードなどの機密データを含む、任意のメモリを読み取ることができます」とTrujillo氏はBleepingComputerに語っています。

研究者らは、「特権を持たないユーザープログラムがカーネル実行中にタイマー割り込みを発生させるようスケジュールできる」ことを利用した割り込み注入(Interrupt Injection)攻撃を開発しました。

「これにより、カーネルを強制的に割り込みハンドラへリダイレクトさせ、このハンドラを使って無効化後のウィンドウ内でマイクロアーキテクチャの状態を汚染できます」と研究者らは説明しています

研究者らは、無効化後のウィンドウ中に発生する割り込みを利用してプロセッサの間接分岐予測器を汚染できることを発見しており、これによりあらゆる種類の間接分岐を標的とした攻撃が可能になります。

Yan氏とTrujillo氏は、攻撃者がLinuxの標的マシン上で特権を持たない任意のコードを実行できるという前提から出発し、カーネルからデータを漏えいさせる攻撃を検証しました。

最新のSpectre v2緩和策が適用されたAMD Zen 2ホスト上で、両研究者はTONTOU攻撃の全段階、すなわち無効化、リダイレクト、汚染、そして汚染された分岐予測器の利用を通しで成功させています。

Image

この問題を実際に悪用するには、カーネルの制御フローのリダイレクト、無効化後のウィンドウへの割り込みの正確な同期、そして標的とする間接分岐に対応する分岐予測器エントリを割り込みハンドラで汚染することなど、複数の課題を克服する必要があります。

研究者らは、ハードウェア割り込みをトリガーする「タイマー」の設置、割り込みの頻繁な注入、そしてアクティブ/パッシブ両方の汚染手法を組み合わせることで、これらの課題に対処しています。

この攻撃はIntelとAMD双方のプロセッサで検証されました。16GBのRAMを搭載し、Linuxバージョン6.14.0-37-genericを実行するAMD Zen 2システムでは、研究者らは毎秒5.47バイトの速度で任意のカーネルメモリを漏えいさせられることを示し、その中にはパスワードハッシュを格納する/etc/shadowの内容も含まれていました。

10回のテスト実行のうち、攻撃は5回において当該ファイルの特定と抽出に成功し、1回あたり平均18分を要しました。

この攻撃はIntelマシンでも可能ですが、追加のソフトウェア要件があるため、より複雑になると研究者らは指摘しています。

研究者らによると、割り込み注入によってReturn Stack Buffer(RSB)を攻撃者が制御下で汚染できるようになり、リターン先の投機的な誤予測を引き起こせます。パッシブなRSB汚染は信頼性に欠けるため、研究者らは割り込み注入を、Daniël Trujillo氏自身が開発に携わった既発表の攻撃手法であるInceptionと組み合わせました。

AMDは本日アドバイザリを公開し、この割り込み注入の問題は、潜在的な情報漏えい攻撃に対するSafe RET緩和策のLinuxにおける実装方法「に関連していると見られる」と述べています。

Daniël Trujillo氏とMengjia Yan氏は、本日開催されたBlack Hat USAセキュリティカンファレンスでこの研究成果を発表しました。両氏はまた、10月27日から29日にかけて開催されるUSENIX Security 2026でも詳細を共有する予定です。

攻撃者に先んじて、あらゆる防御層をテストする

セキュリティチームが攻撃の成功を検知できているのはわずか54%、アラートが発報されるのは14%に過ぎません。残りは環境内を検知されずに移動しています。

PicusのホワイトペーパーはBreach and Attack Simulation(侵害・攻撃シミュレーション)がSIEMやEDRのルールをテストし、検知の網をすり抜ける脅威をいかに防ぐかを解説しています。

ホワイトペーパーを入手する

翻訳元: https://www.bleepingcomputer.com/news/security/new-tontou-cpu-attack-bypasses-spectre-v2-fixes-leaks-linux-password-hashes/

ソース: bleepingcomputer.com