Schwerpunkte

Parasoft

Mehr Software-Safety und -Security durch Codierstandards

16. Juli 2020, 14:20 Uhr   |  Andrea Gillhuber

Mehr Software-Safety und -Security durch Codierstandards
© PopTika – Shutterstock.com

Software dringt in Produkte, Geräte und Bereiche vor, bei denen es unmöglich schien. Entwickler müssen sich intensiv mit der Software in diesen Produkten und den daraus resultierenden Folgewirkungen beschäftigen und Blickwinkel eines Ingenieurs annehmen: Engineering ist gefragt.

Qualitativ schlechte Software ist teuer, denn die Fehlerbeseitung verursacht Mehrkosten. Die meisten Software-Defekte werden vom Programmierer verursacht, der sie in das Produkt einbringt. Schaffen wir es, dass beim Entwickeln von Software keine Fehler zu machen, kann Software zu deutlich geringeren Kosten entwickelt werden. Der Forscher Capers Jones führt jährlich eine Studie zum Thema Softwarekosten durch. Wie die Daten zeigen, steigen die typischen Kosten für Software mit jeder Phase an – vom Erstellen des Pflichtenhefts über das Programmieren bis zur Wartung. Die Art und Weise wie Teams an Qualität herangehen, bestimmt, ob ihr Prozess gesund oder ‚pathologisch‘ ist.

Die Kosten mangelnder Qualität

Werden Defekte sofort beim Schreiben des Codes gefunden, sind die Kosten relativ niedrig (Bild unten). Kann man 85 % aller Defekte schon in der Entwicklungsphase beseitigen, wirkt sich dies markant auf die Kosten aus. Laut Untersuchungen an realer Software in Unternehmen kostet das Beheben von Fehlern nach der Freigabe etwa 16.000 US-Dollar u. U. deutlich mehr (siehe Bild Seite 2). Erfolgen die Qualitäts- und Security-Maßnahmen durch Tests am Ende des Entwicklungszyklus und damit unmittelbar vor Freigabe, erhöhen sich Aufwand und Kosten etwa um den Faktor 15 gegenüber dem Auffinden in frühzeitigen Security-Audits. Warum aber glauben wir, bei Software kann man Qualität und Sicherheit ‚hineintesten‘?

Folgenden Erkenntnisse weisen darauf hin, dass nahezu niemand ingenieurmäßig an die Software-Entwicklung herangeht: 

• Was die meisten Entwickler tun, ist nicht reproduzierbar: Zwei Entwickler lösen dieselbe Aufgabe mit unterschiedlichen Ergebnissen.

• Es fehlt an gut ausgearbeiteten ‚Best Practices‘: Software-Entwickler betrachten Codierstandards als ein Regelwerk, auf dessen Einhaltung die Teamleitung besteht, und verkennen dabei, dass ein Codierstandard Wissen, Praxis und Erfahrung verkörpert. Während einem Elektroingenieur klar ist, dass Standards eine Möglichkeit sind, ein auf Anhieb sicheres Produkt zu bauen, sieht ein Software-Entwickler dagegen in einem Standard eine Restriktion, die ihn hemmt – ein ‚False Positive‘ also.

• Uneinheitliche Entwickler-Schulungen: Die Ausbildung im Bereich der Software-Entwicklung erfolgt nicht so standardisiert wie bei den Ingenieurwissenschaften. Oft liegt der Fokus auf Programmiersprachen anstelle von Standards und etablierten Praktiken. 

Mehr Safety und Security

 Die Grafik von Caspers Jones  zeigt die durchschnittlichen Kosten zum Beheben von Fehlern in den  einzelnen Entwicklungsabschnitten auf.
© Parasoft

Die Grafik von Caspers Jones zeigt die durchschnittlichen Kosten zum Beheben von Fehlern in den einzelnen Entwicklungsabschnitten auf.

Codierstandards haben das Ziel, bewährte Programmierpraktiken zu etablieren, mit denen sich funktional sicherer, zuverlässiger, prüfbarer und pflegbarer Code erstellen lässt. In der Regel bedeutet das, unsichere Programmierpraktiken ebenso zu vermeiden wie Code, der zu unvorher-sehbarem Verhalten führen kann. 
In der vergangenen Dekade gab es bei den Werkzeugen wie statische Analysetools, zum Beispiel C/C++test von Parasoft, eine Verlagerung: Anstelle der Aufdeckung von potenziell problematischem, unsicherem Code oder bekannten Sprach-Schwachstellen wird nach Defekten gesucht, gleichsam als eine Art frühzeitigem Test (auch bekannt als ‚shift left‘ – also Linksverschiebung auf der Zeitachse). Die Suche nach Defekten ist wichtig, doch sollte von Anfang an solide Software geschrieben werden. Gefragt sind daher Standards, durch die das Entstehen von Defekten von vornherein vermieden wird.

Seite 1 von 2

1. Mehr Software-Safety und -Security durch Codierstandards
2. Die Industriestandards

Auf Facebook teilenAuf Twitter teilenAuf Linkedin teilenVia Mail teilen

Das könnte Sie auch interessieren

Fünf Maßnahmen für OT-Security
Maschinen brauchen ­unseren Schutz!
Sicherheitslösung erweitert
OT-Netzwerke vor Cyberbedrohungen schützen
Geschützt vor Cyber-Attacken
IoT-Hotspot: Fünf Schritte zur IT/OT-Security
Nach Cyber-Angriff wieder handlungsfähig
Neue Funktionen für Safety und Industrial Security