Unveränderlichkeit – ein Durchbruch in der Systemintegrität Immutable-Linux-Distributionen im Überblick

Von Filipe P. Martins & Anna Kobylinska 7 min Lesedauer

Anbieter zum Thema

Eine wachsende Anzahl von Implementierungen einer Anwendungsbereitstellung fordert gehobene Standards der Sicherheit und Zuverlässigkeit. Unveränderliche Linux-Distributionen haben sich eben dieses Ziel auf die Fahnen geschrieben. Doch können sie tatsächlich Abhilfe schaffen?

Containerisierte Anwendungen als Ersatz für klassische Installationen: Software wie Visual Studio Code lässt sich als Flatpak über Flathub beziehen.
Containerisierte Anwendungen als Ersatz für klassische Installationen: Software wie Visual Studio Code lässt sich als Flatpak über Flathub beziehen.
(Bild: Flathub.org / Microsoft)

Das Aufkommen der Multi-Cloud brachte für die Entwickler und Entwicklerinnen neue Herausforderungen mit sich. Vor dem Hintergrund der höheren Komplexität und Dynamik der Infrastruktur einer Multi-Cloud-fähigen Anwendungsbereitstellung haben Aspekte wie die Konsistenz und Vorhersehbarkeit an Bedeutung gewonnen.

Immutable-Linux-Distributionen gewinnen deshalb an Beliebtheit. Diese „unveränderlichen“ Betriebssysteme zielen auf eine manipulationsresistente Bereitstellung ab. Ein solches OS (Operating System) fährt typischerweise von einem schreibgeschützten Dateisystem hoch, verhindert Änderungen der Konfiguration zur Laufzeit und stellt spätestens beim Neustart seinen ursprünglichen Zustand wieder her. Dieser Ansatz soll die Einrichtung von Hintertüren erschweren und sonstige dauerhafte Schäden am System unterbinden.

Ein unveränderliches System erleichtert nebenbei die Wartung durch ein transaktionales, Image-basiertes Update-System, welches alle Änderungen zentral verwaltet und als ganze Systemimages ausrollt. So werden Änderungen entweder vollständig oder gar nicht angewendet bzw. per Rollback rückgängig gemacht. So entsteht eine sogenannte „Immutable Infrastructure“.

Gemeint ist hierbei ein Ansatz zur Verwaltung von virtualisierten IT-Infrastrukturen, bei dem die Komponenten – ob Serverinstanzen, Anwendungen oder Netzwerktopologien – nach ihrer erstmaligen Bereitstellung unverändert ihren Dienst verrichten, bis sie zum Beispiel zwecks Aktualisierung oder Erweiterung durch komplett neue Infrastrukturen vollständig ersetzt werden.

Obwohl man das Wort „immutable“ (also „unveränderlich“) eigentlich kaum in der Werbung sieht, befolgen auch viele verbraucherorientierte Betriebssysteme diesen Ansatz, darunter nicht zuletzt Android, ChromeOS, iOS und macOS. Auch etwa Linux auf Valves Steam Deck ist eine unveränderliche Distribution.

Das Nachbeben von Project Atomic

Den Anstoß für das jüngste Aufkommen unveränderlicher Linux-Distributionen zur Bereitstellung von Immutable Infrastructure gab Red Hat im Rahmen einer Initiative namens Project Atomic. Dieses verfolgte das Ziel, eine unveränderliche, versionierte Laufzeitumgebung für Cloud-native Anwendungen auf dem LDK-Stack (kurz für Linux, Docker und Kubernetes) zu erschaffen.

Den Kern dieses Projekts stellte Atomic Host dar, ein leichtgewichtiges, unveränderliches Betriebssystem zur Ausführung von Anwendungen in Containern (auf der Basis von Upstream-CentOS oder Fedora oder einer Downstream-Version von RHEL). Während Project Atomic vor allem in Cloud- und Server-Umgebungen Anwendung fand, entstand mit NixOS bereits rund ein Jahrzehnt zuvor ein allgemeinerer Ansatz für die Systemkonfiguration und das Paketmanagement, der sich auch auf Desktop-Systemen und in anderen Bereichen bewährt hatte.

Project Atomic, inzwischen eingestellt, inspirierte dennoch eine ganze Reihe von unveränderlichen Linux-Distributionen. Viele der Technologien, die es hervorgebracht hat, prägen die Entwicklung von Immutable-Linux weiter.

Unveränderliche Fedoras

Getreu ihrem Fokus auf die Bedürfnisse von Developern hat die Fedora-Gemeinde eine ganze Reihe unveränderlicher Editionen der Distribution für verschiedene Einsatzszenarien entwickelt (als ob man dort nichts anderes zu tun hätte!). Alle nutzen rpm-ostree, ein hybrides transaktionales Build-/Paket-System für atomare Aktualisierungen auf der Basis von libostree und libdnf.

Fedora CoreOS ist als ein minimalistisches Betriebssystem für die Nutzung in Server- und Cloud-Umgebungen konzipiert. Es zielt darauf ab, die Bereitstellung und den Betrieb containerisierter Workloads im großen Maßstab zu ermöglichen. Es verzichtet daher auf eine grafische Benutzeroberfläche und einen Desktop.

Fedora CoreOS gilt als der offizielle Nachfolger des von Red Hat eingestellten CoreOS Container Linux. Als inoffizieller Ersatz des Letzteren entstand Flatcar Container Linux bei Kinvolk in Berlin. Es wurde als Drop-In-Ersatz konzipiert. Seit der Übernahme der Berliner Entwicklerschmiede durch Microsoft läuft die Entwicklung von Flatcar auf vollen Touren weiter.

Die Installation von Fedora Silverblue und Fedora Kinoite geht ganz unkompliziert vonstatten.
Die Installation von Fedora Silverblue und Fedora Kinoite geht ganz unkompliziert vonstatten.
(Bild: Martins & Kobylinska / Fedora)

Fedora Silverblue ist eine atomare Variante der Fedora Workstation, die mit dem modernen Gnome-Desktop ausgeliefert wird. Jede (Grund)Installation von Silverblue ist identisch mit jeder anderen Variante derselben Versionsnummer und ändert sich nicht während der Nutzung. Dadurch will Silverblue die Container-basierte Softwareentwicklung erleichtern.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Anders als die klassischen, veränderlichen Fedora-Editionen setzt Silverblue auf rpm-ostree für Systemaktualisierungen und auf das Flatpak-Format für Anwendungen, was die Unveränderlichkeit möglich macht. Von Silverblue abgeleitet sind diverse andere Fedora-Versionen mit verschiedenen Desktop-Umgebungen.

Fedora Spins sind nicht „Immutable“, dafür bieten sie die Möglichkeit, eine ganze Reihe von Desktops auszuprobieren.
Fedora Spins sind nicht „Immutable“, dafür bieten sie die Möglichkeit, eine ganze Reihe von Desktops auszuprobieren.
(Bild: Martins & Kobylinska / Fedora)

Fedora Onyx ist eine unveränderliche Desktop-Edition von Fedora mit dem Budgie-Desktop. Das minimalistische Desktop-Erlebnis von Budgie ist für seine Eleganz bekannt. Budgie stellt eine überzeugende Option für jene Anwender dar, die minimalistische Desktops wie Xfce, MATE und Cinnamon bevorzugen, aber sich dennoch ein bisschen mehr Flair wünschen. Onyx soll eventuell in „Fedora Budgie Atomic“ umbenannt werden.

Wer von KDE Plasma spricht, hat diesen Desktop im Sinne.
Wer von KDE Plasma spricht, hat diesen Desktop im Sinne.
(Bild: KDE e.V.)

Fedora Kinoite verbindet die Stabilität einer unveränderlichen Infrastruktur mit der Flexibilität der Desktop-Umgebung KDE Plasma. Fedora Sericea wiederum ist eine spezialisierte, unveränderliche Variante von Fedora mit Sway, dem hochgradig anpassbaren Wayland-Fenstermanager, der in Tastatur-orientierten Workflows beliebt ist. Das Kommunikationsprotokoll Wayland ersetzt X11.

Visual Studio Code lässt sich als ein Flatpak von Flathub beziehen und auf einer beliebigen unterstützen Distribution mit einem simplen Befehl einrichten.
Visual Studio Code lässt sich als ein Flatpak von Flathub beziehen und auf einer beliebigen unterstützen Distribution mit einem simplen Befehl einrichten.
(Bild: Flathub.org / Microsoft)

Alle unveränderlichen Fedora-Desktops nutzen im Grunde genommen dieselben Technologien: Flatpak für die Anwendungsisolation (via Flathub), rpm-ostree für atomare Update- und Rollback-Fähigkeiten, podman für die Entwicklung, Verwaltung und Ausführung von OCI-konformen Containern und Container-Images, sowie nicht zuletzt toolbox zur Handhabung des Host-Betriebssystems in interaktiven Befehlszeilen-Umgebungen.

Flatpak hat die Entwicklergemeinde im Sturm erobert. Es bietet Entwicklern und Entwicklerinnen die Möglichkeit, Anwendungen in einer konsistenten Umgebung zu bauen und zu testen – unabhängig von den Unterschieden zwischen einzelnen Linux-Distributionen. Die Sandboxing-Technologie von Flatpak macht tausende von quelloffenen wie auch proprietären Anwendungen auf allen unterstützten Systemen unmittelbar verfügbar.

Immutable Linuxes im SUSE-Ökosystem: openSUSE MicroOS und RancherOS

MicroOS ist eine unveränderliche Version von openSUSE, die speziell für den Betrieb von Container- und Cloud-Infrastrukturen in Serverumgebungen und Edge-Geräten entwickelt wurde und mit Selbstverwaltung einschließlich automatischer transaktionaler Updates und Rollbacks auftrumpft. Die Desktop-Editionen von MicroOS hören auf die Namen Aeon (Gnome Desktop) und Kalpa (KDE Plasma).

MicroOS nutzt das Btrfs-Dateisystem und macht sich dessen fortgeschrittene Funktionen wie Snapshots und Rollbacks zu Eigen. In diesen Snapshots kann das System seinen Zustand vor und nach Updates speichern, um Überraschungen zu minimieren.

RancherOS (ursprünglich von Rancher Labs, heute bei SUSE zuhause) ist als ein unveränderliches Betriebssystem konzipiert. Es unterscheidet sich von traditionellen Linux-Distributionen durch seine einzigartige Architektur und Herangehensweise an das Betriebssystemmanagement. RancherOS führt Systemdienste und Anwendungen in Containern aus und lässt sich mit Docker-freundlichen Werkzeugen handhaben.

Wie der Name verrät, integriert RancherOS sich eng mit Rancher, der Open-Source Container-Management-Plattform für Kubernetes-Cluster. Die Quellen von RancherOS auf Github sind bei der Versionsnummer 1.5.8 (vom 5. Februar 2021) angekommen und dort leider stehen geblieben. SUSE fokussiert seither auf Rancher Prime, ein kommerzielles Enterprise-Abonnement mit Updates vom 18. April 2023.

SUSEs angeblich „anhaltendes Engagement“ für „die Cloud-Native-Community“, die sich im Neustart der Rancher Academy und [den nicht genauer spezifizierten] „wichtigen Updates“ für Open-Source-Projekte reflektieren sollen, hat einen schalen Beigeschmack. Ein Blick auf die Github-Repo von Rancher OS wirft die naheliegende Frage auf, ob es statt „anhaltendes Engagement“ nicht vielleicht doch „angehaltenes Engagement“ heißen müsste. Die Parallelen zu Red Hats Bemühungen um die Kommerzialisierung der RHEL-Quellen unter der „Schirmherrschaft“ von IBM drängen sich auf.

Unveränderliche Ubuntus und Ubuntu-Ableger Dritter

Auch Canonical, das Unternehmen hinter Ubuntu, hat unveränderliche Systeme für den Einsatz in IoT- und Cloud-Anwendungen geschaffen. Eine solche unveränderliche Version von Ubuntu speziell für IoT-Geräte und Edge-Computing nennt sich Ubuntu Core.

Diese Implementierung macht sich unveränderliche Softwarepakete, die sogenannten Snaps, zu Nutze. Dieses Format ermöglicht es Entwickler/inne/n, ihre Anwendungen zusammen mit allen benötigten Abhängigkeiten in einer isolierten, installationsfreundlichen Form zu verpacken und auszuliefern. Zur Erstellung dieser Pakete kommt ein Werkzeug namens Snapcraft zum Einsatz.

Mit dem Livepatch Service bietet Ubuntu Sicherheitsupdates für den Linux-Kernel an, die sich ohne einen Neustart des Systems einspielen lassen. Dies verbessert die Sicherheit und maximiert die Verfügbarkeit und Zuverlässigkeit.

Die Zuverlässigkeit von Vanilla OS erstreckt sich leider nicht auf die Verfügbarkeit der Haupt-Repo.
Die Zuverlässigkeit von Vanilla OS erstreckt sich leider nicht auf die Verfügbarkeit der Haupt-Repo.
(Bild: fabricators.ltd / Vanilla OS Contributors Team)

Vanilla OS des italienischen Unternehmens Fabricators setzt auf dem Stack von Canonical auf und ist damit ein Ubuntu-Ableger. Es verwendet den Gnome-Desktop und ein unveränderliches Dateisystem, bei dem das Wurzelverzeichnis (/) schreibgeschützt ist.

Die bemerkenswerte Zuverlässigkeit des Systems verdankt das System einem Werkzeug namens ABRoot. Es ermöglicht Benutzern, zusätzliche Pakete oder Updates atomär zu installieren, während es gleichzeitig über die Integrität und Unveränderlichkeit der Bereitstellung wacht.

Vanilla OS führt Anwendungen in isolierten Umgebungen aus, ob via Flatpak, in Containern oder in virtuellen Maschinen, und trennt Benutzerdaten vom Basissystem. Für die Versionierung von Images des Basissystems stützt sich Vanilla OS auf OSTree.

Fazit

Jede großflächige Anwendungsbereitstellung – ob an der Edge, in der Cloud oder in der Multi-Cloud – geht mit einem erhöhten Risiko von Cyber-Vorfällen einher. Viele sicherheitsbewusste Entwickler/innen versuchen, mit unveränderlichen Linux-Distributionen die Angriffsfläche auf ihre Anwendungen zu verringern.

In einem Umfeld, welches durch hohe Anforderungen an die Systemintegrität gekennzeichnet ist und dennoch häufigen Veränderungen unterliegt, bieten unveränderliche Linux-Distributionen mehr Konsistenz und Vorhersehbarkeit für die Entwicklung und den Betrieb moderner Anwendungsarchitekturen.

(ID:49810987)