Zu Abschnitt

Was ist Live-Patching von Linux-Kernels?

URL kopieren

Das Live-Patching eines Linux-Kernels ist eine Möglichkeit, kritische und wichtige Sicherheits-Patches auf einen bestehenden Linux-Kernel anzuwenden, ohne dass ein Neustart oder eine Unterbrechung der Runtime erforderlich ist.

Es gibt einen Unterschied zwischen einem Patch und einem Update. Ein Update ist eine neue, kleinere Version eines Pakets und kann Bug Fixes, Performance-Verbesserungen, neue Funktionen, Änderungen an der Befehlszeile und andere Erweiterungen enthalten. Ein Patch ist ein partieller Ausschnitt aus einem Code (normalerweise die unterschiedliche Ausgabe zwischen zwei Versionen eines Pakets oder einer Datei), der eine Schwachstelle in der bestehenden Version behebt. Diese Patches beheben Schwachstellen ohne Latenzzeit, sodass die bestehende Implementierung sicherer ausgeführt und die Systemadministration mit dem Neustart bis zum nächsten regulären Wartungsfenster warten kann.

Theoretisch könnte das Live-Patching für jeden Patch für den bereits aktiven Kernel verwendet werden, einschließlich regelmäßiger Bug Fixes und Erweiterungen. In der Praxis werden vorrangig schwerwiegende Sicherheitslücken mit Live-Patches behoben, da es sich dabei um Korrekturen handelt, die keinen Aufschub dulden. Bei Red Hat® Enterprise Linux® haben wir uns auf Sicherheits-Patches konzentriert, und das Live-Patching des Kernels gilt als Sicherheitsfunktion (mit Vorteilen für das Administrationsteam).

Ohne Live-Patching erfordert die Anwendung eines Patches einen Neustart des gepatchten Services oder der Anwendung, um die neuen Änderungen der gepatchten Version zu laden. Dies gilt sogar für Patches, die auf den Linux-Kernel selbst angewendet werden, was das Linux-Systemadministrationsteam vor ein schwieriges Problem stellt: Sie müssen zwingend Sicherheits-Updates anwenden, aber das bedeutet außerplanmäßige Neustarts des Linux-Servers, einschließlich Latenz- und Ausfallzeiten.

Jeff Arnold, ein Student und Systemadministrator am MIT, befand sich in einer misslichen Lage. Er hatte ein System mit einem anstehenden Sicherheits-Update und entschied sich, die Behebung der Schwachstelle zu verschieben. Dieses System wurde gehackt. Im Jahr 2008 beschloss Arnold, sich dieser Herausforderung zu stellen, indem er sogenannte „Rootless Kernel Security Updates“ entwickelte – eine Möglichkeit, Sicherheits-Patches auf ein laufendes System anzuwenden und zu laden. Dieses anfängliche Projekt (ksplice) war die Geburtsstunde des Konzepts des Live-Patchings von Linux-Kernels.

Dynamische Software-Updates sind eine Herausforderung in der Datenverarbeitung, da sie die Komplexität von zustandslosen und zustandsbehafteten Services, Persistenz, Datenmanagement, Transaktionen und das Befolgen von Befehlen betreffen – alles Dinge, die die Basis für den Betrieb eines Services oder einer Anwendung bilden.

Arnold und nachfolgende Projekte zum Live-Patching des Linux-Kernels nutzten Tools innerhalb des Kernelspace, um Kernel-Module zu laden.

Die Linux-Systemoperationen sind in zwei Bereiche unterteilt: den Userspace (in dem alle Services und Anwendungen laufen) und den Kernelspace (in dem die Kernsystemoperationen stattfinden). Der Kernel ist eine Vermittlungsinstanz für alle Anwendungen, die auf Hardware-Ressourcen wie CPU und Storage zugreifen. Neben dem Kernel selbst können Administrationsteams benutzerdefinierte Kernel-Module erstellen, um die Funktionalität zu erweitern oder zu ändern, und diese Kernel-Module können dynamisch geladen und ausgeführt werden, sogar nach dem Start.

Tools für das Kernel-Live-Patching erstellen ein Kernel-Modul aus dem gepatchten Code und verwenden dann das Tool ftrace (function trace), um von der veralteten Funktion zur neuen Ersatzfunktion, zum Patch-Modul oder zur gepatchten Funktion zu gelangen.

Abbildung 1: Funktionsweise des Live-Patchings eines Kernels

Ksplice war das erste Projekt zum Live-Patching eines Linux-Kernels. Ksplice wurde jedoch an Oracle verkauft und schließlich in ein Closed Source-Tool umgewandelt. Andere Entwicklungsteams versuchten, Open Source-Projekte zu entwickeln, die ksplice ersetzen könnten. 2014 wurden zwei unterschiedliche Projekte gestartet: kpatch von Red Hat und kgraft von SuSE. Im Interesse der Linux-Kernel-Community haben die Entwicklungsteams von Red Hat und SuSE schließlich zusammengearbeitet, um livepatch zu entwickeln. Hierbei handelt es sich um eine gemeinsame Schicht innerhalb des Linux-Kernels, die es ermöglicht, kompatible Tools für das Kernel-Live-Patching zu entwickeln.

Entscheidend ist, dass Patches speziell zur Behebung von Sicherheitsrisiken eingesetzt werden. Eine der Herausforderungen für Systemadministrationsteams besteht darin, dass sie nicht nur die Sicherheits-Patches in Linux-Systemen berücksichtigen, sondern auch dafür sorgen müssen, dass die Anforderungen an die Verfügbarkeit erfüllt werden. Das bedeutet, dass sie nicht in der Lage sind, Systeme außerhalb der vorgegebenen Wartungsfenster offline zu nehmen. Diese ständige Spannung wird immer größer.

Laut dem Red Hat Security Risk Report gab es einen massiven Anstieg der identifizierten Sicherheitsprobleme (sogenannte „Common Vulnerabilities and Exposures“ oder CVEs) von 2019 bis 2020, und zwar um etwa 155 % (von 1.313 auf 2.040). Im Jahr 2021 ging diese Zahl zwar leicht zurück (1.596), lag aber immer noch um 22 % höher als 2019. Das meiste davon war eine Zunahme der mittelschweren Schwachstellen. Die Anzahl wichtiger CVEs ist ungefähr gleich geblieben, die Anzahl kritischer Schwachstellen hat abgenommen.

Kernel-Updates und -Patches werden alle sechs Wochen veröffentlicht, und kleinere Updates von Red Hat Enterprise Linux werden alle sechs Monate veröffentlicht und enthalten alle Sicherheits-Patches. Da der Linux-Kernel ohne Neustart live gepatcht werden kann, muss nicht mehr entschieden werden, welche Richtlinie befolgt werden soll.

CVEs, die sich auf den Kernel beziehen, sind besonders besorgniserregend: Vier der zehn am häufigsten aufgerufenen CVEs im Jahr 2021 beziehen sich auf den Kernel.

Die Möglichkeit, Sicherheits-Patches für den Linux-Kernel live durchzuführen, ist weit mehr als nur eine Bequemlichkeit. Sie ist ein wichtiges Tool für Sicherheitsteams, um proaktiv Sicherheitslücken zu schließen, Kernel-Funktionen aufrecht zu erhalten und die Sicherheit ihrer Systeme zu gewährleisten.

Kernel-Live-Patching ist ein spezielles Tool für das Sicherheitsmanagement, aber bei weitem nicht das einzige, über das Red Hat Enterprise Linux verfügt. Red Hat Enterprise Linux enthält verschiedene Tools für die Verwaltung der Sicherheit, beispielsweise SELinux für Berechtigungen und Zugriffskontrolle sowie Systemrollen zur Automatisierung von Konfigurationen und Aufgaben.

Für die Schaffung einer „sicheren Umgebung“ gibt es keine Patentlösung. Die Bedrohungen ändern sich ständig und entwickeln sich weiter, wobei verschiedene Angriffsvektoren auftauchen und verschiedene Ziele ausgemacht werden. Die Sicherheit beginnt auf der Ebene des Betriebssystems – sogar beim Quellcode – und zieht sich durch den gesamten Technologie-Stack und Lifecycle, weshalb eine Vielzahl von Tools unerlässlich ist.

Verwenden Sie das Kernel-Live-Patching in der Red Hat Enterprise Linux Webkonsole, um die Komplexität beim Durchführen kritischer Wartungsaufgaben stark zu verringern. Diese neue Funktion in der Webkonsole bietet eine vereinfachte Oberfläche, mit der erfahrene und unerfahrene Admins gleichermaßen Kernel-Updates durchführen können, ohne dafür das Befehlszeilentool verwenden zu müssen.

Red Hat Insights ist mit jeder Subskription von Red Hat Enterprise Linux erhältlich und bietet ein einheitliches Verwaltungserlebnis für Sicherheitsbelange. Dazu zählen:

  • Visuelle Dashboards, die Ihre gesamte Infrastruktur abdecken und anfällige Systeme sowie den Patch-Status anzeigen. So können Sie kritische Fehler finden und beheben, ohne dass Sie dafür eine separate Subskription für Red Hat Satellite Server benötigen.
  • Relevante CVEs und andere Updates.
  • Playbooks für automatisiertes Linux-Sicherheits-Patching.
  • Sowohl definierte Sicherheitsprofile als auch benutzerdefinierte Profile zur Verwaltung der Systemkonfiguration.
  • Verwendung von Basiskonfigurationen und Kennzeichnung von Systemen, die von den Basiskonfigurationen abweichen.

 

Das Live-Patching des Linux-Kernels entstand, als ein Bedarf erkannt und ein Open Source-Projekt ins Leben gerufen wurde, um in Zusammenarbeit mit Organisationen und Community-Mitgliedern eine Lösung zu schaffen, die der Community zugutekommen würde. Dieser offene Arbeitsstil ist das zentrale Subskriptionselement bei Red Hat: Zusammenarbeit, Transparenz und der Fokus auf die Verbesserung der Technologie und des Benutzererlebnisses.  

Weiterlesen

ARTIKEL

Was ist DevSecOps?

Wenn Sie die Agilität und Reaktionsfähigkeit von DevOps vollständig ausschöpfen möchten, muss die IT-Sicherheit im gesamten Lifecycle Ihrer Apps eine Rolle spielen.

ARTIKEL

Was ist das Besondere an der Cloud-Sicherheit?

Die wichtigsten Sicherheitslücken gefährden sowohl traditionelle IT- als auch Cloud-Systeme. Lernen Sie die Unterscheidungsmerkmale kennen.

ARTIKEL

Was ist SOAR?

SOAR umfasst drei wichtige Software-Funktionen, die Sicherheits-Teams verwenden: Case- und Workflow-Management, Aufgabenautomatisierung sowie eine zentrale Methode, um Bedrohungsinformationen (die so genannte Threat Intelligence) aufzurufen, zu durchsuchen und zu teilen.

Mehr über Sicherheit erfahren

Produkte

Ein Sicherheits-Framework, in dem Nutzeridentitäten verwaltet werden und Kommunikation verschlüsselt wird.

Eine unternehmensfähige, Kubernetes-native Lösung für Container-Sicherheit, mit der Sie cloudnative Anwendungen zuverlässiger entwickeln, bereitstellen und ausführen können.

Ein Service für prädiktive Analytik, mit dem sich Probleme mit der Sicherheit, Performance und Verfügbarkeit Ihrer Red Hat Infrastruktur erkennen und beheben lassen.

Eine zentrale Konsole mit integrierten Sicherheitsrichtlinien, mit der Sie Kubernetes-Cluster und -Anwendungen verwalten können.

Ressourcen