DEP
¿Qué es DEP?
DEPLa prevencion de ejecucion de datos (DEP / NX / W^X) marca paginas de memoria como no ejecutables para impedir que un atacante ejecute shellcode inyectado en pila o monton.
DEP, tambien llamada NX (No-eXecute) o W^X (escribible o ejecutable), garantiza que ninguna pagina sea a la vez escribible y ejecutable. El bit NX de la CPU bloquea la ejecucion de instrucciones desde paginas de datos como la pila o el monton, neutralizando los ataques clasicos de inyeccion de shellcode. AMD introdujo el bit en 2003 e Intel lo adopto poco despues; Windows XP SP2 incluyo DEP software y Linux lo recibio via PaX/grsecurity antes de pasar al kernel principal. Como DEP elimina la ejecucion directa de datos, los atacantes se volcaron en tecnicas de reutilizacion como return-to-libc y ROP, por lo que conviene combinarla con ASLR, CFI y shadow stacks.
● Ejemplos
- 01
La pila marcada como NX provoca un crash en lugar de ejecutar el shellcode.
- 02
mmap en Linux rechaza PROT_WRITE | PROT_EXEC en builds endurecidos.
● Preguntas frecuentes
¿Qué es DEP?
La prevencion de ejecucion de datos (DEP / NX / W^X) marca paginas de memoria como no ejecutables para impedir que un atacante ejecute shellcode inyectado en pila o monton. Pertenece a la categoría de Seguridad de aplicaciones en ciberseguridad.
¿Qué significa DEP?
La prevencion de ejecucion de datos (DEP / NX / W^X) marca paginas de memoria como no ejecutables para impedir que un atacante ejecute shellcode inyectado en pila o monton.
¿Cómo funciona DEP?
DEP, tambien llamada NX (No-eXecute) o W^X (escribible o ejecutable), garantiza que ninguna pagina sea a la vez escribible y ejecutable. El bit NX de la CPU bloquea la ejecucion de instrucciones desde paginas de datos como la pila o el monton, neutralizando los ataques clasicos de inyeccion de shellcode. AMD introdujo el bit en 2003 e Intel lo adopto poco despues; Windows XP SP2 incluyo DEP software y Linux lo recibio via PaX/grsecurity antes de pasar al kernel principal. Como DEP elimina la ejecucion directa de datos, los atacantes se volcaron en tecnicas de reutilizacion como return-to-libc y ROP, por lo que conviene combinarla con ASLR, CFI y shadow stacks.
¿Cómo defenderse de DEP?
Las defensas contra DEP combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para DEP?
Nombres alternativos comunes: NX, Bit no ejecutable, W^X.
● Términos relacionados
- appsec№ 064
ASLR
La aleatorización del espacio de direcciones distribuye al azar la ubicación en memoria de código, pilas, montones y librerías para impedir que un atacante prediga direcciones.
- appsec№ 925
Return-Oriented Programming
ROP es una tecnica de explotacion por reutilizacion de codigo que encadena secuencias cortas terminadas en RET para ejecutar computacion arbitraria sin inyectar codigo nuevo.
- appsec№ 1095
Canario de pila
Un canario de pila es un valor secreto colocado entre los buffers locales de una funcion y la direccion de retorno guardada para detectar desbordes antes de que secuestren el flujo de control.
- appsec№ 217
Integridad del flujo de control
La integridad de flujo de control (CFI) restringe las llamadas indirectas y los retornos del programa a un conjunto precomputado de destinos legitimos, bloqueando ROP y JOP.
- appsec№ 670
Seguridad de memoria
La seguridad de memoria es la propiedad de que un programa nunca lee, escribe ni ejecuta memoria que no haya asignado legitimamente, evitando clases enteras de vulnerabilidades.
- appsec№ 545
Intel CET
Intel CET (Control-flow Enforcement Technology) es una caracteristica de CPU que combina shadow stack hardware e Indirect Branch Tracking (IBT) para bloquear ROP, JOP y COP.
● Véase también
- № 1058SMEP / SMAP