SECURITY-Architektur für Multicore-Prozessoren Mehrere Schichten schützen besser

Angriffsversuche aus dem Netz auf zivile und auch militärische Infrastrukturen kommen immer häufiger vor. Eine mögliche Grundlage, um kritische Systeme vor solchen Cyber-Attacken zu schützen, sind Separation-Kernel mit exakter Rechtevergabe auf verschiedenen Ebenen.

Als Reaktion auf die zunehmende Zahl versuchter und erfolgreicher Angriffe haben viele Staaten Richtlinien für die Datensicherheit im Internet entwickelt, sogenannte »Cyber Security Policies«, welche die Ziele zum Schutz wichtiger In-frastrukturen vor Cyber-Angriffen definieren. Außerdem wurden zahlreiche Strategien und Architekturen erarbeitet, um diese Ziele zu erreichen. Im Folgenden geht es um die MILS-Systemarchitektur (Multiple Independent Levels of Security) für hochsichere Systeme und darum, wie sich diese auf Multicore-Prozessorarchitekturen implementieren lässt.

Schon lange vor den Online-Zeiten gab es unterschiedliche Einstufungen für die Datensicherheit auf der Grundlage von Kriterien wie Vertraulichkeit, Integrität und Verfügbarkeit. Traditionell wurden Informationen unterschiedlicher Einstufung physisch voneinander in separaten Bereichen (Domains) isoliert, zunächst manuell und später in Computersystemen. Inzwischen soll der Informationsfluss zwischen diesen Domains immer mehr automatisiert werden. Dies ermöglicht auf unterschiedlichen Gebieten wie etwa bei Unternehmen, im Bankwesen, bei Behörden und beim Militär eine schnellere Entscheidungsfindung. Herkömmliche MLS-Computersysteme (Multi-Level Security) waren als Brücken zwischen Domains aufgebaut und nutzten mehrere physikalisch getrennte Computer, Netzwerke und Displays. Diese als »Air Gap Security« bekannte Technik setzt teure Geräte voraus mit entsprechendem Bedarf hinsichtlich Größe, Gewicht sowie Leistung und schränkt den Benutzer stark ein.

Daher wurde vor Jahren das MILS-Konzept als alternativer Ansatz für Embedded Systeme mit hohen Sicherheitsanforderungen vorgeschlagen. Seine Architektur ist ein Schichtenmodell mit einem Separation-Kernel (SK) der vier fundamentale Sicherheitsrichtlinien berücksichtigt:

  • Datenisolation: stellt sicher, dass eine Partition nicht auf Ressourcen in anderen Partitionen zugreifen kann. 
  • Periodische Verarbeitung: stellt sicher, dass die Applikationen in den Partitionen nicht mehr als die ihnen zugewiesene CPU-Zeit verbrauchen können. 
  • Informationsfluss: definiert die zulässigen Informationsströme zwischen Partitionen. 
  • Fehlerisolation: definiert, dass ein Fehler in einer Partition andere Partitionen im System nicht beeinträchtigt. 

Diese vier Richtlinien schaffen eine Architektur, bei der sich der Separation-Kernel nicht umgehen lässt (Non-bypassable) sowie evaluierbar (Evaluable), stets aktiv (Always invoked) und manipulationssicher (Tamper proof) ist – kurz NEAT. Der kleine Separation-Kernel und das in Schichten organisierte Sicherheitskonzept bedeuten, dass sich die Menge an Code, die man im Rahmen einer Evaluierung einer intensiven Untersuchung unterziehen müsste, sehr klein halten lässt. Dies verkürzt die Evaluierungszeit – ein wichtiger Vorteil bei der Entwicklung eines hochsicheren Systems, das einer strengen Überprüfung unterzogen wird.

Bei der Implementierung von MILS-Systemen auf Singlecore-Prozessorarchitekturen finden die vom Prozessor bereitgestellten Hardwarefunktionen Verwendung, um die vier grundlegenden Sicherheitsrichtlinien für die Daten-sicherheit umzusetzen. Auch werden damit unbeabsichtigte, verborgene Kommunikationskanäle zwischen Applikationen, bekannt als »Covert Channels«, minimiert. Erfahrene Angreifer nutzen diese häufig, um das System zu kompromittieren. Weil Singlecore-Prozessoren seit vielen Jahren im Einsatz sind, sind die Eigenschaften von Covert-Channels bei diesen Architekturen bekannt, sodass sich geeignete Gegenmaßnahmen bereits in der MILS-Implementierung umsetzen lassen.

Von einem zu mehreren Kernen

Für eine größere Leistungsfähigkeit der Singlecore-Prozessoren wurde bis vor wenigen Jahren vor allem die Taktfrequenz erhöht, doch aufgrund der beachtlich steigenden Leistungsaufnahme stieß dieses Vorgehen an seine Grenzen. Die Halbleiterhersteller konzentrieren sich daher auf die Entwicklung von Multicore-Prozessorarchitekturen, um bei geringerem Energieverbrauch eine höhere Leistungsfähigkeit zu erreichen. Das Aufkommen der Multicores bedeutete jedoch einen gewaltigen Umbruch für die Softwareentwicklung, da Applikationen und Systeme anders entwickelt werden müssen, um die potenziell verfügbare Performance auch tatsächlich nutzen zu können.

Multicore-Prozessoren bringen auch bei hochsicheren Systemen neue Herausforderungen für die Datensicherheit vor allem in Bezug auf die Isolation von Applikationen und die Separation der Cores mit sich, da Applikationen nun tatsächlich gleichzeitig laufen können.

Forschungsarbeiten auf diesen Gebieten wurden in den vergangenen Jahren vor allem im Zusammenhang mit Safety-Systemen durchgeführt, zum Beispiel in der Luft- und Raumfahrt. Auch wenn die Zielsetzung dort eine andere ist, überschneiden sich die Anforderungen doch in erheblichem Maße. Jüngste Forschungsarbeiten der EASA (European Aviation Safety Agency, Europäische Agentur für Flugsicherheit) haben erneut die Probleme bei der Bewertung der Eignung einzelner Multicore-Prozessorarchitekturen für Anwendungen in der Luftfahrt hervorgehoben, vor allem aufgrund von Konflikten bei der gemeinsamen Nutzung von Ressourcen.

Diese Problematik beeinflusst möglicherweise die Covert-Channels bei hochsicheren Systemen. Weitere Analysen ergaben jedoch auch, dass einige Multicore-Prozessordesigns bereits Hardware-Features bieten, die sich nutzen lassen, um die Applikationen zu isolieren und die Cores zu separieren. Das Ergebnis ist, dass bei der Wahl von Multicore-Prozessorarchitekturen für hochsichere Systeme eine äußerst sorgfältige Untersuchung erforderlich ist.

Domänenübergreifende Lösungen

In kritischen Infrastrukturen gibt es immer auch Systeme, die eine Rolle als Gateway zwischen Netzwerken oder Domains mit unterschiedlichen Klassifikationen spielen. Diese Gateways sind ein Beispiel für Cross-Domain-Lösungen (CDS), bei denen Daten mit unterschiedlichen Einstufungen verarbeitet werden müssen. Solche Gateways können in zahlreichen Umgebungen zum Einsatz kommen, zum Beispiel zwischen einem Unternehmensnetzwerk und dem öffentlich zugänglichen Internet oder zwischen Netzwerken von Regierungsorganisationen oder Verteidigungseinrichtungen mit unterschiedlichen Informationssicherheitsrichtlinien. CDS-Systeme müssen dabei nicht autorisierte Datenströme zwischen Domains verhindern. Ferner müssen sie in hohem Maße gewährleisten, dass sie Cyber-Angriffen standhalten können und etwa Netzwerke von Regierungsorganisationen oder Verteidigungseinrichtungen vor sogenannten »Advanced Persistent Threats« (APT) schützen.

In jedem dieser Fälle ist der verallgemeinerte Anwendungsfall (Use Case) und die Topologie identisch (Bild 1). Die CDS-Lösung ist an zwei verschiedene Netzwerke angebunden und sollte über eine Applikation verfügen, um Nachrichten von einem Netzwerk zu empfangen und sie an einen »Wächter« (Guard) weiterzuleiten. Der Guard bestimmt, ob die Nachricht weitergeleitet oder verworfen wird. Diese Entscheidung basiert auf einer definierten Sicherheitsrichtlinie und einer Untersuchung des Nachrichteninhalts. Eine ähnliche Konfiguration mit einem separaten Wächter (und möglicherweise einer anderen Sicherheitsrichtlinie) würde in umgekehrter Richtung arbeiten.

Dieses CDS-System könnte man auf einer MILS-Plattform mit einem Singlecore-Prozessor und mindestens vier Partitionen implementieren: Sender/Empfänger für Domain A, Guard für Domain A, Sender/Empfänger für Domain B und Guard für Domain B (Bild 2).

Diese Applikationen wären durch den MILS-Separation-Kernel sicher voneinander isoliert, nur autorisierte Informationsströme entsprechend der Sicherheitsrichtlinie für das System wären erlaubt. In einem typischen System würde man diese Architektur um zusätzliche Partitionen erweitert für die sogenannte »Attestation« verwenden, das heißt die vertrauenswürdige Initialisierung der Hardware und die Prüfung, dass die Software nicht manipuliert wurde.

Außerdem kümmern sich die zusätzlichen Partitionen um die Systemkonfiguration, um je nach Sicherheitsrichtlinie und Bedrohungsszenario verschiedene Guard-Konfigurationen zu ermöglichen.

Das CDS-System lässt sich auch mit MILS auf einem Multicore-Prozessor implementieren, was eine größere Vielfalt von Konfigurationen ermöglicht und das Potenzial für eine höhere Systemperformance als bei einer Singlecore-Implementierung bietet, da mehrere Applikationen gleichzeitig auf verschiedenen Kernen ausgeführt werden können. Allerdings ist hier große Sorgfalt anzuraten, um das Potenzial für Covert-Channels zu minimieren. Dies lässt sich etwa erreichen, indem man die Applikationen unterschiedlichen Cores fest zuordnet und ein »Time-Sliced Synchronized Scheduling«-Konzept verwendet, um die Zahl der gleichzeitig verarbeiteten Security-Level oder Domains zu begrenzen. Die Folge ist, dass über einen potenziellen Covert-Channel nur Informationen der gleichen Klassifizierung oder Domain ausgetauscht werden.

Laufzeitumgebung

Die »VxWorks MILS-Plattform Multicore Edition« von Wind River bietet eine Laufzeitumgebung, die für Systeme mit hohen Anforderungen an die Informationssicherheit und die Performance entwickelt wurde. Die Plattform implementiert die MILS-Architektur und ermöglicht, mehrere Softwarekomponenten mit hohen Leistungsanforderungen in unterschiedlichen Domains und mit unterschiedlichen Niveaus der Informationssicherheit auf einer einzigen Hardwareplattform zu implementieren und dabei die Leistungsfähigkeit von Multicore-Prozessoren zu nutzen.

Das Tool unterstützt asymmetrisches Multiprocessing (AMP) bei Multicore-Prozessoren, das heißt auf jedem Kern läuft eine unabhängige Instanz von VxWorks MILS inklusive eigenem Separation-Kernel und Applikationen beziehungsweise Partitionen. Es stehen Funktionen zur Verfügung, welche die Kommunikation zwischen Partitionen auch auf verschiedenen Rechenkernen ermöglichen. Die Informationsströme steuern dabei die Separation-Kernels der Cores.

Durch die Verteilung von Softwarekomponenten auf Partitionen sowie die Zuordnung von Zeit- und Speicherressourcen lässt sich Sorge tragen, dass die Kontrolle des Informationsflusses und die Fehlerisolation zu den Sicherheitsrichtlinien des Systems konform sind. Mit der VxWorks-MILS-Plattform können sich Applikationen mit vertraulichen oder missionskritischen Daten neben Applikationen, die über unsichere Kanäle zum Beispiel mit dem Internet verbunden sind und nur mittlere oder geringe Anforderungen an die Informationssicherheit erfüllen müssen, auf dem gleichen System befinden.

Über den Autor:

Paul Parkinson ist Principal Systems Architect bei Wind River.