ClickCease Wie man Sicherheits-Patches für den Linux-Kernel anwendet: 3 verschiedene Wege

Inhaltsübersicht

Abonnieren Sie unseren beliebten Newsletter

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

2x im Monat. Kein Spam.

Wie man Sicherheits-Patches für den Linux-Kernel anwendet: 3 verschiedene Wege (2024)

von Rohan Timalsina

5. August 2024. TuxCare-Expertenteam

  • So wie ein starkes Fundament für ein Gebäude unerlässlich ist, ist ein sicherer Kernel für ein sicheres Linux-System unerlässlich. 
  • Live-Patching ermöglicht die Anwendung von Sicherheits-Patches auf einen laufenden Kernel, ohne dass ein Neustart erforderlich ist, was die Ausfallzeiten für kritische Systeme erheblich reduziert.
  • Ungepatchte Kernel können Ihre Systeme bekannten Schwachstellen aussetzen, was das Risiko von Sicherheitsvorfällen wie Datenschutzverletzungen oder unbefugtem Zugriff erhöht.

Linux-Kernel-Updates sind eine Tatsache des Lebens. Sie sind so langweilig wie Steuern und machen ungefähr so viel Spaß wie ein Besuch beim Zahnarzt. Aber Systemadministratoren müssen ständig Patches bereitstellen: Neu entdeckte Sicherheitslücken im Linux-Kernel scheinen mit monotoner Regelmäßigkeit aufzutauchen. In den meisten, aber nicht allen Fällen folgen die Patches, die zur Behebung dieser Schwachstellen erforderlich sind, sehr schnell.

Die Installation der neuesten Sicherheits-Patches für den Linux-Kernel ist mit viel Arbeit verbunden, und die praktischen Gegebenheiten können dazu führen, dass sich die Patches verzögern. Wenn Sie jedoch zu lange warten, geben Sie Bedrohungsakteuren die Möglichkeit, eine ungepatchte Sicherheitslücke auszunutzen.

 

Deshalb ist es so wichtig, den besten Weg zu finden, um so schnell wie möglich zu flicken.

 

Die Beliebtheit von Linux als Plattform für Webhosting-Dienste, eigenständige Webserver und Webanwendungen macht es zu einem bevorzugten Ziel. Hacker verwenden Techniken wie Remote Code Execution (RCE), Cross-Site-Scripting (XSS) und Denial-of-Service-Angriffe (DoS).

Linux-Instanzen mit den neuesten Patches für das Betriebssystem und die Anwendungssoftware auf dem neuesten Stand zu halten, ist eine der effektivsten Methoden, um die Systemsicherheit zu stärken und sich vor dieser Art von Cyber-Bedrohungen zu schützen. 

Dies ist jedoch eine störende und zeitaufwändige Aufgabe, da die meisten Kernel-Upgrades und Sicherheits-Patches für Linux oft einen Neustart des Systems erfordern. Dieser Artikel erklärt, wie Sie den Linux-Kernel ohne Neustart aktualisieren können. Außerdem werden drei verschiedene Methoden zur Anwendung von Sicherheitspatches für den Linux-Kernel vorgestellt. Diese Methoden sind:

 

  • über die Befehlszeile
  • mit Kexec

 

1. Traditionelle Befehlszeilen-Updates

 

Dies ist die Standardmethode, um einen Linux-Kernel-Sicherheitspatch über das Repository des Distributionsanbieters anzuwenden. Diese Methode finden Sie am ehesten in der Dokumentation des Herstellers. Viele Distributionen bieten jedoch inzwischen benutzerfreundliche grafische Paketmanager an, die den Aktualisierungsprozess vereinfachen.

 

Unter Ubuntu können Sie diese Befehle im Terminal verwenden.

 

sudo apt update

sudo apt upgrade linux-image-generic 

sudo neu starten

 

Unter Debian verwenden Sie:

 

sudo apt upgrade linux-image

sudo reboot

 

Für jede RPM-basierte Distribution, einschließlich CentOS und Red Hat Enterprise Linux (RHEL), verwenden Sie dies:

 

sudo yum update kernel
sudo Neustart

 

So weit, so einfach. Aber es gibt einen Haken: Der Kernel-Patch wird erst nach einem Neustart wirksam.

Neustart? Ja. Sie müssen Ihre Benutzer abmelden, Ihre Dateien speichern und Prozesse schließen - auch auf die Gefahr hin, dass Sie damit viele Leute sehr unglücklich machen. Zum Beispiel jemand, der gerade einen Kauf auf Ihrer Website tätigt. Anschließend müssen Sie warten, bis Ihr Linux-Server wieder hochgefahren ist und seinen vorherigen Zustand wiederhergestellt hat. 

Wie lange dauert es, bis Ihre Server wieder einsatzbereit sind? Werden Kunden und andere Beteiligte das merken? Selbst wenn das Risiko gering ist, dass sie es bemerken, müssen Sie sie informieren, bevor Sie den Kernel-Patch installieren.

Dies ist ein Grund, warum viele Systemadministratoren die Installation von Patches aufschieben, um Ausfallzeiten zu vermeiden, aber die Systemsicherheit zu gefährden.

 

PROS: Keine Installation. Unkomplizierter Prozess.

CONS: Nicht automatisch. Neustart erforderlich.

 

2. kexec: Schnellere Reboots

 

Wenn ein Linux-Kernel-Sicherheitspatch angewendet wird, ist normalerweise ein Neustart erforderlich, um den neuen gepatchten Kernel zu laden. Sie können diesen Neustartvorgang beschleunigen, indem Sie kexecverwenden, eine Funktion des Linux-Kernels, mit der Sie direkt in einen neuen Kernel booten können, ohne den Bootloader und die Hardware-Initialisierungsphase zu durchlaufen.

Um es zu verwenden, müssen Sie zunächst kexec-tools installieren.

 

Unter Ubuntu/Debian:

 

sudo apt install kexec-tools

 

Es wird ein Konfigurationsfenster angezeigt, das in etwa so aussieht:

 

Unter CentOS/RHEL:

 

sudo yum install kexec-tools

 

Installieren Sie nun den neuen Kernel. Listen Sie die Kernel auf und wählen Sie dann den gewünschten Kernel aus:

 

sudo yum update kernel

oder

 

sudo rpm -qa kernel

 

Die Ausgabe sollte in etwa so aussehen:

 

kernel-3.10.0-514.26.1.el7.x86_64 

kernel-3.10.0-862.3.2.el7.x86_64

 

Booten Sie nun mit der von Ihnen gewählten Kernelversion:

 

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

 

Wenn Sie keine Geduld haben, können Sie den nächsten Befehl verwenden (aber beachten Sie vorher die Warnung unten):

 

sudo kexec -e

 

Anmerkung: Obwohl kexec nicht direkt am Patching-Prozess beteiligt ist, ermöglicht es schnellere Reboots, indem es den üblichen Bootloader und die Hardware-Initialisierung umgeht. Diese Geschwindigkeit hat jedoch ihren Preis. Im Gegensatz zu einem Standard-Neustart, bei dem Prozesse ordnungsgemäß beendet, Caches synchronisiert und Dateisysteme ausgehängt werden, springt kexec direkt zum neuen Kernel. Dies kann zu Datenverlusten oder -beschädigungen führen, wenn laufende Anwendungen ungespeicherte Änderungen oder offene Datei-Handles haben.

 

PROS: Schnellerer Start. Einmalige Installation.

CONS: Mehr Fingerarbeit (und höhere Fehleranfälligkeit, wenn Sie es nicht gut schreiben).

 

3. Aktualisieren Sie Ihren Kernel ohne Neustart

 

Ja, Sie haben richtig gelesen. Es gibt eine Möglichkeit, den Linux-Kernel ohne Neustart zu aktualisieren.

Es gibt Zeiten, in denen Sicherheits-Patches überlebenswichtig sind und Sie sie einfach erledigen müssen. Gleichzeitig sind die Prozesse, die beim Neustart angehalten werden müssen, ebenso kritisch. Wenn Sie ein "immer eingeschaltetes" oder "hochverfügbares" System betreiben, werden Sie mit diesem Dilemma vertraut sein.

Ein Kernel-Update ohne Neustart bedeutet, dass Sie Ihren Kuchen haben und ihn (auch) essen können. Rebootlose Aktualisierungen, auch bekannt als Live-Kernel-Patchingbekannt, sind kein Ersatz für vollständige Kernel-Upgrades, da sie nur Patches für Sicherheitslücken oder kritische Fehlerbehebungen anwenden.

Allerdings sind Updates ohne Neustart wie eine Wunderwaffe, um Sicherheitslücken zu schließen und die Sicherheit des Linux-Kernels zu gewährleisten. Wenn Sie die wirklich dringenden Dinge berücksichtigen, dann sind Updates für Sicherheitslücken und Fehlerbehebungen wirklich alles, was Sie brauchen. Mit Live-Patching-Methoden ist es möglich, einen Server jahrelang vor Bedrohungen zu schützen, ohne ihn jemals neu zu starten.

Viele führende Linux-Anbieter bieten ein Tool an, mit dem sich Kernel-Updates ohne Neustart durchführen lassen. Welches Tool Sie wählen, hängt zum Teil von der Distribution ab, die Sie einsetzen, und davon, ob Sie bereits einen Supportvertrag mit dem Anbieter abgeschlossen haben. Im weiteren Verlauf dieses Artikels werden wir uns mit den folgenden Produkten befassen. 

 

  • Ksplice von Oracle (für Oracle Linux-Updates, Ksplice Uptrack für Unternehmensanwender)
  • 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)

 

Oracle Ksplice

 

Ksplice war die erste kommerziell erhältliche Implementierung von Kernel-Updates ohne Neustart. Ksplice, Inc. wurde schließlich von Oracle übernommen und ist jetzt (wenig überraschend) nur noch für die Oracle Linux-Distribution verfügbar. Für den Einsatz von Ksplice ist ein Oracle Linux Premier Support-Abonnement erforderlich, was einen erheblichen Kostenfaktor darstellen kann.

 

Führen Sie es aus, um es einzusetzen:

 

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

sudo sh install-uptrack-oc -autoinstall

 

Sie werden feststellen, dass es keinen Neustartbefehl gibt und dass Sie das Installationsskript nur einmal während der Lebensdauer des Servers ausführen müssen. Danach erkennt der Uptrack-Dienst automatisch neue Kernel-Updates und stellt sie bereit. Es gibt nichts mehr zu tun - keine Zeitplanung und keine Ausfallzeiten.

 

PROS: Kein Neustart erforderlich. Automatische Updates.

CONS: Nur für Oracle-Distributionsversionen. Erfordert eine Support-Lizenz.

 

Kanonischer Livepatch-Dienst 

 

Canonical LivepatchDas von der Ubuntu-Firma angebotene Livepatch ist ein Tool zum Einspielen von Sicherheitspatches für den Linux-Kernel, ohne dass ein Neustart erforderlich ist. Sie können damit auch Ihre eigenen Patches erstellen, aber das ist eine schwierige und zeitaufwändige Arbeit. (Einige Anbieter erstellen gegen eine Gebühr einen Ubuntu-Upgrade-Kernel für Sie.)

Der Livepatch-Dienst ist verfügbar für Ubuntu 16.04 und höher sowie für RHEL 7.x (Beta). Livepatch wird wie folgt bereitgestellt:

sudo snap install canonical-livepatch

 

sudo canonical-livepatch enable [TOKEN]

 

Anmerkung: Der Canonical Livepatch-Service ist für die persönliche Nutzung auf bis zu 5 Rechnern kostenlos, wenn Sie Ubuntu One-Mitglied sind. Für die kommerzielle Nutzung ist ein Ubuntu Pro-Abonnement erforderlich.

PROS: Kein Neustart erforderlich. Automatische Kernel-Updates.

CONS: Nicht-triviale benutzerdefinierte Kernel-Patches. Beschränkung der Anzahl der aktualisierbaren Hosts. Zusätzliche Hosts und kommerzielle Nutzung sind kostenpflichtig.

 

Red Hat kpatch 

 

kpatch ist das eigene Kernel-Patching-Tool von Red Hat. Es wurde 2014 angekündigt und wurde auf andere Distributionen derselben Familie (Fedora, CentOS) sowie auf einige Debian-basierte Systeme (Ubuntu, Gentoo) portiert.

 

Hier ist ein Beispiel für die Bereitstellung unter RHEL 7:

 

sudo yum install kpatch

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

 

Im Gegensatz zum Livepatch-Dienst von Ubuntu oder zu Ksplice von Oracle handelt es sich nicht um einen automatischen Live-Patching-Dienst. Sie müssen manuell nach neuen Patches suchen und jeden Kernel-Patch installieren, sobald er verfügbar ist.

 

PRO: Kein Neustart erforderlich.

CONS: Nicht automatisiert. Funktioniert nur mit einer begrenzten Anzahl von Distributionen.

 

SUSE kGraft 

 

Wurde fast zeitgleich mit der Lösung von Red Hat entwickelt und angekündigt, kGraft ist das Live-Patching-Angebot von SUSE (bekannt als SUSE Linux Enterprise Live Patching). Es funktioniert nur mit dem SUSE-eigenen Linux Enterprise Server 12 und wird vorinstalliert geliefert, sodass Sie nichts weiter tun müssen, als dafür zu bezahlen. Es funktioniert nach einem anderen Prinzip als die meisten anderen Ansätze, hat aber einen mit kpatch vergleichbaren Funktionsumfang.

 

PROS: Keine Installation erforderlich. Kein Neustart erforderlich.

CONS: Unterstützung nur einer Plattform. Kommerziell (aber es gibt eine 60-tägige kostenlose Testversion).

 

KernelCare Enterprise

 

Der Linux-Kernel-Live-Patching-Dienst von TuxCare, KernelCare Enterprisehebt sich aus zwei Gründen von den bisher vorgestellten Kernel-Patching-Lösungen ab. Erstens deckt KernelCare eine breite Palette von Linux-Distributionen ab, darunter CentOS, RHEL (bereits ab RHEL 6), Oracle Linux, Debian, Ubuntu und viele mehr. Zweitens ist KernelCare im Vergleich zum Abschluss eines herstellerspezifischen Supportvertrags, wie er oben aufgeführt ist, günstiger.

 

Hier erfahren Sie, wie Sie KernelCare installieren:

 

wget -qq -O -- https://kernelcare.com/installer | bash

sudo /usr/bin/kcarectl --register <your key>

 

KernelCare ist eine "Installieren und vergessen"-Lösung. Nach der Installation lädt KernelCare automatisch neue Sicherheitspatches für den Linux-Kernel herunter und wendet sie an, ohne dass der Server neu gestartet werden muss.

Im Gegensatz zu seinen engsten Konkurrenten kann KernelCare jedoch viele der komplexeren Patches verarbeiten, die für Sicherheitslücken erforderlich sind, einschließlich der berühmten Meltdown (CVE-2017-5754) und Spectre (CVE-2017-5753 & CVE-2017-5715) Sicherheitslücken.

KernelCare deckt auch neuere komplexe Schwachstellen ab, darunter die Dirty-Pipes-Schwachstelle (CVE-2022-0847). Um den Veröffentlichungsstatus von Live-Patches für Linux-Kernel-Schwachstellen (CVEs) zu verfolgen, können Sie den TuxCare CVE-Tracker.

Sie profitieren auch von einem umfangreichen Funktionsumfang, da KernelCare benutzerdefinierte Patch-Konfigurationen, Patches mit festem Datum, verzögerte Patches und Rollbacks ohne Neustart unterstützt, mit denen Sie einen Patch ohne Neustart entfernen können.

Wie die anderen hier betrachteten Anbieter hat auch KernelCare einen starken Linux-Stammbaum: KernelCare wurde entwickelt von CloudLinuxentwickelt, dem führenden Anbieter eines Linux-Betriebssystems für das Webhosting.

 

PROS:

 

  • Einfache Installation. Kein Neustart erforderlich.
  • Breite Betriebssystemabdeckung (einschließlich einer der beliebtesten Linux-Varianten, Ubuntu).
  • Unterstützt benutzerdefinierte und datumsabhängige Patches.
  • Fachkundige Unterstützung und Branchenwissen von TuxCare.

 

CONS:

 

 

Holen Sie sich eine KOSTENLOSE Testversion von KernelCare Enterprise

 

Abschließende Überlegungen

 

Die Aufrechterhaltung der Sicherheit des Linux-Kernels ist ein ständiger Kampf. Regelmäßige Überprüfungen auf Aktualisierungen und deren zeitnahe Anwendung sind entscheidend, um den sich entwickelnden Cyber-Bedrohungen einen Schritt voraus zu sein. Die Aktualisierung des Kernels ist mit den Standard-Befehlszeilentools relativ einfach, aber nur, wenn Ihr Server nicht kritisch ist und Ihre Benutzer es ertragen können, dass er eine Zeit lang offline ist.

Wenn Sie ein System betreiben, das ständig eingeschaltet ist, oder wenn Sie nicht neu starten können oder wollen, müssen Sie Live-Kernel-Patching-Lösungen in Betracht ziehen. Davon gibt es drei Arten:

 

  1. Verwaltet: Sie lösen das Rebootless-Patching selbst aus. z.B.. kpatch, kGraft
  2. Vollständig automatisch: Rebootless Patching erfolgt automatisch. z.B.. Livepatch, Ksplice
  3. Vollautomatisch, fortschrittlich und plattformübergreifend: Es erledigt alles für Sie, bewältigt auch fortgeschrittene Bedrohungen und funktioniert auf allen gängigen Linux-Distributionen. Z.B.. KernelCare Enterprise

 

In vielen Fällen, insbesondere wenn Sie auf verschiedene Linux-Distributionen angewiesen sind und keinen Support-Vertrag mit einem Hersteller haben, ist KernelCare Enterprise einen Blick wert sein.

Wenn Sie mehr über die Live-Patching-Technologie erfahren möchten und darüber, wie sie die Sicherheit Ihrer Infrastruktur erhöht, können Sie einige unserer beliebtesten Blogbeiträge lesen:

 

 

Zusammenfassung
Wie man Sicherheits-Patches für den Linux-Kernel anwendet: 3 verschiedene Wege
Artikel Name
Wie man Sicherheits-Patches für den Linux-Kernel anwendet: 3 verschiedene Wege
Beschreibung
Lernen Sie 3 Methoden kennen, um die neuesten Sicherheitsupdates für den Linux-Kernel anzuwenden und Ihr System sicher zu halten. Lernen Sie automatische und rebootlose Patching-Tools kennen.
Autor
Name des Herausgebers
TuxCare
Logo des Herausgebers

Sind Sie bereit für die Modernisierung Ihres Schwachstellen-Patching-Ansatzes mit automatisiertem, unterbrechungsfreiem Live-Patching von KernelCare Enterprise? Vereinbaren Sie einen Termin für ein Gespräch mit einem unserer Linux-Sicherheitsexperten!