Защита ядра DMA (защита доступа к памяти) для изготовителей оборудования

Защита DMA ядра (также известная как защита доступа к памяти) — это функция компьютера с Windows 10 защищенными ядрами, которая поддерживается на платформах Intel и AMD, начиная с Windows 10 версии 1803 и Windows 10, версия 1809.

С помощью этой функции ОС и встроенное ПО системы защищают систему от вредоносных и непреднамеренных атак с прямым доступом к памяти (DMA) для всех устройств с поддержкой DMA:

  • Во время процесса загрузки.
  • Защита от вредоносных DMA устройствами, подключенными к легкодоступным внешним/портам с поддержкой DMA, таким как слоты PCIe M.2 и Thunderbolt™3, во время выполнения ОС.
Требования к платформе Сведения
64-разрядный ЦП. Защита DMA ядра поддерживается только на 64-разрядных процессорах IA с расширениями виртуализации, включая Intel VT-X и AMD-v.
IOMMU (Intel VT-D, AMD-Vi) Все устройства ввода-вывода, поддерживающие DMA, должны находиться за включенным (по умолчанию) IOMMU. IOMMU использует устройства блокировки и разблокировки на основе политики перечисления устройств DMAGuard и выполняет повторное сопоставление DMA для устройств с совместимыми драйверами.
Поддержка собственных элементов управления PCI Express Для поддержки защиты ядра DMA требуется включение собственного управления PCI Express с помощью _OSC метода ACPI.
Защита DMA перед загрузкой
  • Встроенное ПО системы должно защищаться от атак DMA перед загрузкой, реализовав изоляцию DMA всех буферов ввода-вывода устройств с поддержкой DMA до ExitBootServices().
  • Встроенное ПО системы должно отключить бит включения шины (BME) для всех корневых портов PCI, которые не имеют дочерних устройств, необходимых для выполнения DMA между ExitBootServices() и драйвером устройства, запускаемым ОС.
  • В ExitBootServices() IOMMU должен быть восстановлен с помощью встроенного ПО системы в состояние включено.
  • Никакие устройства не могут выполнять DMA за пределами регионов RMRR (Intel) или блоков IVMD (AMD) после ExitBootServices() до тех пор, пока соответствующие драйверы ОС устройств не будут загружены и запущены PnP.
    • Выполнение DMA за пределами регионов RMRR или блоков IVMD после ExitBootServices() и до запуска драйвера устройства операционной системой приведет к сбою IOMMU и потенциально системной ошибке проверка (0xE6).
Индикаторы защиты DMA ядра ACPI
доверенный платформенный модуль (TPM) 2.0; TPM, дискретных или встроенного ПО, будет достаточно. Дополнительные сведения см. в разделе Доверенный платформенный модуль (TPM) 2.0.
  • При каждой загрузке, когда IOMMU (VT-D или AMD-Vi) или защита DMA ядра отключены, будут отключены или настроены на более низкое состояние безопасности, платформа ДОЛЖНА расширить событие EV_EFI_ACTION в PCR[7] перед включением DMA.
  • Строка события должна иметь значение "Защита DMA Disabled". Встроенное ПО платформы ДОЛЖНО записывать это измерение в журнал событий, используя строку "Защита DMA Disabled" для данных события.

Проверка состояния защиты DMA ядра в системе Windows 10

Состояние защиты DMA ядра можно проверить в заданной системе с помощью любого из следующих методов.

  1. Использование приложения Сведений о системе:

    • Запустите MSINFO32.exe.
    • Проверьте поле "Защита DMA ядра" на странице "Сводка системы".
  2. Использование Безопасность Windows приложения:

    • Запустите Безопасность Windows приложение из меню "Пуск" Windows.

    • Щелкните значок "Безопасность устройства".

    • Щелкните "Сведения об изоляции ядра".

    • "Защита доступа к памяти" будет указана в качестве доступной функции безопасности, если она включена.

      • Если параметр "Защита доступа к памяти" отсутствует в списке, эта функция не включена в системе.

Общие сведения о защите DMA ядра

Включение повторного сопоставления DMA для драйверов устройств

Политика DMAGuard