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 funciona SMEP / SMAP?
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.
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.
● Termos relacionados
- appsec№ 581
KASLR
O KASLR aleatoriza a base do kernel e o endereco de carga dos modulos a cada boot, impedindo que atacantes usem simbolos fixos do kernel em escaladas locais de privilegios.
- 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№ 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.
- 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№ 303
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.
- 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.