Software-Sicherheitsarchitektur zur Tolerierung von Hardware- und Softwarefehlern



Ähnliche Dokumente
Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test?

AUF LETZTER SEITE DIESER ANLEITUNG!!!

Zeichen bei Zahlen entschlüsseln

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Grundlagen der Technischen Informatik. Sequenzielle Netzwerke. Institut für Kommunikationsnetze und Rechnersysteme. Paul J. Kühn, Matthias Meyer

Mediumwechsel - VR-NetWorld Software

Grundlagen für den erfolgreichen Einstieg in das Business Process Management SHD Professional Service

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

Erfolg und Vermögensrückgänge angefertigt im Rahmen der Lehrveranstaltung Nachrichtentechnik von: Eric Hansen, am:

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

How to do? Projekte - Zeiterfassung

QM: Prüfen -1- KN

Die Software für Visualisierung und Analyse von Strukturinformationen aus EDM- und PDM-Systemen.

Kapitalerhöhung - Verbuchung

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

file://c:\documents and Settings\kfzhans.BUERO1\Local Settings\Temp\ e...

Professionelle Seminare im Bereich MS-Office

Mediumwechsel - VR-NetWorld Software

Wann ist eine Software in Medizinprodukte- Aufbereitungsabteilungen ein Medizinprodukt?

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

Bundesverband Flachglas Großhandel Isolierglasherstellung Veredlung e.v. U g -Werte-Tabellen nach DIN EN 673. Flachglasbranche.

Rheinische Fachhochschule Köln

D i e n s t e D r i t t e r a u f We b s i t e s

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN

plus Flickerfeld bewegt sich nicht

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Energetische Klassen von Gebäuden

Überprüfung der digital signierten E-Rechnung

Monitoring-Service Anleitung

Eine Logikschaltung zur Addition zweier Zahlen

SAFEYTEAMS-Newsletter Nr. 5

TECHNISCHE INFORMATION LESSOR LOHN/GEHALT BEITRAGSNACHWEIS-AUSGLEICH BUCH.-BLATT MICROSOFT DYNAMICS NAV

Anwenderdokumentation Prüfung nach dem Heilmittelkatalog

Guide DynDNS und Portforwarding

- TABELLEN. Teil West mit 8% Kirchensteuer. Allgemeine Monats-Lohnsteuertabelle 2012

Grundfunktionen und Bedienung

Bearbeiten elektronische Rechnungen (Invoices)

Zusatzmodul Lagerverwaltung

Berechnung der Erhöhung der Durchschnittsprämien

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Leitfaden #1a. "zanox Publisher-Statistik" (next generation)

LAS PROGRAMM- ANPASSUNGEN

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

104 WebUntis -Dokumentation

Leitfaden zur Durchführung eines Jahreswechsels in BüroWARE 5.x

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

Requirements Engineering für IT Systeme

Wie optimiert man die Werbungserkennung von Ad- Detective?

Leitfaden zur Durchführung eines Jahreswechsels in BüroWARE 5.x

Anwenderdokumentation AccountPlus GWUPSTAT.EXE

Some Software Engineering Principles

SOZIALVORSCHRIFTEN IM STRAßENVERKEHR Verordnung (EG) Nr. 561/2006, Richtlinie 2006/22/EG, Verordnung (EU) Nr. 165/2014

«Eine Person ist funktional gesund, wenn sie möglichst kompetent mit einem möglichst gesunden Körper an möglichst normalisierten Lebensbereichen

WinWerk. Prozess 4 Akonto. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang Effretikon

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

yarnmaster Klassierung von Garnfehlern

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Korrelation. Übungsbeispiel 1. Übungsbeispiel 4. Übungsbeispiel 2. Übungsbeispiel 3. Korrel.dtp Seite 1

EasyWk DAS Schwimmwettkampfprogramm

robotron*e count robotron*e sales robotron*e collect Anmeldung Webkomponente Anwenderdokumentation Version: 2.0 Stand:

Ihr Mandant möchte einen neuen Gesellschafter aufnehmen. In welcher Höhe wäre eine Vergütung inklusive Tantieme steuerrechtlich zulässig?

Hier ist der tatsächliche Aufenthaltsort anzugeben, unbeachtlich davon ob der Ehemann dort beim

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Kurzanleitung MAN E-Learning (WBT)

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Werbemittelverwaltung

I N F O R M A T I O N V I R T U A L I S I E R U N G. Wir schützen Ihre Unternehmenswerte

Mindestanforderungen an. Inland ECDIS Geräte im Informationsmodus und vergleichbare Kartenanzeigegeräte. zur Nutzung von Inland AIS Daten

Einführung und Motivation

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel

So gehts Schritt-für-Schritt-Anleitung

Was meinen die Leute eigentlich mit: Grexit?

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

Einleitende Bemerkungen

Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.

NEVARIS Umstellen der Lizenz bei Allplan BCM Serviceplus Kunden von der NEVARIS SP Edition auf NEVARIS Standard/Professional

Content Management System mit INTREXX 2002.

Fachhochschule Deggendorf Platzziffer:...

Easy-Monitoring Universelle Sensor Kommunikations und Monitoring Plattform

Häufig wiederkehrende Fragen zur mündlichen Ergänzungsprüfung im Einzelnen:

- TABELLEN. Teil Ost (nur Sachsen) Allgemeine Monats-Lohnsteuertabelle 2012

Zahlen auf einen Blick

S7-Hantierungsbausteine für R355, R6000 und R2700

Bosch Compact-Generator mit Multifunktionsregler Prüfung mit dem Oszilloskop

Handbucherweiterung Zuschlag

FrontDoor/Monitor mehr sehen von FrontDoor

Theoretische Grundlagen der Informatik WS 09/10

QR-FUNKTION. Informationen über zu erledigende Aufgaben an das Reinigungspersonal senden.

Transkript:

Software-Sicherheitsarchitektur zur Tolerierung von Hardware- und Softwarefehlern Melanie Cossy Steinbeis-Transferzentrum Softwaretechnik Im Gaugenmaier 20 73730 Esslingen-Zell melanie.cossy@stz-softwaretechnik.de Abstract: In diesem Beitrag wird anhand des konkreten Beispiels eines elektronischen Gaspedals eine Software-Sicherheitsarchitektur vorgestellt. Ziel der Sicherheitsarchitektur ist die Erkennung und Behandlung von Hardware- und Softwarefehlern. Es wird gezeigt, wie die Funktions- und Sicherheitssoftwareumfänge des sicherheitsrelevanten Beispiel-Systems entsprechend der Sicherheitsarchitektur systematisch entwickelt werden. Die Module der Sicherheitssoftware werden identifiziert und ihre Aufgaben und Schnittstellen beschrieben. Hierbei werden zuerst die Softwaremodule zur Tolerierung von Hardwarefehlern modelliert. Anschließend wird gezeigt wie diese Module so erweitert werden können, dass Mechanismen zur Tolerierung von Softwarefehlern in die Sicherheitsarchitektur integriert werden können. Der Beitrag endet mit einer Diskussion und Bewertung der Eigenschaften der Sicherheitsarchitektur bezüglich der Tolerierung von Softwarefehlern. 1 Einleitung Der Begriff Fehlertoleranz wird in der VDI/VDE-Richtlinie 3698 wie folgt definiert: Fähigkeit eines Systems, auch mit einer begrenzten Anzahl von fehlerhaften Sub-Systemen seine spezifizierte Funktion zu erfüllen. In einer Anmerkung wird hinzugefügt, dass eine abgestufte Fehlertoleranz vorliegt, wenn Fehler dazu führen, dass nur Teilfunktionen aufrecht erhalten werden können. Im Folgenden wird ein System genau dann als fehlertolerant bezeichnet, wenn es in der Lage ist, im Fehlerfall alle sicherheitsrelevante Funktionen weiterhin zu erbringen. Dies ist insbesondere in sicherheitsrelevanten Einsatzfeldern, wie beispielsweise in der Automobilindustrie, wichtig. Toleriert werden müssen hierbei sowohl Hardware- als auch Softwarefehler. Fehlertoleranz durch Software bedeutet, dass die Fehlertoleranz-Eigenschaften eines Systems durch spezielle Softwarefunktionen und nicht allein durch Hardware- 249

komponenten sichergestellt werden. Ein Beispiel für Fehlertoleranz durch Software ist die Umverteilung bzw. der Neustart von Softwareapplikationen nach einem Serverausfall. Im Gegensatz dazu sind die zwei Hydraulik-Bremskreise eines konventionellen Bremssystems im Kraftfahrzeug ein Beispiel wie Fehlertoleranz allein durch Hardware sichergestellt werden kann. Fällt ein Bremskreislauf aus, so wird durch den redundant vorhandenen zweiten Bremskreislauf sichergestellt, dass die Bremsfunktion zwar in eingeschränkter Form aber weiterhin verfügbar ist (abgestufte Fehlertoleranz). Um Hardwarefehler tolerieren zu können, müssen die sicherheitsrelevanten Komponenten eines Systems redundant vorhanden sein. Werden die Fehlertoleranz-Eigenschaften eines Systems durch Software unterstützt, kann eine intelligente, fehlerspezifische Steuerung der Fehlerbehandlung realisiert werden. Redundant vorhandene Komponenten können je nach Fehlersituation unterschiedlich genutzt werden und Funktionen können in Abhängigkeit von ihrer Sicherheitsrelevanz feingranular degradiert werden. Die Softwareentwicklung für elektronische Systeme im Fahrzeug läßt sich in zwei Phasen gliedern. Zuerst wird die Funktionssoftware des Systems prototypisch entwickelt, um die Realisierbarkeit der gewünschten Funktionalität sicherzustellen. Soll das System anschließend in Serie kommen, müssen zusätzliche Sicherheitssoftwareanteile zur bereits bestehenden Funktionssoftware hinzugefügt werden. Im Folgenden werden, nach einer kurzen Übersicht über die Funktionssoftware eines elektronischen Gaspedals, die Sicherheitssoftwareumfänge betrachtet, die ein solches System zur Tolerierung von Software- und Hardwarefehlern benötigt. 2 Funktionssoftware Abbildung 1 zeigt eine komponentenbasierte Darstellung eines elektronischen Gaspedals [CSM03]. Die Pfeile zeigen den Informationsfluß zwischen den verschiedenen als Kästchen dargestellten Hardwarekomponenten und Softwaremodulen. Abbildung 1: Hardwarekomponenten und Funktionsmodule des elektronischen Gaspedals Mit jeweils zwei Sensoren wird die aktuelle Stellung des Gaspedals und der Drosselklappe ermittelt. Die Signale der Gaspedal- und Drosselklappen-Sensoren werden von den Funktionsmodulen Bestimmung der Pedal-Position und Bestimmung 250

der Ist-Drosselklappen-Position erfaßt und aufbereitet. Aus der ermittelten aktuellen Position des Gaspedals wird anschließend durch das Funktionsmodul Bestimmung der Soll-Drosselklappen-Position die erforderliche Stellung der Drosselklappe berechnet. Hierbei müssen zusätzlich zur aktuellen Gaspedal-Position noch weitere Größen z. B. aktueller Gang, Ladezustand der Batterie, Aktivität der Klimaanlage, Anforderungen von Distronik-Systemen usw. aus dem Fahrzeug berücksichtigt werden. Mit Hilfe der berechneten Soll-Drosselklappen-Position und der aktuell gemessenen Ist-Drosselklappen-Position steuert das Funktionsmodul Regelung der Drosselklappen-Position die Bewegung der Drosselklappe. Hierfür wird ein plusweitenmoduliertes Signal zusammen mit einem diskreten Richtungssignal an einen Gleichstrommotor gesendet. 3 Sicherheitssoftware Zusätzlich zu den funktionalen Softwareanteilen werden Softwaremodule zur Fehlererkennung und Fehlerbehandlung benötigt. 3.1 Tolerierung von Hardwarefehlern Zur Erkennung und Behandlung von Hardwarefehlern wurde eine Sicherheitsarchitektur entwickelt [Co03, CoHe03], die die Sicherheitssoftwareumfänge zur Tolerierung von Hardwarefehlern in Module zur Fehlererkennung und Module zur Fehlerbehandlung gliedert. Abbildung 2 zeigt beispielhaft den Aufbau der Sicherheitsarchitektur. Abbildung 2: Module der Software-Sicherheitsarchitektur 251

Zur Fehlererkennung dienen Überwachungen. Sie melden erkannte Fehler als Fehlerbild an Safety Interface Module, die jeweils eine reale Hardwarekomponente repräsentieren und deren aktuellen Komponentenstatus berechnen. Safety Control Module nutzen die Komponentenstatus-Informationen zur Bestimmung der korrekten Fehlerbehandung. Die Ausführung der Fehlerbehandlungsmaßnahmen wird durch die Safety Control Module gesteuert, indem sie mit Hilfe von Betriebsarten die Arbeitsweise der Funktionssoftware vorgeben. Die verschiedenen Module Überwachungen, Safety Interface Module und Safety Control Module werden im Folgenden anhand von Beispielen näher beschrieben. 3.1.1 Fehlererkennung Die Hardwarekomponenten, die ausfallen können, sind die Pedal- und Drosselklappen- Positions-Sensoren, die Aktorik, bestehend aus dem Gleichstrommotor und der mechanischen Vorrichtung, die das Bewegen der Drosselklappe ermöglicht, und das Steuergerät selbst. Diese Komponenten werden innerhalb der Sicherheitsarchitektur durch Safety Interface Module repräsentiert. Safety Interface Module dienen dazu, den aktuellen Status von sicherheitsrelevanten Komponenten zu erfassen und zu verfolgen. Sensorik Während des normalen Betriebs des elektronischen Gaspedals werden von verschiedenen Überwachungen die analogen Sensorsignale kontinuierlich analysiert, um festzustellen, ob die Sensoren einen Kurzschluß nach Masse oder gegenüber der Referenzspannung aufweisen. Zusätzlich wird die Korrelation zwischen den jeweils zweifach vorhandenen Sensoren überprüft, um so Veränderungen der Referenzspannungen erkennen zu können. Wird durch eine Überwachung ein Fehler erkannt, so sendet sie ein entsprechendes Fehlerbild an das Safety Interface Modul der betroffenen Komponente. Die Safety Interface Module der vier Sensoren werden als Zustandsautomaten modelliert und sind relativ einfach aufgebaut (siehe Abbildung 3), da lediglich drei unterschiedliche Stati der Sensoren unterschieden werden müssen. Steuergerät Abbildung 3: Interner Aufbau eines Safety Interface Moduls eines Sensors Der aktuelle Status des Steuergeräts wird mit Hilfe verschiedener Überwachungen ermittelt. Beispiele sind Überwachungen der ROM- bzw. RAM-Speicherstellen oder eine Überwachung der Registerkonfiguration. Das Safety Interface Modul des 252

Steuergeräts muss zwei Zustände unterscheiden fehlerfrei und nicht verfügbar, wobei jeder erkannte Fehler dazu führt, dass das Steuergerät nicht mehr verfügbar ist. Aktorik Der Motor und die mechanischen Vorrichtungen zur Bewegung der Drosselklappe können nur indirekt überwacht werden. Hierfür wird mit Hilfe eines Modells der realen Hardware das erwartete Verhalten der Drosselklappe berechnet und mit dem tatsächlichen Verhalten verglichen. Große Abweichungen vom erwarteten Verhalten werden als Fehlerbild gemeldet und führen dazu, dass die Aktorik als nicht verfügbar betrachtet wird. 3.1.2 Fehlerbehandlung Fällt eine Sensorik- oder Aktorikkomponente des Systems oder das Steuergerät selbst aus, so soll soweit als möglich die Funktion des elektronischen Gaspedals trotzdem weiterhin erbracht werden (Erhöhung der Verfügbarkeit) oder aber das System muss zumindest in einen sicheren Zustand degradiert werden (Gewährleistung der Sicherheit). Das heißt, im Fehlerfall muss entweder der Fahrer weiterhin in der Lage sein die Motordrehzahl über das Gaspedal zu steuern, oder der Motor muss in seiner Leerlaufdrehzahl betrieben bzw. ganz abgeschalten werden. Um Fehler tolerieren zu können, müssen die Funktionsmodule in der Lage sein, im Fehlerfall ihre Aufgabe ohne die ausgefallenen Komponenten zu erfüllen. Die Art und Weise, wie ein Funktionsmodul seine Aufgabe erfüllt, wird im Folgenden als Betriebsart bezeichnet. Für jede Betriebsart wird eine spezielle Routine implementiert und in Abhängigkeit von der aktuell durch die Sicherheitssoftware vorgegebene Betriebsart wird die jeweils dazugehörige Routine ausgeführt. Zur Bestimmung der zur momentanen Fehlersituation passenden Betriebsart wird jedem Funktionsmodul ein sogenanntes Safety Control Modul zugeordnet. Ermittlung der aktuellen Drosselklappen-Position Abbildung 4 zeigt die Überwachungen, die Safety Interface Module und das Safety Control Modul, die zur Fehlererkennung und Fehlerbehandlung für das Funktionsmodul Bestimmung der Ist-Drosselklappen-Position benötigt werden. Im Fehlerfall kann das Funktionsmodul seine Aufgabe Ermittlung der aktuellen Drosselklappen-Position auf verschiedene Art und Weise erfüllen. Tabelle 1 listet die verschiedenen Betriebsarten des Funktionsmoduls auf. 253

Abbildung 4: Module zur Fehlerbehandlung und Fehlererkennung des Funktionsmoduls Bestimmung der Ist-Drosselklappen-Position Betriebsart Beschreibung 1 Es wird der Mittelwert von Sensor 1 und Sensor 2 zur Ermittlung der aktuellen Drosselklappen-Stellung verwendet. 2 Es wird nur der Sensor 1 zur Ermittlung der aktuellen Drosselklappen-Stellung verwendet. 3 Es wird nur der Sensor 2 zur Ermittlung der aktuellen Drosselklappen-Stellung verwendet. 4 Zur Ermittlung der aktuellen Drosselklappen-Stellung wird der Maximalwert von Sensor 1 und Sensor 2 verwendet. 5 Die aktuelle Drosselklappen-Stellung kann nicht ermittelt werden. Tabelle 1 Betriebsarten des Funktionsmoduls zur Ermittlung der aktuellen Drosselklappen- Position Die interne Logik des Safety Control Moduls, das die aktuelle Betriebsart des Funktionsmoduls mit Hilfe der Sensor-Status-Informationen bestimmt, ist in Abbildung 5 zu sehen. Nach der Initialisierung ist die Betriebsart 1 aktiv, und die Sensoren 1 und 2 werden zur Ermittlung der aktuellen Drosselklappen-Stellung verwendet. Um nach einem Ausfall des Sensors 1 weiterhin die Drosselklappen-Position ermitteln zu können, wird, wenn der Status des Drosselklappen-Positions-Sensors 1 gleich nicht verfügbar ist (DPS1==0), die Betriebsart 3 aktiv, die nur den Sensor 2 zur Ermittlung der aktuellen Drosselklappen-Stellung verwendet. Fällt zusätzlich zum Sensor 1 auch noch der Sensor 2 aus (DPS2==0), so kann das Funktionsmodul seine Aufgabe nicht mehr erfüllen. Der Zustand Betriebsart 5 wird aktiv und das nachfolgende Funktionsmodul Regelung der Drosselklappen-Position muss reagieren, da seine Eingangsgröße Ist-Drosselklappen- Position nicht mehr zur Verfügung steht 30. 30 Wenn sich das Funktionsmodul Bestimmung der Ist-Drosselklappen-Position in der Betriebsart 5 befindet, so schaltet das Safety Control Modul des Funktionsmoduls Regelung der Drosselklappen- Position in eine Betriebsart, in der der Gleichstrommotor der Drosselklappe nicht mehr versorgt wird, was dazu führt, dass die Drosselklappe mechanisch mittels einer Feder in ihre Default-Stellung bewegt wird. 254

Abbildung 5: Safety Control Modul des Funktionsmoduls Bestimmung der Ist-Drosselklappen- Position 3.2 Tolerierung von Softwarefehlern Im Folgenden wird gezeigt wie die Sicherheitsarchitektur so erweitert werden kann, dass zusätzlich zu Hardwarefehlern auch Softwarefehler erkannt und behandelt werden können. Hardware- und Softwarefehler unterscheiden sich insoweit, dass Softwarefehler immer Designfehler sind, und deshalb eine einfache Replikation der Software entsprechend den redundant vorhandenen Sensoren nicht dazu genutzt werden kann, um Softwarefehler zu tolerieren. Zur Tolerierung von Softwarefehlern sind stattdessen immer zumindest zwei diversitäre Softwareversionen notwendig. Anhand des Beispiel- Systems wird vorgestellt, wie die bereits definierten Mechanismen zur Tolerierung von Hardwarefehlern genutzt werden können, um zusätzlich Softwarefehler tolerieren zu können. 3.2.1 Fehlererkennung Softwarefehler können durch unterschiedliche Überwachungsmechanismen erkannt werden: Replication Checks Sind unterschiedliche diversitäre Versionen eines Softwaremoduls vorhanden, so können ihre Ausgänge verglichen werden. Timing Checks Timing Checks können dann angewendet werden, wenn es möglich ist, den maximalen Laufzeitbedarf eines Softwaremoduls festzulegen. Timing Checks erkennen Abweichungen vom erwarteten Verhalten und ermöglichen es hängengebliebene Softwaremodule zu detektieren. Reversal Checks Reversal Checks berechnen aus den Ausgangsgrößen eines Moduls die dazugehörigen Inputwerte. Ein Fehler wird erkannt, wenn die berechneten Werte nicht mit den tatsächlichen übereinstimmen. Reversal Checks sind nur dann möglich, wenn die Berechnung der Inputwerte relativ einfach möglich ist. 255

Coding Checks Coding Checks nutzen zur Fehlererkennung redundante Informationen, die in einer festen Beziehung zu der tatsächlichen Nutzinformation stehen. Ein typisches Beispiel eines Coding Checks ist die Berechnung und Überprüfung eines CRC- Wertes. Reasonableness Checks Für Reasonableness Checks werden semantische Eigenschaften von Daten (z.b. gültiger Bereich, Änderungsgeschwindigkeit, Reihenfolge) genutzt, um Fehler zu erkennen. Structural Checks Structural Checks überprüfen bekannte Eigenschaften von Datenstrukturen. Vergleichbar zu Hardwarekomponenten, die überwacht werden, und deren Status mit Hilfe von Safety Interface Modulen verfolgt wird, können auch die Softwaremodule behandelt werden. Die unterschiedlichen Routinen der Funktionsmodule werden durch spezielle Checks überwacht und ihr Status (fehlerfrei, fehlerhaft) wird durch Safety Interface Module ermittelt. Abbildung 6 zeigt dies am Beispiel des Funktionsmoduls Bestimmung der Soll-Drosselklappen-Position, das die Betriebsarten 1, 2 und 3 besitzt. Abbildung 6: Softwarefehlererkennung des Funktionsmoduls Bestimmung der Soll- Drosselklappen-Position 3.2.2 Fehlerbehandlung Hardwareüberwachungen werden vor der Abarbeitung der Safety Control Module und Funktionsmodule durchlaufen. Die Ergebnisse dieser Überwachungen können daher sofort berücksichtigt werden. Softwarefehler werden dagegen erst nach der Abarbeitung der Funktionsmodule erkannt und können daher von den Safety Control Modulen erst 256

nach Abarbeitung der Funktionsmodule berücksichtigt werden. Um trotzdem dafür sorgen zu können, dass fehlerhaft Ergebnisse nicht weiterverwendet werden, müssen daher spezielle Mechanismen vorgesehen werden. Im einfachsten Fall kann zum Beispiel nach einem erkannten Fehler der vorhergegangene Wert erneut verwendet werden. Bei hoch-dynamischen Abläufen ist es jedoch wichtig, dass in jedem Zyklus ein aktualisierter Wert zur Verfügung steht. Zwei bekannte Techniken zur Umsetzung eines solchen Verhaltens sind Recovery Block und N-Version Programming [LABK90]. Recovery Block Wird während oder am Ende der Abarbeitung eines Funktionsmoduls ein Softwarefehler erkannt z.b. mit Hilfe eines Reasonableness Checks so wird das Ergebnis verworfen und eine diversitäre Version des Funktionsmoduls mit den gleichen Eingangsdaten abgearbeitet. N-Version Programming Mindestens drei diversitär redundante Softwareversionen eines Funktionsmoduls werden scheinbar parallel abgearbeitet, so dass mit Hilfe eines Replication Checks Fehler erkannt werden können. Einen nachgeschalteter Entscheider bestimmt anschließend welches Ergebnis zur Weiterverarbeitung verwendet werden soll. Im Folgenden wird anhand zweier Beispiel erläutert, wie diese Mechanismen in die Sicherheitsarchitektur integriert werden können, so dass eine Softwarefunktion auch nach einem erkannten Softwarefehler verfügbar bleibt. Recovery Block Das Funktionsmodul zur Berechnung der gewünschten Drosselklappen-Position erfüllt im Normalfall seine Aufgabe entsprechend der Betriebsart 1 (Berechnung der Soll- Drosselklappen-Position unter Berücksichtigung aller Zusatzinformationen). Nach der Abarbeitung der Routine der Betriebsart 1 wird mit Hilfe verschiedenen Checks die Korrektheit des berechneten Ergebnisses überprüft. Werden fehlerhafte oder unplausible Werte festgestellt, so ändert sich der Status der Routine zu fehlerhaft, da angenommen wird, dass ein Softwarefehler vorliegt. Dies führt dazu, dass durch das Safety Control Modul des Funktionsmoduls die Betriebsart 2 zur Berechnung des Ausgangssignals Soll-Drosselklappen-Position ausgewählt wird und diese gegebenenfalls noch im gleichen Zyklus ausgeführt wird. Ist die Routine der Betriebsart 2 ebenfalls fehlerhaft, so wird die Routine der Betriebsart 3 aktiviert, die als Soll-Drosselklappen-Position die Leerlauf-Position ausgibt. Der Vorteil des Recovery Block Mechanismus ist, dass im Normalbetrieb der zusätzliche Laufzeitbedarf gering ist, da nur die Routine der aktuellen Betriebsart abgearbeitet werden muss. Lediglich im Fehlerfall, wenn nach der Abarbeitung der Routine ein Softwarefehler erkannt wird, muss zusätzlich die Routine einer anderen Betriebsart abgearbeitet werden. Der Nachteil diese Form der Fehlerbehandlung ist jedoch, dass es nicht möglich ist mit Hilfe von Replication Checks Fehler zu erkennen. Außerdem wächst der Laufzeitbedarf zum Zeitpunkt des Auftretens des Fehlers deutlich an. 257

N-Version Programming Wie alle anderen Funktionsmodule hat auch das Funktionsmodul Bestimmung der Ist- Gaspedal-Position unterschiedliche Betriebsarten zur Behandlung von Hardwarefehlern. Im Normalfall, wenn kein Fehler vorliegt, ist die Betriebsart 1 aktiv und die aktuelle Pedal-Position wird aus dem Durchschnitt der Sensorwerte 1 und 2 berechnet. Liegt dagegen zum Beispiel ein Fehler des Pedal-Positions-Sensors 2 vor, so wird die Betriebsart 2 aktiviert und eine alternative Routine des Funktionsmoduls berechnet die aktuelle Gaspedal-Stellung nur mit Hilfe des Sensors 1. Vergleichbar wird in der Betriebsart 3 eine Routine abgearbeitet, die nur den Sensor 2 verwendet. Diese unterschiedlichen Routinen zur Realisierung ein und der selben Aufgabe können dazu genutzt werden den N-Version Programming Ansatz umzusetzen. Hierfür werden, wenn die Betriebsart 1 aktiv ist, zusätzlich zur Routine der Betriebsart 1 auch die Routinen der Betriebsarten 2 und 3 abgearbeitet. Die Ergebnisse der unterschiedlichen Routinen werden verglichen (Replication Check). Weicht das Ergebnis einer der Routinen deutlich von den Ergebnissen der anderen beiden Routinen ab, so wird durch den Replication Check ein fehlerhaftes Verhalten dieser Routine erkannt, und der Status der Routine ändert sich zu fehlerhaft. Die Stati der Routinen werden von dem Safety Control Modul des Funktionsmoduls bei der Auswahl der zukünftig gültigen Betriebsart berücksichtigt, indem Betriebsarten, die durch fehlerhafte Routinen umgesetzt werden, nicht mehr aktiviert werden. Um jedoch auch im gleichen Zyklus mit einem korrekten Ergebnis weiterarbeiten zu können, muss nach Abarbeitung der drei Routinen und des Replication Checks auf Basis der Routinen- Stati durch das Safety Control Modul eine Auswahl getroffen werden, welches Ergebnis ausgegeben werden soll (siehe Abbildung 7). Abbildung 7: N-Version Programming 258

Wird im Rahmen des Replication Checks festgestellt, dass sich die Ergebnisse der Routinen 1, 2 und 3 alle drei voneinander unterscheiden, wechseln die Stati der drei Routinen gemeinsam zu fehlerhaft. Um auch in einer solchen Situation ein korrektes Ergebnis ausgeben zu können, muss entsprechend des Recovery Block Mechanismus die Routine der Betriebsart 4 abgearbeitet werden. Der Vorteil des N-Version Programming Ansatzes ist, dass ein Replication Check umgesetzt werden kann, und dadurch das Erkennen von Fehlern sehr gut und relativ einfach möglich ist. Der Nachteil des Ansatzes ist jedoch der hohe Laufzeitbedarf der entsteht, da im Normalbetrieb zusätzlich zur Routine der Betriebsart 1 auch die Routinen der Betriebsarten 2 und 3 abgearbeitet werden müssen. 4 Ergebnisse Die vorgestellte Sicherheitsarchitektur besitzt unterschiedliche Qualitätseigenschaften, wie zum Beispiel eine gute Testbarkeit der Sicherheitssoftwareumfänge [Co03, CoHe03]. Die Hauptvorteile entstehen jedoch durch die Fehlertoleranz-Eigenschaften der Sicherheitsarchitektur. Um auf erkannte Hardwarefehler spezifisch reagieren zu können, werden die verfügbaren fehlerfreien Ressourcen dynamisch zur Laufzeit zugeteilt. Hierbei müssen nicht alle Komponenten mehrfach vorhanden sein (full redundancy), sondern die redundant vorhandenen Komponenten können je nach Fehlersituation unterschiedlich genutzt werden (shared redundancy). Dies stellt eine enorme Kostenersparnis dar, da insgesamt weniger Komponenten benötigt werden. Zur Tolerierung von Softwarefehlern müssen die zur Behandlung von Hardwarefehlern bereits vorhandenen Sicherheitssoftwareumfänge erweitert werden. Die Tolerierung von Softwarefehlern ist insbesondere dann wichtig, wenn die Komplexität der Funktionssoftware groß und ihre Korrektheit sicherheitsrelevant ist, denn für komplexe Funktionsmodule kann selbst bei einer großen Anzahl von Testläufen das Vorliegen von Softwarefehler praktisch nicht ausgeschlossen werden. Durch Softwarefehlertoleranz- Mechanismen entstehen jedoch zusätzliche Bedarfe. Tabelle 2 zeigt die zusätzlichen Laufzeit- und Speicherbedarfe, die zur Umsetzung von Mechanismen zur Tolerierung von Softwarefehlern benötigt werden. Diese zusätzlichen Bedarfe müssen bei der Hardwareauslegung des Steuergeräts berücksichtigt werden und können eventuell erhöhte Kosten verursachen. Außerdem verursachen die zur Tolerierung von Softwarefehlern benötigten Softwaremodule einen erhöhten Entwicklungsaufwand. Mit Hilfe der Sicherheitsarchitektur kann der Entwicklungsaufwand, der zur Tolerierung von Softwarefehlern investiert werden muss, jedoch drastisch minimiert werden, indem Softwareanteile, die bereits zur Tolerierung von Hardwarefehlern benötigt werden, zur Tolerierung von Softwarefehlern wiederverwendet werden. Da für die Tolerierung von Hardwarefehlern sowieso bereits mehrere Softwareversionen die Betriebsarten der Funktionsmodule implementiert werden müssen, können diese bereits vorhandenen Softwareversionen zur 259

Tolerierung von Softwarefehlern mitgenutzt werden. Das heißt, die redundanten Softwareversionen aus Tabelle 2 verursachen keinen zusätzlichen Entwicklungsaufwand und Speicherbedarf. Fehlertoleranzmechanismus Recovery Block N-Version Programming zusätzliche zusätzlicher Laufzeitbedarf Softwaremodule Normalbetrieb Fehlersituation 2 redundante Acceptance Checks Bestimmung der Softwareversionen Fehlerbehandlung, Acceptance Check Abarbeitung der redundanten 3 redundante Softwareversionen Replication Check Entscheider zwei zusätzliche Softwareversionen Replication Checks Tabelle 2 Zusätzlicher Aufwand zur Tolerierung von Softwarefehlern 260 Softwareversion Bestimmung der Fehlerbehandlung Werden die unterschiedlichen Betriebsarten eines Funktionsmoduls zur Tolerierung von Softwarefehlern genutzt, so ist es jedoch wichtig sicherzustellen, dass die Betriebsarten eines Funktionsmoduls diversitär aufgebaut sind, so dass die Gefahr eines systematischen Fehlers, der dazu führen kann, dass beide Softwareversionen gleichzeitig ausfallen, minimiert wird. 5 Ausblick Die Sicherheitsarchitektur ermöglicht es, Softwarefehler der Funktionssoftware zu erkennen und zu behandeln. Offen ist noch, wie Softwarefehler der Sicherheitssoftware ausgeschlossen werden können. Ein sehr wichtiger Ansatz hierbei ist der Einsatz von Model Checking Mechanismen. In der vorgestellten Sicherheitsarchitektur wird die Sicherheitssoftware zu einem großen Anteil mit Hilfe von Zustandsautomaten spezifiziert. Diese können von einem Model Checker analysiert werden, um wichtige allgemeine Eigenschaften der Spezifikation, wie zum Beispiel Determinismus, nachzuweisen. Zusätzlich können sicherheitsrelevante Eigenschaften des Systems formal spezifiziert und mathematisch nachgewiesen werden. Literaturverzeichnis [Co03] Melanie Cossy, Software Safety Architecture to Fulfill Increased Safety and Availability Requirements, SAE World Congress 2003, Paper 2003-01-0102 [CoHe03] Melanie Cossy, Frank Hepperle, Softwarearchitektur für sicherheitsrelevante Systeme im Automobil, ATZ Automotive Electronics 03/2003 [CSM03] Costin, Schaller, Maiorana, Purcell, Simon, Bauerle, Stockbridge, An Architecture for Electronic Throttle Control Systems, SAE World Congress 2003, Paper 2003-01-0098 [LABK90] Laprie, Arlat, Béounes, Kanoun, Definition and Analysis of Hardware- and Software-Fault-Tolerant Architectures, IEEE 1990