Überblick
Der ThreatZ TestBench Agent (ArchitTestClient v2.0.0) ist ein produktionsreifer, Python-basierter Automotive-Cybersicherheits-Testclient, der direkt auf Ihrer Teststandhardware läuft. Er führt Sicherheitskampagnen gegen reale Steuergeräte und Fahrzeugnetzwerke aus — nahtlos koordiniert von der ThreatZ-Plattform über HTTP/REST (Protokoll V2). Der Agent empfängt Kampagnenaufträge über Command Polling, führt Tests mit protokollspezifischen Fuzzern und Hardware-Adaptern aus und meldet Ergebnisse mit vollständiger Artefaktsammlung zurück.
Der TestBench Agent ist Teil des Validierung & Testing Moduls. Während das Modul den gesamten Traceability-Backbone verwaltet — Testfälle mit TARA-Anforderungen verknüpft, Abdeckung verfolgt und Evidenz sammelt — ist der TestBench Agent die Ausführungs-Engine, die das Testen auf die Hardware bringt.
Architektur
Der Agent folgt einer modularen Architektur mit klarer Aufgabentrennung:
| Modul | Zweck |
|---|---|
| AuroraLink | Serverkommunikation — Registrierung, Polling, Statusupdates, Artefakt-Upload |
| Campaign Runner | Kampagnen-Lebenszyklus (Queued → Initializing → Running → Succeeded/Failed/Killed) |
| Engine Framework | Protokoll-Fuzzer, Hardware-Adapter, Sicherheitsmechanismen |
| ARXML Parser | Fahrzeugarchitektur-Parsing (canmatrix-basiert, Multi-Cluster) |
| Scriptor | CAPL-Codegenerierung aus Testdefinitionen |
| Report Manager | FuzzReport XML/JSON-Generierung |
| Trace Manager | BLF/ASC/PCAP-Trace-Dateiverwaltung |
| Pipeline Manager | Test-Pipeline-Orchestrierung |
| ODX Parser | Diagnosedatenextraktion aus ODX/PDX-Dateien |
Unterstützte Protokolle (36+)
Der TestBench Agent liefert spezialisierte Fuzzer für 36+ automotive Kommunikationsprotokolle. Jeder Fuzzer verwendet CWE-bewusste Mutationsstrategien, die auf spezifische Schwachstellenklassen abzielen.
Fahrzeug-Feldbusse
| Protokoll | Fähigkeiten |
|---|---|
| CAN 2.0 | 11-Bit/29-Bit IDs, bis zu 8-Byte-Payload, Bitraten-Manipulation |
| CAN FD | Erweiterte Payload (bis 64 Bytes), duale Bitrate (nominal + Daten), BRS/ESI-Angriffe, DLC-Grenztests |
| CAN XL | CAN-Protokollvarianten der nächsten Generation |
| LIN | Schedule-basierte Nachrichteninjektion |
| FlexRay | Dynamischer Slotzugriff |
Diagnoseprotokolle
| Protokoll | Fähigkeiten |
|---|---|
| UDS (ISO 14229) | Sitzungsverwaltung, Security Access, DID-Lesen/-Schreiben, Routine Control, ECU-Reset |
| ISO-TP (ISO 15765) | Transportprotokoll für Multi-Frame-Diagnose |
| DoIP (ISO 13400-2) | Fahrzeugidentifikationsangriff, Routing-Activation-Hijacking, Session-Übernahme |
| ODX/PDX | Diagnosedatenextraktion und Service-Definitionsparsing |
Automotive Ethernet
| Protokoll | Fähigkeiten |
|---|---|
| SOME/IP | Service-/Methoden-Discovery, Payload-Mutation, Response-gesteuertes Fuzzing |
| Ethernet | MAC/IP-Konfiguration, TCP/UDP-Mutation, VLAN-Tag-Unterstützung |
| DDS | Data Distribution Service Fuzzing |
| PTP | Precision Time Protocol-Angriffe |
Weitere Protokolle
CANopen, J1939, CCP/XCP, SecOC, DLT, BLE, Cellular, CHAdeMO, NFC, ISO 15118 (V2G), GNSS, CCS, NACS, GBT, E2E-Schutz
Testtypen
Fuzzing-Kampagnen
- Zufällige, abdeckungsgesteuerte, grammatikbasierte und mutationsbasierte Strategien
- CWE-bewusste Mutationsformung (20+ CWEs pro Protokoll)
- Corpus-Management mit Minimierung
- Response-gesteuertes adaptives Fuzzing
- Aktive CWE-Zielrotation (10-Sekunden-Intervalle)
Penetrationstests
- STRIDE-klassifizierte Angriffsvektoren (Spoofing, Tampering, Repudiation, Information Disclosure, DoS, Elevation of Privilege)
- CAN-Frame-Injektion mit beliebigen IDs und Payloads
- Gateway-Routing-Tabellen-Manipulation
- DoIP-Session-Hijacking und Authentifizierungsumgehung
- Diagnostische Power-Mode-Manipulation
Robustheitstests
- Buslast-Stresstests (bis zu 90%+ Last)
- Fehlerrahmengenerierung und Flut-Erkennung
- Erweiterte Payload-Grenztests
- CAN/CAN-FD-Übergangstests
UDS-Diagnosetests
- ECU Reset (0x10), Read DID (0x22), Write DID (0x2E)
- Security Access (0x27), Routine Control (0x31)
- Write Memory Address (0x3D), I/O Control (0x2F)
- Sitzungsverwaltung (Default, Programming, Extended)
Compliance- & Systemtests
- Sicherheits-Compliance-Verifizierung (ISO 26262, SOTIF)
- Protokoll-Compliance-Validierung
- Multi-ECU-Koordination und komplexe Angriffssequenzen
- Vehicle-in-the-Loop-Integration
Hardware-Abstraktionsschicht
Der Agent unterstützt mehrere Hardware-Hersteller über eine einheitliche, herstellerneutrale Abstraktion — wechseln Sie die Hardware ohne Änderung Ihrer Testkonfiguration.
| Hersteller | Unterstützte Geräte |
|---|---|
| Vector Informatik | CANoe, CANalyzer, VN-Serie Adapter |
| Peak Systems | PCAN-USB, PCAN-USB Pro FD |
| Kvaser | Leaf, Memorator, USBcan |
| Intrepid | neoVI, ValueCAN |
| SocketCAN | Linux-native CAN-Schnittstellen |
| Simulation | Virtuelle Schnittstellen für Offline-Tests |
Die Hardware-Gesundheitsüberwachung verfolgt Verbindungsqualität, Latenz pro Frame, Frame-Verlusterkennung und Leistungsverschlechterungsbewertung mit Gesundheitsstufen: Gesund, Warnung, Kritisch.
5-Stufen-Sicherheitseskalation
Eingebaute Sicherheitsmechanismen überwachen Buslast, Fehlerrahmenraten und ECU-Heartbeat in Echtzeit. Bei Schwellenwertüberschreitungen eskaliert der Agent automatisch:
| Stufe | Aktion | Auslöser |
|---|---|---|
| 1 — Drosseln | Injektionsrate reduzieren | Warnschwelle angenähert |
| 2 — Pause | Senden stoppen, nur überwachen | Warnschwelle überschritten |
| 3 — Soft Reset | ECU-Soft-Reset über UDS | Fehlerrate anhält |
| 4 — Hard Reset | Power-Cycle über Teststand-Controller | ECU reagiert nicht |
| 5 — Abbruch | Kampagne sofort beenden | Kritische Sicherheitsgrenze überschritten |
Überwachungsfähigkeiten umfassen Buslastüberwachung (Warnung bei 75%, kritischer Kill bei 90% — konfigurierbar), Fehlerrahmenerkennung (>10 Fehler/Sekunde Standard), ECU-Heartbeat-Überwachung (5-Sekunden-Timeout), manueller Kill-Switch über GUI und benutzerdefinierte Kill-Ausdrücke für spezielle Sicherheitsanforderungen. Alle Sicherheitsereignisse werden mit Typ, Schweregrad, Zeitstempel, Iterationsindex und detailliertem Kontext aufgezeichnet.
CWE-gesteuerte Angriffsintelligenz
Jede Kampagne zielt auf spezifische Common Weakness Enumerations ab, die dem getesteten Protokoll zugeordnet sind:
- 20+ CWE-Ziele pro Protokoll (z.B. CWE-120 Buffer Overflow, CWE-1284 Improper Validation of Specified Quantity in Input)
- Per-CWE-Formungsregeln definieren, wie Frame-Felder mutiert werden, um jede Schwachstellenklasse anzugreifen
- Angriffs-Preset-Stufen: Quick (Schnellscan), Standard (ausgewogen), Full (umfassend)
- Per-CWE BLF-Trace-Dateien für Audit-Granularität — separate Trace-Aufzeichnung pro Schwachstelle
- Finding-Korrelation: Jedes Finding wird dem auslösenden CWE zugeordnet
CANoe- & CAPL-Integration
- CANoe-Konfigurationsladen: Direktes Laden von
.cfg-Dateien für Simulationsumgebungen - CAPL-Skriptgenerierung: Das Scriptor-Modul konvertiert DSL-Testdefinitionen in ausführbaren CAPL-Code
- Smart CAPL-Generator: Kontextbewusste Skriptgenerierung, abgestimmt auf ARXML-Signaldefinitionen
- Report-Parsing: Extrahiert Ergebnisse aus CANoe-Testberichten (
.vtestreport-Format) - Output-Discovery: Automatisches Scannen von CANoe-Ausgabeverzeichnissen zur Artefaktsammlung
ARXML-Parsing
Der Agent verwendet einen canmatrix-basierten Parser mit Multi-Cluster-ARXML-Unterstützung:
- Extrahiert ECU-Liste mit TX/RX-Frame-Zuordnungen, Frames mit Arbitrierungs-IDs und DLC, Signale mit Typen/Min/Max/Skalierung
- NM-Frame-Erkennung und -Isolierung pro Ziel-ECU
- Datenbanknamen-Ableitung mit CAPL-Namespace-Kompatibilität
- Multi-Bus-Unterstützung — verarbeitet ARXML-Dateien mit mehreren CAN-Clustern mit Deduplizierung nach Frame-ID
Test-Ausführungs-Workflow
- Command Polling — Agent pollt die ThreatZ-Plattform alle 15 Sekunden nach neuen Befehlen
- Kampagneninitialisierung — ARXML laden, Ziel-ECU validieren, Protokolltyp auflösen, Angriffsvektoren laden
- Exploitation — FuzzScheduler mutiert Eingaben → Protokoll-Fuzzer formt für CWE-Ziele → Hardware-Adapter sendet
- Überwachung — Separater Überwachungsthread analysiert Antworten, erkennt Anomalien, verfolgt Timing
- Finding-Erkennung — Überwachte Daten mit Angriffsvektor korrelieren → Findings mit Schweregrad und CWE-Zuordnung generieren
- Artefaktsammlung — BLF-Traces, Logs, PCAP-Aufzeichnungen, Berichte → SHA-256-Integritäts-Hashing
- Berichtgenerierung — FuzzReport (XML/JSON) mit Zielübergängen, Findings, Abdeckungsdaten, BLF-Referenzen
- Upload & Abschluss — S3 Presigned URL Upload mit Fortschrittsverfolgung → Statusupdate an Plattform
Kampagnenzustände: Queued → Initializing → Running → Paused → Succeeded / Failed / Killed
Service-Pack-Ausführung
Service Packs ermöglichen benutzerdefinierte Testszenarien über die integrierten Protokoll-Fuzzer hinaus:
- CREATE_SCENARIO: Plattform sendet Pack-Definition; Agent erstellt Ordnerstruktur mit Batch-/Shell-Stub
- Konfiguration:
config.json,tool_config.json,evidence_policy.json,safety_policy.json - RUN_SERVICE_PACK: Szenario ausführen, Bus-Traffic aufzeichnen (BLF/ASC/PCAP), Logs sammeln
- Evidenzsammlung: Richtlinienbasierte Artefaktfilterung und -sammlung
- Upload: S3 Presigned URL Upload mit Manifest und Integritätsverifizierung
Artefaktsammlung
Jede Kampagne erzeugt ein vollständiges Evidenzpaket:
| Artefakttyp | Format | Zweck |
|---|---|---|
| Bus-Traces | BLF (Binary Logging Format) | Vector-Standard CAN-Trace-Aufzeichnung |
| Text-Traces | ASC (Klartext) | Menschenlesbare CAN-Trace |
| Netzwerk-Captures | PCAP | Ethernet/DoIP/SOME-IP-Verkehr |
| Ausführungslogs | Klartext | Agent-Laufzeitlogs, Fehler, Warnungen |
| Testberichte | FuzzReport XML/JSON | Strukturierte Kampagnenergebnisse mit Findings |
| CANoe-Berichte | .vtestreport | CANoe-Testausführungsergebnisse |
| Generierte Skripte | CAPL | Generierte Test-Automatisierungsskripte |
| Manifeste | JSON | SHA-256-Integritäts-Prüfsummen pro Artefakt |
Alle Artefakte werden über S3 Presigned URLs hochgeladen, mit Multipart-Unterstützung für Dateien über 5 MB. Serverseitige Verifizierung bestätigt SHA-256-Integrität.
GUI & Headless-Betrieb
GUI (Flet-basiert)
- Echtzeit-Kampagnenüberwachungs-Dashboard
- CWE-Ziel-Rotator mit 10-Sekunden-Zyklus
- Fuzz-Scope-Tab zur Auswahl von Ziel-Frames/-Signalen
- Überwachungs-Tab für Modus-, Fenster- und Toleranzkonfiguration
- Hardware-Gesundheits- und Verbindungsstatusanzeigen
- Projektmanager für Multi-Projekt-Umschaltung
- Dark/Light-Theme-Autoerkennung
Headless-Modus
- Vollständige Kampagnenausführung ohne GUI
- Geeignet für CI/CD-Integration und automatisierte Regressionstests
- Konfiguration über
.envundproject_config.json - Alle Ergebnisse werden programmatisch an die Plattform gemeldet
Kommunikation mit der ThreatZ-Plattform
Der Agent nutzt HTTP/REST (Protokoll V2) — keine WebSocket-Abhängigkeit:
| Endpunkt | Methode | Zweck |
|---|---|---|
/api/v2/agent/register | POST | Agent-Registrierung mit maschinenbasiertem Identifikator |
/api/v2/agent/health | POST | Heartbeat (30-Sekunden-Intervall) mit Status und Fähigkeiten |
/api/v2/agent/commands/poll | GET | Pull-basierte Befehlszustellung (15-Sekunden-Polling) |
/api/v2/agent/status | POST | Kampagnenfortschritt, Testergebnisse, Finding-Berichte |
Authentifizierung über JWT-Tokens mit maschinenbasierten Identifikatoren. Multi-Tenant-Unterstützung über Tenant-ID-Tracking. Artefakt-Upload nutzt S3 Presigned URLs mit SHA-256-Integritätsverifizierung und Multipart-Upload für Dateien über 5 MB.
Integration mit anderen Säulen
| Richtung | Feature | Mechanismus |
|---|---|---|
| Eingehend | Kampagnenaufträge | HTTP Command Polling (15-Sekunden-Intervall) |
| Eingehend | Protokollpakete und Angriffsvektoren | Mit Kampagnenkonfiguration heruntergeladen |
| Eingehend | ARXML und Projektkonfiguration | In Kampagnen-Payload enthalten |
| Ausgehend | Kampagnenfortschritt | HTTP-Statusupdates |
| Ausgehend | Test-Findings | Strukturierte Finding-Berichte mit CWE-Korrelation |
| Ausgehend | Artefakte | S3 Presigned URL Upload mit SHA-256-Verifizierung |
| Ausgehend | Gesundheitsstatus | Heartbeat alle 30 Sekunden mit Fähigkeiten |
| Ausgehend | Sicherheitsereignisse | Aufgezeichnet und mit Kampagnenergebnissen hochgeladen |