Gastkommentar

Embedded Automotive Software und MISRA C

| Redakteur: Thomas Kuther

Marc Brown: ist Chief Marketing Officer und Vice President Sales bei GrammaTech in Ithaca, NY.
Marc Brown: ist Chief Marketing Officer und Vice President Sales bei GrammaTech in Ithaca, NY. (Bild: GrammaTech)

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.

GrammaTech erweitert CodeSonar und bietet IoT-Trainings an

Codeanalyse

GrammaTech erweitert CodeSonar und bietet IoT-Trainings an

02.02.16 - GrammaTech, Spezialist für die Qualitätssicherung in der Softwareentwicklung, hat die Version 4.2 seines statischen Codeanalyse-Tools CodeSonar fertiggestellt. Das Werkzeug zielt auf Unternehmen in der Automobilbranche, Medizintechnik, Elektronik, Industrie und weiteren Branchen. lesen

Code-Injektion in Embedded-Systemen gezielt verhindern

Analysemethoden

Code-Injektion in Embedded-Systemen gezielt verhindern

26.11.15 - Dieser Artikel beschreibt, wie Angreifer Fehler im Quellcode einer Anwendung ausnutzen können. Er beschäftigt sich mit Schwachstellen, die das Einschleusen von Code ermöglichen. lesen

ArcCore verbessert Code-Qualität und Performance für Autosar-Entwickler

Software-Tools

ArcCore verbessert Code-Qualität und Performance für Autosar-Entwickler

30.07.15 - Der auf Autosar-Lösungen spezialisierte Softwareanbieter ArcCore hat seine Development Suite 9.0.0 vorgestellt, inklusive überarbeiteter Versionen der Entwicklungs-Suite Arctic Studio und Arctic Core, der Open Source Embedded-Plattform für Automotive. lesen

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 43742403 / Automotive)