Red Hat Training

A Red Hat training course is available for RHEL 8

17.2.4.4. Noções básicas sobre checagem de endurecimento

O verificador de endurecimento é ativado por padrão. Você pode desabilitar o verificador de endurecimento com a opção de linha de comando --disable-hardened.

17.2.4.4.1. Opções de verificadores de endurecimento

O programa annocheck verifica as seguintes opções:

  • A ligação preguiçosa é desativada usando a opção -z now linker.
  • O programa não tem uma pilha em uma região executável de memória.
  • As relocalizações para a tabela GOT estão definidas para leitura apenas.
  • Nenhum segmento do programa tem todos os três bits de permissão de leitura, escrita e execução definidos.
  • Não há realocações contra códigos executáveis.
  • As informações do runpath para localização de bibliotecas compartilhadas em tempo de execução incluem apenas diretórios enraizados em /usr.
  • O programa foi compilado com notas de annobin habilitadas.
  • O programa foi compilado com a opção -fstack-protector-strong ativada.
  • O programa foi compilado com -D_FORTIFY_SOURCE=2.
  • O programa foi compilado com -D_GLIBCXX_ASSERTIONS.
  • O programa foi compilado com -fexceptions habilitado.
  • O programa foi compilado com -fstack-clash-protection habilitado.
  • O programa foi compilado em -O2 ou superior.
  • O programa não tem nenhuma relocalização realizada em um programa gravável.
  • Os executáveis dinâmicos têm um segmento dinâmico.
  • Bibliotecas compartilhadas foram compiladas com -fPIC ou -fPIE.
  • Os executáveis dinâmicos foram compilados com -fPIE e vinculados com -pie.
  • Se disponível, foi utilizada a opção -fcf-protection=full.
  • Se disponível, foi utilizada a opção -mbranch-protection.
  • Se disponível, foi utilizada a opção -mstackrealign.