Safety Automotive Neue Konzepte in AUTOSAR einbinden

Wichtige Aspekte bei Anwendungen im AUTOSAR-Umfeld
Wichtige Aspekte bei Anwendungen im AUTOSAR-Umfeld

Im Laufe der letzten zehn Jahre hat sich AUTOSAR in vielen Bereichen der Automotive Software durchgesetzt und entwickelt sich mit dem technischen Fortschritt weiter. Für die Sicherheit komplexer Systeme bietet AUTOSAR einige Lösungswege für die Zukunft. Doch ist es wichtig zu wissen, was AUTOSAR kann und was nicht, damit ein System wirklich sicher ist. Der Artikel zeigt einige wichtige Aspekte auf, die bei sicherheitskritischen Anwendungen im AUTOSAR-Umfeld beachtet werden müssen

Bis zum AUTOSAR Release 3 wurde das Thema funktionale Sicherheit in den Spezifikationen nicht explizit erwähnt. Das Betriebssystem und die Kommunikationsmodule basierten auf dem bereits vorhandenen und erprobten OSEK-VDX-Standard.

Zudem wurde AUTOSAR um das OSEK-Netzwerk-Management (NM) und Debugging-Konzepte (ORTI) erweitert und übernahm Kommunikationsstandards wie CAN, LIN und FlexRay. Mit diesen Maßnahmen erreichte AUTOSAR den Sicherheits-Level bestehender Systeme, die zum entsprechenden Zeitpunkt dem Stand der Technik entsprachen. Mit wachsenden Anforderungen durch die Einführung von besonders sicherheitsrelevanten Systemen, wie Steer-by-Wire und Fahrerassistenzsystemen, sowie dem Inkrafttreten der Norm ISO 26262 zur funktionalen Sicherheit entstand auch bei AUTOSAR die Notwendigkeit, eine systematischere Basis zu erstellen. Daher wurde für das AUTOSAR Re­lease 4 eine Arbeitsgruppe zum Thema funktionale Sicherheit gegründet.

Teile und beherrsche: ­ Trennung bringt Sicherheit

Eine der Kernideen von AUTOSAR ist der einfache Austausch von Software-Komponenten (SWCs). Anwendungs-Software verschiedener Hersteller bei Automobilherstellern, Zulieferern und Drittanbietern lässt sich auf einem Steuergerät (ECU) integrieren (Bild 1). In einem Steuergerät führen manche dieser Komponenten sicherheitskritische Funktionen aus und müssten gemäß den entsprechend strengeren Entwicklungsprozessen entwickelt werden. Andere Komponenten dagegen müssen solche Integritätsansprüche nicht erfüllen. Es besteht somit die Notwendigkeit, Komponenten auf einem Steuergerät mit verschiedenen Sicherheitsintegritätsebenen zu inte­grieren, ohne dass ein Fehler in einer weniger sicherheitskritischen Komponente negative Auswirkungen auf sicherheitsrelevante Komponenten hat. Das umfasst unterschiedliche Bereiche. Im Folgenden werden fehlerhafte Eingriffe einer Komponente in den Speicherbereich einer anderen sowie das Nicht-Einhalten von Laufzeitanforderungen näher beleuchtet.

Speicherpartitionierung ermöglicht es zu verhindern, dass fehlerhaftes Verhalten einer Software-Komponente den Zustand einer anderen durch fehlerhaftes Schreiben in einen kritischen Speicherbereich verändert. Das wird zumeist durch das Ergänzen einer Memory Protection Unit (MPU) im Prozessor erreicht, die den Speicherzugriff verwaltet. AUTOSAR unterstützt diesen Ansatz durch die Einführung von „OS Applications“. Software-Komponenten mit den gleichen Sicherheitsintegritätsebenen werden in solchen OS Applications gruppiert. Eine OS Application kann dann als „vertrauenswürdig“ oder „nicht vertrauenswürdig“ gekennzeichnet werden. Während der Laufzeit sorgt das Betriebssystem dafür, dass beim Wechsel zwischen einer Komponente aus einer vertrauenswürdigen OS Application und einer nicht vertrauenswürdigen OS Application die MPU so konfiguriert wird, dass Schreibzugriffe auf Speicherbereiche außerhalb der zugelassenen Bereiche nicht erlaubt werden. Schlägt eine nicht vertrauenswürdige OS Application fehl und versucht, auf den Speicher zu schreiben, auf den sie keinen Zugriff hat, wird das die MPU erkennen, den Schreibzugriff verhindern und den laufenden Code abbrechen. So kann das System eine Wiederherstellung versuchen.

In einem Steuergerät führen manche dieser Komponenten sicherheitskritische Funktionen aus und müssten gemäß den entsprechend strengeren Entwicklungsprozessen entwickelt werden. Andere Komponenten dagegen müssen solche Integritätsansprüche nicht erfüllen. Es besteht somit die Notwendigkeit, Komponenten auf einem Steuergerät mit verschiedenen Sicherheitsintegritätsebenen zu inte­grieren, ohne dass ein Fehler in einer weniger sicherheitskritischen Komponente negative Auswirkungen auf sicherheitsrelevante Komponenten hat. Das umfasst unterschiedliche Bereiche. Im Folgenden werden fehlerhafte Eingriffe einer Komponente in den Speicherbereich einer anderen sowie das Nicht-Einhalten von Laufzeitanforderungen näher beleuchtet.

Speicherpartitionierung ermöglicht es zu verhindern, dass fehlerhaftes Verhalten einer Software-Komponente den Zustand einer anderen durch fehlerhaftes Schreiben in einen kritischen Speicherbereich verändert. Das wird zumeist durch das Ergänzen einer Memory Protection Unit (MPU) im Prozessor erreicht, die den Speicherzugriff verwaltet. AUTOSAR unterstützt diesen Ansatz durch die Einführung von „OS Applications“. Software-Komponenten mit den gleichen Sicherheitsintegritätsebenen werden in solchen OS Applications gruppiert. Eine OS Application kann dann als „vertrauenswürdig“ oder „nicht vertrauenswürdig“ gekennzeichnet werden. Während der Laufzeit sorgt das Betriebssystem dafür, dass beim Wechsel zwischen einer Komponente aus einer vertrauenswürdigen OS Application und einer nicht vertrauenswürdigen OS Application die MPU so konfiguriert wird, dass Schreibzugriffe auf Speicherbereiche außerhalb der zugelassenen Bereiche nicht erlaubt werden. Schlägt eine nicht vertrauenswürdige OS Application fehl und versucht, auf den Speicher zu schreiben, auf den sie keinen Zugriff hat, wird das die MPU erkennen, den Schreibzugriff verhindern und den laufenden Code abbrechen. So kann das System eine Wiederherstellung versuchen.