MISRA C: Ergänzungen für mehr Sicherheit

Der von der Automobilindustrie entwickelte Standard MISRA C erhält Ergänzungen, die helfen sollen, Sicherheitslücken in eingebettetem C-Code zu vermeiden.

In Pocket speichern vorlesen Druckansicht
MISRA C: Ergänzungen für mehr Sicherheit
Lesezeit: 2 Min.
Von
  • Rainald Menge-Sonnentag

Die Programmierstandards MISRA C und MISRA C++ wurden von der englischen Motor Industry Software Reliability Association (MISRA) definiert. Sie sollen C- und C++-Entwicklern dabei helfen, Anwendungen mit hoher Qualität zu entwickeln, indem sie zahlreiche Richtlinien für sauberen Code vorgeben. Die Standards wollen vor allem sicherstellen, dass in Automobilen eingesetzte Komponenten mit eingebetteter Software reibungslos funktionieren und zusammenarbeiten. Gleichzeitig sollen sich verbleibende Fehler schnell beheben lassen. MISRA C hat sich inzwischen auch jenseits der Automobilindustrie als Quasi-Standard etabliert. Die letzte Fassung von 2012 ist für 15 britische Pfund auf der offiziellen MISRA-Seite erhältlich.

Das Konsortium hat nun eine Erweiterung veröffentlicht, die sich vor allem Sicherheitsaspekten widmet. Entwickler können das Amendment 1 kostenfrei herunterladen. Zu den Ergänzungen gehört unter anderem die Direktive 1.4, die vorgibt, dass alle Werte aus externen Quellen auf ihre Gültigkeit überprüft werden müssen. Wie viele Regeln innerhalb des Standards klingt sie auf Anhieb selbstverständlich. Der entscheidende Punkt ist jedoch, dass Entwickler die Vorgabe tatsächlich umsetzen müssen, damit ihr Code MISRA-Anforderungen genügt ist. So soll die Regel verhindern, dass fehlerhafte Werte an anderer Stelle beispielsweise Pufferüberläufe auslösen und damit zu Schwachstellen führen.

Ähnliches gilt für erweiterte Vorgaben im Umgang mit Zeichenketten. Entwickler müssen unter anderem sicherstellen, dass Vergleichs- oder Kopierfunktionen nicht über die Länge der string-Variable hinausgehen. Weitere Vorgaben wie den Umgang mit errno zum Behandeln von Fehlermeldungen finden sich im PDF-Dokument.

Siehe dazu auf heise Developer:

(rme)