Mikrokernel-Betriebssysteme zum Schutz vor Bedrohungen für Smart-Geräte

Warum solche Betriebssysteme in Märkten mit erhöhtem Sicherheitsbedarf an Bedeutung gewinnen.

Für das Jahr 2030 wird erwartet, dass die Zahl der weltweit vernetzten Geräte auf 24 Milliarden steigen wird. Diese Statistik schließt zahlreiche Haushaltssysteme sowie Zubehör ein: smarte Uhren, Fitnessbänder, Lautsprecher mit intelligenten Sprachassistenten und alle Geräte, die diese steuern. Außerdem umfasst sie smarte Geldautomaten, POS-Terminals, Videoüberwachungskameras und dergleichen. All diesen Geräten vertrauen Nutzer ihre sensiblen Daten an, sind aber nicht in der Lage, deren Sicherheit zu kontrollieren. Gleichzeitig werden IoT-Geräte immer häufiger zum Zielobjekt von Angriffen. Und auch wenn Anbieter versuchen, das Problem herunterzuspielen, wird die IoT-Sicherheitsproblematik immer relevanter – insbesondere für Ökosysteme mit mehreren vernetzten Geräten.

So haben Forscher von Check Point bereits im Jahr 2020 mit einem Angriff auf ein Netzwerk über eine smarte Glühbirne experimentiert. Sie schafften es, eine smarte Glühbirne mit manipulierter Firmware zu versehen und damit Malware auf einem Gerät zu installieren, das das Beleuchtungssystem kontrollierte. Auf diese Weise gelang es ihnen, in das lokale Netzwerk einzudringen. Die Schwachstelle wurde zwar umgehend geschlossen, doch wer garantiert, dass ein ähnlicher Trick nicht auch mit anderen IoT-Sicherheitslücken durchgeführt werden kann?

Ein weiteres Beispiel, bei dem es um eine Sicherheitslücke in den koreanischen Smart-Locks von KeyWe ging, ist sogar noch schlimmer. Neben Fehlern im Schlüsselgenerierungsprozess entdeckten die Forscher auch einige grundlegende Designprobleme. Diese ermöglichten es den Angreifern, die Passwörter der Schlösser relativ leicht abzufangen und zu entschlüsseln. Zudem wurde festgestellt, dass es nicht möglich war, die Firmware mit einem Sicherheits-Patch zu aktualisieren – die Schwachstelle konnte nur bei neuen Schlössern behoben werden, die den erwähnten Design-Fehler nicht aufwiesen.

Das letzte Beispiel zeigt, dass IoT-Sicherheitslücken auf der Design-Ebene des Systems entstehen können. Um derartige Probleme zu vermeiden, haben sich in den letzten Jahren eine Reihe von Anbietern auf Mikrokernel-basierte Betriebssysteme konzentriert. Bei der Mikrokernel-Architektur enthält der Kernel ein Vielfaches an Code im Vergleich zum Kernel eines herkömmlichen Systems und führt nur die unbedingt erforderlichen Funktionen aus – was ihn verlässlicher und fehlertoleranter macht.

Die Beliebtheit von Mikrokernel-Betriebssystemen übertrifft die von Windows und Android

Fragt man Nutzer von Desktop-Computern nach dem beliebtesten Betriebssystem, das sie kennen, ist die Antwort mit Sicherheit Windows. Der Anteil am weltweiten Betriebssystemmarkt liegt tatsächlich bei 72 % – gerechnet nach der Anzahl der Computer, auf denen Windows installiert ist. Die wenigsten Nutzer machen sich jedoch Gedanken darüber, was eine Ebene tiefer vor sich geht: auf der Mikrochip- und Mikrocontroller-Firmware-Ebene. Dort ist MINIX, das auf der Mikrokernel-Architektur basiert, das am weitesten verbreitete Betriebssystem. Dieses OS wird mit der Intel ME 11-Firmware geliefert. Heutzutage ist es in allen mit Intel-CPUs ausgestatteten PCs und Laptops vorhanden, was zwei Drittel des х86-CPU-Marktes ausmacht.

Ähnlich verhält es sich auf dem Markt für mobile, tragbare und eingebettete Geräte. Der Favorit ist hier Android. Doch auch hier gilt, dass Mikrokernel-Betriebssysteme auf diesem Markt nicht weniger verbreitet sind, auch wenn sie eher im Hintergrund stehen. Eine der ältesten Implementierungen der Mikrokernel-Architektur auf dem mobilen Markt ist QNX. Es wurde in den 1980er Jahren für kritische Industriemaschinen entwickelt und später in Radarstationen der Marine eingesetzt. Seine neuere Version, QNX Neutrino, ist heute in Cisco-Routern und in der Firmware von Hunderten von Millionen von Kraftfahrzeugen zu finden.

Moderne Schnittstelle für Fahrzeug-Firmware vorgeschlagen im Jahr 2017

Moderne Schnittstelle für Fahrzeug-Firmwarevorgeschlagen im Jahr 2017

 

Nicht zu vergessen sind auch andere Geräte mit Mikrokernel-Firmware, z. B. auf der L4-Kernel-Familie basierende Systeme, darunter Qualcomm-Modems und OKL4-basierte Systeme für die Automobilindustrie, deren Beliebtheit im Jahr 2012 ihren Höhepunkt erreichte.

MINIX und L4 sind sicherlich nicht die relevantesten Anwendungen, die es gibt. Man könnte sie sogar als altmodisch bezeichnen. Doch die Entwicklung von Mikrokernel-Betriebssystemen ist an dieser Stelle nicht zum Stillstand gekommen: Ihre Entwicklung wurde von einer Reihe von Anbietern moderner Smart-Ökosysteme fortgeführt:

– Ein Mikrokernel-Betriebssystem mit dem Codenamen Horizon bildet die Grundlage für die Spielkonsole Nintendo Switch. Der Öffentlichkeit stehen nur wenige Informationen über das Betriebssystem selbst zur Verfügung, da es sich um ein proprietäres System handelt.

– Im Januar 2023 fanden die Journalisten von 9to5google heraus, dass der neue Google Nest-Lautsprecher sehr wahrscheinlich mit Fuchsia ausgeliefert wird – ein Betriebssystem mit dem Mikrokernel Zircon als Kernelement.

– Im November 2022 gab Huawei bekannt, dass bereits 320 Millionen seiner Geräte mit HarmonyOS ausgestattet sind – einem auf dem HongMeng-Kernel basierenden Mikrokernel-Betriebssystem für tragbare Geräte und IoT. Bis Ende des Jahres 2022 machten Geräte, die mit HarmonyOS ausgestattet sind, 2 % der gesamten weltweiten Smartphone-Verkäufe aus. Im April 2023 wurde dann die neue Version HarmonyOS 3.1 auf den Markt gebracht.  Nach Aussage der Entwickler haben sie bei der Systemoptimierung einen enormen Fortschritt gemacht.

Doch warum sind die Hersteller in diesem Bereich so aktiv? Einerseits liegt es an der Entwicklung des IoT-Marktes. Zum anderen ist das Vertrauen in den traditionellen, übergeordneten Schutz erschüttert, der in der IoT-Welt nicht effektiv genug ist.

So können Anbieter von Mikrokernel-Firmware IoT-Systeme schützen

Wie der oben erwähnte Fall des Hijackings einer smarten Glühbirne gezeigt hat, basieren IoT-Ökosysteme häufig auf mehreren miteinander verbundenen Mikrocontrollern und Sensoren. Angreifer tendieren in der Regel dazu, ungeschützte Endgeräte gezielt als Einstiegspunkt zu nutzen, um später durch eine Erweiterung der Privilegien die Kontrolle über das gesamte System zu übernehmen. Die Ausstattung jedes noch so kleinen Geräts mit ausgeklügelten Schutzmechanismen ist wirtschaftlich nicht vertretbar. Daraus ergeben sich zwei grundlegende Probleme:

– Die Glaubwürdigkeit. Wir alle möchten dem integrierten Systemschutz vertrauen. Im Bereich des IoT haben wir es mit vielen kleinen Elementen zu tun, denen man nicht trauen kann. Dieses Problem kann man auf zwei Arten angehen: Man kann versuchen, jedes dieser Elemente so gut wie möglich zu schützen, oder man beginnt damit, ihre Einschränkungen zu erkennen und das System so zu gestalten, dass es selbst mit solchen Elementen an Bord immer noch sicher ist.

– Kontrolle der Interaktionen. In einem großen System arbeiten in der Regel keine Elemente in einem geschlossenen Kreislauf: Sie „kommunizieren“ untereinander und haben oft die Befugnis, bestimmte Handlungen aneinander vorzunehmen. Bei einem System, in dem man nicht allen Elementen trauen kann, sollten diese Interaktionen und Privilegien begrenzt und mit einigen Kontrollmitteln überwacht werden.

So lassen sich die Probleme mit Mikrokernel-Betriebssystemen angehen:

  1. Bei Microkernel-Betriebssystemen wird zwischen vertrauenswürdigen und nicht vertrauenswürdigen Komponenten unterschieden. Die Architektur besteht aus mehreren miteinander kommunizierenden, isolierten Komponenten, die praktischerweise als nicht vertrauenswürdig oder vertrauenswürdig eingestuft werden können. Der Kernel gehört zu den vertrauenswürdigen Komponenten: Er erfüllt nur die nötigsten Funktionen und enthält so gut wie keine Codezeilen; alle Treiber, Dateisysteme und dergleichen werden in separate Komponenten außerhalb des Kernels verlagert. Auf diese Weise lassen sich die Systemelemente, deren Code wir gezwungen sind, zu vertrauen, auf ein notwendiges und ausreichendes Minimum beschränken.

 

Je weniger vertrauenswürdige Codezeilen das System enthält, desto besser, da es einfacher und schneller ist, solchen Code auf Fehler zu überprüfen. Aus diesem Grund versuchen die Hersteller, den Mikrokernel so klein wie möglich zu halten: Dies erleichtert die Vertrauensvalidierung (mehr dazu später).

 

  1. Mikrokernel-Betriebssysteme isolieren die meisten privilegierten Komponenten und betreiben sie im Benutzermodus. Bei Mikrokernel-Betriebssystemen ist der Kernel für die Isolierung der Komponenten verantwortlich: jede Komponente befindet sich in ihrem eigenen Adressbereich. Der Mikrokernel liefert einen Mechanismus für den Austausch von Nachrichten zwischen den Komponenten, plant die Abläufe und kontrolliert Speicher, Zeiten und Unterbrechungen.

 

Die vertrauenswürdigen und nicht vertrauenswürdigen Komponenten, die im Benutzermodus betrieben werden, haben gerade so viele Privilegien, wie sie für die Ausführung ihrer Funktionen benötigen.

 

  1. Mikrokernel-Betriebssysteme haben zusätzliche Fähigkeiten und Tools zur Interaktionskontrolle. In einem Mikrokernel-OS ist jede Aktion mit dem Senden einer Nachricht gleichzusetzen (Kommunikation). Wie schon erwähnt, steuert der Mikrokernel den wichtigsten Mechanismus zur Nachrichtenübermittlung. Darüber hinaus setzen Mikrokernel-Betriebssysteme oft den Mechanismus der “ Objekt-Fähigkeiten “ ein, der es unter anderem erlaubt, die Einrichtung neuer Kommunikationskanäle zu kontrollieren.

Was all diesen Mechanismen fehlt, sind Optionen zur Verifizierung des Vertrauens. Einigen Komponenten muss einfach vertraut werden, das ist wahr; aber wie wäre es mit „probieren bevor man vertraut“? Wie können wir von „muss vertraut werden“ zu „vertrauenswürdig“ übergehen?

Es gibt verschiedene Möglichkeiten, um sicherzustellen, dass ein Element vertrauenswürdig ist: Tests, unterschiedliche Analysemethoden, formale Spezifikation und Verifizierung. Alle diese Methoden ermöglichen die Umsetzung einer nachweisbaren Sicherheit, bei der wir unser Vertrauen nicht auf den Ruf des Anbieters, sondern auf die Ergebnisse einer reproduzierbaren Verifizierung setzen. Dies bildet den Kern vieler anerkannter Sicherheitsmodelle, z. B. MILS, oder Sicherheitsbewertungsstandards und -kriterien wie den „Common Criteria“. Wir gehen davon aus, dass solche Methoden und Modelle in Zukunft immer häufiger zum Einsatz kommen werden.

In der nahen Zukunft werden neue Generationen von Mikrokernel-Betriebssystemen dazu beitragen, verifizierbare Sicherheit und Cyber-Immunität zu erreichen.

Ausgehend von einer Langzeitstudie über die besten Schutzpraktiken haben wir auf der Grundlage verifizierbarer Sicherheitsprinzipien unseren eigenen cyberimmunen Ansatz entwickelt, den wir für den Aufbau inhärent sicherer IT-Systeme verwenden werden. Cyberimmunität ist eine Umsetzung des Secure by Design-Ansatzes, bei dem die Informationssicherheit in jeder einzelnen Entwicklungsphase im Mittelpunkt steht.

In cyberimmunen Systemen werden alle Interaktionen typisiert und überprüft: Ein spezieller Monitor kontrolliert die gesamte Kommunikation zwischen den Prozessen. Das Modul ist in der Lage, alle zwischen den Prozessen ausgetauschten Daten einzusehen und bei sicherheitsrelevanten Entscheidungen zu berücksichtigen. Durch Tests, statische und dynamische Analyse, Fuzzing, Pentesting und formale Methoden wird dann das Vertrauen überprüft.

Das Mikrokernel-basierte KasperskyOS ist das erste Betriebssystem, das diesen Ansatz unterstützt und als Plattform für die Entwicklung von cyberimmunen Produkten dient. Im Allgemeinen vereint diese Methode jedoch die besten Sicherheitsprinzipien, die es gibt, und ist unabhängig davon, welche Implementierungstools verwendet werden. Deshalb erwarten wir, dass diese Prinzipien ihren Weg in andere Mikrokernel-Geräte-Firmware-Anwendungen finden werden.

Tipps