How burhanabdullah/xmon-grid works
XMON-Grid is a research implementation for detecting topology attacks in SCADA-monitored transmission systems, using canonical IEEE network data and seeded synthetic measurements. Its documented workflow generates scenario data, evaluates NIS, CUSUM, and timing-jitter detector streams, and combines their votes with a strict majority quorum; sequential accumulation is evaluated separately. The graph also shows the model, topology, mitigation, agent, and experiment layers. README claims establish detector roles and quorum semantics; sampled source confirms benchmark generation and physical modeling, but does not expose all runtime wiring.
Main entry points: consensus.py Quorum Consensus · coordinator.py Coordinator · grid_topology.py Grid Model · data_pipeline.py Scenario Dataset
Components 18
Grid Benchmark
- IEEE Case Data
core/grid_topology.py - Grid Model
core/grid_topology.py - Scenario Dataset
core/data_pipeline.py
Detection And Response
- State Estimator
core/xmon_model.py - NIS Stream
core/xmon_model.py - CUSUM Stream
experiments/sequential_detector.py - Timing Jitter
experiments/fusion_detector.py - Sequential Accumulation
experiments/sequential_detector.py - Quorum Consensus
core/consensus.py - Mitigation
core/mitigation.py
Agent Coordination
- Coordinator
agents/coordinator.py - Monitor
agents/monitor.py - Auditor
agents/auditor.py - Protector
agents/protector.py
Evaluation
- Experiment Runs
experiments/run_full_macpr_experiment.py - Physical Validation
validation/real_physical_validation.py - Attack Visualization
visualization/plot_all_cases.py
Other components
- Researcher
Connections 16
- Researcher → Experiment Runs: runs experiments
- IEEE Case Data → Grid Model: builds topology
- Grid Model → Scenario Dataset: supplies model
- Scenario Dataset → State Estimator: provides measurements
- State Estimator → NIS Stream: computes NIS
- NIS Stream → Quorum Consensus: votes
- CUSUM Stream → Quorum Consensus: votes
- Timing Jitter → Quorum Consensus: votes
- Sequential Accumulation → Experiment Runs: evaluated separately
- Quorum Consensus → Mitigation: informs response
- Coordinator → Monitor: coordinates
- Coordinator → Auditor: coordinates
- Coordinator → Protector: coordinates
- Experiment Runs → Scenario Dataset: evaluates scenarios
- Physical Validation → Grid Model: checks physics
- Attack Visualization → IEEE Case Data: uses grid cases