GNU/Linux >> LINUX-Kenntnisse >  >> Linux

5 Kernel-Live-Patching-Tools, mit denen Linux-Server ohne Neustarts ausgeführt werden können

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.


Linux
  1. Führen Sie Container unter Linux ohne sudo in Podman aus

  2. Linux-Kernel-Module, ohne die wir nicht leben können

  3. Linux-Kernel-Live-Patching auf Ubuntu 20.04 LTS

  4. So richten Sie automatische Kernel-Updates ohne Neustart auf einem Linux-Server ein

  5. Kernel-Updates ohne Neustart

11 Linux-Befehle, ohne die ich nicht leben kann

HOWTO:Führen Sie Linux auf Android ohne Root aus

Linux – Diagramm des Linux-Kernels vs. Performance-Tools?

Live-Patching von Ubuntu Server, damit Sie ihn nicht neu starten müssen

30 interessante Tools und Dienste zur Überwachung Ihrer Linux-Server

Verwenden von Ajenti beim Verwalten von Linux-Servern