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

Canari de pile

Qu'est-ce que Canari de pile ?

Canari de pileUn canari de pile est une valeur secrete placee entre les tampons locaux d'une fonction et son adresse de retour sauvegardee pour detecter les depassements avant qu'ils ne detournent le flot de controle.


Les canaris de pile, introduits par Crispin Cowan et l'equipe StackGuard en 1998, sont des valeurs aleatoires placees entre les variables locales et l'adresse de retour dans la trame de pile. Le compilateur emet du code a l'entree pour poser le canari et a la sortie pour le verifier; toute modification entraine l'arret du programme avant l'utilisation de l'adresse de retour corrompue. Les chaines de compilation modernes l'exposent via -fstack-protector ou /GS, avec une valeur aleatoire par processus et un octet terminateur (souvent 0x00) pour empecher les depassements qui incluraient le canari. Les canaris completent mais ne remplacent ni ASLR, ni DEP, ni CFI, ni les langages a memoire sure.

Exemples

  1. 01

    GCC -fstack-protector-strong insere un canari dans les fonctions avec tableaux.

  2. 02

    L'option /GS de MSVC detecte un depassement provoque par strcpy.

Questions fréquentes

Qu'est-ce que Canari de pile ?

Un canari de pile est une valeur secrete placee entre les tampons locaux d'une fonction et son adresse de retour sauvegardee pour detecter les depassements avant qu'ils ne detournent le flot de controle. Cette notion relève de la catégorie Sécurité applicative en cybersécurité.

Que signifie Canari de pile ?

Un canari de pile est une valeur secrete placee entre les tampons locaux d'une fonction et son adresse de retour sauvegardee pour detecter les depassements avant qu'ils ne detournent le flot de controle.

Comment fonctionne Canari de pile ?

Les canaris de pile, introduits par Crispin Cowan et l'equipe StackGuard en 1998, sont des valeurs aleatoires placees entre les variables locales et l'adresse de retour dans la trame de pile. Le compilateur emet du code a l'entree pour poser le canari et a la sortie pour le verifier; toute modification entraine l'arret du programme avant l'utilisation de l'adresse de retour corrompue. Les chaines de compilation modernes l'exposent via -fstack-protector ou /GS, avec une valeur aleatoire par processus et un octet terminateur (souvent 0x00) pour empecher les depassements qui incluraient le canari. Les canaris completent mais ne remplacent ni ASLR, ni DEP, ni CFI, ni les langages a memoire sure.

Comment se défendre contre Canari de pile ?

Les défenses contre Canari de pile combinent habituellement des contrôles techniques et des pratiques opérationnelles, comme détaillé dans la définition ci-dessus.

Quels sont les autres noms de Canari de pile ?

Noms alternatifs courants : StackGuard, Cookie de pile, GS cookie.

Termes liés

Voir aussi