DEP
O que é DEP?
DEPA prevencao de execucao de dados (DEP / NX / W^X) marca paginas de memoria como nao executaveis para impedir que um atacante execute shellcode injetado em pilha ou heap.
DEP, tambem chamada de NX (No-eXecute) ou W^X (write XOR execute), garante que qualquer pagina de memoria seja gravavel ou executavel, mas nunca as duas coisas. O bit NX da CPU bloqueia a busca de instrucoes em paginas de dados como pilha e heap, derrotando ataques classicos de injecao de shellcode. A AMD introduziu o bit em 2003 e a Intel seguiu logo depois; o Windows XP SP2 adicionou DEP por software e o Linux recebeu via PaX/grsecurity antes de incorporar no kernel principal. Como o DEP elimina execucao direta a partir de dados, atacantes passaram a usar return-to-libc e ROP, portanto o DEP costuma ser combinado com ASLR, CFI e shadow stacks.
● Exemplos
- 01
Pilha marcada como NX faz o programa travar em vez de executar o shellcode.
- 02
Em Linux endurecido, mmap rejeita PROT_WRITE | PROT_EXEC.
● Perguntas frequentes
O que é DEP?
A prevencao de execucao de dados (DEP / NX / W^X) marca paginas de memoria como nao executaveis para impedir que um atacante execute shellcode injetado em pilha ou heap. Pertence à categoria Segurança de aplicações da cibersegurança.
O que significa DEP?
A prevencao de execucao de dados (DEP / NX / W^X) marca paginas de memoria como nao executaveis para impedir que um atacante execute shellcode injetado em pilha ou heap.
Como funciona DEP?
DEP, tambem chamada de NX (No-eXecute) ou W^X (write XOR execute), garante que qualquer pagina de memoria seja gravavel ou executavel, mas nunca as duas coisas. O bit NX da CPU bloqueia a busca de instrucoes em paginas de dados como pilha e heap, derrotando ataques classicos de injecao de shellcode. A AMD introduziu o bit em 2003 e a Intel seguiu logo depois; o Windows XP SP2 adicionou DEP por software e o Linux recebeu via PaX/grsecurity antes de incorporar no kernel principal. Como o DEP elimina execucao direta a partir de dados, atacantes passaram a usar return-to-libc e ROP, portanto o DEP costuma ser combinado com ASLR, CFI e shadow stacks.
Como se defender contra DEP?
As defesas contra DEP costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.
Quais são outros nomes para DEP?
Nomes alternativos comuns: NX, Bit nao executavel, W^X.
● Termos relacionados
- appsec№ 064
ASLR
A aleatorizacao do espaco de enderecos coloca codigo, pilhas, heaps e bibliotecas em posicoes aleatorias da memoria para impedir que um atacante preveja enderecos.
- appsec№ 925
Return-Oriented Programming
ROP e uma tecnica de exploracao por reuso de codigo que encadeia pequenas sequencias de instrucoes terminadas em RET para executar computacao arbitraria sem injetar codigo.
- appsec№ 1095
Canario de pilha
Um canario de pilha e um valor secreto colocado entre os buffers locais de uma funcao e o endereco de retorno guardado para detetar estouros de pilha antes que sequestrem o fluxo.
- appsec№ 217
Integridade do fluxo de controlo
A integridade do fluxo de controlo (CFI) restringe chamadas indiretas e retornos a um conjunto pre-calculado de destinos legitimos, bloqueando ROP e JOP.
- appsec№ 670
Seguranca de memoria
A seguranca de memoria e a propriedade de um programa nunca ler, escrever ou executar memoria que nao tenha alocado legitimamente, eliminando classes inteiras de vulnerabilidades.
- appsec№ 545
Intel CET
Intel CET (Control-flow Enforcement Technology) e uma funcionalidade da CPU que combina shadow stack por hardware e Indirect Branch Tracking (IBT) para bloquear ROP, JOP e COP.
● Veja também
- № 1058SMEP / SMAP