Sicherheit Embedded Automotive Software Schnittstellen erhöhen das Risiko

Ein modernes Auto mit Programmiersoftware vergrößert  das Risiko gehackt zu werden.
Selbst ein CD-Spieler kann zum Einfallstor für Hacker werden.

Ob CD-Spieler oder USB-Schnittstelle – ein modernes Auto besitzt viele Angriffspunkte für Hacker. Der breite Einsatz der Programmiersprache C vergrößert das Risiko noch. Deutlich mehr Sicherheit bietet der Wechsel zu MISRA-C oder MISRA-C++ in Verbindung mit einem modernen Statische-Analyse-Tool.

Die zunehmende Verbreitung von vernetzten Fahrzeugen macht eine neue Definition von Sicherheit in Automobilen notwendig. Während Sicherheitsbelange früher aktive und passive Insassenschutzsysteme betrafen, dreht sich heute die Diskussion auch darum, wie man den Zugriff bösartiger Hacker auf das Fahrzeug vermeiden kann. Vor allem die Fülle an möglichen Zielen macht die wachsende Flotte an vernetzten Automobilen zum attraktiven Ziel für Hacker. Die Skala der Angriffe auf Autos reicht dabei von einer eher harmlosen Störung eines Unterhaltungssystems bis hin zu einer potenziell verheerenden Übernahme von wichtigen Sicherheitssystemen wie Bremsen und Lenkung. Und die Bedrohung steigt. Umso wichtiger ist es, dass Automobilhersteller und die Zulieferer proaktiv agieren, um den Code in unseren Fahrzeugen zu sichern.

Einer der ausschlaggebenden Gründe für das Sicherheitsrisiko bei Automotive Software ist der breite Einsatz der Programmiersprache C. Ein schlecht geschriebenes C-Programm kann Fehler enthalten und dadurch einem Hacker ausreichende Angriffsfläche bieten, um die Fahrzeugelektronik zu übernehmen. Leider können solche Fehler leicht übersehen werden. Ein sehr wirksamer Schutz dagegen ist, den Programmierern nur eine eingeschränkte Nutzung der Sprache zu erlauben, etwa in Form der C-Variante von MISRA.

Entwickelt wurde der MISRA-Standard von der Motor Industry Software Reliability Association. Er unterstützt den Einsatz von sicheren, zuverlässigen und portierbaren Embedded-Programmen für Automotive-Anwendungen. Auch wenn der Standard nicht speziell zum Schutz vor Hackern konzipiert wurde, so gibt es doch eine breite Überschneidung zwischen den Fehlerarten, die Zuverlässigkeitsprobleme (Safety) hervorrufen, und denen, die zu Sicherheitslücken (Security) führen – das macht die Einhaltung des Standards zur wirksamen Möglichkeit, um sich vor beiden zu schützen.

Die Akzeptanz von MISRA-C ist für Automobilhersteller und deren Zulieferer eine wichtige Voraussetzung, um wettbewerbsfähig zu bleiben – und das aus mehreren Gründen.

Immer mehr Angriffspunkte im Auto

So ist aus der Sicherheitsperspektive betrachtet jede vernetzte, eingebettete Komponente in einem Fahrzeug ein potenzieller Brückenkopf für Hacker, um andere vernetzte Geräte und Komponenten anzugreifen. Innerhalb des Software-Systems eines Fahrzeugs stellt die primäre Diagnoseschnittstelle das ergiebigste Ziel aller möglichen Angriffspunkte dar – allerdings erfordert ein Systemangriff dieser Art zunächst den tatsächlichen, physischen Zugriff auf den Port, und der ist nicht so einfach zu bekommen.

Vor diesem Hintergrund gibt es andere, weniger offensichtliche Angriffspunkte, die auch große Sicherheitsrisiken darstellen. So gibt es bereits erfolgreiche Angriffe über den CD-Spieler sowie über das Mobilfunknetz auf die elektronischen Systeme in Fahrzeugen. Ein modernes Auto bietet viele andere Eingangskanäle, einschließlich USB-Schnittstelle und Bluetooth, mit potenziellen Lücken für Angriffe.

Jede neue Software ein Risiko

In der Automotive-Industrie existiert eine große Menge bereits erprobter Software (Legacy Code). Allerdings kommen für zusätzliche Funktionen und Ausstattungsmerkmale auch immer mehr neue Programme hinzu. Neuer Code ist zwar oft so programmiert, dass er Standards wie MISRA-C bereits einhält, doch beinhaltet er dieselben Risiken wie jede neue Software: Weil er nicht einsatzerprobt ist wie Legacy Code, kann er potenzielle Fehler enthalten.

Software in Fahrzeugen unterliegt zudem einem bemerkenswert langen Entwicklungs-Lebenszyklus. Umso wichtiger ist es, dass Entwickler von Automotive Software die aktuellsten Qualitäts- und Sicherheitsstandards schnell übernehmen. Denn wenn der Code schließlich zum praktischen Einsatz kommt, kann er durchaus drei bis fünf Jahre alt sein und muss Angriffen standhalten, die während seiner Entwicklung noch unbekannt waren. Der einzige Weg, um ihn vor diesen zukünftigen Angriffen zu schützen, ist der Einsatz hoch entwickelter Analyse-Tools (Bild 1).