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

Geschichte des Linux-Kernel-Live-Patchings

Die Installation des neuesten Linux-Kernels bedeutete früher einen Neustart, bis die Entwicklung des „neustartlosen Kernel-Updates“, einer Methode, die Server patcht, ohne sie neu zu starten, entwickelt wurde. Da die Technik jetzt etwas mehr als 10 Jahre alt ist, wirft dieser Artikel einen kurzen Blick auf ihre Ursprünge und ihren aktuellen Stand.

2001–2010:Der Patentweg

Wenn Sie die Patentarchive mit Schlüsselwörtern wie Hot Patching oder Live-Systemaktualisierung durchsuchen, werden Sie viele Anträge und Ablehnungen ausgraben, die zeigen, dass die Idee, ein Computersystem zu aktualisieren, ohne es anzuhalten, nichts Neues ist. Die wichtigsten Daten, die die Idee vom Allgemeinen zum Besonderen verfolgen, lauten wie folgt:

  • 2001:Hewlett Packard patentiert ein Verfahren zur dynamischen Aktualisierung von Software, um fehlende Hardwarefunktionen zu umgehen.
  • 2002:Microsoft tritt dem Spiel mit einem Ansatz bei, ein System (Windows) zu aktualisieren, ohne es zu unterbrechen. (Ihr erster Antrag wird aufgrund des „Standes der Technik“ von HP abgelehnt.)
  • 2008:Jeff Arnold kündigt Ksplice an, eine Software zum Aktualisieren (Patchen) eines Linux-Kernels ohne Unterbrechung (d. h. ohne Neustart).
  • 2010:Microsofts Patent wird schließlich im Berufungsverfahren erteilt.

Das Interessante dabei ist, dass sie den Anspruch teilen, mit einem Software-Update einen Fehler in der Kernsoftware oder -hardware eines Systems zu beheben, ohne den weiteren Betrieb des Systems zu beeinträchtigen und ohne die Hardware zu verändern. Klingt vertraut? (Hinweise:Meltdown, Spectre.)

2009:Die Geburt von Rebootless

Jeff Arnold war ein MIT-Student, der sich um einen ihrer Server kümmerte. Es brauchte einen Sicherheitspatch, aber er verzögerte ihn, weil ein Neustart seinen Benutzern Unannehmlichkeiten bereiten würde. Bevor das System aktualisiert werden konnte, wurde es gehackt. Die Schande und (ironischerweise) erlittenen Unannehmlichkeiten inspirierten Jeff dazu, das Thema seiner Masterarbeit in dem Problem zu finden, ein Systemupdate ohne Verzögerung und ohne Neustart durchzuführen. Die Geschichte mag apokryphisch sein, aber sie erinnert uns daran, dass Live-Patch-Techniken nicht aus Bequemlichkeit, sondern aus Sicherheitsgründen entstanden sind, und in dieser Rolle sollten sie geschätzt werden.

Jeff Arnold hat sich mit drei studentischen Kollegen zusammengetan, um das Problem zu untersuchen, wie man den Kernel eines Linux-Servers ohne Verzögerung und ohne Unterbrechung der Systemprozesse aktualisieren kann. Die Lösung kam in Form einer Software namens Ksplice, deren technische Grundlagen in einer wissenschaftlichen Arbeit von 2009 dargelegt wurden. Der Titel des Papiers enthielt das Wort rebootless, eine mittlerweile bekannte Linux-Kurzform für „unterbrechungsfreie Aktualisierung“, die jedoch erstmals 2005 von Microsoft geprägt wurde, um sich auf Windows-Treiberaktualisierungen zu beziehen.

Nach seinem Abschluss gründeten Jeff und seine MIT-Kollegen Ksplice Inc. und gewannen im Mai 2009 den Preis des MIT $100.000 Entrepreneurship Competition. Das Unternehmen startete 2010 einen kommerziellen Service; alles lief gut.

2011–2016:Oracle und die neue Welle

Am 21. Juli 2011 erwarb Oracle Ksplice, Inc. und integrierte die Software in ihre eigene Linux-Marke, die selbst ein Derivat von Red Hat ist. Trotz dieses Erbes stellte Oracle die Unterstützung von Red Hat ein. Die Übernahme von Ksplice durch Oracle löste einen Aktivitätsschub bei anderen wichtigen Linux-Anbietern aus, die im Stich gelassen wurden.

Zwischen 2011 und 2014 arbeiteten SUSE und Red Hat isoliert (und ohne Kenntnis der Ziele des anderen) daran, ihre eigenen Live-Kernel-Update-Lösungen zu veröffentlichen, was sie in Kgraft bzw. Kpatch taten. (Trotz ihres leichten Vorsprungs wurde Kgraft von SUSE erst 2016 GA (d. h. für Produktionssysteme geeignet) gemacht.)

Red Hat teilte seinen Kpatch-Code mit der Community und integrierte ihn als unterstütztes Feature von Red Hat Enterprise Linux.

Der Unterschied zwischen den beiden Inkarnationen kann aus der Meldung abgeleitet werden, die auf der Projektseite der Open-Source-Version prangt:

WARNUNG:Mit Vorsicht verwenden!
Kernel-Abstürze, spontane Neustarts,
und Datenverlust können auftreten!

Während des gleichen Zeitraums und parallel zu den Bemühungen von SUSE und Red Hat wurden grundlegende ABI-Grundlagen zur Unterstützung von Live-Patching in den Quellcode des Linux-Kernels Version 4.0 integriert. Die Idee war, die besten Ideen von Kpatch und Kgraft zu nehmen und sie in einen gemeinsamen Ansatz für die Mainline zu patchen und einzupflanzen. Dies wurde Livepatch genannt, und im Oktober 2016 kündigte Canonical an, dass sie darauf basierend ihren eigenen kommerziellen Kernel-Aktualisierungsdienst einführen würden, der vorhersehbar als Canonical Livepatch Service bezeichnet wird. Zunächst nur für Ubuntu 16.04 LTS verfügbar, wurde es später auch auf 14.04 LTS erweitert. In Ubuntu 18.04 ist LTS Livepatch eine Installationsoption und kann über das integrierte Softwareverwaltungstool konfiguriert werden, ein Zeichen für seine wachsende Bedeutung in der Standardsoftwareverteilung.

2014:Neues Kind auf dem Block

Während die großen Anbieter sich bemühten, als erste praktikable Live-Patching-Lösungen auf den Markt zu bringen, startete CloudLinux, ein wichtiger Akteur bei Linux-basierten Webhosting-Betriebssystemen, KernelCare im Mai 2014, nach einer erfolgreichen Beta im März.

Sie überraschten den Markt, indem sie den breitesten Funktionsumfang auf den meisten Linux-Plattformen anboten und sich mit einem guten Ruf in der Linux-Kernel-Entwicklung und im Kundensupport untermauerten. Ein weiterer Schock war die Erschwinglichkeit, die Website-Hoster ansprach, die die Kosten pro Server von KernelCare für überschaubarer und skalierbarer hielten als die Kosten pro Website ihres Hauptkonkurrenten.

In jüngerer Zeit hat die Bündelung von KernelCare mit Imunify360 dazu geführt, dass es auf dem Radar einer neuen Staffel hochfliegender, sicherheitsbewusster Systemadministratoren auftaucht.

Fazit:Das Kernthema 2019

Während sich die Welt in Richtung automatisierter Sicherheit bewegt, werden Sie feststellen, dass automatische Live-Kernel-Patch-Management-Software immer enger in beliebte Linux-Distributionen integriert wird. Derzeit gibt es nur fünf verschiedene Anbieter auf dem Markt. Eine Feature-Vergleichstabelle listet ihre wichtigsten Verkaufsargumente auf. Im Abschnitt Weiterführende Literatur finden Sie Dokumentationsquellen und Hintergrundartikel.

Das Herumbasteln an einem aktiven Kernel kann chaotisch sein. Es ist nichts, was ein Unternehmen oder jemand, der Server betreibt, ungetesteter und nicht unterstützter Software anvertrauen möchte. Wenn es im Namen der Sicherheit gemacht wird, ist es eine von mehreren Anwendungen in Linux, für die es sich lohnt, zu bezahlen, eine der wenigen, die unbedingt richtig gemacht werden müssen.

Aufgrund der Patentanmeldung von Microsoft aus dem Jahr 2002 zeigen die damaligen Diskussionen Bedenken hinsichtlich der langfristigen Lebensfähigkeit der Technologie. Siehe lkml.org, April 2008, und lwn.net, Juli 2011.

MIT News:„Bringing the world reboot-less updates“ (2014).

Seit Januar 2016 ist Ksplice nur als Teil von Oracle UEK und Oracle Linux 6 &7-Produkten verfügbar. Im November desselben Jahres entfernten sie den Upstream-Kpatch-Code von Red Hat.

Linux-Kernel-Live-Aktualisierungsdienste:Funktionsvergleichstabelle

Funktion

Ksplice

Kgraft

Kpatch

Livepatch

KernelCare

Einfache Installation/Konfiguration

Ja

Nicht zutreffend

Ja

Ja

Ja

Zurücksetzen

Ja

Ja

Ja

Ja

Ja

Behobene Patches

Ja

Nein

Nein

Nein

Ja

Firewall-freundlich

Ja

Nein

Nein

Nein

Ja

Offline-Updates

Ja

Nein

Nein

Nein

Ja

Patch-Zugriffskontrolle

Ja

Nein

Nein

Ja

Ja

Vollautomatisch

Ja

Nein

Nein

Nein

Ja

Verwaltungs-GUI

Ja

Nein

Nein

Ja

Ja

Kostenloser Support rund um die Uhr

Nein

Nein

Nein

Nein

Ja

Anzahl der Plattformen

2

1

1 (4)

1

9

Sofortiges Patchen

Ja

Nein

Ja

Ja

Ja

Kostenlose Testversion (Tage)

30

60

Nein

Nein

30

API (REST)

Ja

Nein

Nein

Nein

Ja

Nicht-neueste Überschreibung

Ja

Nein

Nein

Nein

Ja

Benutzerdefinierte Kernel

Nein

Nein

Ja

Nein

Ja

Siehe Vergleichshinweise für Details.

Weiterführende Literatur

Allgemeine Artikel

  • Livepatch:Linux-Kernel-Updates ohne Neustart (27. Juni 2018) linux-audit.com
  • Live Patching Meltdown – Forschungsprojekt von SUSE Engineer (Teil 1) (2. Mai 2018) suse.com
  • Ein Update zum Live-Kernel-Patching (27. September 2017) lwn.net
  • A Guide to kpatch on Red Hat Enterprise Linux 7.2 and Later (10. November 2016) redhat.com
  • Hotfixieren Sie Ihre Ubuntu-Kernel mit dem Canonical Livepatch Service! (18. Oktober 2016) blog.dustinkirkland.com
  • Linux vs. Unix Hot Patching – Haben wir den Wendepunkt erreicht? (20. Mai 2016) forrester.com
  • Ein grober Patch für Live-Patching (25. Februar 2015) lwn.net
  • Live Kernel Update Tools (September 2014) admin-magazine.com
  • KernelCare:New No-Reboot Linux Patching System (6. Mai 2014) zdnet.com

Dokumentation

  • Ksplice-Datenblatt (PDF), Benutzerhandbuch
  • Kpatch-Leitfaden
  • Kgraft-Datenblatt (PDF), Dokumentation
  • KernelCare-Funktionen, Dokumentation
  • Canonical Livepatch-Dienstdatenblatt (PDF)

Vergleichshinweise

Einfache Installation/Konfiguration

  • Ksplice – Installieren von Uptrack
  • Kgraft ist mit SUSE Linux Enterprise Server 12 vorinstalliert
  • Kpatch-Tools installieren
  • KernelCare-Installation

Zurücksetzen

  • Ksplice uptrack-remove
  • Entfernen eines Kgraft-Patches
  • Entfernen eines kpatch-Hotfixes
  • KernelCare – Patches entladen

Firewall-freundlich

  • Firewall- und Proxy-Konfiguration von Ksplice
  • KernelCare Firewall- und Proxy-Einstellungen

Offline-Updates

  • Ksplice Offline-Client
  • Offline-Updates von KernelCare für Unternehmenskunden über ePortal verfügbar

Patch-Zugriffskontrolle

  • Ksplice-Zugriffsrichtlinien
  • KernelCare-Konfiguration und -Standorte

Vollautomatisch

  • Automatische Ksplice-Updates
  • Grundlegende KernelCare-Verwaltung

Verwaltungs-GUI

  • Ksplice-GUI nur auf Ubuntu- oder Fedora-Desktop-Editionen
  • Canonical Livepatch Service-GUI nur mit Landscape, dem Systemverwaltungstool von Ubuntu, einer kostenpflichtigen Supportoption
  • KernelCare-ePortal

Kostenloser Support rund um die Uhr

  • Kpatch-Support (kostenpflichtig)
  • Kgraft-Support (kostenpflichtig)
  • Ubuntu Advantage (kostenpflichtig)
  • KernelCare-Support (enthalten)

Anzahl der Plattformen

  • Von Ksplice unterstützte Kernel (Red Hat Enterprise Linux, Oracle Linux)
  • Kgraft-Datenblatt (SUSE Linux Enterprise Server 12/15)
  • Kpatch (RedHat) Supportumfang (Red Hat Enterprise Linux)
  • Kpatch (github.com) (Debian, CentOS, Ubuntu, Gentoo)
  • Canonical Livepatch-Dienstdatenblatt (PDF) (Ubuntu 14.04 LTS, 16.04 LTS)
  • KernelCare Patch Server (Ubuntu, RHEL, CentOS, CloudLinux OS, Debian, Oracle Linux, Proxmox VE, Virt-SIG/Xen4CentOS, Virtuozzo/OpenVZ)

Kostenlose Testversion

  • Kostenlose 30-Tage-Testversion von Ksplice (Oracle SSO-Konto erforderlich)
  • Kostenlose 60-Tage-Testversion von Kgraft
  • Kostenlose 30-Tage-Testversion von KernelCare

API (REST)

  • Ksplice-API
  • KernelCare Nagios/Zabbix-API

Nicht-neueste Überschreibung

  • Ksplice (spezifische effektive Version)
  • KernelCare Sticky Patches

Autor Paul Jacobs

Paul ist der Technical Evangelist und Content Writer von CloudLinux. Er nutzt seine über 25-jährige kaleidoskopische Erfahrung in der IT, um die Komplexität von Linux-Webhosting und -Sicherheit zu analysieren, zu enträtseln und zu erklären.


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

  2. Analysieren des Bash-Verlaufs unter Linux

  3. Linux – Kernel-IP-Weiterleitung?

  4. Linux – Ein verdorbener Kernel in Linux?

  5. Linux-Verlaufsbefehl

Verlaufsbefehl in Linux (Bash-Verlauf)

Dmesg-Befehl unter Linux

Sysctl-Befehl unter Linux

Ist Linux ein Betriebssystem oder ein Kernel?

Linux-Kernel vs. Mac-Kernel

11 Linux-Befehle, ohne die ich nicht leben kann