Trend Guide "Embedded Safety & Security"
Embedded Safety & Security: Inhaltsverzeichnis
- Standards und QM - Alles wird besser
- Sicherheit als Strategie - Qualität vor Funktionalität
- Security als Strategie - Schutz vor Viren, Würmern, Hackern & Co.
- Entwicklungsprozess - Des Übels Wurzel
- Die Zukunft im Blick - Künftigen Herausforderungen schon heute begegnen
- Qualitätsmerkmale - Weniger ist mehr
Teil I: Standards und QM - Alles wird besser
Sicherheit – was ist das, und von welcher Art von Sicherheit sprechen wir überhaupt? Zum Glück haben sich mittlerweile auch im deutschen Sprachraum die Begrifflichkeiten funktionale Sicherheit (Safety) und Security durchgesetzt. Laut Definition in der Norm IEC 61508 ist funktionale Sicherheit die Bezeichnung eines Zustands, der frei von unvertretbaren Risiken der Beeinträchtigung und mithin als gefahrenfrei anzusehen ist. Security umfasst den Bereich von potentiellen Angriffen auf ein System von außen, was wiederum Einfluss auf die funktionale Sicherheit haben kann. Doch wie zeigt sich, ob ein Embedded-Softwaresystem hinreichend sicher ist? Immerhin erweisen sich vermeintlich sichere Systeme leider immer wieder als unsicher oder gar gefährlich. Das Gefahrenpotenzial ist groß, im privaten wie auch im geschäftlichen, also professionellen Bereich. Zumal wenn Gefahrenquellen noch gar nicht bekannt sind und mithin nicht klar ist, in welchen Situationen ein System sich zu bewähren hat.
Forderung: Den Stand der Technik beherzigen
Weil man im Vorfeld kaum sagen kann, wo später im Betrieb eines innovativen Systems die Quellen einer Gefährdung oder Fehlfunktion liegen werden, ist es von größter Bedeutung, nach dem Stand der Wissenschaft und Technik zu entwickeln, um dem Vorwurf der Fahrlässigkeit entgegenzuwirken. Und das bedeutet nicht mehr und nicht weniger, als die notwendige Sicherheit mit den derzeit verfügbaren und vertretbaren Mitteln zu realisieren.
Immanente Verbesserung der Sicherheit - 3 Regeln
Welche Möglichkeiten bestehen nun ganz generell, um die Betriebssicherheit von Software-Systemen schon in der Entwicklung zu verbessern? Im Grunde besteht die Anforderung darin, gewisse Regeln beim Programmieren einzuhalten, um Fehler (systematische) während der Entwicklung zu vermeiden. Es gibt verschiedene Möglichkeiten, um die Softwarequalität zu verbessern:
- Erstens besteht ein wichtiger Teil der Kunst darin, sich zu beschränken, was nichts anderes bedeutet, als auf gefährliche Konstrukte entweder zu verzichten oder sie nicht zuzulassen.
- Zweitens leistet auch eine Vereinfachung der Syntax einen wertvollen Beitrag. Dadurch wird das Schreiben und Lesen von Programmen vereinfacht. Das Potenzial der Syntaxvereinfachung besteht darin, Fehler durch gute Übersicht gar nicht erst entstehen zu lassen.
- Und drittens sollten zusammengehörende Dinge bei der Entwicklung zusammengefasst werden. Das sorgt für ein leichteres Verständnis und besseren Überblick.
Bild 1: Zusammengehöriges kann zusammengefasst werden
Die richtige Programmiersprache
Qualitativ hochwertige Softwareentwicklung fußt auf denselben Regeln, die auch sichere Systeme über Normen vorgeben. Ein konsequent umgesetzter QM-Prozess ist also bereits die halbe Miete. Objektorientierte Programmiersprachen sind bereits mit Bordmitteln ausgestattet, die eine Umsetzung der Regeln erleichtern. So unterstützt C++ beispielsweise die Umsetzung der Regel, dass zusammengehörende Dinge bei der Entwicklung zusammengefasst werden sollen. Aufzählungstypen etwa können innerhalb einer Strukturdefinition angelegt werden, ohne dass dies Speicherplatz kostet. Aber C++ ermöglicht auch auf einfache Weise, die im praktischen Einsatz zu erreichende Betriebssicherheit der Software zu verbessern. So können z.B. Pointer, die häufig Fehler in der Codeerstellung mit sich bringen, oft durch Referenzen ersetzt werden, was zur Syntaxvereinfachung beiträgt und sogar Sicherheitsabfragen überflüssig machen kann.
ISO 26262 - Normierte Sicherheit
Die Norm ISO 26262 legt Vorschriften für sicherheitsrelevante elektrische/elektronische Systeme in Kraftfahrzeugen auf Basis des heutigen Stands von Wissenschaft und Technik und der dazugehörigen Basis-Standards fest. Ziel ist immer, die funktionale Sicherheit eines Systems mit elektrischen/elektronischen Komponenten im Kraftfahrzeug zu gewährleisten. Leider bleibt sie in der Beschreibung ihrer Anwendung recht unscharf. Daher stellt sich die Frage:
Wie umsetzen?
Wichtig ist ein geeignetes Rüstzeug für die Umsetzung der Forderungen aus der Norm und für den Nachweis, dass dem tatsächlich Genüge getan wurde. Ganz allgemein ist ein wichtiges Thema der geeignete Nachweis, dass entsprechend dem Stand der Wissenschaft und Technik gearbeitet wurde und mithin alles vertretbar technisch Machbare umgesetzt wurde. Die Einhaltung der Norm ist somit ein wichtiger Punkt, der vor dem Hintergrund von Haftungsfragen gar nicht ernst genug genommen werden kann. Dabei soll aber erwähnt werden, dass eine Zertifizierung in der Norm selbst nicht gefordert ist, wohl aber der Nachweis von qualifizierten Mitarbeitern zum Beispiel über entsprechende regelmäßige Trainings.
Bild 2: Je weniger Funktionalität, desto mehr Sicherheit. Je mehr beim Programmieren sinnvoll zusammengefasst wird, desto geringer ist die Fehlerquote und umso mehr Sicherheit kann erreicht werden.
Qualifizierung von Softwaretools
In dem Zusammenhang ist hervorzuheben, dass die Qualifizierung der verwendeten Softwaretools ein ganz wichtiger Punkt ist. Es besteht nämlich die Möglichkeit, dass durch die Tools Fehler erzeugt werden, derer sich der Programmierer/Entwickler gar nicht bewusst ist - er bemerkt sie schlicht gar nicht. Stefan Kriso (Robert Bosch GmbH) sagt dazu, es müsse "… geklärt werden, mit welcher Wahrscheinlichkeit in einem späteren Schritt im Entwicklungsprozess fehlerhafte Inhalte, die vom Werkzeug ausgegeben werden, zum Beispiel durch Reviews oder Tests entdeckt werden können." Das ist eine Aufgabe, die es in sich hat.
Gesamten Trend Guide "Embedded Safety & Security" als PDF downloaden.
MicroConsult unterstützt Sie mit Training & Coaching rund um das Thema Embedded Safety & Security:
- Funktionale Sicherheit (FuSi) von Elektronik und deren Software nach IEC 61508 und ISO 26262
- Security-Fundamente für eingebettete Systeme
- ISO SAE 21434 Road Vehicles - Cybersecurity Engineering
- Security: Kryptographie und sichere Systeme
- Security: Sicheres Update und Boot - Praktische Umsetzung für moderne Embedded-Systeme
Training & Coaching zu allen weiteren Themen unseren Portfolios finden Sie hier.
Darüber hinaus besteht die Möglichkeit, das Themenfeld Embedded Safety & Security auch in maßgeschneiderten Workshops zu behandeln. Sie werden auf die speziellen Bedürfnisse von Aufgaben, Projekten, Teams und Rollen zugeschnitten.
Setzen Sie sich mit uns Verbindung! Zum Kontaktformular