back_button

2025/04/04

4. Você Já Usou o Ksplice?

Neste artigo, apresentaremos o Ksplice, uma das funcionalidades do Oracle Linux. O Ksplice é um sistema de aplicação de patches ao vivo que permite aplicar correções ao kernel sem reiniciar o sistema operacional. Ele tem uma história de mais de 10 anos e é uma excelente funcionalidade que, atualmente, não tem concorrentes à altura. No entanto, mesmo entre os usuários do Oracle Linux, aqueles que utilizam o Ksplice podem ser minoria. Assim, neste artigo, buscamos aprofundar seu entendimento sobre o Ksplice.

O que é o Ksplice?

O Ksplice é uma funcionalidade que permite aplicar patches ao kernel do Linux e a algumas bibliotecas do espaço do usuário sem reiniciar o sistema operacional. Por exemplo, se você instalar um kernel recém-lançado, ainda será necessário reiniciar o sistema para ativá-lo. No entanto, o Ksplice permite habilitar a atualização mais recente sem a necessidade de reinicialização.

Em outras palavras, com o Ksplice, você pode obter os seguintes benefícios:

  • Minimizar o tempo de inatividade do sistema
  • Responder rapidamente a vulnerabilidades de segurança
  • Reduzir o tempo de aplicação de patches

A capacidade de habilitar atualizações sem reiniciar é uma funcionalidade particularmente importante em “servidores acessíveis externamente” e “hosts KVM com muitas máquinas virtuais em execução”. Servidores acessíveis externamente precisam responder rapidamente a vulnerabilidades de segurança. Além disso, vários servidores virtuais rodam em hosts KVM. Portanto, quando é necessária uma reinicialização do sistema operacional, diversos ajustes prévios são exigidos, além do tempo real de trabalho.

Em resumo, o Ksplice é uma funcionalidade especialmente eficaz para uso empresarial, ajudando a reduzir custos operacionais e aumentar a segurança.

FAQ do Ksplice

Para ajudá-lo a entender rapidamente o Ksplice, apresentaremos uma visão geral intitulada FAQ do Ksplice.

Quais sistemas operacionais posso usar com o Ksplice?

Até o momento (setembro de 2022), os seguintes sistemas operacionais Linux são suportados. O Ksplice também suporta tanto o kernel compatível com Red Hat quanto o Unbreakable Enterprise Kernel para o Oracle Linux.

  • Oracle Linux 6
  • Oracle Linux 7
  • Oracle Linux 8
  • Oracle Linux 9
  • CentOS e RHEL 7
  • CentOS e RHEL 8
  • Ubuntu 18.04
  • Ubuntu 20.04

Além do Intel/AMD (x86_64), ele também suporta Arm de 64 bits. No entanto, suporta apenas o Unbreakable Enterprise Kernel para Arm.

Preciso de uma conexão com a Internet para usar o Ksplice?

O Ksplice possui modos online e offline. O modo online se conecta à Unbreakable Linux Network (ULN) fornecida pela Oracle, então você precisa ter acesso à Internet (pode ser por meio de um proxy de Internet).

Além disso, no modo offline, você pode usar o Ksplice sem conexão com a Internet configurando um espelho Ksplice. No entanto, o servidor usado como espelho Ksplice deve ser capaz de se conectar à Internet.

Quais componentes são cobertos pelo patch ao vivo do Ksplice?

Além dos dois kernels a seguir, ele suporta os pacotes do espaço do usuário glibc e openssl. No entanto, apenas o Oracle Linux suporta pacotes do espaço do usuário.

  • Kernel compatível com Red Hat
  • Unbreakable Enterprise Kernel
  • glibc
  • openssl

Há uma taxa para usar o Ksplice?

Para usar o Ksplice, você precisa de um contrato pago de Suporte Premier do Oracle Linux. No entanto, o Ksplice está disponível gratuitamente no Oracle Linux na Oracle Cloud Infrastructure (configurado por padrão). Excepcionalmente, você pode usá-lo gratuitamente no Ubuntu.

Existe um programa de teste para o Ksplice?

Um programa de teste de 30 dias está disponível. Além disso, se você quiser experimentar o Ksplice facilmente, recomendamos o Always Free da Oracle Cloud Infrastructure. A imagem do Oracle Linux já vem configurada com o Ksplice, então você pode usá-lo imediatamente.

Existem outros sistemas de aplicação de patches ao vivo como o Ksplice?

Outras distribuições Linux também possuem os seguintes sistemas de aplicação de patches ao vivo. No entanto, todos eles foram fornecidos apenas nos últimos anos e ainda não provaram seu desempenho.

  • kpatch baseado em RHEL
  • SUSE KLP
  • Ubuntu Livepatch Service

Além disso, no Windows, existe uma funcionalidade chamada Windows hot patch. No entanto, ela é limitada ao Windows Server 2022 Datacenter: Azure Edition.

Vamos experimentar o Ksplice

Para entender o Ksplice, é melhor ver como ele funciona na prática. Neste artigo, explicaremos usando o Oracle Linux 8 da Oracle Cloud Infrastructure, que é fácil de experimentar. A configuração e os detalhes serão explicados no próximo artigo.

Além disso, o Oracle Linux 7 e o Oracle Linux 9 são quase iguais, mas pode haver pequenas diferenças dependendo da versão da imagem que você está usando.

Verifique o status da sua configuração do Ksplice

Para usar o Ksplice, você precisa de um cliente Ksplice. Então, verifique se o cliente Ksplice está instalado. Ao pesquisar por um pacote, você verá que o pacote uptrack (= cliente Ksplice) está instalado.

$ rpm -qa | grep -e ksplice -e uptrack | sort
ksplice-release-el8-1.0-4.el8.x86_64
ksplice-uptrack-release-1-5.noarch
uptrack-1.2.75-0.el8.noarch

Em seguida, verifique o arquivo de configuração /etc/uptrack/uptrack.conf. Você pode usar o Ksplice se o arquivo de configuração existir e a chave de acesso (accesskey) estiver configurada.

$ grep -v -e '^\s*#' -e '^\s*$' /etc/uptrack/uptrack.conf
[Auth]
accesskey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(A chave para o Ksplice Uptrack é obtida do ULN)
[Network]
https_proxy =
gconf_proxy_lookup = no
[Settings]
install_on_reboot = yes
autoinstall = no

Aprenda os conceitos básicos do Ksplice

Agora que você sabe que o Ksplice está configurado, vamos usá-lo de fato. Como a maioria das operações requer privilégios de root, usaremos su. Alternativamente, você pode adicionar sudo a cada comando.

$ sudo su -

Verifique a versão do kernel

Verifique a versão do kernel Linux atualmente habilitada. O UEK6 “5.4.17-2136.306.1.3” está ativado.

# uname -r
5.4.17-2136.306.1.3.el8uek.x86_64

Se você verificar a versão mais recente do repositório, ela é “5.4.17-2136.310.7.1”. Assim, você pode ver que uma nova versão foi lançada.

# yum check-update kernel-uek
kernel-uek.x86_64              5.4.17-2136.310.7.1.el8uek              ol8_UEKR6

Visualize as atualizações

No método tradicional, o kernel é atualizado e reiniciado da seguinte forma:

# yum update kernel-uek -y
# reboot

No Ksplice, use o comando uptrack-upgrade. Você pode visualizar as atualizações Ksplice aplicáveis digitando “uptrack-upgrade -n” como segue. Cada linha é uma atualização separada.

# uptrack-upgrade -n
Versão efetiva do kernel é 5.4.17-2136.306.1.3.el8uek
Os seguintes passos serão executados:
Instalar [n9kprcm6] Detecção de exploits conhecidos.
Instalar [qivpmdlu] Detecção de exploits conhecidos para CVE-2019-9213.
Instalar [50qj7qw1] Detecção de exploits conhecidos para CVE-2017-1000253.
Instalar [3iw8b16t] Detecção de exploits conhecidos para CVE-2016-5195.
Instalar [sgxyx32m] Detecção de exploits conhecidos para CVE-2021-27363.
Instalar [92k7sosn] Detecção de exploits conhecidos para CVE-2021-27364.
★Omitido abaixo

Aplique a atualização

Aplique todas essas atualizações. O tempo de aplicação varia dependendo do número de atualizações e das especificações da máquina, e desta vez levou cerca de 1 minuto. O ponto chave a notar aqui é “5.4.17-2136.310.7” na última linha. Graças ao Ksplice, ele tem a mesma versão do kernel que a mais recente.

# uptrack-upgrade -y
Os seguintes passos serão executados:
Instalar [n9kprcm6] Detecção de exploits conhecidos.
Instalar [qivpmdlu] Detecção de exploits conhecidos para CVE-2019-9213.
Instalar [50qj7qw1] Detecção de exploits conhecidos para CVE-2017-1000253.
Instalar [3iw8b16t] Detecção de exploits conhecidos para CVE-2016-5195.
★omissão
Instalando [dad581dd] CVE-2022-2588: Uso após liberação em Classificador de Rotas IP.
Seu kernel está totalmente atualizado.
Versão efetiva do kernel é 5.4.17-2136.310.7.el8uek

A versão efetiva do kernel habilitada pela atualização Ksplice pode ser visualizada com o comando uptrack-uname.

# uptrack-uname -r
5.4.17-2136.310.7.el8uek.x86_64

O uname normal exibe a versão do kernel instalada.

# uname -r
5.4.17-2136.306.1.3.el8uek.x86_64

A lista de UEKs instalados é a seguinte. A mais recente “5.4.17-2136.310.7” não está instalada. Em outras palavras, apenas a atualização incremental do Ksplice (patch) está instalada.

# rpm -q kernel-uek | sort -n
kernel-uek-5.4.17-2102.201.3.el8uek.x86_64
kernel-uek-5.4.17-2136.304.4.1.el8uek.x86_64
kernel-uek-5.4.17-2136.306.1.3.el8uek.x86_64

Visualize as atualizações

A atualização Ksplice que você está aplicando pode ser visualizada com o comando uptrack-show.

# uptrack-show
Atualizações instaladas:
[n9kprcm6] Detecção de exploits conhecidos.
[qivpmdlu] Detecção de exploits conhecidos para CVE-2019-9213.
[50qj7qw1] Detecção de exploits conhecidos para CVE-2017-1000253.
★omissão
[fza3q2mo] CVE-2022-2153: Negação de serviço em Máquina Virtual Baseada em Kernel.
[4eaq3lov] CVE-2022-21505: Bypass de lockdown na Arquitetura de Medição de Integridade.
[dad581dd] CVE-2022-2588: Uso após liberação em Classificador de Rotas IP.
Versão efetiva do kernel é 5.4.17-2136.310.7.el8uek

Excluindo atualizações

Você pode excluir facilmente as atualizações aplicadas com o comando uptrack-remove.

# uptrack-remove --all -y
Os seguintes passos serão executados:
Remover [dad581dd] CVE-2022-2588: Uso após liberação em Classificador de Rotas IP.
Remover [4eaq3lov] CVE-2022-21505: Bypass de lockdown na Arquitetura de Medição de Integridade.
Remover [jjafy1ef] CVE-2022-29582: Uso após liberação na API io_uring assíncrona.
★omissão
Removendo [qivpmdlu] Detecção de exploits conhecidos para CVE-2019-9213.
Removendo [n9kprcm6] Detecção de exploits conhecidos.
Versão efetiva do kernel é 5.4.17-2136.306.1.3.el8uek

Você voltou ao estado original de não aplicar as atualizações Ksplice. Neste caso, aplicamos as atualizações em massa, mas você também pode aplicá-las individualmente especificando seus IDs.

# uptrack-uname -r
5.4.17-2136.306.1.3.el8uek.x86_64

# uname -r
5.4.17-2136.306.1.3.el8uek.x86_64

Como lembrete, você não verá nada ao visualizar as atualizações Ksplice aplicadas.

# uptrack-show
Atualizações instaladas:
Nenhuma

Versão efetiva do kernel é 5.4.17-2136.306.1.3.el8uek

Conclusão

Você entendeu o que é o Ksplice? Além disso, acreditamos que, ao usá-lo de fato, você verá que é muito fácil de usar. No próximo artigo, discutiremos o Ksplice com mais detalhes.