In diesem Artikel erfahren Sie, was Live-Patching für den Linux-Kernel ist, wie es die Betriebszeit sicherstellt, welche 5 Tools Ihnen dabei helfen, Server jahrelang zu betreiben - ohne Neustarts, und welche Vor- und Nachteile sie haben jedes Werkzeug.
In IT-Organisationen gibt es Prozesse und Praktiken, die so routinemäßig sind, dass sie unsichtbar sind. Es spielt keine Rolle, ob solche Prozesse und Praktiken fehlerhaft sind oder es einen besseren Weg gibt:Wenn etwas einige Jahre funktioniert hat, hört man auf, nach Alternativen zu suchen. Dies beschreibt perfekt aktuelle Ansätze zum Kernel-Patching .
Momentan patchen die meisten Organisationen die Server, indem sie Neustartzyklen planen. Da das Neustarten der Serverflotte Kopfschmerzen verursacht und Ausfallzeiten verursacht, verschieben die Leute es so lange wie möglich. Das bedeutet, dass Patches nicht so früh wie möglich angewendet werden. Diese Lücke zwischen der Ausgabe des Patches und seiner Anwendung bedeutet Risiken, Fehlverhalten und kann zu Nichteinhaltung führen.
Dieser Standardansatz zum Kernel-Patching setzt Server böswilligen Absichten von Bedrohungsakteuren auf mehreren Angriffsvektoren aus, wodurch IT-Organisationen großen Sicherheitsrisiken ausgesetzt werden. Jeder, der damit beauftragt ist, sein Unternehmen vor Cyberangriffen zu schützen, sollte nach einer besseren Möglichkeit suchen, Linux-Server ohne Neustart (idealerweise jahrelang) auszuführen.
Warum es Live-Patching gibt
Im Jahr 2009 verzögerte ein MIT-Student, der einen Webserver verwaltete, das Patchen des Linux-Kernels des Servers, weil die Anwendung des Patches einen Neustart erfordert hätte, der seine Benutzer belästigt hätte. Während der Verzögerung wurde der Server gehackt. Dies inspirierte den Studenten Jeff Arnold , um zu versuchen und einen Weg zu entwickeln, einen Linux-Kernel zu patchen, ohne den Server neu zu starten.
Er tat sich mit drei anderen Studenten zusammen, um Ksplice zu entwickeln , das erste „neustartlose“ Softwaretool zum Patchen von Linux-Kerneln. Sie gründeten ein Unternehmen, um für ihr neues Produkt zu werben, das von Oracle übernommen wurde. Als Oracle Ksplice in seine eigene Distribution, Oracle Linux, integrierte, begannen andere Linux-Anbieter mit der Arbeit an ihren eigenen Live-Patching-Systemen.
Das liegt daran, dass Live-Patching – das Anwenden von Sicherheitspatches auf einen laufenden Server, ohne dass ein Neustart erforderlich ist – wertvolle Funktionen für Organisationen bietet, die mehrere Server verwalten:
- Kontinuierlicher Serverbetrieb ohne Neustarts. Das bedeutet wenig oder keine Ausfallzeit.
- Automatisierung von Patching-bezogenen Aufgaben. Dadurch werden Support-Mitarbeiter für andere Aufgaben frei.
- Sofortige Anwendung neuer Patches. Dadurch werden Server-Schwachstellen erheblich reduziert.
So funktioniert Linux Kernel Live Patching
Es gibt zwei grundlegende Methoden zum Live-Patching eines Linux-Kernels:temporär und beständig . Die temporäre Methode wendet einen Patch ohne Neustart an, erfordert jedoch später einen Neustart des Servers. Persistentes Live-Patching erfordert überhaupt keinen Neustart.
Die temporäre Methode
Die temporäre Methode des Live-Patchings erfordert die Installation von Paketverwaltungssoftware (z. B. dem YUM-Plug-in) auf dem Server. Wenn Patches an Repositorys geliefert werden, werden sie gemäß den vom Benutzer angegebenen Update-Workflows angewendet.
Diese Methode ist in einigen Linux-OS-Distributionen und in den Supportverträgen einiger Anbieter enthalten. Es sollte jedoch nicht als kostenlos oder kostengünstig angesehen werden, da es Zeit- und Ärgerkosten mit sich bringt, die im Voraus nicht ersichtlich sind.
Die temporäre Methode, auch „Stack“-Patching genannt, beinhaltet Serverneustarts und Ausfallzeiten. Das liegt daran, dass sich temporäre Patches im Laufe der Zeit übereinander stapeln und die Leistung und Stabilität beeinträchtigen. Die einzige Lösung für dieses Problem besteht darin, den Server neu zu starten, um einen frischen Kernel in den Speicher zu laden.
Die dauerhafte Methode
Mit der persistenten Methode Beim Live-Patching speichert ein dedizierter Patch-Server die neuesten Patches. Diese Patches sind „monolithisch“, nicht temporär, da sie frühere Patches enthalten. Auf den zu patchenden Webservern läuft im Hintergrund ein Agentenprogramm, das den Patchserver regelmäßig auf Patches überprüft. Auf Anweisung des Agenten führt ein Kernelmodul den Patch durch.
Bei dieser Methode fallen Lizenzgebühren des Anbieters an, aber diese Gebühren können überraschend niedrig sein. Durch das Ersetzen manueller Arbeit durch automatisierte Prozesse reduziert die persistente Methode außerdem den Zeit- und Arbeitsaufwand für die Verwaltung von Servern. Da es überhaupt keine Neustarts erfordert, können die Server am wichtigsten bleiben, manchmal über Jahre hinweg.
Persistentes Live-Patching bietet auch andere wichtige Vorteile. Sogar bei Hardware-Schwachstellen, die normalerweise Neustarts erfordern, um sie zu beheben, wie z. B. Spectre , Kernschmelze und Zombieload , Server, die die persistente Methode verwenden, bleiben betriebsbereit. Außerdem funktioniert es mit Schwachstellen-Scannern, was für die Einhaltung von Sicherheitsstandards wie SOC2 wichtig ist.
Empfohlener Text:
- So suchen Sie nach Meltdown- und Spectre-Schwachstellen und patchen sie in Linux
5 Linux-Kernel-Live-Patching-Systeme, die dabei helfen, Linux-Server ohne Neustart auszuführen
Es gibt verschiedene Kernel-Live-Patching-Systeme von verschiedenen Anbietern, von denen die meisten für die Verwendung mit einer bestimmten Linux-Distribution gedacht sind:
Oracle Ksplice
Ksplice ist das ursprüngliche „rebootless“ Linux-Kernel-Patching-System, das 2009 entwickelt und 2011 von Oracle erworben wurde. Es funktioniert jetzt nur mit Oracle Linux und RHEL mit einer Oracle-Lizenz. Es fehlt eine Planungsfunktion, aber es werden automatische Patch-Updates durchgeführt, ohne dass ein Neustart erforderlich ist.
RedHat Kpatch
Kpatch wurde von Red Hat entwickelt, um auf seiner eigenen Linux-Distribution zu funktionieren, obwohl es auf Fedora, CentOS und Debian-basierte Systeme wie Ubuntu und Gentoo portiert werden kann. Es ist nicht automatisiert:Bei Kpatch muss ein Administrator Patches manuell prüfen und anwenden.
SUSE Kgraft
Kgraft ist das Live-Patching-System von SUSE und funktioniert nur mit dem eigenen Linux Enterprise Server von SUSE. Im Gegensatz zu anderen Systemen stoppt Kgraft keine Kernelfunktionen, während Patches angewendet werden. Stattdessen überwacht es Funktionen, damit es alle Patches in einem einzigen Systemaufruf anwenden kann.
Ubuntu-Livepatch
Livepatch wurde von Canonical erstellt, dem Unternehmen, das Ubuntu entwickelt. Es ist einzigartig unter Live-Patching-Systemen, da es Administratoren ermöglicht, ihre eigenen benutzerdefinierten Kernel-Patches zu erstellen. Es funktioniert natürlich unter Ubuntu, aber auch unter Red Hat Enterprise Linux.
KernelCare
KernelCare, entwickelt von CloudLinux, funktioniert mit den gängigsten Distributionen wie CentOS, RHEL, Oracle Linux, Amazon Linux, Debian und Ubuntu. Es ist automatisiert, einfach zu installieren, handhabt komplexe Patches und bietet benutzerdefinierte Patches und Patches mit festem Datum, um bestimmte Anforderungen zu erfüllen.
Funktions- und Preisvergleich
Patch-Funktionen
KernelCare | Oracle Ksplice | Red Hat Kpatch | SUSE Kgraft | Ubuntu-Livepatch | |
Patchset-Verteilung | Einzelnes Patchset für alle Patches | Jedes ist ein separates Modul | Jedes ist ein separates Modul | Jedes ist ein separates Modul | Einzelnes Patchset für alle Patches |
Zeitpunkt der Veröffentlichung | Vor oder kurz nach der Basisdistribution | Nach dem Patch in der Basis-Distribution | Nichts angegeben | Entspricht den SUSE-Veröffentlichungszyklen | Entspricht den Veröffentlichungszyklen von UBUNTU |
Glibc-Patching | Ja | Ja | Nein | Nein | Nein |
OpenSSL-Patching | Ja | Ja | Nein | Nein | Nein |
Benutzerdefinierte Patches | Ja | Nein | Ja | Ja | Nein |
Kompatibilität &Implementierung
KernelCare | Oracle Ksplice | Red Hat Kpatch | SUSE Kgraft | Ubuntu-Livepatch | |
Unterstützt ältere Kernel? | Ja | Ja | Nein | Nein | Nein |
32-Bit-Unterstützung? | Benutzerdefiniert | Ja | Nein | Nein | Nein |
API verfügbar? | Ja | Ja | Nein | Ja | Ja |
Rollback-Funktionalität? | Ja | Ja | Nein | Nein | Nein |
Funktioniert hinter einer Firewall? | Ja | Ja | Ja | Ja | Ja |
Unterstützte Distributionen
Oracle Ksplice | Oracle Linux, Fedora 25-27, Ubuntu Desktop 14.04-17.10 |
Red Hat Kpatch | Red Hat Enterprise Linux, Ubuntu, Debian, Gentoo |
SUSE Kgraft | SUSE |
Ubuntu-Livepatch | Ubuntu |
KernelCare | CloudLinux OS, Amazon Linux 1 &2, CentOS, Debian, OpenVZ, Oracle Enterprise Linux, Oracle UEK, Proxmox VE, Red Hat Enterprise Linux, Ubuntu, Ubuntu Core, Virtuozzo , Xen4 CentOS, Yokto |
Preise pro Server
Oracle Ksplice | 2299 $ (1399 $) pro Server und Jahr:die Kosten für ein Oracle Linux Premier- oder (eingeschränktes) Support-Abonnement |
Red Hat Kpatch | 1299 $ pro Server und Jahr:die Kosten für ein RHEL Premium-Supportabonnement |
SUSE Kgraft | 2.198 $ pro Server und Jahr:die kombinierten Kosten für den Live-Patch-Service (699 $) und das Priority-Serverabonnement (1.499 $) |
Ubuntu-Livepatch | 225 $ pro Server und Jahr, 75 $/Jahr für virtuelle Maschinen:die Kosten für ein Ubuntu Advantage-Supportabonnement |
KernelCare | 27 $ pro Server und Jahr für eine Serverlizenz von über 500. |
Verwandte Lektüre
- Veraltete gemeinsam genutzte Bibliotheken im Arbeitsspeicher mit Uchecker erkennen
Welches Linux-Kernel-Live-Patch-System ist das Beste für Sie?
Für ein Unternehmen, das Webserver intern betreibt, mit einer großen Anzahl von Systemadministratoren, standardisierten Systemen und bestehenden Supportverträgen mit Oracle, Red Hat oder SUSE, können die Vorteile der Verwendung der enthaltenen Patch-Systeme überwiegen Kosten. Die regelmäßige Interaktion mit den Support-Operationen dieser Anbieter kann dabei helfen, ihre eigenen zu optimieren.
Für eine Organisation, die auf Ubuntu standardisierte Webserver betreibt, ist das im Support-Abonnement enthaltene Livepatch-System eine gute Wahl. Das System ist solide und die Kosten sind im Vergleich zu den oben genannten Supportverträgen niedrig.
Für ein Unternehmen mit einer großen Serverflotte, die verschiedene Linux-Distributionen umfasst, ist das KernelCare-System die einzig praktikable Option. Es ist auch eine gute Wahl für Unternehmen, denen es auf Kosten und Effizienz ankommt, da es automatisiertes, flexibles Patchen zu geringen Kosten bietet.
Für ein Unternehmen, das internetfähige Geräte als Teil des „Internets der Dinge“ betreibt, ist KernelCare die einzige Option. Die Mehrheit dieser Geräte verwendet Linux-Container, und wenn sie gehackt werden, kann dies tödliche Folgen haben, daher ist es wichtig, ihre Kernel gepatcht zu halten. Durch das schnelle Release-Timing von Patches im KernelCare-System eignet es sich gut für IoT-Anwendungen.
Verwandte Lektüre:
- Verschiedene Möglichkeiten zum Aktualisieren des Linux-Kernels für Ubuntu
Verwenden Sie derzeit eines der oben genannten Live-Patching-Systeme? Bitte teilen Sie Ihre Gedanken im Kommentarbereich unten mit.