J'ai récemment appris que (au moins sur Fedora et Red Hat Enterprise Linux), les programmes exécutables compilés en tant qu'exécutables indépendants de la position (PIE) bénéficient d'une protection renforcée contre la randomisation de l'espace d'adressage (ASLR).
Alors :comment tester si un exécutable particulier a été compilé en tant qu'exécutable indépendant de la position, sous Linux ?
Réponse acceptée :
Vous pouvez utiliser le perl
script contenu dans le hardening-check
package, disponible dans Fedora et Debian (en tant que hardening-includes
). Lisez cette page du wiki Debian pour plus de détails sur les drapeaux de compilation vérifiés. C'est spécifique à Debian, mais la théorie s'applique également à Red Hat.
Exemple :
$ hardening-check $(which sshd)
/usr/sbin/sshd:
Position Independent Executable: yes
Stack protected: yes
Fortify Source functions: yes (some protected functions found)
Read-only relocations: yes
Immediate binding: yes