Der Blätterkatalog benötigt Javascript.
Bitte aktivieren Sie Javascript in Ihren Browser-Einstellungen.
The Blätterkatalog requires Javascript.
Please activate Javascript in your browser settings.
Autonomes Fahren | Tools 04 2020 Elektronik automotive 27 Sicherheit muss im Automotive-Bereich bereits in der Entwicklungsphase eine große Rolle spielen Das betrifft zum Beispiel die Frage woher der Input eines Systems kommt Wie wichtig das ist zeigen die folgenden Vorkommnisse aus der Vergangenheit ➔ 2010 Autos von Toyota beschleunigen unbeabsichtigt Neben der Fußmatte und Bedienfehlern wird das ETCS Electronic Throttle Control System als eine Ursache erkannt Der Gesamtschaden für das Unternehmen wird auf 5 Mrd US-Dollar geschätzt ➔ 2015 Zwei Sicherheitsforschern gelingt es einen Jeep über das Uconnect-System aus der Ferne zu übernehmen und dabei unter anderem den Motor auszuschalten Ihre Werkzeuge Ein Notebook und ein Mobiltelefon Der genutzte Angriffsvektor kam auch bei Fahrzeugen anderer Hersteller zum Einsatz zum Glück nur als ProofofConcept ➔ 2016 Eine Gruppe chinesischer Sicherheitsforscher nimmt aus mehreren Kilometern Entfernung die Kontrolle über ein Model Svon Tesla In diesem Fall zielt der Angriff auf den eigentlich als sicher geltenden CANBus ab Aus diesen Beispielen lassen sich zwei Erkenntnisse ableiten Erstens sind Angriffe auf Kraftfahrzeuge nicht neu Es existieren auch außerhalb des Testlabors potenziell folgenreiche Angriffsmöglichkeiten Und zweitens ist kein Hersteller davor gefeit weder die Traditionsschmieden noch die disruptiven Marktneulinge Es fällt zudem auf dass in allen beschriebenen Beispielen die gleiche Methodik zum Erfolg für die Angreifer führte Tainted Data Daten die einer Anwendung als Input dienen die aber nicht aus einer vertrauenswürdigen Quelle stammen und die deswegen ein leichtes Ziel für Manipulationen sind Die IT-Sicherheit ist also eine zentrale Herausforderung in der AutomotiveEntwicklung egal ob Steuerungssysteme oder Entertainment-Komponenten entwickelt werden Das betrifft in erster Linie die Software Denn für die Sicherheit und Zuverlässigkeit ist zunächst einmal die Qualität des Codes entscheidend Die grundsätzliche Hürde dabei ist nicht fehlendes Knowhow der Entwickler Es sind zunächst Schwächen der hauptsächlich eingesetzten Sprache C Cstammt aus der Vor-InternetZeit als Sicherheit und Konnektivität kein Thema waren Leider ist die Definition woraus ein zulässiges C-Programm besteht der Flexibilität zuliebe sehr liberal ausgelegt Die Compiler können viele Fehler nicht aufdecken Zudem existieren zahlreiche Mehrdeutigkeiten die die Compiler basierend auf unterschiedlichen Interpretationen des Standards auflösen müssen So sind C-Programme sehr anfällig für Speicherzugangsfehler wie Buffer Overruns und Null-Pointer-Referenzierungen Das betrifft den größten Teil der Entwickler im Embedded-Umfeld Laut dem Datenanbieter Statista nutzen 82 Prozent aller Embedded-Systems-Anbieter Czumindest als eine von mehreren Sprachen in ihren Projekten C++ ist ebenso weit verbreitet mit steigender Tendenz Bild 1 Angriffsfläche klein halten Die meisten Fehler in Classen sich für Angriffe ausnutzen In der Regel muss ein Angreifer dazu Eingabewerte des angegriffenen Programms die zum Beispiel von Sensoren anderen Anwendungen oder auch von Benutzern kommen für seine Zwecke manipulieren Es muss also sichergestellt werden dass ein Angreifer keine manipulierten Daten einschleusen kann Dabei hilft die Tainted-Data-Analyse Grundsätzlich geht man davon aus dass Daten aus potenziell riskanten Quellen tainted also verschmutzt sind Erst wenn die Daten aus solchen Quellen validiert wurden können sie als sauber und zuverlässig gelten Welche Quellen potenziell risikoreich sind hängt davon ab wie das spezifische System genutzt wird Grundsätzlich sind Nutzereingaben als möglicherweise gefährlich anzusehen ebenso von extern übertragene Daten Auch der Output von Sensoren oder anderen Systemen die mit dem Zielsystem kommunizieren sollte zunächst als tainted betrachtet werden Denn diese Systeme befinden sich nicht unbedingt im Einflussbereich des eigenen Entwicklerteams Das heißt So gut wie alle Daten die durch die Automotive-Systeme fließen könnten manipuliert und damit riskant sein Ein einfaches Beispiel für einen Fehler der für einen Angreifer mit Tainted Data zu attackieren wäre ist diese kleine Prozedur void config void { char buf 100 int count … strcpy buf getenv CONFIG … } Bild 1 Cund C++ sind in der Embedded-Entwicklung nach wie vor die am weitesten verbreiteten Programmiersprachen Bild Statista