Betriebssysteme Separation schafft Sicherheit

Ein sicherheitskritisches Steuerungssystem muss auch dann noch sicher funktionieren, wenn Fehler auftreten. Um Fehler zu erkennen und in geeigneter Weise auf sie reagieren zu können, sind jedoch Systemkomponenten nötig, die sich gegenseitig überwachen. Statt durch redundante Hardware kann dies auch mit Hilfe eines Separations-Kernels erledigt werden.

Die Kosten für die Entwicklung und Zertifizierung sicherer industrieller Steuerungssysteme nehmen aufgrund der steigenden Komplexität, der Forderung nach mehr Sicherheit und Zuverlässigkeit und aufgrund der Tatsache, dass solche Systeme in rauen Umgebungen zum Einsatz kommen, immer weiter zu. Um diese Anforderungen zu erfüllen, richten sich Entwickler von Industriesteuerungen nach dem Standard IEC 61508 und setzen handelsübliche Hardware und Software ein, um Projektrisiken zu mindern und einen hohen Grad an funktionaler Sicherheit und Zuverlässigkeit zu erreichen. Doch was sind die primären Kostentreiber? Und wie lassen diese sich mit Hilfe heutiger Entwicklungsmethoden, Tools, Betriebssysteme und Virtualisierungstechniken verringern?

Industrielle Steuerungen

Industrielle Systeme überwachen und steuern die Wasser-, Öl-, Gas- und Stromerzeugung, chemische Anlagen, Fertigung und zahlreiche Transportsysteme für Schiene und Straße. Diese Steuerungssysteme rücken zunehmend in das Rampenlicht der Öffentlichkeit - leider nicht immer aufgrund ihrer Erfolge. Vielmehr haben diese Systeme durch Fehler mit großen sozialen und ökologischen Folgen und durch Cyber-Attacken von sich reden gemacht. Ein Ausfall von Steuerungs- und Überwachungssystemen (SCADA - Supervisory Control and Data Acquisition), verteilten Steuerungssysteme und anderen Spezialsteuerungen kann katastrophale Folgen für die Bevölkerung und die Wirtschaft haben.

Die Entwicklung und Wartung dieser Systeme muss daher auf strengen und bewährten Methoden basieren, wie z.B. der IEC 61508, um mögliche Sicherheitsrisiken von vornherein zu mindern.

Der Markt für Industriesteuerungen ändert sich rasant, da die Unternehmen, die diese Systeme einsetzen, von den Anbietern flexible, IEC-61508-zertifizierte Lösungen erwarten, um Risiken zu mindern. Natürlich ist damit auch eine rechtliche Absicherung im Falle eines Systemausfalls verbunden. In einigen Regionen kann die Regierung sogar vorschreiben, dass industrielle Steuerungen zertifiziert sein müssen, was OEMs noch mehr unter Druck setzt, zertifizierte Systeme bereitzustellen.

Angetrieben durch die Norm IEC 61508, wurden die Risiken industrieller Steuerungen analysiert und Sicherheitsfunktionen festgelegt, um die identifizierbaren Risiken auf akzeptable „Safety Inte-grity Levels“ (SIL) zu reduzieren. Industriesteuerungen werden nach bestimmen SILs zertifiziert, wobei SIL 3 die höchste Stufe der Risikominderung ohne Hardware-Redundanz bedeutet. Im Wesentlichen dient SIL 3 dazu, Systeme, z.B. solche von großer infrastruktureller Bedeutung, vor hohen Risiken zu schützen.

Der Bau und die Zertifizierung industrieller Steuerungen ist ein teures Unterfangen in Bezug auf die Hardware- und Software-Beschaffung, Entwicklungs- und Zertifizierungskosten. Komplexere Steuerungen können aus einer Vielzahl von Sensoren, Aktoren, Single- und Multicore-Prozessoren, Netzwerk-ICs und verschiedenen Netzwerkanbindungstechniken bestehen. Weil die IEC 61508 einen strengen Sicherheits-Lebenszyklus fordert, bedeutet das einen erhöhten Arbeitsaufwand, was die Entwicklungszeit verlängert und die Gesamtentwicklungskosten erhöht.

Allein der Zertifizierungsprozess kann Hunderttausende von Euro kosten und monatelang andauern. Die Zertifizierung industrieller Steuerungen ist arbeitsintensiv und kostet daher Zeit und Geld: Eine mehrjährige Entwicklung ist üblich und die Budgets für die Systemzertifizierung erreichen schnell mehrere Millionen Euro.

Historisch gesehen basieren industrielle Steuerungen auf einem einmalig entwickelten ASIC. Diese Systeme sind aber nicht mehr flexibel genug angesichts der sich ständig ändern- den technischen Anforderungen und Marktentwicklungen. Aus Gründen der Leistungsfähigkeit war dies in der Vergangenheit eine gute Wahl; eine zukünftige Systemerweiterung und Aufrüstung macht es jedoch erforderlich, dass immer mehr Funktionen in Software realisiert werden. Dazu zählen sowohl die Anwendungs-Software als auch die Sicherheitsfunktionen, die in Hinblick auf IEC 61508 entwickelt werden.

In Zukunft wird es die Software sein, die diese industriellen Steuerungen nicht nur voneinander unterscheidet, sicherer und robuster macht, sondern auch den Großteil der Kosten dieser Systeme einnimmt. Applikations-Software, Board Support Packages, Treiber, Middleware, Kommunikations-Infrastrukturen, Anwenderschnittstellen, permanente Speicher und Device-Controller tragen alle zu mehr Aufwand, Zeit und Kosten bei. Die effizientere Bereitstellung sicherer Software ist daher entscheidend, wenn industrielle Steuerungen in Zukunft erfolgreich eingesetzt werden sollen.

Software-Entwicklung nach IEC 61508

Die Norm IEC 61508 schafft den Rahmen, um die Einführung von Fehlern in industrielle Steuerungen zu verhindern und entsprechend auf Fehler zu reagieren, wenn diese doch auftreten. In der Praxis werden Fehler und vorsätzliche Angriffe auf diese wichtigen Systeme vorkommen, und diese Steuerungen müssen so gebaut sein, dass sie diesen Gefahren widerstehen können.

IEC 61508 zielt nicht auf die Systemsicherheitsanforderungen ab, sondern stellt sicher, dass das Wissen und Auffinden von Sicherheitsbedrohungen während der Entwicklungsphase nicht unberücksichtigt bleiben darf. Teil 1 von IEC 61508-2010, Abschnitt 7.4.2.3 besagt: „Wenn eine Gefahrenanalyse eine böswillige oder unerlaubte Handlung feststellt, die eine Sicherheitsbedrohung als vorhersehbar einstuft, sollte eine Sicherheitsbedrohungsanalyse durchgeführt werden.“

Für Software-Entwickler im Bereich industrieller Steuerungen stellt IEC 61508 (Teil 3) einen strengen Entwicklungsrahmen und -standard dar, der beim Bau, bei der Bereitstellung und bei der Wartung funktional sicherer Systeme hilft. Funktional sicher heißt, dass das Software-System potenzielle Fehler erkennt und dann korrigierende oder vorbeugende Maßnahmen gemäß der Norm ergreift. Industriesteuerungen mit funktionalen Sicherheitssystemen werden allerdings immer komplexer, da sie immer mehr Funktionen aufgrund der gestiegenen Sicherheitsan-forderungen erfüllen müssen.

Die Systeme sind immer weiter verteilt und erfordern so eine vermehrte Kommunikation wichtiger Daten und Steuerungsinformationen. Die Entwicklungskosten dieser Systeme hängen damit umso mehr von den verschiedenen Kommunikationsstrategien und -technologien ab, die zur Anwendung kommen. Dazu zählen Hardware- und Software-Redundanzen, das Design der Anwenderschnittstellen, die Netzwerktopologie und die erforderlichen Sicherheitsgrade.

Kosten, Abläufe und Risiken reduzieren

Für die Anbieter industrieller Steuerungssysteme gibt es Methoden und Techniken, mit denen sich die Kosten, Abläufe und Risiken verringern lassen, während alle Anforderungen erfüllt werden. Das Zusammenstellen von Systemen aus vorzertifizierten Komponenten ist eine solche Möglichkeit. Mit einem zertifizierten Betriebssystem und vorab zertifizierten Software-Komponenten lässt sich ein -erheblicher Entwicklungs- und Validierungsaufwand einsparen. Je nach Zertifizierung können diese Komponenten auch mehr Sicherheit und Zuverlässigkeit bieten.

Bevor jedoch eine beliebige Standard-Software eingesetzt wird, müssen die Zulieferer die richtige Entscheidung hinsichtlich der Authentifizierung und technischen Herkunft ihres Angebots treffen - und wie sich dies auf das Gesamtsystem aller Komponenten auswirkt. So könnte zum Beispiel eine Entscheidung für einen Prozessor mit einem Betriebssystem getroffen werden, das auf einer Separations-Kernel-Architektur basiert.

Die IEC 61508 informiert Software-Entwickler über Techniken, die sicherstellen, dass sich Software-Elemente nicht gegenseitig beeinträchtigen. Eine Möglichkeit, auf einem Prozessor eine unabhängige Ausführung unter den Software-Komponenten zu realisieren, ist die räumliche und zeitliche Trennung durch den Einsatz virtueller Adressräume und Speicherschutz auf dem Prozessor. Green Hills‘ Betriebssystem Integrity ist ein Beispiel hierfür. Es bietet eine Separations-Kernel-Architektur, die auf Sicherheit und Zuverlässigkeit ausgelegt wurde - und das für Ein-Prozessor-, verteilte und Multicore-Prozessor-Umgebungen.