Windows を投機的実行のサイドチャネルの脆弱性から保護するためのガイダンス

適用対象: Windows Server 2019, all versionsWindows 10, version 1809Windows Server version 1803 詳細

概要


マイクロソフトは、投機的実行サイドチャネルの脆弱性と呼ばれる攻撃クラスの新しいバリアントを認識しています。 これらのバリアントは、L1 Terminal Fault (L1TF) および Microarchitectural Data Sampling (MDS) と呼ばれます。 L1TF または MDS の悪用に成功した攻撃者は、信頼境界を越えて、特権が与えられたデータを読み取る可能性があります。

2019 年 5 月 15 日更新: 2019 年 5 月 15 日、Intel はマイクロアーキテクチャ データ サンプリング (Microarchitectural Data Sampling) と呼ばれる投機的実行サイド チャネルの脆弱性の新しいサブクラスに関する情報を公開しました。 これらの脆弱性には、次の CVE が割り当てられています。

脆弱性の概要


仮想化ホストなどのリソースが共有される環境では、ある仮想マシンで任意のコードを実行できる攻撃者が、別の仮想マシンまたは仮想化ホストの情報にアクセスできる可能性があります。 

Windows Server リモート デスクトップ サービス (RDS) などのサーバー ワークロードや、Active Directory ドメイン コントローラーなどの専用ロールも危険にさらされます。 (特権レベルにかかわらず) 任意のコードを実行できる攻撃者は、オペレーティング システムやワークロードのシークレット (暗号化キー、パスワード、その他の機密データなど) にアクセスできる可能性があります。

特に、Windows クライアント オペレーティング システムで信頼できないコードを実行したり、Windows Defender Credential Guard などの仮想化ベースのセキュリティ機能を利用したり、Hyper-V を使用して仮想マシンを実行したりする場合は、オペレーティング システムも危険にさらされます。

注: これらの脆弱性は、Intel Core プロセッサおよび Intel Xeon プロセッサにのみ影響します。 

緩和策の概要

マイクロソフトは、これらの問題を解決するために 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)"

これらの脆弱性の詳細については、次のセキュリティ アドバイザリを参照してください。

L1TF: https://portal.msrc.microsoft.com/ja-jp/security-guidance/advisory/adv180018

MDS: https://portal.msrc.microsoft.com/ja-jp/security-guidance/advisory/adv190013

脅威を緩和するために必要な操作を判断する方法


以下のセクションは、L1TF や MDS の脆弱性の影響を受けるシステムを特定し、リスクについて理解して緩和するために役立ちます。 

考えられるパフォーマンスへの影響

マイクロソフトのテストでは、これらの緩和策を適用すると、システムの構成と必要な緩和策によってはパフォーマンスがやや低下することを確認しています。 

一部のお客様は、L1TF および MDS のリスクを完全に解決するためにハイパースレッディング (同時マルチスレッディング または SMT とも呼ばれます) を無効にする必要があります。 ハイパースレッディングを無効にすると、パフォーマンスが低下する可能性がある点に注意してください。 この状況は、以下を使用するお客様に適用されます。

  • Windows Server 2016 または Windows 10 バージョン 1607 (Anniversary Update) よりも前のバージョンの Hyper-V  
  • Credential Guard や Device Guard などの仮想化ベースのセキュリティ (VBS) 機能 
  • 信頼できないコードの実行を許可するソフトウェア (たとえば、ビルド自動化サーバーや共有 IIS ホスティング環境など)

影響度は、ハードウェアや、システムで実行されているワークロードによって変わる可能性があります。  最も一般的なシステム構成では、ハイパースレッディングが有効です。  そのため、ユーザーまたは管理者がシステムでハイパースレッディングを無効にすると、パフォーマンスの影響は緩和されます。 

注意: VBS で保護されたセキュリティ機能がシステムに使用されているかどうか確認するには、次の手順を実行します。

  1. [スタート] メニューで「MSINFO32」と入力します。 

    注: [システム情報] ウィンドウが開きます。
  2. [検索する文字列] ボックスに「セキュリティ」と入力します。
  3. スクリーン ショットで選択されている 2 行を右側のウィンドウから探し、[] 列で仮想化ベースのセキュリティが有効かどうかと、実行されている仮想化ベースのセキュリティ サービスを確認します。  
     

    [システム情報] ウィンドウ


Hyper-V コア スケジューラを使用すると、ハイパースレッディングを有効にしたままで、Hyper-V 仮想マシンが L1TF および MDS の攻撃対象になる状況を緩和できます。     コア スケジューラは、Windows Server 2016 および Windows 10 バージョン 1607 以降で使用可能です。 これで、仮想マシンのパフォーマンスへの影響を最小限に抑えられます。

VBS で保護されたセキュリティ機能が L1TF および MDS の攻撃対象になる状況は、コア スケジューラでは緩和されません。詳細については、「緩和策 C」と次の仮想化に関するブログの資料を参照してください。     

https://aka.ms/hyperclear (英語情報)

パフォーマンスの影響に関する Intel の詳細情報については、次の Intel Web サイトを参照してください。

www.intel.com/securityfirst (英語情報)

影響を受けるシステムと必要な緩和策の特定

図 1 のフローチャートを利用して、影響を受けるシステムを特定し、正しい一連の操作を判断してください。 

重要: 仮想マシンを使用している場合は、Hyper-V ホストと影響を受ける個々の VM ゲストの両方に緩和策を適用できる場合があるため、両方についてフロー チャートを検討して適用してください。’   具体的には、Hyper-V ホスト向けには、フロー チャートの手順には VM 間の保護とホスト内の保護が用意されています。   ただし、これらの緩和策を Hyper-V ホストに適用するだけでは、VM 内を十分に保護できません。 VM 内を保護するには、各 Windows VM にフロー チャートを適用する必要があります。 ほとんどの場合、これはレジストリ キーが VM に設定されていることを確認することを示します。

フロー チャートをたどると、文字が書かれた青い丸を経由します。この文字は、システム構成に固有の L1TF の攻撃対象を緩和するために必要な 1 つまたは一連の操作にマップされています。経由した各操作を適用する必要があります。緑色の線を経由する場合、それは終了に直行する経路であり、追加の緩和手順はないことを示します。    

文字付きの各緩和策の簡単な説明は、右側の凡例に記載されています。段階的なインストール手順と構成手順が記載されている各緩和策の詳細な説明については、「緩和策」セクションを参照してください。    

フローチャート

 

緩和策


重要: 次のセクションでは緩和策について説明します。この緩和策は、前のセクションの図 1 のフロー チャートで特定された条件下でのみ適用します。フロー チャートで特定の緩和策が必要であると示されていない場合は、その緩和策を適用しないでください。  

特定の保護機能を有効にするには、ソフトウェアとマイクロコードの更新プログラムに加えて、手動の構成変更も必要な場合があります。また、企業のお客様には、内容の変更について通知を受けられるようにセキュリティ通知メーラーに登録することをお勧めします     (「マイクロソフト テクニカル セキュリティ通知のご案内」を参照してください)。

緩和策 A

最新の Windows 更新プログラムを入手して適用する

マンスリー Windows セキュリティ更新プログラムなど、利用できるすべての Windows オペレーティング システム更新プログラムを適用します。マイクロソフトのセキュリティ アドバイザリ | ADV180018 (L1TF の場合) およびセキュリティ アドバイザリ | ADV190013 (MDS の場合) に記載されている、影響を受ける製品の一覧を参照してください。 

緩和策 B

最新のマイクロコードまたはファームウェアk更新プログラムを入手して適用する

最新の Windows セキュリティ更新プログラムをインストールするだけでなく、プロセッサ マイクロコードの更新プログラムも必要です。 これらの更新プログラムのインストールは、デバイスk OEM から提供されます。

注: 入れ子の仮想化 (ゲスト VM 内で Hyper-V コンテナーを実行する場合を含む) を使用している場合は、ゲスト VM に新しいマイクロコード エンライトメントを適用する必要があります。そのために、必要に応じて VM 構成をバージョン 8 にアップグレードします。’    バージョン 8 には、既定でマイクロコード エンライトメントが含まれています。 詳細と必要な手順については、Microsoft Docs の次の資料を参照してください。

入れ子になった仮想化による仮想マシンでの Hyper-V の実行

緩和策 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 を無効にする方法の詳細については、次の資料を参照してください。

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 の資料を参照してください。’

Understanding and using Hyper-V hypervisor scheduler types (英語情報)

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 の緩和策を有効にする

注: Windows Server 2019 および Windows クライアント オペレーティング システムでは、これらの緩和策が既定で有効になっています。

アドバイザリ CVE-2017-5715 および CVE-2017-5754 の緩和策を有効にするには、次の資料のガイダンスを参照してください。

KB 4072698 | Windows Server を投機的実行のサイドチャネルの脆弱性から保護するためのガイダンス

KB 4073119 | 投機的実行サイドチャネルの脆弱性から保護するための IT プロフェッショナル向け |Windows クライアント ガイダンス

 

注: これらの緩和策には、Windows カーネルに対するセーフ ページ フレーム ビットの緩和策と、CVE-2018-3620 で説明されている緩和策も含まれており、自動的に有効になります。  セーフ ページ フレーム ビットの詳細については、次の Security Research & Defense ブログの資料を参照してください。 

Analysis and mitigation of L1 Terminal Fault (L1TF) (英語情報)