No início deste ano, quando o suporte do Clang LTO foi adicionado para o Kernel Linux 5.12, esse suporte de otimização de tempo de link não foi feito apenas para obter melhor desempenho, mas também porque é um pré-requisito para fazer uso da funcionalidade Control Flow Integrity (CFI) do Clang . Os engenheiros do Google já enviaram seu mais recente conjunto de patches para trazer o suporte ao Clang CFI dentro do kernel do Linux.
Os CFIs do Clang são projetados para aumentar a segurança contra ataques que subvertem o fluxo de controle do software. Ao contrário de outras soluções, o Clang CFI é bastante rápido com o intuito de ser seguro e ter desempenho suficiente para ser usado em compilações de software. O CFI adiciona uma verificação de tempo de execução antes das chamadas de função indireta para garantir que nada de nocivo esteja acontecendo ao fluxo de controle. O CFI do Clang depende de otimizações de tempo de link para inferir a visibilidade de uma classe e, como outro benefício adicional desta solução, não requer nenhum recurso especializado de CPU / hardware.
Sami Tolvanen, do Google, postou na segunda-feira a segunda revisão do suporte ao kernel Linux proposto do Clang CFI x86 (x86_64). Com esta nova versão, várias correções e melhorias de código de baixo nível.
O patch em sua forma atual também restringe a funcionalidade ao uso do LLVM Clang 14 e mais recente, que não será lançado até o início de 2022. Há um patch bastante simples no Clang 14 / Git, mas sob discussão parece algo que voltará -portado para o próximo lançamento do compilador Clang 13. Portanto, o Clang 13, que deve ser lançado no mês que vem, pode estar em boa forma para lidar com as tarefas CFI do kernel Linux.
Veja estes 14 patches se o Clang CFI para o kernel Linux principal for de seu interesse. Embora, infelizmente, devido à janela de mesclagem do Kernel Linux 5.15 ser iminente, isso provavelmente vai esperar pelo menosno Kernel Linux 5.16.
Até a próxima !!
Nenhum comentário:
Postar um comentário