Red Hat Training

A Red Hat training course is available for RHEL 8

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 ...