Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 1095

Canario de pilha

O que é Canario de pilha?

Canario de pilhaUm canario de pilha e um valor secreto colocado entre os buffers locais de uma funcao e o endereco de retorno guardado para detetar estouros de pilha antes que sequestrem o fluxo.


Os canarios de pilha, introduzidos por Crispin Cowan e a equipa StackGuard em 1998, sao valores aleatorios colocados na trama da pilha entre as variaveis locais e o endereco de retorno guardado. O compilador emite codigo de entrada que coloca o canario e codigo de saida que o verifica; qualquer alteracao aborta o programa antes de usar o endereco corrompido. Toolchains modernas expoem isto via -fstack-protector ou /GS, com valor aleatorio por processo e byte terminador (em geral 0x00) para frustrar payloads que incluam o canario. Os canarios complementam, mas nao substituem, ASLR, DEP, CFI e linguagens com seguranca de memoria.

Exemplos

  1. 01

    GCC -fstack-protector-strong insere um canario em funcoes com arrays.

  2. 02

    A opcao /GS do MSVC deteta um estouro causado por strcpy.

Perguntas frequentes

O que é Canario de pilha?

Um canario de pilha e um valor secreto colocado entre os buffers locais de uma funcao e o endereco de retorno guardado para detetar estouros de pilha antes que sequestrem o fluxo. Pertence à categoria Segurança de aplicações da cibersegurança.

O que significa Canario de pilha?

Um canario de pilha e um valor secreto colocado entre os buffers locais de uma funcao e o endereco de retorno guardado para detetar estouros de pilha antes que sequestrem o fluxo.

Como funciona Canario de pilha?

Os canarios de pilha, introduzidos por Crispin Cowan e a equipa StackGuard em 1998, sao valores aleatorios colocados na trama da pilha entre as variaveis locais e o endereco de retorno guardado. O compilador emite codigo de entrada que coloca o canario e codigo de saida que o verifica; qualquer alteracao aborta o programa antes de usar o endereco corrompido. Toolchains modernas expoem isto via -fstack-protector ou /GS, com valor aleatorio por processo e byte terminador (em geral 0x00) para frustrar payloads que incluam o canario. Os canarios complementam, mas nao substituem, ASLR, DEP, CFI e linguagens com seguranca de memoria.

Como se defender contra Canario de pilha?

As defesas contra Canario de pilha costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.

Quais são outros nomes para Canario de pilha?

Nomes alternativos comuns: StackGuard, Cookie de pilha, GS cookie.

Termos relacionados

Veja também