1. Le principe W^X
Ce principe a été créé pour contrer certains types d'attaques informatiques classiques à base d'injection de code. L'idée est assez simple et se résume ainsi : les régions de données ne doivent pas être exécutables et les régions de code ne doivent pas être inscriptibles (W^X signifie Write xor eXec, le ^ étant l'opération binaire OU exclusif en C). Prenons l'exemple suivant pour mieux comprendre ce qui se cache derrière cette phrase.
Afin d'empêcher un attaquant d'exécuter son propre code via un débordement de tampon dans la pile d'un processus vulnérable, une solution est de rendre la pile non exécutable. Ainsi, lorsque le code malveillant, fourni en entrée du programme vulnérable (sous forme de chaîne de caractères), se voit copié dans la pile, il devient impossible pour l'attaquant de l'exécuter. En effet, le débordement de tampon qui fait suite à cette copie et qui écrase la valeur sauvegardée du compteur d'instructions avec...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première