Sicherheit durch Separation Quarantäne für die Software

Single-Core-System im Embedded-Bereich
Single-Core-System im Embedded-Bereich

Virtualisierung dient im Embedded-Bereich vor allem zur Trennung von Software-Applikationen untereinander und zum Betriebssystem. Aber nicht nur: bei guter Virtualisierungsunterstützung der Hardware können Single-Core-Systeme auch die Aufgaben eines Multi-Core übernehmen.

Mikrocontroller (MCUs) finden sich heute in fast jeder Anwendung: in traditionellen Bereichen wie Industriemaschinen und Automobilelektronik genauso wie in Wearables und „intelligenter“ Kleidung. Immer häufiger sind Mikrocontroller zudem vernetzt, d.h. sie sind mit Bluetooth Smart, stromsparendem WiFi, NFC und Zigbee ausgestattet. Vernetzte MCUs müssen ihren eigenen Zustand und ihre Ressourcen kontrollieren, Sen¬sordaten erfassen und verarbeiten, Berechnungen ausführen und einen sicheren Speicher bieten. Sie müssen auch mit einem entfernten Host kommunizieren, um eine Datenübertragung, Plattform-Management und Software Updates (per Funk) zu ermöglichen. Da Embedded-Anwendungen immer anspruchsvoller und immer häufiger vernetzt werden, steigen auch die Bedrohungen von außen. Sicherheit muss daher an erster Stelle schon in der Entwicklungsphase stehen – und nicht erst im Nachhinein.

Ein Mikrocontroller bietet verschiedene Möglichkeiten, Sicherheit zu integrieren. Dazu zählen sicheres Booten und sichere Code-Updates. CPUs mit einer Speicherschutzeinheit (MPU; Memory Protection Unit) können die Systemsicherheit erhöhen, indem sie unbefugten Zugriff auf den Boot-Code und die Ausführung nicht vertrauenswürdigen Kernel-Mode-Codes verhindern. Schlüssel- und Manipulationsschutz sind weitere wichtige Sicherheitsmaßnahmen. Manipulationsschutz kann externe Snooping-/Spionier-Einrichtungen daran hindern, den internen Speicher auszulesen oder herauszufinden, welcher Code ausgeführt wird. Damit steht eine weitere Sicherheitsebene gegen potenzielle externe Angriffe zur Verfügung.

Ein weiteres Mittel zur Verbesserung der Sicherheit ist die Hardware-Virtualisierung, die einige CPUs bieten. Damit lassen sich „Mikro“-Controller erstellen, die mehrere, nicht modifizierte, isolierte Anwendungen unabhängig und sicher betreiben – und das gleichzeitig auf einer einzigen, vertrauenswürdigen Plattform. Endkunden können diese Funktionen nutzen, um einen sicheren Pfad für Updates/Downloads bereitzustellen, und profitieren dann von einem verbesserten IP-Schutz.

Warum Mikro-Virtualisierung?

Hardware-Virtualisierung ist seit Langem mit Server-Prozessoren verknüpft. Sie kommt seit vielen Jahren auf 64-bit-Servern zum Einsatz und hat sich bewährt. Virtualisierung ermöglicht die Konsolidierung mehrerer ähnlicher oder ungleicher Lasten in Datenzentren, um die Investitionskosten in Hardware und Infrastruktur als auch die Betriebskosten (Stromverbrauch, Kühlung etc.) zu verringern.
Bei einer Embedded-Plattform erfolgt die Virtualisierung auf eine andere Weise: Der Hauptzweck ist, Sicherheit durch Trennung zu gewährleisten. Wobei Sicherheit definiert ist als die Fähigkeit, das Verhalten von Gast-Software zu isolieren, zu steuern und zu forcieren. Diese Technik ermöglicht die Konsolidierung verschiedener Embedded-CPUs in einem einzigen Core, was die Chipfläche und den Entwicklungsaufwand verringert. Damit verringern sich letztendlich die Gesamtkosten und die Batterielebensdauer steigt.

Alles beginnt mit der Trennung bzw. Isolation. Bei der Virtualisierung können gemeinsame Ressourcen auf einer Hardware-Plattform in logisch getrennte Umgebungen unterteilt werden, genannt virtuelle Maschinen (VMs). Jede VM besteht aus Anwendungen und entsprechenden Betriebssystemen (falls erforderlich). Durch Hardware-Virtualisierung lassen sich kritische Ressourcen wie Kommunikationsschnittstellen (und Software Stacks) sowie Speicher in ihren eigenen Adressräumen trennen und schützen. Damit ist sichergestellt, dass kein Zugriff von/auf einen anderen Anwendungs-Adressraum besteht.

Eine einfache Darstellung der Virtualisierung in einer Embedded-Umgebung ist in Bild 1 dargestellt. Die Mips-M5100- und M5150-IP-Cores nehmen wenig Platz auf der CPU ein und sorgen für eine Trennung (Isolierung) von bis zu sieben Gastsystemen. Zum Vergleich: In den meisten heutigen virtualisierten Embedded-Anwendungen finden sich bis zu drei isolierte Umgebungen. Die M51xx-CPUs ermöglichen weitere Skalierbarkeit für die Zukunft.

Sobald die kritischen Ressourcen vor potenziellen Schwachstellen geschützt sind, wird die nächste Schutzebene implementiert und Vertrauen für jede isolierte Umgebung sichergestellt. Eine Hardware Root of Trust (RoT) und zugehörige Sicherheitsdienste dienen dazu, Vertrauen herzustellen – sowohl über Authentifizierung als auch für mehr Privatsphäre. Die virtualisierte Plattform basiert auf einem vertrauenswürdigen Hypervisor, der die VMs erstellt und verwaltet. Diese wird auf dem höchstprivilegierten Root Level des Prozessors ausgeführt.

Die strukturelle Integrität des Hypervisor bleibt durch Einhaltung eines vertrauenswürdigen Boot-Prozesses erhalten. Die operative Integrität wird nicht beeinträchtigt, da der Hypervisor auf seinem eigenen, von der Hardware bereitgestellten Kontext läuft und auf seinen eigenen Adressraum isoliert ist. Jeder Adressraum ist durch die Root Memory Management Unit (MMU) geschützt, deren Inhalte unmittelbar nach dem Booten gesperrt werden können, um die absolute Isolierung aller Adressräume zu gewährleisten.

Bild 2 zeigt die möglichen Vorteile der Virtualisierung in Embedded-Anwendungen. In diesem Fall ist eine Mips-CPU M5150 so konfiguriert, dass sie bis zu drei verschiedene isolierte Umgebungen unterstützt. Jede Umgebung ist von den anderen Umgebungen isoliert und geschützt, einschließlich der Speicher und I/Os. Die bereitgestellten RoT- und Sicherheitsdienste sind generell der vertrauenswürdigen Umgebung zugewiesen. RoT-Sicherheitsdienste, die von anderen Umgebungen (VM2 oder VM3) angefordert werden, werden von der sicheren Umgebung VM1 umgeleitet und verwaltet.