Qing Zhao da Oracle apresentado ontem durante o LPC2021 GNU Tools Track em torno do trabalho que eles e outros têm se empenhado para melhorar a segurança da GNU Compiler Collection (GCC).
Em algumas áreas, o trabalho de segurança do GCC é para atualizar os recursos de segurança já implementados pelo LLVM Clang. Entre os recursos estão zerar registros usados pelo chamador no retorno, inicialização automática de variáveis de pilha, detecção de estouro sem sinal e muito mais. Por exemplo, com o GCC 11 é o recurso de compilador zero-call-used-regs e agora com o Linux 5.15 esse recurso pode ser usado opcionalmente para aumentar a segurança do kernel.
Escapando de nosso radar no início deste mês foi que o GCC 12 pousou a inicialização automática de variável de pilha. Este novo recurso de segurança do GCC 12 pode ser ativado com a opção de compilador”-ftrivial-auto-var-init=zero”. O LLVM/Clang viu essa opção de segurança postada em 2018.
Com a inicialização automática da variável de pilha, isso deixa o GCC ainda precisando oferecer suporte a proteção de carga especulativa, proteção contra estouro sem sinal e controlar melhorias de integridade de fluxo para corresponder aos recursos de segurança do Clang.
Aqueles que desejam aprender mais sobre o trabalho de segurança do GCC em andamento pela Oracle e outros podem ver a apresentação abaixo junto com os slides .