Gastkommentar Embedded Automotive Software und MISRA C
Anbieter zum Thema
Bei der Entwicklung von embedded Software für Fahrzeuge ist C immer noch die populärste Programmiersprache – aber C-Programme sind anfällig für ernste Speicherzugriffsfehler.

Mit dem heute fortgeschrittensten und weithin anerkannten Codierstandard MISRA C lassen sich unsichere Praktiken vermeiden und die mit dem Programmieren in C verbundenen Risiken minimieren. Ursprünglich als Automotive-Standard 1998 ins Leben gerufen, ist MISRA C heute auch in anderen Bereichen weit verbreitet.
Unternehmen, die Embedded-Automotive-Software entwickeln, müssen nicht nur Verstöße gegen vordergründige syntaktische Regeln aufspüren können, sondern auch aus undefiniertem Verhalten entstandene ernste Bedrohungen identifizieren, wie es der MISRA-C Standard vorschreibt. Selbst wenn leichte statische Analysetools einige der offensichtlichsten Ereignisse durch Testläufe spezifizieren können, entdecken nur die fortschrittlichsten statischen Analysetools die subtileren Ereignisse auf.
Nutzen Sie die neueste Version des Standards – MISRA C: 2012. Diese Version beinhaltet wichtige Verbesserungen zur vorhergehenden. Unternehmen, die noch nicht auf diese Version umgestiegen sind, setzen ihre Produkte und ihre Kunden beträchtlichen Risiken aus. Beachten Sie insbesondere die Regel 1.3 („Es darf kein undefiniertes oder kritisches unspezifiziertes Verhalten eintreten“) und Richtlinie 1.4. („Laufzeit-Fehler müssen minimiert werden“). Viele der gravierendsten Fehler in C entstehen durch unspezifiziertes Verhalten, z.B. Buffer Overruns und Underruns, Invalid Pointer Indirection, Double Close, Data Races, Division by Zero und Use of uninitialized memory.
MISRA C empfiehlt den Einsatz eines automatisierten statischen Analysetools, um Verletzungen des Standards aufzuspüren. Allerdings sind nicht alle Tools gleich gestaltet und einige können nur über oberflächliche syntaktische Eigenschaften des Codes Schlussfolgerungen ziehen. Anspruchsvollere Tools wie CodeSonar bieten fundierte semantische Kenntnisse des gesamten Programms. Sie sollten einfache statische Analysetools vermeiden, die syntaktische Verletzungen finden, aber die tieferen Fehler insgesamt nicht aufspüren können. Denn ein Bericht eines einfachen Tools kann einen falschen Eindruck der Sicherheit vermitteln, da er ernste Fehler nicht enthält. Suchen Sie ein Tool, das sowohl Verletzungen der oberflächlichen syntaktischen Regeln findet, als auch Fehler wie die bereits genannten.
Hersteller müssen verstehen, dass ihre Marken immer enger mit der Qualität und Sicherheit der zugrunde liegenden Software verknüpft sind. Und sie müssen schnell handeln, um Software-Schwachstellen im Vorfeld zu vermeiden, bevor Kunden in Gefahr sind. Darum ist es unverzichtbar, dass ihre gesamte Software Supply Chain mit Hilfe von modernen automatisierten Analysetools die Codequalität übergreifend sicherstellt, sowohl für die Fahrzeuge selbst als auch zur Sicherheit für ihre Fahrer.
Was also sollte ein statisches Analysetool bereitstellen?
Ein präzises Modell: Das Tool kann Code genauso analysieren wie der Compiler. Alle Compiler sind unterschiedlich, und Analysetools, die das nicht in Betracht ziehen, liefern falsche Ergebnisse.
Eine Analyse über das gesamte Programm: Das Werkzeug kann den Informationsfluss zwischen Abläufen und über Grenzen der Kompilationseinheiten hinweg rückverfolgen.
Die Analyse ist flussempfindlich, kontextsensitiv und Pfad-sensibel: Es liefert präzise Angaben zu Fundstellen und Fehlern.
Eliminierung von unausführbaren Pfaden: Mithilfe dieser Eigenschaft senkt das Tool die Anzahl der False-Positive-Ergebnisse. Die besten Werkzeuge nutzen hochentwickelte Technologien wie SMT Solver.
MISRA C:2012 Native Checker: Mit MISRA C:2012 Checkern stellt das Tool die Einhaltung des Standards sicher. Partnerschaften oder nur das Einhalten früherer Versionen des Standards bieten keine adäquate Leistung.
:quality(80)/images.vogel.de/vogelonline/bdb/978000/978080/original.jpg)
Codeanalyse
GrammaTech erweitert CodeSonar und bietet IoT-Trainings an
:quality(80)/p7i.vogel.de/wcms/37/6f/376fa4910e47ea387ef662e5dede4694/48311055.jpeg)
Analysemethoden
Code-Injektion in Embedded-Systemen gezielt verhindern
:quality(80)/images.vogel.de/vogelonline/bdb/903100/903138/original.jpg)
Software-Tools
ArcCore verbessert Code-Qualität und Performance für Autosar-Entwickler
Artikelfiles und Artikellinks
Link: Zu GrammaTech
(ID:43742403)