Red Hat Training

A Red Hat training course is available for RHEL 8

2.5. Opções para endurecimento de código com GCC

Quando o compilador transforma o código fonte em código objeto, ele pode adicionar várias verificações para evitar situações comumente exploradas e aumentar a segurança. Escolher o conjunto certo de opções de compilador pode ajudar a produzir programas e bibliotecas mais seguros, sem ter que alterar o código-fonte.

Opções de versão de lançamento

A seguinte lista de opções é o mínimo recomendado para desenvolvedores que tenham como alvo o Red Hat Enterprise Linux:

$ gcc ... -O2 -g -Wall -Wl,-z,now,-z,relro -fstack-protector-stack forte -fstack-clash-protection -D_FORTIFY_SOURCE=2 ...
  • Para os programas, adicione as opções de execução independente de cargos -fPIE e -pie.
  • Para bibliotecas ligadas dinamicamente, a opção obrigatória -fPIC (Position Independent Code) aumenta indiretamente a segurança.

Opções de desenvolvimento

Utilize as seguintes opções para detectar falhas de segurança durante o desenvolvimento. Use estas opções em conjunto com as opções para a versão de lançamento:

$ gcc ... -Walloc-zero -Walloca-larga que -Wextra -Wformat-security -Wvlalarga que -Wvlalarga que -Walloca-larga que ...