Попытка выполнения кода из неисполняемой памяти

Что такое предотвращение выполнения данных

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

Если программа пытается запустить (выполнить) код из памяти в неправильный образ, DEP ее закрывает. Функция DEP осуществляет автоматический контроль важных программ и служб Windows, однако уровень защиты можно увеличить, настроив DEP на контроль всех программ.

Безопасно ли запускать программу, закрытую функцией DEP

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

Почему DEP продолжает закрывать программу

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

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

Как предотвратить закрытие функцией DEP программы

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

Если для определенной программы отключить DEP, желательно периодически проверять наличие обновленной версии этой программы и после ее обновления снова включить DEP.

Что делать, если функция DEP закрывает службу Windows

Программы svchost.exe и explorer.exe являются частями операционной системы Windows. Если DEP закрывает их или другие службы Windows, это может быть вызвано меньшими программами, например, расширениями, которые создаются другими издателями программного обеспечения функционируют внутри Windows.

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

Работает ли DEP без аппаратного предотвращения выполнения данных

Да. DEP – это программное средство Windows. В некоторых процессорах существует также функция аппаратного предотвращения выполнения данных, которая обозначается разными названиями.

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

Предотвращение выполнения данных (Data Execution Prevention, DEP) — это технология защиты оперативной памяти. Компьютер с помощью DEP помечает все ячейки памяти, используемые приложениями, как неисполняемые «только для данных», если ячейка не содержит исполняемого кода в явном виде.

Читайте также  Слова из слова программа ответы

Если приложение пытается выполнить код со страницы памяти, помеченной как неисполняемая, процессор может сгенерировать исключение и предотвратить исполнение кода.

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

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

Компании Advanced Micro Devices (AMD) и Intel поставляют совместимые с Windows процессоры, поддерживающие функцию DEP.

Начиная с пакета обновления 2 (SP2) для Windows XP 32-разрядная версия Windows использует один из следующих методов.

  • Функцию no-execute page-protection (NX), разработанную компанией AMD.
  • Функцию Execute Disable Bit (XD), разработанную компанией Intel.

Чтобы использовать указанные функции, необходимо, чтобы процессор работал в режиме расширения физических адресов (Physical Address Extension, PAE). Windows автоматически включает режим PAE для поддержки функции DEP, поэтому пользователям не нужно отдельно включать PAE.

Physical Address Extension (PAE) — режим работы встроенного блока управления памятью x86-совместимых процессоров, в котором используются 64-битные элементы таблиц страниц (из которых для адресации используются только 36 бит), c помощью которых процессор может адресовать 64 ГБ физической памяти (вместо 4 ГБ, адресуемых при использовании 32-разрядных таблиц), хотя каждая задача (программа) всё равно может адресовать максимум до 4 ГБ виртуальной памяти.

64-разрядные версии Windows также поддерживают функцию NX, но режим работы с оперативной памятью РАЕ для них не обязателен. Кроме того, для 64-разрядных компьютеров возможны разные конфигурации памяти.

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

1. Откройте меню Пуск и выберите Панель управления.

Меню Пуск — Панель управления

2. Щелкните на категории Система и безопасность и откройте окно Система.

Категория Система и безопасность

3. Внизу в левой части щелкните на ссылке Счетчики и средства производительности.

Счетчики и средства производительности

4. Щелкните на ссылке Настройка визуальных эффектов. На экране появится диалоговое окно Параметры быстродействия.

Настройка визуальных эффектов

5. Откройте вкладку Предотвращение выполнения данных. Внизу вы найдете информацию о поддержке DEP.

Информацию о поддержке DEP

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

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

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

Щелкните на кнопке Добавить… и выберите программы, для которых вы хотите отключить предотвращение выполнения.

Отключение предотвращение выполнения

Программа в исключении

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

Читайте также  Процессоры xeon какой лучше

DEP всегда включен для 64-разрядных приложений

Как убедиться, что аппаратная функция DEP работает в Windows

Чтобы убедиться, что аппаратная функция DEP работает в Windows, воспользуйтесь одним из следующих способов.

Способ 1. Используйте средство командной строки Wmic

С помощью средства командной строки Wmic можно проверить параметры DEP. Чтобы определить, доступна ли аппаратная функция DEP, выполните следующие действия:

1. В меню Пуск меню Пуск введите в поле Поиска команду cmd и нажмите кнопку ВВОД.

Вызов командной строки

2. В командной строке введите следующую команду и нажмите клавишу ВВОД:

wmic OS Get DataExecutionPrevention_Available

Если в результате будет получено значение TRUE, аппаратная функция DEP включена.

Средство командной строки Wmic

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

Параметр no-execute page-protection (NX) включает аппаратный DEP на платах с чипсетом от AMD, а параметр Execute Disable Bit (XD) — на платах с чипсетами от Intel.

Чтобы определить текущую политику поддержки DEP, выполните следующие действия.

1. В меню Пуск меню Пуск введите в поле Поиска команду cmd и нажмите кнопку ВВОД.

Вызов командной строки

2. В командной строке введите следующую команду и нажмите клавишу ВВОД:

wmic OS Get DataExecutionPrevention_SupportPolicy

В результате выполнения команды будет возвращено значение 0, 1, 2 или 3.

Политика поддержки DEP

Эти значения соответствуют политикам поддержки DEP, описанным ниже.

2 — OptIn (конфигурация по умолчанию) — Функция DEP включена только для системных компонентов и служб Windows

3 – OptOut — Функция DEP включена для всех процессов. Администратор может вручную создать список приложений, для которых функция DEP отключена

1 – AlwaysOn — Функция DEP включена для всех процессов

– AlwaysOff — Функция DEP отключена для всех процессов

Преимущества DEP

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

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

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

Технология предотвращения выполнения данных (Data Execution Prevention, DEP) предназначена для защиты памяти. Она указывает процессору отметить все адреса памяти в приложении как неисполняемые, если они явным образом не содержат исполняемый код. Когда производится попытка выполнить код из страницы памяти, которая помечена как неисполняемая, процессор вызывает исключение и предотвращает выполнение. Это не дает вредоносному коду, например, вирусу, разместиться в большинстве областей памяти.

Если Вы собираетесь заниматься фотографией, Вам нужно только качественное оборудование. Мы советуем объективы canon купить которые можно во многих интернет-магазинах, например на you2you.

Читайте также  Почему в аппсторе не обновляются приложения

Использование и конфигурирование DEP Чтобы выяснить, поддерживает ли компьютер DEP, воспользуйтесь утилитой Система (System):

1. Перейдите на вкладку Дополнительно (Advanced) диалогового окна Свойства системы (System Properties) и щелкните кнопку Параметры (Settings) в разделе Быстродействие (Performance), чтобы открыть диалоговое окно Параметры быстродействия (Performance Options).

2. В диалоговом окне Параметры быстродействия (Performance Options) перейдите на вкладку Предотвращение выполнения данных (Data Execution Prevention). В нижней части вкладки указано, поддерживает ли компьютер DEP.

3. Если компьютер поддерживает DEP, настройте ее при помощи следующих вариантов:

• Включить DEP только для основных программ и служб Windows (Turn On DEP For Essential Windows Programs And Services Only)

Этот вариант задан по умолчанию и рекомендуется для компьютеров, которые поддерживают предотвращение выполнения данных.

• Включить DEP для всех программ и служб, кроме выбранных ниже (Turn On DEP For All Programs Except Those I Select) Позволяет определить исключения. Выберите этот переключатель, затем щелкните кнопку Добавить (Add), чтобы указать программы, которые должны исполняться без предотвращения выполнения данных.

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

1. Перейдите на вкладку Дополнительно (Advanced) диалогового окна Свойства системы (System Properties) и щелкните кнопку Параметры (Settings) в разделе Быстродействие (Performance), чтобы открыть диалоговое окно Параметры быстродействия (Performance Options).

2. В диалоговом окне Параметры быстродействия (Performance Options) перейдите на вкладку Предотвращение выполнения данных (Data Execution Prevention).

3. Чтобы добавить программу-исключение, щелкните кнопку Добавить (Add), найдите исполняемый файл программы и щелкните Открыть (Open).

4. Чтобы временно отменить исключение для программы (это может потребоваться при выявлении проблем), сбросьте флажок рядом с ее именем.

5. Чтобы удалить программу из списка исключений, выделите название программы и щелкните Удалить (Remove).

6. Щелкните ОК, чтобы сохранить изменения.

Совместимость с DEP

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

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

В отличие от приложений, выборочно ВКЛЮЧИТЬ или выключить защиту от выполнения данных для драйверов устройств режима ядра нельзя. Кроме того, на совместимых 32-разрядных системах предотвращение выполнения по умолчанию применяется к стеку памяти. На совместимых 64-разрядных системах, предотвращение выполнения по умолчанию применяется к стеку памяти, выгружаемому пулу и пулу сеансов. Попытка выполнения данных в режиме ядра для драйвера устройства приведет к исключению ATTEMPTED_EXECUTE_OF_NOEXECUTE_MKMORY.

Ссылка на основную публикацию
Adblock
detector