17.2.4.4. Conceptos básicos del verificador de endurecimiento
El comprobador de endurecimiento está activado por defecto. Puede desactivar el verificador de endurecimiento con la opción de línea de comandos --disable-hardened
.
17.2.4.4.1. Opciones de comprobación del endurecimiento
El programa annocheck
comprueba las siguientes opciones:
-
Lazy binding se desactiva con la opción del enlazador
-z now
. - El programa no tiene una pila en una región de memoria ejecutable.
- Las reubicaciones de la tabla GOT se establecen como de sólo lectura.
- Ningún segmento de programa tiene establecidos los tres bits de permiso de lectura, escritura y ejecución.
- No hay reubicaciones contra el código ejecutable.
- La información de la ruta de ejecución para localizar las bibliotecas compartidas en tiempo de ejecución incluye sólo los directorios con raíz en /usr.
-
El programa fue compilado con
annobin
notas habilitadas. -
El programa fue compilado con la opción
-fstack-protector-strong
activada. -
El programa fue compilado con
-D_FORTIFY_SOURCE=2
. -
El programa fue compilado con
-D_GLIBCXX_ASSERTIONS
. -
El programa fue compilado con
-fexceptions
activado. -
El programa fue compilado con
-fstack-clash-protection
activado. -
El programa fue compilado en
-O2
o superior. - El programa no tiene ninguna reubicación en una escritura.
- Los ejecutables dinámicos tienen un segmento dinámico.
-
Las bibliotecas compartidas se compilaron con
-fPIC
o-fPIE
. -
Los ejecutables dinámicos se compilaron con
-fPIE
y se enlazaron con-pie
. -
Si está disponible, se utilizó la opción
-fcf-protection=full
. -
Si está disponible, se utilizó la opción
-mbranch-protection
. -
Si está disponible, se utilizó la opción
-mstackrealign
.