Kernel Live Patching unter SUSE Linux Enterprise Server
- WAS?
Verstehen und Verwenden von Kernel Live Patching in SUSE Linux Enterprise Server.
- WARUM?
Weil Sie unternehmenskritische Systeme ohne Ausfallzeiten sichern wollen.
- AUFWAND
20 Minuten Lesedauer.
- ZIEL
Verstehen, wie Kernel Live Patching funktioniert.
- ANFORDERUNGEN
Arbeitsfähiges Verständnis von Linux.
1 Einführung in Kernel Live Patching #
Mit Kernel Live Patching (KLP) können die neuesten Sicherheitsaktualisierungen ohne Neustart auf Linux-Kernel angewendet werden. So erzielen Sie die maximale Betriebszeit und Verfügbarkeit des Systems, was insbesondere bei unternehmenswichtigen Systemen von Bedeutung ist. KLP bietet daher mehrere Vorteile.
Wenn Unternehmen bestimmte Compliance-Zertifizierungen beantragen oder beibehalten möchten, sind sie darauf angewiesen, eine große Anzahl an Servern automatisch auf dem neuesten Stand zu halten. KLP kann dazu beitragen, die Compliance zu erzielen und gleichzeitig den Bedarf an Wartungsfenstern zu senken.
Unternehmen, die mit Verträgen zur Vereinbarung zum Servicelevel arbeiten, müssen für Ihr System ein bestimmtes Maß an Verfügbarkeit und Betriebszeit garantieren. Mit Live Patching ist es möglich, Systeme ohne Ausfallzeiten zu patchen.
KLP ist Teil des standardmäßigen Systemaktualisierungsmechanismus, sodass keine besondere Schulung oder Einführung zusätzlicher Wartungsroutinen anfällt.
1.1 Umfang des Kernel Live Patching #
SLES Live Patching umfasst Fehlerbehebungen für SUSE-Sicherheitsanfälligkeiten (Common Vulnerability Scoring System, CVSS) ab Stufe 7 sowie Fehlerbehebungen hinsichtlich der Systemstabilität oder Datenbeschädigung. Es ist jedoch nicht in jedem Fall technisch praktikabel, Live-Patches für alle Fehlerbehebungen in den angegebenen Kategorien zu erstellen. SUSE behält sich daher das Recht vor, Fehlerbehebungen in Situationen zu überspringen, in denen ein Kernel-Live-Patch aus technischen Gründen nicht möglich ist. Derzeit werden mehr als 95 % der geeigneten Fehlerbehebungen als Live-Patches bereitgestellt. SUSE CVSS basiert auf dem CVSS v3.0-System. Weitere Informationen zum CVSS finden Sie unter Common Vulnerability Scoring System SIG.
1.2 Einschränkungen des Kernel Live Patching #
Kernel Live Patching (KLP) umfasst das Ersetzen von Funktionen und das ordnungsgemäße Verarbeiten des Austauschs von voneinander abhängigen Funktionssätzen. Hierbei werden Aufrufe von älterem Code an aktualisierten Code weitergeleitet, der sich an einem anderen Speicherort befindet. Änderungen in den Datenstrukturen erschweren die Situation, da die Daten beibehalten werden und nicht erweitert oder neu interpretiert werden können. Es gibt zwar einige Methoden für die indirekte Veränderung von Datenstrukturen, doch bestimmte Fehlerbehebungen können nicht in Live-Patches konvertiert werden. In dieser Situation ist ein Neustart des Systems die einzige Möglichkeit, die Fehlerbehebungen anzuwenden.
2 Verstehen von Kernel-Live-Patches #
Kernel-Live-Patches werden im Rahmen von regulären Systemaktualisierungen installiert. Kernel-Live-Patches werden in Form von Paketen mit modifiziertem Code bereitgestellt, die vom Kernel-Hauptpaket getrennt sind. Die Live-Patches sind kumulativ; der jeweils neueste Patch enthält also alle Fehlerbehebungen aus den vorhergehenden Patches für das Kernel-Paket. Jedes Kernel-Live-Paket ist an die genaue Kernel-Version gebunden, für die es ausgegeben wird. Die Versionsnummer des Live-Patch-Pakets erhöht sich bei jedem Hinzufügen von Fehlerbehebungen. Um den Kernel-Patching-Status zu bestimmen, verwenden Sie das Kommando klp -v patches.
Live-Patches enthalten nur wichtige Korrekturen und ersetzen keine regulären Kernel-Updates, die einen Neustart erfordern. Betrachten Sie Live-Patches als vorübergehende Maßnahmen, die den Kernel schützen, bis ein ordnungsgemäßes Kernel-Update und ein Neustart vorgenommen werden.
Das folgende Diagramm veranschaulicht die allgemeine Beziehung zwischen Live-Patches und Kernel-Updates. Die Liste der CVEs (Common Vulnerabilities and Exposures) und Fehlerberichte, die vom derzeit aktiven Live-Patch behoben wurden, kann mit dem Kommando klp
-v patches angezeigt werden.
Es ist möglich, mehrere Versionen des Kernel-Pakets zusammen mit den jeweiligen Live-Patches zu installieren. Diese Pakete lösen keine Konflikte aus. Sie können aktualisierte Kernel-Paket zusammen mit Live-Patches für den ausgeführten Kernel installieren. In diesem Fall werden Sie möglicherweise aufgefordert, das System neu zu starten. Benutzer mit SLES Live Patching-Abonnements haben Anspruch auf technischen Support, solange Live-Patch-Aktualisierungen für den ausgeführten Kernel vorliegen.
Wenn KLP aktiviert ist, umfasst jede Kernel-Aktualisierung auch ein Live-Patch-Paket. Dieser Live-Patch enthält keine Korrekturen und dient als Seed für zukünftige Live-Patches für den entsprechenden Kernel. Diese leeren, grundlegenden Patches werden als initial patches bezeichnet.
Denken Sie daran: Es können zwar mehrere Kernel-Pakete auf dem System installiert sein, doch es kann immer nur eines dieser Pakete ausgeführt werden, nicht mehrere Pakete gleichzeitig. Ebenso können mehrere Live-Patch-Pakete installiert sein, doch es wird immer nur ein Live-Patch in den Kernel geladen.
Der aktive Live-Patch ist in der initrd enthalten. Bei einem unvorhergesehenen Neustart fährt das System also mit den angewendeten Live-Patches hoch, sodass Sie das Patching nicht wiederholen müssen.
3 Aktivieren von Kernel Live Patching über die Kommandozeile #
Kernel Live Patching ist im standardmäßigen SLES-Abonnement enthalten. Um die Funktion zu verwenden, müssen Sie das folgende Schema installieren:
#zypper install -t pattern lp_sles
Zu diesem Zeitpunkt sind die Live-Patches für das System bereits angewendet.
So funktioniert der Prozess hinter den Kulissen: Wenn das Paketinstallationssystem erkennt, dass ein installierter Kernel vorhanden ist, der live gepatcht werden kann, und dass ein Live-Patch dafür im Software-Kanal vorhanden ist, wählt das System den Live-Patch für die Installation aus. Der Kernel erhält dann die Live-Patch-Fehlerbehebungen als Teil der Paketinstallation. Der Live-Patch für den Kernel wird noch vor Abschluss der Produktinstallation durchgeführt.
4 Fehlerbehebung bei Kernel Live Patching-Problemen #
4.1 Prüfen des Ablaufdatums des Live-Patches #
Stellen Sie sicher, dass das lifecycle-data-sle-module-live-patching installiert ist, und führen Sie dann das Kommando zypper lifecycle aus. Im Abschnitt Package end of support
if different from product der Ausgabe sehen Sie das Ablaufdatum für den jeweiligen Live-Patch.
Jeder Live-Patch wird 13 Monate ab Veröffentlichung des zugrunde liegenden Kernel-Pakets aktualisiert. Auf der Seite Maintained kernels, patch updates and lifecycle können Sie das Ablaufdatum anhand der ausgeführten Kernel-Version prüfen, ohne die Produkterweiterung zu installieren.
4.2 Prüfen der installierten Kernel-Live-Patch-Pakete #
Der Kernel ist live-gepatcht, wenn ein kernel-livepatch-*-Paket für den aktuellen Kernel installiert wurde. Mit dem Kommando zypper se --details kernel-livepatch-* können Sie prüfen, welche Kernel-Live-Patch-Pakete auf Ihrem System installiert sind.
4.3 Verhindern eines Neustarts #
Wenn das Paket kernel-default installiert ist, fordert der Update-Manager Sie auf, das System neu zu starten. Damit diese Meldung nicht angezeigt wird, können Sie Kernel-Aktualisierungen aus dem Patching-Vorgang herausfiltern. Hierzu können Sie Paketsperren mit Zypper hinzufügen.
4.4 Patching-Status prüfen #
Sie können den Patching-Status mit dem Kommando klp status prüfen. Zur Untersuchung installierter Patches führen Sie das Kommando klp -v
patches aus.
4.5 Downgrade eines Kernel-Patches #
Wenn der neueste Live-Patch Probleme verursacht, können Sie ein Downgrade des aktuell installierten Live-Patches auf die vorhergehende Version durchführen. Denken Sie daran, dass ein System mit Kernel-Warnungen oder Kernel-Fehlerspuren im Systemprotokoll unter Umständen nicht für das Patch-Downgrade-Verfahren geeignet ist. Wenn Sie nicht sicher sind, ob das System die Anforderungen für ein Patch-Downgrade erfüllt, fragen Sie den technischen Support von SUSE.
Verwenden Sie das Kommando klp
downgrade, um ein Downgrade für den neuesten Kernel-Live-Patch durchzuführen. Dieses Kommando erkennt automatisch die Version des letzten Live-Patches und installiert den vorhergehenden.
5 Rechtliche Hinweise #
Copyright © 2006–2025 , SUSE LLC und Mitwirkende. Alle Rechte vorbehalten.
Es wird die Genehmigung erteilt, dieses Dokument unter den Bedingungen der GNU Free Documentation License, Version 1.2 oder (optional) Version 1.3 zu vervielfältigen, zu verbreiten und/oder zu verändern; die unveränderlichen Abschnitte hierbei sind der Urheberrechtshinweis und die Lizenzbedingungen. Eine Kopie dieser Lizenz (Version 1.2) finden Sie in Abschnitt „GNU Free Documentation License“.
Die SUSE Marken finden Sie in https://www.suse.com/company/legal/. Alle anderen Marken von Drittanbietern sind Besitz ihrer jeweiligen Eigentümer. Markensymbole (®, ™ usw.) kennzeichnen Marken von SUSE und ihren Tochtergesellschaften. Sternchen (*) kennzeichnen Marken von Drittanbietern.
Alle Informationen in diesem Buch wurden mit größter Sorgfalt zusammengestellt. Auch hierdurch kann jedoch keine hundertprozentige Richtigkeit gewährleistet werden. Weder SUSE LLC noch ihre Tochtergesellschaften noch die Autoren noch die Übersetzer können für mögliche Fehler und deren Folgen haftbar gemacht werden.
