Ich habe kürzlich erfahren, dass (zumindest auf Fedora und Red Hat Enterprise Linux) ausführbare Programme, die als Position Independent Executables (PIE) kompiliert sind, einen stärkeren Schutz vor Adressraum-Randomisierung (ASLR) erhalten.
Also:Wie teste ich unter Linux, ob eine bestimmte ausführbare Datei als Position Independent Executable kompiliert wurde?
Akzeptierte Antwort:
Sie können den perl
verwenden Skript, das im hardening-check
enthalten ist Paket, verfügbar in Fedora und Debian (als hardening-includes
). Lesen Sie diese Debian-Wiki-Seite für Details darüber, welche Kompilier-Flags überprüft werden. Es ist Debian-spezifisch, aber die Theorie gilt auch für Red Hat.
Beispiel:
$ 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