Scenario kind pagesEdit on GitHubSource: docs/kinds/by-kind/spoof-detect.md

spoof-detect (scenario kind)

Scenario kind of the engine v0.38.0, family Jamming, spoofing and the spectrum. Advisory: analysis output from a research and engineering tool, not type-approved navigation equipment and not a safety-of-life service. Every label here is the engine's or the verification matrix's; a kind is MODELLED unless the matrix says otherwise (how a label is earned: the README's Evidence section).

What it does#

Combined RF/measurement spoof detector (multi-SV RAIM-consistency + AGC + SQM, fused) vs a parameterised attack (power advantage, carrier-phase alignment, time/position push; TEXBAT-style).

One run of scenarios/spoof-detect.toml summarises as: scenario e046ee4ca90a | spoof-detect | 8 SVs, +1.5 dB | Position push | fused score 0.70 (thr 0.50) | SPOOF DETECTED (fused) — layers: RAIM+SQM

Inputs#

From the schema (kshana kinds --json):

  • Required fields: attack
  • Optional fields: satellites, detector

The example scenarios/spoof-detect.toml sets, among others:

Field Value Unit
attack.carrier_aligned false flag
attack.el_imbalance 0.12 1
attack.num_biased 3 count
attack.power_advantage_db 1.5 dB
attack.push position text
attack.push_magnitude_m 75 m
detector.agc_margin_db 3 dB
detector.fusion_threshold 0.5 not stated
detector.raim_p_fa 0.001 not stated
detector.sat_power_dbm -130 dBm
detector.sigma_m 5 m
detector.sqm_tolerance 0.1 not stated

Run it#

kshana scenarios/spoof-detect.toml

2 bundled scenarios use this kind; the others are in scenarios/.

What it gives#

The scalar results of that run, with the units the engine states:

Result Value Unit
attack.carrier_aligned false flag
attack.el_imbalance 0.12 1
attack.num_biased 3 count
attack.power_advantage_db 1.5 dB
attack.push position text
attack.push_magnitude_m 75 m
decision.agc_excess_db 1.5 dB
decision.fused.alert true flag
decision.fused.layers.agc false flag
decision.fused.layers.raim true flag
The chart the engine writes for scenarios/spoof-detect.toml, kind spoof-detect

Evidence#

MODELLED: the verification matrix rows that name this kind.

The rows the run itself exercised, with the oracle the matrix gives each (the public sources are named there):

  • MODELLED Clock-aided χ², RAIM, AGC, SQM fused per-epoch security FoM. Oracle (ExternalDataset): TEXBAT scenario parameters (Humphreys 2012) — characterisation, not pinned vectors. 0.30 external comparison, a finding (stays MODELLED): on JammerTest 2024 (Bleik; GPL-3.0 data) the observable-level monitors (clock-aided chi-square, RAIM, solve failure) raised no alarm within 10 s of any of the 8 evaluable published spoofing onsets (where the pre-onset window was clean, the first alarm came 10.2 to 39 s after the pu
  • MODELLED Deterministic, scenario-hashed, SBOM + cross-platform golden gates. Oracle (ExternalDataset): SBOM conformance to the official CycloneDX 1.5 JSON Schema (+ valid SPDX identifiers) — an external published standard, zero validation errors over the full dependency graph; the FoM-determinism / byte-reproducibility part remains a pinned self-consistency check, so the row stays MODELLED
  • PARTNER Not provided — Kshana models signal performance, not payload/antenna hardware. Oracle (NoneKind): none: a partner-owned discipline, with no module and no test by design

Limitations#

What the run's own report says is not modelled or not validated:

  • Spoofing detection is MODELLED, not validated: a sub-claim is externally checked, but the whole capability composes modelled pieces, so the capability stays Modelled. (verification matrix (docs/MODELLED-RATIONALE.md))
  • Reproducibility & software assurance is MODELLED, not validated: a sub-claim is externally checked, but the whole capability composes modelled pieces, so the capability stays Modelled. (verification matrix (docs/MODELLED-RATIONALE.md))

See also#