TuxTape, uma nova proposta para LivePatch no Linux

Fita Tux

O conceito de "Livepatch não é nenhuma novidade e nem sequer foi implementado no Linux há alguns anos, já que Red Hat, Oracle, Canonical e SUSE são algumas das que implementaram essa tecnologia em suas distribuições.

E embora tenham se consolidado como uma excelente solução, esta Geralmente depende de processos fechados na criação dos patches, limitando a transparência e a adaptabilidade. Projetos anteriores de código aberto, como o elivepatch do Gentoo e o linux-livepatching do Debian, foram marcados por longos períodos de inatividade ou estagnação em suas fases de protótipo.

Diante dessa série de problemas que ainda estão enfrentando o processo de geração, compilação, implantação e instalação de patches ativos do kernel Linux, O TuxTape se apresenta como uma solução independente, projetado para ser adaptável a qualquer versão do kernel Linux, sem se limitar a pacotes específicos de cada distribuição.

TuxTape, uma solução para aplicação de patches ao vivo no Linux

TuxTape, é uma nova solução que permite administradores de sistemas implemente sua própria infraestrutura para criar, montar e implantar patches ativos no kernel Linux.

O objetivo principal O TuxTape's é para oferecer um sistema abrangente que automatiza a criação e entrega de patches ativos. Sua arquitetura permite gerar patches compatíveis com ferramentas existentes, como o kpatch da Red Hat, o kGraft da SUSE, o Ksplice da Oracle e outras soluções universais.

Os remendos Eles são implementados como módulos do kernel que substituem funções existentes usando o subsistema ftrace, que redireciona a execução para as novas funções incluídas no módulo. Além disso, o TuxTape tem a capacidade de rastrear atualizações de vulnerabilidades postadas na lista de discussão linux-cve-announce e nos repositórios Git.

TuxTape livepatch

Usando essas informações, o sistema classifica as vulnerabilidades por gravidade, avalia a aplicabilidade de cada patch por meio de uma análise detalhada do perfil de compilação do kernel e descarta as correções que não afetam o ambiente de destino. Essa abordagem seletiva garante que apenas mudanças relevantes sejam implementadas, minimizando riscos e otimizando o desempenho.

Componentes e arquitetura do projeto

O kit TuxTape É composto por múltiplas ferramentas integradas variando da detecção à aplicação de patches ao vivo:

  • Sistema de Rastreamento de Vulnerabilidades: Ele é responsável por detectar e registrar novas ameaças em tempo real.
  • Gerador de banco de dados: Ele é responsável por fornecer informações sobre patches e vulnerabilidades em um banco de dados estruturado.
  • Servidor de metadados com gRPC: Gerencia a comunicação e a coordenação de serviços relacionados à geração de patches.
  • Sistema de despacho e construção do kernel: Facilita a compilação do kernel em configurações específicas gerando um perfil de compilação detalhado.
  • Gerador e arquivo de patch: Transforma patches regulares em módulos de kernel carregáveis ​​dinamicamente.
  • Cliente para hosts finais: Permite o recebimento e aplicação de patches em sistemas de produção.
  • Interface interativa (Painel): Fornece um console de administração para o usuário, onde ele pode revisar, gerenciar e criar patches ativos com base nas fontes recebidas.

Vale ressaltar que o projeto e desenvolvimento do TuxTape está atualmente em fase de protótipo experimental, portanto, no momento ele é recomendado apenas para testes iniciais com seus diferentes componentes.

Para aqueles interessados ​​em testar o projeto, atualmente os testes são recomendados apenas em ferramentas específicas, como:

  • tuxtape-cve-analisador: Analisa informações de vulnerabilidade e cria um banco de dados de patches.
  • tuxtape-servidor: Implementa uma interface gRPC para geração e distribuição de patches.
  • construtor-de-kernel-tuxtape: Ele é responsável por construir o kernel com uma determinada configuração e gerar o perfil de compilação correspondente.
  • painel-tuxtape: Fornece uma interface de console para revisar e criar patches ativos com base em patches de origem recebidos.

Por fim, é importante mencionar que o projeto está sendo desenvolvido em Rust e é distribuído sob a licença Apache 2.0. Você pode consultar mais informações ou o código fonte deste, em o seguinte link.