カーネル DMA 保護

カーネル DMA 保護は、外部周辺機器がメモリに不正にアクセスできないように保護する Windows セキュリティ機能です。

Thunderbolt、USB4、CFexpress などの PCIe ホット プラグ デバイスを使用すると、USB のプラグ アンド プレイが容易なデバイスにグラフィックス カードを含む外部周辺機器のクラスを接続できます。
これらのデバイスは DMA 対応であり、システム プロセッサの関与を必要とせずに、システム メモリにアクセスし、読み取りおよび書き込み操作を実行できます。 この機能は、PCI デバイスの優れたパフォーマンスの背後にある理由ですが、 ドライブバイ DMA 攻撃の影響を受けやすくなります。

ドライブバイ DMA 攻撃は、システムの所有者が存在しない間に発生する攻撃であり、通常、デバイスの逆アセンブリを必要としない、シンプルから中程度の攻撃ツール (手頃な価格の、オフザシェルフのハードウェアとソフトウェア) を使用して、数分しかかかりません。 たとえば、攻撃者は、デバイス所有者が休憩中に USB のようなデバイスを接続し、コンピューター上のすべてのシークレットを離れたり、ロック画面をバイパスしながらデバイスをリモートで完全に制御できるマルウェアを挿入したりできます。

カーネル DMA 保護機能は、1394/FireWire、PCMCIA、CardBus、または ExpressCard を介した DMA 攻撃から保護しません。

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

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

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

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

カーネル DMA 保護が有効になっている場合:

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

Windows エディションとライセンスに関する要件

次の表は、カーネル ダイレクト メモリ アクセス (DMA) 保護をサポートする Windows エディションの一覧です。

Windows Pro Windows Enterprise Windows Pro Education/SE Windows Education
はい はい はい はい

カーネル ダイレクト メモリ アクセス (DMA) 保護ライセンスの権利は、次のライセンスによって付与されます。

Windows Pro/Pro Education/SE Windows Enterprise E3 Windows Enterprise E5 Windows Education A3 Windows Education A5
はい はい はい はい はい

Windows ライセンスの詳細については、「Windows ライセンスの概要」を参照してください。

システムの互換性

カーネル DMA 保護には UEFI ファームウェアのサポートが必要であり、仮想化ベースのセキュリティ (VBS) は必要ありません。

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

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

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

カーネル DMA 保護をサポートするシステムは、ユーザーまたは IT 管理者の構成を必要とせず、この機能を自動的に有効にします。

カーネル DMA 保護が有効になっている場合は、Windows セキュリティ設定を使用してチェックできます。

  1. [Windows セキュリティ] を開きます。

  2. [デバイス セキュリティ>] [コア分離の詳細] [メモリ アクセス保護] の選択>

    Windows セキュリティのカーネル DMA 保護のスクリーンショット。

    または、システム情報デスクトップ アプリ (msinfo32.exe) を使用することもできます。 システムがカーネル DMA 保護をサポートしている場合、 カーネル DMA 保護 の値は ON に設定されます。

    システム情報のカーネル DMA 保護のスクリーンショット。

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

    • UEFI 設定に再起動する
    • Intel Virtualization Technology を有効にする
    • Intel Virtualization Technology for I/O (VT-d) を有効にする
    • システムを Windows に再起動する

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

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

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

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

よく寄せられる質問

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

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

特定のドライバーで DMA 再マッピングがサポートされている場合にチェックするにはどうすればよいですか?

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

値 2 を示す Thunderbolt コントローラーのデバイスの詳細のスクリーンショット。

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

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

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

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

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

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

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

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

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

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

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

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

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