What is DEP, and how do I find out if my processor supports it?

Coreinfo shows me a bunch of instructions my processor supports. However one that I'm interested in is DEP Data Execution Prevention. DEP is listed as something the CPU must support in Windows 2016 Server. Что это?

The docs from Microsoft seem to link it withNX В чем разница между DEP а также NX and how do I find out if my processor supports DEP?

2 ответа

Решение

Предотвращение выполнения данных (DEP) - это функция защиты памяти системного уровня, которая встроена в операционную систему, начиная с Windows XP и Windows Server 2003. DEP позволяет системе помечать одну или несколько страниц памяти как неисполняемые. Обозначение областей памяти как неисполняемых означает, что код не может быть запущен из этой области памяти, что затрудняет использование переполнения буфера.

Если мы объединяем это с информацией из вашей собственной ссылки, мы определяем, что в сочетании с ASLR (для которого требуется NX-бит) DEP становится синонимом NX. В частности, реализация ASLR в Windows Server 2016 требует этого.

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

Дополнительно:

Microsoft добавила функциональность ASLR в Windows Vista и Windows Server 2008. На этой платформе DEP реализуется посредством автоматического использования ядра PAE в 32-разрядной версии Windows и встроенной поддержки 64-разрядных ядер. Функция Windows Vista DEP помечает определенные части памяти как предназначенные для хранения только данных, которые процессор с поддержкой битов NX или XD считает неисполнимыми.

Источники:

Есть аппаратный и программный DEP. Ссылка

Аппаратный DEP требует, чтобы ваш процессор поддерживал бит XD или NX. Если ЦП попытается выполнить код со страницы, на которой установлен этот бит, ЦП выдаст аппаратное исключение, и ничего не будет выполнено.

Программный DEP - эта ссылка предоставляет следующую информацию:

В Windows XP SP2 был добавлен дополнительный набор проверок безопасности Data Execution Prevention. Эти проверки, известные как программный DEP, предназначены для блокировки вредоносного кода, использующего преимущества механизмов обработки исключений в Windows.

а также

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

Это можно включить и использовать независимо от поддержки CPU NX/XD.

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

DEP указан как то, что ЦП должен поддерживать в Windows 2016 Server.

Windows 2016 не будет работать на процессоре, который не имеет аппаратной поддержки NX / XD. Большинство, если не все процессоры, начиная с 2000 года (Pentium 4+), имеют такую ​​поддержку, и, скорее всего, любой серверный процессорный класс этого десятилетия имеет такую ​​поддержку. На любой относительно современной системе вам не нужно беспокоиться об этом.

Другие вопросы по тегам