公開日:2018/08/17 最終更新日:2018/08/17

JVNVU#97646030
Intel 製 CPU の投機的実行機能に対するサイドチャネル攻撃 (L1TF, L1 Terminal Fault)

概要

Intel 製 CPU の投機的実行機能には、サイドチャネル攻撃により L1 データキャッシュ情報が漏えいする脆弱性 (L1 Terminal Fault SGX、L1 Terminal Fault OS/SMM、L1 Terminal Fault VMM) が存在します。

影響を受けるシステム

  • Intel 製 CPU

詳細情報

Information Exposure Through Timing Discrepancy (CWE-208)

プログラムがメモリ上のデータへのアクセスを試みる際、論理メモリアドレスはハードウェアにより物理アドレスへ変換されますが、物理アドレスへの変換が作られていない論理アドレスにアクセスすることで、"Terminal Fault" が発生します。"Terminal Fault" の処理が行われている間に、投機的実行により L1 データキャッシュからデータがロードされる可能性があります。

  • CVE-2018-3615 - L1 Terminal Fault (L1TF) SGX (Foreshadow, Foreshadow-SGX)
    投機的実行機能および Intel ソフトウェア・ガード・エクステンション (Intel SGX) を使用している CPU を搭載したシステムにおいて、Intel SGX により保護されている "enclave" から L1 キャッシュにコピーされたデータが、一般ユーザに取得される可能性があります。
    一般ユーザ権限で実行されるプログラムの実行において、アウトオブオーダー実行機能によりコードの一部が予測実行された後、それらのコードで行われた変更結果の廃棄やページフォルトが発生することがあります。OS によるページフォルトの処理が行われた後、ユーザプログラムで設定された例外ハンドラが実行されるため、キャッシュの内容を解析する処理を行うことが可能です。

  • CVE-2018-3620 - L1 Terminal Fault (L1TF) OS/SMM (Foreshadow-OS)
    投機的実行機能および仮想メモリと物理メモリの間のアドレス変換機能に対するサイドチャネル攻撃により、L1 データキャッシュに存在する情報が一般ユーザに取得される可能性があります。
    OS カーネルが仮想メモリをスワップアウトして物理アドレスへのマッピングを削除する際、物理アドレスへのマッピングに関するメタデータがページテーブル上に残されることがあります。物理アドレスへのマッピングが削除された状態の仮想メモリにアクセスすると Terminal Fault が発生しますが、アウトオブオーダー実行により、マッピングが削除された物理アドレスにある情報が L1 キャッシュ経由で取得される可能性があります。この手法で取得される情報には、カーネルおよびシステム管理モード (SMM) の情報が含まれます。

  • CVE-2018-3646 - L1 Terminal Fault (L1TF) VMM (Foreshadow-VMM)
    投機的実行機能および仮想メモリと物理メモリの間のアドレス変換機能に対するサイドチャネル攻撃により、L1 データキャッシュに存在する情報がゲスト OS から取得される可能性があります。
    ゲスト VM から Terminal Fault を発生させ、アウトオブオーダー実行されるコードで物理アドレス上のデータをキャッシュ経由で取得することが可能です。取得可能なデータには、他の VM で使用されているメモリも含まれます。この手法では、L1TF OS/SMM とは異なり、L1 キャッシュにアクセスするために使用する物理アドレスを制御することも可能です。

想定される影響

任意のコードを実行可能な攻撃者によって、次の内容を推測される可能性があります。

  • オペレーティングシステム、アプリケーション、SMM が使用するメモリ - CVE-2018-3620
  • SGX で保護された enclave 内のメモリ - CVE-2018-3615
  • 同一ホスト上の仮想マシンで使用しているメモリ - CVE-2018-3646

対策方法

Intel は、CVE-2018-3615 への対応としてマイクロコードの更新や BIOS アップデートを提供しています。

また、CVE-2018-3620 および CVE-2018-3646 への対応については、Intel が提供するマイクロコードや BIOS のアップデート、OS ベンダや仮想システムベンダが提供するアップデートの情報を参照してください。

参考情報

  1. CERT/CC Vulnerability Note VU#982149
    Intel processors are vulnerable to a speculative execution side-channel attack called L1 Terminal Fault (L1TF)
  2. CERT/CC VulWiki - Vulnerability Analysis
    Vulnerabilities Associated with CPU Speculative Execution
  3. Foreshadow
    Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-of-Order Execution
  4. 27th USENIX Security Symposium
    Foreshadow: Extracting the Keys to the Intel SGX Kingdom with Transient Out-of-Order Execution

JPCERT/CCからの補足情報

JPCERT/CCによる脆弱性分析結果

CVSS v3 CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
基本値: 7.1
攻撃元区分(AV) 物理 (P) ローカル (L) 隣接 (A) ネットワーク (N)
攻撃条件の複雑さ(AC) 高 (H) 低 (L)
必要な特権レベル(PR) 高 (H) 低 (L) 不要 (N)
ユーザ関与レベル(UI) 要 (R) 不要 (N)
スコープ(S) 変更なし (U) 変更あり (C)
機密性への影響(C) なし (N) 低 (L) 高 (H)
完全性への影響(I) なし (N) 低 (L) 高 (H)
可用性への影響(A) なし (N) 低 (L) 高 (H)
CVSS v2 AV:L/AC:L/Au:N/C:C/I:P/A:N
基本値: 5.6
攻撃元区分(AV) ローカル (L) 隣接 (A) ネットワーク (N)
攻撃条件の複雑さ(AC) 高 (H) 中 (M) 低 (L)
攻撃前の認証要否(Au) 複数 (M) 単一 (S) 不要 (N)
機密性への影響(C) なし (N) 部分的 (P) 全面的 (C)
完全性への影響(I) なし (N) 部分的 (P) 全面的 (C)
可用性への影響(A) なし (N) 部分的 (P) 全面的 (C)

謝辞

関連文書

JPCERT 緊急報告
JPCERT REPORT
CERT Advisory
CPNI Advisory
TRnotes
CVE CVE-2018-3615
CVE-2018-3620
CVE-2018-3646
JVN iPedia