TuxTape, una nova proposta per al LivePatch a Linux

TuxTape

El concepte de «Livepatch» o «pegats en viu», no és una cosa nova i ni tan sols que tingui uns quants anys implementant-se a Linux, ja que Red Hat, Oracle, Canonical i SUSE són alguns dels que han implementat aquesta tecnologia per a les seves distribucions.

I encara que s'han consolidat com una solució excel·lent, aquesta sol dependre de processos tancats en la creació dels pegats, limitant la transparència i l'adaptabilitat. Projectes de codi obert anteriors, com elivepatch de Gentoo i linux-livepatching de Debian, s'han vist marcats per llargs períodes d'inactivitat o estancaments en les fases de prototip.

Davant aquesta sèrie de problemàtiques que encara s'enfronten en el procés de generar, compilar, implementar i instal·lar pegats actius del nucli de Linux, TuxTape es presenta com una solució independent, dissenyada per ser adaptable a qualsevol versió del nucli de Linux, sense estar limitada a paquets específics de cada distribució.

TuxTape, una solució per als pegats en viu a Linux

TuxTape, és una nova solució que permet als administradors de sistemes implementar la seva pròpia infraestructura per crear, assemblar i desplegar pegats en viu al nucli de Linux.

L'objectiu principal de TuxTape és oferir un sistema integral que automatitzi la creació i entrega de pegats en viu. La seva arquitectura permet generar pegats compatibles amb eines existents com kpatch de Red Hat, kGraft de SUSE, Ksplice d'Oracle i altres solucions universals.

els pegats s'implementen com a mòduls de kernel que reemplacen funcions existents mitjançant l'ús del subsistema ftrace, cosa que redirigeix ​​l'execució cap a les noves funcions incloses al mòdul. A més, TuxTape compta amb la capacitat de rastrejar les actualitzacions de vulnerabilitats publicades a la llista de correu linux-cve-announce i en repositoris Git.

TuxTape livepatch

Amb aquesta informació, el sistema classifica les vulnerabilitats per gravetat, avalua l'aplicabilitat de cada pegat mitjançant una anàlisi detallada del perfil de compilació del nucli i descarta les correccions que no afectin l'entorn de destinació. Aquest enfocament selectiu garanteix que només s'implementin les modificacions pertinents, minimitzant riscos i optimitzant-ne el rendiment.

Components i arquitectura del projecte

El kit de TuxTape es compon de múltiples eines integrades que abasten des de la detecció fins a l'aplicació de pegats en viu:

  • Sistema de seguiment de vulnerabilitats: aquest sencarrega de detectar i registrar noves amenaces en temps real.
  • Generador de bases de dades: és l'encarregat de subministrar la informació sobre pegats i vulnerabilitats a una base de dades estructurada.
  • Servidor de metadades amb gRPC: Administra la comunicació i la coordinació de serveis relacionats amb la generació de pegats.
  • Sistema de despatx i construcció de nucli: Facilita la compilació del nucli en configuracions específiques, generant un perfil de compilació detallat.
  • Generador i arxiu de pegats: Transforma pedaços regulars en mòduls de kernel que es poden carregar dinàmicament.
  • Client per a hosts finals: Permet la recepció i aplicació dels pegats als sistemes de producció.
  • Interfície interactiva (Dashboard): Ofereix una consola d'administració per a l'usuari on pot revisar, gestionar i crear pegats en viu basats en les fonts rebudes.

Cal esmentar que actualment el projecte i desenvolupament de TuxTape es troba en una fase experimental de prototip, per la qual cosa de moment només es recomana per a proves inicials amb els seus diferents components.

Per als interessats a provar el projecte, de moment es recomanen les proves només en eines específiques com:

  • tuxtape-cve-parser: Analitza la informació sobre vulnerabilitats i construeix una base de dades de pegats.
  • tuxtape-server: Implementa una interfície gRPC per a la generació i distribució de pegats.
  • tuxtape-kernel-builder: S'encarrega de construir el nucli amb una configuració donada i generar el perfil de compilació corresponent.
  • tuxtape-dashboard: Proporciona una interfície de consola per a la revisió i creació de pegats en viu basats en els pegats font rebuts.

Finalment, és important esmentar que el projecte està sent desenvolupat a Rust i és distribuït sota la llicència Apache 2.0. Pots consultar més informació o el codi font d'aquest, des de el següent enllaç.