DEP
Что такое DEP?
DEPПредотвращение выполнения данных (DEP, NX или W^X) помечает страницы памяти как неисполняемые, чтобы атакующий не мог запустить шеллкод, внедрённый в стек или кучу.
DEP, также называемая NX (No-eXecute) или W^X (write XOR execute), гарантирует, что страница памяти может быть либо записываемой, либо исполняемой, но не обеими одновременно. Бит NX в процессоре блокирует выборку инструкций со страниц данных — стека и кучи — и обесценивает классические атаки с инъекцией шеллкода. AMD ввела аппаратный бит NX в 2003 году, Intel вскоре последовала; Windows XP SP2 получила программный DEP, а Linux — через PaX/grsecurity до интеграции в основное ядро. Поскольку DEP исключает прямое выполнение из данных, атакующие перешли к повторному использованию кода (return-to-libc, ROP), поэтому DEP сочетают с ASLR, CFI и теневыми стеками.
● Примеры
- 01
Стек, помеченный как NX, приводит к сбою вместо запуска шеллкода.
- 02
mmap в укреплённом Linux отклоняет PROT_WRITE | PROT_EXEC.
● Частые вопросы
Что такое DEP?
Предотвращение выполнения данных (DEP, NX или W^X) помечает страницы памяти как неисполняемые, чтобы атакующий не мог запустить шеллкод, внедрённый в стек или кучу. Относится к категории Безопасность приложений в кибербезопасности.
Что означает DEP?
Предотвращение выполнения данных (DEP, NX или W^X) помечает страницы памяти как неисполняемые, чтобы атакующий не мог запустить шеллкод, внедрённый в стек или кучу.
Как защититься от DEP?
Защита от DEP обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия DEP?
Распространённые альтернативные названия: NX, Неисполняемая память, W^X.