Pojęcie «Livepatch nie jest niczym nowym i od kilku lat nie została ona zaimplementowana w systemie Linux, ponieważ Red Hat, Oracle, Canonical i SUSE zaimplementowały tę technologię w swoich dystrybucjach.
I choć sprawdziły się jako doskonałe rozwiązanie, to Zwykle zależy to od procesów zamkniętych w tworzeniu łatek, ograniczając przejrzystość i zdolność adaptacji. Poprzednie projekty open source, takie jak elivepatch w Gentoo czy linux-livepatching w Debianie, charakteryzowały się długimi okresami braku aktywności lub stagnacji w fazie prototypów.
W obliczu tej serii problemów którzy wciąż zmagają się z procesem generowania, kompilowania, wdrażania i instalowania aktywnych poprawek jądra Linux, TuxTape prezentuje się jako rozwiązanie niezależne, zaprojektowane tak, aby dało się je dostosować do dowolnej wersji jądra Linux, bez ograniczania się do pakietów specyficznych dla danej dystrybucji.
TuxTape, rozwiązanie do łatania na żywo w systemie Linux
TuxTape to nowe rozwiązanie oferuje nasz konfigurator pozwala administratorom systemów wdróż własną infrastrukturę do tworzenia, składania i wdrażania poprawek do jądra Linux.
Główny cel od TuxTape jest do zaoferowania kompleksowy system automatyzujący tworzenie i dostarczanie poprawek na żywo. Jego architektura pozwala na generowanie poprawek kompatybilnych z istniejącymi narzędziami, takimi jak kpatch firmy Red Hat, kGraft firmy SUSE, Ksplice firmy Oracle i innymi uniwersalnymi rozwiązaniami.
Łatki Są one implementowane jako moduły jądra, które zastępują istniejące funkcje korzystając z podsystemu ftrace, który przekierowuje wykonywanie do nowych funkcji zawartych w module. Dodatkowo TuxTape ma możliwość śledzenia aktualizacji luk w zabezpieczeniach publikowanych na liście mailingowej linux-cve-announce i w repozytoriach Git.

Wykorzystując te informacje, system klasyfikuje luki według stopnia zagrożenia, ocenia stosowalność każdej poprawki poprzez szczegółową analizę profilu kompilacji jądra i odrzuca te poprawki, które nie mają wpływu na środowisko docelowe. Selektywne podejście gwarantuje wdrożenie wyłącznie istotnych zmian, minimalizując ryzyko i optymalizując wydajność.
Komponenty i architektura projektu
Zestaw TuxTape Składa się z wielu zintegrowanych narzędzi od wykrywania po łatanie na żywo:
- System śledzenia luk w zabezpieczeniach: Zajmuje się wykrywaniem i rejestrowaniem nowych zagrożeń w czasie rzeczywistym.
- Generator bazy danych: Jego zadaniem jest dostarczanie informacji o poprawkach i lukach w zabezpieczeniach do ustrukturyzowanej bazy danych.
- Serwer metadanych z gRPC: Zarządza komunikacją i koordynacją usług związanych z generowaniem poprawek.
- System dyspozytorski i konstrukcja jądra: Ułatwia kompilację jądra na określonych konfiguracjach poprzez generowanie szczegółowego profilu kompilacji.
- Generator i archiwum poprawek: Przekształca zwykłe poprawki w dynamicznie ładowalne moduły jądra.
- Klient dla hostów końcowych: Umożliwia przyjmowanie i instalowanie poprawek w systemach produkcyjnych.
- Interaktywny interfejs (pulpit):Udostępnia użytkownikowi konsolę administracyjną, w której może przeglądać, zarządzać i tworzyć bieżące poprawki na podstawie otrzymanych źródeł.
Warto wspomnieć, że projekt i rozwój TuxTape znajdują się obecnie w fazie eksperymentalnego prototypu, dlatego na chwilę obecną zaleca się jedynie wstępne testowanie jego różnych komponentów.
Dla osób zainteresowanych przetestowaniem projektu zaleca się obecnie testowanie wyłącznie przy użyciu określonych narzędzi, takich jak:
- parser-cve-tuxtape: Analizuje informacje o lukach w zabezpieczeniach i tworzy bazę poprawek.
- serwer-tuxtape: Implementuje interfejs gRPC do generowania i dystrybucji poprawek.
- tuxtape-kernel-builder: Jest odpowiedzialny za zbudowanie jądra o podanej konfiguracji i wygenerowanie odpowiedniego profilu kompilacji.
- tablica rozdzielcza tuxtape:Zapewnia interfejs konsoli umożliwiający przeglądanie i tworzenie bieżących poprawek w oparciu o otrzymane poprawki źródłowe.
Na koniec warto wspomnieć, że projekt jest rozwijany w języku Rust i rozpowszechniany na licencji Apache 2.0. Więcej informacji lub kod źródłowy można znaleźć tutaj: poniższy link.