Gängige Betriebssysteme (OS) wie Linux und Android mit ihrem Kernel und ihren Softwarepaketen, die aus Millionen von Codezeilen bestehen, sind in Embedded-Systemen heute weit verbreitet. Da es praktisch unmöglich ist, Millionen von Codezeilen zu testen, ist es unvermeidlich, dass Linux und Android weiterhin Sicherheitslücken und Softwarefehler enthalten. Einmal beeinträchtigt, kann ein Hacker die Sicherheit verletzen und die Kontrolle über das gesamte System übernehmen.

Embedded-Linux- und Android-Sicherheit

Eine Möglichkeit, die Sicherheit dieser Systeme zum Schutz vor ausgefeilten Angriffen zu erhöhen, besteht darin, einen auf einem sicheren Microkernel basierenden Hypervisor zu verwenden, um eine Trennung zwischen den Softwarekomponenten des Systems zu gewährleisten. Der Microkernel ist die sichere Software-Ebene unterhalb des Betriebssystems. Er läuft auf einer höheren privilegierten Ebene als das Betriebssystem und virtualisiert die Hardware-Ressourcen. Der Hypervisor ermöglicht dem Gastbetriebssystem sich so zu verhalten, als würde es direkt auf der Hardware ablaufen.

Aufgrund der höher privilegierten Ebene bleibt die Integrität des Hypervisors intakt, auch wenn das Betriebssystem kompromittiert wird. Ein Hypervisor, der von Grund auf sicher und zuverlässig ausgelegt ist, bietet erhebliche Vorteile gegenüber Hardware, die für die Umsetzung von Sicherheit auf niedriger Ebene verwendet wird. Außerdem kann er mehrere privilegierte Ebenen bereitstellen, so dass ein Dienst mit sensiblen Daten in einem isolierten Bereich oder einer Partition neben einem Dienst mit weniger sensiblen Informationen ausgeführt werden kann. Diese verschiedenen Sicherheitsstufen können gleichzeitig laufen, sind aber niemals in der Lage, sich gegenseitig zu beeinflussen oder zu modifizieren.

Mit einem Schutz auf mehreren Ebenen, wie etwa MILS (Multiple Independent Levels of Security), lässt sich gewährleisten, dass Systeme, die auf anfälligen Betriebssystemen basieren, sicher bleiben. Hier kommt die Virtualisierung ins Spiel: Sie bietet die Möglichkeit, ein Gastbetriebssystem auf einem (anderen) Host-Betriebssystem zu betreiben. Der Hypervisor stellt dem Gast die Virtualisierungsumgebung zur Verfügung. Da ein Hypervisor die Ausführung der verschiedenen Gastbetriebssysteme auf dem System umsetzt, bleibt die Isolation vollständig erhalten, was effektive Sicherheit garantiert und mit einer physikalischen Trennung vergleichbar ist.

Der Hypervisor-Kernel

Der Separationskernel wird unbestritten als das beste Betriebssystem-Design für Betriebs- und Datensicherheit angesehen: ein System, auf dem nur die minimale Menge an Code auf der höchsten privilegierten Ebene läuft. Der Separationskernel besteht aus Bereichen, die als Partitionen bezeichnet werden. In jeder dieser Partitionen läuft ein Softwareprozess. Innerhalb der Partition ist die Trennung nicht gewährleistet – wenn Fehler im Code auftreten oder dieser kompromittiert wird, verbleibt das Geschehen innerhalb der Partition, wobei der Betrieb oder das Verhalten anderer Partitionen oder des Separationskernels unverändert bleiben.

Virtualisierung, kombiniert mit einem Separationskernel, bietet fortschrittliche Funktionen für Entwickler von Embedded-Software, die:

  • sicherstellen, dass die heterogenen Softwarekomponenten frei von Störungen sind;
  • den Informationsfluss schützen;
  • die Daten- und Betriebssicherheit des Kommunikationssystems erhöhen (gegebenenfalls durch zusätzliche Filterung oder Verschlüsselung);
  • die Zuordnung von Geräten eindeutig verwalten und sicherstellen, sodass nicht beschriebene Ressourcen unzugänglich sind.

Der Separationskernel bringt all die Sicherheitsfunktionen mit, die ein Gastbetriebssystem nicht garantieren kann. Der für den Gast verantwortliche Teil des Hypervisors läuft im gleichen Adressbereich wie der Gast selbst und muss nicht notwendigerweise privilegierten Status haben. Er läuft als eigenständige Applikation auf dem Separationskernel. Dabei läuft ein nicht vertrauenswürdiges Gastbetriebssystem wie Linux oder Android in einer Partition. Damit wird Speicherressourcenschutz und die sichere Zugriffskontrolle für I/Os und andere Systemobjekte sichergestellt. Workloads lassen sich somit sicher und effizient über Cores verteilen.

Durch die Trennung von Systemkomponenten in verschiedene Partitionen müsste ein Hacker mehrere Partitionen kompromittieren, um sensible Daten modifizieren oder darauf zugreifen zu können – im Gegensatz zu einem einzigen Dienst, der kompromittiert wird, um Zugriff auf das gesamte System zu erhalten.

 

Lesen Sie auf der nächsten Seite: „Sensible Daten schützen“ und „I/O Device Handling“.

Seite 1 von 212