Zum Inhalt springen
Zyberum Cyber Security Firm
Menü
AutomotiveFuzzing

ECU-Fuzzing erklärt: Fehler in UDS, DoIP und SOME/IP finden

Wie Fuzzing für Steuergeräte funktioniert, welche Protokolle zählen, wie man Abstürze auf echter Hardware erkennt und was es für ISO/SAE 21434 bringt.

Zyberum Security Team · Veröffentlicht am · 7 Min. Lesezeit

Fuzz-Testing sendet fehlerhafte, unerwartete oder zufällige Daten an ein System und beobachtet, ob es versagt. Für Fahrzeugsteuergeräte ist es eine der wirksamsten Methoden, Speicherfehler und Robustheitsprobleme in Protokoll-Stacks zu finden, bevor Angreifer oder das Feld sie finden.

Warum Steuergeräte fuzzen?

Steuergeräte verarbeiten ständig nicht vertrauenswürdige Eingaben: Diagnoseanfragen über UDS, Service-Aufrufe über SOME/IP, Frames auf dem CAN-Bus, Pakete über Ethernet. Diese Parser sind meist in C oder C++ geschrieben, werden oft über mehrere Generationen wiederverwendet und selten mit feindlichen Eingaben getestet. Ein einziger Out-of-Bounds-Schreibzugriff in einem Diagnose-Handler kann zu einem Denial of Service führen, oder schlimmer, zu Codeausführung auf einem sicherheitsrelevanten Steuergerät.

Was gefuzzt wird

Schnittstelle Typische Ziele
UDS (ISO 14229) über CAN / DoIP Session Control, ReadDataByIdentifier, WriteDataByIdentifier, SecurityAccess, RoutineControl, Transfer-Dienste
DoIP (ISO 13400) Fahrzeugidentifikation, Routing Activation, Framing von Diagnosenachrichten
SOME/IP und SOME/IP-SD Service Discovery, Methodenaufrufe, Serialisierung von Payloads
CAN / CAN FD Signaldekodierung, ISO-TP-Segmentierung, Gateway-Routing
Funk (Bluetooth, WLAN) Pairing, Profile, Management-Frames auf IVI- und Telematikeinheiten

Drei Arten von Fuzzing

  1. Zufallsbasiertes („dummes“) Fuzzing: zufällige Bytes oder Frames. Günstig und schnell, gut für oberflächliche Parserfehler, doch die meisten Eingaben werden früh verworfen.
  2. Protokollbewusstes (generierungsbasiertes) Fuzzing: Eingaben werden aus einem Protokollmodell erzeugt, zum Beispiel gültige UDS-Service-IDs mit mutierten Subfunktionen und Längen. So werden deutlich tiefere Codepfade erreicht.
  3. Datenbankgestütztes Fuzzing: nutzt ODX/CDD-Diagnosedatenbanken, um zu wissen, welche DIDs und Routinen existieren, samt Datentypen und Längen, und mutiert genau diese. Das ist der effizienteste Ansatz, wenn Datenbanken verfügbar sind.

Fehler auf echter Hardware erkennen

Anders als beim Software-Fuzzing lässt sich an ein Steuergerät meist kein Sanitizer anhängen. Stattdessen nutzen Fuzzer Orakel:

  • Lebendigkeitsprüfungen: Das Steuergerät antwortet noch auf TesterPresent oder einen bekannten DID
  • Unerwartete Resets: Session-Abbrüche, ECU-Reset-Antworten, gesetzte DTCs
  • Timing-Anomalien: Antwortzeiten weit außerhalb der Baseline
  • Effekte auf Busebene: fehlende zyklische Botschaften des getesteten Steuergeräts
  • Spannungs- und Stromüberwachung am Prüfstand

Jede Anomalie sollte mit der exakten Eingabesequenz gespeichert werden, damit Entwickler sie reproduzieren und analysieren können.

Fuzzing als Teil des Release-Prozesses

Den größten Nutzen bringt Fuzzing, wenn es keine einmalige Aktion ist, sondern bei jedem Software-Release läuft:

  • Kampagnen am Prüfstand oder HIL in der CI ausführen
  • Findings pro Steuergerät und Softwareversion nachverfolgen
  • Ergebnisse mit der TARA und den Cybersecurity-Anforderungen verknüpfen, als Nachweis für ISO/SAE 21434

Genau diesen Workflow automatisiert unsere Security-Testsuite AutoST, mit Fuzzing-Engines für UDS, DoIP, SOME/IP und CAN/CAN FD. Für tiefergehende manuelle Analysen bietet unser Team Penetrationstests für Automotive.

FAQ

Häufig gestellte Fragen

Was ist Fuzz-Testing?

Fuzz-Testing (Fuzzing) ist ein automatisiertes Verfahren, das große Mengen ungültiger, unerwarteter oder zufälliger Eingaben an ein Programm oder Gerät sendet, um Abstürze, Hänger oder anderes Fehlverhalten auszulösen, das auf Bugs und mögliche Sicherheitslücken hinweist.

Ist Fuzzing nach ISO/SAE 21434 vorgeschrieben?

ISO/SAE 21434 nennt Fuzz-Testing als eine der empfohlenen Methoden zur Cybersecurity-Verifikation, neben funktionalen Tests, Schwachstellenscans und Penetrationstests. OEMs fordern Fuzzing-Berichte zunehmend von ihren Zulieferern.

Kann Fuzzing ein Steuergerät beschädigen?

Fuzzing kann ein Steuergerät in unerwartete Zustände versetzen, etwa indem Schreib- oder Flash-Routinen ausgelöst werden. Deshalb sollte es an Mustern auf dem Prüfstand, mit kontrolliertem Reset-Mechanismus und mit Vorsicht erfolgen, wenn Dienste wie RoutineControl oder RequestDownload im Scope sind.

AnrufenErstgespräch buchen

Such dir einen Termin aus

In neuem Tab öffnen