SMEP / SMAP
¿Qué es SMEP / SMAP?
SMEP / SMAPSMEP y SMAP son funciones de CPU que impiden que el kernel ejecute o acceda a paginas de usuario, bloqueando tecnicas comunes de escalada local de privilegios.
Supervisor Mode Execution Prevention (SMEP) y Supervisor Mode Access Prevention (SMAP) son extensiones x86_64 introducidas por Intel en Ivy Bridge (SMEP, 2012) y Broadwell (SMAP, 2014); ARM ofrece equivalentes llamados PXN y PAN. SMEP hace que la CPU genere una falta si el kernel intenta ejecutar instrucciones desde una pagina mapeada a usuario, neutralizando los ataques ret2usr. SMAP provoca una falta en cualquier lectura o escritura del kernel sobre paginas de usuario salvo que se ponga EFLAGS.AC con stac/clac (Linux: envoltorios copy_from_user). Juntos eliminan una gran clase de explotaciones del kernel y complementan KASLR, kCFI, KPTI y CET.
● Ejemplos
- 01
En una CPU con SMEP, un exploit del kernel falla con #PF al saltar a shellcode en espacio de usuario.
- 02
En Linux con SMAP, copy_from_user usa stac/clac para acceder a buffers de usuario.
● Preguntas frecuentes
¿Qué es SMEP / SMAP?
SMEP y SMAP son funciones de CPU que impiden que el kernel ejecute o acceda a paginas de usuario, bloqueando tecnicas comunes de escalada local de privilegios. Pertenece a la categoría de Seguridad de aplicaciones en ciberseguridad.
¿Qué significa SMEP / SMAP?
SMEP y SMAP son funciones de CPU que impiden que el kernel ejecute o acceda a paginas de usuario, bloqueando tecnicas comunes de escalada local de privilegios.
¿Cómo defenderse de SMEP / SMAP?
Las defensas contra SMEP / SMAP combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para SMEP / SMAP?
Nombres alternativos comunes: SMEP, SMAP, PXN, PAN.