Sicherheit bei der Software-Entwicklung

Welcher Standard ist der Beste?

16. April 2020, 10:24 Uhr | Autor: Mark Lambert | Redaktion: Tobias Schlichtmeier

Viele Entwickler stehen vor der Frage, wie sie ihre Software schützen sollen. Um den richtigen Standard zu wählen, sind verschiedene Kriterien zu berücksichtigen. Parasoft unterstützt mit Tools bei der Entscheidungsfindung.

Diesen Artikel anhören

In der Softwareindustrie existiert eine Vielzahl an Security-Standards. Einige davon bieten Leitlinien über Security-Praktiken, jedoch nicht unbedingt Code-spezifische Richtlinien. Andere dagegen warten mit spezifischen Empfehlungen zu sicheren Codierstandards auf. Ist ein solcher Codierstandard nötig und wurden die  entsprechenden Codeanalyse-Tools beschafft, stellt sich die Frage: Welcher Standard ist am sinnvollsten? Tabelle 1 listet explizite und implizite Standards auf.

passend zum Thema

Tabelle Standards
Tabelle 1. Gegenüberstellung von expliziten und impliziten Standards.
© Parasoft

Explizite Standards

CWE – Common Weakness Enumeration – ist eine Liste aufgedeckter Softwareschwachstellen und basiert auf der Analyse gemeldeter Anfälligkeiten. Die von der Software-Community entwickelte Initiative wird von der US-Regierung finanziert und von der MITRE-Organisation gemanagt – die CWE-Liste umfasst mehr als 800 Einträge. Dabei ist die MITRE-Organisation eine Organisation zum Betrieb von Forschungsinstituten in den USA. In der CWE-Liste sind Exploits beziehungsweise Bedrohungen mit einer hohen Auftretenswahrscheinlichkeit und weitreichenden Auswirkungen aufgelistet.

Konformitätsreports
Bild 1. Bei Bedarf sind die Konformitätsreports von Parasoft verfügbar, die Konformitätskriterien sind flexibel und auf das Projekt und die Code-Basis des Teams abstimmbar.
© Parasoft

»CWE Top 25« und der weniger bekannte Ableger »On-the-Cusp« sind per se keine Codierstandards, sondern eine Aufstellung von Schwachstellen, die es zu vermeiden gilt, um die Sicherheit zu verbessern. Für ein CWE-konformes Projekt sollte man nachweisen können, dass geeignete Maßnahmen zum Erkennen und Vermeiden gängiger Schwachstellen ergriffen wurden. CWE Top 25 und On-the-Cusp wurden 2019 aktualisiert, zum Ermitteln nutzt die CWE eine Risikobewertungsmethode. In die Liste fließt die Gefährlichkeit einer Schwachstelle in der realen Welt nach Common Weakness Scoring System (CWSS)-Messung ein. Folgeauswirkungen sind beispielsweise Denial of Service (DoS, DDoS), der Lese- oder Schreibzugriff auf geschützte Informationen sowie unbefugter Zugang (Bild 1).

OWASP-Risiko-Diagramm
Bild 2. In übersichtlicher Art zeigt das OWASP-Risiko-Diagramm, wie einfach sich eine Schwachstelle ausnutzen lässt, wie leicht sie zu entdecken ist und welche tatsächlichen Folgewirkungen ein Exploit haben kann.
© OWASP Foundation

Im Fokus des Open Web Application Security Projects (OWASP) steht das Verbessern der Sicherheit von Web-Anwendungen. Entsprechend erstellt das OWASP Top 10 Projekt eine Liste der gängigsten und folgenreichsten Sicherheitsschwachstellen von Web-Anwendungen. Eine aktuelle Version der OWASP Top 10 korreliert direkt mit bestimmten CWE-IDs, was das Implementieren als Codierstandard deutlich vereinfacht. Gleichzeitig ist das Nutzen für Penetrationstests und DAST-Tools möglich (Bild 2).

Das Computer Emergency Response Team (CERT) des Software Engineering Instituts (SEI) hält eine Reihe von Richtlinien bereit, die Entwicklern beim Realisieren von Software hilft – sie bieten mehr Sicherheit und Zuverlässigkeit. Im Jahr 2006 anlässlich einer Versammlung des C-Standard-Komitees begonnen, wurde der erste CERT-C-Standard 2008 publiziert und anschließend fortlaufend weiterentwickelt. Die CERT-Secure-Coding-Standards zielen auf das Vermeiden der Grundursachen von Sicherheits-Schwachstellen ab.

Risikobewertung von SEI CERT
Bild 3. Die Risikobewertung von SEI CERT kombiniert die Wahrscheinlichkeit des Eintritts, Schwere und die relative Schwierigkeit der Behebung – das stellt das CERT-Bullseye-Diagramm dar. In der Mitte befinden sich die höchsten Sicherheitsrichtlinien, die am schwersten zu reparieren sind.
© Parasoft

Zu CERT gehört ein Risikobewertungssystem, das die Wahrscheinlichkeit des Auftretens, den Schweregrad und die relative Schwierigkeit der Entschärfung einbezieht und den Entwicklern beim Aufstellen einer Prioritätsrangfolge hilft. Ein Einbeziehen des Entschärfungsaufwands in die Prioritätsbewertung stellt eine wichtige Ergänzung zu den Secure-Coding-Standards dar. Es handelt sich bei ihnen um echte, sprachlich formulierte Codierrichtlinien, für die es Querverweise zu anderen Standards wie MISRA C gibt, sodass sie sich sehr gut für sicherheitskritische Software eignen. (Bild 3)

Beim Payment Card Industry Data Security Standard (PCI DSS) handelt es sich um einen Informationssicherheits-Standard für Unternehmen, die in irgendeiner Form mit Kreditkartendaten zu tun haben. Er enthält allgemeine Sicherheitskontrollen zum Absichern von Anwendungen und insbesondere zum Schutz privater Informationen. Der Standard ist allgemein gehalten, deckt einen großen Bereich ab und bezieht betriebsrelevante Aspekte ebenso ein wie den Datenschutz. Spe­ziell Abschnitt 6 skizziert die Notwendigkeit eines Schwachstellenmanagement-Programms, zu dem ein Teilabschnitt sicherer Codierstandards gehört. Abschnitt 6.5 des PCI-DSS-Standards fordert das Berücksichtigen gängiger Codierschwachstellen und
listet ähnlich wie die OWASP-Liste zehn gängige Schwachstellen auf.

Implizite Standards

Es gibt Sicherheitsnormen, die nicht explizit einen Codierstandard verlangen, auch wenn sie ausdrücklich einen oder mehrere der oben genannten Standards empfehlen. Die Richtlinien dienen dem Verbessern der Sicherheit auf der Systemebene und enthalten beispielsweise Sicherheitskontrollen, die den Rahmen der Quellcode-Entwicklung sprengen. Allerdings müssen Softwareteams – je nach Markt, auf den ihr Produkt zielt – diese Standards erfüllen.

Das Underwriter’s Laboratory (UL) ist bekannt für seine Tests zur funktionalen Sicherheit elektronischer Geräte. Mit dem Entwickeln der Norm UL 2900 hat die Organisation einen Vorstoß in den Security-Sektor unternommen. Die Norm beinhaltet eine Reihe von Standards, die das Cybersecurity Assurance  Program (CAP) der UL bilden. Zweck der Standards ist eine verbesserte Sicherheit netzwerkfähiger Produkte – zum Beispiel IoT-Geräte – mit Varianten für Geräte aus dem Medizin- und Nuklearbereich. Die medizinische Variante der UL 2900 wurde von der amerikanischen FDA als geeignet zum Absichern von medizinischen Geräten und Software anerkannt – deshalb ist UL 2900 ein Zertifizierungsstandard. Anders als bei einigen der übrigen hier erwähnten Standards ist die Konformität nachzuweisen und ein Audit zu bestehen. Es verlangt den Einsatz statischer Analyse-Tools, um die Sicherheit zu verbessern und die Konformität zu Codierstandards zu automatisieren.

Die Datenschutz-Grundverordnung (DSGVO) oder englisch General Data Protection Regulation (GPDR) ist Bestandteil von EU-Gesetzen zum Schutz der Daten und Privatsphäre von EU-Bürgern. Sie schreibt vor, dass Unternehmen, die private Daten verwenden und speichern, die entsprechenden technischen und verwaltungsgemäßen Prinzipien zum Schutz der Daten befolgen. Diese Regelungen sind mit empfindlichen Strafen belegt und gelten für Unternehmen auf der ganzen Welt, sofern sie Informationen über EU-Bürger speichern. Ein kritischer Aspekt der DSGVO für Softwareentwickler ist das Konzept des eingebauten und mit Voreinstellungen gegebenen Datenschutzes (Privacy by Design and By Default). Von Anfang an ist der Datenschutz in die Software eingebaut und behandelt die Software aller personenbezogenen Daten normalerweise als geschützt und privat. Auf Anfrage sind die Daten von Personen zu löschen.


  1. Welcher Standard ist der Beste?
  2. Auswahl und Umsetzen eines Standards

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Parasoft Corp.

Weitere Artikel zu Cyber-Security

Weitere Artikel zu Betriebssysteme

Weitere Artikel zu Industrie-Computer / Embedded PC