カーネル DMA 保護

適用対象

  • Windows 10
  • Windows 11

Windows 10 バージョン 1803 では、外部からアクセス可能な PCIe ポート (Thunderbolt™ 3 ポートや CFexpress など) に接続された PCI ホット プラグ デバイスを使用して、ドライブバイ ダイレクト メモリ アクセス (DMA) 攻撃から PC を保護するためのカーネル DMA Protection という新機能が導入されました。 バージョン 1903 Windows 10、Microsoft は内部 PCIe ポート (M.2 スロットなど) をカバーするようにカーネル DMA 保護のサポートを拡張しました

ドライブバイ DMA 攻撃により、PC に存在する機密情報が漏洩したり、攻撃者がロック画面をバイパスしたり、PC をリモートで制御したりできるマルウェアの挿入が発生する可能性があります。

この機能は、1394/FireWire、PCMCIA、CardBus、ExpressCard などを介した DMA 攻撃から保護しません。

Background

PCI デバイスは DMA 対応であり、システム プロセッサをこれらの操作に関与させることなく、システム メモリの読み取りと書き込みを行うことができます。 DMA 機能は、PCI デバイスを現在利用できる最高のパフォーマンスのデバイスにするものです。 これらのデバイスは、カードとして接続されているか、マザーボードにはんだ付けされた、PCシャーシ内にのみ存在していた。 これらのデバイスにアクセスするには、ユーザーがシステムの電源をオフにし、シャーシを逆アセンブルする必要があります。

現在では、ホット プラグ PCIe ポート (Thunderbolt™ や CFexpress など) では、この問題はなくなりました。

Thunderbolt™ テクノロジなどのホット プラグ PCIe ポートは、PC では以前は利用できなかった拡張性を備えた最新の PC を提供してきました。 これにより、ユーザーは、USB と同じホット プラグ エクスペリエンスを備えた PC に、グラフィックス カードや他の PCI デバイスなどの外部周辺機器の新しいクラスを接続できます。 PCI ホット プラグ ポートを外部から簡単にアクセスできるようにすることで、PC はドライブバイ DMA 攻撃を受けやすくなります。

ドライブバイ DMA 攻撃は、システムの所有者が存在しない間に発生する攻撃であり、通常は 10 分未満で、PC の分解を必要としない単純な攻撃ツール (手頃な価格の、オフザシェルフのハードウェアとソフトウェア) を使用します。 簡単な例としては、PC 所有者が PC を離れて迅速なコーヒー ブレイクを行い、休憩中に攻撃者が侵入し、USB のようなデバイスに接続してコンピューター上のすべてのシークレットを使用して離れるか、PC をリモートで完全に制御できるマルウェアを挿入します。

DMA ドライブバイ攻撃から Windows が保護する方法

Windows では、システム入出力メモリ管理ユニット (IOMMU) を利用して、これらの周辺機器のドライバーがメモリ分離 (DMA 再マッピングなど) をサポートしていない限り、外部周辺機器の DMA の起動と実行をブロックします。 DMA 再マッピング互換ドライバーを持つ周辺機器は、割り当てられたメモリ領域に対して DMA を自動的に列挙、開始、および実行できます。

既定では、DMA 再マッピングの互換性のないドライバーを持つ周辺機器は、承認されたユーザーがシステムにサインインするか、画面のロックを解除するまで、DMA の起動と実行がブロックされます。 IT 管理者は、 DMAGuard MDM ポリシーを使用して、DMA 再マッピング互換性のないドライバーを持つデバイスに適用される既定の動作を変更できます。

ユーザー エクスペリエンス

カーネル DMA 保護ユーザー エクスペリエンス

既定では、DMA が互換性のあるデバイス ドライバーを再マッピングする周辺機器が自動的に列挙され、開始されます。 DMA 再マッピングの互換性のないドライバーを持つ周辺機器は、承認されたユーザーがログインする前に周辺機器が接続されていた場合、または画面がロックされている間、起動がブロックされます。 システムのロックが解除されると、周辺機器ドライバーが OS によって起動され、システムが再起動されるか、周辺機器が取り外されるまで、周辺機器は正常に機能し続けます。 ユーザーが画面をロックするか、システムからログアウトした場合、周辺機器は正常に機能し続けます。

システムの互換性

カーネル DMA 保護には、新しい UEFI ファームウェアのサポートが必要です。 このサポートは、Windows 10 バージョン 1803 (すべてのシステムではない) に付属する新しく導入された Intel ベースのシステムでのみ予想されます。 仮想化ベースのセキュリティ (VBS) は必要ありません。

システムがカーネル DMA 保護をサポートしているかどうかを確認するには、システム情報デスクトップ アプリ (MSINFO32) を確認します。 Windows 10 バージョン 1803 より前にリリースされたシステムでは、カーネル DMA 保護はサポートされていませんが、「BitLocker 対策」で説明されているように、他の DMA 攻撃の軽減策を利用できます。

カーネル DMA 保護は、他の BitLocker DMA 攻撃対策と互換性がありません。 システムがカーネル DMA 保護をサポートしている場合は、BitLocker DMA 攻撃対策を無効にすることをお勧めします。 カーネル DMA 保護は、外部周辺機器の使いやすさを維持しながら、BitLocker DMA 攻撃対策よりもシステムのセキュリティ バーを高めます。

グラフィックス デバイスの DMA 再マッピングのサポートは、WDDM 3.0 ドライバー モデルを使用してWindows 11に追加されました。Windows 10では、この機能はサポートされていません。

カーネル DMA 保護が有効になっているかどうかを確認する方法

カーネル DMA 保護をサポートするバージョン 1803 Windows 10実行されているシステムでは、このセキュリティ機能が OS によって自動的に有効になり、ユーザーまたは IT 管理者の構成は必要ありません。

Windows セキュリティ アプリの使用

バージョン 1809 Windows 10以降、Windows セキュリティ アプリを使用して、カーネル DMA 保護が有効になっているかどうかを確認できます。 [スタート] [設定>の更新] [セキュリティの更新&Windows セキュリティ>[Windows セキュリティ>][デバイス セキュリティ>コアの分離の詳細] [メモリ アクセス保護] の順>にクリックします>。>

Windows セキュリティでのカーネル DMA 保護

システム情報の使用

  1. コマンド プロンプトまたは Windows 検索バーでMSINFO32.exeを起動します。

  2. カーネル DMA 保護の値を確認します。

    システム情報のカーネル DMA 保護。

  3. カーネル DMA 保護の現在の状態がオフで、Hyper-V - ファームウェアで仮想化が有効になっている場合は、次の手順を実行します。

    • BIOS 設定を再起動する
    • Intel Virtualization Technology を有効にします。
    • Intel Virtualization Technology for I/O (VT-d) を有効にします。 バージョン 1803 Windows 10では、Intel VT-d のみがサポートされています。 他のプラットフォームでは、「 BitLocker 対策」で説明されている DMA 攻撃の軽減策を使用できます。
    • Windows にシステムを再起動します。

    Hyper-V Windows 機能が有効になっている場合、Hyper-V 関連のすべての機能が非表示になり、ハイパーバイザーが検出されました。Hyper-V に必要な機能は表示されませんエンティティが一覧の下部に表示されます。 これは、 Hyper-V - ファームウェアで仮想化が有効 になっているが、YES に設定されていることを意味します。

    ファームウェアで Hyper-V 仮想化を有効にする (IOMMU) は、ファームウェアが OEM の カーネル DMA 保護 (メモリ アクセス保護) で説明されている "ACPI カーネル DMA 保護インジケーター" のフラグを持っている場合でも 、カーネル DMA 保護を有効にする必要があります。

  4. カーネル DMA 保護の状態が [オフ] のままの場合、システムはこの機能をサポートしません。

    カーネル DMA 保護をサポートしていないシステムについては、他の DMA 保護方法については、 BitLocker 対策 または Microsoft Windows® 10 オペレーティング システムの Thunderbolt™ 3 とセキュリティに関 するページを参照してください。

よく寄せられる質問

市場内システムでは、Thunderbolt 3 用のカーネル DMA 保護が™サポートされていますか?

Windows 10 バージョン 1709 以前でリリースされた市場内システムでは、Windows 10 バージョン 1803 にアップグレードした後、Thunderbolt™ 3 のカーネル DMA Protection はサポートされません。この機能には、以前にリリースされたデバイスにバックポートできない BIOS/プラットフォーム ファームウェアの変更と保証が必要です。 これらのシステムについては、他の DMA 保護方法については、 BitLocker 対策 または Microsoft Windows® 10 オペレーティング システムの Thunderbolt™ 3 とセキュリティ に関するページを参照してください。

カーネル DMA 保護は、ブート中のドライブバイ DMA 攻撃を防ぎますか?

いいえ。カーネル DMA 保護は、OS が読み込まれた後にのみドライブバイ DMA 攻撃から保護されます。 起動中に Thunderbolt™ 3 ポートを介した攻撃から保護するのは、システム ファームウェア/BIOS の責任です。

特定のドライバーが DMA 再マッピングをサポートしているかどうかを確認するにはどうすればよいですか?

DMA 再マッピングは、特定のデバイス ドライバーでサポートされており、プラットフォーム上のすべてのデバイスとドライバーで一般的にサポートされているわけではありません。 特定のドライバーが DMA 再マッピングにオプトインされているかどうかを確認するには、デバイス マネージャー* のデバイスの [詳細] タブにある DMA 再マッピング ポリシー プロパティに対応する値を確認します。 値 0 または 1 は、デバイス ドライバーが DMA 再マッピングをサポートしていないことを意味します。 2 の値は、デバイス ドライバーが DMA 再マッピングをサポートすることを意味します。 プロパティが使用できない場合、ポリシーはデバイス ドライバーによって設定されません (つまり、デバイス ドライバーは DMA 再マッピングをサポートしていません)。 テストするデバイスのドライバー インスタンスを確認します。 一部のドライバーでは、デバイスの場所 (内部と外部) によって値が異なる場合があります。

カーネル DMA 保護に関するユーザーエクスペリエンス

*Windows 10 バージョン 1803 および 1809 の場合、デバイス マネージャーのプロパティ フィールドでは、次の図で強調表示されている GUID が使用されます。

カーネル DMA 保護に関するユーザーのエクスペリエンス

PCI または Thunderbolt™ 3 周辺機器のドライバーが DMA 再マッピングをサポートしていない場合

周辺機器に Windows によって提供されるクラス ドライバーがある場合は、システムでこれらのドライバーを使用します。 周辺機器用に Windows によって提供されるクラス ドライバーがない場合は、周辺機器ベンダー/ドライバー ベンダーに問い合わせて、 DMA 再マッピングをサポートするようにドライバーを更新してください。

システムのカーネル DMA 保護がオフになっています。 特定のデバイスの DMA 再マッピングを有効にできますか?

はい、できます。 特定のデバイスの DMA 再マッピングは、カーネル DMA 保護とは別にオンにすることができます。 たとえば、ドライバーがオプトインし、VT-d (ダイレクト I/O の仮想化テクノロジ) がオンになっている場合、カーネル DMA 保護がオフになっている場合でも、デバイス ドライバーに対して DMA 再マッピングが有効になります。

カーネル DMA 保護は、再マッピングの状態と機能に基づいて、デバイスが DMA を実行することを許可またはブロックするポリシーです。

Microsoft ドライバーは DMA 再マッピングをサポートしていますか?

Windows 10 1803 以降では、USB XHCI (3.x) コントローラー、ストレージ AHCI/SATA コントローラー、および記憶域 NVMe コントローラー用の Microsoft 受信トレイ ドライバーは、DMA 再マッピングをサポートしています。

PCI 以外のデバイスのドライバーは、DMA 再マッピングと互換性がある必要がありますか?

いいえ、そうではありません。 USB デバイスなどの PCI 以外の周辺機器のデバイスは DMA を実行しないため、ドライバーが DMA 再マッピングと互換性を持つ必要はありません。

企業が外部デバイス列挙ポリシーを有効にする方法

外部デバイス列挙ポリシーは、DMA 再マッピングと互換性のない外部周辺機器を列挙するかどうかを制御します。 DMA 再マッピングと互換性のある周辺機器は常に列挙されます。 ユーザーがサインインした後にのみ、ブロック、許可、または許可されない周辺機器 (既定値)。

ポリシーは、次を使用して有効にすることができます。

  • グループ ポリシー: 管理用テンプレート\System\Kernel DMA Protection\カーネル DMA 保護と互換性のない外部デバイスの列挙ポリシー
  • モバイル デバイス管理 (MDM): DmaGuard ポリシー