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
.