Kernel Live Patching no SUSE Linux Enterprise Server
- O QUE É?
Entender e usar o Kernel Live Patching no SUSE Linux Enterprise Server.
- POR QUÊ?
Porque você deseja manter os sistemas de extrema importância seguros, sem tempo de inatividade.
- DEDICAÇÃO
Tempo de leitura de 20 minutos.
- META
Entender como funciona o Kernel Live Patching.
- REQUISITOS
Conhecimento prático de Linux.
1 Introdução ao Kernel Live Patching #
O Kernel Live Patching (KLP) permite aplicar as atualizações de segurança mais recentes aos kernels do Linux sem reinicialização. Esse procedimento maximiza o tempo de atividade e a disponibilidade do sistema, o que é especificamente crucial para sistemas de extrema importância. Sendo assim, a KLP oferece vários benefícios.
Manter um grande número de servidores automaticamente atualizados é essencial para que as organizações obtenham ou mantenham determinadas certificações de conformidade. A KLP pode ajudar a atingir a conformidade e reduzir a necessidade de janelas de manutenção.
As empresas que trabalham com contratos de nível de serviço devem garantir um determinado nível de acessibilidade e tempo de atividade do sistema. O Live Patching possibilita a aplicação de patches aos sistemas sem causar tempo de espera.
Como o KLP faz parte do mecanismo de atualização do sistema padrão, não há necessidade de treinamento especializado nem de introdução de rotinas de manutenção adicionais.
1.1 Escopo do Kernel Live Patching #
O escopo do SLES Live Patching inclui as correções de vulnerabilidades de nível 7+ do SUSE Common Vulnerability Scoring System (CVSS) e as correções de bug relacionadas à estabilidade do sistema ou corrupção de dados. No entanto, talvez não seja tecnicamente viável criar patches dinâmicos para todas as correções que se enquadram nas categorias especificadas. Portanto, a SUSE reserva o direito de ignorar as correções em situações em que a criação de um patch dinâmico do kernel não seja possível por motivos técnicos. Atualmente, mais de 95% das correções qualificadas são lançadas como patches dinâmicos. O SUSE CVSS é baseado no sistema CVSS versão 3.0. Para obter mais informações sobre o CVSS, consulte Common Vulnerability Scoring System SIG.
1.2 Limitações do Kernel Live Patching #
O KLP envolve a substituição de funções e o processamento adequado da substituição de conjuntos de funções interdependentes. Isso é feito redirecionando as chamadas do código antigo para o código atualizado em um local de memória diferente. As mudanças feitas nas estruturas de dados complicam ainda mais a situação, pois os dados permanecem no local e não podem ser estendidos ou reinterpretados. Existem técnicas que permitem a alteração indireta das estruturas de dados, mas determinadas correções não podem ser convertidas em patches dinâmicos. Nessa situação, a reinicialização do sistema é a única maneira de aplicar as correções.
2 Entendendo os patches dinâmicos do kernel #
Os patches dinâmicos do kernel são instalados como parte das atualizações regulares do sistema. Os patches dinâmicos do kernel são oferecidos como pacotes com código modificado, separados do pacote do kernel principal. Os patches dinâmicos são cumulativos, portanto, o patch mais recente contém todas as correções dos anteriores no pacote do kernel. Cada pacote ativo do kernel está vinculado à revisão exata do kernel para a qual ele foi gerado. O número da versão do pacote ativo do kernel aumenta a cada adição de correções. Para determinar o status da aplicação de patch do kernel, use o comando klp -v patches.
Os patches dinâmicos contêm apenas correções críticas e não substituem as atualizações regulares do kernel que exigem uma reinicialização. Considere os patches dinâmicos como medidas temporárias que protegem o kernel até que uma atualização apropriada do kernel e uma reinicialização sejam executadas.
O diagrama abaixo ilustra o relacionamento geral entre os patches dinâmicos e as atualizações do kernel. É possível ver a lista de CVEs e os relatórios de defeitos abordados pelo patch dinâmico ativo no momento usando o comando klp
-v patches.
É possível ter várias versões do pacote do kernel instaladas junto com os patches dinâmicos. Esses pacotes não entram em conflito. Você pode instalar os pacotes do kernel atualizados junto com os patches dinâmicos do kernel em execução. Nesse caso, talvez seja solicitado para você reinicializar o sistema. Os usuários com assinaturas do SLES Live Patching estão qualificados para suporte técnico, desde que haja atualizações de patch dinâmico para o kernel em execução.
Com o KLP ativado, todas as atualizações de kernel vêm com um pacote de patch dinâmico. Esse patch dinâmico não contém nenhuma correção e funciona como uma propagação para patches dinâmicos futuros do kernel correspondente. Esses patches de propagação vazios são chamados de initial patches.
Mesmo que haja vários pacotes de kernel instalados no sistema, lembre-se de que apenas um deles estará em execução em um determinado momento. Da mesma forma, pode haver vários pacotes de patches dinâmicos instalados, mas apenas um patch dinâmico será carregado no kernel.
O patch dinâmico está incluído no initrd. Isso significa que, no caso de uma reinicialização inesperada, o sistema já vem com as correções de patch dinâmico aplicadas, portanto, não há necessidade de executar a aplicação de patches novamente.
3 Ativando o Kernel Live Patching pela linha de comando #
O Kernel Live Patching está incluído na assinatura padrão do SLES. Para usá-lo, você precisa instalar o seguinte padrão:
#zypper install -t pattern lp_sles
Neste ponto, o patch dinâmico já foi aplicado ao sistema.
Veja como funciona o processo nos bastidores: quando o sistema de instalação de pacotes detecta que há um kernel instalado que precisa de patch dinâmico e que existe um patch dinâmico para ele no canal de software, o sistema seleciona esse patch para instalação. Em seguida, o kernel recebe as correções de patch dinâmico como parte da instalação do pacote. O kernel recebe o patch dinâmico mesmo antes da conclusão da instalação do produto.
4 Solucionando problemas do Kernel Live Patching #
4.1 Verificando a data de vencimento do patch dinâmico #
Verifique se o lifecycle-data-sle-module-live-patching está instalado e execute o comando zypper lifecycle. Você deve ver as datas de vencimento dos patches dinâmicos na seção Package end of support
if different from product (Fim do suporte do pacote se diferente do produto) da saída.
Cada patch dinâmico recebe atualizações por 13 meses a partir do lançamento do pacote de kernel subjacente. A página Kernels mantidos, atualizações de patch e ciclo de vida permite verificar as datas de vencimento com base na versão do kernel em execução sem instalar a extensão do produto.
4.2 Verificando os pacotes de patch dinâmico do kernel que estão instalados #
O kernel recebe patches dinâmicos se um pacote kernel-livepatch-* foi instalado para o kernel em execução. Você pode usar o comando zypper se --details kernel-livepatch-* para verificar se os pacotes de patch dinâmico do kernel estão instalados no seu sistema.
4.3 Impedindo a reinicialização #
Quando o pacote kernel-default está instalado, o gerenciador de atualizações solicita para você reinicializar o sistema. Para evitar que essa mensagem apareça, você pode remover essas atualizações do kernel da operação de aplicação de patches. Para fazer isso, você pode adicionar bloqueios de pacote com o Zypper.
4.4 Verificar o status da aplicação de patch #
Você pode verificar o status da aplicação de patches usando o comando klp status. Para examinar os patches instalados, execute o comando klp -v
patches.
4.5 Fazendo downgrade de um patch do kernel #
Se o patch dinâmico mais recente for problemático, você poderá fazer downgrade do patch dinâmico instalado no momento para a versão anterior. Lembre-se de que um sistema com avisos de kernel ou rastreamentos de erro de kernel no registro do sistema pode não ser adequado para o procedimento de downgrade de patch. Se você não tiver certeza se o sistema atende aos requisitos para um downgrade de patch, contate o Suporte Técnico da SUSE para obter ajuda.
Para fazer downgrade do patch dinâmico mais recente do kernel, use o comando klp
downgrade. Esse comando detecta automaticamente a versão do patch dinâmico mais recente e instala o anterior.
5 Informações legais #
Copyright© 2006 – 2025 SUSE LLC e colaboradores. Todos os direitos reservados.
Permissão concedida para copiar, distribuir e/ou modificar este documento sob os termos da Licença GNU de Documentação Livre, Versão 1.2 ou (por sua opção) versão 1.3; com a Seção Invariante sendo estas informações de copyright e a licença. Uma cópia da versão 1.2 da licença está incluída na seção intitulada “GNU Free Documentation License” (Licença GNU de Documentação Livre).
Para saber as marcas registradas da SUSE, visite https://www.suse.com/company/legal/. Todas as marcas comerciais de terceiros pertencem a seus respectivos proprietários. Os símbolos de marca registrada (®, ™ etc.) indicam marcas registradas da SUSE e de suas afiliadas. Os asteriscos (*) indicam marcas registradas de terceiros.
Todas as informações deste manual foram compiladas com a maior atenção possível aos detalhes. Entretanto, isso não garante uma precisão absoluta. A SUSE LLC, suas afiliadas, os autores ou tradutores não serão responsáveis por possíveis erros nem pelas consequências resultantes de tais erros.
