Shadow stack
O que é Shadow stack?
Shadow stackUma shadow stack e uma pilha separada e protegida que guarda copias dos enderecos de retorno para o processador detetar manipulacoes na pilha normal e bloquear ROP.
A shadow stack roda em paralelo com a pilha de chamadas convencional: cada chamada empilha o endereco de retorno em ambas e cada retorno compara-os. Se diferirem, o processador gera uma trap e o processo aborta antes de usar o endereco corrompido. O mecanismo foi popularizado em artigos academicos sobre CFI e hoje existe em hardware como Intel CET shadow stack e Arm v8.5-A Guarded Control Stack (GCS). Ha implementacoes apenas em software (LLVM SafeStack, clang -fsanitize=safe-stack) com custos em desempenho e isolamento. Cobre a aresta para tras da CFI; chamadas indiretas continuam a exigir CFI/IBT.
● Exemplos
- 01
Windows 11 forca shadow stacks em modo utilizador em CPUs com CET.
- 02
Arm GCS deteta um estouro que sobrescreve o LR guardado.
● Perguntas frequentes
O que é Shadow stack?
Uma shadow stack e uma pilha separada e protegida que guarda copias dos enderecos de retorno para o processador detetar manipulacoes na pilha normal e bloquear ROP. Pertence à categoria Segurança de aplicações da cibersegurança.
O que significa Shadow stack?
Uma shadow stack e uma pilha separada e protegida que guarda copias dos enderecos de retorno para o processador detetar manipulacoes na pilha normal e bloquear ROP.
Como se defender contra Shadow stack?
As defesas contra Shadow stack costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.
Quais são outros nomes para Shadow stack?
Nomes alternativos comuns: Pilha sombra, Safe stack, GCS.