WO2009077271A1 - Verfahren zum identifizieren gegenseitiger beeinflussung von softwarekomponenten - Google Patents

Verfahren zum identifizieren gegenseitiger beeinflussung von softwarekomponenten Download PDF

Info

Publication number
WO2009077271A1
WO2009077271A1 PCT/EP2008/065369 EP2008065369W WO2009077271A1 WO 2009077271 A1 WO2009077271 A1 WO 2009077271A1 EP 2008065369 W EP2008065369 W EP 2008065369W WO 2009077271 A1 WO2009077271 A1 WO 2009077271A1
Authority
WO
WIPO (PCT)
Prior art keywords
safety
critical
software components
security
critical software
Prior art date
Application number
PCT/EP2008/065369
Other languages
English (en)
French (fr)
Inventor
Efthimios Liakos
Roland Porsch
Stefan Rothbauer
Martin Rothfelder
Michael Zanzinger
Hartmut Zeilmann
Original Assignee
Siemens Aktiengesellschaft
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 Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Priority to EP08861516A priority Critical patent/EP2225640A1/de
Priority to US12/808,370 priority patent/US8620873B2/en
Publication of WO2009077271A1 publication Critical patent/WO2009077271A1/de

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

Definitions

  • the present invention relates to a method of supporting a safety-related system.
  • One of the goals of a safety-related or safety-related system is to have a reliable and correct one
  • At least one A security requirement is specified to achieve and / or meet a given security level.
  • Functional safety is considered to be present if each specified safety function is performed and a required degree of fulfillment is achieved for each safety function according to the corresponding safety requirement level.
  • a safety requirement level SAS or Safety Integrity Level (SIL)
  • SAS or Safety Integrity Level (SIL) is a property of a safety function and does not refer to a system or subsystem.
  • the realization of this safety function is done by a combination of systems consisting of hardware and software parts.
  • the security requirement level refers to an end-to-end security function of a safety-related system.
  • a software component does not have a Safety Integrity Level (SIL) when considered isolated from a safety-related system.
  • SIL Safety Integrity Level
  • the software component may be suitable for supporting safety functions to a particular SIL. This depends on how the software component has been specified, developed, implemented and / or verified.
  • the software security requirement level n or SSAS n is specified as follows: software developed using appropriate techniques and measures, the techniques and measures to ensure that the software meets the requirements for systematic failures of a particular security function X for SSAS n.
  • a software security requirement level is not a property of systems, subsystems, or components.
  • the above specification may be interpreted to mean that the software system, software subsystem or soft- component in safety functions up to SSAS 1,2,3 or 4 can be used. However, this alone is not enough to build up a security function for the required SSAS.
  • the software security requirement level of a subsystem determines the highest SSAS that can be asserted for a security function using that subsystem.
  • product liability is an important aspect when it comes to safety-related or safety-oriented systems. If a (purchased) product is defective, under certain circumstances claims for damages may also arise. The manufacturer can then withdraw from the responsibility for the damage if the mistake in bringing the product was not present in the traffic or if the product corresponded to predetermined safety expectations and prescribed legislation.
  • the safety relevance of technical systems derives from the maximum safety requirement for the functions provided by these systems. If one considers the use of software in safety-related systems, then only a small part of safety functions is usually taken over by the software. In other words, the software components used are to be subdivided on the one hand into security-relevant or safety-critical software components and on the other hand into non-safety-relevant or safety-critical software components. Because there is a possibility that the security-critical software components may disrupt the security-critical software components, i. can affect each other, they are as safe as the safety-critical software components developed.
  • the object of the invention is an improved support of a safety-related system which has safety-critical software components and safety-critical software components.
  • supporting the safety-related system includes, in particular, the detection and / or the ensuring of freedom from reaction. That is, the prevention of mutual interference of a safety-critical software component and a security Suncritical software component and the proof that such a mutual influence is excluded or at least excluded up to the certain maximum possible.
  • the object is achieved by a method having features of claim 1, by a device having features of claim 10, by a system having features of claim 11, by a computer program having features of claim 12, by a data carrier having features of claim 14 and / or by a safety-related system with features of claim 15.
  • the above object is achieved by a method for supporting a safety-related system, wherein the safety-related system has safety-critical software components and safety-critical software components, and wherein the method comprises: identifying a possibility of a mutual interference between a safety-critical software component and a safety-critical software component; and defining a set of engineering measures to prevent the possibility of interference.
  • the present invention allows application of formal methods and techniques in software and system development, whereby the correctness of a software design, analysis or design model can be demonstrated against functional security requirements. Furthermore, this makes it possible to provide and guarantee the highest safety requirements for a safety-relevant or safety-related system.
  • the identification comprises determining a cross section of system resources of an area of action of the security-critical software component and of an area of action of the security-non-critical software component.
  • the identification comprises an assessment of at least one system-technical resource from the intersection of system resources with regard to the possibility of mutual interference.
  • a possible system resource for example main memory, file system, software resource, communication mechanism or communication medium
  • the system resource can be examined in more detail and correspondingly marked for safety-related relevance.
  • the definition of the amount of technical measures can be carried out by analyzing the possibility of mutual interference.
  • the definition of the quantity of technical measures can be carried out based on the evaluation of the at least one system-technical resource.
  • the definition of the quantity of technical measures may, according to the present invention, include various types of technical measures. men, which allows a flexible implementation of the present invention. In this case, a hybrid form or a combination of the various types of technical measures is possible.
  • defining the set of engineering measures may include determining a configuration measure.
  • the definition of the amount of technical measures may include a software-technical analysis of the safety-critical software component with regard to the possibility of mutual interference.
  • defining the set of engineering measures may include determining an application to prevent the possibility of interference.
  • At least one non-safety-critical software component of the quantity of non-safety-critical software components of the safety-related system can be an open-source software component. That is, as the non-secure software component for which the possibility of interference is identified and defined in view of a number of technical measures, an open source software component can be used.
  • COTS Commercial of the-shelf
  • COTS Commercial of the-shelf
  • open source software in security systems, however, the requirements of the safety standards must be adhered to. As already mentioned, this is not yet available.
  • the present invention provides a formal approach for detecting and ensuring given safety relevant standards. In doing so, evidence of non-reaction is provided when using the respective (non-safety-critical) components in the corresponding project. In particular, proof is provided for non-secure software components that may include COTS or open source software components. In doing so, proof of non-retroactivity is provided in accordance with existing safety standards using formal methods and techniques. According to the present invention, constructive, analytical and / or applicative measures can be used to prevent threats which through use negatively influence the execution of the safety-critical functions in the system.
  • the above object is achieved by means of a device which is designed to support a safety-related system, the safety-oriented system having safety-critical software components and safety-critical software components, and wherein the device is configured:
  • the apparatus is configured to perform the steps of the method outlined above and explained in more detail below.
  • the above object is performed by means of a computer program, the computer program having a coding which is configured to carry out steps of the method outlined above and explained in more detail below.
  • the computer program can be stored on a data carrier.
  • a safety-related system comprising safety-critical software components and safety-critical software components and which is configured to ensure freedom from reaction to the safety-critical software components by carrying out the steps of the method outlined above and explained in more detail below.
  • at least one open-source software component or COTS can be designed as at least one security-non-critical software component
  • FIG. 1 shows possible interactions between software components of a safety-related system according to an embodiment of the present invention
  • Fig. 2 is an interface of a safety-critical
  • FIG. 3 shows a feedback barrier implemented in accordance with one embodiment of the present invention
  • FIG. 4 shows a block diagram of an analysis of a source code as an applicative measure according to an exemplary embodiment of the present invention.
  • FIG. 1 shows possible interactions between software components of a safety-related system according to an exemplary embodiment of the present invention.
  • the message archive is involved in the execution of non-safety-critical or safety-critical functions. These can have a threatening effect on the correct and reliable execution of safety-critical functions in the safety-related system. Constructive, analytical and applicative measures prevent these threats (caused by mutual interference of the safety-critical and non-safety-critical software components) from being executed. negatively influence the safety-critical functions in the system.
  • the software components 101, 111, 12, 13 and 14 are divided into three functional classes:
  • safety-critical (safety-relevant) software components 12, 13 the realization of a safety-critical or safety-relevant function is generally achieved by software engineering through collaboration, ie. Collaboration of software components realized in one system. This happens regardless of whether the safety function runs continuously (contineouse mode) or on demand (on-demand mode).
  • the collaborating components thus belong to the security circle from which the software security requirement level (SSAS) results.
  • All software components 12, 14 that are involved in the execution of a safety-critical functionality belong to the Function class of the safety-critical software components with a corresponding SSAS level.
  • Monitoring software components 13 represent self-test and monitoring / diagnostic software components. Their task is to check system resources for random hardware errors.
  • Such software components can, for example, be a monitor adapter on a system server in cooperation with a SEP (Safety Environment Processor).
  • SEP Safety-critical software component
  • the monitor adapter would be the non-safety-critical or safety-critical software component. All software components 13 that are involved in monitoring and diagnosing hardware belong to the functional class of the monitoring software components. This must not be affected by other software components.
  • non-safety-critical or security-critical software components 101, 111 those software components are considered which are involved in non-safety-critical or safety-critical functionalities. These software components belong, so to speak, to SSAS 0. According to the present embodiment, the message archive belongs to this class.
  • Fig. 1 the relationships between the software components 101, 111, 12, 13, 14 are shown by arrows.
  • the solid arrows indicate that a collaboration between the respective software components 12 and 101, 12 and 14 takes place.
  • the dashed arrows which are from the non-safety-critical or safety-critical software component 101 to the software components 12, 13, 14 and 111 lead, indicate those components to which the non-safety-critical or security-critical software component 101 (here exemplified by a SQLite embedded database as a message archive) has a retroactive effect. That is, between the security-critical software component 101 and the security-critical software components 12, 13 and 14, a mutual influence is given.
  • mutual influencing according to the present invention comprises both influencing in both directions (influencing a security-critical software component 101 by a security-critical software component 12, 13 and 14 and influencing a security-critical software component 12, 13 and 14 by a security-critical software component 101) as well as influencing only a direction (ie influencing a security-uncritical software component 101 by a safety-critical software component 12,
  • the security-critical components 101 and 111 each have an interface 10, 11 in order to interact with the security-critical software components 12, 13, 14, to communicate and / or to cooperate.
  • these interfaces 10, 11 are not absolutely necessary; the present invention can also be implemented and carried out without the use of such interfaces 10, 11.
  • Each software component 101, 111, 12, 13, 14 has in one
  • An area of effect is an area of the safety-related system in which or in the context of which the respective software component 101, 111, 12, 13,
  • a safety-related or safety-oriented system consists of several software components 101, 111, 12, 13, 14 each with its own sphere of action, the risk of mutual interference of these components during the execution of a function is potentially given. The influence occurs via the interfaces of the effective areas of the software components 101, 111, 12, 13, 14. There is thus the risk of retroactivity in the execution of a function on the execution behavior of a safety function, so that the correctness and reliability of this safety circuit can no longer be guaranteed according to the associated safety requirement level.
  • these interfaces form the shared resources of the operating system or of the superordinate framework, which provide the sequence of the software components.
  • the interaction between the software components 101, 111, 12, 13, 14 takes place, for example, via the main memory, the file system, Kereskill nel resources or via the communication mechanisms within a computer or even across computers.
  • FIG. 2 shows by way of example an interface 22 (i.e., intersection of system resources) of the domains 21 and 20 of a security-critical software component 211 and a security-critical software component 210 (e.g., a SQLite embedded database as a message archive).
  • a security-critical software component 211 e.g., a SQLite embedded database as a message archive.
  • a kind of barrier is built up in order to prevent or avoid certain influences between safety-critical and safety-critical software components of the safety-related system and to prevent retroactivity.
  • the so-called barrier or shell is designed to intercept and possibly eliminate the various threats emanating from the respective software components.
  • the necessary measures can be taken by the safety-related system to counteract the retroactive effect.
  • the execution of a non-safety-critical or safety-critical function affected by this event can be ended by the system (operating system or framework).
  • the event may be intercepted and the execution process of the message archive terminated to ensure operational safety of the safety-related system.
  • FIG. 3 shows a reaction barrier implemented or configured according to the exemplary embodiment of the present invention.
  • the components of Fig. 3 correspond to the components of Fig. 1.
  • the relationships of the monitoring and the collaboration shown as dotted or solid arrows, are obtained between the software components as originally given.
  • the reaction barrier or shell 30 used in accordance with the invention has the effect that the retroactive effect of the non-safety-critical or security-uncritical software component 101 is captured on the safety-critical software components 12, 13 and 14, ie, that freedom from feedback is ensured. Capture of the feedback is represented by the feedback barrier 30 by confining the feedback relationships, shown as dashed arrows. That is, the non-safety-critical or security-non-software component 101 is isolated by establishing a drain pan as a retroactive barrier 30.
  • the measures can be differentiated into constructive, applica- tive and analytical measures.
  • Constructive measures are a type of preventative measures that can already be taken into account in the configuration, so that no repercussion on other software components 12, 13, 14, 111 can arise due to a security-critical software component 101 in a safety-related system.
  • Proven operating system mechanisms can be used to establish a separate "drain shell" of the non-security-critical or security-non-critical software component, for example, by configuring or implementing a drain shell 30 by appropriately defining or designing user rights, file system partitions, etc.
  • Analytical or verification measures are aimed at testing, evaluating and (external) proof of non-reaction of the test items. This can be done, for example, by a targeted verification of the software code, whereby a number of software testing tools and methods can be used for this purpose.
  • Application measures implement a prevention of the repercussion on other software components in the system by programming steps (for example by operating system API calls for limiting the main memory).
  • programming steps for example by operating system API calls for limiting the main memory.
  • standardized, oriented to the particular problem software tools can be used, which are based for example based on the experience of experts.
  • a SQLite embedded database in the form of a message archive is used as the non-safety-critical or security-uncritical software component.
  • identified possibilities or interfaces i.e., intersection of system resources
  • SQLite embedded database in the form of a message archive will be explained.
  • a systemic resource a lot of technical measures are defined to prevent the possibility of influencing and thus retroactively.
  • - Archive is used by potentially safety-critical processes (for example, system image); - Archive itself has no safety-critical function;
  • Archive is used by potentially safety-critical processes (such as a system image) and does not itself have a safety-critical function.
  • a constructive measure such as setting a defined hard system limit for the use of main memory can be defined.
  • an evaluation of the main memory may indicate that a potential threat to the security-directed system may be in overwriting files by other processes or software components 12, 13, 14, 111.
  • a constructive measure such as the realization of the SQLite database as an independent container in the system framework can be defined.
  • the SQLite database as archive thus becomes a separate operating system process.
  • An influence of other processes or software components 12, 13, 14, 111 by the SQLite database on the main memory is thus not possible.
  • a flash memory rating suggests that a potential threat to the security-based system may be excessive consumption of the flash memory by the SQLite database as the archive 101, so that other processes or software components 12, 13, 14, 111 can be disabled.
  • a constructive action such as storing the SQLite database files on a separate partition in the file system; An increase of the SQLite database files beyond this size is thus prevented by the operating system.
  • an evaluation of the main memory may indicate that a potential threat to the safety-related system may be due to accidental writing to another partition.
  • a constructive measure such as starting the SQLite database 101 can be defined as an archive process with limited user rights. As a result, no writing accesses to other partitions of other processes or software components 12, 13, 14, 111 are permitted.
  • an assessment of the CPU load indicates that a potential threat to the security-oriented system is an excessive consumption of computational time by the SQLite database can lie as an archive 101, so that other processes or software components 12, 13, 14, 111 are hindered.
  • application measures can be defined:
  • the generated library of SQLite 101 can be examined for dependencies to other libraries. As a result dependencies can be detected applicably and prevented.
  • step 41 a configuration and compilation of the security-critical software component (in this case the SQLite database as an archive) is carried out with predetermined switches. Then, in step 42, an analysis of the external symbol dependencies of the program or the security-critical software component and thus the SQLite database is performed as an archive. Subsequently, a query 43 is carried out, in which it is determined whether external symbol dependencies are present.
  • the security-critical software component in this case the SQLite database as an archive
  • SQLite was evaluated as a persistence medium among various solution alternatives according to certain selection criteria and chosen as the best solution. For further details, please refer to the following decision table, which indicates possible risks, ie repercussions or possibilities of influence, and the measures defined for them.
  • the shared resources can be:
  • the security of the shared resources is also ensured by corresponding monitoring mechanisms, that is to say that shared resources are recognized as vulnerabilities (repercussions) to the safety-related system and, if appropriate, responded to accordingly.
  • Memory overwriter, etc. or Windows process is running and thus access the memory protection mechanisms of the respective operating system.
  • the archive component may not take main memory for the archive to much memory in component over the operating claim, thus limiting for system.
  • the safety-related Sysz.B. with the help of the API-tem or for the other soft function setrlimitO. software components on the server of the system is not enough main memory available and thus a safe functioning of the safety-oriented system is impaired. to l.b. file system
  • SQLite database as an archive does not try to access a system that is non-compliant with the securely assigned partition. access (eg be clarified by reading, whether it is possible and / or writing). is to define different users (rights) for different service containers of the safety-related system.
  • the SQL database will take too much safety-critical system processor time, it will be monitored by one LSM (Linux Safety that the other software managers). If the component, in particular the siLSM, can not or does not succeed in its monitoring software critical task or task, it is at least insufficient to perform this task.
  • LSM Linux Safety that the other software managers
  • the safety-critical components are protected by a heartbeat within the safety-related system.
  • kernel resources of the Linux operating system used according to the present exemplary embodiment are listed by way of example, which can be used by the SQLite database:
  • the present invention relates to supporting a safety-related system, the safety-related system having safety-critical software components and safety-critical software components.
  • a possibility of mutual interference of a safety-critical software component and a security-critical software component is identified and a set of technical measures for preventing the possibility of influencing defined.
  • a non-reaction of safety-critical software components on safety-critical software components both detected and ensured. This is the case in particular if a freely available software component, eg an open source software component, is used as a security-non-critical component.

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 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.

Description

Beschreibung
VERFAHREN ZUM IDENTIFIZIEREN GEGENSEITIGER BEEINFLUSSUNG VON SOFTWAREKOMPONENTEN
Die vorliegende Erfindung betrifft ein Verfahren zum Unterstützen eines sicherheitsgerichteten Systems.
Eines der Ziele eines sicherheitsrelevanten oder sicherheits- gerichteten 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 Zuver- lä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 Sicherheitsan- forderungsstufe (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 ve- rifiziert 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=l, 2, 3oder 4) wird erreicht, wenn das SW-Teilsystem Anforderungen vorbestimmter Safety- Normen (z.B. IEC 61508, EN50128 usw.) erfüllt.
Des Weiteren ist auch die Produkthaftung ein wichtiger Aspekt, wenn es um sicherheitsrelevante bzw. sicherheitsgerich- tete 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 dem- entsprechend 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, EN50128 usw. ) . Sicherheitsrelevanten oder sicherheitsgerichteten Systemen, die Softwarekomponenten aufweisen, werden durch die vorgegebenen Regeln oder Normen Sicherheitsanforderungen aufgestellt, die beschreiben, wie ein sicheres Verhalten des Sys- tems gewährleistet und das Auftreten von Gefahrensituationen verhindert werden kann.
Die Sicherheitsrelevanz technischer Systeme leitet sich aus der maximalen Sicherheitsanforderung an die durch diese Sys- teme 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 sicherheitsrele- vante 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 Software- komponenten 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än- kungen 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 implemen- tierte 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 Beein- flussung 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 Identifi- zierens 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 Wirkungsbe- reichs 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 aus- gefü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 Soft- warekomponente 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 Sicher- heitssystemen 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 Soft- warekomponenten, 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, ana- lytische 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 Vor- richtung 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 Computer- programms 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 sicher- heitsgerichteten 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: Fig. 1 mögliche Interaktionen zwischen Softwarekomponenten eines sicherheitsgerichteten Systems gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt;
Fig. 2 eine Schnittstelle einer sicherheitskritischen
Softwarekomponente und einer sicherheitsunkritischen Softwarekomponente gemäß einem Ausführungs- beispiel der vorliegenden Erfindung zeigt;
Fig. 3 eine gemäß einem Ausführungsbeispiel der vorliegenden Erfindung umgesetzte bzw. ausgestaltete Rückwirkungsbarriere zeigt; und
Fig. 4 ein Blockdiagramm einer Analyse eines Source-Codes als applikative Maßnahme gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt.
Die Fig. 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 EN50128 mit formalen Methoden und Techniken gemäß einem Ausführungsbeispiel der vorliegenden Erfindung beschrieben. Dabei ist das Meldungsarchiv an der Ausfüh- rung 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 EN50128 lediglich zur Darstellung eines konkreten Beispiels dienen. Die vorliegende Erfindung findet keine Einschränkung hinsichtlich der verwendeten Softwarekomponenten und hinsichtlich der einzu- haltenden 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 ge- schieht 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 Soft- warekomponenten 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 Selbst- test- 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 Fig. 1 sind die Beziehungen zwischen den Softwarekomponenten 101, 111, 12, 13, 14 durch Pfeile dargestellt. Dabei deuten die gepunkteten Pfeile, die von der überwachenden Soft- warekomponente 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 statt- findet. 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 si- cherheitsunkritische 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 Fig. 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. sicherheitsgerichte- tes 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 Wir- kungsbereiche 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 sicherheitsbezoge- nen 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ückwir- kung 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.
Fig. 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ückwir- kung 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. Frame- work) 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üh- rungsprozess des Meldungsarchivs beendet werden, um Betriebs- Sicherheit des sicherheitsgerichteten Systems zu gewährleisten .
Fig. 3 zeigt eine gemäß dem Ausführungsbeispiel der vorliegenden Erfindung umgesetzte bzw. ausgestaltete Rückwirkungs- barriere. Die Komponenten der Fig. 3 entsprechen den Komponenten der Fig. 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. sicherheitsunkriti- sehe 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, applika- tive 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 durchge- fü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 pro- grammiertechnische 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. si- cherheitsunkritische 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 Res- sourcen (Futex, Datei-Locks, Datei-Handies, Tasks) , Kommunikation (TCP/IP) .
Betrachtet man nun die Möglichkeit der Beeinflussung oder Rückwirkung durch die systemtechnische Ressource Hauptspei- eher, so ergibt eine Bewertung hinsichtlich des Hauptspeichers, dass eine mögliche Bedrohung für das sicherheitsge- richtete 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 kon- struktive 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 sicherheitsge- richtete 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 Sys- temframework 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- eher, so ergibt eine Bewertung hinsichtlich des Flashspeichers, dass eine mögliche Bedrohung für das sicherheitsge- richtete 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 sicherheitsge- richtete System im versehentlichen Schreiben in eine andere Partition geschehen kann. Hier kann beispielsweise eine konstruktive Maßnahme wie Start der SQLite-Datenbank 101 als Ar- chivprozesses 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 sicherheits- gerichtete System in einem übermäßiger Verbrauch von Rechen- zeit 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-Handies 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. Da- durch 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-Handies 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ßnah- me 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 Fig. 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 Symbolab- hä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 sicherheitsunkriti- sehe 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 EN50128) müssen bei der Entwicklung von nicht-sicherheitskritischen bzw. sicherheitsunkritischen Kom- ponenten (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 Entscheidungsta- belle 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 Software- komponenten 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 eben- falls 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.
Figure imgf000025_0001
Speicherüberschreiber, etc. bzw. Windows-Prozess läuft und damit die Speicherschutzmechanismen des jeweiligen Betriebssystems greifen.
Den zur Verfügung stehenden
Die Archivkomponente darf Hauptspeicher für die Archivnicht zuviel Hauptspeicher in komponente über das BetriebsAnspruch nehmen, so dass für system begrenzen. In Linux das sicherheitsgerichtete Sysz.B. mit Hilfe der API- tem oder für die anderen SoftFunktion setrlimitO . warekomponenten auf dem Server des Systems nicht genügend Hauptspeicher zur Verfügung steht und somit ein sicheres Funktionieren des sicherheits- gerichteten Systems beeinträchtigt wird. zu l.b. Dateisystem
Es besteht die Gefahr, dass Eigene Partition für die die Archivkomponente zuviel SQLite-Datenbank als Archiv Speicher des sicherheitsge- definieren . richteten 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 .
Eigene User-Rechte definie¬
Es besteht die Gefahr, dass ren . SQLite-Datenbank als Archiv versucht, auf eine ihr nicht Hier muss mit dem sicher- zugeordneten Partition zu- heitsgerichteten System ge- zugreifen (z.B. durch Lesen klärt werden, ob es möglich und/oder Schreiben) . ist, verschiedene User (Rechte) für unterschiedliche Dienstcontainer des sicher- heitsgerichteten Systems zu definieren .
Alternativ kann man beim Systemstart die gleichen Gruppenrechte allen Dienstcontainern des sicherheitsgerichte- ten 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 Gemäß dem vorliegenden Ausdie Archivkomponente bzw. die führungsbeispiel wird das si- SQLite-Datenbank zu viel an cherheitsgerichtete System Prozessorzeit beansprucht, so von einem LSM (Linux Safety dass die anderen SoftwarekomManager) überwacht. Falls der ponenten, insbesondere die siLSM seiner Überwachungsfunkcherheitskritischen Softwaretion bzw. -Aufgabe nicht komponenten nicht oder zuminnachkommen kann, übernimmt dest nicht ausreichend Prozesder SEP (Safety Execution sorzeit nutzen können. Processor) diese Aufgabe.
Die sicherheitskritischen Komponenten werden innerhalb des sicherheitsgerichteten Systems durch eine Heartbeat-
Figure imgf000028_0001
Figure imgf000029_0001
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:
#if OS_UNIX
#define sqlite3OsOpenReadWrite sqlite3UnixOpenReadWrite
#define sqlite3OsOpenExclusive sqlite3UnixOpenExclusive #define sqlite3OsOpenReadOnly sqlite3UnixOpenReadOnly
#define sqlite3OsDelete sqlite3UnixDelete
#define sqlite3OsFileExists sqlite3UnixFileExists
#define sqlite3OsFullPathname sqlite3UnixFullPathname
#define sqlite3OsIsDirWritable sqlite3UnixIsDirWritable #define sqlite30sSyncDirectory sqlite3UnixSyncDirectory
#define sqlite3OsTempFileName sqlite3UnixTempFileName
#define sqlite30sRandomSeed sqlite3UnixRandomSeed
#define sqlite3OsSleep sqlite3UnixSleep
#define sqlite3OsCurrentTime sqlite3UnixCurrentTime #define sqlite3OsEnterMutex sqlite3UnixEnterMutex
#define sqlite3OsLeaveMutex sqlite3UnixLeaveMutex
#define sqlite3OsInMutex sqlite3UnixInMutex
#define sqlite3OsThreadSpecificData sqlite3UnixThread-
SpecificData #define sqlite30sMalloc sqlite3GenericMalloc
#define sqlite30sRealloc sqlite3GenericRealloc
#define sqlite3OsFree sqlite3GenericFree
#define sqlite30sAllocationSize sqlite3Generic-
AllocationSize #define sqlite30sDlopen sqlite3UnixDlopen
#define sqlite3OsDlsym sqlite3UnixDlsym
#define sqlite30sDlclose sqlite3UnixDlclose #endif Somit bezieht sich die vorliegende Erfindung auf ein Unterstützen eines sicherheitsgerichteten Systems, wobei das si- cherheitsgerichtete System sicherheitskritische Softwarekomponenten und sicherheitsunkritische Softwarekomponenten auf- weist. 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 Soft- warekomponente, 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.

Claims

Patentansprüche
1. Verfahren zum Unterstützen eines sicherheitsgerichteten Systems, wobei das sicherheitsgerichtete System sicherheits- kritische Softwarekomponenten und sicherheitsunkritische Softwarekomponenten aufweist und wobei das Verfahren aufweist:
Identifizieren einer Möglichkeit einer gegenseitigen Beein- flussung 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 basie- rend 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 sicherheitsge- richteten Systems ausgestaltet ist, wobei das sicherheitsge- richtete 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öglich- keit 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 Softwarekompo- nenten durch Ausführen der Schritte des Verfahrens nach einem der Ansprüche 1 bis 9 sicherzustellen.
PCT/EP2008/065369 2007-12-18 2008-11-12 Verfahren zum identifizieren gegenseitiger beeinflussung von softwarekomponenten WO2009077271A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP08861516A EP2225640A1 (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

Applications Claiming Priority (4)

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

Publications (1)

Publication Number Publication Date
WO2009077271A1 true WO2009077271A1 (de) 2009-06-25

Family

ID=40690882

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2008/065369 WO2009077271A1 (de) 2007-12-18 2008-11-12 Verfahren zum identifizieren gegenseitiger beeinflussung von softwarekomponenten

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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060206855A1 (en) 2005-03-09 2006-09-14 Biju Nair System and method for conflict identification and resolution

Family Cites Families (7)

* 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
US7487545B2 (en) * 2004-06-17 2009-02-03 International Business Machines Corporation Probabilistic mechanism to determine level of security for a software package
US8332817B2 (en) * 2005-11-08 2012-12-11 Red Hat, Inc. Certifying a software application based on identifying interface usage
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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060206855A1 (en) 2005-03-09 2006-09-14 Biju Nair System and method for conflict identification and resolution

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
GONG L ET AL: "Going Beyond the Sandbox: An Overview of the New Security Architecture in the Java Development Kit 1.2", PROCEEDINGS OF THE USENIX SYMPOSIUM ON INTERNET TECHNOLOGIES ANDSYSTEMS, XX, XX, 1 December 1997 (1997-12-01), pages 1 - 10, XP002250254 *
HILL M G; LAKE T W: "Non-interference analysis for mixed criticality code in avionics systems", PROCEEDINGS ASE 2000. FIFTEENTH IEEE INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, vol. -, no. -, 2000, pages 257 - 260, XP002519833 *
PROJECT FP6-015905 MOBIUS (MOBILITY ET AL: "D1.1. Report on Resource and Information Flow Security Requirements (Submission date: 2006-03-27), Revision 285, Final, Public", INTERNET CITATION, 2006, pages 1 - 72, XP002422349, Retrieved from the Internet <URL:http://mobius.inria.fr/twiki/bin/view/DeliverablesList/WebHome> [retrieved on 20070219] *

Also Published As

Publication number Publication date
DE102008018680A1 (de) 2009-07-02
US8620873B2 (en) 2013-12-31
EP2225640A1 (de) 2010-09-08
US20100313075A1 (en) 2010-12-09

Similar Documents

Publication Publication Date Title
EP3274825B1 (de) Verfahren und ausführungsumgebung zum gesicherten ausführen von programmbefehlen
DE102018113625A1 (de) Fehlerinjektionstestvorrichtung und -verfahren
DE60019038T2 (de) Intelligente Fehlerverwaltung
DE60017457T2 (de) Verfahren zur isolierung eines fehlers in fehlernachrichten
EP3430558B1 (de) Erkennen einer abweichung eines sicherheitszustandes einer recheneinrichtung von einem sollsicherheitszustand
DE102007045398A1 (de) Integriertes Mikroprozessorsystem für sicherheitskritische Regelungen
EP3709166B1 (de) Verfahren und system zur sicheren signalmanipulation für den test integrierter sicherheitsfunktionalitäten
WO2020073072A1 (de) Verfahren zur detektion sicherheitsrelevanter datenflüsse
WO2013164224A2 (de) Verfahren und vorrichtung zur überwachung von funktionen eines rechnersystems, vorzugsweise eines motorsteuersystems eines kraftfahrzeuges
WO2009077271A1 (de) Verfahren zum identifizieren gegenseitiger beeinflussung von softwarekomponenten
DE102008043374A1 (de) Vorrichtung und Verfahren zur Generierung redundanter, aber unterschiedlicher Maschinencodes aus einem Quellcode zur Verifizierung für ein sicherheitskritisches System
DE102011007467A1 (de) Mehrkernige integrierte Mikroprozessorschaltung mit Prüfeinrichtung, Prüfverfahren und Verwendung
DE102015216086A1 (de) Verfahren und Vorrichtung zum Überwachen eines Zustandes einer elektronischen Schaltungseinheit eines Fahrzeugs
EP2279480B1 (de) Verfahren und system zum überwachen eines sicherheitsbezogenen systems
DE102010042574B4 (de) Verfahren zum Betreiben eines Mikrocontrollers für ein Automobil und Mikrocontroller
EP3822775A1 (de) Verfahren zum sicheren starten einer gerätesoftware, insbesondere eines betriebssystems, eines elektronischen gerätes
DE102018210733A1 (de) Verfahren zum Überwachen wenigstens einer Recheneinheit
EP3864547B1 (de) Verfahren zur detektion sicherheitsrelevanter datenflüsse
DE102017208986A1 (de) Verfahren zum Testen eines geplanten Softwareupdates für ein Fahrzeug
DE102016217762A1 (de) Überwachung von sicherheitsrelevanten Funktionen durch eine nicht sichere Recheneinheit
EP4281890A1 (de) Verfahren zur bestimmung der integrität einer datenverarbeitung, vorrichtung, datenverarbeitungsanlage und anlage
DE102015223579A1 (de) Verfahren und Vorrichtung zum Überprüfen eines Komponentenfehlerbaums
EP3859580A1 (de) Wirksamkeit einer geräteintegritätsüberwachung
EP4312137A1 (de) Berechtigung zu einem installieren und/oder einem starten eines zweiten anwendungsprogramms
Lunkeit et al. Verifikation und Validierung

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08861516

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2008861516

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2008861516

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 12808370

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE