更新日: 2018年09月10日
2018年 1月上旬、CPU の脆弱性として、Meltdown、Spectre 問題が報告されました。Intel、AMD、ARM など多くの CPU が影響を受ける、すなわち、多くの情報システムが影響を受けることから、各所から情報発信がされました。HIRT-PUB18001 では、Meltdown、Spectre 問題について紹介したいと思います。
[更新] 2018年 5月、派生した CPU の脆弱性問題が報告されました。
[更新] 2018年 6月、派生した CPU の脆弱性問題が報告されました。
[更新] 2018年 7月、派生した CPU の脆弱性問題が報告されました。
[更新] 2018年 8月、派生した CPU の脆弱性問題が報告されました。
多くの Meltdown、Spectre 問題の記事に、投機的実行 (Speculative Execution) という文字が記載されていたかと思います。
投機的実行 (Speculative Execution) とは
PC は、高速な CPU を最大限活用するために、命令を順番に処理するのではなく、処理できる命令は先物であっても先行して処理する機能 (アウトオブオーダ実行) や、履歴を元に次に使う選択肢を予測し先行して処理する機能 (分岐予測) を実装しています。このような機能のことを、総称して、投機的実行 (Speculative Execution) と呼んでいます。前倒しで作業をすることになるため、処理の効率化には有効ですが、当然、結果が無効であったり、処理する必要のない命令が実行されてしまったりするなどのイレギュラー状態、前倒しの作業が無駄になってしまった状態が発生することになります。これまでのセキュリティ機構は、このようなイレギュラー状態での動作を想定していなかったために、Meltdown や Spectre で報告された悪用できる問題、脆弱性が生まれてしまいました。
それでは、Meltdown、Spectre 問題を見ていきましょう。
Meltdown では、処理できる命令は先物であっても先行して処理する機能 (アウトオブオーダ実行) を利用して、権限がないとアクセスできないデータの処理と、そのデータを使った処理とを実行することで、権限がなくてもアクセスできるキャッシュと呼ばれるメモリに、権限がないとアクセスできないデータに関連する情報を格納する方法です (図 1) 。アウトオブオーダ実行によって、本来処理されるべきでない処理が実行されてしまうことに問題があるわけです。
図 1:[Meltdown] 不正なデータキャッシュの読み込み (CVE-2017-5754:Rogue Data Cache Load)
Spectre は、2 種類のアプローチがありますが、いずれも履歴を元に次に使う選択肢を予測し先行して処理する機能 (分岐予測) を利用します。一つは、CPU が、本来アクセスできない領域へのアクセスであるかどうかをチェックしている間に、アクセスできない領域へのアクセスを実行することで、キャッシュと呼ばれるメモリに、本来アクセスできない領域のデータに関連する情報を格納する方法です (図 2) 。もう一つは、履歴を元に分岐先のメモリアドレスを予測する機能を悪用するもので、不正な分岐先のメモリアドレスを予測させるよう誘導して、本来アクセスできない領域のデータを読み取る方法です (図 3) 。
図 2:[Spectre] 境界チェックの迂回 (CVE-2017-5753: Bounds Check Bypass)
図 3:[Spectre] 分岐先予測への介入 (CVE-2017-5715:Branch Target Injection)
RSRE (Variant 3a) は、Meltdown の類似した問題です。権限がなくてもアクセスできるキャッシュと呼ばれるメモリへのアクセスに、記憶回路であるレジスタに格納されている情報を利用するというものです。
SSB, SpectreNG (Variant 4) は、書き込み処理に先立つ参照処理を悪用する問題です。書き込みで使用する領域の情報を参照する処理を悪用することで、権限がなくてもアクセスできるキャッシュと呼ばれるメモリに記録されていた一つ前のデータにアクセスできるというものです。
表 1:想定される影響
公開日 | 2018年01月30日 | ||
名称 | Meltdown Variant 3 |
Spectre Variant 1 |
Spectre Variant 2 |
脆弱性 | 不正なデータキャッシュの読み込み (CVE-2017-5754) | 境界チェックの迂回 (CVE-2017-5753) | 分岐先予測への介入 (CVE-2017-5715) |
影響 | メモリに保存された情報の漏洩 | ||
深刻度 | CVSS:2.0/AV:L/AC:M/Au:N/C:C/I:N/A:N CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N |
||
影響を受ける CPU | Intel、IBM POWER | Intel、AMD、ARM、IBM POWER | |
可能性のある攻撃シナリオ | 漏洩したアカウント情報を利用したアクセス権限の昇格 カーネルのアドレス空間配置のランダム化機能の迂回 |
仮想化されたホスティング環境への攻撃、例えば、ゲスト OS からホスト OS へアクセスなどの仮想環境の突破 ブラウザを介した攻撃、例えば、ブラウザが保有する秘密情報の漏洩 |
公開日 | 2018年05月21日 | 2018年06月13日 | |
名称 | RSRE Variant 3a |
SSB, SpectreNG Variant 4 |
|
脆弱性 | 不正なシステムレジスタの参照 (CVE-2018-3640) | 書込み前メモリの参照 (CVE-2018-3639) | 適切でない FP 状態管理 (CVE-2018-3665) |
影響 | メモリに保存された情報の漏洩 | ||
深刻度 | CVSS:2.0/AV:L/AC:L/Au:N/C:P/I:N/A:N CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N |
||
影響を受ける CPU | Intel、AMD、ARM | Intel、AMD、ARM、IBM POWER | |
可能性のある攻撃シナリオ |
公開日 | 2018年07月10日 | ||
名称 | BCBS Spectre 1.1 |
Spectre 1.2 | |
脆弱性 | 境界チェックの迂回による書込み (CVE-2018-3693) | 読み取り専用保護の迂回 | |
影響 | メモリに保存された情報の漏洩 | ||
深刻度 | CVSS:2.0/AV:L/AC:M/Au:N/C:C/I:N/A:N CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N |
||
影響を受ける CPU | Intel、AMD、ARM | ||
可能性のある攻撃シナリオ |
公開日 | 2018年08月14日 | ||
名称 | Foreshadow Foreshadow-SGX |
Foreshadow-OS | Foreshadow-VMM |
脆弱性 | L1 Terminal Fault (L1TF) SGX (CVE-2018-3615) | L1 Terminal Fault (L1TF) OS/SMM (CVE-2018-3620) | L1 Terminal Fault (L1TF) VMM (CVE-2018-3646) |
影響 | メモリに保存された情報の漏洩 | ||
深刻度 | CVSS:2.0/AV:L/AC:L/Au:N/C:C/I:P/A:N CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N |
||
影響を受ける CPU | Intel | ||
可能性のある攻撃シナリオ |
表 2:対策のアプローチ
公開日 | 2018年05月21日 | 2018年06月13日 | ||
名称 | RSRE Variant 3a |
SSB, SpectreNG Variant 4 |
||
脆弱性 | 不正なシステムレジスタの参照 (CVE-2018-3640) | 書込み前メモリの参照 (CVE-2018-3639) | 適切でない FP 状態管理 (CVE-2018-3665) | |
基本的なアプローチ | ||||
ファームウェアアップデート | Intel | INTEL-SA-00115: Q2 2018 Speculative Execution Side Channel Update | INTEL-SA-00145: Lazy FP state restore | |
AMD | AMD Processor Security Updates | |||
ARM | Vulnerability of Speculative Processors to Cache Timing Side-Channel Mechanism | |||
IBM POWER | Potential Impact on Processors in the POWER Family | |||
OS アップデート | Windows | ADV180013 | ADV180012 | ADV180016 |
Mac | ||||
Red Hat | What is CVE-2018-3640? | Speculative Store Bypass explained: what it is, how it works | ||
Android | Android Security Bulletin - January 2018 | |||
Chrome | ||||
仮想環境アップデート | VMware | VMSA-2018-0012 | ||
Red Hat | ||||
ブラウザアップデート | Chrome | |||
Firefox | ||||
Safari | ||||
IE/Edge |
公開日 | 2018年07月10日 | |||
名称 | BCBS Spectre 1.1 |
Spectre 1.2 | ||
脆弱性 | 境界チェックの迂回による書込み (CVE-2018-3693) | 読み取り専用保護の迂回 | ||
基本的なアプローチ | ||||
ファームウェアアップデート | Intel | INTEL-OSS-10002 | ||
AMD | ||||
ARM | Vulnerability of Speculative Processors to Cache Timing Side-Channel Mechanism | |||
IBM POWER | ||||
OS アップデート | Windows | ADV180002 | ||
Mac | ||||
Red Hat | CVE-2018-3693 | |||
Android | ||||
Chrome | ||||
仮想環境アップデート | VMware | |||
Red Hat | ||||
ブラウザアップデート | Chrome | |||
Firefox | ||||
Safari | ||||
IE/Edge |
公開日 | 2018年08月14日 | |||
名称 | Foreshadow Foreshadow-SGX |
Foreshadow-OS | Foreshadow-VMM | |
脆弱性 | L1 Terminal Fault (L1TF) SGX (CVE-2018-3615) | L1 Terminal Fault (L1TF) OS/SMM (CVE-2018-3620) | L1 Terminal Fault (L1TF) VMM (CVE-2018-3646) | |
基本的なアプローチ | ||||
ファームウェアアップデート | Intel | INTEL-SA-00161: Q3 2018 Speculative Execution Side Channel Update | ||
AMD | ||||
ARM | ||||
IBM POWER | ||||
OS アップデート | Windows | ADV180018 | ||
Mac | ||||
Red Hat | L1TF - L1 Terminal Fault Attack - CVE-2018-3620 & CVE-2018-3646 | |||
Android | ||||
Chrome | ||||
仮想環境アップデート | VMware | VMSA-2018-0021 | VMSA-2018-0020 | |
Red Hat | L1TF - L1 Terminal Fault Attack - CVE-2018-3620 & CVE-2018-3646 | |||
ブラウザアップデート | Chrome | |||
Firefox | ||||
Safari | ||||
IE/Edge |
Meltdown、Spectre 問題を解決するためには、部分的にファームウェアアップデートが必要となります。しかし、アプリケーション (ブラウザ、仮想環境など) アップデート、OS アップデートによって脅威を低減することは可能で、これが多段防御として機能することなります。さらに、今回の脆弱性対策では、サイバー攻撃による脅威のほかに、対策による性能低下、対策による再起動問題も報告されていることから、稼働性を十分に考慮しなければなりません。従って、(1) サイバー攻撃による脅威、(2) 対策による性能低下、(3) 対策による障害の発生状況を踏まえて、対策要否、対策内容 (ブラウザ、仮想環境、OS、ファームウェアアップデートなど) と実施時期を検討する必要があります。
(1) サイバー攻撃による脅威
可能性のある攻撃シナリオとしては、仮想化されたホスティング環境への攻撃、例えば、ゲスト OS からホスト OS へアクセスなどの仮想環境の突破、ブラウザを介した攻撃、例えば、ブラウザが保有する秘密情報の漏洩があります。可能性のある攻撃シナリオに該当する環境の場合には、対策の優先度を上げる必要があります。また、独 AV-TEST Institute から、Meltdown、Spectre 問題を悪用しようとするマルウェア検体 139 件を発見したと報告されていますが、Meltdown、Spectre 問題は、CVSS 評価 (AV:L/AC:M/Au:N/C:C/I:N/A:N) で報告されている通り、ネットワーク経由で直接的な攻撃を許してしまう脆弱性ではありません。マルウェアの侵入を防ぐという一般的な対策を実施することが重要です。
(2) 対策による性能低下
性能に対する実際の影響は、ワークロード、ハードウェア、デバイス、システム制約などによって、大きく異なる可能性があります。既に公開されている性能への影響資料、実機での検証結果などを踏まえて、セキュリティと性能のトレードオフのバランスを取る必要があります。
(3) 対策による障害の発生状況
アップデートの適用によって再起動問題が発生したなどの障害報告は、次の通りです。システムの稼働継続性確保の点からも、対策による障害の発生状況を踏まえて対応する必要があります。
日立製品ならびに、日立が提供する他社品(*印)の対応状況は、次の通りです。
hitachi-sec-2018-204: サーバ・クライアント製品における投機的実行機能を持つCPUに対するサイドチャネル攻撃について (Lazy FP state restore)
hitachi-sec-2018-203: サーバ・クライアント製品における投機的実行機能を持つCPUに対するサイドチャネル攻撃について (Bounds check bypass on stores)
セキュリティ情報 HIRT-PUB18001 を公開しました。
次の脆弱性識別番号が付与されています。
担当:寺田、大西
グローバルサイン:
重要な電子文書にデジタル署名。広報にも役立っています