Bayesian Virtual Lab / BMS Attack Detection Pipeline
M-W Framework · v2.0   Bayesian Cybersecurity
1 · Upload VChart CSV
Choose or drag a VChart CSV
Uploaded Files
  • CSV 20260413_091418_VChart959.csv
  • CSV 20260415_063247_VChart959_1.csv
  • CSV 20260415_063331_VChart959_attack.csv
  • CSV 20260415_064428_VChart959_1.csv
  • CSV 20260415_064830_VChart959_1.csv
  • CSV 20260415_064947_VChart959_1.csv
  • CSV 20260415_065717_VChart959_1.csv
  • CSV 20260415_070017_VChart959_1.csv
  • CSV 20260415_070504_VChart959_1.csv
  • CSV 20260415_070618_VChart959_1.csv
  • CSV VChart959.csv
  • CSV VChart959_attack.csv
2 · Configuration
⚠ If your BMS reports FC > this value the detector flags SOH > 100% as impossible. Set to the actual OEM-rated Ah on the pack label (e.g. 105 if pack is 105 Ah).
Attack Simulation Parameters
Rows 0…N treated as clean reference in single-file mode. Increase (e.g. 80–100) if attack starts late in the file. Decrease only if file is short.
Recent Jobs
done Detect [SINGLE] 20260415_063331_VChart959_attack.csv [attack] 08:16:25
Pipeline
Compare — Clean vs Attack
Output Files
Full Pipeline — One Click
Simulate attack → dual-file detection (clean ref + suspect) → side-by-side compare
[ Simulate → Detect Attack → Detect Clean ]
0
Step 0 — Validate Clean Baseline
Confirm the clean file returns CLEAN verdict before running any attack — required for client demo
Run this first, before simulating any attack. Validates that the clean file produces a CLEAN verdict before any attack is injected. Uses dual-file mode with the same file as both clean and suspect — zero delta on all layers → unambiguous CLEAN. Always Auto-Detect Capacity first so L4 does not fire on natural FC variation.
python3 bvl_attack_detector.py --suspect <CLEAN_CSV> --capacity <N> --baseline-rows 80 --scenario all
1
Step 1 — Simulate Attack
Inject IR suppression · SOH inflation · voltage drift into a VChart CSV
python3 vchart_attack_simulator.py --input <CSV> --attack combined --target-cells 7 9 --start-row 50 --output <OUT>_attack.csv
2A
Step 2A — Detect (Single-file, no clean ref)
Use only when you have no clean reference file — less accurate
python3 bvl_attack_detector.py --suspect <ATTACK_CSV> --model <MODEL> --capacity <N> --scenario all
2B
Step 2B — Dual-File Detection (Recommended)
Clean CSV as reference + attack CSV as suspect — the only reliable way to isolate injected signals
Why dual-file? Single-file mode uses only the first N rows as its own baseline. For a 570-row pack with natural FC drift, L2 & L4 will flag the clean file itself as suspicious — a false positive. Dual-file mode uses VChart1081.csv as ground-truth clean and VChart1081_attack.csv as suspect, giving true signal isolation.
python3 bvl_attack_detector.py --clean <CLEAN_CSV> --suspect <ATTACK_CSV> --model <MODEL> --capacity <N> --scenario all
Single-File Fallback (less accurate)
Use only when you do not have a clean reference file. Increase Baseline Window Rows to 80–120 for best results.
python3 bvl_attack_detector.py --suspect <CLEAN_CSV> --model <MODEL> --capacity <N> --baseline-rows 80 --scenario all