Themenbild Testing

Testing: Automotive Security auf dem Prüfstand

In Zeiten zunehmend vernetzter Fahrzeuge mit immer mehr automatisierten Fahrfunktionen ist der wirksame Schutz des Fahrzeuges vor unerlaubtem Zugriff, Manipulation und dem Ausspähen von Daten von fundamentaler Bedeutung. Bei OEMs und Zulieferern wird umfangreiches Security Testing daher mehr und mehr zum Standardrepertoire eines vorbeugenden Schutzes sensibler Systeme im Fahrzeug.

Idealerweise folgt das Security Testing einer ganzheitlichen Betrachtungsweise. D.h. das Testing sollte alle beteiligten technischen Systeme im und um das Fahrzeug mit einbeziehen (Steuergeräte, Netzwerkkomponenten, Schnittstellen, angebundene Apps und Services etc.). Und es sollte über den gesamten Lebenszyklus und die gesamte Lieferkette hinweg erfolgen.

Testing Lifecycle

Bild 1: Security Testing muss den gesamten Produktlebenszyklus begleiten.

Grundsätzlich lässt sich beim Security Testing zwischen automatisierten und manuellen Testverfahren unterscheiden. Dabei kann das eine das andere gut ergänzen: Automatisierte Tests etwa sind schnell durchzuführen, beliebig oft wiederholbar, lassen sich leicht in eine feste Test-Routine einfügen und sind kosteneffizient. Auch lassen sie sich gut in den Entwicklungsprozess integrieren, um Schwachstellen möglichst früh identifizieren und beheben zu können. Jedoch sind automatisierte Testing-Tools meist blind gegenüber individuellen kundenspezifischen Anpassungen – und gerade die sind im Automotive-Bereich gang und gäbe. Auch bei logischen Fehler im Programmcode, komplexen Angriffspfade oder Angriffen auf Hardware stoßen automatisierte Tests an ihre Grenzen. In diesen Fällen sind manuelle Tests durch Security Experten eine sinnvolle und notwendige Ergänzung.

Vielfältige Automotive-Security-Testverfahren

Unabhängig davon gibt es eine ganze Reihe von Security-Testmethoden, die im Automotive-Bereich Anwendung finden: Penetrationstests, Code Audits, funktionale Security-Tests, Fuzzing-Tests, Vulnerability Scans und Seitenkanalanalysen.

  • Penetrationstest

Bei einem Penetrationstest, kurz Pentest, prüft der Tester das Zielsystem mit all seinen Bestandteilen und Anwendungen, indem er versucht – ähnlich einem Angreifer - die Abwehrmechanismen des Systems zu identifizieren und zu überwinden. Im Automotive-Bereich werden mittels Pentests typischerweise einzelne Steuergeräte, ein Verbund von Steuergeräten oder das gesamte Fahrzeug auf ihre IT-Sicherheit hin getestet. Solch ein Test fördert Schwachstellen oder auch potentielle Fehler in der Implementierung zutage, die z.B. auf eine fehlerhafte technische Umsetzung, Komponenten von Drittanbietern, dem Zusammenwirken von Systemkomponenten oder Abweichungen vom Konzept zurückzuführen sind.

Pentesting

Bild 2: Pentests umfassen einen mehrstufigen, iterativen Prozess.

  • Code Audit

Beim Code Audit sucht der Security-Tester auf Quellcode-Ebene nach Programmierfehlern oder Sicherheitslücken, die ein Angreifer ausnutzen könnte. Besonderes Augenmerk gilt dabei dem korrekten Verhalten von implementierten Security-Maßnahmen sowie Code, der mögliche feindliche Eingaben potenzieller Angreifer verarbeitet – also etwa Parser, Krypto-Implementierungen oder Communication Stacks (z.B. für Netzwerk, Funk, User Interface). Auch Fehler, die sich bei der Implementierung zeigen, wie beispielsweise die unsachgemäße Validierung von Eingaben, Speicherprobleme (z.B. Pufferüberläufe) können per Code Audit identifiziert werden.

  • Funktionaler Security-Test

Mittels funktionaler Security-Tests lässt sich prüfen, ob die Spezifikation der verwendeten Security-Mechanismen korrekt und vollständig umgesetzt ist. Überdies gilt es, die korrekte Integration auf die Zielplattform zu validieren, da diese sich oft anders als das Entwicklungssystem verhält oder zusätzliche Einschränkungen mitbringt. Die Integrationstests im Fahrzeugumfeld sind häufig überaus anspruchsvoll. So werden etwa bei typischen Busprotokollen wie CAN mitunter keine direkten Antwortnachrichten verschickt, wodurch schwer zu erkennen ist, ob die Testnachrichten korrekt verarbeitet wurden. Oft müssen mehrere Signale auf verschiedenen Fahrzeugbussen gleichzeitig erstellt und überwacht werden, z.B. zur Überprüfung eines Security-Protokolls oder einer Gateway-Filterfunktion.

  • Fuzzing-Test

Fuzzing ist ein leistungsstarkes Testverfahren, um die Robustheit des zu testenden Systems zu überprüfen. Mittels des Fuzzers, einer Testsoftware, wird dabei eine hohe Zahl untypischer oder ungültiger Eingaben generiert, um auf diese Art viele verschiedene interne Zustände des Systems zu durchlaufen. Ziel ist es, unerwartetes Fehlverhalten, Anomalien oder auch nicht vorgesehene Informationspreisgaben zu provozieren, die einen Cyber-Angriff auf das System ermöglichen könnten. Mit einem guten Fuzzing-Tool lassen sich nahezu alle Automotive-relevanten Protokolle abdecken: CAN, ISO-TP, UDS, USB, Bluetooth, WiFi und viele Ethernet-basierte Protokolle (IP, TCP, UDP, FTP, TLS etc.).

  • Vulnerability Scan

Beim Vulnerability Scanning werden die zu testenden Zielsysteme auf bekannte Verwundbarkeiten, Einfallstore und Sicherheitslücken hin untersucht. In aller Regel wird für solch einen Scan auf eine Datenbank mit den für das Testobjekt aktuell bekannten Schwachstellen zurückgegriffen. Der Scanner „tastet“ dabei das System entlang dieser Datenbank ab, scannt im Steuergeräteumfeld etwa das Unified Diagnostic Services-Protokoll (UDS) nach typischen Schwachstellen wie zu kurze Seed-Werte oder zu schwache Schlüssel-Berechnungsalgorithmen.

  • Seitenkanalangriffe

Bei Seitenkanalangriffen handelt es sich um ein Verfahren, bei dem Angriffe auf Komponenten der physischen Implementierung des Systems ausgeführt werden. Zu unterscheiden sind dabei passive und aktive Seitenkanalangriffe. Beim passiven Seitenkanalangriff (auch Seitenkanalanalyse) wird versucht, über die Messung physikalischer Eigenschaften des Zielsystems (z.B. Zeitverhalten, Stromverbrauch, elektromagnetische Abstrahlung) Rückschlüsse auf die interne Datenverarbeitung zu ziehen. Aktive Seitenkanalangriffe hingegen zielen darauf, das System absichtlich zu manipulieren. Typisch sind hier so genannte Fault-Injection-Angriffe, bei denen der Tester versucht, etwa mittels kurzfristiger Unterbrechung der Stromversorgung oder elektromagnetischer Injektion, Verarbeitungsfehler in einem Mikroprozessor zu provozieren.

Fazit: OEMs und Zulieferer benötigen Security-Teststrategie

Spätestens der kommende ISO/SAE 21434-Standard und die Regularien der UNECE WP.29 macht Security Testing für OEMs und Zulieferer zum unverzichtbaren Baustein eines Rahmenwerks aus Security-Maßnahmen, -Organisation und -Prozessen, mit dem sie in Zukunft die für Typgenehmigung ihrer Fahrzeuge notwendigen Security-Anforderungen erfüllen. Dabei gilt: Je frühzeitiger in Entwicklung und Lebenszyklus des Produktes IT-Sicherheitstests erfolgen, desto einfacher und kostengünstiger ist es, gefundene Schwachstellen wieder zu beheben. Gerade entwicklungsbegleitend ist vielfach ein kostenschonendes automatisiertes Testing möglich, bevor nachfolgend manuelle Tests weitere mögliche Angriffspfade identifizieren und schließen. Sicherheitslücken zu einem späten Zeitpunkt zu beheben – nach SOP, wenn das Fahrzeug erst einmal im Feld ist, schlimmstenfalls nach einer Cyberattacke – ist dagegen ungleich schwieriger und kostspieliger. Es drohen Rückrufaktionen und Haftungsansprüche. Automobilhersteller und -zulieferer sollten daher über eine Security-Teststrategie verfügen, die ein effizientes und zugleich in Art und Umfang standard- und gesetzeskonformes Security Testing gewährleistet.

SHARE THIS

Language:
ISO 9001:2015 Home