ClickCease Der ultimative Leitfaden für Linux-Kernel-Live-Patching-Software - TuxCare

Inhaltsübersicht

Abonnieren Sie unseren beliebten Newsletter

Schließen Sie sich 4.500+ Linux- und Open-Source-Experten an!

2x im Monat. Kein Spam.

Der ultimative Leitfaden für Linux-Kernel-Live-Patching-Software

Joao Correia

August 18, 2022 - Technischer Evangelist

Nach der Datenpanne bei Equifax, die die Folgen ungepatchter Software deutlich gemacht hat, haben Administratoren die heikle Aufgabe sicherzustellen, dass die neuesten Patches vor allem auf öffentlich zugänglichen Servern angewendet werden und gleichzeitig die Ausfallzeiten durch mögliche Abstürze und Neustarts reduziert werden. Es gibt eine Vielzahl von Open-Source-Patching-Tools, aber viele von ihnen erzwingen einen Neustart des Servers. Anstatt ressourcenintensive Open-Source-Patching-Methoden zu verwenden, ist das rebootlose Live-Patching eine bessere Wahl. Live-Patching hält das System auf dem neuesten Stand und schützt es vor den neuesten Schwachstellen, während gleichzeitig die Ausfallzeiten durch Neustarts von kritischen Produktionsservern reduziert werden.

In diesem Beitrag erfahren Sie alles Wissenswerte über das Live-Patching des Linux-Kernels und die Möglichkeiten, wie IT-Mitarbeiter dadurch Zeit sparen können. Egal, ob Sie ein Neuling oder ein Experte auf dem Gebiet des Live-Patching sind, wir stellen sicher, dass Sie ein umfassendes Verständnis der Art und Weise erlangen, wie Live-Patching Ihrem Unternehmen helfen kann, die Konformität mit den neuesten gesetzlichen Standards zu gewährleisten.

Die Geschichte des Live-Patching

Das erste Beispiel für Live-Patching stammt aus dem Jahr 2008, als Jeff Arnold vom MIT ein automatisches System zur Anwendung von Kernel-Sicherheitspatches ohne Neustart entwickelte. Er nannte das System Ksplice, das später von Oracle aufgekauft wurde. Arnold entwickelte die Lösung, nachdem er festgestellt hatte, dass es schwierig war, Linux-Server am MIT zu aktualisieren, ohne die Studenten zu beeinträchtigen. Während er darauf wartete, einen Patch zu aktualisieren, wurde einer von Arnolds Linux-Servern aufgrund eines ungepatchten Kernels mit bekannten Schwachstellen gefährdet.

Oracle schloss den Quellcode schließlich 2011, sodass Administratoren von den Live-Patching-Funktionen abgeschnitten waren. Aufgrund der Maßnahmen von Oracle waren die Linux-Entwickler gezwungen, Alternativen zu finden, von denen viele ihre eigene Live-Patching-Software entwickelten. Viele kommerzielle Anwendungen sind verfügbar, und diese Lösung ist inzwischen zu einer wichtigen Komponente der Linux-Verwaltung geworden und hat viel Zeit für viel beschäftigte IT-Mitarbeiter freigesetzt.

Was beinhaltet ein Kernel-Patch und wie wird er erstellt?

Aktualisierungen von Software, einschließlich Linux und anderer Betriebssysteme, sind lediglich Änderungen an Dateien einer Basisversion. Jede Aktualisierung wird mit einer Versionsnummer versehen. Bei großen Änderungen wird die Versionsnummer ganzzahlig hochgezählt, z. B. von 1.x auf 2.x. Bei kleinen Patches ändert sich möglicherweise nur der Dezimalwert, z. B. von 1.1 auf 1.2. Anhand dieser Versionswerte können Administratoren erkennen, ob es sich um große oder kleine Patches handelt, und sie erhalten eine allgemeine Vorstellung davon, wie lange es dauern könnte, ein System zu patchen.

Bei einem Patch einer Linux-Distribution ist ein Update eine Textdatei, die die Delta-Änderungen zwischen der aktuell installierten Version und den Dateiänderungen der neuen Version enthält. Linux verwendet das diff-Programm , um diese Änderungen zu identifizieren. Nachdem die Textdatei erstellt wurde, verwenden Sie das Patch-Programm , um die Änderungen anzuwenden und die Betriebssystemdateien zu aktualisieren.

Als Beispiel für ein einfaches Patch-Verfahren nehmen Sie an, dass Sie ein Programm mit einer Datei namens sample.c haben, das auf die neueste Version samplev20.c gepatcht werden muss. Mit dem folgenden diff-Befehl wird eine Patch-Datei mit der neuesten Version 2.0 des Programms erstellt:

diff -u beispiel.c beispielv20.c > beispielupdate.patch

Nachdem Sie die Patch-Datei erstellt haben, können Sie das Programm nun patchen. Mit dem folgenden Patch-Befehl wird das Update angewendet:

patch < sampleupdate.patch

Bei größeren Linux-Patches werden die Änderungen auf der Grundlage eines Codezweigs in einem zentralen Repository vorgenommen. Viele der Patching-Tools von Drittanbietern, die im Abschnitt "Die beste Live-Patching-Software finden" erwähnt werden, machen manuelle Patch-Befehle wie das obige Beispiel überflüssig, aber die grundlegenden Schritte sind dieselben.How to Apply Security Patches to Linux Kernel

Linux-Sicherheits-Patches gehören für Administratoren einfach zum Alltag. Sie werden etwas seltener als andere Patches eingespielt, sind aber wahrscheinlich die kritischsten aller Aktualisierungen. Administratoren müssen das Betriebssystem so schnell wie möglich patchen, da Schwachstellen für Hacker offengelegt werden, die sofort Exploits gegen ungepatchte Systeme entwickeln. Gleichzeitig ist dies ein heikles Verfahren, das fehlerfrei durchgeführt werden sollte, da sonst Fehler zu Ausfallzeiten führen.

Es gibt 3 Möglichkeiten, Ihr Linux-System zu patchen, von denen eine ohne Neustart des Systems durchgeführt werden kann. Wir haben alle drei Möglichkeiten bereits ausführlich beschrieben, aber hier ist ein kurzer Überblick über den Prozess.

 

Anwenden von Sicherheits-Patches auf den Linux-Kernel über die Befehlszeile

Die Verwendung der Kommandozeile ist der einfachste Weg. Die folgende Debian-Befehlssyntax aktualisiert den Kernel:

sudo apt-get upgrade kernel
sudo neu starten

Der folgende Befehl aktualisiert Ubuntu:

sudo apt-get upgrade linux-image-generic
sudo neu starten

Und die folgenden Befehle aktualisieren CentOS oder Red Hat Enterprise Linux (RHEL):

sudo yum Kernel aktualisieren
sudo neu starten

Die Vorteile dieser Methode sind, dass es sich um einen einfachen zweizeiligen Befehl handelt, der keine Installation von Drittanbietern erfordert. Der Nachteil ist, wie Sie dem Befehl entnehmen können, dass Sie einen Neustart benötigen. Bei dieser Methode wird Ihr kritischer Linux-Server für eine gewisse Zeit ausfallen, was bedeutet, dass dies geplant werden muss und die Benutzer über die Ausfallzeit informiert werden müssen.

 

Überspringen des Bootloaders mit kexec

Linux ist in der Lage, den Bootloader und die Hardware-Initialisierungsphase zu überspringen, was die Zeit für einen Neustart erheblich verkürzt. Sie müssen zunächst kexec installieren und dann dieses Tool auf Ihrem Server ausführen. Mit dem folgenden Befehl wird kexec in Ubuntu und Debian installiert:

sudo apt-get install kexec-tools

Der folgende Befehl kann unter CentOS/RHEL verwendet werden:

sudo yum install kexec-tools

Nach der Installation von kexec können Sie nun das Tool zur Installation von Patches ausführen:

sudo yum update kernel
oder
sudo rpm -qa kernel

 

Das Tool kexec zeigt die neueste Version als Ausgabe an. Mit den folgenden Befehlen werden Patches installiert:

sudo kexec -l /boot/vmlinuz-3.10.0-862.3.2.el7.x86_64 
-initrd=/boot/initramfs-3.10.0-862.3.2.el7.x86_64.img 
-reuse-cmdline
sudo sync; sudo umount -a; sudo kexec -e

Nach der Installation von Patches müssen Sie trotzdem neu starten. Die Vorteile dieser Option sind eine schnellere Neustartzeit, aber kexec erfordert viel mehr Eingaben. Wie die meisten Administratoren wissen, kann ein Fehler bei einer Befehlszeilenoption stundenlange Ausfallzeiten bedeuten. Der Nachteil dieser Option besteht darin, dass die Möglichkeit menschlicher Fehler zunimmt.

Sicherheitspatches auf den Linux-Kernel anwenden Rebootless-Tools von Drittanbietern verwenden

Linux-Patching-Tools ohne Neustart beseitigen alle Nachteile der beiden vorherigen Optionen. Das einzige Problem mit vielen der Open-Source-Optionen auf dem Markt ist, dass das Patchen auf eine bestimmte Distribution beschränkt ist. Springen Sie zu diesem Abschnitt, um eine Liste der besten Live-Patching-Software mit den jeweiligen Vor- und Nachteilen zu sehen.

 

Was ist Live-Patching und was ist Patching-Software?

Anstatt eine Patch-Datei manuell zu erstellen, übernimmt Patching-Software den gesamten Overhead für Sie. Diese Programme verkürzen die Zeit, die für das Patchen von Software benötigt wird, und eliminieren die Tipparbeit, die zu menschlichen Fehlern führen kann. Live-Patching geht noch einen Schritt weiter und macht einen Neustart überflüssig, was für Linux-Administratoren eine häufige Herausforderung darstellt.

Für Administratoren ist es immer schwierig, den richtigen Zeitpunkt für Patches zu bestimmen. Es ist wichtig, dass Sicherheitsupdates sofort eingespielt werden, aber Produktionsupdates können nicht einfach nachlässig installiert werden. In der Regel erfordern Aktualisierungen einen Neustart des Systems. Dies bedeutet Ausfallzeiten für Kunden und Mitarbeiter, die die auf dem Server laufenden Anwendungen nutzen müssen. Bei Software-as-a-Service (SaaS) werden Cloud-Anwendungen von Benutzern auf der ganzen Welt genutzt, so dass es für viele Administratoren keine arbeitsfreien Zeiten gibt. Dieses Problem gilt für viele öffentlich zugängliche Webanwendungen.

Mit Live-Patching können Administratoren kritische Linux-Server ohne Neustart patchen, d. h. keine Ausfallzeiten mehr. Ein Beispiel für Live-Patching finden Sie in unserem Live-Patching-Tutorial für Oracle Enterprise Linux 7.

 

Die beste Live-Patching-Software finden

Sie könnten das Rad neu erfinden und Ihre eigene Live-Patching-Software entwickeln, aber die beste Möglichkeit, schnell zu einem rebootfreien Prozess zu gelangen, ist die Verwendung von Tools von Drittanbietern. Im Folgenden finden Sie eine Liste von Live-Patching-Software mit den Vor- und Nachteilen der einzelnen Programme.

 

Die folgenden Tools stehen für das rebootlose Patchen zur Verfügung:

  • Ksplice von Oracle (für Oracle Linux-Updates, Ksplice Uptrack für Unternehmen)
  • Kpatch von Red Hat (für RHEL-Kernel-Aktualisierungen und CentOS-Aktualisierungen)
  • Livepatch von Canonical (für Ubuntu-Kernel-Aktualisierungen)
  • Kgraft von SUSE (nur für SUSE-Updates)
  • KernelCare Unternehmen (für alle gängigen Linux-Distributionen)

Beachten Sie, dass der letzte Punkt in der obigen Liste für alle Linux-Distributionen verfügbar ist. Er ist also die beste Option für Linux-Updates ohne Neustart in einer Umgebung, in der mehrere Distributionen in Produktion sind.

Holen Sie sich eine KOSTENLOSE Testversion von KernelCare Enterprise 

 

 

Kspliceksplice_logo

Wie bereits erwähnt, ist Ksplice die ursprüngliche rebootlose Patching-Anwendung. Jetzt ist sie nur noch auf Oracle- und Red-Hat-Distributionen beschränkt und erfordert eine Lizenz, um sie zu nutzen. Der einzige Vorteil dieser Software ist, dass sie Linux automatisch aktualisiert. Mit den folgenden Befehlen können Sie es auf Ihrem Linux-System installieren:

sudo wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc
sudo sh install-uptrack-oc -autoinstall

 

 

Kpatcheb5c4d17e2b04c612fba7bae31a08c59

Kpatch wurde 2014 veröffentlicht und ist nur für Red Hat-Distributionen geeignet. Es wurde portiert, um auf CentOS und Fedora und einigen Debian-Systemen wie Ubuntu zu funktionieren. Der Nachteil dieser Anwendung ist, dass die Patches nicht automatisch erfolgen. Das bedeutet, dass die Patchesoftware immer noch von Administratoren ausgelöst werden muss, was sie für Unternehmenssysteme mit Dutzenden von zu verwaltenden Servern weniger wertvoll macht.

 

Mit dem folgenden Befehl wird Kpatch installiert:

sudo yum install kpatch
sudo yum install kpatch-patch-X.X.X.el7.x86_64.rpm

 

 

Livepatch1200px-Kanonisches_Logo.svg

Livepatch aktualisiert den Linux-Kernel automatisch, ohne dass ein Neustart erforderlich ist. Es ist außerdem anpassbar, sodass Administratoren ihre eigenen Patch-Anweisungen erstellen können. Der Nachteil dieser Live-Patching-Software ist, dass sie nur mit nicht komplexen Patches funktioniert und nur eine begrenzte Anzahl von Hosts unterstützt, was dieses Tool auch für Unternehmensadministratoren unattraktiv macht.

 

Mit dem folgenden Befehl wird Livepatch installiert:

sudo snap install canonical-livepatch
sudo canonical-livepatch aktivieren [TOKEN]

Das Argument [TOKEN] erfordert einen bei der Registrierung angegebenen Wert. Sie können ein Registrierungs-Token hier erhalten.

 

 

Kgraftsuse_logo_color

SUSE Linux Enterprise Server 12 enthält die integrierte Live-Patching-Komponente Kgraft. Eine Installation ist nicht erforderlich, sodass Administratoren die Software ohne Änderungen an den Produktionsservern nutzen können. Die Software unterstützt jedoch nur SUSE Linux und ist kommerziell, d. h. nach der 60-tägigen Testphase fallen Lizenzgebühren an.

 

 

KernelCareKopie des Firmenlogos von cl (1)

CloudLinux KernelCare bietet alle Vorteile, die sich Administratoren von einer Live-Patching-Anwendung wünschen, und unterstützt eine breite Palette von Linux-Distributionen. KernelCare unterstützt CentOS, Red Hat, Oracle, Debian, Ubuntu und einige andere. Das Live-Patching erfolgt automatisch und kann einfache und komplexe Aktualisierungen des Betriebssystems verarbeiten. Administratoren können ihre eigenen Patch-Updates anpassen, um bestimmte kritische Schwachstellen sofort zu beheben und weniger schwerwiegende Probleme, die keine Auswirkungen auf das Unternehmen haben, hinauszuzögern.

 

Einige Vorteile der Verwendung von KernelCare gegenüber anderen Lösungen sind:

 

  • Rebootless Patching für die neuesten und komplexesten Sicherheitslücken in freier Wildbahn.
  • Unterstützt unternehmensweite Server mit mehreren Hosts.
  • Rollback-Optionen ohne Neustart.
  • Anpassen des Patchings durch Datumsangaben und Versionierung.
  • Verzögern Sie bestimmte Patches, während Sie kritische Schwachstellen sofort ausbessern.
  • Entfernen Sie bestimmte Patches.

 

Um KernelCare zu installieren, verwenden Sie die folgenden Befehle:

wget -qq -O -- https://kernelcare.com/installer | bash
sudo /usr/bin/kcarectl --register <your key>

Den Schlüssel erhalten Sie, indem Sie sich auf dem CloudLinux-Dashboard authentifizieren und die Software nach der 30-tägigen Testphase registrieren.

 

Schlussfolgerung

Vielbeschäftigte Linux-Administratoren, die für Dutzende von Unternehmensservern verantwortlich sind, könnten Stunden damit verbringen, sicherzustellen, dass Patches installiert sind. Das ist ein Vollzeitjob, aber das muss nicht sein. Live-Patching nimmt den Administratoren einen Großteil der Arbeit ab, die mit Linux-Updates verbunden ist, und spart somit Zeit und dem Unternehmen Geld.

Sie müssen sich nicht gleich für eine Lösung entscheiden, aber CloudLinux KernelCare hat die meisten Vorteile gegenüber anderen Lösungen. Wenn Sie mehr über Live-Patching erfahren möchten, kontaktieren Sie uns für weitere Informationen.

Möchten Sie das Patchen von Sicherheitslücken ohne Kernel-Neustart, Systemausfallzeiten oder geplante Wartungsfenster automatisieren?

Erfahren Sie mehr über Live-Patching mit TuxCare

Werden Sie ein TuxCare-Gastautor

Los geht's

E-Mail

Beitreten

4,500

Linux & Open Source
Fachleute!

Abonnieren Sie
unseren Newsletter