Zum Inhalt springen
Inovasense

MISRA C

MISRA C – Programmierrichtlinien für sichere, zuverlässige C-Software in eingebetteten und sicherheitskritischen Systemen. Die Ausgabe 2023 unterstützt C11/C18.

Definition
MISRA C – Programmierrichtlinien für sichere, zuverlässige C-Software in eingebetteten und sicherheitskritischen Systemen. Die Ausgabe 2023 unterstützt C11/C18.

MISRA C – Sichere Programmierung für eingebettete Systeme

MISRA C ist ein Satz von Programmierrichtlinien, der von der Motor Industry Software Reliability Association (MISRA) entwickelt wurde, um die Sicherheit, Zuverlässigkeit und Cybersicherheit von C-Code in eingebetteten Systemen zu gewährleisten. Ursprünglich für die Automobilindustrie entwickelt, ist MISRA C heute der De-facto-Standard in der Luft- und Raumfahrt, der Medizintechnik, der Industriesteuerung, der Bahntechnik und in allen Bereichen, in denen ein Softwarefehler Folgen für die funktionale Sicherheit oder die Cybersicherheit hat.

MISRA C:2023 – Aktuelle Ausgabe

Die Ausgabe 2023 fasst alle früheren Versionen (MISRA C:2012 + Amendments 1–4 + Technical Corrigenda) in einem einzigen, umfassenden Standard zusammen. Zu den wichtigsten Neuerungen gehören:

NeuerungBeschreibung
Unterstützung für C11/C18Richtlinien für _Atomic, _Static_assert, anonyme Strukturen/Unions
Regeln zur NebenläufigkeitNeue Richtlinien für Multithreading und atomare Operationen – entscheidend für RTOS-basierte eingebettete Systeme
Fokus auf CybersicherheitVerbesserte Abstimmung mit den Anforderungen von CWE, CERT C und der Cyberresilienz-Verordnung (CRA)
Einheitliches DokumentAlle Amendments und Corrigenda in einer einzigen Spezifikation zusammengefasst

Klassifizierung der Richtlinien

KategorieBedeutungAbweichung zulässig?
Zwingend (Mandatory)Muss befolgt werden – keine Ausnahmen? Niemals
Erforderlich (Required)Muss befolgt werden, es sei denn, es wird eine formale Abweichung dokumentiert? Mit dokumentierter Begründung
Empfehlung (Advisory)Empfohlene Best Practice? Keine formale Abweichung erforderlich

Die Richtlinien werden weiter in Regeln (Rules) (präzise definiert, werkzeuggestützt prüfbar) und Anweisungen (Directives) (allgemeiner, erfordern ingenieurtechnisches Urteilsvermögen) unterteilt.

Was MISRA C verhindert

Häufige Fallstricke der Programmiersprache C, gegen die MISRA C schützt:

  • Undefiniertes Verhalten – Überlauf von vorzeichenbehafteten Ganzzahlen, nicht initialisierte Variablen, Dereferenzierung von Nullzeigern
  • Implementierungsdefiniertes Verhalten – Reihenfolge von Bitfeldern, Vorzeichen von char, Padding von Strukturen
  • Gefährliche Konstrukte – goto, setjmp/longjmp, Unions für Type-Punning, rekursive Funktionen
  • Cybersicherheitsschwachstellen – Pufferüberläufe, Format-String-Angriffe, Integer-Trunkierung
  • Fehler bei der Nebenläufigkeit – Wettlaufsituationen (Data Races), nicht-atomare Operationen auf gemeinsam genutzten Variablen

Konformität in der Praxis

AspektVorgehensweise
Statische AnalysewerkzeugePC-lint, Polyspace, Coverity, Parasoft, LDRA, QA-C
CI/CD-IntegrationAutomatisierte MISRA-Prüfung bei jedem Commit
AbweichungsprozessFormale Dokumentation der Abweichung mit Analyse der Sicherheitsauswirkungen
KonformitätsmatrixZuordnung von MISRA-Regeln zu Projektregeln mit Nachverfolgung von Verstößen

MISRA C und Normen zur funktionalen Sicherheit

Die Konformität mit MISRA C wird von wichtigen Normen zur funktionalen Sicherheit gefordert oder vorausgesetzt:

NormAnwendungsbereichMISRA-Anforderung
ISO 26262AutomobilindustrieEmpfiehlt MISRA C für ASIL A–D
IEC 61508IndustrieEmpfiehlt eine eingeschränkte Untermenge von C
DO-178CLuft- und RaumfahrtProgrammierstandards erforderlich (MISRA wird häufig verwendet)
IEC 62304MedizintechnikErfordert dokumentierte Programmierstandards
EN 50128BahntechnikEmpfiehlt eine eingeschränkte Sprachuntermenge

Verwandte Begriffe

  • CRA – Die EU-Cyberresilienz-Verordnung fordert sichere Entwicklungspraktiken; MISRA C bietet das Rahmenwerk für die Implementierung.
  • RTOS – Die neuen Richtlinien zur Nebenläufigkeit in MISRA C:2023 sind für RTOS-basierte, multithreaded Firmware unerlässlich.

Alle unsere Projekte für eingebettete Systeme folgen den MISRA-C-Richtlinien mit automatisierter statischer Analyse in der CI/CD-Pipeline. Informieren Sie sich über unsere Dienstleistungen zur Entwicklung eingebetteter Systeme.

Offizielle Referenzen

Verwandte Begriffe