Embedded-Plattformen für Fernsehgeräte, Set-Top-Boxen, Automotive- und industrielle Steuerungen beschränken sich traditionell auf die wesentlichen Funktionen für das jeweilige Gerät. So war die TV-Elektronik früher darauf ausgelegt, das Gerät über simple Schalter und Fernsteuerungen zu betreiben. Es gab nur begrenzte oder gar keine Updates seitens des Herstellers und keinerlei Software von Drittanbietern.

Dies hat sich mit den neuen TV-Geräten grundlegend geändert. Sie sind vernetzt, intelligent und mit zahlreichen Diensten ausgestattet. OTA-Updates (Over the Air) gibt es heute sowohl für die Basis-Software des Geräts sowie für Software und Apps von Drittanbietern. Ein Smart-TV kann Multimedia-Inhalte aufbereiten, bietet Internet-Zugriff, Home-Security, On-Screen-Einkäufe und vieles mehr. In einigen Fällen stehen diese Dienste sogar gleichzeitig zur Verfügung. Haupt-Anwendungsprozessor und das zugehörige SoC-Subsystem müssen eine Reihe gleichzeitiger, voneinander unterschiedlicher Datenströme handhaben.

Ein offener Ansatz

Ein solcher Übergang von geschlossenen zu offenen Plattformen bringt eine Reihe von Herausforderungen mit sich. Die Hersteller müssen die neuen Dienste zuverlässig und sicher bereitstellen, verwalten und überwachen. Das wird bei Plattformen, die traditionell wenig oder gar keine Intelligenz aufweisen, noch komplexer, zum Beispiel bei Haushaltsgeräten. Heute sind sogar manche Kühlschränke und Geschirrspüler vernetzt. Sie müssen OTA-Updates unterstützen und gleichzeitig gewährleisten, dass sie nur die vom Hersteller installierte Software nutzen (und nicht geklont werden können). Eine große Herausforderung ist, die Sicherheit in den neuerdings vernetzten Produkten zu gewährleisten. Die meisten Hersteller haben wenig oder gar keine Erfahrung bei der Entwicklung sicherer Systeme.

Eckdaten

  • Garantierte Isolation kritischer Software über bis zu 255 sichere Domänen
  • Heterogen: CPU / GPU / Datenanbindung
  • Skalierbar: mehrere Threads, Cores, Cluster
  • Beschleunigt die Time-to-Market und Umsatzgenerierung – weniger QA-, Test- und Zertifizierungsaufwand
  • Bereitstellung von Software-Containern für Dienste von Drittanbietern

Offen sind Plattformen dann, wenn ihre Basissoftware die Ressourcen konfiguriert und kontrolliert. Sie arbeiten mit Software Dritter, die auf einem üblichen Betriebssystem (OS) läuft. Offene System brauchen meist ein leistungsstarkes OS, das zahlreiche Operationen und Dienste über Netzwerkverbindungen wie Wi-Fi, Ethernet, USB und PCI unterstützt. Eine solche OS-Code-Basis ist aber sehr groß, was die Validierung von Software, Treibern und entsprechenden Bibliotheken äußerst schwierig macht.

Viele Betriebssysteme bieten definitionsgemäß eine große Angriffsfläche. Es lässt sich praktisch nicht sicherstellen, dass alle Gerätetreiber und laufenden Anwendungen frei von Fehlern und Schwachstellen sind. Die Validierung des OS für alle möglichen Grenzfälle ist daher ein immenser Aufwand, der den Zertifizierungsprozess nahezu unmöglich macht.

Bild 1: Jeder defensive Sicherheitsmechanismus erfordert die Isolation, den Schutz und die Verwaltung kritischer Ressourcen. Isolation wird durch eine Reihe von Access Control Lists (ACL) erzwungen.

Bild 1: Jeder defensive Sicherheitsmechanismus erfordert die Isolation, den Schutz und die Verwaltung kritischer Ressourcen. Isolation wird durch eine Reihe von Access Control Lists (ACL) erzwungen. Imagination

Plattformen schützen

In der Praxis müssen Entwickler davon ausgehen, dass Angreifer jedes OS missbrauchen können. Damit stellt sich die Frage, wie sich die Plattform schützen lässt. Jeder defensive Sicherheitsmechanismus verlangt die Isolierung, den Schutz und die Verwaltung kritischer Ressourcen wie Code, Daten und Hardware (Bild 1).

Isolation lässt sich auf verschiedene Arten umsetzen, einschließlich physikalischer Trennung, rein softwarebasierter Virtualisierung und Support für hardwaregestützte Virtualisierung. Die virtualisierungsbasierte Isolation muss Regeln umsetzen, um den Datenfluss und den Zugriff auf die Geräteressourcen zu kontrollieren. Eine rein softwarebasierte Isolation braucht eine zusätzliche Firewall, um Schutz gegen Angriffe von außen zu gewährleisten. Die vernetzten Geräte zuhause sind meist vor Angriffen von außen geschützt, da ein Gateway vorhanden ist. Allerdings ist dabei die Robustheit der Firewall entscheidend. Dieser Fall berücksichtigt keine physikalischen Angriffe direkt auf das Gerät, da Attacken hier in Form von Cyber-Angriffen über das Netzwerk auftreten.

Ein Hybridmodell der Isolierung nutzt Hardware, um eine Trennung zu erzwingen, während privilegierte Software (Hypervisor) die Plattform verwaltet und steuert. Die Hardwarefunktionen isolieren Ressourcen wie Speicher und I/O, indem sie Memory Management Unit (MMU) und die IO-MMU steuern. Es gibt heute viele Techniken, die das Hybridmodell durch eine Binärmethode mit einem sicheren Bereich und einem unsicheren Bereich unterstützt – oder durch eine hardwaregestützte Virtualisierung, die eine robuste Lösung ermöglicht, die über diese Zweizonen-/Binärbarriere hinausgeht.

Bild 2: Virtualisierung kann die Plattformressourcen nutzen. Eine Plattform mit zwei USB-Schnittstellen kann so konfiguriert werden, dass eine der USB-Schnittstellen eine dedizierte Verbindung zu einem VM (Root) hat und die zweite USB-Schnittstelle zwischen anderen Gästen geteilt wird.

Bild 2: Virtualisierung kann die Plattformressourcen nutzen. Eine Plattform mit zwei USB-Schnittstellen kann so konfiguriert werden, dass eine der USB-Schnittstellen eine dedizierte Verbindung zu einem VM (Root) hat und die zweite USB-Schnittstelle zwischen anderen Gästen geteilt wird. Imagination

Die Vertrauensfrage

Die isolierten Umgebungen brauchen als nächstes Ziel einen Schutz, der Vertrauen implementiert und gewährleistet. Dazu zählt die Fähigkeit, die Plattform mit einem eindeutigen Satz an Schlüsseln zu verankern, um Verschlüsselung wie DRM zu unterstützen (Bild 2). Dies kann durch den Aufbau einer Root of Trust (RoT) und die Erweiterung des Vertrauens auf Anwendungen höherer Ebene wie Chain of Trust (CoT), einschließlich des Hypervisors und vertrauenswürdiger OS erreicht werden.

Die Verwaltung bildet den Abschluss und überwacht die kritischen Plattformressourcen (Code, Daten und Hardware-Ressourcen), um den beabsichtigten Betrieb sicherzustellen. Auf der Root-of-Trust-Ebene führt ein vertrauenswürdiger Agent Verschlüsselungsfunktionen aus, um die Authentizität der Plattform während dem Hochfahren und während des Betriebs zu gewährleisten. Dabei hält der Agent die Sicherheitsrichtlinien ein und führt Laufzeitüberprüfungen durch, um die Stabilität und Authentizität jedes Gastes sicherzustellen. Für das Lebenszyklusmanagement der Gäste und der Dienste, die darauf laufen, ist dies entscheidend. Dienste zur Installation eines neuen Dienstes oder zum Einstellen eines Dienstes werden über den vertrauenswürdigen Agenten (RoT oder CoT) abgewickelt. Der gleiche Agent kann eine Authentifizierung oder Bescheinigung aus der Ferne, OTA-Updates und mehr unterstützen.

Hardware- und Software-Abwägungen

Die Kosten, die im Zusammenhang mit der Virtualisierungssoftware (Hypervisor) entstehen, äußern sich in Form des Speicherbedarfs des flüchtigen (DDR-SRAM) und nicht-flüchtigen Speichers (Flash). Die Mehrkosten für die Trennung beschränken sind auf die Größe der implementierten Sicherheitsfunktionen (Verschlüsselung, Sicherheitsmonitor, sicheres OS, sichere Dienste, Root of Trust und mehr). Diese Kosten sind für die meisten der heutigen Embedded-Implementierungen bekannt.

Hardwaregestützte Trennung/Virtualisierung führt zusätzliche Logik ein. Diese stellt dem CPU-Core eine kleine Menge an Registern und Logik für die Root bereit (privilegierter Kontext) sowie für die beabsichtigte Anzahl an Gästen. Der Logikzuwachs ist vernachlässigbar in Relation zur gesamten SoC-Chipfläche. Er spart aber ein Menge an Software-Overhead für den Hypervisor und damit viele CPU-Zyklen. Dies führt zu einer wesentlich schnelleren Anwendungsausführung und nutzt die CPU-Ressourcen besser. Hardwaregestützte Virtualisierung sorgt also dafür, dass der SoC nicht mit einer niedrigeren Taktfrequenz auskommt, was den Gesamtstromverbrauch verringert.

Bild 3: Dienste dynamisch bereitzustellen (a) mit flexibler QoS-Umsetzung (Quality-of-Service) ermöglicht es dem Entwickler jedem Gastsystem eine eigene CPU-Bandbreite zuzuweisen (b).

Bild 3: Dienste dynamisch bereitzustellen (a) mit flexibler QoS-Umsetzung (Quality-of-Service) ermöglicht es dem Entwickler jedem Gastsystem eine eigene CPU-Bandbreite zuzuweisen (b). Imagination

Dienste dynamisch bereitstellen

Bild 3a beschreibt ein System, das in drei isolierte Domänen aufgeteilt ist – mit einer Root und zwei Gästen. Die Root ist der privilegierte Agent, der die Sicherheit, die vertrauenswürdigen Dienste sowie den Betrieb der anderen beiden Gäste verwaltet. Ein Gast kann so bereitgestellt und konzipiert sein, dass er geschützt ist und weitere isolierte, vertrauenswürdige Dienste unterstützt. Sinnvoll ist das bei orthogonalen Diensten, die ungleiche Robustheitsregeln und Sicherheitsmaßnahmen erfordern, zum Beispiel wenn medizintechnische, E-Commerce- und DRM-Softwaremodule jeweils einen anderen Satz an Richtlinien für den Schutz ihrer sensiblen Inhalte vorschreiben.

Ein Vorteil der Virtualisierung ist, dass die Root bestimmen kann, wie lange jeder Gast aktiv und inaktiv ist. Die Betriebszeit eines Gastes kann Root so lange wie nötig verlängern. Wie in Bild 3b zu sehen ist, nimmt zu Beginn Gast-1 den Zeitabschnitt t1 und t2 in Anspruch. Später wird nur ein einziger Zeitabschnitt t5 beansprucht. Diese dynamische Zuweisung der CPU-Bandbreite stützt sich entweder auf die Durchführung einer Task oder die Bearbeitung eines Prioritäts-Interrupts eines anderen Gastes oder einer anderen Root. Die Root kann zudem einen Gast für neue Dienste oder das Lebenszyklus-Management initialisieren und bereitstellen. Sie kann den Gast auch re-initialisieren – für den Fall, dass dieser kompromittiert ist.

Das offene und sichere IoT

Im IoT-Bereich, wo sich viele leistungsstarke und offene Anwendungen finden, die eine mögliche Angriffsfläche bieten, kann Virtualisierung Vorteile bei der Isolierung kritischer Ressourcen und Dienste bieten. Ein typisches, vernetztes, intelligentes IoT-System hat folgende Aufgaben:

  • Ressourcen steuern, zum Beispiel Ein-/Aus-Zustand oder Audio/Video
  • Sensordaten erfassen, etwa Bewegung und Verhalten
  • Daten verarbeiten, analysieren und sicher speichern
  • Mit einem sicheren Remote-Host kommunizieren für Datenaustausch und Plattformmanagement
  • OTA-Updates vornehmen
Bild 4: Isolation eines IoT-Geräts (gestrichelte Linie in der stilisierten Glühlampe); CPU und On-Chip-Memory (OCM) werden zwischen Root und Gast partitioniert.

Bild 4: Isolation eines IoT-Geräts (gestrichelte Linie in der stilisierten Glühlampe); CPU und On-Chip-Memory (OCM) werden zwischen Root und Gast partitioniert. Imagination

Durch die Trennung der kritischen und sensiblen Ressourcen in einem IoT-Gerät ist es möglich, eine Isolierung und den Schutz der Kommunikationsschnittstellen sowie des Software-Stacks zu erzwingen. Dies gilt auch für den Speicher und für andere Ressourcen. Bild 4 beschreibt, wie Virtualisierung die kritischen Geräteressourcen und Kommunikationskanäle eines IoT-Systems isoliert, während der angrenzende Gast frei auf seine zugewiesenen Ressourcen zugreift. Im Falle eines IoT-Hubs oder -Gateways können zusätzliche Gäste implementiert werden, um unterschiedliche Dienste zu trennen.

Bild 5: Omnishield trennt SoC-Ressourcen (einschließlich Fabric) in isolierten Umgebungen. Somit lässt sich Vertrauen durch die Implementierung der RoT (Root-of-Trust) erzwingen.

Bild 5: Omnishield trennt SoC-Ressourcen (einschließlich Fabric) in isolierten Umgebungen. Somit lässt sich Vertrauen durch die Implementierung der RoT (Root-of-Trust) erzwingen. Imagination

Omnishield

Geänderte Nutzungsmodelle bei vernetzten Geräten erfordern einen neuen Sicherheitsansatz, um OEM-Produkte und Betreiberdienste zu schützen. Omnishield von Imagination bietet diese Funktionalität. Omnishield-ready Hardware und Software-IP bietet eine skalierbare, sichere Lösung zum Schutz kommender SoC-basierter Systeme. Die Technik basiert auf einer Multi-Domain-separationsbasierten Architektur, die sich weit über den binären Ansatz hinaus skalieren lässt. Damit kann jedes sichere oder nicht-sichere Programm und Betriebssystem in seiner eigenen, isolierten, sicheren Domäne bestehen und unabhängig betrieben werden (Bild 5).

Omnishield verbessert die Sicherheit und Zuverlässigkeit und vereinfacht die Implementierung von Anwendungen und Diensten. Die Lösung ist skalierbar, um künftige heterogene Architekturen zu unterstützen, und die Zahl der sicheren Domänen wird nur durch die Hardware begrenzt. Gleichzeitig ist eine sichere Applikationsportabilität garantiert. In der IoT-Ära wird eine Multi-Domain-separationsbasierte Architektur es OEMs ermöglichen, vertrauenswürdige Produkte zu entwickeln, die mehrere Anwendungen und Betriebssysteme unterstützen.