Настройка защиты от эксплойтов

Область применения:

Хотите попробовать Defender для конечной точки? Зарегистрироваться для бесплатной пробной версии.

Защита от эксплойтов автоматически применяет ряд методов устранения эксплойтов как к процессам операционной системы, так и к отдельным приложениям.

Настройте эти параметры с помощью приложения «Безопасность Windows» на отдельном устройстве. Затем экспортируйте конфигурацию в виде XML-файла, чтобы ее можно было развернуть на других устройствах. Используйте групповую политику для одновременного распространения XML-файла на несколько устройств. Вы также можете настроить меры по снижению рисков с помощью PowerShell.

В этой статье перечислены все средства защиты от эксплойтов. В ней указано, можно ли применить меры по устранению рисков в масштабах всей системы или к отдельным приложениям, а также приведено краткое описание того, как они работают.

В ней также описывается, как включить или настроить средства устранения рисков с помощью приложения поставщик служб конфигурации «Безопасности Windows», PowerShell и управления мобильными устройствами (MDM). Это первый шаг в создании конфигурации, которую можно развернуть в сети. Следующий шаг включает создание, экспорт, импорт и развертывание конфигурации на нескольких устройствах.

Предупреждение

Некоторые технологии защиты безопасности могут иметь проблемы совместимости с некоторыми приложениями. Необходимо проверить защиту от эксплойтов во всех сценариях целевого использования с помощью режима аудита перед развертыванием конфигурации в производственной среде или в остальной части сети.

Меры защиты от эксплойтов

Все меры по устранению рисков можно настроить для отдельных приложений. Некоторые меры по устранению рисков также могут быть применены на уровне операционной системы.

Вы можете включить или выключить каждое из мер по устранению рисков или установить его значение по умолчанию. Некоторые меры имеют дополнительные параметры, которые указаны в описании в таблице.

Значения по умолчанию всегда указываются в скобках в параметре Использовать по умолчанию для каждой меры по устранению рисков. В следующем примере по умолчанию для предотвращения выполнения данных установлено значение «Вкл.».

Конфигурация Использовать по умолчанию для каждого из параметров меры по устранению рисков указывает на нашу рекомендацию по базовому уровню защиты для повседневного использования домашними пользователями. В корпоративных развертываниях необходимо учитывать защиту, необходимую для их индивидуальных потребностей, и, возможно, потребуется изменить конфигурацию по умолчанию.

Связанные командлеты PowerShell для каждой меры устранения рисков см. в справочной таблице PowerShell в нижней части этой статьи.

Устранение рисков Описание Может быть применено к Доступен режим аудита
Защита потока управления (CFG) Обеспечивает целостность потока управления для непрямых вызовов. При желании можно скрыть экспорт и использовать строгую защиту потока управления (CFG). Уровень системы и уровень приложения Нет
Предотвращение выполнения данных (DEP) Предотвращает запуск кода со страниц памяти, предназначенных только для данных, таких как куча и стеки. Настраивается только для 32-разрядных версий (x86) приложений. Всегда включено для всех других архитектур. При желании можно включить эмуляцию преобразователя ATL. Уровень системы и уровень приложения Нет
Принудительный случайный выбор изображений (обязательный ASLR) Принудительное перемещение образов, не скомпилированных с /DYNAMICBASE. При необходимости изображения, у которых нет информации о перемещении, могут не загружаться. Уровень системы и уровень приложения Нет
Случайные выделения памяти (ASLR снизу вверх) Используется случайное расположение при выделении виртуальной памяти. Включает кучи системной структуры, стеки, TEB и PEB. При желании можно использовать более широкую дисперсию рандомизации для 64-разрядных процессов. Уровень системы и уровень приложения Нет
Проверка цепочек исключений (SEHOP) Обеспечивает целостность цепочки исключений во время отправки исключений. Настраивается только для 32-разрядных версий (x86) приложений. Уровень системы и уровень приложения Нет
Проверка целостности кучи Завершает процесс при обнаружении повреждения кучи. Уровень системы и уровень приложения Нет
Механизм Arbitrary code guard (ACG) Предотвращает внедрение исполняемого кода, не связанного с изображением, и предотвращает изменение страниц кода. При желании можно разрешить отказ от потока и разрешить удаленный переход на использование более ранней версии (настраивается только с помощью PowerShell). Только на уровне приложения Да
Блокировать изображений с низкой целостностью Препятствует загрузке изображений, помеченных низкой целостностью. Только на уровне приложения Да
Блокировать удаленные изображения Блокирует загрузку образов из удаленных устройств. Только на уровне приложения Нет
Блокировка ненадежные шрифты Предотвращает загрузку любых шрифтов на основе GDI, не установленных в каталоге системных шрифтов, особенно шрифтов из Интернета. Только на уровне приложения Да
Защита целостности кода Ограничивает загрузку изображений, подписанных корпорацией Майкрософт, WHQL или выше. При желании можно разрешить подписанные изображения Microsoft Store. Только на уровне приложения Да
Отключить точки расширения Отключает различные механизмы расширения, позволяющие внедрять библиотеки DLL во все процессы, такие как библиотеки DLL AppInit, обработчики окон и поставщики служб Winsock. Только на уровне приложения Нет
Отключить системные вызовы Win32k Предотвращает использование приложением таблицы системных вызовов Win32k. Только на уровне приложения Да
Не разрешать дочерние процессы Не позволяет приложению создавать дочерние процессы. Только на уровне приложения Да
Фильтрация адресов экспорта (EAF) Обнаруживает опасные операции, разрешаемые вредоносным кодом. При необходимости можно проверить доступ модулей, обычно используемых эксплойтами. Только на уровне приложения Да
Фильтрация адресов импорта (IAF) Обнаруживает опасные операции, разрешаемые вредоносным кодом. Только на уровне приложения Да
Имитация выполнения (SimExec) Гарантирует, что вызовы к конфиденциальным API возвращаются законным вызывающим сторонам. Настраивается только для 32-разрядных версий (x86) приложений. Несовместимо с ACG. Только на уровне приложения Да
Проверка вызова API (CallerCheck) Гарантирует, что конфиденциальные API вызываются законными вызывающими объектами. Настраивается только для 32-разрядных версий (x86) приложений. Несовместимо с ACG Только на уровне приложения Да
Проверка использования дескриптора Вызывает исключение для любых недопустимых ссылок на дескрипторы. Только на уровне приложения Нет
Проверка целостности зависимостей изображения Принудительно подписывает код для загрузки зависимостей образа Windows. Только на уровне приложения Нет
Проверка целостности стека (StackPivot) Гарантирует, что стек не был перенаправлен для конфиденциальных API. Несовместимо с ACG. Только на уровне приложения Да

Важно!

Если вы добавите приложение в раздел Параметры программы и настроите в нем отдельные параметры защиты, они будут иметь приоритет над конфигурацией для аналогичных мер, указанных в разделе Параметры системы. В следующей матрице и примерах показано, как работают значения по умолчанию:

Включено в Параметрах программы Включено в Параметрах системы Поведение
Да Нет Как определено в Параметрах программы
Да Да Как определено в Параметрах программы
Нет Да Как определено в Параметрах системы
Нет Нет По умолчанию, как определено в параметре Использовать по умолчанию
  • Пример 1. Майкл настраивает для предотвращения выполнения данных (DEP) в разделе Параметры системы значение Выключено по умолчанию. Затем Майкл добавляет приложение test.exe в раздел Параметры программы. В параметрах этого приложения для предотвращения выполнения данных (DEP) он включает параметр Переопределение параметров системы и устанавливает переключатель на Включено. В разделе Параметры программы нет других приложений. В результате DEP будет включено только для test.exe. Для всех остальных приложений параметр DEP применяться не будет.

  • Пример 2 Джози настраивает для предотвращения выполнения данных (DEP) в разделе Параметры системы значение Выключено по умолчанию. Затем Джози добавляет приложение test.exe в раздел Параметры программы. В параметрах этого приложения для предотвращения выполнения данных (DEP) она включает параметр Переопределение параметров системы и устанавливает переключатель на Включено. Джози также добавляет приложение miles.exe в раздел Параметры программы и настраивает для Защиты потока управления (CFG) значение Включено. Она не включает параметр Переопределение параметров системы для DEP или других мер для этого приложения. В результате DEP будет включено для test.exe. Параметр DEP не будет включен для других приложений, включая miles.exe. Параметр CFG будет включен для miles.exe.

Примечание.

Если вы обнаружили какие-либо проблемы в этой статье, вы можете сообщить об этом непосредственно партнеру Windows Server или Windows Client или использовать номера технической поддержки Майкрософт для вашей страны или региона.

Настройка средства защиты на уровне системы с помощью приложения для «Безопасность Windows».

  1. Откройте приложение \"Безопасность Windows\", выбрав значок щита на панели задач или открыв меню "Пуск" и выбрав параметр Безопасность Windows.

  2. Выберите плитку Управление приложениями и браузером (или значок приложения в левой панели меню), а затем выберите Защита от эксплойтов.

  3. В разделе Параметры системы найдите меры, которые необходимо настроить, и выберите один из следующих вариантов. Приложения, которые не настроены индивидуально в разделе Параметры программы, будут использовать параметры, настроенные здесь.

    • Включено по умолчанию: эта мера включена для приложений, для которых она не задана в разделе Параметры программы для конкретного приложения
    • Выключено по умолчанию: эта мера выключена для приложений, для которых она не задана в разделе Параметры программы для конкретного приложения
    • Использовать значение по умолчанию: эта мера включена или отключена в зависимости от конфигурации по умолчанию, настроенной при установке Windows 10 или Windows 11; значение по умолчанию (вкл. или выкл.) всегда указывается рядом с меткой Использовать по умолчанию для каждой меры

    Примечание.

    При изменении некоторых параметров может появиться окно контроля учетных записей пользователя. Введите учетные данные администратора, чтобы применить параметр.

    Для изменения некоторых параметров может потребоваться перезагрузка.

  4. Повторите это для всех приложений и мер, которые вы хотите настроить.

  5. Перейдите в раздел Параметры программы и выберите приложение, к которому вы хотите применить меры.

    1. Если приложение, которое вы хотите настроить, уже указано в списке, выберите его и нажмите Изменить
    2. Если приложение не указано в списке, в верхней части списка найдите Добавить программу для индивидуальной настройки, а затем выберите, как вы хотите добавить приложение.
      • Используйте Добавить по имени программы, чтобы применить меры к любым запущенным процессам с таким именем. Необходимо указать файл с расширением. Вы можете ввести полный путь, чтобы ограничить применение мер только приложением с таким именем в этом расположении.
      • Нажмите Выбрать точный путь файла, чтобы использовать стандартное окно выбора файлов проводника Windows Explorer для поиска и выбора нужного файла.
  6. После выбора приложения вы увидите список всех мер, которые можно применить. Чтобы включить меры по устранению рисков, установите флажок, а затем переместите ползунок в положение Вкл.. Выберите дополнительные параметры. При выборе параметра Аудит применяется меры только в режиме аудита. Вы будете уведомлены при возникновении необходимости перезапуска процесса или приложения или перезапуска Windows.

  7. Повторите эти действия для всех приложений и мер, которые вы хотите настроить. После настройки конфигурации выберите Применить.

Теперь вы можете экспортировать эти параметры в виде XML-файла или продолжить настройку мер по устранению рисков для конкретных приложений.

Экспорт конфигурации в виде XML-файла позволяет копировать конфигурацию с одного устройства на другие устройства.

Справочные материалы по PowerShell

Для настройки защиты от эксплойтов можно использовать приложение «Безопасность Windows» или использовать командлеты PowerShell.

Параметры конфигурации, которые были изменены последними, будут применяться всегда — независимо от того, используете ли вы PowerShell или приложение «Безопасность Windows». Это означает, что если вы используете приложение для настройки мер по устранению рисков, а затем используете PowerShell для настройки той же меры, приложение обновится, чтобы показать изменения, внесенные вами с помощью PowerShell. Если вы затем снова используете приложение для изменения меры пр устранению рисков, это изменение будет применено.

Важно!

Любые изменения, развернутые на устройстве с помощью групповой политики, переопределяют локальную конфигурацию. При настройке начальной конфигурации используйте устройство, к которому не будет применена конфигурация групповой политики, чтобы ваши изменения не были переопределены.

Вы можете использовать глагол PowerShell Get или Set командлет ProcessMitigation. При использовании Get вы увидите текущее состояние конфигурации всех мер, включенных на устройстве. Добавьте командлет -Name и расширение приложения, чтобы увидеть меры только для этого приложения:

Get-ProcessMitigation -Name processName.exe

Важно!

Ненастроенные меры защиты на уровне системы будут показывать состояние NOTSET.

Для системных параметров NOTSET обозначает, что для этой меры защиты задано значение по умолчанию.

Для параметров на уровне приложения NOTSET обозначает, что для этой меры защиты будет задано значение на уровне системы.

Параметр по умолчанию для каждой меры защиты на уровне системы можно увидеть в разделе \"Безопасность Windows\".

Используйте Set для настройки каждой меры в следующем формате:

Set-ProcessMitigation -<scope> <app executable> -<action> <mitigation or options>,<mitigation or options>,<mitigation or options>

Где:

  • <Область:>
    • -Name для указания мер, которые следует применить к определенному приложению. Укажите исполняемый файл приложения после того, как поставите этот флажок.
    • -System для указания мер, которые следует применить на уровне системы
  • <Действие>:
    • -Enable, чтобы включить меры
    • -Disable, чтобы отключить меры
  • <Устранение рисков>.

Например, для включения предотвращения выполнения данных (DEP) с эмуляцией преобразователя ATL, а также для исполняемого файла с названием testing.exe в папке C:\Apps\LOB\tests и предотвращения создания этим исполняемым файлом дочерних процессов необходимо использовать следующую команду:

Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable DEP, EmulateAtlThunks, DisallowChildProcessCreation

Важно!

Отделяйте каждый параметр меры запятой.

Чтобы применить DEP на уровне системы, необходимо использовать следующую команду:

Set-Processmitigation -System -Enable DEP

Чтобы отключить меры, можно заменить -Enable на -Disable. Однако для мер на уровне приложения это действие приведет к отключению меры только для этого приложения.

Если необходимо восстановить меры по умолчанию, включите командлет -Remove, как показано в следующем примере:

Set-Processmitigation -Name test.exe -Remove -Disable DEP

Вы также можете настроить некоторые меры в режиме аудита. Вместо использования командлета PowerShell для мер устранения рисков используйте командлет режима аудита, как указано в приведенной ниже таблице командлетов мер устранения рисков.

Например, чтобы включить Arbitrary Code Guard (ACG) в режиме аудита для используемого ранее testing.exe, необходимо использовать следующую команду:

Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable AuditDynamicCode

Режим аудита можно отключить, используя ту же команду, но заменив -Enable на -Disable.

Справочная таблица PowerShell

В этой таблице перечислены командлеты PowerShell (и связанный с ними командлет режима аудита), которые можно использовать для настройки мер устранения рисков.

Устранение рисков Сфера применения Командлеты PowerShell Параметр командлета для режима аудита
Защита потока управления (CFG) Уровень системы и уровень приложения CFG, StrictCFG, SuppressExports Аудит недоступен
Предотвращение выполнения данных (DEP) Уровень системы и уровень приложения DEP, EmulateAtlThunks Аудит недоступен
Принудительный случайный выбор изображений (обязательный ASLR) Уровень системы и уровень приложения ForceRelocateImages Аудит недоступен
Случайные выделения памяти (ASLR снизу вверх) Уровень системы и уровень приложения BottomUp, HighEntropy Аудит недоступен
Проверка цепочек исключений (SEHOP) Уровень системы и уровень приложения SEHOP, SEHOPTelemetry Аудит недоступен
Проверка целостности кучи Уровень системы и уровень приложения TerminateOnError Аудит недоступен
Механизм Arbitrary code guard (ACG) Только на уровне приложения DynamicCode AuditDynamicCode
Блокировать изображений с низкой целостностью Только на уровне приложения BlockLowLabel AuditImageLoad
Блокировать удаленные изображения Только на уровне приложения BlockRemoteImages Аудит недоступен
Блокировка ненадежные шрифты Только на уровне приложения DisableNonSystemFonts AuditFont, FontAuditOnly
Защита целостности кода Только на уровне приложения BlockNonMicrosoftSigned, AllowStoreSigned AuditMicrosoftSigned, AuditStoreSigned
Отключить точки расширения Только на уровне приложения ExtensionPoint Аудит недоступен
Отключить системные вызовы Win32k Только на уровне приложения DisableWin32kSystemCalls AuditSystemCall
Не разрешать дочерние процессы Только на уровне приложения DisallowChildProcessCreation AuditChildProcess
Фильтрация адресов экспорта (EAF) Только на уровне приложения EnableExportAddressFilterPlus, EnableExportAddressFilter [1] Аудит недоступен[2]
Фильтрация адресов импорта (IAF) Только на уровне приложения EnableImportAddressFilter Аудит недоступен[2]
Имитация выполнения (SimExec) Только на уровне приложения EnableRopSimExec Аудит недоступен[2]
Проверка вызова API (CallerCheck) Только на уровне приложения EnableRopCallerCheck Аудит недоступен[2]
Проверка использования дескриптора Только на уровне приложения StrictHandle Аудит недоступен
Проверка целостности зависимостей изображения Только на уровне приложения EnforceModuleDepencySigning Аудит недоступен
Проверка целостности стека (StackPivot) Только на уровне приложения EnableRopStackPivot Аудит недоступен[2]

[1]: используйте следующий формат, чтобы включить модули EAF для dll для процесса:

Set-ProcessMitigation -Name processName.exe -Enable EnableExportAddressFilterPlus -EAFModules dllName1.dll,dllName2.dll

[2]. Аудит для этой защиты недоступен с помощью командлетов PowerShell.

Настройка уведомлений

Дополнительные сведения о настройке уведомлений при срабатывании правила и блокировке приложения или файла см. в разделе Безопасность Windows.

См. также

Совет

Хотите узнать больше? Engage с сообществом Microsoft Security в нашем техническом сообществе: Microsoft Defender для конечной точки Техническое сообщество.