Настройка защиты от эксплойтов
Область применения:
- Microsoft Defender для конечной точки (план 1)
- Microsoft Defender для конечной точки (план 2)
- Microsoft Defender XDR
Хотите попробовать 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».
Откройте приложение \"Безопасность Windows\", выбрав значок щита на панели задач или открыв меню "Пуск" и выбрав параметр Безопасность Windows.
Выберите плитку Управление приложениями и браузером (или значок приложения в левой панели меню), а затем выберите Защита от эксплойтов.
В разделе Параметры системы найдите меры, которые необходимо настроить, и выберите один из следующих вариантов. Приложения, которые не настроены индивидуально в разделе Параметры программы, будут использовать параметры, настроенные здесь.
- Включено по умолчанию: эта мера включена для приложений, для которых она не задана в разделе Параметры программы для конкретного приложения
- Выключено по умолчанию: эта мера выключена для приложений, для которых она не задана в разделе Параметры программы для конкретного приложения
- Использовать значение по умолчанию: эта мера включена или отключена в зависимости от конфигурации по умолчанию, настроенной при установке Windows 10 или Windows 11; значение по умолчанию (вкл. или выкл.) всегда указывается рядом с меткой Использовать по умолчанию для каждой меры
Примечание.
При изменении некоторых параметров может появиться окно контроля учетных записей пользователя. Введите учетные данные администратора, чтобы применить параметр.
Для изменения некоторых параметров может потребоваться перезагрузка.
Повторите это для всех приложений и мер, которые вы хотите настроить.
Перейдите в раздел Параметры программы и выберите приложение, к которому вы хотите применить меры.
- Если приложение, которое вы хотите настроить, уже указано в списке, выберите его и нажмите Изменить
- Если приложение не указано в списке, в верхней части списка найдите Добавить программу для индивидуальной настройки, а затем выберите, как вы хотите добавить приложение.
- Используйте Добавить по имени программы, чтобы применить меры к любым запущенным процессам с таким именем. Необходимо указать файл с расширением. Вы можете ввести полный путь, чтобы ограничить применение мер только приложением с таким именем в этом расположении.
- Нажмите Выбрать точный путь файла, чтобы использовать стандартное окно выбора файлов проводника Windows Explorer для поиска и выбора нужного файла.
После выбора приложения вы увидите список всех мер, которые можно применить. Чтобы включить меры по устранению рисков, установите флажок, а затем переместите ползунок в положение Вкл.. Выберите дополнительные параметры. При выборе параметра Аудит применяется меры только в режиме аудита. Вы будете уведомлены при возникновении необходимости перезапуска процесса или приложения или перезапуска Windows.
Повторите эти действия для всех приложений и мер, которые вы хотите настроить. После настройки конфигурации выберите Применить.
Теперь вы можете экспортировать эти параметры в виде 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 для конечной точки Техническое сообщество.