SMEP / SMAP
O que é SMEP / SMAP?
SMEP / SMAPSMEP e SMAP sao funcionalidades da CPU que impedem o kernel de executar ou aceder a paginas do espaco do utilizador, bloqueando tecnicas comuns de escalada local de privilegios.
Supervisor Mode Execution Prevention (SMEP) e Supervisor Mode Access Prevention (SMAP) sao extensoes x86_64 introduzidas pela Intel em Ivy Bridge (SMEP, 2012) e Broadwell (SMAP, 2014); a ARM oferece PXN e PAN. O SMEP faz a CPU lancar falha se o kernel tentar executar instrucoes de uma pagina do utilizador, derrotando ret2usr. O SMAP lanca falha em qualquer leitura ou escrita do kernel em paginas do utilizador, salvo se EFLAGS.AC for temporariamente posto via stac/clac (Linux: wrappers copy_from_user). Juntos removem uma grande classe de exploits do kernel e complementam KASLR, kCFI, KPTI e CET.
● Exemplos
- 01
Numa CPU com SMEP, um exploit do kernel gera #PF ao saltar para shellcode em espaco do utilizador.
- 02
No Linux com SMAP, copy_from_user usa stac/clac para aceder a buffers do utilizador.
● Perguntas frequentes
O que é SMEP / SMAP?
SMEP e SMAP sao funcionalidades da CPU que impedem o kernel de executar ou aceder a paginas do espaco do utilizador, bloqueando tecnicas comuns de escalada local de privilegios. Pertence à categoria Segurança de aplicações da cibersegurança.
O que significa SMEP / SMAP?
SMEP e SMAP sao funcionalidades da CPU que impedem o kernel de executar ou aceder a paginas do espaco do utilizador, bloqueando tecnicas comuns de escalada local de privilegios.
Como se defender contra SMEP / SMAP?
As defesas contra SMEP / SMAP costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.
Quais são outros nomes para SMEP / SMAP?
Nomes alternativos comuns: SMEP, SMAP, PXN, PAN.