Blog 4 Min. Lesezeit

C++-Coding-Standards: CERT, MISRA, AUTOSAR und CWE im Überblick

Diesen Artikel teilen
Exploring C++ Coding Standards: CERT, MISRA, AUTOSAR, and CWE

C++-Coding-Standards sind für Softwareentwickler unverzichtbar, wenn sie hochwertige, sichere und robuste Software entwickeln möchten. Sie liefern wertvolle Richtlinien für die Softwareentwicklung, weshalb es wichtig ist, sie zu kennen. In diesem Beitrag betrachten wir vier wichtige C++-Coding-Standards, die von CppDepend.


CERT, beziehungsweise Computer Emergency Response Team, stellt Richtlinien bereit, die Organisationen und Entwickler bei der Erstellung sicherer, hochwertiger Software unterstützen. Dazu gehören Best Practices für sicheren C++-Code, etwa zu Fehlerbehandlung, Sicherheitsaspekten und Coding-Stil.

CERT empfiehlt beispielsweise, Software nach sicheren Coding-Praktiken zu entwickeln und sämtlichen Code vor dem Produktiveinsatz zu testen.

Nachdem Sie Ihr Projekt mit CppDepend analysiert haben, wechseln Sie zum Bereich „Queries and Rules Explorer“ und wählen im linken Menü die CERT-C++-Regeln aus (im folgenden Bild rot hervorgehoben). Rechts werden daraufhin alle zugehörigen CERT-C++-Regeln angezeigt. Wenn Sie auf eine Regel klicken, werden die entsprechende CQLinq-Abfrage und der relevante Quellcode automatisch erzeugt. Zusätzlich visualisiert der Bereich „Metrics View“ Position und Bedeutung des Problems.

MISRA, die Motor Industry Software Reliability Association, definiert Coding-Standards speziell für die Automobilindustrie. Der Schwerpunkt liegt auf sicherheitskritischer Software und auf der Vermeidung potenzieller Schwachstellen wie Buffer Overflows und Integer Overflows.

MISRA empfiehlt beispielsweise, alle Variablen mit ihrem Typ zu deklarieren und den gesamten Code gegen bekannte Coding-Standards zu prüfen.

Nachdem Sie Ihr Projekt mit CppDepend analysiert haben, wechseln Sie zum Bereich „Queries and Rules Explorer“ und wählen im linken Menü die MISRA-Regeln aus (im folgenden Bild rot hervorgehoben). Rechts werden alle zugehörigen MISRA-Regeln angezeigt. Ein Klick auf eine Regel erzeugt automatisch die entsprechende CQLinq-Abfrage und zeigt den relevanten Quellcode. Im Bereich „Metrics View“ werden außerdem Position und Bedeutung des Problems visualisiert.

AUTOSAR, die Automotive Open System Architecture, ist ein offenes Framework für die Entwicklung von Anwendungen in Fahrzeugen. Es zielt auf eine sichere Betriebsumgebung für Anwendungen und enthält Richtlinien für den Entwurf sicherer Software.

AUTOSAR empfiehlt beispielsweise, den gesamten Code auf potenzielle Sicherheitslücken zu prüfen und sichere Coding-Techniken einzusetzen, um diese Schwachstellen zu entschärfen.

Nachdem Sie Ihr Projekt mit CppDepend analysiert haben, wechseln Sie zum Bereich „Queries and Rules Explorer“ und wählen im linken Menü die AUTOSAR-C++-2014-Regeln aus (im folgenden Bild rot hervorgehoben). Rechts erscheinen alle zugehörigen Regeln. Ein Klick auf eine Regel erzeugt automatisch die entsprechende CQLinq-Abfrage und zeigt den relevanten Quellcode. Der Bereich „Metrics View“ visualisiert zusätzlich Position und Bedeutung des Problems.

CWE, oder Common Weakness Enumeration, ist ein Katalog von Softwareschwachstellen, mit dem Sicherheitsprobleme identifiziert und behoben werden können. Er beschreibt Schwachstellen und die damit verbundenen Risiken und gibt Hinweise zu ihrer Behebung.

CWE empfiehlt beispielsweise, sämtlichen Code auf potenzielle Sicherheitslücken zu prüfen und sichere Coding-Techniken zu deren Behebung einzusetzen.

Nachdem Sie Ihr Projekt mit CppDepend analysiert haben, wechseln Sie zum Bereich „Queries and Rules Explorer“ und wählen im linken Menü die CWE-Regeln aus (im folgenden Bild rot hervorgehoben). Rechts werden alle zugehörigen CWE-Regeln angezeigt. Ein Klick auf eine Regel erzeugt automatisch die entsprechende CQLinq-Abfrage und zeigt den relevanten Quellcode. Im Bereich „Metrics View“ werden außerdem Position und Bedeutung des Problems visualisiert.

Anwendungsbeispiel

Betrachten wir beispielsweise eine Softwareanwendung, die eine Datenbank verwendet. Die genannten Coding-Standards können gemeinsam wie folgt angewendet werden:

  • Die CERT-Richtlinien würden empfehlen, den Code auf potenzielle Sicherheitslücken zu prüfen und Coding-Techniken einzusetzen, um diese zu entschärfen.
  • MISRA würde empfehlen, alle Variablen mit ihrem Typ zu deklarieren und den gesamten Code gegen bekannte Coding-Standards zu prüfen.
  • AUTOSAR würde empfehlen, die Software auf potenzielle Sicherheitslücken zu testen und sichere Coding-Techniken zu deren Behebung einzusetzen.
  • Schließlich würde CWE empfehlen, den gesamten Code auf potenzielle Sicherheitslücken zu prüfen und sichere Coding-Techniken zu deren Behebung einzusetzen.

Durch die Einhaltung dieser C++-Coding-Standards können Organisationen und Entwickler dazu beitragen, dass ihre Software sicher, hochwertig und robust ist. Entscheidend ist, die einzelnen Standards zu verstehen und zu wissen, wie sie gemeinsam eingesetzt werden können, um Software möglichst sicher und zuverlässig zu gestalten.

Erwägen Sie, CppDepend herunterzuladen um zu überprüfen, ob Ihre Projekte die etablierten Coding-Standards einhalten.

Diesen Artikel teilen