SPOTTING THE FAKE

How to detect ADS-B spoofing

ADS-B was built for openness, not security, its messages are unauthenticated, so a fabricated aircraft is technically possible. The good news: spoofed broadcasts almost always betray themselves by contradicting physics or their own metadata. Here are the signals that expose them, and how AeroScope applies every one.

Quick answer. Because ADS-B messages are unauthenticated, a fabricated aircraft is technically possible, but spoofs almost always contradict either physics or their own integrity metadata. AeroScope applies a DO-260B integrity check (NIC/NACp/NACv/SIL), a Kalman normalised-innovation test on the trajectory, and self-consistency residuals (geometric-vs-barometric altitude, ground-speed-vs-Mach, track-vs-heading). A flag fires only when at least two independent detectors agree, which suppresses false alarms.
Why it’s possible

ADS-B is unauthenticated by design

ADS-B messages carry no signature and no encryption, so any transmitter could, in principle, inject a fabricated position. Documented research has shown ghost aircraft, altitude tampering and velocity tampering are all feasible. That’s why a serious platform treats every broadcast as a claim to be verified, not a fact. See the basics on ADS-B technology.

The four signals

How a spoof gives itself away

🛡️

1 · Integrity-field mismatch

Real avionics report consistent NIC/NACp/NACv/SIL quality fields. A fabricated message often sets them wrong, or claims a precision its jittery track can’t support.

DO-260B
📈

2 · Physical implausibility

A Kalman filter predicts where the aircraft should be next. A spoof that "teleports", accelerates impossibly or violates its performance envelope fails the normalised-innovation (NIS) test.

KALMAN NIS
⚖️

3 · Self-inconsistency

Geometric-vs-barometric altitude, ground-speed-vs-Mach and track-vs-heading should agree on a real airframe. Contradictions between them betray a fabricated record.

RESIDUALS
🌐

4 · Single-source / timing

A real aircraft is heard by several independent receivers. A target seen by only one network, or whose multi-receiver timing doesn’t add up, deserves suspicion.

CROSS-CHECK
How AeroScope does it

Every broadcast, checked

AeroScope runs a DO-260B-style 7-check plus a Kalman normalised-innovation test and the three self-consistency residuals on every aircraft, every cycle, and fuses 60+ feeds so multi-receiver agreement is a free integrity signal. Suspect aircraft are surfaced with the contributing factors shown, see signal integrity and threat scoring. None of this uses a black-box neural network; it’s built on auditable, established methods.

Want to evaluate detectors yourself? The open AeroScope ADS-B Anomaly Benchmark (CC-BY 4.0) pairs real traffic with injected attacks across 38 documented columns, with an IsolationForest baseline at ROC-AUC ≈ 0.87, a reproducible testbed for spoofing-detection research.

Attack classes

What a spoof actually looks like in the data

Published research and observed incidents cluster into a handful of recognisable classes. Each leaves a different fingerprint, which is why several detectors are needed rather than one.

ClassWhat the attacker doesHow it betrays itself
Ghost aircraftInjects an airframe that does not existNo corroborating receiver geometry, integrity fields that do not match the claimed accuracy, and kinematics that are too clean or physically implausible.
Altitude tamperingReports a false altitude for a real or fabricated trackThe geometric and barometric altitudes stop agreeing, and the implied vertical rate conflicts with the reported one.
Velocity tamperingReports speed or heading inconsistent with the trackPosition deltas between messages do not integrate to the claimed velocity, and track diverges from heading beyond what wind can explain.
ReplayRebroadcasts genuine historical messagesTimestamps and sequence behaviour are inconsistent, and the same identity can appear in impossible places.
Jamming or floodingDegrades reception rather than faking contentNot a content problem at all. It shows up as sudden coverage loss, which is a coverage symptom rather than an integrity one.
Why consensus

The arithmetic that makes flags usable

Any single detector tuned sensitively enough to catch real spoofing will also fire on ordinary data problems: a marginal reception, a momentary GPS degradation, an aircraft genuinely manoeuvring hard. Run one detector across hundreds of aircraft every cycle and you generate a stream of alerts nobody will read.

AeroScope therefore requires at least two independent detectors to agree before raising a flag. Because the detectors look at genuinely different things, a physics residual, an integrity field, a trajectory model and a statistical outlier score, their errors are largely uncorrelated. Two agreeing is far less likely to be coincidence than one firing alone.

The cost is honest and worth stating: consensus reduces sensitivity. A spoof that only trips one detector will not be flagged. That is a deliberate trade in favour of a signal an analyst can actually trust.

Verify it yourself

Checking a suspicious track by hand

Every check below uses fields the platform already displays, so you can reach your own conclusion rather than trusting the flag.

FAQ

Frequently asked questions

Can ADS-B be spoofed?
Yes. ADS-B messages are unauthenticated and unencrypted, so a transmitter can in principle inject fabricated positions, ghost aircraft, altitude tampering and velocity tampering have all been demonstrated in research. Detection relies on catching the inconsistencies a spoof leaves behind.
How do you detect a spoofed aircraft?
Four complementary checks: (1) compare the ADS-B integrity fields (NIC/NACp/NACv/SIL) against the track’s actual precision; (2) test physical plausibility with a Kalman normalised-innovation test; (3) check self-consistency between geometric/barometric altitude, ground-speed/Mach and track/heading; and (4) cross-validate against multiple independent receivers. AeroScope applies all four.
What is a ghost aircraft?
A ghost aircraft is a fabricated ADS-B target that doesn’t physically exist, created by transmitting fake messages. It typically fails plausibility and integrity checks: for example, appearing to only one receiver, or moving in ways no real airframe could.
Does spoofing detection need machine learning?
Not necessarily. The core checks are rule-based and physics-based (integrity fields: Kalman plausibility, self-consistency). AeroScope adds a torch-free consensus of established anomaly detectors as a second opinion, but every flag remains explainable from its contributing features, there is no reinforcement learning or opaque model.
Where can I get data to test a spoofing detector?
The open AeroScope ADS-B Anomaly Benchmark (CC-BY 4.0) pairs real airborne traffic with synthetically injected attacks following the standard taxonomy, across 38 documented columns with a bundled IsolationForest baseline. See the research page.
What are the main types of ADS-B spoofing?
The recognised classes are ghost aircraft (injecting a non-existent airframe), altitude tampering, velocity tampering, replay of genuine historical messages, and jamming or flooding. Each leaves a different fingerprint in the data, which is why multiple independent detectors are needed rather than one.
How can I tell if an aircraft on a tracker is fake?
Compare geometric against barometric altitude for unexplained divergence, integrate successive positions and check the implied speed matches the reported ground speed, read the NIC, NACp, NACv and SIL integrity fields for implausible values, and sanity-check the numbers against the aircraft type. Every one of these uses fields the platform already displays.
Why does AeroScope require two detectors to agree before flagging a spoof?
Any single detector sensitive enough to catch real spoofing also fires on ordinary data problems such as marginal reception or brief GPS degradation. Because the detectors examine genuinely different things, their errors are largely uncorrelated, so requiring two to agree suppresses false alarms. The honest cost is reduced sensitivity: a spoof that trips only one detector is not flagged.
Can ADS-B spoofing be detected with certainty?
No. Detection is probabilistic. The checks catch broadcasts that contradict physics or their own metadata, but a well-constructed, physically plausible spoof can pass. A clean result means nothing was detected, not that a broadcast is verified genuine.