Recientemente aprendí que (al menos en Fedora y Red Hat Enterprise Linux), los programas ejecutables que se compilan como Ejecutables Independientes de Posición (PIE) reciben una protección más sólida de aleatorización del espacio de direcciones (ASLR).
Entonces:¿Cómo compruebo si un ejecutable en particular se compiló como un ejecutable independiente de posición en Linux?
Respuesta aceptada:
Puedes usar perl
script contenido en hardening-check
paquete, disponible en Fedora y Debian (como hardening-includes
). Lea esta página wiki de Debian para obtener detalles sobre qué indicadores de compilación se comprueban. Es específico de Debian, pero la teoría también se aplica a Red Hat.
Ejemplo:
$ 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