DE102008018680A1 - Verfahren zum Unterstützen eines sicherheitsgerichteten Systems - Google Patents

Verfahren zum Unterstützen eines sicherheitsgerichteten Systems Download PDF

Info

Publication number
DE102008018680A1
DE102008018680A1 DE102008018680A DE102008018680A DE102008018680A1 DE 102008018680 A1 DE102008018680 A1 DE 102008018680A1 DE 102008018680 A DE102008018680 A DE 102008018680A DE 102008018680 A DE102008018680 A DE 102008018680A DE 102008018680 A1 DE102008018680 A1 DE 102008018680A1
Authority
DE
Germany
Prior art keywords
safety
critical
software components
security
software component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102008018680A
Other languages
English (en)
Inventor
Efthimios Liakos
Roland Porsch
Stefan Rothbauer
Martin Rothfelder
Michael Zanzinger
Hartmut Zeilmann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE102008018680A priority Critical patent/DE102008018680A1/de
Priority to PCT/EP2008/065369 priority patent/WO2009077271A1/de
Priority to US12/808,370 priority patent/US8620873B2/en
Priority to EP08861516A priority patent/EP2225640A1/de
Publication of DE102008018680A1 publication Critical patent/DE102008018680A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Die vorliegende Erfindung bezieht sich auf ein Unterstützen eines sicherheitsgerichteten Systems, wobei das sicherheitsgerichtete System sicherheitskritische Sofwarekomponenten und sicherheitsunkritische Softwarekomponenten aufweist. Dabei wird eine Möglichkeit einer gegenseitigen Beeinflussung einer sicherheitskritischen Softwarekomponente und einer sicherheitsunkritischen Softwarekomponente identifiziert und einer Menge von technischen Maßnahmen zum Verhindern der Möglichkeit der Beeinflussung definiert. Auf diese Weise wird durch die vorliegende Erfindung eine Rückwirkungsfreiheit von sicherheitsunkritischen Softwarekomponenten auf sicherheitskritische Softwarekomponenten sowohl nachgewiesen als auch sichergestellt.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Unterstützen eines sicherheitsgerichteten Systems.
  • Eines der Ziele eines sicherheitsrelevanten oder sicherheitsgerichteten Systems ist es, ein zuverlässiges und korrektes Funktionieren von Softwarekomponenten, die an sicherheitskritischen Funktionen beteiligt sind, zu gewährleisten.
  • Bei der Ausführung einer Sicherheitsfunktion kann ihre Zuverlässigkeit und Korrektheit durch das Auftreten von Fehlern beeinflusst werden. Dabei können Fehler wie z. B. zufällige Hardwarefehler oder systematische Designfehler auftreten. Als ein Beispiel für einen zufälligen Hardwarefehler könnte ein eventueller Defekt einer Recheneinheit genannt werden. Daraus ergibt sich eine Fehlfunktion, die das Handhaben einer Vorrichtung (z. B. eines Fahrzeugs), in der die Recheneinheit eingesetzt ist, beeinträchtigt. Mögliche Designfehler können bereits während der Entwicklungsphase beispielsweise durch falsches Umsetzen der Spezifikation (z. B. Modellierung oder Planung) entstehen. Solche und ähnliche Fehler können in sicherheitsrelevanten Systemen gravierende Folgen haben.
  • Betrachtet man als Beispiel den Bereich der Fahrzeuge (z. B. Bahn oder Flugzeuge), können solche Fehler beispielsweise die Unbeherrschbarkeit eines Systems oder einer Vorrichtung (z. B. eines Fahrzeugs) mit den damit einhergehenden gravierenden Folgen für die Fahrgäste zur Folge haben. Ebenfalls ist auch eine nachhaltige Beeinträchtigung der Umwelt nicht auszuschließen.
  • Zur Sicherstellung einer funktionalen Sicherheit wird allgemein für jede spezifizierte Sicherheitsfunktion zumindest ei ne Sicherheitsanforderung spezifiziert, um eine vorgegebene Sicherheitsstufe zu erreichen und/oder zu erfüllen. Eine funktionale Sicherheit wird dann als gegeben gesehen, wenn jede spezifizierte Sicherheitsfunktion ausgeführt wird und für jede Sicherheitsfunktion ein geforderter Erfüllungsgrad gemäß der entsprechenden Sicherheitsanforderungsstufe erreicht wird. Dabei ist zu beachten, dass eine Sicherheitsanforderungsstufe (SAS oder Safety Integrity Level (SIL)) eine Eigenschaft einer Sicherheitsfunktion ist und sich nicht auf ein System oder Teilsystem bezieht. Die Realisierung dieser Sicherheitsfunktion erfolgt aber durch eine Kombination von Systemen, welche aus Hardware- und Softwareteilen bestehen. Somit bezieht sich die Sicherheitsanforderungsstufe auf eine durchgehende Sicherheitsfunktion eines sicherheitsbezogenen Systems.
  • Wie jede andere Komponente des sicherheitsgerichteten Systems verfügt eine Softwarekomponente über keinen Safety Integrity Level (SIL), wenn sie isoliert von einem sicherheitsbezogenen System betrachtet wird. Wird die Softwarekomponente in ein System integriert, so kann die Softwarekomponente zur Unterstützung von Sicherheitsfunktionen zu einem bestimmten SIL geeignet sein. Dies ist davon abhängig, wie die Softwarekomponente spezifiziert, entwickelt, implementiert und/oder verifiziert wurde.
  • Die Software-Sicherheitsanforderungsstufe n bzw. SSAS n ist wie folgt spezifiziert: Software, die unter Verwendung angemessener Techniken und Maßnahmen entwickelt wurde, wobei die Techniken und Maßnahmen sicherstellen, dass die Software die Anforderungen an systematische Ausfälle einer bestimmten Sicherheitsfunktion X für SSAS n erfüllt.
  • Somit ist eine Software-Sicherheitsanforderungsstufe keine Eigenschaft von Systemen, Teilsystemen oder Komponenten. Die obige Spezifikation kann dahingehend interpretiert werden, dass das Softwaresystem, Softwareteilsystem oder die Soft warekomponente in Sicherheitsfunktionen bis zum SSAS 1, 2, 3 oder 4 eingesetzt werden kann. Dies allein reicht aber nicht aus, um eine Sicherheitsfunktion für die geforderten SSAS aufzubauen. Die Software-Sicherheitsanforderungsstufe eines Teilsystems bestimmt den höchsten SSAS, der für eine Sicherheitsfunktion unter Verwendung dieses Teilsystems geltend gemacht werden kann. Die Befähigung bzw. Einsetzbarkeit eines Teilsystems für SSASn (mit n = 1, 2, 3 oder 4) wird erreicht, wenn das SW-Teilsystem Anforderungen vorbestimmter Safety-Normen (z. B. IEC 61508, EN 50128 usw.) erfüllt.
  • Des Weiteren ist auch die Produkthaftung ein wichtiger Aspekt, wenn es um sicherheitsrelevante bzw. sicherheitsgerichtete Systeme geht. Ist ein (gekauftes) Produkt fehlerhaft, so können unter Umständen auch Schadensersatzforderungen entstehen. Der Hersteller kann sich von der Verantwortung für den Schaden dann zurückziehen, wenn der Fehler beim Bringen des Produktes im Verkehr nicht vorhanden war oder wenn das Produkt vorgegebenen Sicherheitserwartungen und vorgegebenen Rechtsvorschriften entsprach.
  • Derzeit existiert in dem europäischen Rechtssystem keine gesetzliche Norm, die zwingende Anforderungen an elektronische Systeme in Bezug auf Überprüfung ihrer Fehlersicherheit bzw. funktionaler Sicherheit stellt. Dadurch, dass aber der Sektor der Elektronik immer größer wird und die Sicherheit demzufolge auch mehr an Bedeutung gewinnt, wurde eine Alternative erstellt, die die hier meist geforderte Sicherheit der Produkte gewährleistet. Demnach genügt es, wenn ein Nachweis und dementsprechend eine Begutachtung einer Ausfallsicherheit von elektronischen Systemen durch die zuständige Behörde (z. B. TÜV oder Eisenbahnbundesamt) und den technischen Dienst des Herstellers vorliegt. Die Begutachtung erfolgt dabei auf Basis vorgegebener Regeln oder Normen (z. B. IEC 61508, EN 50128 usw.).
  • Sicherheitsrelevanten oder sicherheitsgerichteten Systemen, die Softwarekomponenten aufweisen, werden durch die vorgegebenen Regeln oder Normen Sicherheitsanforderungen aufgestellt, die beschreiben, wie ein sicheres Verhalten des Systems gewährleistet und das Auftreten von Gefahrensituationen verhindert werden kann.
  • Die Sicherheitsrelevanz technischer Systeme leitet sich aus der maximalen Sicherheitsanforderung an die durch diese Systeme zur Verfügung gestellten Funktionen ab. Betrachtet man den Einsatz von Software in sicherheitsgerichteten Systemen, so wird in der Regel nur ein kleiner Teil von Sicherheitsfunktionen durch die Software übernommen. D. h., die verwendeten Softwarekomponenten sind einerseits in sicherheitsrelevante oder sicherheitskritische Softwarekomponenten und andererseits in nicht-sicherheitsrelevante oder sicherheitsunkritische Softwarekomponenten zu unterteilen. Da die Möglichkeit besteht, dass die sicherheitsunkritischen Softwarekomponenten die sicherheitskritischen Softwarekomponenten stören können, d. h. sich gegenseitig beeinflussen können, werden diese ebenso sicher wie die sicherheitskritischen Softwarekomponenten entwickelt.
  • Dabei darf die Ausführung einer nicht-sicherheitskritischen bzw. sicherheitsunkritischen Softwarekomponente oder Softwarefunktion die zuverlässige und korrekte Ausführung einer sicherheitskritischen Softwarekomponente oder Softwarefunktion nicht negativ beeinflussen. Diese Beeinflussung tritt als sogenannte Rückwirkung auf. Diese Rückwirkung kann durch eine konsequente Trennung zwischen den Funktionsklassen (sicherheitskritisch, nicht-sicherheitskritisch bzw. sicherheitsunkritisch, etc.) auf einem System unterbunden werden. Diese Trennung wird als Rückwirkungsfreiheit von nicht-sicherheitskritischen bzw. sicherheitsunkritischen Softwarekomponenten oder Funktionen auf sicherheitskritische Softwarekomponenten oder Funktionen verstanden.
  • Das Implementieren der nicht-sicherheitskritischen bzw. sicherheitsunkritischen Softwarekomponenten oder Funktionen mit dem gleichen Sicherheitsmaß wie dem der sicherheitskritischen Softwarekomponenten oder Funktionen führt aber zu Einschränkungen bei den sicherheitsunkritischen Softwarekomponenten (z. B. hinsichtlich deren Funktionalität oder Codierrichtlinien) und zu hohen Aufwänden hinsichtlich der Entwicklung der einzusetzenden sicherheitsunkritischen Softwarekomponenten.
  • Weitere bekannte Vorgehensweisen gehen wiederum den Weg der Trennung der sicherheitskritischen und der sicherheitsunkritischen Softwarekomponenten durch Einrichten von Hardwarekomponenten, die entweder sicherheitskritische oder sicherheitsunkritischen Softwarekomponenten aufweisen. Auf diese Weise wird eine physikalische Trennung der Komponenten erreicht. Da diese dennoch zusammenwirken, müssen entsprechende sichere Schnittstellen eingerichtet werden. Sowohl die Ausgestaltung der Hardwarekomponenten als auch die Ausgestaltung der jeweiligen Schnittstellen haben einen hohen Aufwand mit zufolge.
  • Durch die oben genannte, bekannte Art der Einsetzung von Softwarekomponenten in sicherheitsgerichteten Systemen ist eine Gebundenheit der implementierten Software an den jeweiligen Anwendungsbereich gegeben. Möchte man eine implementierte Software anderweitig einsetzen, um Entwicklungskosten zu sparen, ist es in der Regel nur mit einem großen Umstellungsaufwand möglich, wobei die Sicherheitsfragen erneut zu stellen und zu prüfen sind.
  • Der Erfindung liegt die Aufgabe zugrunde ein verbessertes Unterstützen eines sicherheitsgerichteten Systems, das sicherheitskritische Softwarekomponenten und sicherheitsunkritische Softwarekomponenten aufweist. Dabei umfasst das Unterstützen des sicherheitsgerichteten Systems insbesondere den Nachweis und/oder das Sicherstellen der Rückwirkungsfreiheit. D. h., das Unterbinden einer gegenseitigen Beeinflussung einer sicherheitskritischen Softwarekomponente und einer sicherheit sunkritische Softwarekomponente und den Nachweis dafür, dass eine solche gegenseitige Beeinflussung ausgeschlossen oder zumindest bis zum bestimmten möglichen Maximum ausgeschlossen ist.
  • Die Aufgabe wird gelöst durch ein Verfahren mit Merkmalen des Anspruchs 1, durch eine Vorrichtung mit Merkmalen des Anspruchs 10, durch ein System mit Merkmalen des Anspruchs 11, durch ein Computerprogramm mit Merkmalen des Anspruchs 12, durch einen Datenträger mit Merkmalen des Anspruchs 14 und/oder durch ein sicherheitsgerichtetes System mit Merkmalen des Anspruchs 15.
  • Die vorstehend genannte Aufgabe wird durch ein Verfahren zum Unterstützen eines sicherheitsgerichteten Systems gelöst, wobei das sicherheitsgerichtete System sicherheitskritische Softwarekomponenten und sicherheitsunkritische Softwarekomponenten aufweist und wobei das Verfahren aufweist:
    Identifizieren einer Möglichkeit einer gegenseitigen Beeinflussung einer sicherheitskritischen Softwarekomponente und einer sicherheitsunkritische Softwarekomponente; und
    Definieren einer Menge technischer Maßnahmen zum. Verhindern der Möglichkeit der Beeinflussung.
  • Die vorliegende Erfindung ermöglicht eine Anwendung formaler Methoden und Techniken in der Software- und Systementwicklung, wodurch die Korrektheit eines Softwareentwurfs, eines Analyse- oder Entwurfsmodells gegenüber funktionalen Sicherheitsanforderungen gezeigt werden kann. Ferner wird dadurch möglich, höchste Sicherheitsansprüche an ein sicherheitsrelevantes bzw. sicherheitsgerichtetes System zu stellen und zu gewährleisten.
  • Gemäß der vorliegenden Erfindung kann im Rahmen des Identifizierens einer Möglichkeit einer gegenseitigen Beeinflussung einer sicherheitskritischen Softwarekomponente und einer Si cherheitsunkritische Softwarekomponente und/oder das Definieren einer Menge technischer Maßnahmen zum Verhindern der Möglichkeit der Beeinflussung unter Verwendung formaler Methoden und Techniken implementiert werden.
  • Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung weist das Identifizieren ein Ermitteln einer Schnittmenge systemtechnischer Ressourcen eines Wirkungsbereichs der sicherheitskritischen Softwarekomponente und eines Wirkungsbereichs der sicherheitsunkritischen Softwarekomponente auf. Auf diese Weise wird ein allgemein und somit wiedereinsetzbar gehaltenes Identifizieren von Möglichkeiten einer gegenseitigen Beeinflussung bzw. Sicherstellen einer Rückwirkungsfreiheit gestattet, welches zugleich auch gezielt eingesetzt wird.
  • Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung weist das Identifizieren ein Bewerten zumindest einer systemtechnischen Ressource aus der Schnittmenge systemtechnischer Ressourcen hinsichtlich der Möglichkeit der gegenseitigen Beeinflussung auf. Damit kann eine mögliche von der ermittelten systemtechnischen Ressource (z. B. Hauptspeicher, Dateisystem, Software-Ressource, Kommunikationsmechanismus oder Kommunikationsmittel) genauer untersucht werden und hinsichtlich der Sicherheitstechnischen Relevanz entsprechend markiert werden.
  • Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung kann das Definieren der Menge technischer Maßnahmen durch Analyse der Möglichkeit der gegenseitigen Beeinflussung ausgeführt werden.
  • Dabei kann das Definieren der Menge technischer Maßnahmen basierend auf der Bewertung der zumindest einen systemtechnischen Ressource durchgeführt werden.
  • Das Definieren der Menge technischer Maßnahmen kann gemäß der vorliegenden Erfindung verschiedene Arten technischer Maßnah men aufweisen, was eine flexible Umsetzung der vorliegenden Erfindung ermöglicht. Dabei ist auch eine Mischform oder ein Kombinieren der verschiedenen Arten technischer Maßnahmen möglich.
  • Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung kann das Definieren der Menge technischer Maßnahmen ein Bestimmen einer Konfigurationsmaßnahme aufweisen.
  • Ferner kann das Definieren der Menge technischer Maßnahmen eine softwaretechnische Analyse der sicherheitskritischen Softwarekomponente hinsichtlich der Möglichkeit der gegenseitigen Beeinflussung aufweisen.
  • Des Weiteren kann das Definieren der Menge technischer Maßnahmen ein Bestimmen einer Applikation zum Verhindern der Möglichkeit der gegenseitigen Beeinflussung aufweisen.
  • Zusätzlich kann zumindest eine sicherheitsunkritische Softwarekomponente der Menge sicherheitsunkritischen Softwarekomponenten des sicherheitsgerichteten Systems eine Open Source Softwarekomponente sein. D. h., als die sicherheitsunkritischen Softwarekomponente, für die die Möglichkeit einer gegenseitigen Beeinflussung identifiziert wird und im Hinblick auf die eine Menge technischer Maßnahmen definiert wird, kann eine Open Source Softwarekomponente verwendet werden.
  • Der Einsatz von Publik Domain oder Open Source Software in sicherheitsgerichteten Systemen ist bislang gemieden worden, da die Publik Domain oder Open Source Software nicht nachweislich für sicherheitsgerichtete Anwendungen geeignet ist.
  • Aus wirtschaftlichen Gründen sind Unternehmen heutzutage oft gezwungen Software-Komponenten in einem System nicht selbst zu entwickeln, sondern auf Wiederverwendung vorhandener Komponenten zu setzen. Oft enthält der Softwarepool eines Unternehmens nicht genügend Softwareteile, um alle Bedürfnisse nach spezifischen Software-Komponenten in den jeweiligen, auf sicherheitsgerichtete Systeme ausgerichteten Projekten zu erfüllen.
  • Dabei können beispielsweise Softwarekomponenten, die hinzugekauft (sog. COTS, Commercial of the-shelf) oder aus dem unerschöpflichen Pool der Open Source Software bezogen werden können, eine Abhilfe bieten. Bei dem Einsatz von COTS (Commercial of the-shelf) oder Open Source Software in Sicherheitssystemen müssen aber die Vorgaben der Sicherheitsnormen eingehalten werden. Wie bereits erwähnt, ist dieses bislang nicht gegeben.
  • Die vorliegende Erfindung bietet eine formalen Vorgehensweise zum Nachweisen und Sicherstellen von vorgegebenen sicherheitsrelevanten Normen. Dabei wird ein Nachweis der Rückwirkungsfreiheit beim Einsatz der jeweiligen (sicherheitsunkritischen) Komponenten im entsprechenden Projekt erbracht. Insbesondere wird der Nachweis für sicherheitsunkritische Softwarekomponenten, die COTS oder Open Source Softwarekomponenten aufweisen können, gewährleistet. Dabei wird der Nachweis der Rückwirkungsfreiheit entsprechend der bestehenden Sicherheitsnormen nach formalen Methoden und Techniken erbracht. Gemäß der vorliegende Erfindung kann durch konstruktive, analytische und/oder applikative Maßnahmen verhindert werden, dass Bedrohungen, welche durch Einsatz die Ausführung der sicherheitskritischen Funktionen im System negativ beeinflussen.
  • Die oben genannte Aufgabe wird mittels einer Vorrichtung gelöst, die zum Unterstützen eines sicherheitsgerichteten Systems ausgestaltet ist, wobei das sicherheitsgerichtete System sicherheitskritische Softwarekomponenten und sicherheitsunkritische Softwarekomponenten aufweist, und wobei die Vorrichtung konfiguriert ist:
    • – eine Möglichkeit einer gegenseitigen Beeinflussung einer sicherheitskritischen Softwarekomponente und einer Si cherheitsunkritische Softwarekomponente zu identifizieren; und
    • – eine Menge technischer Maßnahmen zum Verhindern der Möglichkeit der Beeinflussung zu definieren.
  • Insgesamt ist die Vorrichtung konfiguriert, die Schritte des oben skizzierten und nachstehend detaillierter erläuterten Verfahrens durchzuführen.
  • Die oben genannte Aufgabe wird auch mittels eines Systems gelöst, das ausgestaltet ist, Schritte des oben skizzierten und nachstehend detaillierter erläuterten Verfahrens auszuführen.
  • Ferner wird die oben genannte Aufgabe mittels eines Computerprogramms durchgeführt, wobei das Computerprogramm eine Kodierung aufweist, die konfiguriert ist, Schritte des oben skizzierten und nachstehend detaillierter erläuterten Verfahrens auszuführen. Dabei kann das Computerprogramm auf einem Datenträger gespeichert sein.
  • Zusätzlich wird die oben genannte Aufgabe mittels eines Datenträgers gelöst, der das vorstehend genannte Computerprogramm aufweist.
  • Außerdem wird die oben genannte Aufgabe mittels eines sicherheitsgerichteten Systems gelöst, das sicherheitskritische Softwarekomponenten und sicherheitsunkritische Softwarekomponenten aufweist und das konfiguriert ist, eine Rückwirkungsfreiheit auf die sicherheitskritischen Softwarekomponenten durch Ausführen der Schritte des oben skizzierten und nachstehend detaillierter erläuterten Verfahrens sicherzustellen. Wie bereits erläutert, kann dabei zumindest eine Open Source Softwarekomponente oder COTS als zumindest eine sicherheitsunkritische Softwarekomponente ausgestaltet sein,
  • Im Folgenden wird die Erfindung detailliert mit Bezug auf die schematischen Zeichnung näher beschrieben, in denen:
  • 1 mögliche Interaktionen zwischen Softwarekomponenten eines sicherheitsgerichteten Systems gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt;
  • 2 eine Schnittstelle einer sicherheitskritischen Softwarekomponente und einer sicherheitsunkritischen Softwarekomponente gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt;
  • 3 eine gemäß einem Ausführungsbeispiel der vorliegenden Erfindung umgesetzte bzw. ausgestaltete Rückwirkungsbarriere zeigt; und
  • 4 ein Blockdiagramm einer Analyse eines Source-Codes als applikative Maßnahme gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt.
  • Die 1 zeigt mögliche Interaktionen zwischen Softwarekomponenten eines sicherheitsgerichteten Systems gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
  • Im Nachfolgenden wird der Nachweis und die Sicherstellung der Rückwirkungsfreiheit beim Einsatz einer Open Source SW-Komponente, nämlich der SQLite Embedded-Datenbank als Meldungsarchiv, der Norm EN 50128 mit formalen Methoden und Techniken gemäß einem Ausführungsbeispiel der vorliegenden Erfindung beschrieben. Dabei ist das Meldungsarchiv an der Ausführung nicht-sicherheitskritischer bzw. sicherheitsunkritischer Funktionen beteiligt. Diese können eine bedrohende Rückwirkung auf die korrekte und zuverlässige Ausführung von sicherheitskritischen Funktionen im sicherheitsgerichteten System haben. Durch konstruktive, analytische und applikative Maßnahmen wird verhindert, dass diese Bedrohungen (entstanden durch gegenseitige Beeinflussungen der sicherheitskritischen und sicherheitsunkritischen Softwarekomponenten) die Ausfüh rung der sicherheitskritischen Funktionen im System negativ beeinflussen.
  • Es versteht sich von selbst, dass die oben genannte Open Source Softwarekomponente als sicherheitsunkritische Softwarekomponente und die oben genannte Norm EN 50128 lediglich zur Darstellung eines konkreten Beispiels dienen. Die vorliegende Erfindung findet keine Einschränkung hinsichtlich der verwendeten Softwarekomponenten und hinsichtlich der einzuhaltenden Sicherheitsnormen. Ebenfalls ist die vorliegende Erfindung auf kein Anwendungsgebiet beschränkt und ist in verschiedenen möglichen sicherheitsgerichteten Systemen anwendbar und umsetzbar.
  • Gemäß dem vorliegenden Ausführungsbeispiel werden die Softwarekomponenten 101, 111, 12, 13 und 14 in drei Funktionsklassen aufgeteilt:
    Softwarekomponente beteiligt an der Ausführung von sicherheitskritischen Funktionen (SSAS > 0);
    Softwarekomponente führt unter anderem eine Überwachung von sicherheitskritischen Funktionen aus (SASS > 0); und
    Softwarekomponente ist an der Ausführung von nicht-sicherheitskritischen Funktionen beteiligt (SSAS = 0).
  • Bei sicherheitskritische (sicherheitsrelevante) Softwarekomponenten 12, 13 wird die Realisierung einer sicherheitskritischen bzw. sicherheitsrelevanten Funktion in der Regel softwaretechnisch durch Kollaboration, d. h.. Zusammenarbeit von Softwarekomponenten in einem System realisiert. Dies geschieht unabhängig davon, ob die Sicherheitsfunktion kontinuierlich (contineouse mode) oder auf Anforderung (on de-mand mode) abläuft. Die kollaborierenden Komponenten gehören somit dem Sicherheitskreis an aus dem die Software-Sicherheitsanforderungsstufe (SSAS) resultiert. Alle Softwarekomponenten 12, 14, die an der Ausführung einer sicherheitskritischen Funktionalität beteiligt sind, gehören zur Funktionsklasse der sicherheitskritischen Softwarekomponenten mit einer entsprechenden SSAS-Stufe.
  • Überwachende Softwarekomponenten 13 repräsentieren Selbsttest- und Überwachungs-/Diagnose-Softwarekomponenten. Diese haben die Aufgabe, Systemressourcen auf zufällige Hardwarefehler zu überprüfen. Solche Softwarekomponenten können beispielsweise auf einem Systemserver ein Monitoradapter in Zusammenarbeit mit einem SEP (Safety Environment Prozessor) sein. Dabei würde der SEP die sicherheitskritische Softwarekomponente und der Monitoradapter die nicht-sicherheitskritische bzw. sicherheitsunkritische Softwarekomponente sein. Alle Softwarekomponenten 13, die an einer Überwachung und Diagnose von Hardware beteiligt sind, gehören zur Funktionsklasse der überwachenden Softwarekomponenten. Auf diese darf ebenfalls keine Beeinflussung von anderen Softwarekomponenten erfolgen.
  • Als nicht-sicherheitskritische bzw. sicherheitsunkritische Softwarekomponenten 101, 111 werden solche Softwarekomponenten betrachtet, die an nicht-sicherheitskritischen bzw. sicherheitsunkritischen Funktionalitäten beteiligt sind. Diese Softwarekomponenten gehören sozusagen der SSAS 0 an. Zu dieser Klasse gehört gemäß dem vorliegenden Ausführungsbeispiel das Meldungsarchiv an.
  • In 1 sind die Beziehungen zwischen den Softwarekomponenten 101, 111, 12, 13, 14 durch Pfeile dargestellt. Dabei deuten die gepunkteten Pfeile, die von der überwachenden Softwarekomponente 13 ausgehen, auf die Softwarekomponenten 12, 14, 101, 111, welche von der der überwachenden Softwarekomponente 13 überwacht werden. Die durchgehenden Pfeile zeigen auf, dass eine Kollaboration bzw. Zusammenarbeit zwischen den jeweiligen Softwarekomponenten 12 und 101, 12 und 14 stattfindet. Die gestrichelten Pfeile, die von der nicht-sicherheitskritischen bzw. sicherheitsunkritischen Softwarekomponente 101 zu den Softwarekomponenten 12, 13, 14 und 111 führen, deuten diejenigen Komponenten an, auf die die nicht-sicherheitskritische bzw. sicherheitsunkritische Softwarekomponente 101 (hier beispielhaft eine SQLite Embedded-Datenbank als Meldearchiv) eine Rückwirkung hat. D. h. zwischen der sicherheitsunkritische Softwarekomponente 101 und den sicherheitskritischen Softwarekomponenten 12, 13 und 14 ist eine gegenseitigen Beeinflussung gegeben. Dabei umfasst eine gegenseitige Beeinflussung gemäß der vorliegenden Erfindung sowohl Beeinflussungen in beide Richtungen (Beeinflussung einer sicherheitsunkritischen Softwarekomponente 101 durch eine sicherheitskritische Softwarekomponente 12, 13 und 14 und Beeinflussung einer sicherheitskritische Softwarekomponente 12, 13 und 14 durch eine sicherheitsunkritische Softwarekomponente 101) als auch Beeinflussungen in nur eine Richtung (d. h., Beeinflussung einer sicherheitsunkritischen Softwarekomponente 101 durch eine sicherheitskritische Softwarekomponente 12, 13 und 14 oder Beeinflussung einer sicherheitskritische Softwarekomponente 12, 13 und 14 durch eine sicherheitsunkritische Softwarekomponente 101).
  • Ferner ist anzumerken, dass in 1 die sicherheitsunkritischen Komponenten 101 und 111 jeweils eine Schnittstelle 10, 11 aufweisen, um mit den sicherheitskritischen Softwarekomponenten 12, 13, 14 zu interagieren, zu kommunizieren und/oder zusammenzuarbeiten. Diese Schnittstellen 10, 11 sind aber nicht zwingend notwendig, die vorliegende Erfindung ist auch ohne Einsatz solcher Schnittstellen 10, 11 umsetzbar und durchführbar.
  • Jede Softwarekomponente 101, 111, 12, 13, 14 hat in einem System einen Wirkungsbereich. Ein Wirkungsbereich ist ein Bereich des sicherheitsgerichteten Systems, in dem oder im Rahmen dessen die jeweilige Softwarekomponente 101, 111, 12, 13, 14 wirkt, d. h., arbeitet, kommuniziert, interagiert und/oder mit anderen Komponenten des Systems zusammenarbeitet oder wirkt. Da ein sicherheitsbezogenes bzw. sicherheitsgerichtetes System aus mehreren Softwarekomponenten 101, 111, 12, 13, 14 mit jeweils einem eigenen Wirkungsbereich besteht, ist die Gefahr der gegenseitigen Beeinflussung dieser Komponenten während der Ausführung einer Funktion potentiell gegeben. Die Beeinflussung tritt dabei über die Schnittstellen der Wirkungsbereiche der Softwarekomponenten 101, 111, 12, 13, 14 auf. Es besteht damit die Gefahr der Rückwirkung bei der Ausführung einer Funktion auf das Ausführungsverhalten einer Sicherheitsfunktion, so dass die Korrektheit und Zuverlässigkeit dieses Sicherheitskreises nicht mehr gemäß der dazugehörigen Sicherheitsanforderungsstufe garantiert werden kann.
  • Um dem entgegenzuwirken, werden alle möglichen Rückwirkungen von einer nicht-sicherheitsrelevanten bzw. sicherheitsunkritischen Softwarekomponente auf eine sicherheitsrelevante bzw. sicherheitskritische Softwarekomponente untersucht. Dabei läuft die Beurteilung über die Schnittstellen der nicht-sicherheitskritischen Softwarekomponenten. Hier muss im Rückwirkungskontext der softwaretechnische Begriff der Schnittstelle erweitert werden. Als Schnittstelle wird nicht nur die direkte Kommunikation bzw. Kollaboration oder Zusammenarbeit zwischen Softwarekomponenten verstanden, sondern die gemeinsame Schnittmenge aller gegenseitigen Beeinflussungen, die über die Wirkungsbereiche der Softwarekomponenten 101, 111, 12, 13, 14 auftreten können. Im Fokus von sicherheitsbezogenen Systemen ist gemäß dem vorliegenden Ausführungsbeispiel die gerichtete Beeinflussung einer sicherheitskritischer Softwarekomponente 12, 13, 14 durch eine nicht-sicherheitskritische bzw. sicherheitsunkritische Softwarekomponente 101, 111 über die gemeinsame Schnittstelle.
  • In einem Software-System bilden diese Schnittstelle die gemeinsam genutzten Ressourcen des Betriebssystems bzw. des darüber liegenden Frameworks, welche den Ablaufrahmen der SW-Komponenten zur Verfügung stellen. Dabei erfolgt die Rückwirkung zwischen den Softwarekomponenten 101, 111, 12, 13, 14 beispielsweise über den Hauptspeicher, das Dateisystem, Ker nel-Ressourcen oder über die Kommunikationsmechanismen innerhalb eines Rechners oder auch rechnerübergreifend.
  • 2 zeigt beispielhaft eine Schnittstelle 22 (d. h., einer Schnittmenge systemtechnischer Ressourcen) der Wirkungsbereiche 21 und 20 einer sicherheitskritischen Softwarekomponente 211 und einer sicherheitsunkritischen Softwarekomponente 210 (z. B. einer SQLite Embedded-Datenbank als Meldearchiv).
  • Gemäß dem Ausführungsbeispiel der vorliegenden Erfindung wird eine Art Barriere aufgebaut, um gewisse Beeinflussungen zwischen sicherheitskritischen und sicherheitsunkritischen Softwarekomponenten des sicherheitsgerichteten Systems zu unterbinden oder zu vermeiden und um damit eine Rückwirkung zu verhindern. Die sogenannte Barriere oder Schale ist ausgestaltet, die die verschiedenen Bedrohungen, welche von den jeweiligen Softwarekomponenten ausgehen, abzufangen und ggf. zu beseitigen. Dadurch können die notwendigen Maßnahmen vom sicherheitsgerichteten System ergriffen werden, um die Rückwirkung abzufangen. So kann bei Eintritt eines störenden Ereignisses, durch das beispielsweise kein Hauptspeicher mehr zur Verfügung steht, die Ausführung einer von diesem Ereignis betroffenen nicht-sicherheitskritischen bzw. sicherheitsunkritischen Funktion durch das System (Betriebssystem bzw. Framework) beendet werden. Bei einem Eintritt eines anderen Ereignisses, durch das beispielsweise kein sekundärer Speicher zur Verfügung steht, kann gemäß der vorliegenden Erfindung das Ereignis abgefangen bzw. identifiziert werden und der Ausführungsprozess des Meldungsarchivs beendet werden, um Betriebssicherheit des sicherheitsgerichteten Systems zu gewährleisten.
  • 3 zeigt eine gemäß dem Ausführungsbeispiel der vorliegenden Erfindung umgesetzte bzw. ausgestaltete Rückwirkungsbarriere.
  • Die Komponenten der 3 entsprechen den Komponenten der 1. Auch die Beziehungen der Überwachung und der Kollaboration, die als gepunktete oder durchgezogene Pfeile gezeigt sind, sind zwischen den Softwarekomponenten wie ursprünglich gegeben bzw. ausgestaltet erhalten. Die erfindungsgemäß eingesetzte Rückwirkungsbarriere oder – Schale 30 bewirkt, dass die Rückwirkung der nicht-sicherheitskritischen bzw. sicherheitsunkritischen Softwarekomponente 101 auf die sicherheitskritischen Softwarekomponenten 12, 13 und 14 eingefangen wird, d. h., dass eine Rückwirkungsfreiheit gewährleistet wird. Das Einfangen der Rückwirkung ist durch das Eingrenzen der Rückwirkungsbeziehungen, die als gestrichelte Pfeile dargestellt sind, durch die Rückwirkungsbarriere 30 dargestellt. D. h., die nicht-sicherheitskritische bzw. sicherheitsunkritische Softwarekomponente 101 wird durch Etablierung einer Ablaufschale als Rückwirkungsbarriere 30 isoliert.
  • Dieses geschieht durch Definieren, Bestimmen und/oder Erfassen von Maßnahmen zur Vermeidung von Rückwirkung zwischen Softwarekomponenten in einem sicherheitsgerichteten Softwaresystem. Die Maßnahmen können dabei in konstruktive, applikative und analytische Maßnahmen unterschieden werden.
  • Konstruktive Maßnahmen sind eine Art präventive Maßnahmen, die bereits bei der Konfiguration berücksichtigt werden können, so dass keine Rückwirkung auf andere Softwarekomponenten 12, 13, 14, 111 durch eine sicherheitsunkritische Softwarekomponente 101 in einem sicherheitsgerichteten System entstehen kann. Dabei können bewährte Betriebssystemmechanismen zur Etablierung einer eigenen „Ablaufschale" der nicht-sicherheitskritischen bzw. sicherheitsunkritischen Softwarekomponente verwendet werden. Demnach kann eine Ablaufschale 30 beispielsweise durch entsprechendes Definieren bzw. Ausgestalten von Benutzerrechten, Dateisystem Partitionen etc. konfiguriert oder implementiert werden.
  • Analytische oder verifizierende Maßnahmen haben die Prüfung, Bewertung und den (externen) Nachweis der Rückwirkungsfreiheit der Prüfgegenstände zum Ziel. Dieses kann beispielsweise durch eine gezielte Überprüfung des Softwarecodes durchgeführt werden, wobei eine Reihe an Softwareprüfungswerkzeugen und -Verfahren zu diesem Zweck verwendet werden kann.
  • Durch applikative Maßnahmen wird eine Verhinderung der Rückwirkung auf andere Softwarekomponenten im System durch programmiertechnische Schritte umgesetzt werden (z. B. durch Betriebssystem-API Aufrufe zur Begrenzung des Hauptspeichers). Dabei können standardisierte, auf die jeweilige Problemstellung ausgerichtete Softwarewerkzeuge eingesetzt werden, welche beispielsweise basierend auf Erfahrungen von Experten aufgebaut sind.
  • Wie bereits erwähnt, wird gemäß dem vorliegenden Ausführungsbeispiel eine SQLite Embedded-Datenbank in Form eines Meldungsarchivs als die nicht-sicherheitskritische bzw. sicherheitsunkritische Softwarekomponente eingesetzt. Im Nachfolgenden werden Beispiele von identifizierten Möglichkeiten bzw. Schnittstellen (d. h. Schnittmenge systemtechnischer Ressourcen) einer gegenseitigen Beeinflussung einer sicherheitskritischen Softwarekomponente und der SQLite Embedded-Datenbank in Form eines Meldungsarchivs erläutert. Im Hinblick auf eine systemtechnischer Ressource wird eine Menge technischer Maßnahmen zum Verhindern der Möglichkeit der Beeinflussung und somit der Rückwirkung definiert.
  • Während einer Analyse oder während eines Identifizierens der Möglichkeiten einer gegenseitigen Beeinflussung wurden folgende Feststellungen oder Ergebnisse erzielt:
    • – Archiv wird von potenziell sicherheitskritischen Prozessen (z. B. Anlagenabbild) verwendet;
    • – Archiv hat selbst keine sicherheitskritische Funktion;
    • – Rückwirkungsfreiheit der Komponente Archiv auf diese anderen Prozesse muss sichergestellt werden.
  • Dabei sind gegenseitige Beeinflussungen oder Rückwirkungen über oder durch folgende systemtechnische Ressourcen möglich: Hauptspeicher, Flash-Speicher, CPU-Belastung, Globale Ressourcen (Futex, Datei-Locks, Datei-Handles, Tasks), Kommunikation (TCP/IP).
  • Betrachtet man nun die Möglichkeit der Beeinflussung oder Rückwirkung durch die systemtechnische Ressource Hauptspeicher, so ergibt eine Bewertung hinsichtlich des Hauptspeichers, dass eine mögliche Bedrohung für das sicherheitsgerichtete System in einem übermäßigen Verbrauch des Hauptspeichers durch die SQLite-Datenbank als Archiv 101 liegen kann, so dass andere Prozesse bzw. Softwarekomponenten 12, 13, 14, 111 behindert werden können. Archiv wird von potenziell sicherheitskritischen Prozessen (z. B. Anlagenabbild) verwendet und hat selbst keine sicherheitskritische Funktion. Um die Rückwirkungsfreiheit der Komponente Archiv 101 auf die anderen Prozesse sicherzustellen, kann beispielsweise eine konstruktive Maßnahme wie Setzen eines definierten harten System-Limits für die Nutzung von Hauptspeicher definiert werden.
  • Ferner kann eine Bewertung hinsichtlich des Hauptspeichers ergeben, dass eine mögliche Bedrohung für das sicherheitsgerichtete System im Überschreiben von Dateien durch andere Prozesse oder Softwarekomponenten 12, 13, 14, 111 geschehen kann. Hier kann eine konstruktive Maßnahme wie das Realisieren der SQLite-Datenbank als eigenständiger Container im Systemframework definiert werden. Die SQLite-Datenbank als Archiv wird damit zu einem eigenen Betriebssystemprozess. Eine Beeinflussung von anderen Prozessen bzw. Softwarekomponenten 12, 13, 14, 111 durch die SQLite-Datenbank über den Hauptspeicher ist somit nicht möglich.
  • Betrachtet man nun die Möglichkeit der Beeinflussung oder Rückwirkung durch die systemtechnische Ressource Flashspei cher, so ergibt eine Bewertung hinsichtlich des Flashspeichers, dass eine mögliche Bedrohung für das sicherheitsgerichtete System in einem übermäßigen Verbrauch des Flashspeichers durch die SQLite-Datenbank als Archiv 101 liegen kann, so dass andere Prozesse bzw. Softwarekomponenten 12, 13, 14, 111 behindert werden können. Um die Rückwirkungsfreiheit der Komponente SQLite-Datenbank als Archiv 101 auf die anderen Prozesse bzw. Softwarekomponenten sicherzustellen, kann beispielsweise eine konstruktive Maßnahme wie eine Ablage der SQLite-Datenbank-Dateien auf einer eigenen Partition im Dateisystem; ein Anwachsen der SQLite-Datenbank-Dateien über diese Größe hinaus ist somit durch das Betriebssystem unterbunden.
  • Ferner kann eine Bewertung hinsichtlich des Hauptspeichers ergeben, dass eine mögliche Bedrohung für das sicherheitsgerichtete System im versehentlichen Schreiben in eine andere Partition geschehen kann. Hier kann beispielsweise eine konstruktive Maßnahme wie Start der SQLite-Datenbank 101 als Archivprozesses mit eingeschränkten Benutzerrechten definiert werden. Dadurch werden keine schreibenden Zugriffe auf andere Partitionen anderer Prozesse bzw. Softwarekomponenten 12, 13, 14, 111 gestattet.
  • Betrachtet man nun die Möglichkeit der Beeinflussung oder Rückwirkung durch die systemtechnische Ressource CPU-Belastung, so ergibt eine Bewertung hinsichtlich der CPU-Belastung, dass eine mögliche Bedrohung für das sicherheitsgerichtete System in einem übermäßiger Verbrauch von Rechenzeit durch die SQLite-Datenbank als Archiv 101 liegen kann, so dass andere Prozesse bzw. Softwarekomponenten 12, 13, 14, 111 behindert werden. Hier können beispielsweise die folgenden applikativen Maßnahmen definiert werden:
    • – Überwachen aller laufenden Prozesse bzw. Softwarekomponenten mittels eines Heartbeat-Protokolls. Beim Ausbleiben eines laufenden Prozesses bzw. einer laufenden Softwarekomponente erfolgt Neustart der betroffenen Komponente;
    • – Überwachen des Systems sowie der restlichen Prozesse bzw. Softwarekomponenten durch ein SEP-Framework, bei Problemen erfolgt ein geregelter oder ggf. auch harter Shutdown.
  • Betrachtet man nun die Möglichkeit der Beeinflussung oder Rückwirkung durch die globale Ressourcen (z. B. Futex, Datei-Locks, Datei-Handles oder Tasks), so ergibt eine Bewertung hinsichtlich der globalen Ressourcen, dass eine mögliche Bedrohung für das sicherheitsgerichtete System im übermäßigen Verbrauch von globalen Ressourcen durch die SQLite-Datenbank als Archiv 101 entstehen kann, so dass andere Prozesse bzw. Softwarekomponenten 12, 13, 14, 111 behindert werden. Dabei können die folgenden analytischen Maßnahmen definiert werden:
    • – Die generierte Bibliothek von SQLite 101 kann in Bezug auf Abhängigkeiten zu anderen Bibliotheken untersucht werden. Dadurch können Abhängigkeiten applikativ aufgedeckt und verhindert werden.
    • – Systemfunktionen können aufgerufen oder untersucht werden. Dabei kann die Nutzung von Futex, Datei-Locks, Datei-Handles und/oder Tasks näher untersucht werden. Mögliche Störungen können ggf. applikativ beseitigt werden.
  • Betrachtet man nun die Möglichkeit der Beeinflussung oder Rückwirkung durch Kommunikation (z. B. TCP/IP), so ergibt eine Bewertung hinsichtlich der Kommunikation, dass eine mögliche Bedrohung für das sicherheitsgerichtete System in einem ungewollten Aufbau zu anderen Prozessen bzw. Softwarekomponenten 12, 13, 14, 111 durch die SQLite-Datenbank als Archiv 101 stattfinden kann. Dabei kann die folgende analytische Maßnahme definiert werden: Aufrufe (z. B. bind, socket, listen oder accept unter Linux), die eine Kommunikation als Folge haben, sollen soweit möglich (z. B. soweit andere Kommunikationswege gegeben sind) verhindert oder gemieden werden. Dieses kann entsprechend applikativ umgesetzt werden.
  • Dafür kann eine Analyse des entsprechenden Source-Codes, wie beispielhaft in 4 dargestellt, erfolgen. In Schritt 41 wird eine Konfiguration und Kompilation der sicherheitsunkritischen Softwarekomponente (hier der SQLite-Datenbank als Archiv) mit vorgegebenen Schalter durchgeführt. Daraufhin wird in Schritt 42 eine Analyse der externen Symbolabhängigkeiten des Programms bzw. der sicherheitsunkritischen Softwarekomponente und somit der SQLite-Datenbank als Archiv durchgeführt. Anschließend wird eine Abfrage 43 durchgeführt, bei der festgestellt wird, ob externe Symbolabhängigkeiten vorhanden sind. Sind keine externe Symbolabhängigkeiten vorhanden (durch „N" verdeutlich), so wird die Analyse des entsprechenden Source-Codes beendet 44, d. h., es liegt keine Bedrohung hinsichtlich einer Überschneidung bei der Kommunikation zwischen der SQLite-Datenbank als Archiv und weiteren Softwarekomponenten bzw. Prozessen vor. Sonst, wenn externe Symbolabhängigkeiten vorhanden sind (durch „J" verdeutlich), wird eine Zuordnung 45 von externen Diensten der sicherheitsunkritischen Softwarekomponente und somit der SQLite-Datenbank als Archiv und Ermittlung von Softwarekomponenten bzw. Prozessen (z. B. Kernel-Ressourcen), die durch die sicherheitsunkritische Softwarekomponente und somit die SQLite-Datenbank als Archiv beeinflusst werden, durchgeführt. Anschließend wird eine Analyse 46 der Nutzung verbleibender Ressourcen durch die sicherheitsunkritische Softwarekomponente und somit die SQLite-Datenbank als Archiv durchgeführt und das Programm wird beendet 44.
  • Die Anforderungen aus einer vorgegebenen Sicherheitsnorm (hier beispielhaft EN 50128) müssen bei der Entwicklung von nicht-sicherheitskritischen bzw. sicherheitsunkritischen Komponenten (hier beispielhaft der Archivkomponente in Form von SQLite-Datenbank) berücksichtigt werden.
  • Gemäß dem vorliegenden Ausführungsbeispiel wurde SQLite als Persisitierungsmedium unter verschiedenen Lösungsalternativen nach bestimmten Auswahlkriterien bewertet und als beste Lösung gewählt. Näheres ist der nachfolgenden Entscheidungstabelle zu entnehmen, dabei sind mögliche Risiken, d. h., Rückwirkungen bzw. Beeinflussungsmöglichkeiten, und die auf diese definierten Maßnahmen aufgeführt.
  • Wie bereits erwähnt kann die Rückwirkung auf andere Softwarekomponenten oder -Systeme gemäß dem vorliegenden Ausführungsbeispiel über die Nutzung gemeinsamer Ressourcen zwischen den weiteren Softwarekomponenten und der Archivkomponente als SQLite-Datenbank erfolgen. Die gemeinsamen Ressourcen können dabei sein:
    • 1. Speicher;
    • a. Hauptspeicher;
    • b. Dateisystem;
    • 2. CPU-Zeit/Auslastung;
    • 3. Kernel-Ressourcen (z. B. Mutex, Threads, etc.); und/oder
    • 4. Kommunikation zu anderen SW-Komponenten.
  • Gemäß dem vorliegenden Ausführungsbeispiel wird davon ausgegangen, dass die Sicherheit der gemeinsamen Ressourcen ebenfalls durch entsprechende Überwachungsmechanismen sicherstellt wird, d. h., dass für die gemeinsamen Ressourcen Schwachstellen (Rückwirkungen) auf das sicherheitsgerichtete System erkannt werden und dass gegebenenfalls entsprechend darauf reagiert wird.
    Mögliches Risiko Maßnahme
    zu 1. a. Hauptspeicher
    Die Archivkomponente darf den Speicherbereich der anderen Softwarekomponenten nicht beeinflussen (z. B. aus Versehen Speicherüberschreiber, etc.) Die Archivkomponente darf nicht zuviel Hauptspeicher in Anspruch nehmen, so dass für das sicherheitsgerichtete System oder für die anderen Soft-warekomponenten auf dem Server des Systems nicht genügend Hauptspeicher zur Verfügung steht und somit ein sicheres Funktionieren des sicherheitsgerichteten Systems beeinträchtigt wird. Die Archive Komponente wird als Dienst in einem eigenen Dienstcontainer ablaufen gelassen, da ein Dienstcontainer in einem eigenen Linux- bzw. Windows-Prozess läuft und damit die Speicherschutzmechanismen des jeweiligen Betriebssystems greifen. Den zur Verfügung stehenden Hauptspeicher für die Archivkomponente über das Betriebs-system begrenzen. In Linux z. B. mit Hilfe der APIFunktion setrlimit().
    zu 1. b. Dateisystem
    Es besteht die Gefahr, dass die Archivkomponente zuviel Speicher des sicherheitsgerichteten System belegt, so dass die anderen Softwarekomponenten und das sicherheitsgerichtete System selbst nicht mehr genügend Speicher auf dem File System zur Verfügung haben. Es besteht die Gefahr, dass SQLite-Datenbank als Archiv versucht, auf eine ihr nicht zugeordneten Partition zuzugreifen (z. B. durch Lesen und/oder Schreiben). Eigene Partition für die SQLite-Datenbank als Archiv definieren. Eigene User-Rechte definieren. Hier muss mit dem sicherheitsgerichteten System geklärt werden, ob es möglich ist, verschiedene User (Rechte) für unterschiedliche Dienstcontainer des sicherheitsgerichteten Systems zu definieren. Alternativ kann man beim Systemstart die gleichen Gruppenrechte allen Dienstcontainern des sicherheitsgerichteten Systems geben und danach dem Dienstcontainer, in dem die Archivkomponente läuft, Rechte entziehen. Dabei könnte geprüft werden, ob im Falle eines Linux-Systems dieses auch prozessess-spezifisch möglich ist.
    zu 2. CPU-Zeit/Auslastung
    Es besteht die Gefahr, dass die Archivkomponente bzw. die SQLite-Datenbank zu viel an Prozessorzeit beansprucht, so dass die anderen Softwarekomponenten, insbesondere die sicherheitskritischen Softwarekomponenten nicht oder zumindest nicht ausreichend Prozessorzeit nutzen können. Gemäß dem vorliegenden Ausführungsbeispiel wird das sicherheitsgerichtete System von einem LSM (Linux Safety Manager) überwacht. Falls der LSM seiner Überwachungsfunktion bzw. -Aufgabe nicht nachkommen kann, übernimmt der SEP (Safety Execution Processor) diese Aufgabe. Die sicherheitskritischen Komponenten werden innerhalb des sicherheitsgerichteten Systems durch eine Heartbeat-Funktionalität überwacht. Hierfür müssen alle LCM-Teilkomponenten der Archivkomponente diese Funktionalität implementieren. Diese Überwachungsfunktionalitäten können anschließend im Test verifiziert werden.
    zu 3. Kernel-Ressourcen
    Es besteht die Gefahr, dass die SQLite-Datenbank unbegrenzt Kernel-Ressourcen verwenden. Beispiele für solche Ressourcen sind beispielsweise Mutex(e) oder File Handle. Bei File Handle kann es mehrere „File Open" ohne entsprechende Anzahl von „File Close" für die SQLite-Datenbank geben. Dadurch läuft der File Handler im Kernel „voll", so dass andere Softwarekomponenten keine Dateioperationen durchführen können. Hier ist eine Analyse des softwarecodes sinnvoll. Dabei wird feststellt, welche, wie viele und wie die Kernel-Ressourcen durch die SQLite-Datenbank benutzt werden. Da-bei werden die von SQLite benutzten Kernel Ressourcen aufgedeckt. Ggf. wird applikativ sichergestellt, dass diese rückwirkungsfrei verlaufen.
    zu 4. Kommunikation
    Hier besteht die Gefahr, dass die SQLite-Datenbank eine ungewollte Kommunikation zu anderen SW-Komponenten aufbaut. Hier kann z. B. ein „grep"-Befehl auf dem Quellcode von SQLite ausgeführt werden, um nach solchen Stichworten wie bind, socket, etc. zu suchen. Dabei kann sichergestellt werden, dass die SQLite-Datenbank, keine Kommunikation zu anderen Softwarekomponenten aufbaut.
  • Im Nachfolgenden werden beispielhaft einige mögliche Kernel-Ressourcen des gemäß dem vorliegenden Ausführungsbeispiel eingesetzten Linux-Betriebssystems aufgelistet, die von der SQLite-Datenbank verwendet werden können:
    Figure 00270001
  • Somit bezieht sich die vorliegende Erfindung auf ein Unterstützen eines sicherheitsgerichteten Systems, wobei das sicherheitsgerichtete System sicherheitskritische Softwarekomponenten und sicherheitsunkritische Softwarekomponenten aufweist. Dabei wird eine Möglichkeit einer gegenseitigen Beeinflussung einer sicherheitskritischen Softwarekomponente und einer sicherheitsunkritische Softwarekomponente identifiziert und einer Menge von technischen Maßnahmen zum Verhindern der Möglichkeit der Beeinflussung definiert. Auf diese Weise wird durch die vorliegende Erfindung eine Rückwirkungsfreiheit von sicherheitsunkritischen Softwarekomponenten auf sicherheitskritische Softwarekomponenten sowohl nachgewiesen als auch sichergestellt. Dies ist insbesondere der Fall, wenn als eine sicherheitsunkritische Komponente eine frei verfügbare Softwarekomponente, z. B. eine Open Source Softwarekomponente, eingesetzt wird.
  • Obwohl die vorliegende Erfindung vorstehend mit Bezug auf die Ausführungsform gemäß der beiliegenden Zeichnungen erklärt wird, ist es ersichtlich, dass die Erfindung nicht auf diese beschränkt ist, sondern innerhalb des Bereichs der oben und in den anhängigen Ansprüchen offenbarten erfinderischen Idee modifiziert werden kann. Es versteht sich von selbst, dass es noch weitere Ausführungsformen geben kann, die den Grundsatz der Erfindung darstellen und äquivalent sind, und dass somit verschiedene Modifikationen ohne Abweichen vom Umfang der Erfindung implementiert werden können.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • - EN 50128 [0008]
    • - EN 50128 [0010]
    • - EN 50128 [0047]
    • - EN 50128 [0048]
    • - EN 50128 [0077]

Claims (15)

  1. Verfahren zum Unterstützen eines sicherheitsgerichteten Systems, wobei das sicherheitsgerichtete System sicherheitskritische Softwarekomponenten und sicherheitsunkritische Softwarekomponenten aufweist und wobei das Verfahren aufweist: Identifizieren einer Möglichkeit einer gegenseitigen Beeinflussung einer sicherheitskritischen Softwarekomponente und einer sicherheitsunkritische Softwarekomponente; und Definieren einer Menge technischer Maßnahmen zum Verhindern der Möglichkeit der Beeinflussung.
  2. Verfahren nach Anspruch 1, wobei das Identifizieren aufweist: Ermitteln einer Schnittmenge systemtechnischer Ressourcen eines Wirkungsbereichs der sicherheitskritischen Softwarekomponente und eines Wirkungsbereichs der sicherheitsunkritischen Softwarekomponente.
  3. Verfahren nach Anspruch 2, wobei das Identifizieren ferner aufweist: Bewerten zumindest einer systemtechnischen Ressource aus der Schnittmenge systemtechnischer Ressourcen hinsichtlich der Möglichkeit der gegenseitigen Beeinflussung.
  4. Verfahren nach einem der vorstehenden Ansprüche, wobei das Definieren der Menge technischer Maßnahmen durch Analyse der Möglichkeit der gegenseitigen Beeinflussung ausgeführt wird.
  5. Verfahren nach einem der vorstehenden Ansprüche, wobei das Definieren der Menge technischer Maßnahmen basierend auf der Bewertung der zumindest einen systemtechnischen Ressource durchgeführt wird.
  6. Verfahren nach einem der vorstehenden Ansprüche, wobei das Definieren der Menge technischer Maßnahmen ein Bestimmen einer Konfigurationsmaßnahme aufweist.
  7. Verfahren nach einem der vorstehenden Ansprüche, wobei das Definieren der Menge technischer Maßnahmen eine softwaretechnische Analyse der sicherheitskritischen Softwarekomponente hinsichtlich der Möglichkeit der gegenseitigen Beeinflussung aufweist.
  8. Verfahren nach einem der vorstehenden Ansprüche, wobei das Definieren der Menge technischer Maßnahmen ein Bestimmen einer Applikation zum Verhindern der Möglichkeit der gegenseitigen Beeinflussung aufweist.
  9. Verfahren nach einem der vorstehenden Ansprüche, wobei als die sicherheitsunkritischen Softwarekomponente eine Open Source Softwarekomponente verwendet wird.
  10. Vorrichtung, die zum Unterstützen eines sicherheitsgerichteten Systems ausgestaltet ist, wobei das sicherheitsgerichtete System sicherheitskritische Softwarekomponenten und sicherheitsunkritische Softwarekomponenten aufweist und wobei die Vorrichtung derart konfiguriert ist: eine Möglichkeit einer gegenseitigen Beeinflussung einer sicherheitskritischen Softwarekomponente und einer sicherheitsunkritische Softwarekomponente zu identifizieren; und eine Menge technischer Maßnahmen zum Verhindern der Möglichkeit der Beeinflussung zu definieren.
  11. System, das ausgestaltet ist, Schritte des Verfahrens nach einem der Ansprüche 1 bis 9 auszuführen.
  12. Computerprogramm, das eine Kodierung aufweist, die konfiguriert ist, Schritte des Verfahrens nach einem der Ansprüche 1 bis 9 auszuführen.
  13. Computerprogramm nach Anspruch 12, wobei das Computerprogramm auf einem Datenträger gespeichert ist.
  14. Datenträger, der ein Computerprogramm nach Anspruch 12 aufweist.
  15. Sicherheitsgerichtetes System, das sicherheitskritische Softwarekomponenten und sicherheitsunkritische Softwarekomponenten aufweist und das derart konfiguriert ist, eine Rückwirkungsfreiheit auf die sicherheitskritischen Softwarekomponenten durch Ausführen der Schritte des Verfahrens nach einem der Ansprüche 1 bis 9 sicherzustellen.
DE102008018680A 2007-12-18 2008-04-14 Verfahren zum Unterstützen eines sicherheitsgerichteten Systems Ceased DE102008018680A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102008018680A DE102008018680A1 (de) 2007-12-18 2008-04-14 Verfahren zum Unterstützen eines sicherheitsgerichteten Systems
PCT/EP2008/065369 WO2009077271A1 (de) 2007-12-18 2008-11-12 Verfahren zum identifizieren gegenseitiger beeinflussung von softwarekomponenten
US12/808,370 US8620873B2 (en) 2007-12-18 2008-11-12 Method for supporting a safety-oriented system
EP08861516A EP2225640A1 (de) 2007-12-18 2008-11-12 Verfahren zum identifizieren gegenseitiger beeinflussung von softwarekomponenten

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102007060814.6 2007-12-18
DE102007060814 2007-12-18
DE102008018680A DE102008018680A1 (de) 2007-12-18 2008-04-14 Verfahren zum Unterstützen eines sicherheitsgerichteten Systems

Publications (1)

Publication Number Publication Date
DE102008018680A1 true DE102008018680A1 (de) 2009-07-02

Family

ID=40690882

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008018680A Ceased DE102008018680A1 (de) 2007-12-18 2008-04-14 Verfahren zum Unterstützen eines sicherheitsgerichteten Systems

Country Status (4)

Country Link
US (1) US8620873B2 (de)
EP (1) EP2225640A1 (de)
DE (1) DE102008018680A1 (de)
WO (1) WO2009077271A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013218814A1 (de) * 2013-09-19 2015-03-19 Siemens Aktiengesellschaft Verfahren zum Betreiben eines sicherheitskritischen Systems
CN116644424A (zh) * 2023-07-25 2023-08-25 北京飞龙玥兵科技有限公司 计算装置安全保护方法及系统、电子设备、可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050283834A1 (en) * 2004-06-17 2005-12-22 International Business Machines Corporation Probabilistic mechanism to determine level of security for a software package
US20070168957A1 (en) * 2005-11-08 2007-07-19 Red Hat, Inc. Certifying a software application based on identifying interface usage

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028019B2 (en) * 1998-11-11 2006-04-11 Wise Solutions, Inc. Method and system of managing software conflicts in computer system that receive, processing change information to determine which files and shared resources conflict with one another
DE19927657A1 (de) * 1999-06-17 2001-01-04 Daimler Chrysler Ag Partitionierung und Überwachung von softwaregesteuerten Systemen
US20060206855A1 (en) * 2005-03-09 2006-09-14 Biju Nair System and method for conflict identification and resolution
US8291005B2 (en) * 2008-01-07 2012-10-16 International Business Machines Corporation Providing consistency in processing data streams
CN101334797B (zh) * 2008-08-04 2010-06-02 中兴通讯股份有限公司 一种分布式文件系统及其数据块一致性管理的方法
US8224791B2 (en) * 2009-09-11 2012-07-17 Sap Ag Information lifecycle cross-system reconciliation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050283834A1 (en) * 2004-06-17 2005-12-22 International Business Machines Corporation Probabilistic mechanism to determine level of security for a software package
US20070168957A1 (en) * 2005-11-08 2007-07-19 Red Hat, Inc. Certifying a software application based on identifying interface usage

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
EN 50128

Also Published As

Publication number Publication date
US8620873B2 (en) 2013-12-31
US20100313075A1 (en) 2010-12-09
EP2225640A1 (de) 2010-09-08
WO2009077271A1 (de) 2009-06-25

Similar Documents

Publication Publication Date Title
EP3274825B1 (de) Verfahren und ausführungsumgebung zum gesicherten ausführen von programmbefehlen
DE102018113625A1 (de) Fehlerinjektionstestvorrichtung und -verfahren
DE102020205539A1 (de) Verfahren und Vorrichtung zum Prüfen eines technischen Systems
EP3709166B1 (de) Verfahren und system zur sicheren signalmanipulation für den test integrierter sicherheitsfunktionalitäten
EP3430558B1 (de) Erkennen einer abweichung eines sicherheitszustandes einer recheneinrichtung von einem sollsicherheitszustand
AT521713B1 (de) Verfahren zur Detektion sicherheitsrelevanter Datenflüsse
DE102012207215A1 (de) Verfahren und Vorrichtung zur Überwachung von Funktionen eines Rechnersystems, vorzugsweise eines Motorsteuersystems eines Kraftfahrzeuges
DE102008018680A1 (de) Verfahren zum Unterstützen eines sicherheitsgerichteten Systems
EP3767505B1 (de) Verfahren und system zur bereitstellung von sicherheitsinformationen über einen anwendungscontainer für ein industrielles edge-gerät
DE102013214218A1 (de) Verfahren und system zum überprüfen von software
DE102008043374A1 (de) Vorrichtung und Verfahren zur Generierung redundanter, aber unterschiedlicher Maschinencodes aus einem Quellcode zur Verifizierung für ein sicherheitskritisches System
DE112013006981T5 (de) Steuersystem Prüfmittel
DE102012107160A1 (de) Verfahren zur Realisierung und Anpassung von Brandschutzmaßnahmen
DE102021207872A1 (de) Kompositionelle verifikation von eingebetteten softwaresystemen
DE102010042574B4 (de) Verfahren zum Betreiben eines Mikrocontrollers für ein Automobil und Mikrocontroller
DE102020206327A1 (de) Verfahren und Vorrichtung zum Prüfen eines technischen Systems
EP3872661A1 (de) Analyse einer container-instanz eines betriebssystems
DE102020201603A1 (de) Verfahren und Vorrichtung zum Qualifizieren eines Entwicklungsprozesses für ein technisches System
EP4281890A1 (de) Verfahren zur bestimmung der integrität einer datenverarbeitung, vorrichtung, datenverarbeitungsanlage und anlage
DE102021212594A1 (de) Verfahren zum Starten einer Speichereinheit einer Recheneinheit
DE102022207776A1 (de) Überwachen eines Modells und Anomalieerkennung
DE102022201856A1 (de) Automatisches generieren eines fuzzing-plans für das fuzzing eines programmiercodes
DE102020206323A1 (de) Verfahren und Vorrichtung zum Prüfen eines technischen Systems
DE102022210264A1 (de) Verfahren zur Erkennung von potenziellen Datenexfiltrationsangriffen bei wenigstens einem Softwarepaket
DE102019128156A1 (de) Verfahren zur Überprüfung eines FPGA-Programms

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection