2.5. Opciones para endurecer el código con GCC
Cuando el compilador transforma el código fuente en código objeto, puede añadir varias comprobaciones para evitar las situaciones más habituales y aumentar la seguridad. Elegir el conjunto adecuado de opciones del compilador puede ayudar a producir programas y bibliotecas más seguros, sin tener que cambiar el código fuente.
Opciones de la versión de lanzamiento
La siguiente lista de opciones es la mínima recomendada para los desarrolladores que tienen como objetivo Red Hat Enterprise Linux:
$ gcc ... -O2 -g -Wall -Wl,-z,now,-z,relro -fstack-protector-strong -fstack-clash-protection -D_FORTIFY_SOURCE=2 ...
-
Para los programas, añada las opciones
-fPIE
y-pie
Position Independent Executable. -
En el caso de las bibliotecas enlazadas dinámicamente, la opción obligatoria
-fPIC
(Position Independent Code) aumenta indirectamente la seguridad.
Opciones de desarrollo
Utilice las siguientes opciones para detectar fallos de seguridad durante el desarrollo. Utilice estas opciones junto con las opciones de la versión de lanzamiento:
$ gcc ... -Walloc-cero -Walloca-larger-than -Wextra -Wformat-security -Wvla-larger-than ...
Recursos adicionales