Software-Architekturen

MILS – Multiple Independent Levels of „Sicherheit“

| Autor / Redakteur: Jacques Brygier * / Franz Graser

Die Multiple-Level-Sicherheitsarchitektur

Das MILS-Konzept kommt ursprünglich aus dem militärischen Bereich, wo man mit monolithischen Kernen für sichere Anwendungen scheiterte, weil die Systeme wegen ihrer Größe und Komplexität nicht mehr zertifiziert werden konnten. Seit den 1990er Jahren wird die MILS-Idee auch für die Avionik im Standard ARINC 653 verwendet, um Systemsoftware von Anwendungssoftware zu trennen. Nach MILS werden Systeme in drei horizontale Ebenen mit unterschiedlichen Rechten und Stufen der Vertrauenswürdigkeit getrennt.

Bild 2: Die MILS Architektur unterscheidet drei Sicherheitszonen.
Bild 2: Die MILS Architektur unterscheidet drei Sicherheitszonen. (Bild: Sysgo)

Die unterste Ebene bildet die Hardware mit weiteren Plattform- und Security-Modulen. Auf Level 2 befindet sich der Separation Kernel, der die gesamte Kommunikation im System kontrolliert und Rechenzeit und Speicherzugriffe an die einzelnen Anwendungen zuteilt. Nur er ist für Hardwarezugriffe privilegiert und gilt hinsichtlich der Security als vertrauenswürdig. Ebenfalls vertrauenswürdig, jedoch nicht für Hardwarezugriffe privilegiert sind alle weiteren Module der Systemsoftware der zweiten Ebene. Mit ihnen wird das Gesamtsystem konfiguriert, organisiert und seine Funktionsfähigkeit überwacht. Alle Applikationen mit ggf. benötigten Betriebssystemschnittstellen, die alle als nicht vertrauenswürdig gelten und im User Mode laufen, sind der dritten Ebene zugeordnet.

Das MILS-Konzept formuliert für den Separation-Kernel die konsequente und einheitliche Durchsetzung mehrerer Sicherheitspolitiken, um die Vertrauenswürdigkeit des Systems zu sichern und zu erhalten. Diese Sicherheitspolitiken des Separation Kernels werden durch Sicherheitsfunktionen durchgesetzt, deren Implementierung auf ein absolutes Minimum reduziert ist, damit ihre Evaluierung und Zertifizierung möglich bleibt. Sie umfassen unter anderem:

  • Informationsfluss: Der Separation Kernel muss den Informationsfluss zwischen Hardware, Systemsoftware und Applikationen ermöglichen und stets kontrollieren;
  • Datenisolierung: Der Separation Kernel sorgt für eine Isolierung der Speicherbereiche und Ressourcen, die für die einzelnen Anwendungen vorgesehen sind;
  • Säubern der CPU-Register: Der Separation Kernel löscht alle Einträge in den CPU Registern, bevor eine andere Anwendung die CPU nutzen darf;
  • Schadensbegrenzung: Der Separation Kernel begrenzt Fehlfunktionen einer Applikation auf ihre Partition. Alle anderen Applikationen, die Systemsoftware und der Separation Kernel selbst werden nicht beeinträchtigt.

Aus diesen Sicherheitsfunktionen ergeben sich für den Separation Kernel eine Reihe von Merkmalen, die im Englischen mit der Formel NEAT sehr griffig zusammengefasst sind:

  • Non-bypassable: Der Separation Kernel muss die gesamte Kommunikation kontrollieren und darf unter keinen Umständen umgangen werden (können);
  • Evaluatable: Die Sicherheitsfunktionen müssen einfach und der Umfang des Codes gering sein, damit sie bewertet und nach Common Criteria oder nationalen Richtlinien formal verifizier- bzw. zertifizierbar sind;
  • Always Invoked: Die Sicherheitsfunktionen müssen immer aktiv sein;
  • Tamperproof: Sicherheitsfunktionen dürfen unter keinen Umständen von bösartigen Code verändert werden, so dass Ressourcen wie z.B. Buffer erschöpft werden und Fehler auslösen.

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 42251939 / Embedded Betriebssysteme)