Parasoft C/C++test 2022.2 unterstützt das neue MISRA C:2012 Amendment 3 und eine Entwurfsversion von MISRA C++ 202x. Erfahren Sie mehr >>

Reduzierung des Risikos und der Kosten für konforme Software

Von Arthur Hicken

13. Oktober 2020

10  min lesen

Sicherzustellen, dass Sie Softwareprodukte liefern, die Compliance- und Regulierungsstandards erfüllen, kann das Budget Ihres Unternehmens kostspielig belasten. In diesem Beitrag erfahren Sie, wie die Testautomatisierung von Parasoft Ihnen hilft, Kosten und Compliance-Risiken zu reduzieren.

Compliance in der Softwareentwicklung kann für verschiedene Organisationen leicht unterschiedliche Bedeutungen haben. Die Unterschiede bei der Erlangung kompatibler Software hängen wahrscheinlich mit dem Markt zusammen, auf dem sie ihre Produkte verkaufen. Sie reichen von einer strengen Entwicklung für sicherheitskritische Software bis hin zu Unternehmensanwendungen, die Sicherheits- und Datenschutzfunktionen für den Umgang mit sensiblen Daten erfordern.

Was ist konforme Software?

Standards und Vorschriften entstehen in verschiedenen Branchen und werden eingeführt, um Kunden und Benutzer vor Schaden zu schützen. Dieser Schaden kann sich als physische Gefahr oder finanzieller Verlust von Anmeldeinformationen und sensiblen persönlichen Informationen äußern. Oft sind diese Standards eine Reaktion auf Ereignisse, die zu Verletzungen oder größeren Datenverletzungen geführt haben.

Sicherheits- und Datenschutzstandards

In Bezug auf die Sicherheit gibt es mehrere Standards, von denen einige Folgendes umfassen:

  • DO-178C (Flugzeugavionik)
  • ISO 26262 (Automobilsoftware)
  • EN 50128 (Eisenbahnsysteme)
  • IEC 62304 (medizinisch)

Es gibt auch Standards für Sicherheit und Datenschutz wie GDPR für allgemeinen Datenschutz und PCI-DSS für den sicheren Umgang mit Kreditkarteninformationen.

Erfüllung der Anforderungen der Standards

Bei den meisten Standards zeigt die Konformität auf verschiedene Weise, dass die von Ihnen bereitgestellte Software den Anforderungen des Standards entspricht. Der Entwicklungsprozess erstellt Dokumentationen, Berichte und andere Artefakte, die die Konformität belegen. Es berücksichtigt Audits und kann Demonstrationen und Abnahmetests umfassen.

Der Zeit- und Kostenaufwand für die Einhaltung hängt von der Genauigkeit ab, die der Industriestandard erfordert. Diese Standards definieren die Entwurfs- und Entwicklungsrichtlinien, die auf der Grundlage der Sicherheitsauswirkungen, die die Software auf den Endbenutzer hat, zu befolgen sind. Ein Ausfall des Produkts kann in schweren Fällen zum Tod oder zu Verletzungen führen. Beispielsweise ist ISO 26262 für Sicherheitsintegritätsstufen (A, B, C, D) definiert, wobei ASIL A das niedrigste Sicherheitsrisiko oder die geringste Auswirkung und D das höchste ist.

Sicherheitsintegritätsstufe

Die Eintrittswahrscheinlichkeit sowie die Schwere des Risikos und die Kontrollierbarkeit bestimmen, wo ein Produkt auf die Sicherheitsintegritätsstufe passt. (Kontrollierbarkeit ist die Fähigkeit des Fahrers, das Risiko zu mindern.):

Kompatible Software: Tabelle mit Schweregrad, Exposition und Kontrollierbarkeit
Schweregrad-, Expositions- und Kontrollierbarkeitstabelle

Die folgende Tabelle zeigt den Schweregrad, die Exposition und die Kontrollierbarkeit der verschiedenen ASIL in ISO 26262:

Gefahrenanalyse und Risikobewertung
Gefahrenanalyse und Risikobewertung

Abbildung 2: Gefahrenanalyse und Risikobewertung

EN 50128 verwendet die Begriffe Software Safety Integrity Level (SSIL) mit ähnlichen Kriterien. Sowohl die Normen ISO 26262 als auch EN50128 leiten ihre Definitionen von IEC 61508 ab, einer übergreifenden Norm für funktionale Sicherheit.

Diese SSIL-Werte basieren auch auf der Ausfallwahrscheinlichkeit und der Schwere des Ausfalls von Leib und Leben. Wie erwartet steigt das Niveau oder die Genauigkeit, wenn das ASIL / SIL-Niveau dies erfordert, und die Compliance-Kosten steigen damit. Der Prüfungsgrad steigt mit dem Risiko. Daher wirkt sich dies auf die Kosten und den Zeitplan für die Softwareentwicklung aus, die Entwicklungsteams durch Automatisierung verbessern können.

Risiken und Kosten im Zusammenhang mit der Erreichung der Software-Konformität

Das größte Risiko für Softwareunternehmen besteht in Softwarefehlern, die zum Tod, zu Verletzungen oder zu anderen Schäden führen können, die die Haftung öffnen. Um dieses Risiko zu verringern, sollten Software-Organisationen die Sicherheitsstandards einhalten. Unternehmen müssen nachweisen, dass sie alle angemessenen technischen Entscheidungen getroffen haben, um die Sicherheit des Benutzers / Kunden / Betreibers zu gewährleisten. Die Erstellung sicherer Software erfordert die Verpflichtung zum Geist und zum Buchstaben der Industriestandards. 1

Nacharbeit, erneutes Testen und erneutes Dokumentieren

Das Erkennen wichtiger Sicherheitsaspekte zu einem späten Zeitpunkt im Software-Lebenszyklus erfordert erhebliche Nacharbeiten, erneute Tests und erneute Dokumentationen. Es ist teuer und braucht Zeit, um es zu lösen. Es weist auch auf einen möglichen Fehler im System- und Konstruktionsprozess hin.

Es ist wichtig, die Links-Compliance so früh wie möglich im Software Development Lifecycle (SDLC) zu verschieben. (Wir empfehlen, für alle Qualitäts-, Sicherheits- und Sicherheitspraktiken nach links zu wechseln.) Zu diesem Zweck enthalten unsere Empfehlungen die richtigen Tools, Prozesse und Automatisierungen, um das Softwarerisiko zu verringern und die Compliance zu erhöhen, ohne die Kosten und den Zeitplan negativ zu beeinflussen.

Fehlen eines für den Anwendungsbereich geeigneten Prozesses

Häufig fehlt in vielen Organisationen die Übernahme von Kultur und Prozessen, die zum Anwendungsbereich passen. Sicherheitskritische Software erfordert beispielsweise ein hohes Maß an Genauigkeit bei der Softwareentwicklung, was eine durchweg höhere Qualität impliziert.

Fehlen der richtigen Tools und Automatisierung

Unternehmen, die sich an Sicherheitsanforderungen ausrichten, sind mit einer hohen Arbeitsbelastung verbunden, die die Bereitstellung eines Prüfpfads für die Einhaltung der Vorschriften für jede Softwarephase und jeden Softwareprozess umfasst. Neben der üblichen Softwareentwicklung umfasst die zusätzliche Arbeit:

  • Rückverfolgungsanforderungen auf Code und Tests.
  • Generieren von Berichten über Fehler, Codeabdeckung, Korrektur und Abweichungen.

In den meisten Fällen gelten Codierungsstandards, beispielsweise MISRA für ISO 26262. Daher müssen die Teams daran arbeiten, Abweichungen von den Standards zu korrigieren und die Einhaltung zu messen.

Funktionstests sind erforderlich, um nachzuweisen, dass Produkte die Anforderungen erfüllen. Dies gilt zusätzlich zu den Sicherheitsanforderungen. Alle Tests erfordern Rückverfolgbarkeit und Auditdokumentation.

Zusammengenommen tragen die verbesserte Rückverfolgbarkeit, Tests, strengen Entwicklungsstandards und Dokumentation erheblich zu den Entwicklungskosten der Produkte bei. Dies macht das Risiko von Compliance-Problemen nachgelagert noch entmutigender.

Der Schlüssel zur Reduzierung der Arbeitsbelastung und der Langeweile dieser Prozesse liegt in der Automatisierung.

Tools und Automatisierung für Compliance

Softwareentwicklungstools helfen dabei, die Arbeitsbelastung und Fehler der Compliance-Prozesse zu reduzieren, indem sie die sich wiederholenden und langwierigsten Prozesse automatisieren. Darüber hinaus können Tools den Projektverlauf besser verfolgen und die Ergebnisse mit Anforderungen, Softwarekomponenten, Tests und aufgezeichneten Abweichungen in Beziehung setzen.

Tools helfen auch dabei, bewährte Verfahren wie Codierungsstandards, Komponententests, Codeabdeckung, Rückverfolgbarkeit und mehr durchzusetzen. Teams können Tools früh im Lebenszyklus einsetzen, um die Compliance-Arbeitslast nach links zu verlagern.

Reduzierung von Risiken und Kosten für die Einhaltung der Automatisierung

In den folgenden Abschnitten wird erläutert, wie Parasoft-Tools dazu beitragen, die Risiken und Kosten der Compliance zu reduzieren.

Wie Parasoft-Produkte in jede Phase des klassischen V-Diagramms des SDLC passen.

Einhaltung der funktionalen Sicherheitsstandards mit Parasoft Tools

Die Entwicklung sicherheitskritischer Software ist keine leichte Aufgabe. Parasoft entlastet das Unternehmen, indem es eine breite Palette von Tools für Entwicklungstests und -verifizierungen anbietet. Hier sind einige dieser Tools:

  • Analyse der Einhaltung von Codierungsstandards
  • Daten- und Kontrollflussanalyse
  • Unit-Test
  • Anwendungsüberwachung
  • Workflow-Komponenten

Zu den Standards, die Parasoft direkt unterstützt, gehören:

Softwareentwicklungsteams können Compliance erreichen und Zeit sparen mit Parasoft C / C ++ test. Das bewährte Tool bietet Testfunktionen, konfigurierbare Kontexte und Berichtsmechanismen, die bei erweiterten Softwaretestmethoden helfen.

Teams haben eine praktische Möglichkeit, Fehler in ihrer Software mit automatisch generierten Berichten und Dashboards zu verhindern, aufzudecken und zu korrigieren. Mithilfe der automatisierten Werkzeugqualifizierung können sie die für Audits erforderliche Dokumentation erstellen.

Parasoft unterstützt Unternehmen bei der Durchführung statischer Analysen, Komponententests, der Abdeckung von Strukturcodes, der Rückverfolgbarkeit von Anforderungen und anderer vom Standard empfohlener Testmethoden.

Abdeckung des Montagecodes

Das Assembly Coverage Tool (ASMTool) von Parasoft erfüllt die Empfehlungen des ausführbaren Objektcodes von DO-178B/ C Level A. Mit geringem Aufwand kann ASMTool aus ausführbarem Objektcode strukturelle Abdeckungsberichte erstellen.

Die strukturelle Abdeckung wird mit leicht überprüfbaren Einblicken in vom Compiler generierten Code gemeldet, der nicht direkt auf Quellcode-Anweisungen zurückgeführt werden kann. Es verfolgt auch switch-Anweisungen und bietet einen vollständigen Einblick in die Testausführungspfade auf der Ebene der Maschinensprachenanweisungen.

ASMTool unterstützt auch das Sammeln struktureller Abdeckung sowohl aus dem Software-Integrationsprozess (Zielhardwaretest) als auch aus der Desktop-Entwicklungsumgebung (Parasoft C / C ++ - Test zum Testen von Einheiten).

Parasofts Assembly Coverage Tool (ASMTool)
Parasofts Assembly Coverage Tool (ASMTool)

Codierung der Standardkonformität

Codierungsstandards spielen in vielen Sicherheitsstandards eine wichtige Rolle. In den meisten Fällen ist dies der einzig praktikable Weg, um die Einhaltung eines Kodierungsstandards wie zu erzwingen AUTOSAR C ++ 14 (verwendet in Automobilsystemen) ist mit einem statischen Analysewerkzeug. Der Parasoft C / C ++ - Test unterstützt zugeordnete Prüfer für die Codierungsstandards, sodass Entwickler Warnungen nicht auf die Standards zurückführen müssen.

Teams können das interaktive Berichtssystem von Parasoft an die Anforderungen anpassen, die durch die von ihnen verwendeten Regeln (AUTOSAR C ++ 14, HIC ++, MISRA usw.) gestellt werden, und einen effizienten täglichen Workflow ermöglichen. Entwickler können die Konformität ihres Codes überprüfen, ohne ihre IDEs zu verlassen, und den Scanvorgang in CI-Builds auf Servern integrieren.

Parasoft unterstützt auch sicherheitsorientierte Standards wie SEI-ZERT. Es hilft Unternehmen dabei, Sicherheitslücken in ihrem Code zu erkennen und den Prozess zur Einhaltung des Standards zu verwalten. Die hohe Genauigkeit der Codeprüfer, die geringe Anzahl von Fehlalarmen und die ausgefeilten Compliance-Berichte im Einklang mit dem CERT-Standard tragen dazu bei, die damit verbundenen Kosten und den Overhead zu minimieren.

Das einzigartige Compliance-Reporting von Parasoft bietet eine dynamische Ansicht des Entwicklungsprozesses. Interaktive Berichte und benutzerdefinierte Dashboards bieten unterschiedliche Ansichten zu den Ergebnissen des CERT-Konformitätsstatus und verwenden die vom Standard definierten Formulierungen und Kategorisierungen, um das Verständnis zu erleichtern.

Konforme Software: Codierungsstandards

Zentralisierte Berichterstellung und Dokumentenerstellung

Die Kombination mehrerer Testautomatisierungstechniken führt zu vielen Qualitätsinformationen. Diese Daten sind nützlich, aber das schiere Volumen macht es schwierig, einen Einblick in die Qualität Ihrer Ergebnisse zu erhalten und Entscheidungen über die Veröffentlichung oder Änderungen im Entwicklungsprozess zu treffen.

Um die Entscheidungsfindung zu unterstützen, ist es vorteilhaft, die Daten zu einer zentralen Ansicht der Qualität zusammenzufassen. Grafische Dashboards bieten eine Übersicht über den Testfortschritt auf oberster Ebene. Das Korrelieren von Qualitätsdaten mit Ihren Anforderungen und User Stories bietet eine echte bidirektionale Rückverfolgbarkeit, sodass Sie das Geschäftsrisiko und die Auswirkungen von Lücken in Ihren Testpraktiken bewerten können.

Das Berichts- und Analyse-Dashboard von Parasoft aggregiert Daten aus allen verschiedenen Testverfahren, einschließlich statische Analyse (wie AUTOSAR- oder MISRA-Codierungsstandardkonformität), Codeabdeckung und Rückverfolgbarkeit von Unit-Tests über API-Tests bis hin zur Funktionsvalidierung auf Systemebene. Dies bietet eine zentralisierte Ansicht der Qualität, die ein Echtzeit-Audit oder Ihres Prozesses ist, und einen Einblick in den Status der Einhaltung des erforderlichen Standards. Diese Analyse generiert auch die Dokumentation, die erforderlich ist, um die Einhaltung eines Auditors nachzuweisen.

Parasoft DTP zentralisierte Ansicht der Qualität über alle Tools und Entwicklungsphasen hinweg.
Parasoft DTP zentralisierte Ansicht der Qualität über alle Tools und Entwicklungsphasen hinweg.

Schauen wir uns als Beispiele die Berichte aus dem Parasoft C / C ++ - Test und an Parasoft DTP für MISRA und SEI CERT.

Compliance-Berichterstattung für MISRA

Parasoft C / C ++ test Bietet spezielle Berichte zur Dokumentation der Einhaltung von MISRA C. Ein Dashboard im Parasoft-Webportal bietet auf einen Blick einen Überblick über den aktuellen Status des Projekts, wie hier:

Report Center: Einhaltung von MISRA C 2012
Report Center: Einhaltung von MISRA C 2012

Jedes dieser Dashboard-Widgets kann mit einer detaillierteren Ansicht verknüpft werden, die detaillierte Berichte zu Verstößen, Dateien und Quellcode enthält.

Von hier aus können Sie automatisch die Berichte erstellen, die zur Dokumentation der MISRA-Konformität erforderlich sind, wie in MISRA-Konformität 2016: Erreichen der Konformität mit den MISRA-Codierungsrichtlinien beschrieben. Die Automatisierung dieser Berichte spart viel Zeit und reduziert den manuellen Aufwand für die Dokumentation der Projektkonformität erheblich.

Compliance-Berichterstattung für SEI CERT C.

Obwohl für den SEI CERT C-Standard keine spezifischen Konformitätsberichte erforderlich sind, muss ein Projekt die Konformität mit den Regelsätzen (z. B. L1, L2 und vollständig konform) dokumentieren. Der Parasoft C / C ++ - Test enthält ein dediziertes Dashboard für CERT C-Konformität, die so aussieht:

Report Center: SEI CERT C-Konformität
Report Center: SEI CERT C-Konformität

Teamleiter können diese Dashboard-Ansicht verwenden, um sich eingehender mit bestimmten Problembereichen zu befassen und Entwicklern Aufgaben zuzuweisen, um die Compliance im Laufe der Zeit zu verbessern. Das Betrachten der Ergebnisse im Kontext des vom Kodierungsstandard selbst verwendeten Risikobewertungsrahmens (z. B. das Feststellen spezifischer Verstöße gegen die L1-Richtlinien) rationalisiert den Prozess erheblich. Durch die Automatisierung dieser Berichterstellung wird der Analyseaufwand reduziert, den Teamleiter und Architekten durchführen müssen, um die CERT C-Konformität zu erreichen.

Werkzeugqualifikation

Die Werkzeugqualifizierung ist ein vorgeschriebener Prozess für die sicherheitskritische Softwareentwicklung. Parasofts Qualifikationskits Für den Parasoft C / C ++ - Test wird der Prozess der Erstellung der unterstützenden Dokumentation automatisiert, die für die Werkzeugqualifizierung von statischen Analysen, Komponententests und Abdeckungsanforderungen erforderlich ist, und sowohl das Risiko menschlicher Fehler als auch die Zeit für die Durchführung der Werkzeugqualifizierung verringert.

Die Reduzierung des Risikos und der Kosten der Werkzeugqualifizierung umfasst Folgendes:

Generieren Sie automatisch eine Compliance-Dokumentation. Parasoft automatisiert die Erstellung von Dokumentationen, die für die Qualifizierung des Parasoft C / C ++ - Tests für die Verwendung in sicherheitskritischen Branchen erforderlich sind, indem der Benutzer durch einen intuitiven Workflow geführt und Dokumentationen erstellt wird, die für den Nachweis der Werkzeugqualifizierung von entscheidender Bedeutung sind.

Reduzieren Sie den Umfang dessen, was zur Qualifizierung des Tools erforderlich ist. Der erste Schritt in Parasofts effizientem Workflow besteht darin, die spezifischen Anwendungsfälle und Funktionen des Parasoft C / C ++ - Tests auszuwählen, die im Softwareprojekt verwendet werden, um den Gesamtumfang der zu qualifizierenden Elemente zu reduzieren und den Qualifizierungsprozess zu optimieren.

Tests automatisch ausführen. Obwohl der Prozess der Werkzeugqualifizierung nicht zu 100% automatisiert werden kann, macht der einzigartige Workflow der Parasoft-Qualifizierungskits ihn so schmerzlos wie möglich, reduziert den manuellen Testaufwand und führt automatisierte Tests für ausgewählte Anwendungsfälle durch.

Reduzierung der Kosten und des Risikos der Softwarekonformität

Wie reduziert Parasoft das Risiko und spart Geld bei der Einhaltung von Software, wenn die Rolle von Parasoft-Produkten in jeder Entwicklungsphase beschrieben wird?

Mehrere Testtechnologien in einem Tool integriert. Die Vollständigkeit des Parasoft C / C ++ - Tests führt zu einer höheren Entwicklereffizienz bei der Entwicklung von Anwendungen mit funktionalen Sicherheitsanforderungen. Entwickler können sich auf ihre Kernaktivitäten konzentrieren, ohne mehrere Tools lernen, integrieren und qualifizieren zu müssen. Werkzeugintegratoren oder Architekten müssen keine Zeit damit verbringen, Schnittstellen zwischen Werkzeugen für den Datenaustausch und die Erstellung einheitlicher Berichte zu implementieren. Stattdessen erhalten sie alles von Parasoft aus der Box.

Eine bewährte Testsuite, die speziell für funktionale sicherheitskritische Anwendungen entwickelt wurde. Bei der Durchführung von Komponententests oder der Überwachung des Laufzeitspeichers werden alle zum Erstellen der Testbinärdatei erforderlichen Komponenten, einschließlich der Testfälle für getestete Codestimulation und Stubs, in Form von Quellcode ausgedrückt und können versioniert und überprüft werden. Dieser Ansatz ist anderen Tools überlegen, bei denen die Stimulation für getesteten Code zur Laufzeit vom Host gesendet wird und zusätzliche Konvertierungen erfordert, bevor sie den Variablen im Speicher zugewiesen werden. Der C / C ++ - Test entfernt diese unnötige Schicht und stellt sicher, dass der Status des Speichers vor dem Ausführen von Tests auf dieselbe Weise wie in den Produktionssystemen erstellt wird.

Beseitigen Sie Overhead für die Einhaltung der funktionalen Sicherheit. Parasoft bietet teamweite Datenintegration, bequemes Reporting, das an unterschiedliche Codierungsstandards angepasst ist, und erweiterte Analysefunktionen über die preisgekrönte Process Intelligence Engine von Parasoft. Benutzer profitieren von der Möglichkeit, Informationen aus mehreren verschiedenen Quellen (z. B. Quellcode- oder Anforderungsmanagementsystemen, Testtools oder ALMs) für eine einzigartige Datenanalyse zusammenzufassen, um die Bemühungen auf die produktivste Weise zu konzentrieren. Teams können die Produktivität steigern, indem sie Trends im Entwicklungsprozess überwachen und auf einfache Weise Berichte erstellen, die Industriestandards wie „MISRA Compliance: 2016“ entsprechen.

Zusammenfassung

Die Erstellung von sicherheitskritischer Software erfordert strenge Prozesse, deren Implementierung zeitaufwändig und teuer ist, und das aus gutem Grund: Der Ausfall solcher Software kann drastische Folgen haben. Es werden Industriestandards eingeführt, die Unternehmen bei der Entwicklung hochwertiger Software unterstützen, um die Sicherheit der entwickelten Produkte zu gewährleisten. Die Einhaltung dieser Industriestandards ist jedoch kostspielig. Diese Kosten liegen sowohl im Entwicklungsprozess als auch in den Artefakten, die zur Dokumentation des Engineeringprozesses erforderlich sind. Unternehmen können mit den richtigen Anwendungen von Tools und modernen Softwaretechniken Kosten senken.

Parasoft bietet die richtigen Tools und Unterstützung für Prozesse, die dazu beitragen, das Risiko und die Kosten der Softwarekonformität mit einer bewährten, einheitlichen Tool-Suite zu reduzieren, die die „Reibung“ verringert, die durch die Verwendung mehrerer Tools von mehreren Anbietern verursacht wird. Eine integrierte Lösung vereinfacht auch die Werkzeugqualifizierung erheblich, ein kritischer Aspekt der Compliance.

Eine integrierte Plattform ermöglicht eine einzigartige Datenanalyse, die von mehreren Tools in verschiedenen Entwicklungsstadien gesammelt wird, um die Ressourcen auf die wichtigsten Ziele zu konzentrieren. Diese zentralisierte Sicht auf Compliance, Qualität und Sicherheit ist der Schlüssel, um fundierte Entscheidungen zu treffen und das Rätselraten bei der Erreichung der Compliance erheblich zu reduzieren.

Erfahren Sie, wie Sie mit Parasoft C/C++test Compliance-Anforderungen bei statischen Analysen, Komponententests und struktureller Codeabdeckung erfüllen.

„MISRA“, „MISRA C“ und das Dreieckslogo sind eingetragene Marken von The MISRA Consortium Limited. ©The MISRA Consortium Limited, 2021. Alle Rechte vorbehalten.

Von Arthur Hicken

Arthur ist seit über 25 Jahren bei Parasoft im Bereich Software-Sicherheit und Testautomatisierung tätig. Er hilft bei der Erforschung neuer Methoden und Techniken (einschließlich 5 Patente) und hilft Kunden dabei, ihre Software-Praktiken zu verbessern.

Erhalten Sie die neuesten Nachrichten und Ressourcen zum Testen von Software sofort.