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 Copiar enlaceEnlace copiado en el portapapeles!
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
annobinnotas habilitadas. -
El programa fue compilado con la opción
-fstack-protector-strongactivada. -
El programa fue compilado con
-D_FORTIFY_SOURCE=2. -
El programa fue compilado con
-D_GLIBCXX_ASSERTIONS. -
El programa fue compilado con
-fexceptionsactivado. -
El programa fue compilado con
-fstack-clash-protectionactivado. -
El programa fue compilado en
-O2o 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
-fPICo-fPIE. -
Los ejecutables dinámicos se compilaron con
-fPIEy 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.