Защита от эксплойтов в Windows 10

Защита от эксплойтов (Exploit Guard) в Защитнике Windows 10 – новый набор инструментов, который включает защиту от эксплойтов, систему сокращения возможных направлений атаки, сетевую защиту и контролируемый доступ к папкам Защита от эксплойтов обеспечивает повышенную защиту для приложений, которые ИТ может применять после компиляции и распространения программного обеспечения разработчиком.

Экплойт (от слова эксплуатировать) является программой или кодом, который нужен для нарушения в работе системы через различные уязвимости. Конечно, их полноценными вирусами не назовешь, но опасность, они предоставляют довольно высокую. Смысл работы эксплойта найти уязвимость, после чего получить все права администратора и начать внедрять в систему вредоносное ПО и вирусы – торояны, черви и т д.



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

Проблема в том, что многие легитимные программы тоже их используют. Более того, есть старые программы (а точнее, динамические библиотеки), которые просто перестанут работать, если задействовать в Windows новые функции контроля памяти и прочие современные средства защиты. Поэтому настройка Exploit Guard — это такие же вилы, какими ранее было использование EMET.

Если же безопасность превыше всего и требуется закрутить гайки потуже, то самыми востребованными функциями Exploit Guard были (со времен EMET) и остаются:



  • DEP (Data Execution Prevention) — предотвращение выполнения данных. Не позволяет запустить на исполнение фрагмент кода, оказавшийся в не предназначенной для этого области памяти (например, в результате ошибки переполнения стека);
  • случайное перераспределение памяти — предотвращает атаку по известным адресам;
  • отключение точек расширения — препятствует внедрению DLL в запускаемые процессы (см. статью про обход UAC, где этот метод широко использовался);
  • команда DisallowChildProcessCreation — запрещает указанному приложению создавать дочерние процессы;
  • фильтрация таблиц адресов импорта (IAF) и экспорта (EAF) — не позволяет (вредоносному) процессу выполнять перебор таблиц адресов и обращаться к странице памяти системных библиотек;
  • CallerCheck — проверяет наличие прав на вызов конфиденциальных API;
  • SimExec — имитация выполнения. Проверяет перед реальным исполнением кода, кому вернутся вызовы конфиденциальных API.

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

Как применяются меры по снижению риска

Для каждого приложения применяются меры защиты от эксплойтов.

Настройка защиты задается с помощью записи в реестре для каждой программы, для которой настраивается защита. Эти параметры хранятся в записи реестра MitigationOptions для каждой программы (HKEY_LOCAL_MACHINE \ программное обеспечение \ Microsoft \ Windows NT \ CurrentVersion \ параметры выполнения файлов изображений \ ImageFileName \ MitigationOptions). Они вступают в силу после перезапуска программы и остаются в силе до тех пор, пока вы не измените их, а затем снова запустите программу.

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

Если политика распространения XML-файла больше не применяется, параметры, развернутые этим XML-файлом конфигурации, не будут автоматически удалены. Чтобы удалить параметры защиты от эксплойтов, экспортируйте конфигурацию XML с чистого устройства с Windows 10 и разместите этот новый XML-файл. Кроме того, корпорация Майкрософт предоставляет XML-файл как часть базовых показателей безопасности Windows для сброса параметров защиты от эксплойтов.

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

PowerShell

Set-ProcessMitigation -PolicyFilePath EP-reset.xml

Ниже приведена EP-reset.xml, распространяемая с базовыми планами безопасности Windows:

XML

<?xml version="1.0" encoding="UTF-8"?>
<MitigationPolicy>
  <AppConfig Executable="ONEDRIVE.EXE">
    <DEP OverrideDEP="false" />
    <ASLR OverrideRelocateImages="false" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
    <ImageLoad OverrideBlockRemoteImages="false" />
  </AppConfig>
  <AppConfig Executable="firefox.exe">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
  </AppConfig>
  <AppConfig Executable="fltldr.exe">
    <DEP OverrideDEP="false" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
    <ImageLoad OverrideBlockRemoteImages="false" />
    <ChildProcess OverrideChildProcess="false" />
  </AppConfig>
  <AppConfig Executable="GROOVE.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
    <ImageLoad OverrideBlockRemoteImages="false" />
    <ChildProcess OverrideChildProcess="false" />
  </AppConfig>
  <AppConfig Executable="Acrobat.exe">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="AcroRd32.exe">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="chrome.exe">
    <DEP OverrideDEP="false" />
  </AppConfig>
  <AppConfig Executable="EXCEL.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="iexplore.exe">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="INFOPATH.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="java.exe">
    <DEP OverrideDEP="false" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="javaw.exe">
    <DEP OverrideDEP="false" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="javaws.exe">
    <DEP OverrideDEP="false" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="LYNC.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="MSACCESS.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="MSPUB.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="OIS.EXE">
    <DEP OverrideDEP="false" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="OUTLOOK.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="plugin-container.exe">
    <DEP OverrideDEP="false" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="POWERPNT.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="PPTVIEW.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="VISIO.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="VPREVIEW.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="WINWORD.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="wmplayer.exe">
    <DEP OverrideDEP="false" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="wordpad.exe">
    <DEP OverrideDEP="false" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
</MitigationPolicy>

Центр безопасности Защитника Windows

Пользователи Windows 10 могут настроить защиту от эксплойтов в Центре безопасности Защитника Windows.

  1. Используйте сочетание клавиша Windows + I для запуска приложения “Параметры”.
  2. Перейдите в “Обновление и безопасность”, затем выберите пункт “Защитник Windows”.
  3. Нажмите кнопку Открыть Центр безопасности Защитника Windows.
  4. Выберите панель “Управление приложениями и браузером”.
  5. На открывшейся странице выберите ссылку Параметры защиту от эксплойтов.

Все настройки разделены на две категории: Системные параметры и Параметры программ.

Параметры программ

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

Опция работает по тому же принципу, что и исключения в инструменте EMET от Microsoft. По умолчанию здесь уже находятся некоторые штатные программы Windows.

 

Добавить новый исполняемый файл в список можно здесь же, нажав на кнопку «Добавление программы для индивидуальной настройки». Для этого укажите название программы или точный путь к ней. После этого он отобразится в списке.

Пользователь может редактировать параметры для каждой отдельной программы. Для этого выберите ее из списка, и кликните «Редактировать», после чего принудительно выключите/ включите нужную опцию. По желанию программу можно удалить из списка исключений.

 

Для редактирования доступны только те параметры, которые невозможно настроить через категорию «Системные». Для некоторых опций доступно значение «Аудит». После его активации Windows будет записывать события в системный журнал, что удобно для дальнейшего анализа.

Импорт и экспорт настроек

Экспортировать текущие настройки Exploit Guard можно через Центр безопасности Защитника Windows. Для этого достаточно нажать на соответствующую кнопку и сохранить файл в формате XML.

 

Экспортировать настройки можно и через командную строку Windows PowerShell. Для этого есть команда:

Get-ProcessMitigation -RegistryConfigFilePath C:\Users\Alex\Desktop\Settings.xml

Для импорта необходимо заменить командлет Get на Set и по аналогии с примером указать название и путь к файлу.

Установить уже существующий XML файл с настройками можно через редактор локальных групповых политик gpedit.msc:

  1. В левой части экрана перейдите в ветку редактора Конфигурация компьютера —> Административные шаблоны —> Компоненты Windows —> Exploit Guard в Защитнике Windows —> Защита от эксплойтов. Откройте политику Используйте общий набор параметров защиты от эксплойтов.
  2. Измените значение на «Включено», а в появившемся поле укажите путь или URL- адрес к существующему XML файлу с конфигурацией.

 

Сохраните внесенные изменения нажав на «Применить». Настройки вступят в силу немедленно, поэтому перезагружать ПК не обязательно.

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

Произвольная защита кода

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

Произвольная система защиты кода защищает приложение от выполнения динамически создаваемого кода (например, не загружаемого exe-файла или библиотеки DLL). При работе с произвольным кодом программа блокирует память как исполняемый объект. Если приложение пытается выделить память, мы проверяйте флаги защиты. (Память может выделяться с помощью флагов чтения, записи и (или) выполнения.) Если распределение пытается включить флаг ” выполнение “, выделение памяти завершается сбоем и возвращает код ошибки (STATUS_DYNAMIC_CODE_BLOCKED). Аналогичным образом, если приложение пытается изменить флаги защиты памяти , которая уже была выделена, и включает флаг “защита выполнения “, то изменение разрешения завершается сбоем и возвращает код ошибки (STATUS_DYNAMIC_CODE_BLOCKED).

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

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

Параметры конфигурации

Разрешить поток отказ — вы можете настроить его, чтобы позволить отдельному потоку отказаться от этой защиты. Разработчику необходимо написать приложение с уведомлением о том, что это снижение риска, и вызвало функцию SetThreadInformation API, для параметра ThreadInformation которого задано значение ThreadDynamicCodePolicy , чтобы разрешить выполнение динамического кода в этом потоке.

Блокировка образов низкой целостности

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

Это может блокировать загрузку изображений, если на изображении есть запись управления доступом (ACE), которая предоставляет доступ к процессам с низким IL и не имеет метки доверия ACE. Он реализуется диспетчером памяти, который блокирует отображение файла в память. Если приложение пытается сопоставить изображение с низким уровнем целостности, оно вызывает ошибку STATUS_ACCESS_DENIED.

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

Блокировка удаленных образов

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

Если изображение установлено на удаленном устройстве, то это будет блокировать загрузку изображений. Он реализуется диспетчером памяти, который блокирует отображение файла в память. Если приложение пытается сопоставить удаленный файл, оно вызывает ошибку STATUS_ACCESS_DENIED.

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

Блокировка ненадежных шрифтов

Блокировать ненадежные шрифты — это снижение риска возникновения изъяна при анализе шрифта, который начинается с того, чтобы злоумышленник смог запустить код на устройстве. Для обработки GDI будут загружены только шрифты, установленные в каталог Windows\Fonts.

Это уменьшается в GDI, что проверяет расположение файла. Если файл не находится в каталоге “системные шрифты”, он не будет загружен для синтаксического анализа, и этот вызов завершится сбоем.

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

Чаще всего шрифты, находящиеся за пределами каталога “системные шрифты”, используются в веб-шрифтах. Современные браузеры, например Microsoft EDGE, используют DirectWrite вместо GDI и не затронуты. Однако устаревшие браузеры, например Internet Explorer 11 (и режим IE в новом Microsoft EDGE), могут быть затронуты, особенно в приложениях Office 365, в которых для отображения пользовательского интерфейса используются глифы шрифтов.

Защита целостности кода

Защита целостности кода гарантирует, что все двоичные файлы, загруженные в процесс, снабжены цифровой подписью Microsoft. К ним относятся подписи WHQL (лаборатории по контролю качества оборудования для Windows), позволяющие использовать в процессе драйверы, утвержденные WHQL.

Это происходит с помощью диспетчера памяти, который блокирует сопоставление двоичного кода и памяти. При попытке загрузить двоичный файл, не подписанный корпорацией Майкрософт, диспетчер памяти будет возвращать STATUS_INVALID_IMAGE_HASH об ошибке. Заблокируя на уровне диспетчера памяти, это предотвращает появление обеих двоичных файлов, которые были загружены процессом и двоичными файлами, вставленными в процесс.

В частности, это блокирует любой двоичный файл, который не подписан корпорацией Майкрософт. Таким образом, она будет несовместима с большинством программных продуктов третьих лиц, если это программное обеспечение не будет распространяться (и имеет цифровую подпись) Microsoft Store, а также выбран параметр для разрешения загрузки изображений, подписанных Microsoft Store.

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

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

Предотвращение выполнения данных (DEP)

Предотвращение выполнения данных (DEP) блокирует память, которая была явно не выделена как исполняемая. Это помогает защититься от злоумышленника, в ходе которого в процесс вставляется вредоносный код, например переполнение буфера, после чего выполняется этот код.

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

По умолчанию для всех исполняемых файлов x64, ARM и ARM-64 включена функция DEP, и ее невозможно отключить. Так как приложение никогда не выполнялось без функции предотвращения выполнения данных, обычно подразумевается совместимость.

Для всех двоичных файлов x86 (32-разрядная версия) по умолчанию будет включена функция DEP, но ее можно отключить для каждого процесса. Некоторые старые устаревшие приложения, обычно разработанные до Windows XP с пакетом обновления 2 (SP2), могут быть несовместимы с функцией предотвращения выполнения данных. Обычно это приложения, которые динамически создают код (например, JIT-компиляция) или ссылки на более старые библиотеки (например, в более ранних версиях ATL), которые динамически создают код.

Включить эмуляцию ПРЕОБРАЗОВАТЕЛЯ ATL — этот параметр конфигурации отключает эмуляцию преобразователя ATL. Библиотека шаблонов ActiveX разработана таким образом, чтобы быть как можно более маленькой и быстрой. Для уменьшения размера двоичного файла используется технология, называемая преобразователь. Преобразование обычно используется для взаимодействия между 32-битным и 16-разрядными приложениями, но в этой статье нет 16-разрядных компонентов для ATL. Вместо того, чтобы оптимизировать для двоичного размера, в библиотеке ATL будет храниться машинный код в памяти, который не выровнен по словам (создание двоичного файла меньше), а затем вызывать этот код напрямую. Компоненты ATL, скомпилированные в Visual Studio 7,1 или более ранней версии (Visual Studio 2003), не выделяют эту память, так как эмуляция исполняемого преобразователя позволяет устранить эту проблему совместимости. Для приложений, имеющих двоичную модель расширения (например, Internet Explorer 11), часто требуется Эмуляция преобразователя ATL.

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

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

 

Если вы по-прежнему используете более старую версию Windows, например Windows 7, вы можете получить функции защиты от эксплойтов, установив Microsoft EMET или Malwarebytes. Но учтите, что поддержка Windows 7 уже прекращена.

 

Источники: winitpro.ru и www.comss.ru и microsoft

RuCoreNET - лучшее для вас!


Поделись статьей с друзьями


14 просмотров


0 0 голос
Рейтинг статьи
Подписаться
Уведомить о
guest
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии


Do NOT follow this link or you will be banned from the site!
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: