Protection de l'espace exécutableLa protection de l'espace exécutable (executable space protection) correspond, en sécurité informatique, à une protection contre les dépassements de tampon en prévenant l'exécution d'un code sur la pile ou le tas. Une tentative d'attaque sur un système protégé ainsi provoque une exception. Des exemples d'implémentation de ce mécanisme sont : sous Linux : PaX, Exec Shield, et Openwall ; sous OpenBSD et d'autres systèmes : W^X ; sous Microsoft Windows : Data Execution Prevention. Dépassement de tampon Catégo
Stack-Smashing ProtectorLe Stack-Smashing Protector (également appelé SSP, et autrefois connu sous le nom de ProPolice) est une extension au compilateur GCC qui permet de minimiser les dommages qui peuvent être dus à des attaques de type dépassement de tampon. En particulier, il fournit une protection contre la corruption de pile (stack-smashing). La protection Stack-Smashing Protector a originairement été écrite, et est toujours entretenue, par Hiroaki Etoh d'IBM. La première implémentation a été faite pour GCC 3 et a ensuite été réécrite de façon moins intrusive puis intégrée dans GCC 4.
Return-to-libc attackUne attaque de type return-to-libc est une attaque informatique démarrant généralement par un dépassement de tampon dans lequel l'adresse de retour dans la pile est remplacée par l'adresse d'une autre fonction et une seconde partie de la pile est modifiée pour fournir les paramètres à cette fonction. Ceci permet à un attaquant d'utiliser une fonction existante et d'éviter d'injecter du code malveillant dans le programme. La bibliothèque partagée libc fournit le moteur d'exécution C sur les systèmes de type Unix.
Code opérationEn informatique, un code opération (en anglais, opcode, operation code, machine code, instruction code, instruction syllable, instruction parcel ou opstring) est la partie d'une instruction en langage machine qui spécifie l'opération à effectuer. Outre le code opération lui-même, la plupart des instructions précise également les données qu'elles vont traiter, sous forme d'opérandes. En plus des codes opérations utilisés dans les jeux d'instructions de diverses unités centrales de traitement, qui sont des dispositifs matériels, ils peuvent également être utilisés dans les bytecodes de machines virtuelles.
Langage machineLe langage machine, ou code machine, est la suite de bits qui est interprétée par le processeur d'un ordinateur exécutant un programme informatique. C'est le langage natif d'un processeur, c'est-à-dire le seul qu'il puisse traiter. Il est composé d'instructions et de données à traiter codées en binaire. Chaque processeur possède un langage machine. Si un processeur A est capable d'exécuter toutes les instructions du processeur B, on dit que A est compatible avec B.