Livepatching

Klp-build: nova proposta para livepatching do kernel Linux

O klp-build é uma nova proposta para o livepatching do kernel Linux, oferecendo uma abordagem mais eficiente e simplificada em comparação com métodos anteriores. Descubra as vantagens e os desafios dessa inovação.

klp-build no kernel linux

Recentemente, foi apresentada uma nova abordagem para a criação de módulos livepatch para o kernel Linux, conhecida como klp-build. Proposta por Josh Poimboeuf, um desenvolvedor veterano da Red Hat, essa ferramenta visa aprimorar o processo de live-patching, permitindo que bugs e falhas de segurança sejam corrigidos sem a necessidade de reiniciar o sistema.

Introdução ao klp-build

O klp-build foi apresentado por Poimboeuf como uma “solicitação de comentários” (RFC) na lista de discussão do kernel Linux. A proposta envolve um conjunto de patches que introduz uma nova forma de construir módulos livepatch. Diferente de métodos anteriores, como o kpatch-build, o klp-build promete uma implementação mais limpa e eficiente.

Principais vantagens e inovações

Uma das principais vantagens do klp-build é sua compatibilidade com recursos modernos do kernel, como IBT (Indirect Branch Tracking) e LTO (Link-Time Optimization). Ao operar diretamente sobre o vmlinux.o, ele se beneficia de uma integração mais profunda com o kernel, reduzindo a complexidade e o número de linhas de código envolvidas em comparação com o kpatch-build. Com cerca de 3 mil linhas de código a menos, o klp-build se destaca por seu design simplificado e pela utilização da funcionalidade CFG (Control Flow Graph) do objtool para gerar somas de verificação e detectar mudanças triviais em funções.

Outra melhoria significativa é a eliminação de problemas relacionados a mudanças de deslocamento LINE, graças ao novo script adjust-patch-lines. Além disso, como o klp-build está sendo desenvolvido diretamente na árvore do kernel, isso facilita a manutenção, atrai um maior número de contribuidores potenciais e reduz a necessidade de código externo.

Implementação e próximos passos

Atualmente, o klp-build está sendo revisado por desenvolvedores do kernel e ainda há diversas tarefas a serem concluídas antes de sua potencial implementação. Entre os desafios a serem enfrentados estão a criação de documentação mais detalhada, otimizações de desempenho, suporte a compiladores como o Clang e a habilitação para arquiteturas além do x86_64.

O conjunto inicial de patches consiste em 31 modificações que estão sendo avaliadas na lista de discussão do kernel Linux (LKML). Caso essa proposta seja bem-sucedida, o klp-build poderá representar uma evolução significativa no livepatching do kernel Linux, proporcionando um processo mais eficiente e confiável para a aplicação de patches ao vivo.