Erfahren Sie, wie die Continuous Quality Platform von Parasoft dabei hilft, Testumgebungen zu steuern und zu verwalten, um zuverlässig hochwertige Software zu liefern. Für Demo registrieren >>

Einhaltung der MISRA C-Regeln und Codierungsstandards

Entwickler verwenden die MISRA-Codierungsstandards in großem Umfang in Unternehmen außerhalb der Automobilindustrie, z. B. in den Bereichen Medizin und medizinische Geräte, Militär, Luft- und Raumfahrt, Industrieautomation, Schienenverkehr und Energie. Die Standards bieten eine Reihe von Richtlinien oder Best Practices zum Schreiben von eingebettetem C- und C++-Code (C++ lässt sich in Microsoft Visual Studio integrieren) und erleichtern die Autorenschaft von sicherem, sicherem und portablem Code für sicherheitskritische Systeme.

Was ist MISRA?

Die Motor Industry Software Reliability Association (MISRA) bezieht sich auf den weit verbreiteten und legendären Codierungsstandard für C- und C++-Sprachen. MISRA bietet umfassende Codierungsrichtlinien, die sich auf den Schutz von Anwendungen vor bekannten Sicherheitsverletzungen und Sicherheitslücken konzentrieren. Der Verband stuft Richtlinien entweder als „Regel“ oder als „Richtlinie“ ein.

Eine Regel enthält eine vollständige Beschreibung der Codierungsanforderung, und Entwickler können damit durch statische Analyse überprüfen, ob der Quellcode einer Richtlinie entspricht, ohne nach weiteren Informationen suchen zu müssen. Auf der anderen Seite bietet eine Direktive eine wichtige Vorschrift oder Entwicklungshilfe für Entwickler, wenn es ihnen im Allgemeinen nicht möglich ist, eine Überprüfung der Konformität durchzuführen.

MISRA ist ein Konsortium automobilbezogener Industrien, das sich Anfang der 1990er Jahre im Rahmen des britischen Safety Critical Systems Research Programme zusammengeschlossen hat. Die britische Regierung hat dieses Programm ins Leben gerufen, um einige der Herausforderungen anzugehen, mit denen die Automobilindustrie aufgrund der zunehmenden Verwendung von Software bei der Herstellung und dem Betrieb von Straßenfahrzeugen durch die Automobil- und Lkw-Hersteller konfrontiert ist. Parasoft ist Mitglied des MISRA-Konsortiums.

Für die C-Entwicklung unterstützt der neueste MISRA C:2012-Standard die Sprachspezifikationen C90, C99, C11 und C18. Die aktuelle Version MISRA C: 2012 (manchmal auch als MISRA C 2012 oder MISRA C2012 geschrieben) wurde über mehrere Jahre weiterentwickelt und die Änderung 2 zu MISRA C: 2012 wurde 2020 veröffentlicht. Änderung 3 wird voraussichtlich 2022 veröffentlicht der Programmiersprache C++, der aktuelle MISRA-Standard ist MISRA C++ 2008.

Hinweis: MISRA ist ein Regelwerk zur sicheren Codierung, nicht zum Testen von APIs (Application Programming Interfaces).

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

Vorteile von MISRA

Wenn Entwickler MISRA-Richtlinien implementieren, hilft ihnen dies, sicheren und zuverlässigen Code bereitzustellen, der dauerhafte Vorteile bietet. Die Einhaltung von MISRA wirkt sich auf den Erfolg und die Langlebigkeit Ihres Produkts aus und reduziert gleichzeitig die Arbeitskosten und die Markteinführungszeit.

Erhöhen Sie die Codequalität und reduzieren Sie die Fehlerkosten.

Verhindern Sie Codefehler zu einem früheren Zeitpunkt im Produktentwicklungsprozess, bevor sie zu teureren Herausforderungen auf der ganzen Linie führen.

Erfüllen Sie die Industrieprozessstandards.

Parasoft bietet die statische MISRA-Analyse als Lösung, die von Prozessstandards wie ISO 26262, DO-178C, IEC 62304, IEC 61508, EN 50128 und mehr empfohlen wird.

Erfüllen Sie statische Analyse-Sicherheitstests (SAST).

Binden Sie die Regeln und Richtlinien des MISRA-Sicherheitscodes als Teil Ihrer SAST-Strategie direkt in Ihren Softwareentwicklungslebenszyklus ein.

Erweitern Sie MISRA und erstellen Sie Ihre eigenen benutzerdefinierten Codierungsrichtlinien.

Erstellen Sie mit unserem RuleWizard Ihre eigene benutzerdefinierte Konfiguration mit Codierungsstandards für Ihr Unternehmen.

Kombinieren Sie Codierungsstandards wie CERT mit MISRA, um die optimale Codequalität zu erzielen.

Parasoft bietet die Aggregation von Standards wie MISRA mit allen unseren anderen unterstützten Codierungsstandards: CERT, CWE, OWASP, UL 2900 und andere.

Binden Sie MISRA SA in Ihren CI/CD-Workflow ein.

Die statische MISRA-Analyse von Parasoft lässt sich leicht in Ihre optimierte CI/CD-Pipeline mit kontinuierlichen Tests integrieren, die schnell hochwertige, sichere und geschützte Software liefert.

Intelligenter testen mit KI und ML.

Parasoft integriert künstliche Intelligenz und maschinelles Lernen, um die Produktivität in den statischen MISRA-Analyse-Workflow Ihres Teams zu verbessern, indem die Regelverstöße gekennzeichnet und priorisiert werden, die das Team zuerst beheben muss.

Lösungen zur Erfüllung der MISRA-Anforderungen

Stellen Sie die Produktsuite von Parasoft bereit, um eine statische Analyse des Codes durchzuführen, unabhängig davon, in welcher Entwicklungsumgebung Sie arbeiten.

MISRA-Compliance-Best Practices

Wenn es um die Einhaltung von MISRA geht, empfehlen wir mehrere sehr nützliche Praktiken. Hier ist eine Liste mit einigen der zu berücksichtigenden Methoden.

Code-/Peer-Reviews durchführen

Treffen Sie sich zusätzlich zur MISRA-Compliance mit Ihren Kollegen aus der Softwareentwicklung und überprüfen Sie systematisch den Code des anderen auf Fehler und Verstöße gegen den Programmierstil. Die Erfahrung zeigt, dass diese Aktivität die Produktion beschleunigt und die Codequalität erheblich verbessert.

Code-Klarheit

MISRA-Compliance hilft Ihnen, Code zu schreiben, der einfach zu lesen und zu verstehen ist. Seien Sie nicht zu schlau und schreiben Sie kryptischen Code, der schwer zu verstehen oder leicht misszuverstehen ist. Sie möchten nicht, dass andere Ingenieure oder Sie selbst viel Zeit damit verbringen, einen Fehler in Ihrem Code zu entschlüsseln.

Code-Robustheit

Wenn Sie die MISRA-Konformität erreichen, können Sie zuverlässigen Code schreiben, der nicht nur Sonnen-, sondern auch Regentage bewältigt. Dazu gehören negative Szenarien, die Ihre Bewerbung vorbereiten, wenn sie auf ungültige Daten stößt.

Code-Portabilität

Die MISRA-Konformität hilft Programmierern, Code mit Blick auf Portabilität zu schreiben, da portabler Code wie POSIX und ANSI C einfache und schnelle Verschiebungen auf andere Plattformen ermöglicht. Entwickler können andere Compiler oder andere Betriebssysteme mit minimalen Codeänderungen anpassen. Oftmals ergeben sich finanzielle oder geschäftliche Möglichkeiten, wenn eine Migration auf ein anderes Betriebssystem oder Ziel durchgeführt werden muss.

Codekomplexität

Die MISA-Konformität hilft Programmierern, Code zu schreiben, der nicht über eine große Anzahl von Verzweigungen verfügt. Je mehr Verzweigungen, desto höher die Codekomplexität und desto höher die Anzahl potenzieller Fehler im Code.

Wiederverwendbarkeit des Codes

Die MISRA-Compliance hilft Ihnen, portablen Code zu schreiben, den Sie in zukünftigen Produkten oder Projekten wiederverwenden können. Dies verbessert die Produktivität und reduziert Arbeits- und Testkosten.

Protokollieren Sie Ihre Abweichungen richtig

Jede Abweichung von der MISRA-Richtlinie erfordert eine gründliche Dokumentation der Richtlinie, des Umfangs, der Begründung, der Sicherheitsgewährleistung, der Konsequenzen und der Minderung.

MISRA-Rauschen reduzieren

Programmierer können einige Codekonstrukte so schreiben, dass eine MISRA-Verletzung ausgelöst wird. Parasoft bietet eine Methode, um dieses Rauschen wissentlich herauszufiltern.

Übernahme der MISRA-Compliance

Das Tolle daran, MISRA-Compliance vorzuschlagen, ist, dass Sicherheitsteams die Richtlinien in jeder Softwareentwicklungsphase eines Projekts einführen und verwenden können, und die Richtlinien sind auch dann wirksam, wenn ein Projekt unvollständig und teilweise codiert ist.

Die größte Herausforderung bei der Einführung der MISRA-Compliance besteht darin, dass eine große Menge an Code eine große Anzahl von Warnungen erzeugen kann. Daher sollten sich Unternehmen bei der Integration der MISRA-Compliance in ein Projekt darauf konzentrieren, das Team so schnell wie möglich produktiv zu machen.

Unternehmen sollten sich auch darauf konzentrieren, die Möglichkeit zu minimieren, dass die Warnungen der statischen Analyse das Team überfordern. Da das Erreichen der MISRA-Compliance zur täglichen Routine der Entwickler wird, können die Entwickler die Ergebnisse schneller analysieren und Fehler effizienter beheben.

Überlegungen zur Produktreife

Es ist auch wichtig, die Reife des in Entwicklung befindlichen Produkts zu berücksichtigen, da dies die Art und Weise beeinflusst, wie das Unternehmen die MISRA-Compliance übernehmen kann.

Vorhandenes Projekt auf dem Markt

Der primäre Ansatz zur Einführung der MISRA-Compliance für diese Projekte heißt „Anerkennen und Zurückstellen“. Da Entwickler wenig neuen Code hinzufügen, tragen alle Sicherheitsfehler und Sicherheitslücken, die sie entdecken, zu den bestehenden technischen Schulden bei.

Bestehendes Projekt mit aktueller Entwicklung

Der empfohlene Ansatz zur Einhaltung von MISRA wird als „A line in the sand“-Ansatz bezeichnet. Auf einer hohen Ebene bedeutet dieser Ansatz, dass Entwickler neuen Code verbessern, während sie ihn entwickeln, während weniger kritische Warnungen als technische Schuld zurückgestellt werden.

Neues Projekt

Entwickler können die MISRA-Konformität von Anfang an in ihre Entwicklungsumgebungen integrieren und so einen hohen Qualitätsstandard beim Schreiben des Codes sicherstellen. Der Adoptionsansatz wird in diesem Fall treffend „Greenfield“ genannt.

Screenshot von Parasofts Berichten und Analysen zur MISRA C 20212 Compliance mit Tortendiagrammen und anderen Daten, die die Code-Compliance widerspiegeln.

Beispiel für automatisiertes Compliance-Reporting

Analyse-Dashboard von Parasoft mit automatisiertem Compliance-Reporting. Für sicherheitskritische Anwendungen sollten Sie unsere TÜV SÜD-zertifizierte Lösung auf sicherheitskritischen Systemen einsetzen.

Warum Parasoft?

Parasoft C / C ++ test erkennt komplexe Laufzeit-ähnliche Probleme der MISRA-Compliance frühzeitig in der Entwicklungsphase – ohne kostspielige Laufzeittests durchführen zu müssen. C/C++test analysiert die Ausführungspfade durch den Code und findet MISRA-Compliance-Probleme wie Nullzeiger-Dereferenzierung, Division durch Null, Speicherlecks und Sicherheitsschwachstellen wie Arithmetik auf einem Zeigeroperanden, Pufferüberläufe, nicht erreichbarer Code und stdlib-Systemfunktion.

Benutzer können die Ergebnisse der MISRA-Compliance von C/C++test im dynamischen Berichts-Dashboard von Parasoft anzeigen, was eine automatisierte Nachbearbeitung und erweiterte Berichtsstrategien mit historischen Daten ermöglicht. Es ist einfach, die MISRA-Compliance-Ergebnisse über Builds hinweg im Laufe der Zeit zu sehen, selbst wenn Sie mit großen Codebasen und Legacy-Code arbeiten, bei denen die Sichtbarkeit des Codes normalerweise schwierig ist, sodass Sie sich schnell auf die Qualität des neu hinzugefügten Codes konzentrieren können.

Mit Widgets, die die MISRA-Compliance automatisch verfolgen, erhalten Benutzer einen dynamischen Einblick in den Software-Compliance-Prozess und können einfach automatische Berichte für Code-Audits und Zertifizierungsziele erstellen.

Häufig gestellte Fragen

Integrieren Sie in Ihre Software-Implementierungsphase eine TÜV-zertifizierte Lösung, die Ihren Code nach dem MISRA-Standard auf bekannte Sicherheits- und Anwendungssicherheitsverletzungen analysiert.

In der modernen agilen Entwicklung können Sie auch die MISRA-Analyse und -Compliance in Ihren Continuous Integration and Continuous Delivery (CI/CD)-Workflow automatisieren. Stellen Sie sicher, dass Sie alle identifizierten Verstöße verstanden haben und stellen Sie sicher, dass sie alle behoben werden. Bei Abweichungen sind diese entsprechend der MISRA-Norm sorgfältig zu dokumentieren.

Schließlich müssen Sie die folgenden Artefakte für die MISRA-Konformitätszertifizierung vorlegen.

  1. Durchsetzungsplan für MISRA-Richtlinien
  2. MISRA-Richtlinienplan zur Neukategorisierung
  3. MISRA-Abweichungsbericht
  4. Zusammenfassung der MISRA-Konformität

Die neueste Version, MISRA C:2012, wurde über mehrere Jahre weiterentwickelt und umfasst 158 ​​MISRA C-Regeln und 17 Richtlinien für insgesamt 175 Richtlinien. Die Änderung 2 zu MISRA C:2012, veröffentlicht im Jahr 2020, erweitert den Standard um 2 Regeln.

Statische Analyse ist der Prozess, bei dem Quellcode ohne Ausführung untersucht wird, normalerweise um Fehler zu finden oder die Codesicherheit und -zuverlässigkeit zu bewerten. Dies bedeutet, dass Softwareteams und Softwaresicherheitsteams statische Analysen für teilweise vollständigen Code, Bibliotheken und Quellcode von Drittanbietern verwenden können.

Statische Analysewerkzeuge Helfen Sie Teams bei der Einhaltung von Codierungsstandards wie MISRA C/C++, AUTOSAR C++ 14, SEI CERT oder Ihrer eigenen benutzerdefinierten Konfiguration.