PaX - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Les objectifs de Pax

PaX permet de mieux se protéger contre une exploitation malveillante d'erreurs de programmation classiques : notamment Dépassement de tampon, dépassement de valeur d'un entier,

PaX ne détecte pas directement le dépassement de tampon. Pour cela, il existe d'autres mécanismes dont SSP (Stack-Smashing Protector) dans gcc.

PaX peut être utilisé sur les architectures : x86, IA-32, AMD64, IA-64, PA-RISC, MIPS (32 et 64 bits), PowerPC, SPARC (et DEC Alpha).

Les limites de PaX

PaX ne peut pas protéger contre des erreurs de conception dans une application ou dans le système d'exploitation.

Il ne peut pas non plus protéger s'il n'y a pas de contrôle sur les chaînes de caractères saisies, par exemple, une chaine avec un %s ou un %x pour un programme écrit en langage C (voir Format string attack (en)).

La documentation PaX décrit trois classes d'attaques sur lesquelles PaX pourra tenter de vous protéger. La documentation explique ce sur quoi Pax pourra vous protéger et ce sur quoi Pax sera impuissant

En résumé, les attaques que PaX pourra bloquer sont les suivantes :

  1. celles qui introduisent et exécutent un code arbitraire (fréquemment via un shellcode) ;
  2. celles qui essaient d'exécuter du code déjà existant, mais dans un contexte autre que celui prévu par le programmeur à l'origine (voir return-to-libc attack);
  3. celles qui essaient d'exécuter du code avec des données arbitraires.

Historique

  • octobre 2000 : premier version de PaX avec un support basique de PAGEEXEC ;
  • novembre 2000 : première mise en œuvre de MPROTECT ;
  • juin 2001 : mise en œuvre de l'ASLR, toutefois non publié ;
  • juillet 2001 : publication de l'ASLR ;
  • août 2001 : amélioration de l'ASLR avec la randomisation de la pile et du PIE ;
  • juillet 2002 : publication de RANDEXEC et de VMA Mirroring ;
  • octobre 2002 : publication de SEGMEXEC ;
  • octobre 2002 : amélioration de l'ASLR avec la randomisation de la base de la pile noyau ;
  • février 2003 : introduction du marquage des fichiers ELF ;
  • avril 2003 : publication de KERNEXEC ;
  • juillet 2003 : amélioration de l'ASLR avec la randomisation de brk ;
  • février 2004 : introduction du marquage PT_PAX_FLAGS dans les fichiers ELF ;
  • mai 2004 : amélioration des performances de PAGEEXEC ;
  • 4 mars 2005 : publication d'une vulnérabilité sur le VMA Mirroring ;
  • 1 avril 2005 : PaX Team annonce la fin du développement de PaX, ce qui n'aura pas lieu, faute de candidat à la reprise du développement.
Page générée en 0.028 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales | Partenaire: HD-Numérique
Version anglaise | Version allemande | Version espagnole | Version portugaise