SENTINEL ECU / SOFTWARE-IN-THE-LOOP
Vehicle security workbench
A live CAN network. Six attack scenarios. Every gateway decision recorded.
Profile and seed changed. Reset the simulation to apply them.
01 / PROTECTED NETWORK
Vehicle signal map
Network architectureESP32 → STM32 → ECU +
CAN traffic
Frames per simulated second
Security timeline
Gateway decisions and safety transitions
Inject an attack
Detection & safety
The Pi checks payload anomalies. Gateway rate limits handle flooding.
Independent safety task is standing by.
Recovery becomes available after a degradation and a quiet interval.
Frame inspector
Recent retained frames from the current session. Select a row to read the rule evidence.
Replay a recorded trace
Import up to 20,000 standard CAN frames (2 MB). Opens a new paused session.
| Time (model) | CAN ID | Signal / payload | Decision | Risk | Ground truth |
|---|
Frame evidence
Gateway rulebook
Local defenses remain active when the analyst is disconnected.
Validation suite
Reproducible synthetic tests of detection, resilience, and safety behavior.
Compare the Sentinel gateway with an ID-whitelist baseline on identical frames. This suite runs separately from your live simulation.
12 reproducible test cases
Run clean traffic, six attack families, analyst outages, and safety lifecycle checks. Every result includes its acceptance criteria.
Running validation scenarios
Generating seeded traffic and checking security and safety outcomes…
| Scenario | Outcome | Precision | Recall | False positives | Baseline recall |
|---|
How to interpret these results
Using the laboratory
Explore the Sentinel architecture through repeatable, inspectable experiments.
Run your first experiment
- 01Establish a baseline
Select Urban commute and seed 42, reset, then run. Watch normal signals cross the gateway.
- 02Inject a controlled attack
Choose a scenario, target, and duration. Observe blocked frames, threat evidence, and the safety response.
- 03Test independence
Disconnect the Raspberry Pi analyst. Gateway rules keep operating; the topology reflects the missing advisory path.
- 04Recover and inspect
Stop attacks and allow a quiet interval. Request recovery if eligible, then inspect frame decisions or export the run.
Reading the results
- Simulated time
- The model clock advances only when running or stepping. Changing speed accelerates this clock.
- Gateway latency
- Modeled CAN/gateway latency estimates are separate from measured host processing time. Neither is a hardware benchmark.
- Safety authority
- The gateway can request degradation. An independent safety task acknowledges and latches the state until eligible recovery.
- Detection metrics
- Precision, recall, and false positives use labelled ground truth solely for scoring, never as detector input.
- Validation scope
- Seeded synthetic scenarios demonstrate this model's behavior. They do not establish real-vehicle safety, certification, or cross-dataset performance.
Physical concept → software representation
The same boundaries remain visible and testable.
| Component | Role in this laboratory | Observable evidence |
|---|---|---|
| ESP32 | Seeded vehicle signal and adversarial frame generator | CAN IDs, payloads, arrival timing, attack labels |
| CAN A / CAN B | Untrusted input and protected output segments | Received, forwarded, blocked, dropped frames |
| STM32 gateway | Local filtering and accumulated threat evidence | Rule reasons, threat score, decision status |
| Raspberry Pi | Optional anomaly analyst with synthetic training | Advisory scores, training status, disconnect behavior |
| Safety task / vehicle ECU | Independent degradation and latched recovery | Request/activation times, motor and vehicle state |
Bring your own CAN trace
Use standard 11-bit identifiers and up to 8 payload bytes. Timestamps must increase or remain equal. Imports are normalized to begin at zero and evaluated against this laboratory's signal schema.
timestamp_ms,id,data,label 0,0x120,00 00 00 00 00 00 00 00,normal 20,0x120,00 00 00 00 00 00 00 01,normal
(0.000000) can0 120#0000000000000000 (0.020000) can0 120#0000000000000001
Labels are optional and unlabelled frames remain unknown. CAN-FD and extended identifiers are not supported. Imported arbitrary IDs may be blocked as unknown.