Contato
Account Login
Ir para seção

O que é a aplicação de patches ao kernel do Linux em tempo real?

Copiar URL

A aplicação de patches ao kernel em tempo real é uma forma de aplicar patches de segurança críticos e importantes a um kernel do Linux em execução, sem a necessidade de reinicializar ou interromper o ambiente de execução.

Existe uma diferença entre um patch e uma atualização. Uma atualização é uma versão nova e menor de um pacote e pode conter correções de bug, melhorias no desempenho, novas funcionalidades, edições na linha de comando e outros aperfeiçoamentos. Um patch é um snippet parcial de código, normalmente a diferença entre duas versões de um pacote ou arquivo, que corrige uma vulnerabilidade na versão atual. Esses patches corrigem vulnerabilidades sem latência para que a implementação atual possa ser executada com mais segurança e os administradores do sistema possam adiar a reinicialização até a próxima janela regular de manutenção.

Em teoria, a aplicação de patches em tempo real poderia ser usada para qualquer patch do kernel em execução, incluindo melhorias e correções de bug regulares. Na prática, a função principal desse recurso tem sido a segurança das principais vulnerabilidades, já que essas correções são prioritárias e urgentes. Com o Red Hat Enterprise Linux, nós nos concentramos em patches de segurança, e a aplicação de patches em tempo real ao kernel é considerada uma funcionalidade de segurança, com vantagens de gerenciamento para os administradores.

Sem a aplicação de patches em tempo real, é necessário reinicializar o app ou serviço com patch para carregar as novas mudanças da versão. Isso também é válido para patches aplicados ao próprio kernel do Linux, criando um dilema para os administradores do sistema Linux: eles precisam aplicar atualizações de segurança indispensáveis, mas isso significa reinicializações não programadas ao servidor Linux, incluindo latência e downtime.

Esta foi a dificuldade encontrada por um administrador de sistemas estudante do MIT, Jeff Arnold. Ele tinha um sistema com uma atualização de segurança pendente e decidiu deixar para cuidar da vulnerabilidade depois. O sistema acabou sendo hackeado. Em 2008, Arnold decidiu lidar com o desafio que havia enfrentado e, para isso, criou o que chamou de "atualizações de segurança de kernel sem raiz", uma maneira de aplicar e carregar patches de segurança a um sistema em execução. O projeto inicial (ksplice) foi a criação do conceito de aplicação de patches ao kernel do Linux em tempo real.

As atualizações dinâmicas de software são um desafio na computação devido à complexidade para lidar com serviços stateless x stateful, persistência, gerenciamento de dados, transações e cumprimento de comandos. Todas as coisas que estão na base do funcionamento de um serviço ou uma aplicação.

O que Arnold e os projetos que vieram depois fizeram foi usar ferramentas dentro do espaço do kernel para carregar módulos do kernel.

As operações do sistema Linux são divididas em duas seções: o espaço do usuário, no qual todos os serviços e aplicações operam, e o espaço do kernel, onde estão as principais operações do sistema. O kernel é um intermediário para todas as aplicações acessarem recursos de hardware como a CPU ou o armazenamento. Junto com o kernel, os administradores podem criar módulos personalizados do kernel para ampliar ou modificar uma funcionalidade, e esses módulos podem ser carregados e executados de maneira dinâmica, até mesmo depois da inicialização.

As ferramentas de aplicação de patches ao kernel em tempo real criam um módulo do kernel fora do código com patches, usando o ftrace (rastreio de função) para fazer o roteamento da função obsoleta para a nova função substituta, o módulo do patch ou a função com patches.

Figura 1: Como a aplicação de patches em tempo real ao kernel funciona

O ksplice foi o primeiro projeto a aplicar patches no kernel do Linux em tempo real. No entanto, ele foi vendido para a Oracle e depois modificado para ser uma ferramenta de código fechado. Outras equipes de desenvolvimento começaram a tentar criar projetos open source que pudessem substituir o ksplice, sendo lançados dois projetos levemente diferentes em 2014: o kpatch da Red Hat e o kgraft da SuSE. Por fim, pelo bem da comunidade de kernel do Linux, os desenvolvedores da Red Hat e da SuSE trabalharam juntos para criar o livepatch, uma camada comum dentro do kernel do Linux que permite que as pessoas desenvolvam ferramentas compatíveis de aplicação de patches ao kernel em tempo real.

É importante lembrar que os patches são usados especificamente para cuidar dos riscos de segurança. Um dos desafios enfrentados por administradores de sistemas é que, além de serem responsáveis pela aplicação de patches de segurança em sistemas Linux, eles também precisam garantir que estão atendendo aos requisitos de uptime. Por isso, talvez eles não consigam deixar os sistemas offline fora da janela de manutenção pré-definida,  tornando esse problema uma tensão constante que cresce cada vez mais.

De acordo com o Relatório sobre riscos de segurança da Red Hat, houve um aumento expressivo no número de problemas de segurança identificados (chamados vulnerabilidades e exposições comuns, ou CVEs) de 2019 a 2020: cerca de 155% (de 1.313 para 2.040). Embora esse número tenha caído levemente em 2021 (1.596), ainda se manteve 22% maior que em 2019. A maior parte foi um aumento nas vulnerabilidades de gravidade moderada, enquanto CVEs importantes se mantiveram mais ou menos estáveis e as vulnerabilidades críticas apresentaram queda.

As atualizações e patches do kernel são lançadas a cada seis semanas, e as atualizações menores do Red Hat Enterprise Linux são feitas a cada seis meses, com todos os patches de segurança inclusos. Com a realização do serviço de aplicação de patches ao kernel do Linux em tempo real sem precisar reinicializar o sistema, não é necessário decidir qual política seguir.

Os CVEs relacionados ao kernel são uma das principais preocupações, sendo que quatro dos 10 CVEs mais vistos em 2021 têm relação com o kernel.

Poder aplicar patches de segurança ao kernel do Linux em tempo real não é apenas uma conveniência. É uma ferramenta importante para as equipes de segurança tratarem de maneira proativa as vulnerabilidades, manterem as funções do kernel em execução e manterem a segurança dos sistemas.

A aplicação de patches do kernel em tempo real é uma ferramenta específica para o gerenciamento de segurança, mas não está disponível apenas com o Red Hat Enterprise Linux. O Red Hat Enterprise Linux inclui diferentes ferramentas para gerenciar a segurança, como o SELinux para permissões e controle de acesso, e funções do sistema para ajudar a automatizar a configuração e as tarefas.

Não existe uma solução única para criar um "ambiente seguro". As ameaças mudam e evoluem o tempo todo, sempre com vetores de ataque e alvos diferentes. Como a segurança começa no nível do sistema operacional, no próprio código-fonte, e trabalha por todo o stack de tecnologia e por todo o ciclo de vida, é essencial ter ferramentas variadas.

O Red Hat Insights está disponível em qualquer subscrição do Red Hat Enterprise Linux, oferecendo um conjunto de serviços que facilita o gerenciamento da segurança. Entre eles estão:

  • Painéis visuais que abrangem toda a infraestrutura, mostrando sistemas vulneráveis e o status do patch.
  • CVEs relevantes e outras atualizações.
  • Playbooks para aplicação automatizada de patches de segurança no Linux.
  • Perfis de segurança e personalizados definidos para gerenciar a configuração do sistema.
  • Uso de configurações de linha de base e sistemas de sinalização diferentes das linhas de base.

 

O recurso discutido aqui passou a existir quando se identificou uma necessidade e se criou um projeto aberto para trabalhar em parceria com organizações e membros da comunidade, criando uma solução que beneficiaria toda a comunidade. Esse caminho aberto de trabalho está no centro do valor da Red Hat de princípios da subscrição: colaboração, transparência e foco em melhorar a tecnologia e a experiência do usuário.  

Leitura recomendada

ARTIGO

O que é DevSecOps?

Se você quiser aproveitar ao máximo a agilidade e a capacidade de resposta do DevOps, a equipe de segurança da TI precisará participar de todo o ciclo de vida das suas aplicações.

ARTIGO

O que há de diferente na segurança em nuvem?

As preocupações gerais sobre a segurança afetam os sistemas de TI tradicionais e em nuvem. Descubra qual é a diferença.

ARTIGO

O que é SOAR?

Ele se refere a três importantes recursos de software usados pelas equipes de segurança: gerenciamento de casos e de fluxos de trabalho, automação de tarefas e acesso a meios centralizados de consulta e compartilhamento de informações sobre ameaças.

Leia mais sobre segurança

Soluções Red Hat

Um framework de segurança para gerenciar identidades de usuários e manter a privacidade das comunicações.

Uma solução de segurança empresarial em containers nativa do Kubernetes  que viabiliza a criação, implantação e execução de aplicações nativas em nuvem.

Um serviço de análises preditivas que ajuda a identificar e corrigir ameaças de segurança, desempenho e disponibilidade à sua infraestrutura Red Hat.

Um console individual, com políticas de segurança integradas, para controlar aplicações e clusters do Kubernetes.

Conteúdo adicional