AI enhanced fuzzing

KI-gestütztes Fuzz Testing über den CAN-Bus

Frühzeitiges Security Testing gilt als wirksame Maßnahme, die Robustheit und Cybersicherheit von Fahrzeugsystemen präventiv zu überprüfen. Um Cyberattacken, unerlaubtem Zugriff und Manipulation vorzubeugen, greifen Security-Tester im Automotive-Bereich dabei immer häufiger auf Fuzz-Tests zurück: Sie senden per Fuzzer zufällig generierte Eingabedaten an das Zielsystem und beobachten, wie dieses reagiert (Bild 1).

 Fuzz testing

Bild 1: Beim Fuzz Testing werden zufällig generierte Eingabedaten an das Zielsystem (z.B. ECU) gesendet und dessen Verhalten beobachtet.

Diese Methode eignet sich über den gesamten Produktentwicklungszyklus hinweg, um Speicherfehler, Denial of Service (DoS), Programmabstürze oder extreme Ressourcennutzungsprobleme aufzudecken. An Bedeutung gewinnt das Fuzz Testing insbesondere auch mit Blick auf neue Regularien wie die UN R155, die den Nachweis angemessener Security-Maßnahmen während des Entwicklungsprozesses auf vielen Automobilmärkten weltweit zur Bedingung für die Zulassung neuer Fahrzeugtypen macht. Daher gilt es, das bislang begrenzte Angebot an spezialisierten, protokollbasierten Fuzzern für den Controller Area Network Bus (CAN-Bus) systematisch auszubauen.

Mit KI zu höherer Testabdeckung und Funktionalität

Allerdings stößt das Fuzz Testing bislang bei der Testfallabdeckung, aber auch bei Fehlererkennung, Dissektion und Ursachenanalyse mitunter an technische Grenzen. Der Schlüssel hier lautet: Künstliche Intelligenz (KI). Mit ihr lassen sich die Testabdeckung und Funktionen der Fuzz-Tests per CAN-Bus schnell und effizient auszuweiten. Mit KI lassen sich maßgebliche Teile des Prozesses – etwa die Herleitung von Testfällen, intelligente Modifizierung der Testfälle und Ableitung grundlegender Ursachen der identifizierten Probleme – automatisieren: Die Testdauer sinkt signifikant, die Ergebnisqualität nimmt zu.

Ein neuer modellhafter KI-gestützter Fuzzer von ESCRYPT ermöglicht es nun, dieses Potenzial systematisch zu heben. Entscheidende Vorbedingung für das effiziente Security Testing mit diesem Fuzzer sind KI-Training und Datenvorverarbeitung: So muss der Fuzzer zunächst in einer Art „Anlern-Prozess“ in die Lage versetzt werden, bestandene und nicht bestandene Testfälle (Pass/Fail) sicher zu identifizieren und zu kategorisieren. Dazu gilt es, die Daten so aufzubereiten, dass das KI-Modell sie effizient und effektiv verarbeiten kann. So müssen etwa die Daten zunächst normalisiert werden, bevor sie für das Anlernen des KI-Fuzzer-Modells eingesetzt werden. Dabei werden die Daten in ihrem Durchschnittswert so angepasst, dass sie sich leichter in Relation zu allen anderen Werten setzen lassen und sich die Ursachen fehlgeschlagener Testfälle leichter ergründen lassen. Insbesondere aber müssen das Parsen der Ausgabe-Logfiles und die Festlegung eines Verfahrens zur (Fehler-)Beurteilung jedes einzelnen Testfalls in das KI-Modell implementiert werden (Bild 2).

 KI-Modell Fuzzing

Bild 2: Das KI-Modell für den Fuzzer basiert auf zwei „gegnerischen“ neuronalen Netzwerken – einem Generator, der scheinbar „echte Daten“ erzeugt, und dem Diskriminator, der die Echtheit dieser Daten korrekt zu bestimmen sucht.

Integration der Künstlichen Intelligenz

Nach Vorverarbeitung der Daten wird das Fuzzer-Modell mit einer ausgewählten KI-Softwarebibliothek (z.B. TensorFlow, Keras, PyTorch und Pandas) generiert; es lässt sich nun trainieren und für die Vorhersage von Testfällen verwenden. Je nach Anzahl der geplanten Lerniterationen, Trainingsfunktionen, -bezeichnungen sowie Validierungssplits war die neue ESCRYPT-Lösung in bisherigen Testprojekten nach durchschnittlich 2-3 Stunden und 10.000 Lerniterationen in der Lage, verfeinerte Vorhersagen zu treffen und unbenannte Daten zu klassifizieren.

Die Integration des KI-Modells in einen herkömmlichen Fuzzer erfolgt, indem dieser in ein asynchrones Modell überführt wird: Anstatt wie üblich vorab, kann der KI-optimierte Fuzzer dann neue CAN-Fuzz-Testfälle „on-the-fly“ generieren. Im laufenden Betrieb analysiert der Fuzzer die Pass-/Fail-Testfälle: Für bestandene Testfälle führt er automatisch deren Umkehrung aus. Schlägt hingegen ein ausgeführter Testfall fehl, führt der Fuzzer zwecks Fehlervalidierung ähnliche Testfälle aus. Sämtliche Testdaten fließen dabei in eine Datenbank, die der Softwarebibliothek fortan als Basis zur Berechnung von Vorhersagen dient (Bild 3).

 AI enhanced fuzzing workflow

Bild 3: Im Workflow analysiert der KI-gestützte Fuzzer Testfälle, führt dann eine Umkehrung der bestandenen Testfälle durch und validiert etwaige Fail-Tests, indem er ähnliche Testfälle durchführt.

Effizientere Fuzz-Tests dank KI

ESCRYPT sieht Potenzial für weitere KI-Fuzzer-Modelle auf Grundlage ihrer spezifischen Protokollebene. KI-basierte Modelle ermöglichen dann beispielsweise, den Unified Diagnostic Service (UDS) qualifiziert zu fuzzen, beim Fuzzing das Wissen über die Architektur oder das Protokoll des zu testenden Zielsystems anzureichern oder eine Vielzahl von Zweigen effizient abzudecken und so vormals unentdeckte Softwarefehler und Exploits aufzuspüren. KI-gestützte Fuzz-Tests werden auf diese Weise helfen, den geforderten Nachweis angemessener Security-Maßnahmen im Entwicklungsprozess sehr viel umfassender und effizienter zu führen, als dies bisher möglich war.

SHARE THIS

Sprache:
ISO 9001:2015