日付 |
変更の説明 |
---|---|
2023 年 10 月 27 日 |
軽減策 B への参照を追加しました |
2023 年 7 月 17 日 |
MMIO 情報を追加しました |
要約
マイクロソフトは、投機的実行サイドチャネルの脆弱性と呼ばれる攻撃クラスの新しいバリアントを認識しています。 これらのバリアントは、L1 Terminal Fault (L1TF) および Microarchitectural Data Sampling (MDS) と呼ばれます。 L1TF または MDS の悪用に成功した攻撃者は、信頼境界を越えて、特権が与えられたデータを読み取る可能性があります。
2019 年 5 月 14 日更新:2019 年 5 月 15 日、Intel はマイクロアーキテクチャ データ サンプリング (Microarchitectural Data Sampling) と呼ばれる投機的実行サイド チャネルの脆弱性の新しいサブクラスに関する情報を公開しました。 これらの脆弱性には、次の CVE が割り当てられています。
-
CVE-2018-11091 | Microarchitectural Data Sampling Uncacheable Memory (MDSUM)
-
CVE-2018-12126 | Microarchitectural Store Buffer Data Sampling (MSBDS)
-
CVE-2018-12127 | Microarchitectural Fill Buffer Data Sampling (MFBDS)
-
CVE-2018-12130 | Microarchitectural Load Port Data Sampling (MLPDS)
2019 年 11 月 13 日更新: 2019 年 11 月 13 日、Intel は、CVE-2019-11135 が割り当てられた Intel® Transactional Synchronization Extensions (Intel® TSX) のトランザクションの非同期中止の脆弱性に関するテクニカル アドバイザリを公開しました。 マイクロソフトは、この脆弱性を緩和するために役立つ更新プログラムをリリースしました。 次の点に注意してください。
脆弱性の概要
仮想化ホストなどのリソースが共有される環境では、ある仮想マシンで任意のコードを実行できる攻撃者が、別の仮想マシンまたは仮想化ホストの情報にアクセスできる可能性があります。
Windows Server リモート デスクトップ サービス (RDS) などのサーバー ワークロードや、Active Directory ドメイン コントローラーなどの専用ロールも危険にさらされます。 (特権レベルにかかわらず) 任意のコードを実行できる攻撃者は、オペレーティング システムやワークロードのシークレット (暗号化キー、パスワード、その他の機密データなど) にアクセスできる可能性があります。
特に、Windows クライアント オペレーティング システムで信頼できないコードを実行したり、Windows Defender Credential Guard などの仮想化ベースのセキュリティ機能を利用したり、Hyper-V を使用して仮想マシンを実行したりする場合は、オペレーティング システムも危険にさらされます。
注:これらの脆弱性は、Intel Core プロセッサおよび Intel Xeon プロセッサにのみ影響します。
緩和策の概要
これらの問題を解決するために、Microsoft は Intel と協力してソフトウェアの軽減策とガイダンスを開発しています。 脆弱性を軽減するためのソフトウェア更新プログラムがリリースされました。 利用可能なすべての保護を取得するには、デバイス OEM からのマイクロコードも含まれるアップデートが必要になる場合があります。
この資料では、以下の脆弱性を緩和する方法について説明しています。
-
CVE-2018-3620 | L1 Terminal Fault – OS, SMM
-
CVE-2018-3646 | L1 Terminal Fault – VMM
-
CVE-2018-11091 | Microarchitectural Data Sampling Uncacheable Memory (MDSUM)
-
CVE-2018-12126 | Microarchitectural Store Buffer Data Sampling (MSBDS)
-
CVE-2018-12127 | Microarchitectural Load Port Data Sampling (MLPDS)
-
CVE-2018-12130 | Microarchitectural Fill Buffer Data Sampling (MFBDS)
-
CVE-2019-11135 | Windows Kernel Information Disclosure Vulnerability
-
CVE-2022-21123 | Shared Buffer Data Read (SBDR)
-
CVE-2022-21125 | Shared Buffer Data Sampling (SBDS)
-
CVE-2022-21127 | Special Register Buffer Data Sampling Update (SRBDS Update)
-
CVE-2022-21166 | Device Register Partial Write (DRPW)
これらの脆弱性の詳細については、次のセキュリティ アドバイザリを参照してください。
L1TF: ADV180018 | L1TF バリアントを軽減するための Microsoft ガイダンス
MDS: ADV190013 | マイクロアーキテクチャ データ サンプリングの脆弱性を軽減するための Microsoft ガイダンス
MMIO: ADV220002 | Intel プロセッサ MMIO の古くなったデータの脆弱性に関する Microsoft のガイダンス
Windows カーネル情報漏洩の脆弱性: CVE-2019-11135 | Windows カーネル情報漏洩の脆弱性
脅威を緩和するために必要な操作を判断する方法
以下のセクションは、L1TF や MDS の脆弱性の影響を受けるシステムを特定し、リスクについて理解して緩和するために役立ちます。
考えられるパフォーマンスへの影響
マイクロソフトのテストでは、これらの緩和策を適用すると、システムの構成と必要な緩和策によってはパフォーマンスがやや低下することを確認しています。
一部のお客様は、L1TF および MDS のリスクを完全に解決するためにハイパースレッディング (同時マルチスレッディング または SMT とも呼ばれます) を無効にする必要があります。 ハイパースレッディングを無効にすると、パフォーマンスが低下する可能性がある点に注意してください。 この状況は、以下を使用するお客様に適用されます。
-
Windows Server 2016 または Windows 10 バージョン 1607 (Anniversary Update) よりも前のバージョンの Hyper-V
-
仮想化ベースのセキュリティ (VBS)機能 (Credential Guard や Device Guard など)
-
信頼できないコードの実行を許可するソフトウェア (たとえば、ビルド自動化サーバーや共有 IIS ホスティング環境など)
影響度は、ハードウェアや、システムで実行されているワークロードによって変わる可能性があります。 最も一般的なシステム構成では、ハイパースレッディングが有効です。 そのため、ユーザーまたは管理者がシステムでハイパースレッディングを無効にすると、パフォーマンスの影響は緩和されます。
注:VBS で保護されたセキュリティ機能がシステムに使用されているかどうか確認するには、次の手順を実行します。
-
[スタート] メニューで「MSINFO32」と入力します。
注:[システム情報] ウィンドウが開きます。 -
[検索する文字列] ボックスに「セキュリティ」と入力します。
-
スクリーン ショットで選択されている 2 行を右側のウィンドウから探し、[値] 列で仮想化ベースのセキュリティが有効かどうかと、実行されている仮想化ベースのセキュリティ サービスを確認します。
Hyper-V コア スケジューラを使用すると、ハイパースレッディングを有効にしたままで、Hyper-V 仮想マシンが L1TF および MDS の攻撃対象になる状況を緩和できます。 コア スケジューラは、Windows Server 2016 および Windows 10 バージョン 1607 以降で使用可能です。 これで、仮想マシンのパフォーマンスへの影響を最小限に抑えられます。
コア スケジューラは、VBS で保護されたセキュリティ機能に対する L1TF または MDS 攻撃ベクトルを軽減しません。 詳細については、軽減策 C と次の仮想化ブログ記事を参照してください。
パフォーマンスの影響に関する Intel の詳細情報については、次の Intel Web サイトを参照してください。
影響を受けるシステムと必要な緩和策の特定
図 1 のフローチャートを利用して、影響を受けるシステムを特定し、正しい一連の操作を判断してください。
重要: 仮想マシンを使用している場合は、Hyper-V ホストと影響を受ける個々の VM ゲストの両方に緩和策を適用できる場合があるため、両方についてフロー チャートを検討して適用してください。 具体的には、Hyper-V ホスト向けには、フロー チャートの手順には VM 間の保護とホスト内の保護が用意されています。 ただし、これらの緩和策を Hyper-V ホストに適用するだけでは、VM 内を十分に保護できません。 VM 内を保護するには、各 Windows VM にフロー チャートを適用する必要があります。 ほとんどの場合、これはレジストリ キーが VM に設定されていることを確認することを示します。
フローチャートに沿って移動すると、システム構成に固有の L1TF 攻撃ベクトルを軽減するために必要な 1 つまたは複数のアクションに対応する文字付きの青い円が表示されます。 発生した各アクションを適用する必要があります。 緑色の線が表示された場合、それは終点への直接パスを示しており、追加の緩和手順はありません。
各緩和策の短い説明は、右側の凡例に含まれています。 段階的なインストール手順と構成手順が記載されている各緩和策の詳細な説明については、「緩和策」セクションを参照してください。
緩和策
重要: 次のセクションでは、前のセクションの図 1 のフローチャートで決定された特定の条件下でのみ適用する必要がある緩和策について説明します。 フローチャートで特定の緩和策が必要であることが示されていない限り、これらの緩和策を適用しないでください。
特定の保護を有効にするには、ソフトウェアとマイクロコードの更新に加えて、手動による構成変更も必要になる場合があります。 また、企業のお客様には、内容の変更について通知を受けられるようにセキュリティ通知メーラーに登録することをお勧めします。 (Microsoft 技術セキュリティ通知を参照してください。)
緩和策 A
最新の Windows 更新プログラムを入手して適用する
マンスリー Windows セキュリティ更新プログラムなど、利用できるすべての Windows オペレーティング システムの更新プログラムを適用します。 影響を受ける製品の表は、Microsoft セキュリティ アドバイザリ | ADV 180018 L1TF、セキュリティ勧告 | ADV 190013 MDS、セキュリティ勧告 | MMIO の ADV220002、および セキュリティの脆弱性 | Windows カーネル情報漏洩の脆弱性に対する CVE-2019-11135 で確認できます。
緩和策 B
最新のマイクロコードまたはファームウェアk更新プログラムを入手して適用する
最新の Windows セキュリティ更新プログラムのインストールに加えて、プロセッサのマイクロコードまたはファームウェアの更新も必要になる場合があります。 デバイスの OEM からデバイスに適した最新のマイクロコード更新プログラムを入手して適用することをお勧めします。 マイクロコードまたはファームウェアの更新の詳細については、次の参考資料を参照してください。
注: 入れ子の仮想化 (ゲスト VM 内で Hyper-V コンテナーを実行する場合を含む) を使用している場合は、ゲスト VM に新しいマイクロコード エンライトメントを適用する必要があります。 これには、VM 構成をバージョン 8 にアップグレードすることが必要になる場合があります。 バージョン 8 には、既定でマイクロコード エンライトメントが含まれています。 詳細と必要な手順については、Microsoft Docs の次の資料を参照してください。
緩和策 C
ハイパースレッディング (HT) は無効にすべきか
サイドチャネル攻撃を受けると、L1TF および MDS の脆弱性によって Hyper-V 仮想マシンの機密性と、Microsoft 仮想化ベースのセキュリティ (VBS) で保守されているシークレットが危険にさらされる可能性があります。 ハイパースレッディング (HT) を有効にすると、Hyper-V と VBS の両方で提供されているセキュリティ境界が弱くなります。
Hyper-V コア スケジューラ (Windows Server 2016 および Windows 10 バージョン 1607 以降で使用可能) を使用すると、ハイパースレッディングを有効にしたままで、Hyper-V 仮想マシンが L1TF および MDS の攻撃対象になる状況を緩和できます。 これで、パフォーマンスへの影響を最小限に抑えられます。
Hyper-V コア スケジューラを使用しても、VBS で保護されたセキュリティ機能が L1TF や MDS の攻撃対象になる状況は緩和されません。 L1TF および MDS の脆弱性によって、ハイパースレッディング (HT) が有効なときに VBS シークレットの機密性がサイドチャネル攻撃に侵害され、VBS が提供するセキュリティ境界が弱体化される可能性があります。 このようにリスクが増加しても、VBS には重大なセキュリティ上のメリットがあり、HT を有効にした場合のさまざまな攻撃を緩和できます。 そのため、VBS は HT 対応システムで引き続き使用することをお勧めします。 VBS の機密性に関する L1TF および MDS の脆弱性の潜在的なリスクを排除したい場合は、この追加のリスクを緩和するために HT の無効化を検討する必要があります。
L1TF および MDS の脆弱性が Windows Server 2016 より前の Hyper-V バージョンの機密性を損ねるリスク、または VBS セキュリティ機能に対するリスクを排除したい場合は、その決定を重視し、HT を無効にしてリスクを緩和することを検討する、必要があります。 一般的に、以下のガイドラインに基づいてこのような判断を下すことができます。
-
Windows 10 バージョン 1607、Windows Server 2016、およびそれ以降のシステムで Hyper-V を実行しておらず、VBS で保護されたセキュリティ機能も使用していない場合は、HT を無効にしないでください。
-
Windows 10 バージョン 1607、Windows Server 2016、およびそれ以降のシステムで Hyper-V とコア スケジューラは実行しているものの、VBS で保護されたセキュリティ機能を使用していない場合は、HT を無効にしないでください。
-
Windows 10 バージョン 1511、Windows Server 2012 R2、およびそれ以前のシステムで Hyper-V を実行している場合、リスクを軽減するために HT を無効にすることを検討する必要があります。
HT を無効にするために必要な手順は、OEM によって異なります。 ただし、通常、HT は BIOS またはファームウェアのセットアップおよび構成ツールの一部です。
また、マイクロソフトでは、BIOS やファームウェアの設定および構成ツールでハイパースレッディング (HT) を無効にすることが難しいか不可能な場合に、ソフトウェア設定を通じて HT テクノロジを無効にできるようにしました。 HT を無効にするソフトウェア設定は、BIOS やファームウェアの設定より優先順位が低く、既定では無効になっています (つまり、HT は BIOS やファームウェアの設定に従います)。 この設定およびそれを使用して HT を無効にする方法の詳細については、次の資料を参照してください。
4072698 Windows Server を投機的実行のサイドチャネルの脆弱性から保護するためのガイダンス
HT を無効にする場合は、可能な限り、BIOS やファームウェアで設定して HT を確実に無効にすることをお勧めします。’
注: ハイパースレッディングを無効にすると、CPU コア数が減少します。 これは、機能するために最小限の CPU コア数を必要とする機能に影響する可能性があります。 たとえば、Windows Defender Application Guard (WDAG) などです。
緩和策 D
Hyper-V コア スケジューラを有効にし、コアあたりの VM ハードウェア スレッド数を 2 に設定する
注: これらの緩和手順は、Windows Server 2016 および バージョン 1809 以前の Windows 10 にのみ適用されます。 Windows Server 2019 および Windows 10 バージョン 1809 では、コア スケジューラが既定で有効になっています。
コア スケジューラを使用するには 2 段階のプロセスがあります。まず、Hyper-V ホストでスケジューラを有効にしてから、コアごとのハードウェア スレッド数を 2 に設定して活用するように各 VM を構成します。
Windows Server 2016 および Windows 10 バージョン 1607 で導入された Hyper-V コア スケジューラは、従来のスケジューラ ロジックに代わる新しい機能です。 コア スケジューラを使用すると、HT 対応の Hyper-V ホスト上で実行されている VM 内のワークロードについて、パフォーマンスのばらつきを減らすことができます。
Hyper-V のコア スケジューラとそれを有効にする手順の詳細については、次の Windows IT Pro Center の資料を参照してください。’
Hyper-V ハイパーバイザー スケジューラの種類の理解と使用
Windows Server 2016 または Windows 10 で Hyper-V コア スケジューラを有効にするには、次のコマンドを入力します。
bcdedit /set HypervisorSchedulerType core
次に、特定の VM のコアあたりのハードウェア スレッド数を 2 に構成するかどうかを決定します。 仮想プロセッサがハイパースレッドであるという事実をゲスト仮想マシンに公開すると、VM オペレーティング システムのスケジューラと VM ワークロードが独自の作業スケジューリングで HT を使用できるようになります。 これを行うには、次の PowerShell コマンドを入力します。<VMName> は仮想マシンの名前です。
Set-VMProcessor -VMName <VMName> -HwThreadCountPerCore 2
緩和策 E
アドバイザリ CVE-2017-5715、CVE-2017-5754、および CVE-2019-11135 の緩和策を有効にする
注: Windows Server 2019 および Windows クライアント オペレーティング システムでは、これらの緩和策が既定で有効になっています。
アドバイザリ CVE-2017-5715、CVE-2017-5754、および CVE-2019-11135 の緩和策を有効にするには、次の資料のガイダンスを参照してください。
4072698 投機的実行のサイドチャネル脆弱性から保護するための Windows Server ガイダンス
4073119 IT プロフェッショナルが投機的実行のサイドチャネル脆弱性から保護するための Windows クライアント ガイダンス
注: これらの緩和策には、Windows カーネルに対するセーフ ページ フレーム ビットの緩和策と、CVE-2018-3620 で説明されている緩和策も含まれており、自動的に有効になります。 セーフ ページ フレーム ビットの詳細については、次の Security Research & Defense ブログの資料を参照してください。
参考文献
Azure における投機的実行のサイドチャネルの脆弱性を軽減するためのガイド
この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示的か黙示的かにかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。
Microsoft は、ユーザーがテクニカル サポートを見つけるため、サード パーティの連絡先を提供しています。 将来予告なしに変更されることがあります。 Microsoft は、サード パーティの連絡先情報の正確性を保証していません。