Zum Inhalt springen
AutoST by Zyberum GmbH
Menü
VergleicheFuzzing

Fuzzing vs. Schwachstellenscan am Steuergerät: Was welche Methode findet

Ein Schwachstellenscan stellt dem Steuergerät bekannte Fragen; Fuzzing schickt fehlerhafte Eingaben und wartet auf Crashes. Warum ISO/SAE 21434 beides empfiehlt.

Aktualisiert Diese Seite als Markdown

Kurz gesagt

Schwachstellenscan am Steuergerät heißt strukturiertes Prüfen mit gültigen Requests: Welche Sessions, Services und DIDs antworten, hat SecurityAccess einen Zähler, ist eine DID schreibbar. Er findet Konfigurations- und Zugriffsschwächen und dauert Minuten. Fuzzing heißt fehlerhafte, überlange und zufällige Eingaben über Stunden, mit Blick darauf, ob das Steuergerät resettet, hängt oder Fehlercodes wirft. Es findet Implementierungsfehler in Parsern und Stacks. ISO/SAE 21434 [RC-10-12] empfiehlt beides für Komponententests.

Was ist der Unterschied?

Ein Schwachstellenscan schickt dem Steuergerät Requests, die es versteht, und liest die Antworten. 10 03, um die Extended Session zu öffnen, 22 F1 90, um die VIN zu lesen, 27 01, um einen Seed anzufordern, jeden Service Identifier in jeder Session, und das Steuergerät antwortet positiv oder mit einem Negative Response Code aus ISO 14229-1 Anhang A. Der Scan interpretiert diese Codes: 0x7F sagt, der Service existiert in einer anderen Session, 0x33 sagt, er liegt hinter SecurityAccess, 0x31 sagt, der Identifier ist unbekannt. Die Schwächen, die er findet, drehen sich um das Erlaubte: ein Service ohne Session-Wechsel erreichbar, eine schreibbare Identifikations-DID, ein Seed/Key-Tor ohne Versuchszähler, eine XCP-Schnittstelle, die niemand anlassen wollte.

Fuzzing schickt dem Steuergerät Eingaben, die es nicht erwartet. Ein ReadDataByIdentifier mit 120 Bytes Payload, ein ISO-TP First Frame, der 4.000 Bytes ankündigt und nie liefert, zufällige Service Identifier, ein TransferData-Block mit dreifacher vereinbarter Größe, zufällige CAN-Frames auf den Arbitration-IDs aus deiner DBC. Dann beobachtet es: Antwortet das Steuergerät noch auf TesterPresent, hat sich die DTC-Zahl geändert, ist eine Antwort ausgeblieben. Die Schwächen, die es findet, drehen sich um den Bau des Steuergeräts: Pufferbehandlung, Längenprüfungen, Zustandsmaschinen, die hängen bleiben, Watchdog-Resets.

Beides ist automatisiert. Der Unterschied ist die Frage: “Ist das erlaubt?” gegenüber “Geht das kaputt?”.

Nebeneinander

Schwachstellenscan (Enumeration und Prüfungen)Fuzzing
FindetServices in der falschen Session, lesbare und schreibbare DIDs, fehlende SecurityAccess-Zähler und -Verzögerungen, konstante Seeds, offenes XCP/CCP, DoIP-Routing zu gesperrten Steuergeräten, offene SOME/IP-ServicesResets und Hänger bei fehlerhaften ISO-TP-Frames, Crashes bei überlangen Payloads, Services, die nicht mehr antworten, Fehlercodes durch schlechte Eingaben, Parser-Fehler in der CAN-Signalverarbeitung
ÜbersiehtImplementierungsfehler in Parsern und Stacks; alles, was nur ungültige Eingaben auslösenZugriffs- und Designschwächen; ein perfekt robustes Steuergerät mit schreibbarer Seriennummer besteht jeden Fuzzing-Lauf
Wer macht esTest-Engineers aus dem Dashboard; liest und klassifiziertTest-Engineers aus dem Dashboard; braucht einen Rückweg für das Steuergerät
PrüfstandszeitMinuten pro Session; etwa zehn Minuten pro Session für einen vollständigen DID-DurchlaufStunden pro Kampagne; ein kurzer Lauf pro Build, ein langer pro Release
KostenTeil der AutoST-Lizenz pro Komponente; freie Tools gibt esTeil der AutoST-Lizenz pro Komponente; freie Fuzzer gibt es, aber Reproduzierbarkeit und Crash-Erkennung sind dann deine Aufgabe
Passt in den Release-ZyklusJa, schnell genug für jeden BuildJa mit geseedeter, begrenzter Kampagne; ein langer Lauf gehört auf den Release-Branch
Verlangt vonISO/SAE 21434 [RC-10-12] empfiehlt Schwachstellen-Scans für Komponententests; UN R155 verlangt Tests der umgesetzten MaßnahmenISO/SAE 21434 [RC-10-12] empfiehlt Fuzz-Testing; in der Praxis ab CAL 2 für Kommunikationsschnittstellen erwartet
ErgebnisEine Karte von Sessions, Services und DIDs mit Risiko-Flags und einem Score von 0 bis 10; PDF und SARIFFindings mit Iteration, Payload, Monitor und Payload-Historie, per Seed wiederholbar; PDF und SARIF

Nimm den Schwachstellenscan, wenn

  • du das Steuergerät zum ersten Mal siehst. Die Enumeration ist nicht-destruktiv und sagt dir, was da ist, bevor du irgendetwas darauf wirfst.
  • die Frage Konfiguration ist: Hat der Zulieferer die Programming Session gesperrt, ist der Identifikationsbereich nur lesbar, sperrt SecurityAccess nach drei falschen Keys. Das sind die Findings, die wir an echten Prüfständen am häufigsten sehen, und keines davon braucht Fuzzing.
  • das Steuergerät teuer oder schwer wiederherzustellen ist. Ein reiner Lesescan ändert keinen Zustand; Fuzzing kann das.
  • du ein Ergebnis in Minuten brauchst, zum Beispiel als Gate bei jedem Build.

Nimm Fuzzing, wenn

  • das Steuergerät komplexe Eingaben parst: Multi-Frame-ISO-TP, TransferData-Blöcke, DoIP-Nachrichten, SOME/IP-Payloads, DBC-definierte Signale mit Prüfsummen und Zählern. Dort wohnen Längen- und Zustandsfehler.
  • es Feldrückläufer oder Vorfälle auf Testfahrten gab, bei denen Steuergeräte resetteten oder verstummten und niemand es reproduzieren konnte. Ein geseedeter Fuzzer mit Payload-Historie ist der Weg, so etwas zu finden.
  • das Steuergerät CAL 2 oder höher hat und dein Assessor nach Fuzz-Tests der Kommunikationsschnittstellen fragen wird, wie [RC-10-12] es empfiehlt.
  • das Steuergerät jeden Scan bestanden hat. Eine saubere Karte sagt nichts über Robustheit.

Beides zusammen

Es sind zwei Hälften des Komponententests, und ISO/SAE 21434 nennt sie in einem Satz. Die praktische Reihenfolge ist: erst scannen, dann fuzzen. Die Enumeration gibt dem Fuzzer seine Ziele (die Sessions, die sich öffnen, die Services, die antworten, die DIDs, die Schreibzugriffe annehmen) und sagt dir, was du ausschließen musst, damit du das Steuergerät nicht in Iteration eins resettest. In AutoST laufen beide von derselben Komponente aus und landen im selben Fix Plan, sodass eine schreibbare DID und ein Crash auf demselben Service als das erscheinen, was sie sind: zwei Findings auf einer Angriffsfläche.

Keines von beiden findet Logikfehler oder verkettete Angriffe. Dafür, und für den Seed/Key-Algorithmus selbst, brauchst du weiterhin einen Menschen, der die Firmware liest.

FAQ

Häufig gestellte Fragen

Ist UDS-Enumeration ein Schwachstellenscan?

Ja, im Sinn von Steuergeräten. Die Enumeration schickt gültige Requests (Session Control, jeden Service Identifier, DID-Lesezugriffe) und klassifiziert die Negative Response Codes. Der Scan-Teil ist die Interpretation: ein Service, der in der Default Session antwortet, aber Extended bräuchte, eine DID, die ohne SecurityAccess schreibbar ist, ein Seed, der sich wiederholt. Keine Eingabe ist fehlerhaft, und geschrieben wird nur, wenn du Schreibtests aktivierst.

Kann Fuzzing das Steuergerät beschädigen?

Es kann das Steuergerät in einen Fehlerzustand bringen, resetten oder in seltenen Fällen so hinterlassen, dass es nicht mehr bootet. Fuzzing gehört ausschließlich auf den Prüfstand, nie in ein Fahrzeug im Verkehr, und du solltest vorher einen Rückweg wie ein flashbares Image haben. Ein Schwachstellenscan mit reinen Leseprobes trägt ein viel geringeres Risiko.

Wie lange sollte ein Fuzzing-Lauf dauern?

Lang genug, um die relevanten Services und Längen abzudecken, also Stunden statt Minuten. Weil AutoST-Läufe geseedet sind, kannst du bei jedem Build eine kurze Smoke-Kampagne und pro Release eine lange Kampagne fahren und jeden Crash exakt wiederholen.

Quellen

Passende Seiten

Sieh es auf deinem ECU

Unsicher, was dein ECU-Programm braucht?

Beschreib deine Steuergeräte, deinen Prüfstand und deinen Release-Takt in einem 15-Minuten-Gespräch. Du bekommst eine klare Empfehlung, mit oder ohne AutoST.

  • Eine Empfehlung, kein Verkaufsgespräch
  • Was du automatisierst und was der Pentest macht
  • Kostenlos und unverbindlich
Tom Zaubermann

Deine Demo ist mitTom ZaubermannGründer von Zyberum, früher Leiter des VW InCar Security Testing Lab

Bereits im Einsatz bei Tier-1-, Tier-2-Zulieferern und OEMs. Referenzen auf Anfrage.

Ruf uns an: +49 176 439 17074automotive@zyberum.com

Oder schreib uns eine Nachricht

Wir antworten innerhalb eines Werktags.

Ruf uns anEmpfehlung holen

Wähle einen Termin, der dir passt

In neuem Tab öffnen