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

Canario de pila

¿Qué es Canario de pila?

Canario de pilaUn canario de pila es un valor secreto colocado entre los buffers locales de una funcion y la direccion de retorno guardada para detectar desbordes antes de que secuestren el flujo de control.


Los canarios de pila, introducidos por Crispin Cowan y el equipo de StackGuard en 1998, son valores aleatorios escritos entre las variables locales y la direccion de retorno guardada en la trama de pila. El compilador emite codigo de entrada que coloca el canario y de salida que lo verifica; un valor alterado aborta el programa antes de usar la direccion corrupta. Los toolchains modernos lo activan con -fstack-protector o /GS y usan un valor aleatorio por proceso mas un byte terminador (habitualmente 0x00) para frustrar desbordes que incluyan el canario. Los canarios complementan, pero no sustituyen, ASLR, DEP, CFI y los lenguajes con seguridad de memoria.

Ejemplos

  1. 01

    GCC con -fstack-protector-strong inserta un canario en funciones con arrays.

  2. 02

    La opcion /GS de MSVC detecta un desborde basado en strcpy.

Preguntas frecuentes

¿Qué es Canario de pila?

Un canario de pila es un valor secreto colocado entre los buffers locales de una funcion y la direccion de retorno guardada para detectar desbordes antes de que secuestren el flujo de control. Pertenece a la categoría de Seguridad de aplicaciones en ciberseguridad.

¿Qué significa Canario de pila?

Un canario de pila es un valor secreto colocado entre los buffers locales de una funcion y la direccion de retorno guardada para detectar desbordes antes de que secuestren el flujo de control.

¿Cómo funciona Canario de pila?

Los canarios de pila, introducidos por Crispin Cowan y el equipo de StackGuard en 1998, son valores aleatorios escritos entre las variables locales y la direccion de retorno guardada en la trama de pila. El compilador emite codigo de entrada que coloca el canario y de salida que lo verifica; un valor alterado aborta el programa antes de usar la direccion corrupta. Los toolchains modernos lo activan con -fstack-protector o /GS y usan un valor aleatorio por proceso mas un byte terminador (habitualmente 0x00) para frustrar desbordes que incluyan el canario. Los canarios complementan, pero no sustituyen, ASLR, DEP, CFI y los lenguajes con seguridad de memoria.

¿Cómo defenderse de Canario de pila?

Las defensas contra Canario de pila combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.

¿Cuáles son otros nombres para Canario de pila?

Nombres alternativos comunes: StackGuard, Cookie de pila, GS cookie.

Términos relacionados

Véase también