Sicherheit von Software-Systemen umfasst mehr als nur die Betriebssicherheit. Im ersten Teil dieser Serie zum Thema Software-Sicherheit stellen wir Ihnen drei besonders wichtige Regeln vor.
Ein E-Auto ist ein System mit erheblichen elektrischen Gefahrenpotenzial. Das stellt die BetriebsSicherheit vor große und neue Herausforderungen - insbesondere in Bezug auf die Software der Steuergeräte im Fahrzeug
(Foto: Kurt F. Domnik, www.pixelio.de)
Elektroautos sind derzeit in aller Munde, was sich auch in der näheren Zukunft nicht ändern wird. Woran aber kaum jemand denkt: Ein Elektroauto bezieht seine Energie aus einer gezähmten Brandbombe. Auch sonst handelt es sich um ein System mit erheblichem elektrischen Gefahrenpotenzial. Die Betriebssicherheit (Safety) wird vor diesem Hintergrund vor große und neue Herausforderungen gestellt. Das gilt im besonderen Maß für die Software der Steuergeräte dieser Fahrzeuge.
Software-Sicherheit nach der Norm IEC 61508
Der Aspekt Sicherheit reicht bei Zukunftstechnologien dieser Tragweite weit über die Betriebssicherheit hinaus. Neben Safety spielen Software-Security, also der Schutz vor unbefugten Zugriffen, beispielsweise durch Hacker, und die Zukunftssicherheit eine entscheidende Rolle. Auf dem Embedded Software Engineering Kongress 2011 wurden verschiedene Aspekte um diesen Themenkomplex beleuchtet.
Mit diesem ersten Beitrag fassen wir in einer Rückschau wichtige Aussagen der damaligen Referenten rund um die Betriebssicherheit zusammen. Sicherheit hat viele Gesichter. Laut Definition in der Norm IEC 61508 ist Sicherheit die Bezeichnung eines Zustands, der frei von unvertretbaren Risiken der Beeinträchtigung und mithin als gefahrenfrei anzusehen ist.
Vermeintlich sichere Embedded-Software-Systeme ?
Doch wie zeigt sich, ob beispielsweise ein technisches System, das auf Embedded Software beruht, hinreichend sicher ist? Immerhin erweisen sich vermeintlich sichere Systeme leider immer wieder als unsicher oder gar gefährlich.
Die Aussage über das Elektroauto wird übrigens sinngemäß einem Chefentwickler aus der Automobilindustrie zugesprochen. Doch das Potenzial an Gefährdungen ist schwer zu übersehen. Zumal wenn Gefahrenquellen vorab noch gar nicht bekannt sind oder wenn nicht klar ist, in welchen Situationen ein System sich zu bewähren hat.
Weil man im Vorfeld kaum sagen kann, wo später im Betrieb eines 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. Die notwendige Sicherheit ist mit den derzeit verfügbaren Mitteln zu realisieren.
Drei Regeln, die Softwarequalität zu verbessern
Mit welchen Möglichkeiten lässt sich die Betriebssicherheit von Software-Systemen schon in der Entwicklung verbessern? Im Grunde besteht die Anforderung darin, gewisse Regeln umzusetzen. Drei wichtige Regeln hat Karl Nieratschker, freiberuflicher Trainer bei MicroConsult in seinem Vortrag auf dem ESE Kongress herausgehoben.
Es gibt verschiedene Möglichkeiten, um die Softwarequalität zu verbessern. Einerseits besteht ein wichtiger Teil der Kunst darin, sich zu beschränken. Meint nichts anderes als auf gefährliche Konstrukte entweder zu verzichten oder sie nicht zuzulassen.
Vereinfachte Syntax als Lösung für weniger Fehler?
Zum anderen leistet eine vereinfachte Syntax einen wertvollen Beitrag. Dadurch lassen sich Programme leichter schreiben und lesen. Ein einfaches und wirksames Mittel, dessen Wichtigkeit häufig unterschätzt wird. Das Potenzial der Syntaxvereinfachung besteht darin, Fehler durch gute Übersicht gar nicht erst entstehen zu lassen.
Zu guter Letzt sollten zusammengehörende Dinge bei der Entwicklung zusammengefasst werden. Das sorgt für ein leichteres Verständnis und besseren Überblick.
Softwarequalität ist erlernbar
Gut ausgebildete Entwickler müssen für die Thematik Sicherheit angemessen sensibilisiert werden. Qualität lässt sich nicht in ein Softwaresystem hinein- testen. Programmierregeln, Qualitätsstandards, Forderungen aus Normen und ihre Umsetzung, Wahl und Anwendung der Programmiersprache und der Softwarearchitektur – alles samt erlernbare Dinge, die sich jeder in einem Lernprozess aneignen müssen. Entscheidend ist, wie sich der Lernprozess gestalten lässt, damit er schnell und mit geringem Risiko zum Ziel führt.
Vorgenannte Regeln gelten ganz allgemein in der Softwareentwicklung, die objektorientierten Programmiersprachen sind bereits mit Bordmitteln ausgestattet. So unterstützt C++ beispielsweise die Umsetzung der Regel, dass zusammengehörende Dinge bei der Entwicklung zusammengefasst werden sollen, Aufzählungstypen können beispielsweise innerhalb einer Strukturdefinition angelegt werden, ohne dass dies Speicherplatz kostet.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel Communications Group GmbH & Co. KG, Max-Planckstr. 7-9, 97082 Würzburg einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von redaktionellen Newslettern nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung, Abschnitt Redaktionelle Newsletter.
Aber C++ bietet ganz pragmatische Verbesserungen in Bezug auf die Betriebssicherheit der Software im praktischen Einsatz. So können 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.