Immutable Linux

(Bild: Sysgo)

Immutable Linux ist ein Konzept, bei dem ein Linux-Basissystem in schreibgeschützter Form vorliegt und nicht geändert oder gelöscht werden kann. Kern der Idee ist, dass ein Basis-Linux vorliegt mit unveränderlichen Systemdateien und -verzeichnissen. Funktionen, bzw. Teilbereiche werden modularisiert, indem sie in Container ausgelagert werden. Jede vorgenommene Änderung ist – dort wo es überhaupt möglich ist – nur temporär beziehungsweise sicher separiert. Theoretisch kann bei jedem Neustart des Systems der Ausgangszustand wiederhergestellt werden. Updates erfolgen containerweise – und zwar im vollen Umfang. Dadurch erhält der Systemadministrator einen besseren Überblick über das Geschehen, weil Systeme konsistenter sind; die Versionierung fällt ebenfalls einfacher.

Bei Immutable Linux sind Funktionen und Teilbereiche modularisiert, indem sie in Containern ausgelagert werden.
Bei Immutable Linux sind Funktionen und Teilbereiche modularisiert, indem sie in Containern ausgelagert werden. (Bild: Sysgo)

Die Folge ist eine erhöhte Systemstabilität und eine geringere Fehleranfälligkeit. Immutable-Linux-Distributionen haben deswegen verwaltungs- und sicherheitstechnische Vorteile und können folglich in eingebetteten Systemen, die Cybersicherheit erfordern, nützlich sein. Wie steht es um die Anwendungsmöglichkeiten und Auswirkungen in diesen Systemen?

Grundlage des Immutable-Linux-Konzepts

Wie bereits erwähnt, ist eine der Grundlagen ein Immutable Linux zu erschaffen, ein Basissystem zu nehmen, das (in weiten Teilen) schreibgeschützt ist.

Architektur von Immutabel Linux.
Architektur von Immutabel Linux. (Bild: Sysgo)

So sind Änderungen ausgeschlossen, was eine hohe Sicherheit gegenüber Malware und unberechtigten Zugriffen bietet. Das Immutable-Linux-Konzept ist deswegen ein Thema für Entwickler und Systemarchitekten von eingebetteten Systemen und für die von besonderem Interesse, da diese Systeme oft in kritischen Umgebungen eingesetzt werden, in denen Sicherheit von größter Bedeutung ist und die Fähigkeit Updates auf einfache Weise durchführen zu können besonders vorteilhaft ist.

Technik und Auswirkungen von Immutable Linux

Die Auswirkungen von Immutable Linux auf die Systemarchitektur und -wartung sind deswegen naheliegend: Gelangt ein Angreifer ins System, kann er bestenfalls bis zum Neustart dort sein Unwesen treiben und das eben nur – wenn überhaupt – im User-Space beziehungsweise dank Containerisierung abgekapselten Bereichen. Ein Angriffsvektor hat somit fast immer eine gegenüber normalen Linux-Distributionen zeitlich größere Einschränkung. Er unterliegt außerdem der Einschränkung, nichts beziehungsweise nichts dauerhaft verändern zu können. Sicherheitskritische Module und Bereiche können so besser geschützt werden. Ein vorausschauendes, geschicktes Rechtemanagement unterstützt darüber hinaus die Härtung des Systems.

Das System kann so konfiguriert werden, dass es dennoch hochflexibel ist: Um Änderungen durchzuführen, die beispielsweise durch Software-Updates notwendig sind, können Systemarchitekten separate Container einfach durch einen neuen Container ersetzen. Das gleiche gilt für das komplette System. So können kleine, als auch große Änderungen durchgeführt werden, ohne dadurch die Systemstabilität zu schwächen.

Die Containerisierung erlaubt es, dass über eine Kommunikation über vorher definierte, klar umrissene und enge Schnittstellen zwischen einzelnen Modulen möglich ist. Auf diese Weise bleibt auch bei Updates von Systemteilen das System sicher und stabil, ohne dass ein Angreifer dies für sich nutzen könnte.

Anwendungsmöglichkeiten von Immutable Linux in eingebetteten Systemen

Die Anwendungsfelder, oder besser gesagt, die Vorteile von Immutable Linux liegen dank Härtung beziehungsweise verbesserter Cybersicherheit im IoT-Bereich. Für Desktopnutzer oder klassische Linux-Bastler ist „immutable“ nur von einem theoretischen Standpunkt interessant. Die Digitalisierung kommt durch „immutable“ allerdings voran: Wir befinden uns gerade erst am Beginn der Welle eingebetteten Geräten Cybersicherheit einzuverleiben. Die europäische Union hat jüngst eine Richtlinie verabschiedet, die Sicherheitsanforderungen an jede Software stellt. Künftig wird es also notwendig sein, dass CE-gekennzeichnete Produkte Cybersicherheitsanforderungen erfüllen. Jede vernetzte Waschmaschine, jedes smarte Thermostat und jedes Wearable profitieren künftig davon, wenn Daten ein Stück weit sicherer sind. Die Realität sieht auch heute noch leider an vielen Stellen so aus, dass kaum Vorkehrungen zur Absicherung getroffen werden und teilweise namhafte Hersteller immer noch No-Gos wie hartkodierte Passwörter einsetzen. Immutable Linux kann hier ein Weg sein, die neuen Anforderungen auf kostensparende Weise umzusetzen.

Immutable Linux schützt Netzwerksicherheitsgeräte vor Angriffen

Immutable Linux findet aber auch Verwendung in reinen Sicherheitsgeräten und -modulen: In Netzwerksicherheitsgeräten, wie zum Beispiel Firewalls oder Intrusion-Detection-Systemen. Diese Geräte sind häufig Angriffsziele von Hackern und anderen Kriminellen, da sie den Datenfluss innerhalb eines Netzwerks kontrollieren und damit eine wichtige Rolle im Schutz vor Cyberangriffen spielen. Durch die Verwendung von Immutable Linux können Anwender diese Geräte besser schützen. Das empfiehlt sich überall dort, wo die Sicherheit kostensparend und auf einfache Weise erhöht werden soll, aber keine zwingende Bedrohungslage oder gesetzliche Anforderungen zu einem umfassenderen Ansatz auffordern. Man könnte sagen, dass die zu schützenden Assets aus Kostengründen einer Priorisierung unterliegen: Es ist beispielsweise immer noch ärgerlich, wenn ein Hacker sich der Daten eines Schrittzählers bemächtigt, aber um jeden Preis zu vermeiden ist es bei Blutinfusionspumpen. Dies jedoch nur für Geräte, die keine Cloudverbindung herstellen können. Eine große Masse an komprimierten Schrittzähler-Daten könnte schließlich immer noch für einen Distributed-Denial-of-Service-Angriff (DDOS) Verwendung finden.

Ein weiterer Vorteil von Immutable Linux in eingebetteten Systemen ist die Möglichkeit, generische Systemabbilder zu erstellen. Durch die Verteilung der Funktionalität auf die verschiedenen Container, kann ein Systemabbild so generisch konfiguriert werden, dass es auf verschiedenen Geräten eingesetzt werden kann, ohne dass auf jedem Gerät größere Anpassungen nötig sind. Dies kann Zeit und Kosten sparen und die Zuverlässigkeit des Systems verbessern.

Deshalb ist Embedded-Linux ELinOS besonders geeignet als Immutable Linux

SYSGO ist ein Unternehmen, das sich auf die Entwicklung von hochsicheren Betriebssystemen für eingebettete Systeme spezialisiert hat. Eines der Produkte ist ELinOS, ein Debian-basiertes Embedded-Linux-Betriebssystem, das speziell für Anwendungen mit hohen Anforderungen an Sicherheit und Zuverlässigkeit entwickelt wurde. ELinOS stellt eine einzigartige Methode zur Auswahl von Zielmerkmalen und zur Konfiguration von Kernel und Benutzerbereich zur Verfügung, um die Oberfläche für Angriffe zu minimieren. Es bringt alle Voraussetzungen, damit Systemarchitekten es als Immutable-Linux-Variante einsetzen können. Bereits jetzt ist mit wenigen Klicks die Einrichtung möglich – im nächsten Feature-Release von ELinOS wird die Erstellung aber noch einfacher werden, indem Convenient-Funktionen zur Verfügung stehen werden.

Das ist der ANsatz von ELinOS zur Sicherheit von eingebetteten Systemen

Der Ansatz von ELinOS zur Sicherheit von eingebetteten Systemen ist einfach aber effektiv: Halte es klein. Das Embedded-Linux-Betriebssystem ist so konzipiert, dass es ressourcensparend arbeitet, um die Anzahl der Angriffsvektoren zu minimieren und so das System vor Malware, Viren, Würmern und anderen Cyberbedrohungen zu schützen. Eine Reihe von Techniken zur Abschwächung von Sicherheitsrisiken steht zur Verfügung, wie zum Beispiel die Verwendung von ASLR und cgroups. ELinOS unterstützt die SELinux-Erweiterung, eine Testsuite hilft Sicherheitsanforderungen zu erfüllen, wie beispielsweise das „Configuration Recommendations of a GNU/Linux System“ (Konfigurationsempfehlungen für ein GNU/Linux-System) der französischen Cybersecurity-Nationalbehörder "Agence nationale de la sécurité des systèmes d'information" (ANSSI). Diese Testsuite kann auch für den „IT-Grundschutz“ des deutschen Bundesamtes für Sicherheit in der Informationstechnik (BSI) angepasst werden.

Die Sicherheit von ELinOS wird durch PikeOS als Host-Betriebssystem weiter gestärkt. PikeOS sorgt dafür, dass die Gastbetriebssysteme nicht auf Ressourcen zugreifen können, die nicht zugewiesen wurden. Dadurch ist das Betriebssystem in seiner Umgebung eingekapselt, so dass Angreifer nicht ausbrechen können.

Beispielimplementierung mit ELinOS

Als Beispiel für ein mögliches Setup haben wir uns für einen einfachen Docker-Server entschieden, der als Immutable-OS-Host läuft. In einem solchen Fall ist der größte Teil des Dateisystems schreibgeschützt, nur der Docker-Speicher (Docker-Images, Container und die jeweiligen Anwendungsdaten) ist beschreibbar und über Systemneustarts hinweg persistent.

Technisch gesehen wird das Root-Dateisystem vom ELinOS mkefs-Build-System in Form eines squashfs-Images vorbereitet. Darauf befinden sich das Init-System systemd, verschiedene Systemdienstprogramme und die Docker-Binärdateien. Während des Systemstarts mountet systemd einen externen Speicher und startet anschließend den Docker-Daemon. Sobald ein Docker-Image erstellt wurde, kann der jeweilige Container das Storage auch nach einem Neustart nutzen.

Um ein solches System in Zukunft zu aktualisieren, muss lediglich das squashfs-Image mit den aktualisierten Paketen und/oder der Konfiguration neu erstellt, auf das Zielsystem aufgesetzt und neu gebootet werden. Das Docker-Image bzw. der Containerspeicher bleiben von der Aktualisierung unberührt. Natürlich nur, solange sich das Speicherformat des Docker-Daemons nicht ändert.

Fazit

Immutable Linux bietet eine vielversprechende Möglichkeit, die Sicherheit und Verlässlichkeit von eingebetteten Systemen zu verbessern. Durch die Verwendung von Dur kann das System besser gegen Malware und unberechtigte Zugriffe abgesichert werden. Die Anwendungsmöglichkeiten von Immutable Linux sind vielfältig und reichen von Netzwerksicherheitsgeräten bis hin zu Wearables. Allerdings erfordert die Implementierung von Immutable Linux in ein eingebettetes System eine sorgfältige Planung und Konfiguration, um sicherzustellen, dass das System flexibel genug ist, um notwendige Änderungen zu erlauben. Insgesamt ist Immutable Linux eine Möglichkeit, eingebettete Systeme sicherer und verlässlicher zu machen und ist daher für Entwickler und Systemarchitekten von großem Interesse. (bs)

Simon Jakob, Sysgo
(Bild: Sysgo)

Simon Jakob

Digital Content Manager bei Sysgo

Sie möchten gerne weiterlesen?