サイドチャネル攻撃に対する脆弱性: マイクロアーキテクチャー・データ・サンプリングとトランザクション非同期停止
概要
2019年5月14日、インテルは業界の各社と、マイクロアーキテクチャー・データ・サンプリング (MDS) と総称される新たな分類の脆弱性に関する詳細と情報を公開しました。
最初にインテル社内の研究員とパートナーによって特定され、外部の研究者からも別途報告を受けた MDS は、すでに公開されている投機的実行のサイドチャネル攻撃に対する脆弱性のサブクラスであり、4 つの関連技術から構成されています。MDS は特定の条件下で、従来のプログラムで表示できないデータを読み取る手段となる不正プログラムを提供してしまうおそれがあります。MDS は、ローカルで実行される投機的実行のサイドチャネルを使用して、CPU 内部の小さな構成要素から漏洩したデータのサンプリングをすることを軸とした技術です。MDS 自体によって、悪意のある者がこれらのメソッドを使用して意図的に特定のデータを漏洩させることができるわけではありません。実際に MDS を突くことは非常に複雑です。
一部の第 8 世代および第 9 世代インテル® Core™ プロセッサー・ファミリーをはじめとして、第 2 世代インテル® Xeon® プロセッサー・スケーラブル・ファミリーでも、 MDS はハードウェア・レベルで緩和されています。詳細については、こちらを参照してください。今後のすべてのインテル® プロセッサーに、この脆弱性に対処するためのハードウェア・レベルの緩和策が組み込まれる予定です。
トランザクション非同期停止 (TAA) の脆弱性は MDS と同じマイクロアーキテクチャーの構造に影響を与えますが、開発に関しては別のメカニズムを使用しています。MDS に脆弱な CPU で、既存の MDS 緩和策により TAA (CVE) の脆弱性に対処することができます。MDS に脆弱ではなくてもトランザクション機能を有する CPU の場合、新たな緩和策が必要になる可能性があります。詳細については、こちらを参照してください。
緩和策
インテルは、ハードウェア・レベルの MDS または TAA 対策が提供されない製品を対象に、OEM 各社による定期的なアップデート・プロセスの一環として、プロセッサーのマイクロコード・アップデート (MCU) をリリースしています。MCU は、オペレーティング・システム向け、およびハイパーバイザー・ソフトウェア向けの更新プログラムと組み合わせて提供されます。
この緩和策が有効化されたシステムにおいては、PC クライアント・アプリケーション・ベースのベンチマークの大半で、パフォーマンスへの影響が最小限に抑えられることが期待されます。一部のデータセンター・ワークロードにおいては、パフォーマンスやリソース使用率への影響や変動が見られる可能性があります。
このようなアップデートの適用後も、環境によっては追加の対策を検討することが適切な場合があります。例えば、システムで動作しているソフトウェアが信頼済みのものであるかどうかの確証がなく、マルチスレッドによる並列処理 (SMT) が実行されている環境です。このような場合、特定のワークロードに対して SMT を利用する方法、OS および VMM ソフトウェア・プロバイダーからのガイダンス、特定環境でのセキュリティー脅威モデルを検討する必要があります。すべての要素は実際の環境ごとに大きく異なることが考えられるため、インテルではインテル® HT テクノロジーの無効化は推奨していません。インテル® HT テクノロジーを無効にすることだけでは、MDS に対する防御とならない点に注意してください。
MDS 脆弱性に対処する緩和策の詳細については、こちらを参照してください。
PC クライアントの大多数で、パフォーマンスへの影響は限定的
インテル® ハイパースレッディング・テクノロジーを無効にした PC クライアントでのパフォーマンスへの影響
一部のデータセンター・ワークロードのパフォーマンスへの影響
インテル® HT テクノロジーを無効にした一部のデータセンター・ワークロードのパフォーマンスへの影響
- プロセッサー: インテル® Core™ i9-9900K プロセッサー
- メモリー: 16GB x2
- ストレージ: インテル® 760p 512GB SSD NVMe*
- ディスプレイ解像度: 1920x1080
- OS: Windows* 10、バージョン 1809
- グラフィックス: インテル® HD グラフィックス 630
- テスト実施日: 2019年5月7日
- テスト実施者: Intel Corporation 注: すべてのクライアントでの測定に同じ SKU を使用。MDS の影響を確認するため、マイクロコードと OS のみを変更して複数の構成を用意
- インテル社内での測定に基づく SPEC* ベンチマークの結果。調査用として提供された割合
- プロセッサー: 1 ノード、S2600WFT プラットフォーム基盤のインテル® Xeon® Platinum 8180 プロセッサー (28 コア、2.50GHz) x2
- メモリー: 合計 384GB (12 スロット / 32GB / DDR4-2666)
- ストレージ: S3710 400G
- MDS 緩和策適用前:
- OS: Red Hat* Enterprise Linux* 7.6 3.10.0-957.10.1.el7.x86_64
- マイクロコード: 0x200005a
- MDS 緩和策適用後:
- OS: Red Hat* Enterprise Linux* 7.63.10.0-957.12.2.el7.x86_64
- マイクロコード: 0x200005e
- プロセッサー: 1 ノード、S2600WTTS1R プラットフォーム基盤のインテル® Xeon® プロセッサー E5-2699 v4 (22 コア、2.20GHz) x2
- メモリー: 合計 256GB (8 スロット / 32GB / DDR4-2666 (2400 で実行))
- ストレージ: S3710 400G
- MDS 緩和策適用前:
- OS: Red Hat* Enterprise Linux* 7.6 3.10.0-957.10.1.el7.x86_64
- マイクロコード: 0xb000030
- MDS 緩和策適用後:
- OS: Red Hat* Enterprise Linux* 7.6 3.10.0-957.12.2.el7.x86_64
- マイクロコード: 0xb000036
リスク評価
管理された研究環境以外において MDS 脆弱性を突くことは複雑です。MDS 脆弱性は、業界標準の CVSS に基づいて重大度レベルが低 ~ 中に分類されています。実環境でこの脆弱性が悪用されたケースはまだ報告されていない点に注意してください。
テクノロジーが複雑化する中で、製品とデータの保護を強化するには、エコシステムを構成する各社との連携が不可欠であるとインテルは認識しています。研究者コミュニティーと業界各社の貢献と、問題の「協調的な公開」への協力に対し、感謝いたします。
リソース
ここで示されていないシステムメーカー、オペレーティング・システム・ベンダーなども、この状況に関する情報を公開している可能性があります。各システムメーカーまたはオペレーティング・システム・ベンダーからの情報更新や勧告がないかどうかを確認してください。このリストにすべてが網羅されているわけではありません。
インテルのリソース
インテル・カスタマー・サポート
サポートが必要な場合の、上記オペレーティング・システム・ベンダー、システムメーカー、またはインテル・カスタマー・サポートの連絡窓口
北米の電話番号
(916) 377-7000
よくある質問
トランザクション非同期停止 (TAA) (CVE-2019-11135) は、インテル® トランザクショナル・シンクロナイゼーション・エクステンション (インテル® TSX) に関連する投機的実行のサイドチャネルの問題です。TAA はマイクロアーキテクチャー・データ・サンプリング (MDS) と同じマイクロアーキテクチャーの構造に影響を及ぼします。インテルは引き続き、業界パートナーと連携して TAA に関する情報や緩和策を展開および開示してまいります。
MDS は、すでに公開されている投機的実行のサイドチャネル攻撃のサブクラスです。当初インテル社内の研究員とパートナーによって特定され、外部の研究者からも別途報告を受けた 4 つの密接に関連する CVE で構成されます。
- マイクロアーキテクチャー・ロード・ポート・データ・サンプリング (MLPDS) - CVE-2018-12127
- マイクロアーキテクチャー・ストア・バッファー・データ・サンプリング (MSBDS) - CVE-2018-12126
- マイクロアーキテクチャー・フィル・バッファー・データ・サンプリング (MFBDS) - CVE-2018-12130
- マイクロアーキテクチャー・データ・サンプリング・アンキャッシャブル・サンプリング (MDSUM) - CVE-2019-11091
管理された研究環境以外で MDS や TAA の脆弱性を突くことは複雑です。インテルでは、これらのセキュリティー問題が実際に悪用されたという報告はまだ受けていません。インテルが公開しているマイクロコード・アップデートを、業界パートナーから入手できるオペレーティング・システムおよびハイパーバイザー・ソフトウェアに対応する更新プログラムと組み合わせることで、通常の使用に必要な防御策が提供されます。一部のユーザー環境では、追加の対策を検討することが適切な場合があります。例えば、システムで動作しているソフトウェアが信頼済みのものであるかどうかの確証がなく、マルチスレッドによる並列処理 (SMT) が実行されている環境です。このような場合、特定のワークロードに対して SMT を利用する方法、OS および VMM ソフトウェア・プロバイダーからのガイダンス、特定環境でのセキュリティー脅威モデルを検討する必要があります。どの場合においても、システムを最新の状態に維持することをお勧めします。
はい。インテルが定期的なアップデート・プロセスの一環として公開しているプロセッサーのマイクロコードを、業界パートナーから入手できるオペレーティング・システムおよびハイパーバイザー・ソフトウェアの更新プログラムと組み合わせることで、消費者ユーザー、IT 担当部門、クラウド・サービス・プロバイダーは必要な保護を適用できるようになります。
詳細については、ソフトウェア・セキュリティーのウェブサイトを参照してください。
緩和策に対する方針として、ユーザーの選択によっては 3 つのパターンがあります。
a.緩和策を選択しない。パフォーマンスへの影響はありません。
b.TSX を無効化
- TSX を使用しないアプリケーションへの影響はありません
- TSX 対応アプリケーションによりすべてのトランザクションが中止になります。影響は、TSX をどれだけ使用しているか、また同時にアプリケーションのパフォーマンスにおいて TSX トランザクションがどの程度関わっているかによって左右されます。
c.VERW を使用してマイクロアーキテクチャー・バッファーを上書きする。すでに MDS の緩和策をとっているシステムでは、新たな影響はありません。現在 MDS の緩和策をとっていないシステムでは、MDS の緩和策と同様の影響があります。
いいえ。インテルは、これらの脆弱性が実際に悪用されたという報告は受けていません。
はい。一部の第 8 世代および第 9 世代インテル® Core™ プロセッサー・ファミリーと、第 2 世代インテル® Xeon® プロセッサー・スケーラブル・ファミリーでは、ハードウェアの変更によって MDS 脆弱性への対策を実施しています。今後のすべてのプロセッサーに、この脆弱性に対処するためのハードウェア・レベルの緩和策が組み込まれる予定です。
詳細については、こちらを参照してください。
いいえ。インテルは、ユーザーがインテル® ハイパースレッディング・テクノロジー (インテル® HT テクノロジー) を無効化することを推奨していません。インテル® HT テクノロジーを無効にすることだけでは、MDS に対する防御とならない点に注意してください。また、インテル® HT テクノロジーを無効にすると、ワークロードのパフォーマンスやリソース使用率への影響や変動が見られる可能性があります。
脆弱性の協調的な公開 (「CVD」または「責任ある公開」とも呼ばれます) は、セキュリティー上の脆弱性から責任を持って顧客ユーザーを保護する最善の方法として広く認められています。CVD は、次の 2 つの基本概念に基づいています。企業は、セキュリティーの脆弱性が発見された場合、(1) 迅速かつ効果的に協力して脆弱性を緩和する、(2) 緩和策が準備できるまで、漏洩その他によって、情報を悪用する第三者に悪用可能な情報が渡った場合のリスクを最小限に抑える手段を同時に講じる。
この原則については、カーネギーメロン大学ソフトウェア工学研究所のコンピューター緊急対応チーム (CERT) による表現が最も適切と思われます。CERT は次のように述べています。
「一般的な、特に脆弱性のある製品のユーザーは、該当製品に含まれる問題とベンダーがその問題に対処する方法について、当然情報を通知されるべきです。しかし同時に、十分な調査や緩和策が取られないままそのような情報が公開されてしまうと、一般ユーザーが脆弱性を突いた攻撃にさらされるだけです。理想的なシナリオは、一般ユーザーを守ろうという、すべての人による協調と協力で成り立ちます」
協調的な公開とその重要性の詳細については、Guide to Coordinated Vulnerability Disclosure (協調的な脆弱性の公開についてのガイド) を参照してください。